作者简介:金立生(1975-),男,教授,博士生导师.研究方向:汽车安全与智能车辆导航技术.E-mail:jinls@jlu.edu.cn
提出了一种基于类Haar特征和Adaboost算法的车辆检测方法,以解决汽车安全辅助驾驶系统中对前方车辆的信息感知问题。基于类Haar方法对训练集的积分图进行提取,采用Adaboost算法选取有效的类Haar特征并生成前方车辆检测分类器。利用前方车辆检测分类器对PETS(Performance evaluation of tracking and surveillance)提供的图片进行测试。试验结果表明:该方法可以快速、准确地实现日间前方车辆的检测。
A novel vehicle detection method based on Haar-like features and Adaboost algorithm is proposed to improve the capability of front vehicle detection of the driver assistance system. First, Haar-like features are selected from the training samples. Then, a learning algorithm based on Adaboost selects the efficient features from the Haar-like feature sets to yield vehicle detection classifier. The classifier is used to examine the testing samples by the pictures provided by the IEEE International Workshop on Performance Evaluation of Tracking and Surveillance. Result show that the proposed method can detect vehicles rapidly and effectively in daytime.
车辆追尾在交通事故中占有很大比例,为了有效地避免车辆间发生碰撞,前方车辆检测技术已成为智能车辆和安全辅助驾驶系统领域的重要研究方向。前方车辆检测系统通过传感器为行驶车辆提供前方环境信息。目前采用的传感器主要有机器视觉、毫米波雷达、激光雷达和红外等传感器。相对于其他传感器,视觉传感器具有信息获取量大的显著特征。因此,机器视觉仍是实现前方车辆检测的主要传感器。
基于视觉的车辆识别方法一般可以分为基于特征、基于光流场、基于模型和基于机器学习[ 1]4种。基于特征的车辆检测方法主要是根据车辆的对称性、阴影、边缘等特征进行车辆检测,为得到确切结果,通常将阴影、对称性和边缘特征结合起来[ 2, 3]。光流法主要通过摄像机运动、前方障碍物运动或二者相对运动的瞬时速度场实现,但该方法对噪声、光线变化敏感,计算量大[ 4]。基于模型的方法首先建立已知车辆精准的二维或三维模型,然后与待检测图像进行匹配,该方法对车辆模型过分依赖[ 5]。机器学习主要利用从数据里提取的规则或模式将数据转化为信息,对数据进行分类识别。基于SVM或神经网络的机器学习方法对车辆检测时运算量大、耗时长,识别性能有待进一步提高[ 6, 7]。
基于此,本文提出一种基于类Haar特征结合Adaboost分类器的识别算法,通过大量轿车尾部的训练图像,训练出用于车辆检测的分类器,从而实现在高等级公路环境中对前方车辆的快速、有效识别。
整个识别过程分为离线训练和在线识别两个步骤。离线训练过程利用类Haar特征对大量的日间车辆样本图片提取相关特征,然后基于Adaboost算法选取有效的类Haar特征构成强分类器;在线识别过程首先对测试样本提取关键类Haar特征,然后将特征输入离线训练得到的分类器中进行车辆识别。算法流程图如 图1所示。
1.1.1 图像预处理
训练样本分为正样本和负样本,正样本为日间车辆样本图片,负样本为其他任意样本图片。正样本选择不同车型、不同角度、不同距离的车辆尾部图片,负样本选择任意非车辆图片。本文选用正样本1000张,负样本3000张。为了避免不同像素图片计算出不同数量的特征数,对样本进行灰度化处理,归一化处理为20×20灰度图,构成训练样本集。训练样本灰度图如 图2和 图3所示。
1.1.2 类Haar特征和积分图像
类Haar特征[ 8]是由Papageorgiou等首先提出的,Viola等[ 9]将其应用于人脸检测,是一种快速、简单的特征提取方式。类Haar特征描述相邻两类矩形区域间的灰度差,用黑色和白色表示这两类区域。这些矩形区域有相同的大小、形状,且垂直或水平相邻。5种基本矩形特征窗口如 图4所示。定义如下:
(1)两矩形区域(水平和垂直):计算两个区域总像素的差值。
(2)三矩形区域(水平和垂直):计算两边矩形区域总像素和与中间矩形区域像素和的差值。
(3)四矩形区域:计算对角线每对矩形区域像素和的差值。
人脸的明显矩形特征包括两部分[ 9]:眼睛区域暗于脸颊区域和鼻梁区域,如 图5所示。类似于人脸的特征区域,正常光照条件下,车辆相对于周围行车环境也存在明显的阴影特征及密度差异,如车辆底部阴影,车辆顶部与天空明显的密度差异等,将形成主要的矩形特征,如 图6所示。
本文选用的20×20灰度图包含的子区域远远大于矩形特征数,且每次计算矩形特征值时均需要计算各矩形区域内像素值的和,大大降低了整个系统的训练和识别速度。为了快速、有效地计算类Haar特征,Viola[ 10]等使用了图像的一种中间表现形式——积分图像。积分图是一种数据结构,可以实现子区域的快速求和。利用积分图可以在图像上计算任意矩形区域内的像素和,从而求得矩形值,如 图7所示。
在点( x, y)处从左到右的像素总和为
式中: ii( x, y)为在( x, y)点的积分图像的像素和; i( x', y')为点( x', y')处的灰度值。
可见,积分图中任一点( x, y)处的值就是灰度图中以原点和点( x, y)为对角点的矩形区域的灰度总和。借助积分图像,可以快速计算出类Haar特征值,如 图8所示。图中,点1处的值表示区域 A的灰度值,简记为 P1;点2处的值表示区域 A和 B的灰度和,简记为 P1 +P2;同理,点3处的值为 P1 +P3;点4处的值为 P1 +P2 +P3 +P4。则矩形区域 D的灰度值可表示为 P1 +P4 -P2 -P3。
1.1.3 基于Adaboost分类器训练
Adaboost算法是Freund和Schapire于1995年提出的一种自适应boosting模式,其主要思想是在训练过程中,动态地修改各样本权重,使得训练过程对难以识别的样本给予更多重视[ 11]。基本原理为:初始化时,对同类训练样本赋予相同的权重,然后对训练样本集进行 T轮训练。每轮训练结束后,降低正确分类的样本权重,增加错误分类的样本权重,使下次训练过程对错误分类样本加以重视,最终达到所要求的测试性能。 T轮训练后,获得 T个弱分类器,将弱分类器加权组合成强分类器,权值表示对应弱分类器的性能,分类效果较好的弱分类器的权重较大。具体算法如下[ 10]:
样本集:
Step1 初始化权重。
当 yi=0时为负样本:
当 yi=1时为正样本:
Step2 对于 t=1,2,…, T( T为训练次数,决定最终弱分类器的个数)。
(1)权重归一化:
(2)对于特征 j,按给定样本权重训练弱分类器 ht, j,并计算其相对于当前权重的误差 εt, j:
式中: ht, j为弱分类器的值; fj为第 j个特征的特征值; θj为阈值; pj∈{ -1,1},表示分类方向。
选择本轮训练中具有最小误差 εt的弱分类器 ht加入到强分类器中去, εt=min( εt, j),1≤ j≤ k
(3)更新每个样本所对应的权重:
式中: βt=εt/(1 -εt);若样本 xi被正确分类,则 ei=0;否则, ei=1。
Step3 最终的强分类器为:
式中: αt=log
在线识别过程用于检测车辆的存在性,包括图像预处理、类Haar特征提取、积分图计算及应用AdaBoost进行分类识别等。图像预处理和积分图计算与训练过程类似,类Haar特征提取即利用训练过程选择的类Haar特征来计算相应的类Haar特征值,构成特征向量。Adaboost分类器利用所得到的特征向量检测待识别车辆是否存在,并确定存在车辆位于图像中的位置。
本文试验的硬件运行环境为Intel奔腾E6500CPU、内存为1 G的PC机;软件环境包括WindowsXP系统,Visual C++集成开发环境和OpenCv开源计算机视觉库。在Visual C++开发环境下,借助OpenCV1.0开发平台训练Adaboost分类器,并对分类器性能进行试验。
测试样本选用PETS2001国际研讨会上提供的768×576的日间车辆彩色图片。由于分类器需要在灰度图上进行验证,首先对测试图片进行灰度化,然后进行直方图均衡化,平衡亮度值。
以误识的样本数作为曲线横轴,正确识别率为纵轴绘制ROC(Receiver operating characteristic)曲线,如 图9所示。可以看出:当分类器正确识别率达到75%时,误识数为49。
对153张图片进行测试,正确率为84.1%,单幅图片平均处理时间为30 ms,算法具有较好的实时性[ 12]。部分测试结果如 图10所示,图中矩形区域为检测到的车辆。
从测试图片可以看出:在单一车辆和多车的情况下,该算法具有良好的检测效果。
提出了基于Adaboost算法的日间前方车辆检测方法,能够为建立完整的车辆预警系统提供必要的辅助信息。在提取类Haar特征时,积分图的使用有效地提高了训练速度和检测速度。试验结果表明:该方法可以快速、有效地对车辆进行识别。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|