基于K60竞赛用智能汽车的路径识别系统研究

时间:2022-07-21 12:59:53

基于K60竞赛用智能汽车的路径识别系统研究

摘 要 智能车技术的研究是一项综合性的研究,其中包括机械、传感器检测、电机控制、模式识别、图像分析、信号处理、嵌入式系统等多个学科融合。本文以智能车控制系统的图像信号采集与图像处理为研究对象,分析了图像传感器OV7620的工作原理,并且提出了图像信号采集与图像处理的方法,图像处理中使用了二值化和中值滤波算法,在提取黑线上采用边沿提取法。

关键词 图像传感器OV7620 二值化 中值滤波 边沿提取法

中图分类号:TP391 文献标识码:A

1图像传感器OV7620的工作原理

摄像头 OV7620 是一款数字的 CMOS 型、NTSC 制式的摄像头,每秒能够输出 30 帧图像,OV7620 摄像头是隔行扫描图像的,即在每行扫描点数不变的情况下,将图像分成奇偶两场分别传送,奇场图像传送 1、3、5、7……奇数行,偶场图像则传送与之相对应的偶数行,这两场图像的效果是一样的。图像在低电平的时候传输给的单片机,采用下降沿捕捉,既在每场图像开始时候采集,采用这种方法采集的图像更为准确些。行中断的周期为 63.6us,图像在高电平时输出像素点,低电是换行时间,所以一定要捕捉上升沿将来触发行中断,因为下降沿后的数据是无效的。

要操作摄像头,首先进行初始化,传统的中断触发方式都是上升沿触发,而本文研究的行、场中断都是下降沿触发,在这里需要解释一下。由于OV7620的图像大小是640'480,而单片机不需要这么多的列,由于使用了DMA功能,而DMA只能连续采集,因此我们选用硬件四分频,因此实际采集到的列数为640/4=160列,而行数我们采用隔行采集的思想。

做摄像头信号采集一定要做好时序的分析工作,一帧分为两场图像,即奇场和偶场,将图像处理放在偶场进行处理,而奇场进行采集图像。其中AcqAryy[50]中存入需要采集的行,由于摄像头一帧有480行,一场有240行,因此,需要在这240行中挑选50行,具体操作为在赛道上放一根黑条,每2cm采集一次(理论距离为250=100cm,但实际最远端的行采集不清楚,不得不每两行采集一次,调整一次黑条,也可在赛道上粘50根黑条,直接采集240行图像,发送到上位机上,从中挑选50行,最终能够达到图1的图像效果。

3.1二值化处理

将图像导入matlab进行分析,发现原始图像像素值均在0-255内,而白色区域像素值一般在 160以上,黑色区域一般在 70以下。为了提取出黑线,检测像素值的跳变是最直观的方案,但是实际中一般黑白线边沿的像素值不是突然跳变的,而有一个过渡过程。所以,将原始图像进行二值化处理不但有清晰边沿线的功能,还能方便后续路径识别部分算法的设计与处理。

二值化处理就是对于输入图像的各个像素,先确定某个亮度值,当像素的亮度超过该阈值时,则将对应输出图像的像素值设为 1,否则为 0,原理公式如下:

其中, f ( x, y), g ( x, y)分别为处理前 、处理后的图像中处于( x, y)位置上的某个像素的浓度值,t为阈值 。图 2为二值化后的效果, 0为黑点, 1为白点 。

二值化后的赛道状况已经非常明了,但是仍有干扰存在,这样对赛道的识别及接下来的算法设计会造成一定的困难。 因而,选择对图像进行中值滤波。该方法是一种局部平均的平滑技术, 对脉冲干扰和椒盐噪声的抑制效果好,能有效保护图像的边缘 。

1x3窗口中值滤波是非常简单的一种去噪方法,是将某个像素点和相邻两个像素点的像素值按大小顺序排列,取出中间值作为该点的像素值。这种方法能够有效地抑制随机噪声,并且计算量相比去噪常用的 3x3模板要小得多 。减小计算量能够有效地提高单片机识别道路的速度,这一点对时间要求较高的实时处理是非常重要的。

为了说明此方案的适用性,随机在图像数组中加入噪声点,如图3。为了使接下来的验证过程更为方便,设计中将实际图像用matlab进行二值化,导出一个二维数组,在验证算法时不同的道路状况只需修改数组中的值即可。

3.2黑线提取

这里的黑色引导线以白色为衬底,因黑线和白色底板存在很多大灰度比,在图像信号上会形成相应高低不同的电压值。当检测到黑线时,图像信号中将形成一个“ 凹”形槽,凹槽处即是黑线在一行数据中的相对位置。

对图像每行数据的处理将得到每行图像中黑线的相对位置,即下面的行数据处理;而对每行图像中黑线的位置的综合分析将再现黑线的形状,即下面的帧数据处理。本设计将采集的模拟量数据存放在一个二维数组中,当完成对一行数据的采集后,就可以对该行的数据进行处理,即提取黑线的算法。 在提取黑线上采用边沿提取法。该算法具有对黑线反应灵敏、准确度高、抗干扰能力强等特点。

图4表示的是光线比较好的情况下,A/D采集一帧中一行像的数值结果,即二维数组中的某一行数据。小圆点的纵坐标表示 A/D采集值,横坐标表示采集点在二维数组该行中的相对位置。

边沿提取法,即通过程序检测到上述图形的上升沿和下降沿 ,然后通过上升沿和下降沿的位置求出黑线的位置。边沿提取算法流程,其提取流程如图5所示:

通过判断下降沿位置和上升沿位置,来计算黑线的相对位置,并通过判断上升沿之后的数据是否满足相差不大于阈值来减小误差,以精确计算黑线的相对位置。

参考文献

[1] (日)井上诚喜,等.C语言实用数字图像处理[M].白玉林译.北京:科学出版社,2003.

[2] 王荣本,游峰,崔高健,郭列.基于计算机视觉高速智能车辆的道路识别[J].计算机工程与应用,2004(26).

[3] 张晓飞,袁祥辉.基于 DSP成像系统的视频图像采集部分的实现[J].压电与声光,2002, 24(3).

上一篇:浅析青少年篮球运动员篮球意识培养 下一篇:用C语言实现哈夫曼编码译码