刘新磊+刘圣然+刘新德+马瑞珂
【摘 要】基于机器视觉的路径识别是汽车智能化发展的关键。利用灰度平均值法和九宫格除噪法对智能车视觉图像存在的噪点繁杂、色彩模糊、失真严重问题进行了改善;根据以机器视觉图像为基准的路径特点,设计了基于机器视觉的路径识别控制策略和明确的路径识别控制系统。实践结果表明,该算法具有很强的鲁棒性,并且快速有效。
【关键词】路径识别;九宫格除噪法;灰度平均值法;控制策略;鲁棒性
中图分类号: U461 文献标识码: A 文章编号: 2095-2457(2017)35-0013-002
Design of image processing and path recognition control system based on machine vision
LIU Xin-lei LIU Sheng-ran LIU Xin-de MA Rui-ke
(School of Vehicle Engineering , Shandong Jiaotong University, Jinan 250300, China)
【Abstract】The path recognition based on machines visual sense is the key point of the development of automobiles intelligence. Using gray-scale average method and squares denoising method to take improvement on the problems of multifarious noisy point, fuzzy colour and distortion from intelligent automobiles image. Whats more, based on the characteristics of using machines visual image as reference to design the management strategy of path recognition and specific management system of path recognition which is on the principle of machines visual sense. What is indicated by the result of practices is that this algorithm obtains good robustness and also can be fast and effective.
【Key words】Path recognition;Squares denoising method;Gray average method;Control strategy
0 引言
随着社会的发展,智能技术与当今汽车技术相结合的智能汽车,将成为未来汽车发展的一大趋势,而路径识别作为智能汽车技术的一项重要标志,直接影响着智能汽车行驶性能[1]。飞思卡尔智能车有着当今智能汽车的缩影,飞思卡尔智能车系统同样包含智能汽车所具备的控制、传感、机械等功能模块[2]。
本文以飞思卡尔智能车为研究对象,针对基于机器视觉的路径识别问题进行研究,预判前方的路况信息,进而控制智能车的转向和行驶速度。飞思卡尔智能车在以白色为衬底、黑色为边界的跑道行驶,通过OV7725摄像头采集图像,使用飞思卡尔公司推出的以ARM-Cortex-M4为内核的K60芯片处理图像,实现路径自动识别及控制行驶[3]。
1 二值化及阈值选取
1.1 基本原理
二值化在数字图像处理中占有非常重要的地位,图像二值化使图像数据量大为减少,从而能明显地得出目标的大体轮廓。
二值化算法的主要思想是设置一个阈值Threshold,对于视频矩阵信号的每一行,从左至右比较各像素点值大小。若像素值小于阈值则判断为白色,即白色底面;反之,若像素值大于阈值则判断为黑色,即黑色边界引导线。
1.2 阈值选取
阈值的选取对图像二值化有至关重要的影响,图像基于合理的阈值进行二值化处理。灰度平均值法,即用整幅图像的灰度平均值作为二值化的阈值,算法简单快速,易于单片机执行,此值一般可作为初始化猜想值。
灰度平均值法的主要流程为遍历待处理源图像的像素点,计算源图像像素点个数,对每个像素点的灰度值进行累加求和,最后计算灰度平均值[4]。
C语言具体算法程序如下:
Sum——像素点灰度之和;g——灰度级;
h(g)——灰度值;Amount——源图像像素点个数;
Amount——源图像像素点个数;Threshold——灰度平均值
public static int GetThreshold (int h[] )
{
int Sum = 0, Amount = 0;
for (int g = 0;g < 256; g++)
{ Amount += h[g];
Sum +=g * h[g];
}
return (Sum/Amount);
}
2 噪点的去除
2.1 除燥点
噪点是CMOS将光线作为接收信号并输出的过程中所产生的图像中的粗糙的部分,也指图像中不该出现的外来像素,通常由电子干扰产生。
引导黑线提取识别前,进行图像除噪处理。噪点是一个或两个孤立的黑点,实践中,利用OV7725摄像头采集赛道图像,发现距離车辆前方55cm内约有11个像素点,稍远处为8个像素点,距离车辆前方80~100cm范围大约有4个像素点。采用九宫格除噪法对噪点进行处理。九宫格除噪法就是利用九宫格游戏的原理,在图像上噪点的周围进行检索,当该像素点周围8个方向的像素点都是同一性质(黑色点)时,该像素点与其周围的8个像素点的性质相同,否则是另一性质的像素点(白色点)[5]。endprint
3 赛道识别策略
3.1 赛道的识别
在直道上,如图1可以明显观察到左右黑色边界,如果采用传统的从中间向两边界扫描的方法寻找边线,则会占用CPU的时间,本文采用的是前三行从中间向两边扫描并记录前三行的左右边界,其他行的左右边界根据记录,从记录边界的附近列扫描边界,根据左右黑色边线的列数,可以计算出每一行的中点位置,直道路径的每一行的中点位置与中心平均值的差值之和较小[6]。
以上这种边线检索方法,删繁就简,比传统的方法节省出来大量CPU运行处理时间,提高了检索赛道图像边沿的效率,节约CPU的资源。
在弯道上,由于摄像头度数的限制,会出现黑色边界丢失的情况,如图2,智能车在左转弯的情况下,摄像头采集的图像不存在左边界,也就是左边界丢失的情况,此时,利用右边界进行半宽平移,将平移的边界与存在左右边界时的中线相衔接,连成一条平滑的曲线。随着弯道的弯度增加,图像每一行的中点与中心平均值的差值越大,其差值之和较大。
在十字道路,智能车正入十字,通过图像检测拐点,找到拐点后,根据拐点的行数,检测跳变点,当检测到拐点和跳变点同时存在或者拐点存在左右任意一边丢失边线超过8行,则认为车是正入十字。
其次,斜入十字与正入十字的不同是斜入十字时,左右边线同时(不同行)不丢线,如图五,如果在斜入情况下不进行处理,车会认为是左弯道,为了防止这种情况的出现,使用处理方法是跳变加拐点。跑道的边线应该是连续的,出现跳变的情况是出现了十字,记录左右边线的位置,再通过计算处理,如果边线相邻位置的差值大于15(正常情况下,相邻边线位置差值在1到3之间),则认为此行出现跳变。处理方式是根据边线的变化趋势,比如说某点之前的左边趋势是向左的,而该点之后的趋势是向右的,那么就认定为一拐点,即利用差相乘的方法。
4 整车设计及结论
整车采用K60作为主控制器,OV7725摄像头实时采集赛道图像,MPU6050传感器采集车体姿态,整车结构简单,代码运行流畅。
实践整车在第12届恩智浦杯智能车竞赛中平均速度达到2.06米每秒,验证了图像处理方法的正确性与路径识别控制系统的可行性。
【参考文献】
[1]吴吟萧,张虹,王新生.基于黑白摄像头的智能小车路径识别系统设计[J].计算机技术与应用,2009(2):1-2.
[2]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004(1):57-72.
[3]卓晴,黄开胜,邵贝贝.学做智能车:挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007(1):42-53.
[4]贾秀江,李颢.摄像头黑线识别算法和赛车行驶控制策略[J].2007(1):1-2.
[5]李旭东,廖中浩,孟娇.基于CMOS摄像头的智能车控制系统设计及实现[J].信息科学报,2013,31(4):415-418.
[6]許寰,鲁五一,赵治平.摄像头路径识别和小车控制策略[J].计算机工程与科学,2009,31(5):110-115.endprint