基于线性CCD检测的寻线智能车设计与实现

2015-12-29 08:59余世干张廉洁张旭东戎强强
赤峰学院学报·自然科学版 2015年19期
关键词:黑线引线曲率

余世干,张廉洁,张旭东,戎强强

(阜阳师范学院 信息工程学院,安徽 阜阳 236041)

1 引言

自动循迹的智能车相当于移动的智能机器人,现在主要应用于餐厅餐盘的接送、仓库以及其他需要搬运设备的工作中,而线性CCD相当于智能机器人眼睛,小车通过传感器获取路径信息,并按一定的精度要求正确沿路径行驶.

2 系统整体结构设计

本设计中,要求智能汽车模型在规定45cm宽度的白色KT板,两边均为2cm黑色引导线的跑道上自动行驶,并可根据变化的形状,按行驶要求自主导航.这就要求智能车车具备较强的自适应能力.智能车在行驶的过程中还需要快速和稳定性的要求,因此,设计方案必须考虑传感器信号采集处理,陀螺仪和加速度计的调整,和电机差速控制策略的设计等因素.整个系统包括图像信息采集和处理,智能车的直立控制,电机差速的转向控制和速度的反馈,系统组成结构如图1所示,系统组成实物如图2所示.

图1 系统组成结构图

图2 系统组成实物图

2 图像处理方案设计

2.1 图像信息处理

对跑道形状的识别正确与否决定了智能车车能否实现自动循迹功能.虽然当今图像处理算法已经有很多成熟的算法和应用,但如何有效地采用符合具体实际使用的算法则需要经过实际测试才能确认,图像处理包括对线性CCD信息采集,跑道状况的提取,路径的计算等.一般的设计流程包括图像信息采集,图像信息的处理,跑道信息的计算和行驶路线的优化这4个部分.

图像信息采集时,单片机的端口与CCD的图像灰度信息输出引脚相连,线性CCD是单行采集图像的,并且采集回来的数据是灰度值,我们需要对灰度值进行二值化和滤波处理,最终确定跑道的路况情况.

2.2 阈值提取方法

在智能小车中常用的阈值提取方法有固定阈值法;取平均电压值作阈值与计算max与min的均值作阈值,通过对比分析得出本系统采用大津算法求阈值法.

2.2.1 固定阈值主要思想

在黑白电压值较稳定,浮动范围很小的情况下,如白色路面的电压始终在170上下极小的范围内浮动,黑色路面电压在50左右稳定,此时阈值可选范围很大,随机取一个100或120都是没问题的.但很多CCD存在畸变,视野两侧的电压始终很低,而且有时考虑到CCD视角的变化(如更改前瞻,焦距),图像的波动可能也会较大,用以下两种方法可能更实用.

2.2.2 取平均电压值作阈值法

计算出128个像素点电压的平均值,取此值作为图像二值化的阈值,可以增强环境的适应性,由于实际的黑白电压的门限不断变化且有一定的波动,或者外界光线亮暗略有不均,此方法依然能够适用.

2.2.3 计算max与min的均值作阈值法

需要对128个像素点做排序,取出电压最大与最小的两个像素点的电压值,取二者的平均值作阈值,通过实践测试,这种方法具有一定的效果,但是考虑到比赛赛场上的光线过强,加上CCD畸变的影响,即使加上偏振片,得到的图像可能仍不理想.

2.2.4 大津算法求阈值

由于比赛场馆的光线分布式不均匀的,如果采用固定的阈值会影响图像处理的效果,所以采用了大津算法动态求阈值.大津算法(OTSU)是一种确定图像二值化分割阈值的重要算法,这是由日本学者大津于1979年提出,从大津的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大.

图3 直方图

原理:对于图像I(x,y),前景(即目标)和背景的分割阈值记作T,属于前景的像素点数占整幅图像的比例记为ω0,其平均灰度μ0;背景像素点数占整幅图像的比例为ω1,其平均灰度为μ1.图像的总平均灰度记为μ,类间方差记为g.假设图像的背景较暗,并且图像的大小为M×N,图像中像素的灰度值小于阈值T的像素个数记作N0,像素灰度大于阈值T的像素个数记作N1,则有:

将式(5)代入式(6),得到等价公式:

g=ω0ω1(μ0-μ1)^2(7)(这是类间方差)

采用遍历的方法得到使类间方差g最大的阈值T,即为所求.

大津算法的形象理解:

对于直方图有两个峰值的图像,大津法求得的T近似等于两个峰值之间的低谷.图3为图像的直方图,使大津法求得的T=0.5294,转换在[0,255]之间为134.9970,只好是两个峰值之间低谷的位置.

2.3 系统图像处理过程

图像处理的滤波算法较多,主要分为平均值滤波,中值滤波,限值滤波,滑动平均值滤波等.考虑到其他的滤波运算量大,需要占用大量内存,故采用了中值滤波和滑动平均值滤波相结合的算法.中值滤波的优点是能够有效克服因偶然因素引起的波动干扰,滑动平均滤波的优点是对周期性干扰有良好的抑制作用.

