王伟业 徐锋
摘 要 以“飞思卡尔”杯智能汽车竞赛为背景,对现有的二值化算法的分析,基于迭代的思想提出了一种新的双峰法的改进二值化算法。并通过实验的方法将新方法和传统算法进行比较,实验结果表明新方法实现了自适应二值化阈值的计算,解决了传统全局双峰法分割赛道图像时适应性差,易受光线影响的问题,适用于摄像头循迹小车中的实时图像处理。
关键词 飞思卡尔;智能车;图像分割;自适应二值化
中图分类号 TP2 文献标识码 A 文章编号 2095-6363(2015)09-0028-02
图像分割是数字图像处理中的一项基本技术,该技术在目标识别、机器视觉以及视频和图像信息的检索中起着重要的作用。图像二值化是图像分割中的一项重要的技术,在众多的应用场合中都要求对灰度图像进行二值化,所谓二值化就是设定一个阈值将图像各个元素按其灰度值分为背景和目标两类,由于分割后图像只有两个等级,因而称之为二值化图像。因此在进行图像的分割时阈值选取的恰当与否直接决定着目标信息的保留状况。有关阈值选取的方法吸引了大批专家学者为之付出了辛勤的劳动,也提出了许多方法,例如基于灰度直方图的双峰法,最大类间方差法(Otsu法),最大熵方法等等,并且不断有新的方法提出。
受教育部高等教育司委托高等学校自动化专业教学指导分委员会主办的“飞思卡尔”杯全国大学生智能汽车竞赛是在飞思卡尔半导体公司的赞助下以飞思卡尔单片机为主控芯片,自主设计并制作出具有驾驶能力的智能汽车,并在最短时间内完成赛道运行的一项赛事,是教育部主办的全国大学生五大竞赛之一。此项竞赛涵盖了包括传感器技术、电子技术、计算机技术、机械等多个领域的极具创意性的比赛。按照使用传感器种类的不同分为摄像头组、光电组和电磁组。摄像头传感器因其获取的信息丰富,能更好的反应赛道的真实情况而被广泛地采用,在每年比赛中摄像头组的竞争也非常激烈,因此一套适应性强、 可靠性高、运算量小的二值化算法是取得优秀成绩的先决条件。
1 二值化原理
将图像划分成一些特定的区域称为图像分割。按照分割方法的不同分为边缘检测法和阈值分割法。边缘指一幅图像中灰度变化比较剧烈的地方,因此边缘检测法主要依靠图像的一阶或二阶导数但是导数对噪声非常敏感,因此在采用此类方法时需要对图像进行滤波。但普通的滤波算法在滤除噪声的同时可能会降低边缘强度。阈值法是将每个像素点的灰度值与阈值进行比较,根据比较结果将图像划分为目标和背景。二值化过程可表示为:
g(x,y)为(x,y)处的像素值,f(x,y)为二值化后(x,y)处的像素值,T为阈值。常用的阈值选取方法有很多,根据阈值个数的多少可分为全局阈值法和局部阈值法。全局阈值法是指进行图像二值化时所有图像元素只与一个全局阈值进行比较。
常用的全局阈值法包括以下几种。
1)固定阈值法。这种二值化方法采用人为设定的阈值,该方法的运算量小,但是其缺点也是很明显的。适应性差,且分割结果极易受人为因素的干扰。
2)双峰法。首先统计图像的一维灰度直方图,如果此幅图像中背景简约,目标与背景的对比比较明显,灰度直方图就会呈现明显的双峰分布,那么两峰之间的谷底的灰度值就是就是最佳的二值化阈值。
3)最大类间方差法。灰度值方差是灰度分布均匀性的度量。方差越大表明构成图像的各部分差别越大,反之说明构成图像各部分差别越小。通过计算目标的平均灰度值、背景平均灰度值整幅图像的平均灰度值等来找出最大类间方差以及最小类内方差的点。此点即为错分几率最小的点。
全局二值化在处理一些复杂的图像时出错率较高,因而在此基础上提出了局部阈值法。局部阈值将原图像分成多块较小的图像,并对每一块图像分别计算阈值。典型的局部阈值法包括以下几种。
1)Bersen算法。阈值的选取只与特定尺寸的小图像中的最大最小值有关,在分割非均匀光照或背景复杂的图像时容易产生伪影或残缺的现象。
2)Niblack算法。该算法阈值与局部图像的均值和方差决定,该方法运算量大、容易受到背景噪声的干扰,且存在伪影或残缺的现象。
在对图像处理实时性和适应性要求比较高的应用场合中,上述均存在不能同时两者兼顾的问题。但是针对智能车系统普通的双峰法就能满足要求,因为智能车运行在特定的比赛赛道上,背景简约且对比明显且与赛道的对比明显。但是在应用过程中发现有时会出现赛道光线分布不均匀的区域或是受光线斜射的影响,背景和目标的对比不是非常明显,因而会出现图像二值化出错的情况,从而导致智能车控制决策失误因而出现车模运行失控的情况。基于上述情况需要对双峰法进行改进,使之满足智能车的运行需求。
2 双峰法改进方案
2.1 基本思想
在对双峰法进行改进之前首先对比赛场地以及比赛过程进行分析。比赛时的赛道是由铺设在蓝色地毯上的KT板或PVC板拼接而成。赛道宽度45cm,并在赛道左右边缘各贴有宽度为2.5cm的黑条。赛道上有各种弯道以及路障和坡道组成。参赛选手在正式进入比赛场地之前有20min的时间在试跑跑道上试车。进入比赛场地后选手也有60s的时间在比赛场地进行准备和测试。60s结束后,参赛车模要在30s之内冲过起跑线。
在对采集到的灰度图像进行双峰法分割时,效果比较明显但双峰之间可能存在比较宽的区域,因此阈值T选取过程中也需要进行人为的干预,分割效果会受到人为因素的干扰。由于双峰法需要对整幅图像的灰度进行统计,但是一幅图像的数据量往往比较庞大。单片机在进行这样的处理时可能耗费较多时间使得整个系统的控制周期变长,严重制约了车速的提升空间。因此需要简便算法,降低误差,获得比较准确的阈值T。
2.2 算法实现
由赛道分析可知,比赛赛道的宽度是固定的,且赛道边缘是连续的。智能车竞赛一般在体育馆中进行,光线强度在时间和空间上都是逐渐变化的,并且在比赛之前有足够多的时间适应光线。基于以上分析提出如下改进方案。
1)当摄像头采集完一幅图像后,对图像的前九行根据双峰法进行二值化,直到得出较好的分割效果。“较好”指经过二值化后赛道的宽度正常且赛道边缘连续。
2)每一行都分别设置一个阈值T。从第十行开始沿用上一行的阈值进行分割,若分割后的赛道宽度正常且此次分割得到的左边界不在上一行右边界的右边,右边界不在上一行左边界的左边。此时根据该阈值将该行图像划分为目标和背景两部分,分别计算目标和背景两部分的灰度平均值。并将两部分的灰度平均值除以二,做为当前行的最佳分割阈值。
3)若当前分割出来的出来的赛道宽度不在正常范围内或与上一行赛道边界相比有较大的跳变,则保持当前行的分割阈值不变,下一行继续沿用此阈值进行分割。
4)若一幅图像处理完毕,处理接下来的图像按照步骤一继续进行处理。
3 实验测试
在对上述方案进行测试时采用自主设计并制作的智能车模型上进行测试。摄像头采用ov7620彩色摄像头。该摄像头具有自动增益和自动白平衡控制,能进行亮度、对比度、饱和度、γ校正等多种调节功能;它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;帧速率为30fps;数据格式包括YUV、YCrCb、RGB三种,能够满足一般图像采集系统的要求。
主控芯片采用FreeScale半导体公司生产的MK60DN512VLL10作为主控芯片,通过程序配置其内核频率为200Mhz,总线频率为100Mhz。通过sccb(串行摄像机控制总线协议)对摄像头的寄存器进行相关配置。由于智能车运行过程中只需要采集灰度图像就可满足控制要求。因此将摄像头配置为YUV格式输出,并通过单片机的DMA模块采集Y数据。
为了验证算法的可行性通过摄像头采集一幅赛道原始的灰度图像,该图像中光线分布不均匀,图像前端光线较暗。如图1所示。
采用新算法的阈值从近及远呈递增分布。
通过对比分析该方法与传统双峰法的分割效果可以看出,采用新算法的二值化结果相对于采用传统算法的结果较优。在光线分布不均匀时,二值化效果更加明显。此算法具有较好的光线适应能力,更加完整地保留了赛道信息,为后续赛道信息的提取以及控制策略的执行提供了良好的保障。由于此算法每一行都需要进行一次阈值计算相对于传统全局二值化算法,可能需要消耗较长的时间,但是经过实际测试表明通过配置摄像头隔行扫描并采集其中90行,180列的数据的情况下,执行完该二值化算法后任然有充足的时间执行后续的控制算法。
4 结论
本文对现有的二值化算法进行了分析和比较,并讨论了这些算法在智能车系统中的可行性。最终选用双峰法做为二值化算法,通过分析该方法的不足结合智能车竞赛的特点提出了一种新的改进算法,新算法是基于迭代的思想,通过阈值传递进行图像二值化。实验表明,该方法相对于传统的二值化算法具有更强的光线适应能力以及较小的运算量的特点,并且能较好的还原赛道的真实状况。但是任何算法都只能适用于特定的范围,该算法只能在一定范围内跟随光线的变化对阈值进行
调整。
参考文献
[1]阮秋琦.数字图像处理学[M].北京:电子工业出版社,2001:390-393.
[2]王强,马利庄.图像二值化时图像信息的保留[J].计算机辅助设计与图形学学报,2000,12(10):746-750.
[3]杨晖,曲秀杰.图像分割方法综述[J].电脑开发与应用,2005(3).
[4]王积分,张新荣.计算机图像识别[M].北京:中国铁道出版社,1998:75-77.
[5]Otsu .A Threshold Selection Method from Gray –Level Histogram[J]. IEEE Trans on SMC -9,1979:62-66.
[6]刘文萍,吴立德.图像分割中阈值选取方法比较研究[J].模式识别与人工智能,1997,10(3):274-277.