(武汉理工大学 汽车工程学院,湖北 武汉 430070)
近年来,城市车辆数量的急速增长给人们工作与生活提供便利的同时也引发了许多交通问题。由于道路硬件条件限制,传统提高道路通行能力的方法在城市中变得困难,同时也要耗费巨额的资金[1]。因此,对道路通行状况实施实时监控以采取更好的通行策略成为了现阶段缓解交通问题的主要途径之一[2]。作为提取道路信息的一种重要手段,基于机器视觉的道路信息采集具有较大的发展空间[3]。道路信息采集离不开准确检测视频中的运动车辆,通过对运动车辆的检测与识别[4],得到目前道路的通行状况,从而供相关人员分析并最终作出合理决策。目前国内外研究学者对视频图像中运动目标检测的常用方法主要有以下几种:光流法、背景差分法、帧间差分法、边缘检测法等[5-9]。
在基于光流法的运动目标检测过程中,吴振杰通过将光流法与帧间差分法结合对运动目标检测得到了鲁棒性较好的结果,但是这种方法的时间复杂度过高,不利于实际的运用[10];肖军将光流法与图像金字塔结合,通过迭代计算光流提出了一种基于光流误差的跟踪算法,对目标有较好的检测效果[11],但整个算法的计算较为繁琐,无法实现检测的实时性。与光流法相比,背景差分法是基于静态背景,通过计算得到不存在运动目标的背景图像,并最终确定图像中的运动目标[12];陈艳等利用高斯背景模型与Ada Boost分类器对夜间车辆进行检测,该方法有效降低了地面阴影、光照变化对检测精度的影响,但需要依赖Ada Boost分类器对车灯的检测,故只适用于夜间环境[13]。Gupte S采用背景加权的方法将前帧的背景图像与当前帧加权融合来得到背景图像,这种方法的前提条件是背景变化缓慢,因此当车辆运动速度较快时效果不理想[14]。Velastin通过选取一段视频像素点的中值作为当前的背景图像,但当目标行驶缓慢时,目标点的像素信息就会混入背景中,检测精度同样会受到影响[15];黄东军提出一种改进的混合高斯模型的方法,在混合高斯背景建模的基础上增加了定时清零的策略,能够消除目标内部的部分空洞[16],但整个算法对光照的敏感性较强,不能满足多场景的应用需求;Xia L通过研究帧间差分法和三帧差分法,提出改进的三帧差分法,改进后的三帧差分法对运动目标有比较好的检测效果且实时性好[17];张应辉为了提高运动目标检测的准确性和高效性,将三帧差分法和背景差分法结合起来有效减少了目标图像中的噪声[18];Ding L通过对相邻像素点之间的灰度值研究,采用Canny算子检测运动目标轮廓,该方法得到了比较完整的运动目标轮廓[19];袁益琴等通过将背景差分与帧间差分结合的方式对卫星图像中的运动车辆进行检测,得到较为准确的结果,并提升了检测的实时性[20];贺强通过将Log算子和Canny算子结合,通过对椒盐噪声滤除的结果表明这种方法在最大程度抑制噪声的同时检测到尽可能多的边缘[21],但整个方法因为只检测了图像的边缘信息,故对背景中的冗余信息滤除较为繁琐[22]。刘操等利用图像的颜色模型与HOG特征进行运动车辆的检测,并结合支持向量机等机器学习方法对车辆进行分类,该方法在一定程度上提升了整体检测的鲁棒性,但复杂度较高,不适用于真实场景中的实时车辆检测[23]。
结合以上研究情况,本文提出一种融合多种方法优点的运动车辆检测方法,提升整体检测的准确性以及对场景的适应能力。文章第一部分针对当前运动车辆检测的研究现状、问题和意义进行概述;第二部分对整个检测方法进行概述,介绍其中的各个处理过程;第三部分对所提出的具体检测算法进行详细描述;第四部分对所提出的检测方法进行验证,确定其检测性能;第五部分对整个研究及所提出的方法进行总结[24-25]。
本文针对当前运动车辆检测的研究现状,提出一种改进的帧间差分与背景差分融合的运动车辆检测方法。其整体检测流程如图1所示。
图1 整体方法流程
对于采集的原始图像而言,其包含大量对于运动车辆检测无用的信息,且存在较多图像噪声,影响整体检测精度与效率。因此在对图像进行检测前,采取有效的预处理方法可以提升检测方法的可靠性与实时性。
(1)灰度化处理。在能够描述一幅图像整体和局部特征的情况下,选择灰度图像进行处理可以极大地提高运算效率。本文采用加权平均值法对图像灰度化,见式(1)。
其中,ω1、ω2和ω3分别是三个通道颜色分量的权值,本文取ω1=0.30,ω2=0.59,ω3=0.11。加权平均值法将视频图像灰度化后的结果如图2所示。
图2 视频图像的灰度化
(2)滤波去噪处理。对图像进行滤波,可以减小噪声点干扰,提升检测准确性。为了尽可能保留图像的边缘信息,本文采用能够有效保护图像边缘信息,并对椒盐噪声有良好抑制效果的中值滤波来对图像进行滤波处理,其计算公式见式(2)。
其中,ω是选取的模板,模板大小为3×3。g(x,y)表示滤波后的结果。如图3是中值滤波对图像中椒盐噪声和高斯噪声的处理结果。
图3 中值滤波处理
利用帧间差分法得到连续帧的差分图像,而后采取自适应阈值的二值化处理并结合Canny边缘检测算子结果得到改进的帧间差分法;最后利用混合高斯模型对图像进行背景差分处理,并将结果与改进的帧间差分法融合得到车辆检测结果。
通过以上公式可知,当N的原点移动到点(x,y)时,假设N完全包括在连接区域M中,则将点(x,y)的值置为1,反之就将该点的值置为0。
(2)膨胀。同腐蚀运算的定义一样,定义膨胀运算符号为∨。当N的原点移至点(x,y)时,将其记为Nxy,则连接区域M被结构元素N膨胀的运算见式(4)。
通过车辆检测得到初步的检测结果二值图,随后进行形态学滤波,使检测到的运动车辆更易被统计与标识。同时可以去除二值图像中的点噪声。
(1)腐蚀。腐蚀操作可以有效消除二值图像中的孤立噪声点。假设二值化之后图像的连接区域为M,结构元素为N,当该结构元素的原点移至点(x,y)时,将其记为Nxy,定义腐蚀运算的符号为∧,则连接区域M被结构元素N腐蚀的运算见式(3)。
通过以上公式,当N的原点移至点(x,y)时,如果N至少包括了一个白色的点,就将点(x,y)的值置为1,否则就将该点值置为0。图4是二值图像的形态学滤波结果。
图4 二值图像的形态学滤波
通过数学形态学滤波后的二值图像可以清晰的获取运动车辆的信息,并在实际的图像坐标中找出运动车辆的坐标位置,为后续的研究与策略规划打下基础。
本文提出结合Canny边缘检测算子的改进帧间差分法,来解决帧间差分法对运动目标轮廓检测效果不佳的问题。接着将改进帧间差分法的车辆检测结果融合背景差分法的检测结果,用来解决帧间差分法内部出现的“空洞”现象和背景差分法对外部光照变化敏感的问题。
利用多幅连续帧的帧间差分图像结合自适应阈值二值化处理得到帧间差分结果,随后融合边缘检测算法得到改进的帧间差分结果,其具体流程如图5。
图5 改进帧间差分法流程图
3.1.1 帧间差分。在视频序列连续三帧图像中,用
fk-1(x,y)表示第k-1帧图像,fk(x,y)表示第k帧图像,
fk+1(x,y)表示第k+1帧图像,gk-1(x,y)和gk(x,y)分别表示帧间差分法的两次计算结果,见式(5)、式(6)。
3.1.2 自适应阈值二值化。对于图像f(x,y),假设运动目标区域占图像的比例为ω0,运动目标像素点的均值为μ0,背景区域占图像的比例为ω1,背景像素点的均值为μ1,图像像素均值为μ。M为图像的高,N为图像的宽,单位为像素,类间方差为g,像素值小于T的个数为N0,大于T的个数为N1,计算公式如下:
其中,有ω0+ω1=1,采用遍历方法求取最大的g值作为图像的分割阈值T。随后将图像f(x,y)上每一个像素点(x,y)和给出的阈值T进行比较,见式(11),得到差分的二值图像。
采用自适应的动态阈值分割的好处在于避免了对所有场景使用单一阈值带来二值化分割的不确定性,能够适应环境变化较大的场景,克服单一阈值人为选择的问题,对环境有更好的适应性[26-27],其检测结果如图6所示。
图6 帧间差分二值化图像
3.1.3 差分图像融合。通过上述运算得到两幅连续的帧间差分二值图像,随后对两幅二值图像进行逻辑与计算,计算公式见式(12):
hk(x,y)即为连续帧间差分图像的融合结果。取视频图像的连续3帧图像,其检测结果如图7所示。
图7 三帧差分法检测图像
从图7中可以看出,采用的三帧差分法检测到的车辆目标有些边缘信息不完整,检测到的车辆内部也会存在“空洞”现象。而边缘检测法是根据运动目标内外部灰度值的差异来提取目标的轮廓,因此可以很好地弥补三帧差分法检测结果存在边缘信息不完整的缺点。本文采用边缘检测算法中的Canny算子对三帧差分法予以改进。Canny检测算法对目标的颜色不敏感,不因目标颜色的不同而影响检测结果,在分离出目标的同时也能够得到比较完整的边缘信息。
3.1.4 边缘检测。采用Canny边缘检测算子对图像检测,首先通过高斯滤波对图像降噪,而后计算滤波后图像中每个像素梯度的大小和方向。最后利用两个3×3的卷积核分别去检测垂直和水平方向的边缘信息,Canny算子检测结果图如图8所示。
图8 Canny算子的检测结果图
3.1.5 改进帧间差分法的结果与分析。将连续帧的帧间差分图像与Canny边缘检测所得到的图像进行融合计算,得到改进帧间差分法的检测结果,其计算公式如下:
其中,Ik(x,y)为改进的帧间差分法得到的检测图像,Fk(x,y)为三帧差分法得到的检测图像,Gk(x,y)为通过Canny边缘检测算法得到边缘图像。
根据以上改进三帧差分法的计算流程,选取了视频图像中的连续多帧图像,检测结果如图9所示。从图8与图9中可以看出,对帧间差分图作Canny边缘检测之后,能够得到比较完整的运动车辆轮廓,特别是能够将一些车辆的边缘连接起来。同时融合三帧差分法之后,又能保留车辆一部分内部信息,在一定程度上兼具了这两种车辆检测方法的优点。
图9 改进帧间差分法的检测结果
对预处理图像采用背景差分的方法得到图像中的背景信息,进而得到运动车辆信息,其具体流程如图10所示。
图10 混合高斯建模流程图
混合高斯背景差分模型由多个单高斯模型组合而成,通过对多个单高斯模型相应的加权求和处理来解决单高斯模型所存在的问题。
3.2.1 背景建模。采用K个高斯分布对图像中的某个像素点建模。在t时刻内,坐标(x,y)的灰度值取值集合见式(14)。
其中Ii(x,y)表示第i帧图像坐标点(x,y)的灰度值。那么在该时刻点(x,y)的概率密度函数就可以采用K个高斯分布描述,见式(15)。
其中,K表示高斯模型个数,It表示当前帧像素灰度值,表示在t时刻第i个模型的权值。为混合高斯模型在t时刻第i个模型的均值为混合高斯模型在t时刻第i个模型的方差,为混合高斯模型在t时刻第i个模型的概率密度函数,表达式见式(16)。
3.2.2 参数初始化。初始化参数时需要给出某个像素点It(x,y)在t时刻的均值μ0以及方差σ20。假设在t时间内的视频序列的帧数为N,那么N的计算公式见式(17)、式(18)。
3.2.3 模型匹配。在参数初始化完成之后,需要对模型进行匹配,将t时刻的帧图像与K个高斯分布按照式(19)依次匹配。
其中,λ为常数,根据上文的分析,λ的取值一般在2.5到3之间。对于混合高斯背景建模,本文采用了3个单高斯模型来描述运动目标和背景图像。同时在建模过程中,对不同的高斯模型采用不同的权值来进行融合。根据对视频中的运动目标分析得出,运动目标所占用的时间比背景所占用的时间要短,此时就给描述运动目标的高斯分布一个相对高的权值,反之给描述背景的高斯分布相对低的权值。在作对比前,对这3个高斯分布首先按照e的大小分别给予它们不同的权值,其中e越大,所给予的权值越大,排列越靠前,其中e的公式见式(20)。
其中,当e值越大,说明高斯模型的权重越大,用来描述的场景更可能是与运动无关的背景点。在作对比时,将这3个高斯分布按照排列的顺序根据式(21)进行判断,符合判断条件的点就是背景点;反之不符合判断条件的点就是运动目标点。
对于判断阈值T,不需要将全部的高斯模型一一作对比,先对前K1个(K1≤3)模型对比,对于所有满足求和结果的T来说,取最少的高斯模型个数作为K1的值,K1的公式见式(21)。
3.2.4 模型更新。对当前帧图像中的每个点进行匹配。对于匹配成功的点,直接将这些点作为建模的背景点,然后对参数更新,公式如下:
其中,α为模型的更新速率,α取值介于0到1。由上述公式可知,α的取值决定了背景的更新速率,α取值越小,更新速率会越小,同样β就会越小,最后结果的鲁棒性会越差;反之,α越大,则背景的更新速率就会越快,β同样也会越大,最后结果的鲁棒性会越好,但是会带来更多的噪声。假如匹配不成功,即不会参与匹配,那么均值与方差就保持不变,只需要改变它的权值和e值大小。计算公式见式(26)和式(27)。
3.2.5 产生新分布。如果在t时刻,图像中的每一个点都匹配成功,那么将按照e值排列的3个高斯分布中的最后一个,即权值最低的高斯分布舍去。然后重新建立一个新的高斯分布,以这个新高斯分布的均值为当前帧图像像素灰度值,最后选择一个较小的权值与一个较大的方差来进行参数初始化。当t时刻的图像完成匹配之后,下一帧图像来临时,继续按照上面的步骤进行匹配。
本文的车辆检测算法可以分为三个阶段:首先是改进帧间差分法得到二值化运动车辆图像的结果,其次是采用混合高斯模型得到另一个二值化运动车辆图像的结果,最后将这两个结果进行算法融合。式(28)表示融合改进帧间差分法和混合高斯背景建模算法。
其中,Ik(x,y)为改进帧间差分法得到的二值化运动车辆,Nk(x,y)为混合高斯背景差分得到的二值化运动车辆,Mk(x,y)为两种算法融合后的结果。
根据将改进帧间差分法和混合高斯背景模型结合的车辆检测算法流程,本文选取了视频图像中具有代表性的多帧连续图像,在这一段时间内,光照发生了一定的变化。通过实验结果对比说明本文的改进算法对光照不敏感,具有较好的环境适应能力。实验结果如图11-图15所示。
图11是改进前后的三帧差分法的车辆检测结果图,图12是混合高斯背景建模的车辆检测结果和本文算法的车辆检测结果,图13是混合高斯背景建模的膨胀结果和本文算法检测的膨胀结果,图14是两种方法求得的车辆外接矩形框。根据前面分析,改进三帧差分法能够检测出比较完整的目标轮廓,对光照发生变化的场景不敏感,但是对目标内部信息的保留不完整。根据图12(a)可以看出,混合高斯背景建模得到结果的内部信息较为完整,但同时混合高斯背景建模对光照变化比较敏感,如图12(a)中右下方车辆的顶部出现了“空洞”现象,直接造成的结果就是车身丢失严重,造成这一现象的原因是模型对光照变化的敏感性。本文融合算法的结果如图12(b)和图13(b),可以看到检测到的结果具有三帧差分法能够将车辆轮廓连起来的优点,同时解决了右下方车辆顶部的“空洞”现象。说明融合后的算法具有三帧差分法对光照的不敏感性,又具有混合高斯模型检测运动车辆内部信息完整的优点。
图11 改进的帧间差分法检测结果对比
图12 背景差分与本文检测结果对比
图13 两种膨胀结果对比图
图14 两种求取外接矩形结果对比图
图15 检测结果图
针对待检测的视频,选取不同的图像采用本文所提出的车辆检测算法进行检测,并将结果与传统方法的检测精度进行对比。车辆检测精度的判定利用检测结果中的特征点与实际位置的偏差来度量,具体检测精度计算公式如下:
其中P为检测准确率,R为检测召回率,F1为综合精度指标。
Δpixelu-i、Δpixelv-i分别为选取的第i个特征点的真实坐标与检测坐标的横向、纵向像素偏差值。
Zu-i、Zv-i分别为横向、纵向的像素点总数。
tn为所检测到的正确的特征点数目。
N为所选取的的车辆特征点总数。
表1为不同方法的检测精度统计表。
表1 检测精度对比
通过对具体视频图像的检测结果可以发现,本文所提出方法的检测精度明显优于三帧差分法与混合高斯背景差分法的检测精度,弥补了传统算法的不足,有较好的实际应用价值。
本文提出了一种融合帧间差分法和Canny边缘检测法的改进帧间差分法,在二值化的过程中结合最大类间方差法来求二值化的最佳阈值T,最后将改进帧间差分与混合高斯背景差分进行融合来对车辆进行检测,以改进单一使用其中一种算法的不足,提高了检测结果的准确性和算法对外部光照变化的适应能力。
在后续研究中,对背景更新需要不断改进,只有建立一个高度准确的背景模型才能完整检测出车辆,这个背景会根据摄像头的抖动,外界环境变化而实时地更新。本文在这一方面做了部分研究,但考虑的情况并不全面。在后续的研究中还需要在算法中加入自适应学习的过程,以更好的适应外界环境的突变,从而满足实际应用的需求。