基于特征融合的前方车辆检测
2021-05-05张玉祖罗素云
张玉祖,罗素云
(201620 上海市 上海工程技术大学 机械与汽车工程学院)
0 引言
近年来,随着我国城市化进程的加快,机动车保有量和驾驶员人数不断增加,城市的交通安全问题日益突出。我国的交通安全不容乐观[1]。据调查,大多数交通事故的发生是因为驾驶员在驾驶时注意力分散。而驾驶员如果能在潜在危险发生前 1.5 s 得到提醒,则90%左右的交通事故就可以避免[2]。因此,智能交通系统和无人驾驶技术的研究热度高涨。车辆检测作为其中的重要一环,也受到了广泛关注。在实际检测中,由于易受光照、角度、图像质量等外界因素影响,容易产生车辆的误检、漏检。故本文对图像的HOG直方图特征和Haar-like 矩形特征进行研究,在将2 种图像特征进行融合的基础上,建立特征值向量;然后采用AdaBoost 算法从特征值向量中提取若干个有效特征,针对每个有效特征建立相应的弱分类器,根据各弱分类器分类正确率高低,将弱分类器加权组合成强分类器;构建级联分类器,实现车辆的检测。
1 目标检测算法的整体流程
目标检测系统主要分为2个阶段:学习阶段和检测阶段,具体如图1所示。
图1 目标检测算法Fig.1 Target detection algorithm
学习阶段:首先是收集大量的目标样本,组成正样本集(即训练数据集),同时获取大量的负样本,组成负样本集;然后提取每一个正、负样本的特征向量;最后训练形成检测时使用的分类器。
检测阶段:首先对视频中的每帧图像进行特征提取;然后将提取出的特征向量送到训练好的分类器中,对每帧图像进行目标检测;最后用矩形框标注检测出的目标。
2 车辆检测系统
2.1 Haar-like 特征提取
Haar-like 特征最先由Paul Viola 等人提出[3-5],后经Rainer Lienhart 等扩展引入45°倾斜特征[6-9]。在利用 Haar 特征对图像进行描述时,主要有边缘特征、线性特征、中心特征(圆心环绕特征)和对角线特征4 种特征模板,如图2 所示。这些模板都是由黑色和白色的矩形块构成,特征值就是白色矩形块中的像素值的和减去黑色矩形块中的像素值的和。
图2 Haar 特征的4 种模板Fig.2 Four templates for Haar characteristics
矩形特征用如下公式表示:
式中:ui——第k 个矩形的权重值;RecSum(rk)——第k 个矩形内像素值总和;N——矩形特征featuresk含有的矩形总个数。
矩形特征值为:
在进行图像处理时,由于每张图像都有大量的Haar-like 特征值要计算,使得特征提取的时间大量增加。为了解决这个问题,将积分图像应用于Haar-like 特征的计算。
积分图像是一个和原始图像大小一致的矩阵,矩阵中的每个元素值是从原始图像左上角到该点组成的矩形区域内所有像素值的和。积分图像通过一次遍历整张原始图像能得到矩阵中各个元素的值,能描述出图像的全局信息。积分图像计算如图3 所示。积分图像中任一点(x,y) 处的值,由公式(7)可求得:
式中:S(x,y)——积分图像(x,y)点处的元素值;f(x,y)——原始图像(x,y)点处的像素值。
图3 积分图像计算示意图Fig.3 Schematic diagram of integral image calculation
因此,图3 中矩形ABCD 中的像素值累加和可以通过公式(4)求得:
因为车辆检测最多的是垂直方向和水平方向灰度的变化,故本文采用两矩形特征和三矩形特征,如图4 所示。其他的形状特征可以通过使用HOG 特征进行补充,从而减少了 Haar-like 特征的特征数。
图4 本文采用的Haar 特征Fig.4 Haar features adopted in this paper
2.2 HOG 特征提取
HOG 特征是由Dalal 于2005 年提出的[10-12],是指通过使用梯度的幅值和方向围绕感兴趣点或图像一个区域构建直方图。在目标检测与识别的算法中,由于目标区域一般为矩形区域,故大多采用矩形单元的HOG 特征。
HOG 特征提取的主要流程:
(1)对图像进行灰度化处理和Gamma 空间标准化,使图像处理的运算简单化,并减小了光照强度和局部阴影对检测结果的影响。
Gamma 压缩公式:
式中:Gamma=1/2。
(2)由像素点的灰度值计算图像中每个像素点的梯度大小和方向。进一步削弱光照强度对检测的影响,获得目标的轮廓信息。计算梯度方向θ(x,y)和梯度大小G(x,y)公式:
式中:f——一个图像;f(x,y)——图像在像素点(x,y)处的灰度值;θ(x,y),G(x,y)——图像像素点(x,y)处的梯度强度的方向和大小。
(3)将图像划分成若干个矩形单元格(cell),将 cell 中每个像素点的梯度值对梯度方向进行加权,形成cell 的方向梯度直方图。
(4)将n×n 个单元格组成一个连通的区域(block),对每个 block 块内的方向梯度直方图进行归一化处理。归一化选用L2-Hys 范数[14]对每个block 进行归一化:
式中:x——标准化前的特征向量;e——一个很小的标准化量以防止除数为0。
(5)为了提高特征的利用率,对所有的block 块的特征向量串联,得到该图像的 HOG 特征向量,从而实现 HOG 特征的提取。
为了更全面获得特征信息,使得车辆可以被准确检测出来,可采用多尺度特征,即检测窗口中采用不同长宽比块和不同大小块遍历时的移动步长,本文采用3 种尺度,见表1。
表1 本文采用的3 种尺度Tab.1 Three scales used in the paper
为加快提取特征的速度,使用积分直方图的方法进行HOG 特征的提取。因为 HOG 特征主要是为了弥补Haar-like 特征的不足,使得车辆检测在 Haar-like 特征表现不足的区域,HOG 特征可能会得到好的检测结果,故HOG 特征对图像进行密集的遍历。
2.3 Haar-like 和HOG 特征融合
由于Haar-like 特征和HOG 特征都是以局部矩形区域内的像素和为基础的,故将矩形区域内像素值的和作为一阶特征。一阶特征的公式为
式中:I(x,y)——一个图像;(x,y)——在图像中的空间域的像素点的位置;R(x,y)——图像的基础变换。在一阶特征的基础上计算的Haar-like特征、HOG 特征称之为2 阶特征。Haar-like 特征相当于2 个1 阶特征的差值,HOG 特征相当于多个1 阶特征的和值。在1 阶特征的基础之上,通过变换矩形框的大小、长宽和特征近似的方法,构建了一个融合的特征集合F{FHaar-like,FHOG}。此集合包含了车辆的颜色、梯度和边缘信息,能够为分类器的训练提供更加完备的特征集合。
由于不同特征之间存在着较大的耦合性,数据处理计算量大且复杂。为了减少计算量,本文在每次训练弱分类器时,随机选择3 000 个1 阶特征作为训练弱分类器的1 阶特征集合。在1 阶特征的基础上,计算2 阶特征用于弱分类器的训练,并筛选出最具判别能力的分类器进行分类。
2.4 AdaBoost 级联分类器算法
AdaBoost 算法先使用初始训练集训练出一个弱分类器,根据该弱分类器的分类错误率,调整相应训练样本的权重;基于调整后的样本权重对下一个弱分类器进行训练;直到弱分类器数量达到指定值或者分类器的分类正确率达到指定阈值;最后,将弱分类器相级联形成最终的强分类器[13,15]。AdaBoost 算法流程如下:
(1)给定样本图像集(x1,y1),…,(xn,yn)其中 yi=0,1 分别表示负例样本和正例样本。
(3)选择εj=argminεj,并将其对应的弱分类器作为hj。
如果样本图像xi被正确分类则ei=0,否则ei=1,其中
(5)最后输出强分类器
T 个循环中,每个循环都是用一个特征来构架的,最终用带权值的线性表达式来组合这T 个循环中训练出来的简单分类器,其中,权值和训练错误成反比。
本文针对AdaBoost 分类器目标检测存在漏检、误检导致检测过程的不准确性,通过将HOG 特征和Haar-like 特征融合,减少每一层强分类器的特征个数;用置信度的实值分类器代替了二值分类器,并且针对 HOG 特征和 Haar-like特征设计不同的弱分类器,用AdaBoost 算法训练强分类器,减少了整个级联结构使用的特征数,降低了误识率并保持好的检测性能。
3 实验
实验是在Intel(R)Core(TM)i5-10210U@1.60Ghz电脑上的Pycharm 中实现的。
3.1 数据集
在实验中需要用到大量的正、负样本进行训练与分类,故需要采集大量的车辆和非车辆图片。正样本图像中最好是只包含车辆,尽可能不含有其他的背景;负样本图像不含车辆,而且选取的负样本最好是和实际应用的环境有关,如道路的场景、树木等。在测试过程中,必须使用同一测试数据集来保持一致性,本文选择KITTI 数据集的一部分,图片大小为64×64 像素,该数据集一共包含正样本数量2 000 张,负样本数量5 000张。如图5 所示。
图5 数据集Fig.5 Data set
3.2 检测流程
车辆检测系统的检测流程如图6 所示。
图6 车辆检测流程Fig.6 Vehicle detection process
3.3 结果分析与对比
图7 分别给出了对交通视频中直线行驶、弯道行驶和超车行驶的实验结果。
图7 车辆检测效果图Fig.7 Vehicle detection effect diagram
3.3 各算法实验对比
为了验证算法的有效性,我们设计了3 组实验。第1 组采用HOG 特征和SVM 分类器进行车辆检测,第2 组是采用Haar-like 特征和AdaBoost 分类器进行检测,第3 组是本文方法采用Hog 特征和Haar-like 特征融合和AdaBoost 级联分类器进行检测。
表2 各算法的实验结果Tab.2 Experimental results of each algorithm
由表2 知,在准确率和精确度上,本文的算法车辆检测系统对真实场景下的检测效果较理想。
4 结语
本文提出了一种基于HOG 特征和Haar-like特征融合和AdaBoost 级联分类器进行前方车辆检测方法。采用了多尺度的HOG 特征和Haar-like特征描述车辆,训练阶段提取特征向量,并将这些特征向量引入AdaBoost 算法中进行最优特征选择和强分类器的训练,最后得到强的级联分类器。该方法在实时性、识别率上取得了良好的效果,但在实际的应用中仍然存在着一些缺陷,在复杂背景下的严重遮挡问题表现较差,因此要进一步对这一方面做出更深入的研究。