基于边缘检测算法的智能车赛道识别方法丁芳,刘宇,夏阳,王海库(中国民航大学航空自动化学院天津300300)摘要:赛道的识别是智能车沿赛道行驶的基础。准确的赛道识别能够为智能车进行方向控制和速度控制提供准确、必要的信息。本文利用边缘检测算法对赛道图像进行处理和识别。边缘检测算法与简单的二值化法相比具有处理时间短和处理效果好的优点。基于边缘检测算法的智能车赛道识别方法在以CMOS图像传感器采集图像信息的智能车上实现。实验表明:这种赛道引导线的识别方法准确率很高,可以较好地满足车寻迹行驶的要求。关键词:赛道识别;智能车;CMOS图像传感器;边缘检测。TheMethodBaseOnEdgeDetectionArithmeticIntheSmartCarTrackIdentificationAbstract:ThetrackIdentificationisthebasicoftheSmartCartravelingalongthetrack.AccurateidentificationofthetracksupportnecessaryinformationfortheSmartCartocontroldirectionandspeed.Thispaperistheapplicationoftheedgedetectionarithmetictotrackimageprocessingandrecognition.Theedgedetectionalgorithmisbetterthanthesimplebinaryimageforitcostslessprocessingtimeandbetterinaccuracy.ThemethoddiscussedinthispaperhasbeenaccomplishedintheSmartCarwithuseCMOSimagesensortogetimageinfomation.Experimentsshowedthat,thismethodhasahighrateofaccuracyoftrackidentificationanditcanmeettherequestoftheSmartCartogoalongthetrack.Keywords:trackidentification;SmartCar;CMOSimagesensor;edgedetection1引言赛道识别是智能车沿赛道行驶的基础,得到准确充足的赛道信息是智能车以较短时间完成比赛的前提。本文使用边缘检测方法,根据图像各区域像素点间灰度变化梯度检测出黑线的边缘,这种方法与固定阈值二值化法相比抗干扰能力较强,处理数据少,检测准确率高的优点。文中使用CMOS图像传感器和MC9S12DG128微控制器组成了图像采集系统,采集获得的赛道图像信息以矩阵形式存放于微控制器的RAM中,图像的分辨率为68×39。测试表明,基于边缘检测的黑线中心提取算法可有效的从赛道图像中提取出黑线中点,具有一定的抗图像干扰能力和对环境的适应能力。2摄像头安装摄像头安装于智能车车身上方,镜头朝向前下方。为了使智能车具有更好的前瞻性,应尽量提高摄像头的高度并增减小摄像头与竖直面间夹角。由于图像分辨率的限制和需要尽量减小图像的变形,最终确定摄像头的安装位置如图1所示。当车位于直赛道上并与赛道方向相同时,采集到的图像离车最近处黑线约为3~5黑点,最远处黑线为2黑点。图1摄像头安装位置图3赛道图像特征分析智能车要求在专用的赛道上行驶。赛道为中间有黑色引导线的白色基板,因此只需根据识别出白色赛道上的黑色引导线即可。赛道表面为白色,中间为2.5cm宽的黑线,赛道的最小曲率半径为50cm。在正常情况下,车身应该沿赛道方向,车身与赛道方向角度偏差较小(弯道稍大时,直线段偏差一般不会超过30°)。赛道的图像通常为一条连续垂直或倾斜的黑色曲线,图像的每一行只有一段黑线(90°交叉线除外),黑线一般会通过图像的最后一行。智能车行驶在直道上时,黑线会贯通图像的每一行,如图2所示。赛道为最小曲率半径弯道时黑线出现在图像中下部,如图3所示。智能车行驶在弯道或车与赛道偏角较大时,摄像头可能采集到赛道外图像,赛道外图像最有可能出现在图像上半部。图2直道图像(分辨率52×39)图3最小弯道图像(分辨率45×39)4赛道数据特征分析由于光线、摄像头角度影响以及A/D转换误差等,会造成图像数据不稳定。图4数据为最小弯道图像右下角部分数据。从中可以看到,白色赛道图像最高值为8E(142),最低为83(131),白色间差值为11;黑线图像最高值为73(115),最低为63(99),黑色间差值为16;黑白间最小差值为16。另外黑白交界处还有7A(122),81(129)等过渡像素点。从数据可以看出,数值整体浮动较大,但噪声并不严重。图4弯道图像部分数据5.黑线中点提取算法1.赛道边缘检测方法根据图像数据的特点,文中采用了赛道边缘监测方法。○1确定黑色和白色的基准值。为了增强智能车的环境适应能力,通过扫描图像的最后一行,按照比较的方法,得到图像中的黑色和白色基准值。在选取黑色和白色的基准值时,为了防止噪声的干扰,当最小值(最大值)与其他较小值(较大值)相差不大时才选取其为黑色(白色)基准值,否则认为是噪声将其排除掉。找到黑色和白色基准值dark和white后计算出之间差值dif,并以dif*3/4作为区分黑色和白色的阈值,即当某点c≥white-dif*2/3时认为其可能为白点,当c≤dark+dif*2/3时认为其可能为黑点。这样,黑、白区域就有了一块重叠的区域,如图5所示。图5黑、白区域的划分○2在检测黑线边缘时,使用差值法。k点为黑点,c(k)为其灰度值,当其右侧点k+1灰度值c(k+1)c(k)+dif/2或其右侧第二点灰度值c(k+2)c(k)+dif*2/3且被判断为可能为白点时判断其为黑线边界。选择k+1和k+2两点与k点比较可以避免黑线和白色赛道交界处可能出现的过渡值。○3为了避免突发噪声的影响,在找到黑线边界k(黑点),k+1(白点)后,要比较k+1,k+2,k+3是否近似相等(白色区域较宽且,局部范围内变化很少),如近似相等则肯定k+1为黑线的边界。○4受光照和摄像头角度影响,赛道不同区域亮度浮动可能较大,为此要根据图像变化随时调整dark和white值。2.提取黑线中心的方法根据赛道图像特征的分析可知,黑线容易在最后一行出现,并且图像前端易受干扰,所以从图像最后一行开始寻找黑线成功的概率较大。在确定黑线后,以该段黑线作为寻找黑线的起始点向上寻找黑线,这样不仅可以消除图像中干扰的影响,又可以减小搜索时间。具体方法如下:变量介绍:用数组center[i]按序存放找到的第0行至第38行的黑线中点。用变量start和end分别记录找到的黑线的起始点和终止点。left和right分别用于记录黑色区域的左右边界,center[i]=(left+right)/2。变量root为每行查找的起始点。黑线中点提取算法步骤:○1寻找黑线起点;○2由left和right计算center[i];○3行数i自减,开始下一行;○4判断是否完成,完成则结束,否则继续;○5由上一行的center找到本行的root;○6找到left和right并判断是否正确,正确执行○2,否则继续;○7判断是否为交叉线,是交叉线则根据已得黑线趋势推算出center[i]并跳至○3,否则结束。图6为黑线中心提取算法结构框图。图6黑线中点提取算法结构框图3.以直线预测算法处理交叉线在赛道的基本元素中有90°交叉线,需要在程序中识别出交叉线,防止车走错方向。当车身与赛道夹角较小时,可以很好的寻找到黑线的起始点;当车身与赛道夹角较大时,黑线起始点的寻找出错概率会相应增大。在寻找到正确的黑线起始点的前提下,当检测至交叉线区域,left与right间距离突然变大,此时使用直线预测算法,根据已经检测出的黑线,根据其趋势预测出后面黑线可能出现的位置。具体方法如下:由黑线起始中点位置center[start]和当前行黑线中点center[i]预测出center[i-5]的位置[][][5][]38centericenterstartcentericenterii得到center[i-5]后以该点是否为黑点,如果该点为黑点,则拟合出当前行的黑线中点,否则结束寻找。采用直线预测算法,不仅可以滤掉交叉线的干扰还可以滤掉赛道上较小异物造成的干扰。图7为90°交叉赛道图像和使用该方法从该图像中提取赛道黑线中点的结果。图790°交叉赛道图像及其黑线中点提取结果图像6.结论实际测试表明,基于边缘检测的黑线中心提取算法可有效的从赛道图像中提取出黑线中点,具有一定的抗图像干扰能力和对环境的适应能力。在图像干扰不是很强时,其黑线中心提取准确性很高,再加以适当的判断和滤波可以满足小车寻迹需要。参考文献:[1]刘志娟,高有行基于趋势优先跟踪方向的直线矢量化算法[J]计算机工程与设计2006,12[2]CharlesPetzoldWindows程序设计(第五版)[M]北京:北京大学出版社,2004,9