基于摄像头的智能车黑色虚线识别算法研究
程鸿芳 钱峰 李敏
【摘 要】摘 要:针对“飞思卡尔”智能车竞赛的赛道由虚线组成的特点,提出一种提取智能车黑色虚线识别算法。该算法将是在改进的边缘检测算法和左边跟踪检测法的基础上,利用直线斜率和直线方程,把虚线跑道补实,来完成智能车赛道的信息采集。实际测试表明该方法能够实现路径识别的正确性和快速性,可在黑白(或色差较大)赛道上获得良好的自主寻迹效果。 【期刊名称】重庆科技学院学报(自然科学版) 【年(卷),期】2014(016)001 【总页数】3
【关键词】关键词:摄像头;边缘检测;图像采集
“飞思卡尔”杯全国大学生智能车大赛是由摩托罗拉旗下飞思卡尔公司赞助、由高等学校自动化专业教学指导委员会负责主办的全国性的赛事。按照首届全国大学生“飞思卡尔”智能车大赛规则要求,根据赛道特点,主要有3种寻线设计方案:光电传感器方案、摄像头方案和电磁方案。2011年第六届比赛中要求赛道是由白色底板和黑色的指引虚线组成,综合考虑3种方案的特点,本文采用的是摄像头方案。
在摄像头方案的前提下,在实时的图像数据获取的基础上对图像信息进行数据处理,从而提取赛道中心的黑色指引虚线,以此来作为舵机和驱动电机的控制依据。以往的赛道中的黑色指引线是实线,而第六届比赛赛道是黑色的指引虚线,中间存在断点。针对这种赛道,本文采用的方法是在改进的边缘检测算法和左边跟踪检测法的基础上,将虚线跑道补实,从而完成智能车的赛道信息采
集。由边缘检测算法和左边跟踪检测法得出的各行黑线的中心值center(i),纵坐标记为i;当检测遇到虚线时,将上一行实线的中心值center(j)弥补本次的中心值,横坐标记为center(j),这样虚线两边与实线交界点的坐标记为 (center(j1),j1)和 (center(j2),j2),求出这两点构成直线的斜率k和直线方程,即可算出虚线行的横坐标,来补足虚线。
1 摄像头采样数据的特点
本文采用的数字摄像头的型号为OV7620,将摄像头固定在车体的中间,前瞻性约1 m。要想采集的图像准确,必须要了解摄像头的时序,摄像头的时序图如图1所示。
在图像采集方面,因为单片机XS128的内存和数据处理能力,使得只能对整幅赛道图像的一部分进行采集。目前常用的采集方法有2种:一是采取固定的隔行数进行隔行采集;二是采取远近隔行采集。本文采取远近隔行采集,因为摄像头在采集过程中会产生畸变以及光线的影响,距离越远,图像畸变的越厉害,那么就把采集到的赛道图像分成几部分处理。本文将图像分4段采集,以远处的图像小近处图像大的特点使用远密进疏的原则,前20行每隔2行采1次,20到60行中每隔3行采1次,60到140行中每隔4行采1次,剩下的每隔5行采1次。这样能更真实的展现图像。
2 改进的边缘检测算法
图像的边缘包含用于识别的有用信息,图像的其他特征都是由边缘和区域这些基本特征推导出来的[1]。文献[2]将边缘定义为场景某一区域的不连贯,文献[3]则根据外形将边缘分为:线、阶梯、尖顶。图像中的物体与物体,或者物体与背景之间的交界可以视为边缘,图像的灰度及颜色急剧变化的地方也
可以看作是边缘。在图像中有颜色的变化必定会有灰度的变化,故对于边缘的检测焦点集中在灰度上就可以[4]。常规算法将图像进行二值化处理,在本文中直接使用摄像头获取的灰度值,减少了二值化的过程。实际操作中,我们认定阈值在20~50之间为黑点,阈值在180~220之间为白点。具体操作:从第一行的第一列开始进行处理,用第一行的第i个点的灰度值减去第i+1个点的灰度值,当它们的差在[20,50]时,说明已找到黑点,即找到了黑线的起始点,然后记下该点的位置,并把该点标记为左边界left,然后继续进行判断,当出现差值在[180,220]时,说明已找到了黑线的结束点,记下该点的坐标值,并标记为右边界right。如果前2个点大于阈值且后2个点小于阈值,即为无效行。分别求出每行的左右黑点位置,并标记为left和right,然后各行的中心值为,最后赋给数组center(i)。
3 左边跟踪检测法
左边跟踪检测法是一种改进的边缘检测算法。其思路是:先根据边缘检测算法找到第一行的黑线中心坐标,对于下面的行处理,根据图像的连续性,下一行的黑线中心就是在上一行的黑线中心附近进行搜索[5]。具体操作:找出离摄像头最近的第一行采用边缘检测找出中心值center;从第二行开始以前行的中心值为基准点,设定步变量,值为20。从基准点开始向左边以20以内的范围进行查找,如果符合条件,将符合条件的纵坐标作为中心值。如不符合条件,就以基准点开始向右边以20以内的有效范围内进行查找。如果符合条件,将符合条件的纵坐标作为中心值。如不符合条件,则为无效行。
4 黑色指引虚线的提取算法
黑色指引虚线的提取算法在边缘检测算法和左边跟踪检测法的基础上,将虚线