基于摄像头的智能车黑色虚线识别算法研究

2014-12-28 02:09程鸿芳钱峰李敏
关键词:黑线虚线检测法

程鸿芳 钱峰 李敏

(芜湖职业技术学院,安徽芜湖 241000)

“飞思卡尔”杯全国大学生智能车大赛是由摩托罗拉旗下飞思卡尔公司赞助、由高等学校自动化专业教学指导委员会负责主办的全国性的赛事。按照首届全国大学生“飞思卡尔”智能车大赛规则要求,根据赛道特点,主要有3种寻线设计方案:光电传感器方案、摄像头方案和电磁方案。2011年第六届比赛中要求赛道是由白色底板和黑色的指引虚线组成,综合考虑3种方案的特点,本文采用的是摄像头方案。

在摄像头方案的前提下,在实时的图像数据获取的基础上对图像信息进行数据处理,从而提取赛道中心的黑色指引虚线,以此来作为舵机和驱动电机的控制依据。以往的赛道中的黑色指引线是实线,而第六届比赛赛道是黑色的指引虚线,中间存在断点。针对这种赛道,本文采用的方法是在改进的边缘检测算法和左边跟踪检测法的基础上,将虚线跑道补实,从而完成智能车的赛道信息采集。由边缘检测算法和左边跟踪检测法得出的各行黑线的中心值center(i),纵坐标记为i;当检测遇到虚线时,将上一行实线的中心值center(j)弥补本次的中心值,横坐标记为center(j),这样虚线两边与实线交界点的坐标记为 (center(j1),j1)和 (center(j2),j2),求出这两点构成直线的斜率k和直线方程,即可算出虚线行的横坐标,来补足虚线。

1 摄像头采样数据的特点

本文采用的数字摄像头的型号为OV7620,将摄像头固定在车体的中间,前瞻性约1 m。要想采集的图像准确,必须要了解摄像头的时序,摄像头的时序图如图1所示。

图1 OV7620时序图

在图像采集方面,因为单片机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 黑色指引虚线的提取算法

黑色指引虚线的提取算法在边缘检测算法和左边跟踪检测法的基础上,将虚线补成实线,然后提取黑色实线。xs128(飞思卡尔的芯片)片内的ran是8 K,为减少ran的使用效率,应尽量减小图像矩阵。本文中使用64*84的图像矩阵。具体操作:

步骤1:从离摄像头开始选取12行,采用边缘检测法,检测提取出黑线中心值center[i];

步骤2:当遇到虚线时,暂时先用上一次采用的黑线中心值弥补这一次的中心值,记下此虚线区的行号范围;

步骤3:剩下的40行采用左边跟踪检测法,以范围型的检测提取黑线中心值center[i];

步骤4:同步骤2;

步骤5:采用中值滤波,将中心值进行中值滤波,使图像更圆滑;

步骤6:进行虚线处理,将虚线的上下2点连成直线,2 点的坐标分别为 (x1,y1),(x2,y2),该直线的斜率,根据公式y=kx+b,求出所有点的列号。将所有点根据坐标值,进行相连,将虚线转变成直线。

步骤7:返回步骤1。

5 实验结果

(1)在实验过程中,赛道原图如图2所示,摄像头采集长度约为1 m的路径,如图3所示。

图2 赛道原图

图3 赛道采样图

(2)对虚线赛道进行提取操作,如图4所示。

图4 赛道提取图

(3)对虚线的处理操作,将虚线的上下2点A、B连成直线,A点的坐标为(x1,y1),B点的坐标为(x2,y2),直线AB的斜率,根据公式yAB=kABx+b,求出所有点的列号。将所有点根据坐标值,进行相连,将虚线转变成直线,如图5所示,补齐的赛道如图6所示。

图5 坐标图

图6 赛道图

6 结论

本文提出的算法是在改进的边缘检测算法和左边跟踪检测法的基础上,利用直线斜率和直线方程,将虚线跑道补实,来完成智能车信息采集的。在系统设计完成后,经过多次的调试运行,智能车系统在遵守比赛规则正确寻迹的前提下,平均速度达到2 m/s,弯道速度可达1.8 m/s,而在直道上,智能车的速度可以达到2.2 m/s。实际测试表明,该方法能够实现路径识别的正确性和快速性,可在黑白(或色差较大)赛道上获得良好的自主寻迹效果。

[1]朱振伟,刘广瑞,刘巧红.一阶边缘检测算法的研究[J].现代电子技术,2009,24(11):88-90.

[2]吴晴,吴振华,郑榜贵.形态学在道路图像边界检测中的应用[J].控制工程,2010,17(1):80-86.

[3]许寰,鲁五一,赵治平.摄像头路径识别和小车控制策略[J].计算机工程与科学,2009,31(5):110-115.

[4]艾宁,瞿少成,刘冬,等.基于CCD摄像头的智能车路径识别及跟踪研究[J].电子测量技术,2009,32(8):77-80.

[5]朱广,周程亮.CCD图像传感器在路径识别系统中的应用[J].工业控制计算机,2009,22(3):50-51.

[6]梁业宗,李波,赵磊.基于路径识别算法的智能车控制系统的设计[J].自动化技术与应用,2009,28(1):121-123.

[7]韩毅,杨天.基于红外传感器的智能寻迹赛车的设计与实现[J].计算机工程与设计,2009,30(11):2687-2690.

[8]陈东,向巍.基于光电管的智能车模设计[J].机床与液压,2007,35(7):51-54.

[9]吴斌华,黄卫华,程磊,等.基于路径识别的智能车系统设计[J].电子技术应用,2007(3):80-83.

[10]程钊,万齐齐,唐旋来,等.智能车道路识别及控制研究[J].伺服控制,2007(11):49-51.

猜你喜欢
黑线虚线检测法
浅析GB50325-2020与GB/T18883-2002关于室内环境污染物检测法的区别
黑线
大牛
虾背黑线真的特别“脏”吗
T-SPOT.TB检测法和荧光定量PCR检测法在诊断结核病中的应用价值
一种针对噪声不确定性的顽健循环特征检测法
这也算海鲜
七巧数独