在实际处理中,每次取一行中3个相邻列的灰度值,先判断这3个值是否有相同的灰度值,若灰度值相同则采用滑动平均值滤波,取平均值,并将第二个值修改为该平均值;若灰度值不同则采用中值滤波,并对这3个值进行排序,将第二个值修改为3个数值的中间值.该算法对一个像素点的过滤仪用到r相邻两个像素点的灰度值,计算量不大,占用内存不多,适合单片机的计算,且该算法相对来说较简单,时间复杂度不高,满足了小车对快速控制系统的要求.滤波前后图像对比如图4所示.

图4 滤波前后图像对比图

2.4 跑道轨迹提取

在滤波后的图像中,白色为小车的行驶范围,黑线为小车需要行驶的轨迹,因此,轨迹线的提取即为黑线,所以采用跟踪引线的黑线提取算法.假设某时刻找到某行的黑线中心位置m,则下一时刻在下一行的m附近搜寻黑线的左右边缘,然后计算该行的中心位置.该方法的特点是始终在前一行的引线中心位置附近寻找下一行的引线位置,故称为“跟踪”引线的黑线提取算法.该算法的优点是在首行引线检测正确的前提下具有较强的抗干扰性,能更有效地消除十字垂直交叉黑色引线的干扰以及引线外黑色噪点的影响,始终跟踪目标引导线.

在试验过程中,发现该算法有一定的不足.由于是在连续邻域上跟踪引导线,因此,若第一行引线的检测位置和实际导引线偏差较大,将产生一连串的错误,甚至造成小车失稳.为防止这种现象的发生,可利用前面两行的引线中心位置来确定下一行的黑线位置.因为前两行同时出错的概率远远小于一行出错的概率,所以采用这种方法造成丢失引线的几率会大大减小.

此外,针对每行中的孤立噪点,采用计数法排除.如果连续黑点数小于某个阈值时,认为是噪声影响,而非实际的黑线,从而可以减少误判概率.

2.5 轨迹曲率处理

对于道路形状的判断,可以采用曲率法.找到每行黑线的中心位置后,再进行道路曲率信息的计算,即可得出道路的类型.简单的曲率计算公式如下所示:

式中:x1,x2和x3为3个实际距离相等的行的黑线位置.

行驶路径类型可以分为直道、曲率小的s弯、曲率大的S弯和普通弯道4类.u型弯道和0型弯道可以认为是多个同方向普通弯道连接在一起,因此,都可以被认为是普通弯道.若计算出来的曲率q接近0,则说明该段道路为直道或者小S弯;若曲率q比较大,则说明该段道路为普通弯道;若计算出来的曲率q非常大,则说明该段弯道为大S弯.

在计算得到各段道路的具体类型之后,就可以进行小车行驶路径的优化.通常情况下,直道和小s弯道按照直线行驶通过;对于普通弯道,一般将小车行驶路线的曲率比道路弯曲程度大一点,尽量以微内圈的线路通过;对于大S弯道,需要将小车的行驶路线曲率比道路弯曲程度小一点,在不跑出道路的情况下尽量少走弯路,这样小车看到的弯道类型始终是大s弯道,即可以连续地走“小弯”路线通过,这样既节约时间,且行驶速度不会因为拐弯太大而过于减小,并保持匀速行驶.

优化前后路径如图5所示,虚线代表实际道路形状,带箭头的实线代表优化后的路径形状.

(2)小S弯道

(3)大S弯道

3 结束语

采用线性CCD检测的循迹智能车系统的设计涵盖了多个学科交叉知识,利用K60芯片作为核心控制器,CCD作为路线探测器,本文针对智能车系统的具体实际的图像处理方案设计过程,具体包括图像信息处理,阈值提取方法,系统图像处理过程跑道轨迹提取,轨迹曲率处理等过程.经过实际检测,按照本文所设计的智能汽车模型能够在规定的直行、S型、十字交叉路口、斜坡、直角弯等赛道上自助导航行使,速度能达到2m/s的速度,满足实际需求.另外基于本文所研究思想,可以在其他自动控制领域发挥作用,这也是文章的另外一个目的.

〔1〕卓晴,黄开胜,邵贝贝.学做智能车[M].北京:北航出版社,2007.

〔2〕赵春燕,郑永果,王向葵.基于直方图的图像模糊增强算法[J].计算机工程,2005.

〔3〕李忠海.图像直方图局部极值算法及其在边界检测中的应用[J].吉林大学学报,2003.

〔4〕冈菩萨雷.数字图像处理[M].北京:电子工业出版社,2002.

〔5〕吴怀宇.大学生智能汽车设计基础与实践[M].北京:电子工业出版社,2008.

猜你喜欢
黑线引线曲率
大曲率沉管安装关键技术研究
一类双曲平均曲率流的对称与整体解
基于超导磁体的高温超导电流引线的传热优化
带平均曲率算子的离散混合边值问题凸解的存在性
黑线
半正迷向曲率的四维Shrinking Gradient Ricci Solitons
虾背黑线真的特别“脏”吗
鞭炮迷宫
这也算海鲜
变压器引线设计