一种非均匀行采集的智能车路径识别算法
为尽可能减小误分割的概率,增强智能车的抗光线变化干扰能力,本文采用动态阈值对每一行图像进行分割,根据上一行的图像数据确定下一行的阈值,阈值T的确定方法为[6]:
式中,bm和tm分别为背景和目标区域平均灰度值。
这里先取图像灰度范围的中值作为第一行的初始值,然后迭代求得各行的值。具体迭代步骤如下:
(1) 求出第一行图像中的最大灰度值maxZ和最小灰度值minZ;
(2) 求出第一行的初始阈值T0=(maxZ+minZ)/2,给定迭代时新旧阈值的允许接近程度ε=5;
(3) 求出第一行图像中灰度值Z≥T1的所有像素点的数量bn、累加和bS以及灰度值Z< T1的所有像素点的数量tn、累积和tS;
(4) 计算确定第一行阈值
(5) 转至步骤(3),求出第i行阈值Ti,如果则Ti为最终阈值,否则,Ti =Ti-1。
边缘检测
边缘是目标与背景相邻区域之间灰度值不连续的结果,边缘检测是所有基于边界的图像分割的第一步。本系统的引导线与地板的色差较大,反映在数据中就是灰度值差别较大,引导线与地板间的边沿较明显,如图5所示,因此对边缘进行检测较容易且可靠性高。
边缘检测的思路是:确定一阈值,对采集的单行图像数据逐点进行扫描,若灰度值小于阈值,则判断该点为黑点,即检测到引导线左边缘,继续扫描,若灰度值大于给定阈值,则该点为白点,将该点作为引导线右边缘。右边缘和左边缘的横坐标之差为引导线的宽度,其平均值即为引导线的中心横坐标值。
由于图像数据中可能存在着未被滤出的噪声点,通过以上算法不可避免地会将一些噪声点识别为引导线。从而可能在一行数据中存在多段黑线,根据路径的连续性特性对路径进行提取可提高引导线识别的可靠性。提取路径的过程如下。
(1)如果该行中没有检测到黑线,则该行为纯白或纯黑行,将路径坐标置为零,同时将无效行标志置位。若该行为一场的第一行,则将无效场标志置位。
(2)如果检测到一段黑线,若黑线宽度大于设定的先验值,则将该黑线段的中心坐标作为该行的路径中心坐标,否则将该行设为无效行。
(3)如果检测到两段黑线,若该行为一场的第一行,则该行的路径坐标不变,即保持上一场该行的路径坐标;否则,分别判断两段黑线与上一行路径坐标的距离,取距上行较近的黑线中心为该行路径坐标。
(4)如果检测到更多黑线,则该行无效,将路径坐标置为零,同时将无效行标志置位。
整场数据处理
道路图像经过单行路径提取以后,横向的单点噪声已经消除,但是对于部分宽度较大的干扰却无法滤除,这样提取出来的路径在某些行就发生了跳变。为了得到准确的引导线参数,为后续的控制模块提供精确的导航参数,需要在整场图像采集完毕之后,对提取的路径进行纵向的平滑。
断点修补
由于光线的不均匀或路径中出现较大的干扰,可能会出现部分行采集不到引导线的情况,从而出现断点。而且交叉道路的图像经过上述方法处理后也会出现断点的情况,因此有必要加入断点修补环节,对路径进行纵向滤波。
根据引导线的连续性,路径坐标不应该出现突变的情况,也就是引导线的一阶导数应该是连续的,即引导线的斜率不会发生突变。根据这个特性,断点修补的方法步骤如下:
(1)求出第i行与第2i−行的路径坐标之差
(2)求出第1i−行与第3i−行的路径坐标之差
(3)求出Dposition[1]与Dposition[2]之差的绝对值
(4)若Adposition大于4,则
通过该算法,道路图像断点区域得到了修复,引导线从首点到末点之间形成了一条连通的曲线,这种断点修补方法满足了智能车提取引导线趋势的要求。
纵向滤波
对于某些跳变不大的干扰行,虽然不会影响对路径整体趋势的判断,但其对后续控制模块的计算会产生较大影响。当控制行坐标突变时,势必会造成舵机的抖动,智能车速度较快时甚至会导致车体脱离引导线,因此加入纵向滤波环节对路径进行平滑很有必要。
纵向滤波采用中值滤波的思路,具体方法为:判断该行路径坐标若在其前一行和后一行的同一侧,即该行坐标同时大于或同时小于其前一行和后一行坐标,则赋予该行坐标为其前一行和后一行坐标的平均值。
导航参数获取
经过路径提取后,得到引导线在图形坐标系下的坐标(u,v),然后通过式(3)、(4)得到引导线的世界坐标(x ,y ),通过最小二乘法进行曲线拟合,便得到引导线的曲线方程。对于直线模型y=kx+b,可运用斜率 k和截距b作为导航参数对车体进行控制[7];对于曲线模型,可得到弯道的曲率半径和横向偏差作为导航参数对车体进行控制。
实验结果分析
采集方案实验
摄像头采集的图像如图6所示,a为均匀行采集效果,b为按表1分布行数采集的效果。由图可以看出,非均匀
- 基于16位单片机MC9S12DG128的智能车控制系统设计与实现(11-11)
- 基于9S12DG128的智能车控制系统设计与实现(08-27)
- 数字CMOS摄像头在智能车中的应用(08-29)
- 基于电磁场检测的寻线智能车设计(09-22)
- 基于载流导线循迹智能车的数学模型(10-12)
- 飞思卡尔智能车舵机和测速的控制设计与实现(01-15)