张铮,王孙强,胡新宇,熊盛辉,胡凌辉
(湖北工业大学 机械工程学院,湖北 武汉 430068)
正确检测出前方车辆,有助于提前发现道路安全隐患,是实现智能车辆安全行驶的关键环节。视觉系统成本低,采集数据信息丰富,易于实现,利用视觉系统对前方车辆进行检测具有重要的研究价值。目前,基于视觉的前车检测方法主要有4类:基于模型的方法[1-2]需要创建并初始化模型,需要严格的假设,对模板依赖程度高;基于立体视觉的方法[3]特征点匹配难度大,对硬件要求高;基于光流场的方法[4]对光线变化较敏感,且光流场计算复杂,实时性不高;基于特征的方法[5-6]是利用车辆的一些显著特征,如对称性、车牌、边缘和车底阴影等提取车辆,但是当环境发生较大变化时,单一特征的检测结果不理想,算法适应性有限。因此,大量学者考虑使用多特征检测以提高准确率,增强算法适应性。程淑红等[7]提出一种基于几何特征、纹理特征和局部特征的多特征融合车辆检测算法,但其提取的特征着重于区分车辆之间的不同,并不适用于区分车辆和背景;邓淇天等[8]引入雷达检测,提出一种L型特征和反射率特征相融合的算法,但算法实现依赖于激光雷达,且算法复杂,适用范围有限;慕永云等[9]采用了一种多特征级联检测的方法,检测效果取决于第一步的检测结果;王左帅等[10]提取多类特征并采用主成分分析法(PCA)进行降维的融合算法,未考虑信息丢失问题。上述多特征检测算法在特征验证、特征提取和特征融合方面都有改进,但仍存在不足之处,在扩大适用场景、提高检测准确率等问题上仍然需要优化。
基于此,本文提出一种基于多特征融合和信息熵优化的前车检测算法,该算法一方面利用多特征融合算法的优越性,另一方面通过信息熵优化减少样本之间的相互影响。利用车底阴影生成若干车辆假设区域,分析并选取不同的车辆特征构建特征向量,并依据信息熵对特征向量进行优化,利用支持向量机训练分类器验证假设区域。在此基础上,采集真实交通场景样本验证算法的有效性。
车辆日间行驶环境复杂,摄像机采集的原始图像存在着许多非目标因素的干扰。车辆行驶道路内,一般只包含路面、车道线、车辆、阴影4类目标,并且这4类目标的类内灰度具有一致性和均匀性,类间灰度差异性较大[9],在行驶道路内进行检测,有利于提高系统的鲁棒性。本文使用一种基于车道线的路面提取算法,首先对输入图像进行中值滤波,去除随机噪声的干扰,其次利用canny算子提取道路边缘,利用Hough直线检测提取备选车道线,最后根据斜率和长度筛选规则,对备选车道线筛选融合并确定路面区域。本文斜率为0.1~0.7,车道线长度为70~100像素,能够有效划分路面,排除干扰。如图1所示,通过筛选,能够有效剔除交通指示物等非目标直线干扰。
图1 路面区域的提取过程Fig.1 Extraction of road area
如图2所示,在实际道路环境中,受光照、天气等环境因素影响,道路路面灰度分布范围存在极大差异。分析可知,道路路面灰度值最低的是阴影像素点(下文称其为第一类像素点),其次为深色车辆或路面像素点(下文称其为第二类像素点),最后为浅色车辆和路面白色标记像素点(下文称为第三类像素点)。因此阈值分割只需要在第一类和第二类像素点之间进行即可,将第二类像素点分割为背景,则灰度值更高的第三类像素也会被分为背景。
图2 不同环境下路面灰度直方图Fig.2 Histogram ofpavement gray scale in different environments
大津算法(OTSU)是一种着重于最大概率将目标与背景最大程度分割的算法,在目标与背景差异明显时效果很好[11]。本文在OTSU算法基础上提出一种融合光照因子μ的自适应大津算法。算法原理:光照较强时,路面像素聚集在高灰度区域,类间灰度差异变大,此时选取较小的灰度范围,寻找阈值的灰度范围包括第一类像素点和第二类像素点,有利于减少计算量;随着光照逐渐减弱,像素点逐渐向低灰度值区域迁移,类间灰度差异缩小,此时选取较大的灰度范围,将与第二类像素点灰度值接近的部分第三类像素点代入计算,这样能够加大第一类像素与第二类像素的类间差异,更利于分割阈值的寻找。算法具体步骤如下。
步骤1在图像前方道路区域内,选取4个长30像素、宽10像素的矩形区域作为采样区域。
步骤2分别计算各采样区域(j=1,2,3,4)的均值P(j)和方差δ(j)。
步骤3考虑路面上可能存在白色车道线,会对环境判别产生影响,因此,需要对数据进行分析。
(1)根据δ(j)去除偏离样本值,计算式为
(1)
去除掉δ(j)>1.5δmean的采样点,因为该区域内可能夹杂了白色车道线影响,造成灰度差异较大。
(2)求保留点的平均灰度值,计算式为
(2)
其中,n为保留后的采样区域。
步骤4根据Pmean判断行车环境。根据行车实际情况将光照分为3种类别:(1)强光照,当天气晴朗时;(2)正常光照,当天气一般时;(3)弱光照,当阴雨天或清晨时[12]。通过多次试验,选取阈值80和120为平均灰度值的上下限,当Pmean位于不同区间时,从小到大分别为弱光照、正常光照、强光照。光照因子μ的选取规则为
(3)
步骤5假设道路路面区域像素个数为M。假设包含L个灰度级(0,1,…,L-1)。
步骤6代入μ,将前第μM个像素点所在的灰度级记为第n级,如式(4)所示。
(4)
式中,mi为第i个灰度级的像素个数。
步骤7将选取的前n个灰度级像素进行归一化处理,如式(5)所示。
(5)
步骤8假设阈值T(k)=k,0 (6) 步骤9计算分到两类的像素平均灰度值和前n级平均灰度值,计算式为 (7) 步骤10定义局部最大类间方差,计算式为 (8) 图3 路面阈值分割Fig.3 Threshold segmentations of road surface 阈值分割后,先用形态学的腐蚀算子去除细小噪声点干扰,然后以图像左上角为原点,在路面区域由下至上、由左至右扫描,提取车辆与路面的交线。满足式(9)设为起点,满足式(10)设为终点。 f(x,y)-f(x-1,y)=255;f(x,y)-f(x,y+1)=0, (9) f(x,y)-f(x+1,y)=255;f(x,y)-f(x,y+1)=0。 (10) 提取完阴影线后,考虑到一辆汽车可能检测到多条阴影线,阴影线可能存在断裂现象等情况,将竖直方向3个像素内且水平方向5个像素内的线段合并,结果如图4(b)所示。通过阴影线合并,能够有效合并重复检测的阴影线。最后,将合并的阴影线向上扩展为长∶宽=1.4∶1.2的矩形区域,作为车辆假设区域。 图4 阴影线提取与合并Fig.4 Shadow lines extraction and merging 单一的特征训练分类器得到的效果并不理想[13]。本文在方向梯度直方图(histogram of gradient,HOG)的基础上添加几何特征、纹理特征和幅值特征,构建SVM的训练向量。 2.1.1 几何特征 几何特征是车辆最易被观察到的特征,车辆的几何特征有很多,例如面积、长宽比、周长等[13],不同车辆上述特征差异较大,如小汽车和大货车的长宽比,前者大于1后者小于1,类内就有明显差异。汽车具有明显的矩形和对称性特征,因此,选择矩形度和对称性作为几何特征参与训练。矩形度是指车辆面积和最小外接矩形比,即 (11) 式中:R为矩形度;S0为车辆面积,用车辆区域像素点个数表示;SMER为最小外接矩形面积,用车辆最小外接矩形区域像素点个数表示。 董本志等[14]提出一种通过显著性表述目标对称性的算法,但需要划分超像素,算法步骤较为复杂;肖志涛等[15]提出一种利用主成分分析图像对称性的算法,但着重于频率域内处理,不适用于快速提取特征值。因此,本文使用一种基于像素灰度值的对称度提取方法,如式(12)所示。考虑车辆尾部不一定完全对称,只计算图像中轴线左右1/4图像长度内的像素点。 (12) 式中:S为对称度;M为训练样本的长度;N为训练样本的宽度;f(i,j)为图像坐标(i,j)处像素点的灰度值;原点为图像垂直对称轴与图像下边界的交点。 2.1.2 纹理特征 纹理特征能够表现出图像构成的结构规律,描述了图像区域对应景物的表面性质,车辆是一个富含纹理特征的对象[16]。基于像元及其领域内的灰度属性,采用统计分析方法,选取标准差、熵、一致性和相对平滑度作为车辆的纹理特征,见式(13)~(18)。 (13) (14) (15) (16) (17) R(Z)=1-1/(1+μ2), (18) 式中:L为灰度级总数;zi为第i个灰度级;pi为灰度级i的概率值;m为均值;u为标准差;δ为方差;e为熵;U为一致性;R为相对平滑度。 2.1.3 幅值特征 图像的幅值特征是指图像的归一化转动惯量(normalized moment of inertia,NMI),它具有良好的平移、旋转及抗灰度等特性,能够适应不同车辆的颜色差异[17-18]。本文选取NMI作为车辆幅值特征,计算公式如下。 定义长宽尺寸为M×N训练样本的p+q阶矩为 (19) (20) (21) 根据图像质心和转动惯量定律,可得图像的NMI特征, (22) 对于非线性样本,支持向量机通过核函数将其映射到高维特征空间,将非线性问题转换为线性问题处理,通过在高维特征空间内对样本和支持向量的内积计算得到最优分类结果[19]。本文选用径向基核函数作为转换函数,表达式为 (23) 式中,xi,xj为两类训练样本。 为进一步提高检测的准确性,对特征向量进行基于信息熵的权值分配。基本原理是根据特征分量的变异性大小确定各特征分量的客观权重[20]。即某个特征分量的信息熵越小,表明指标变异程度越大,提供的信息量越多,权重越大。反之,某分量的信息熵越大,则变异程度越小,提供的信息量越少,权重越小。计算式见式(24)~(26)。 将各特征分类标准化, (24) 式中,xij为第i个样本的第j个特征分量。 定义一组特征分量的信息熵为 (25) 通过信息熵计算,各指标权重为 (26) 式中:Wi为各特征分量权重;k为特征分量个数。 在真实交通场景中,利用固定在车后视镜的相机采集样本,对本文算法进行测试。实验采集的图像分辨率为640像素×480像素,汽车样本图像236幅,非汽车样本图像301幅,将这些样本作为样本集,训练样本集和测试样本集分别占80%和20%。 在多种实际交通路况下,以文献[21]提出的高斯拟合算法、文献[22]提出的波峰波谷算法为对照算法,与本文算法作对比,得到阈值分割结果如图5~9所示。由图5~9可以看出,光照较强时,3种算法都能较为准确地分割出车辆阴影,但随着光照条件变化以及其他因素的干扰,波峰波谷法和高斯拟合法都会受到明显干扰。光照较弱时,波峰波谷算法可能将阴影附近路面误分为阴影。存在人行道的路况下,高斯拟合算法和波峰波谷算法将部分人行道误分割为阴影。多车路况下,高斯拟合算法出现阴影相互贯连的情况,波峰波谷算法将部分路面误分为阴影。而本文算法由于引入光照因子,确定了更为准确的计算范围,获得了较好的分割效果。 图5 强光照路况Fig.5 Strong light road conditions 图6 正常光照路况Fig.6 Normal light road conditions 图7 弱光照路况Fig.7 Low light road conditions 图8 存在路面标志路况Fig.8 Road conditions with road signs 图9 前方多车路况Fig.9 Road conditions with multiple vehicle 对3种算法的检测耗时进行统计,结果如表1所示。不同光照条件下,对所有像素进行计算,高斯拟合和经典OTSU算法耗时变化并不大。但由于只计算部分像素,本文算法耗时较经典OTSU算法更低。随着光照条件逐渐变弱,波峰波谷算法和本文算法耗时增加,这是因为随着光照变弱,像素值往低灰度值迁移导致计算量增大。弱光照时,本文算法耗时超过波峰波谷法,这是因为环境光照因子μ增大使计算量更大,但差距并不明显。 表1 3种算法检测时间比较Tab.1 Comparison of detection time of threealgorithms ms 将使用信息熵优化权重的分类结果与各特征分量等权重的分类结果进行对比,结果如表2所示。由表2可知,使用熵权法重新分配权重后,提高了SVM识别准确率。 表2 两种权重分配方式检测准确率比较Tab.2 Comparisons of detection accuracy between two weight distribution methods % 提取车辆的不同特征,利用优化后的支持向量机在测试样本上进行车辆识别,其识别准确率如表3所示。由表3可知,组合特征的识别准确率高于单个特征,但准确率提高有限,加入HOG特征构建特征向量后,识别准确率提高较大。 表3 不同条件下检测结果准确率Tab.3 Accuracy of detection results under different conditions % 在图10典型高速公路条件下,本文算法都能够准确地检验出前方车辆,验证了算法的鲁棒性和准确性。图10中外部矩形框为假设区域,内部矩形框为验证区域。 图10 不同条件下车辆检测情况Fig.10 Vehicle detectionunder different conditions 本文提出一种基于多特征融合和信息熵优化的前车检测算法。该算法利用HOG特征、几何特征、纹理特征和幅值特征构建特征向量,并根据信息熵对特征向量进行优化,最后使用SVM分类器对前方车辆进行检测。该算法利用了多特征检测优势并利用信息熵优化提高了检测准确率。为继续提高算法鲁棒性,扩展适用范围,考虑新的特征向量和研究新的优化方法是下一步的研究方向。2 车辆假设区域检验
2.1 特征选择
2.2 特征向量优化
3 实验结果与分析
3.1 实验样本
3.2 分割结果与分析
3.3 SVM分类器性能验证
3.4 车辆检测结果
4 结 语