尹 力,马浩越Yin Li,Ma Haoyue
基于Haar特征与后验算法的前方车辆识别方法
尹 力1,马浩越2
Yin Li1,Ma Haoyue2
(1.内蒙古交通职业技术学院 汽车工程系,内蒙古 赤峰 024005;2. 长安大学 汽车学院,陕西 西安 710064)
针对前方车辆易受到行车环境干扰而导致车辆识别正确率低的问题,设计了一种基于Haar特征与后验算法的前方车辆识别方法。首先,利用基于AdaBoost和Haar的车辆识别算法对前方车辆识别感兴趣区域,进行车辆识别;然后根据车辆尾部在Canny算子边缘检测结果图中的结构特点进行车辆存在性检验,去除车辆误识别结果。试验结果表明,设计的车辆识别方法具有良好的实时性和鲁棒性,能够满足实时车辆识别的要求。
Haar特征;AdaBoost级联分类器;车辆识别;车辆存在性验证
前方车辆识别是汽车主动安全领域的关键技术之一,主要应用于汽车驾驶辅助系统和自动驾驶研究。车辆识别的方法通常由两部分组成,车辆特征提取和分类学习。其中,车辆特征一般有Haar特征[1]、方向梯度直方图(Histogram of Oriented Gradient,HOG)[2]、Gabor滤波器特征[3]等;分类学习方法有AdaBoost算法[4]、支持向量机(Support Vector Machine,SVM)[5]、神经网络(Neural Networks)[6]等。
在高速公路上行驶,车辆识别正确率会受行车环境中天空、道路标线、交通标志牌等因素的干扰。为此,设计了一种基于Haar特征与后验算法的前方车辆识别方法,首先使用基于AdaBoost和Haar的车辆识别算法对车辆识别区域进行扫描;然后根据先验知识对识别结果进行车辆存在性验证,从而提高车辆识别的准确率。
车载相机在采集车辆行驶前方图像的过程中,会受行车周围环境的影响,使采集到的前方图像中存在各种各样的噪声干扰,因此需要对采集到车辆行驶前方图像进行预处理。首先,对图像进行灰度化处理,如图1所示;然后对灰度化的图像进行Gauss滤波,以去除图像中的噪声,平滑图像,如图2所示。
图1 灰度处理结果
图2 Gauss滤波结果
为了提高前方车辆识别的运算速度,缩小车辆识别过程中图像处理范围,根据相机安装位置等先验知识[7]设置前方车辆识别感兴趣区域(Region of Interest, ROI),如图3所示,矩形框为ROI。同时,假设在前方车辆识别过程中,本车与前车始终处于同一行驶车道,除了行驶车辆之外,不存在其他障碍物。
图3 车辆检测ROI设置
前方车辆识别包括训练和车辆识别验证。训练是指从建立的车辆训练样本集中获取大量的Haar特征,进而从中选取关键特征,构造用于车辆识别的AdaBoost级联分类器;车辆识别验证是指对采集到的车辆图像进行基于AdaBoost和Haar的车辆识别[8],然后对识别到的结果进行车辆存在性验证。前方车辆识别方法的流程如图4所示。
图4 前方车辆识别流程图
在不同环境下采集3 067张不同车型尾部照片作为正样本训练集,9 244张非车辆照片作为负样本训练集。其中,将正样本训练集的图像统一为24×24像素,负样本训练集的图像尺寸大小随机,但均不小于正样本的尺寸。
正常光照条件下,图像中的目标车辆相对于其行驶环境会有比较明显的阴影特征和灰度差异,从而组成车辆的矩形特征,如图5所示。Haar特征可用于描述相邻两类矩形区域间的灰度差;因此可以将该类特征应用于检测识别道路环境中行驶的车辆。
图5 车辆矩形特征
使用AdaBoost算法对样本集进行轮训练,获得个弱分类器,通过加权组合成一个强分类器,为Cascade级联分类器检测做准备。其中,强分类器通过3个步骤训练获得。
步骤1:初始化所有样本的权重1,i(=1)。
步骤2:对于整个(=1, 2, 3, …,)进行循环处理。
(2)对于特征,按给定样本权重训练弱分类器h,j,并计算其相对于当前权重的误差,j。
,(3)
(3)选择具有最小误差的弱分类器h,并将其加入到强分类器中。
(4)更新样本权值。
步骤3:生成强分类器。
把训练得到的各级强分类器级联为一个用于最终的决策分类器,即Cascade级联分类器。该分类器由若干强分类器级联组成,每级强分类器由若干弱分类器组成。在车辆检测时,目标候选区域进入AdaBoost级联分类器的强分类器,强分类器中每个弱分类器对该目标区域进行加权判断,决定其是否可以进入下一级强分类匹配检测。通过级联分类器的方式,能够以极少的运算过滤掉大量非目标的背景区域,加快车辆识别的速度。AdaBoost级联分类识别车辆流程如图6所示。
图6 AdaBoost级联分类器车辆识别
为了降低AdaBoost级联分类器对车辆的误识别,利用先验知识对基于AdaBoost和Haar的车辆识别结果进行车辆存在性验证。对车辆图像进行Canny算子边缘检测处理后发现,图像中水平边缘主要集中在车辆尾部区域,而图像中的天空、道路两旁的山以及路面的水平边缘无规律分布,如图7所示。
当获得基于AdaBoost和Haar的识别结果后,根据识别结果标识框的坐标,在边缘检测结果图的相应区域进行处理,验证该识别结果中是否有目标车辆存在。基于先验知识的车辆存在性验证具体流程如图8所示。
图8 基于先验知识的车辆存在性检验流程图
为验证前方车辆识别方法的有效性,在白天光照良好条件下采集一段高速公路行车视频,从中选取200帧图像,在主频为2. 13 GHz Core i3 处理器和内存为2G的计算机上进行离线车辆识别试验,部分离线车辆识别结果如图9所示。
图9 离线车辆识别试验结果图
在试验过程中,分别记录基于AdaBoost和Haar的车辆识别与基于先验知识的车辆存在性检验的图像处理用时并对其进行分析,见表1。
表1 前方车辆检测方法试验结果统计
由表1分析可得,基于AdaBoost和Haar的车辆识别算法可以识别到行车过程中大部分的目标车辆,但仍存在误识别,其车辆识别率为87.38%,误识别率为12.62%,平均处理时间为22.37 ms。通过车辆存在性验证后,减少了部分误识别,车辆整体识别率为95.33%,误识别率为4.67%,平均处理时间为1.31ms,相比直接利用基于AdaBoost和Haar的车辆识别算法,车辆的正确识别率可以提高7.95%,图像处理平均用时只增加1.31 ms。试验结果表明,基于Haar特征与后验算法的前方车辆识别方法,车辆识别率为95.33%,误识别率为4.67%,平均处理时间为23.68 ms,在保证车辆识别实时性的同时,能够有效避免行车环境对车辆识别的干扰。
设计了一种基于Haar特征与后验算法的前方车辆识别方法,首先使用基于AdaBoost和Haar的车辆识别算法对行车环境中的目标车辆进行识别,然后根据车辆尾部在Canny边缘检测结果图中的结构特点,进行车辆存在性验证,从而降低道路环境对车辆识别结果的干扰。试验结果表明,设计的车辆识别方法具有良好的实时性和鲁棒性,车辆识别率为95.33%,误识别率为4.67%,平均处理时间为23.68 ms。
[1]许庆,高峰,徐国艳.基于Haar特征的前车识别算法[J].汽车工程,2013,35(4):381-384.
[2]张凯,李华文. 一种基于SVM和HOG特征的视频车辆识别算法[J].电子世界,2019(7):74-75.
[3]刘广威. 基于Gabor特征的稀疏表示车型识别研究[D]. 西安:西安电子科技大学,2015.
[4]马浩越,刘晶郁,杨炜. 车载GigE Vision实时前方车辆防撞预警系统设计[J].中国科技论文,2018,13(10):1120-1126.
[5]李星,郭晓松,郭君斌. 基于HOG特征和SVM的前向车辆识别方法[J].计算机科学,2013,40(S2):329-332.
[6]Wu C F ,Lin C J ,Lee C Y . Applying a Functional Neurofuzzy Network to Real-Time Lane Detection and Front-Vehicle Distance Measurement[J]. IEEE Transactions on Systems,Man and Cybernetics,Part C (Applications and Reviews),2012,42(4):577-589.
[7]杨炜. 客运车辆危险行驶状态机器视觉辨识系统研究[D]. 西安:长安大学,2013.
[8]陈拥权,陈影,陈学三.基于AdaBoost分类器的车辆检测与跟踪算法[J].计算机技术与发展,2017,27(10):165-168,176.
2019-05-06
U461.91
A
10.14175/j.issn.1002-4581.2019.04.002
1002-4581(2019)04-0006-04