APP下载

摄像头组智能车图像预处理算法研究

2014-12-09王诗元吕子豪田洪亮

无线互联科技 2014年11期

王诗元 吕子豪 田洪亮

摘 要:本文以大学生“飞思卡尔”杯智能汽车竞赛摄像头组比赛为背景,通过分析数字摄像头图像采集原理,提出了几种图像预处理算法,提高了一般情况下智能车对图像识别的准确度。

关键词:摄像头组;智能车图像;预处理算法

1 引言

“飞思卡尔”杯智能汽车大赛起源于韩国,是韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCS12单片机为核心的大学生课外科技竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能汽车。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用。摄像头组智能车通过数字或模拟摄像头采集信号,单片机对采集到的图像信息进行处理,得到赛道的基本信息。因此,如何能正确的处理图像信息,对于摄像头组智能车能正确识别赛道起到至关重要的作用。本文首先分析了数字摄像头图像采集原理,然后提出了几种图像预处理算法,提高了一般情况下智能车对图像识别的准确度。

2 OV7620数字摄像头图像采集

OV7620摄像头是基于Omnivision公司出品的一款彩色CMOS型图像采集集成芯片,分辨率最大可以达到(H)664×(V)492,帧率可达30帧,内置10位双通道A/D转换器,输出8位像素点。采集OV7620摄像头图像时,可以根据行场中断信号来区分一幅图像和一行图像。若不通SCCB协议设置OV7620的寄存器,默认输出有效像素(H)640×(V)480。因为采用隔行扫描方式,又分为奇偶场,这样计算的话,每秒钟会产生60幅图像,每幅图有效像素为(H)320×(V)240。单片机全部采集则一幅图像要占用75KB的内存,而一般单片机是没有这么大内存的,虽然K60单片机有512KB的Flash,再加上后期图像处理,所以不建议全部采集。

图像采样的方法很多,有均匀采样和不均匀采样。均匀采样,主要是通过均匀间隔性的采集图像。因为间距是固定的,所以整图像比较均匀流畅,行与行之间的变化梯度没有明显剧升或者剧降,列如间隔为4行的采样,1、5、9、···、240。相反不均匀采样,采样的间隔不是等距的,而是变化的。例如1、2、8、···、240。这样的好处就是可以指定所要采集行数序号,图像像素密集地方可以少采集几行,图像像素稀疏地方可以多采集几行,比较有利赛道的识别。但缺点就是图像行与行之间变化不是均匀的,有时候采样不好,还会出现剧升或者剧降,也很容易丢失赛道信息。

3 图像预处理算法

3.1 图像平滑算法

图像平滑(图像滤波)是一类局部预处理方法,主要用于印制图像噪声,可以消除图像噪声对自主控制系统对赛道识别的准确性。下面主要介绍高斯滤波和中值滤波的原理。

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。高斯滤波没有固定模板,模板是根据实际需求所选择的。因为考虑到实际单片机的运算能力,就以3×3的邻域h作为模板对图像进行滤波为例介绍高斯滤波的方法。

把该模板放在选定像素点上计算中心像素的新值。把像素值于相应的权重系数相乘,然后相加得到一个总和。这个总和可以计算中心像素的新值,得到新输出图像中的像素值。如果模板位置还没有到达一行的终端,那么把模板沿水平方向逐个像素移动,并且重复上述处理。

最后要注意的是,我们无法给图像边界赋值。因为把模板放在边界上时,模板的一部分落在图像外部,没有信息用来计算新像素值。边界宽度等于模板大小的一半。

高斯滤波被认为对图像平滑处理是最优的,可以有效消除高斯噪声平滑图像,其缺陷是在平滑过程中造成图像中边缘明显变的模糊,有些甚至不容易被识别。因此我们还要考虑能够保持边缘的平滑算法,而目前能基本解决这一问题莫过于中值滤波。

中值滤波是一种减少边缘模糊的非线性平滑方法,它的思想是用邻域中亮度的中值代替图像当前的点。邻域中亮度的中值不受个别噪声毛刺的影响,因此中值平滑相当好地消除了冲击噪声。更进一步,由于中值滤波并不明显地模糊边缘,因此可以迭代使用。显然,在每个像素位置上都要对一个矩形内部的所有像素进行排序,这样的开销会变得很大,这也是导致中值滤波一大缺点。

3.2 Otsu法确定阀值

Otsu法是一种使类间方差最大的阀值确定方法,所以也称为最大类间方差法。该方法具有简单、处理速度快等特点,是一种常用的阀值选取方法。

基本思想是:把图像中的像素按灰度值用阀值T分为两类C1和C2,C1由灰度值在[0,T]之间的像素组成,C2由灰度值在[T+1,L-1]之间的像素组成,按下公式计算两类之间的类间方差:

式中,ω1(t)为C1中包括含的像素数,ω2(t)为C2中包含的像素数,μ1(t)为C1中所有像素的平均灰度值,μ2(t)为C2中所有像素的平均灰度值。让T在[0,L-1]范围依次取值,使σ2最大的T即为Otsu法的最佳阀值。实际中赛道起跑线图像通Otsu法计算出来的阀值约为118。通过使用Otsu法计算图像最优阀值,可以直接得到近似的值,很明显要比靠经验选择阀值要快速准确。若阀值偏小,会导致反光强的背景被分割成为了目标,若阀值偏大,会导致灰度比较暗的目标被划分为背景区。

4 结语

通过分析OV7620数字式摄像头的图像采集原理,通过均匀采样对摄像头的图像进行隔行采样,然后采用高斯滤波或中值滤波方法对图像进行平滑处理,然后用Otsu法对图像中黑白阀值进行二值化,得到预处理后的赛道图像,经实际检验,上述方法的使用能提高一般情况下赛道信息识别的准确度,为智能车稳定运行提供了保障。