(详细)基于黑白摄像头的智能小车路径识别系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言
智能化技术与汽车相结合产生的智能汽车将在未来工业生 产和日常生活中扮演重要的角色 ,而路径识别则正是体现智能车 智能水平的一个重要标志 。 本文中智能小车路径识别系统基于摄像头和飞思卡尔 16 位 微控制器 MC9S12DG128B 组成 ,由摄像头采集图像有用信息送入 单片机分析道路参数 。智能小车的运行环境 [ 1 ] 如图 1 所示 。其 中 ,跑道黑线宽度为 25mm; 跑道最小曲率半径不小于 500mm; 跑 道可以交叉 ,交叉角为 90 ° 。一个完整的路径识别系统不仅需要 具备图像信号的采集功能 ,还要求完成图像信号的分析及处理算 法 。因而 ,本系统分成四个模块 : 视频图像采集 、 图像预处理 、 黑 线中心提取 、 路径判断 。
机 ,采用 5V 供电 ,总线速度 25MHz, 8KBRAM , 128KBFLASH ,具有 丰富的 I/O 模块和工业控制专用的通信模块 [ 2 ] 。 由于采用摄像头寻迹能大幅度提升赛车的前瞻距离 ,有利于 赛车提高车速 。同时 , 赛道上只有黑白两色 , 只需提取探测画面
3 哈尔滨工业大学 (威海 )信息科学与工程学院 264209 基金项目 : 山东省自然科学基金 ( Y2007G20 )
1 0
f ( x, y ) Ε t f ( x, y) < t
其中 , f ( x, y ) , g ( x, y ) 分别为处理前 、 处理后的图像中处于
( x, y ) 位置上的某个像素的浓度值 , t为阈值 。图 4 为二值化后的
效果 , 0 为黑点 , 1 为白点 。
2009 年第 2 期 43
计算机技术及应用
信息技术与信息化
基于黑白摄像头的智能小车路径识别系统设计
The D esign of Intelligent V ehicle Path Recognition Based on Monochrome Camera
吴吟箫 3 张 虹 王新生
WU Y in - x iao ZHAN G Hong WAN G X in - sheng
doi: 10. 3969 / j . issn. 1672 - 9528. 2009. 02. 015
摘 要 路径识别是汽车智能化发展的必然趋势 。在基于飞思卡尔单片机的智能车路径识别系统的设计中 , 首 先采用基于黑白摄像头的图像采样模块获取路径图像信息 ; 然后分别说明图像采集 , 图像预处理 , 黑线 提取 ,路径判断部分的软件设计 。其中 ,在图像预处理中使用了二值化和中值滤波算法 , 并且在黑线提 取中提出了改进插值算法 。实验表明 ,整个系统硬件设计简单 ,软件算法快速有效 。 关键词 路径识别 中值滤波 寻线算法
视频图 像的采集 是 基 于 MC9S12DG128 单 片 机 来 实现 的 。
MC9S12DG128B 是 Freescale 开发的以 CPU12 内核为核心的单片
图 1 智能小车的跑道环境 要能有效地采样摄像头视频信号 ,首先要提取出摄像头信号 中的行同步脉冲 , 消隐脉冲和场同步脉冲 。LM1881 视频同步信 号分离芯片可从摄像头信号中提取信号的时序信息 , 如行同步脉 冲、 场同步脉冲和奇 、 偶场信息等 ,并将它们转换成 TTL 电平直接 输给单片机的 I/O 口作控制信号之用 ,如图 2。 这部分的硬件设计为 : 摄像头视频信号接入 LM1881 的视频 信号输入端 , 同时接入单片机其中一个 A /D 口 (这里选择 PAD8 口 ) ; LM1881 的行同步信号和奇偶场同步信号分别接入单片机的 带中断的 I/O 口 PT0、 PT1。设置 PT1 口为输入捕捉下降沿 ,即采
ຫໍສະໝຸດ Baidu
图 4 二值化后的图像 1x3 窗口中值滤波是非常简单的一种去噪方法 ,是将某个像 素点和相邻两个像素点的像素值按大小顺序排列 ,取出中间值作 为该点的像素值 。这种方法能够有效的抑制随机噪声 , 并且计算 量相比去噪常用的 3x3 模板要小得多 。减小计算量能够有效的 提高单片机识别道路的速度 ,这一点对时间要求较高的实时处理 是非常重要的 。
图 7 采到起始线效果 虽然在前面已经有去噪处理 , 但是偶尔还是会有干扰 , 这样 提取出来的某些行黑线中心位置就发生了跳变 。同时 , 为了后续 的控制模块得到准确的道路信息 ,需要对特殊行及跳变点进行插 值处理 ,即赋予其前后两行的平均值作为黑线中心值 。但是考虑 到会出现这样的复杂情况 : 连续两行出现跳变点或者特殊行的前 后出现跳变点 ,这时如果简单的按上面的方法进行插值 , 会插入 一个误差很大的中心点 , 使道路产生弯点 。于是 , 在这里需要对 差值算法进行改进 。图 8 为改进算法的流程图 。改进算法考虑 了连续两个中心点需要插值的情况 , 先将当前点与前一个点比 较 ,计算其偏差值 ,如果偏差较大则为需要插值的点 ; 接下来计算 前一个点与当前点之后一点的偏差 , 后面一点如果是误差点 , 则 当前点赋值前一点的值 ,如果后面一点为正常点则当前点取其前
在直道时 , 每行黑线中心位置相对集中 , 因而每行的黑线中 心与其平均值的偏差之和较小 ; 在弯道时 ,黑线中心相对分散 ,随 着弯度的增大则偏差之和相应的变大 。这里 ,每行的黑线中心与 其平均值的偏差之和可以用方差来表示 :
row _m ax- 1 row _max- 1
σ =
2
row = 0
Abstract Intelligentize of vehicle is a trend of cars’development in the future. Path recognition is one of
the app lication directions . This path recognition system of intelligent car uses im age - sensor module based on camera to obtain lane i m age information. The whole system is divided into four parts: im age acquisition, im age p re - p rocessing, abstracting the black line, and road detection. The i m age p re - p rocessing part uses the binary2 zation and the median filtering to imp rove the im age information. Then by using the i mp roved algorithm , the result of abstracting the black line becomes more p recise. The ultim ate aim of the whole system is to accurately abstract the black guidelines from the white raceway, follow ing the road parameters and conditions in front, making the car move p roperly . Keywords Road detection M edian filtering L ine - tracking
3 图像预处理
图像预处理的目的是改善图像质量 , 在本系统中的目的是为 单片机识别路径提供一幅更为清晰 ,更易判断的赛道图像 。
3. 1 二值化处理
将图像导入 matlab进行分析 ,发现原始图像像素值均在 0 255 内 ,而白色区域像素值一般在 160 以上 , 黑色区域一般在 70
以下 。为了提取出黑线 , 检测像素值的跳变是最直观的方案 , 但 是实际中一般黑白线边沿的像素值不是突然跳变的 , 而有一个过 渡过程 。所以 ,将原始图像进行二值化处理不但有清晰边沿线的 功能 ,还能方便后续路径识别部分算法的设计与处理 。 二值化处理就是对于输入图像的各个像素 ,先确定某个亮度 值 ,当像素的亮度超过该阈值时 , 则将对应输出图像的像素值设 为 1,否则为 0,原理公式如下 [ 4 ] :
42 2009 年第 2 期
信息技术与信息化
集偶场信号 。当新的一场到来时 ,单片机首先采集到下降沿信息 进入场中断 。在场中断处理程序中先将场中断关闭 , 然后启动行 中断 ,并设置 PT0 口为输入捕捉上升沿 。当单片机捕捉到行同步 信号后就进入行同步中断处理程序 ,开始采集图像信息 。本系统 中使用的摄像头分辨率为 352x288,但由于 S12 单片机的 A /D 转 换能力有限 ,并且赛道只有黑白两色 , 而本系统的目的只在于提 取出黑线中心 ,所以不需要提取一行中所有的点 。基于以上两点 原因 ,最终方案采集 40x20 分辨率图像 。通过试验证明 , 40x20 分 辨率的图像可以完整的反映出道路状况 ,采集效果如图 3。
的灰度信息就能识别出黑线信息 ,因而从减少成本和减轻单片机 采样的负担两方面考虑 ,图像采集部分选用黑白摄像头 。 摄像头输出的是 PAL 制式的复合全电视信号 , 每秒输出 25 帧 (每帧分为偶场和奇场 ) 。黑白视频图像信号通常由图像信号 、 消隐信号以及同步信号共同组成 [ 3 ] 。
2 视频图像采集
计算机技术及应用
板中值滤波更具有优势 。
信息技术与信息化
后两点的平均值 。
可以消除影响 。因而从去噪效果和计算量两方面来考虑 , 1x3 模
5 路径判断
5. 1 弯直道的判断
4 黑线中心提取
提取黑线中心部分是小车路径识别系统中最为重要的一个 环节 ,关系到智能小车运行质量的好坏 。 这里黑线中心提取方法为 : 先判断每行的第一个点是否为白 点 ,如是白点则依次对白点进行计数 (设计数为 a) , 当遇到连续 黑点时则计数黑点个数 (设计数为 b ) ,再次遇到白点时则退出该 行计数 ,此时黑线中心所在列为 a + b /2; 如果第一个为黑点 ,且不 是噪声点 (即为连续的黑点 ) , 则直接对黑点计数 (设计数为 b ) , 当遇到连续白点后则退出计数 ,这种情况下得到的黑线中心位于 第 b /2 列 。最后将从一幅图像上得到的所有中心位置按行存入 一个一维数组中 。 但是不得不考虑两种比较特殊的情况 , 起始线和十字交叉 线 。通过观察发现这两种情况下每行出现黑点的数量远远大于 黑线的黑点数 (黑线一般能采集到 2 - 3 个黑点 ) , 所以当采集到 的黑点数超过正常值时 , 便判定这一行为特殊行 , 并赋予特殊标 志位 (这里将特殊行中心点标志为 50,因为经过图像处理后图像 变成 38 3 20 数组 ,标志为 50 能将特殊点和正常点很明显的区分 开 ,也方便了下面的改进差值算法 ) 。由于规则要求小车能识别 起始线 ,因而还需对特殊行进行分析 。图 7 为采到起始线的情 况 ,可以看出起始线所在行具有多个跳变 , 考虑到车体偏离等情 况 ,可以用白点跳变为黑点的次数 (方案中选 2 或 3 ) 来判定是否 为起始线 ,如果符合情况则标志出这一行 。则其他的特殊行均为 十字交叉情况 。
g ( x, y ) =
为了说明此方案的适用性 ,随机在图像数组中加入噪声点 , 如图 5。为了使接下来的验证过程更为方便 , 设计中将实际图像 用 matlab进行二值化 ,导出一个二维数组 , 在验证算法时不同的 道路状况只需修改数组中的值即可 。图 6 中 a、 b分别为 1x3 模板 和 3x3 模板中值滤波后的效果图 。从图中可以看出虽然 3x3 模板 的去噪效果要稍好 ,但是 1x3 模板显然已经能去除绝大部分噪声 点 。并且在实际赛道中噪声点的数量要比这里引入的噪声点少 , 即使有极少部分噪声点没有滤除 ,通过接下来提取黑线算法同样
∑
( x - m [ row ]2 ) row _m ax , (x =
row = 0
∑ m [ row ]
row _m ax
2
) x 为平均
值 , m [ row ]2 为每行黑线中心值 。通过对 20 行数据进行试验 ,直 道时的方差一般在 2 以下 ,小弯道一般在 3 - 10 的范围内 , 10 以 上则能判定为大弯道 。
3. 2 基于二值图像的中值滤波
计算机技术及应用
二值化后的赛道状况已经非常明了 ,但是仍有干扰存在 ,这样对 赛道的识别及接下来的算法设计会造成一定的困难。因而 ,选择对 图像进行中值滤波。该方法是一种局部平均的平滑技术 , 对脉冲干 扰和椒盐噪声的抑制效果好 ,能有效保护图像的边缘 [5 ] 。