文献标识码: A
文章编号: 0258-7998(2012)02-0088-03
本文所设计的黑线提取及抗干扰算法是针对采用视觉导航的智能车系统,系统要求能在室内规定的封闭道路上自主循迹行驶。路面宽度为50 cm,铺设2.5 cm宽的黑色胶带在路面中间作为路径导航线。
图像信号采集单元作为视觉导航智能车控制系统的信号输入单元,其优劣程度影响到智能车的快速性和稳定性。为有效地采样到视频信号,首先就要能够分辨出信号的行同步脉冲、场同步脉冲、像素同步脉冲等。否则,单片机将无法识别出接收到的信号具体是在哪一场,更无法识别出视频信号是在第几行。
1 图像采集算法
图像采集模块选用OV7620,该模块是数字摄像头,返回的是8 bit数字信号。OV7620的分辨率为240×360,但是由于MC9S12XS128 MCU的RAM仅有8 KB,不可能每一行的图像都采集,必须有选择地选取图像行,采用隔行采集的思想来压缩图像数据。考虑赛道的黑线线宽为25 mm,为了保证起跑线的检测,图像纵向至少精度要达到25 mm。因此,根据摄像头的原始图像,计算行距,确定采集的行数,采集图像信息。
采集的图像数据范围是120×40,经试验能适用于小车的行驶控制,但由于采集回来的图像是畸变的,采用加权不均衡思想,用数组进行选择采集,所采集的行数为:
hang[40]={20,22,24,26,28,30,32,34,36,38,40,43,46,
49,52,55,58,61,64,67, 72,77,83,89,95,101,
107,113,119,125,133,141,150,159,170,181,
193,205,217,230};
2 抗干扰路径提取算法
一般情况下系统所获取到的图像信息并不是十分准确,大量的图像信息中含有各种各样的噪声和畸变。室内外光线情况以及路面上的杂质点都会造成一些干扰,以及在传输过程中也会一些误差等,这样就会降低图像的质量,致使智能车出现误判等情况,干扰到车辆的正常运行。通过对二值化分割算法、边缘检测算法、动态阈值算法的特点及优缺点的分析,针对本智能车系统的特点,将这几种算法结合,得到较好的抗干扰效果。
2.1 图像局部阈值分割抗干扰算法
采用单一的固定阈值分割算法虽然比较简单,但对于不同光线环境和杂质等会出现相同的物体的图像分割阈值较大,不易分割且容易出现干扰信息,抗干扰性能较差,如果每场信号都对阈值进行更新也会造成较大的误差甚至误判;使用动态阈值方法又会造成大量的运算,耗费大量系统资源,不利于系统的实时性操作。
经过分析,图像虽然随光线灰度值变化较大,但是将图像分为若干模块段时无论外界光线如何变化,对于每个小段内阈值变化范围也不会太大,因此采取局部阈值分割的方法,对图像的远、中、近各分几段进行阈值分配,通过大量测试可以获取一个位置相对较为适当的阈值,这样可以很好地实现图像的二值化分割。
2.2 混合扫描方式抗干扰提取导航黑线
对比前面介绍的几种路径提取方法,充分利用二值化阈值分割、边缘跟踪检测算法的特点,使用混合扫描方式提取图像信息。对车体前端几行数据进行全行扫描,根据试验采集到的数据设置好前端数据的局部阈值,比较后提取出路径位置,若前端几行没有提取出有效路径,则认为本场图像无效,可以排除偶然因素导致的错误图像干扰信息提取。对于这几行之后的数据采用边缘跟踪法,在前几行全扫描提取的路径周围设置一个范围对后续行进行跟踪,这样可以大大减少扫描的范围和节约系统资源。对于边缘跟踪检测算法的搜索范围也采用适当的动态方法进行配置,如果能够判断出前段已提取出的路径是比较直的路线,路径中心坐标的偏差较小,在进行后续跟踪扫描时就可以适当缩小搜索范围,反之则扩大搜索区域。如遇特殊情况,如中间有一行没有提取出有效信息,则后面进行边缘跟踪时就使用再上一次已正确提取出路径信息时的位置相应地扩大搜索区域,这样就可占用很少的系统资源实现路径信息的正确提取。混合扫描软件程序流程如图1所示。
实际测试时发现:摄像头返回的数据,在近端比较清楚,即使在不同光线下,变化也不是太大,于是对前3行设定了固定的灰度值和跳变值,并对其近端行进行全行扫描,直到找到黑线行为止,并且提取左右的黑线边缘。
在前6行确定的情况下,将6行中的最稳定值作为后34行的基准值,在对后34行进行边沿搜索时,依照前两行的黑线的斜率,若斜率为负,黑线的变化趋势就是向右的,此时便采取从左向右搜索;若斜率为正,黑线的变化趋势就是向左的,此时便采取从右向左搜索,但为了排除十字差的干扰,如果前一行基准值过大,采取从右向左搜索,如过小则是从左向右搜,搜索范围会根据黑线的远近端以及前一行是否丢失黑线来确定。
若前6行没有搜索到黑线,则认为黑线丢失,黑线丢失标志置1,即退出搜索,黑线提取完毕,有效行在退出前要再次进行更新。
2.3 防黑线提取错误滤波算法
要保证小车不跑出跑道,必须确保采集的数据和提取的黑线是正确的。小车跑出赛道的情况,一般是黑线提取算法出错。因此对于黑线的提取,必须采用一些特殊的滤波算法来确保黑线提取的正确性。在防止黑线提取出错中,采用了限幅滤波与缺省行插值算法相结合的思想,具体程序流程如图2所示。
通过无线收发的方式提取黑线数据,然后通过Matlab恢复出所提取的黑线,通过分析可知在何时何种赛道提取黑线出错,进一步再通过串口去查看静态数据。以下是在几种比较典型赛道上的测试,通过反馈数据恢复出的图像,分别出现以下几种情况时,说明黑线提取正确,滤波算法动态效果如图3所示。
3 测试结果分析
本设计采用串口示波器加无线组合工具进行测试。采用串口示波器,完成返回黑线数据的检测、查看摄像头采集数据情况以及黑线提取情况,用于黑线提取算法的分析,是完成黑线提取算法的关键性调试工具,可以准确进行黑线提取正确与否的判断及修改。图4和图5给出了黑线提取情况的对比分析。针对出现的S形和十字叉道路,只要采集到的原始数据正确,提取到的黑线也正确。
图4和图5中,数字1代表采集到的图像灰度值在100以下的数据,数字2表示灰度值在200以上的数据,数据0表示数据在100~200之间的灰度值;M代表当前行提取到的黑线位置,从左到右是从第0个点到第119个点,N代表当前行所给定的扫描范围。
测试结果说明所采用的抗干扰路径提取算法是有效的,小车在道路上行驶时,在复杂路段有时会出现抖动的现象,但不会出现黑线识别出错的情况,小车不会跑出赛道。
参考文献
[1] 黄开胜,金华民,蒋狄南.韩国智能模型车技术方案分析[J].电子产品世界,2006(5):150-152.
[2] 赵甘露,李小民,江涛.一种新型噪声检测中值滤波算法[J].计算机工程与科学,2006,28(11):30-32.
[3] 宋养鸼.竞赛用智能汽车控制系统的研究[D].甘肃:兰州 理工大学,2009.
[4] 邱迎.道路自动识别与控制的智能车系统的研究[D].重庆:重庆大学,2010.