视频图像中的车辆检测跟踪和分类
来源:liuxianping
作者:华仔
浏览:2342
时间:2016-08-10 14:18
标签:
摘要:
在现代交通管理和道路规划中,交通流量和通行车辆的类型、速度是重要的参数。自动获取这些数据的方法大致可以分为两类:一类是利用压电、红外、环形磁感应线圈等传感器获得车辆本身的参数,这类方法跟踪识别率较高,但是容易损坏,安装也不方便;还有一类就是基于图像处理和模式识别的方法,克服了前面一类方法的局限,由于图像处理识别技术的进步和硬件性价比的大幅提高,有一定实用价值的系统已经出现。这些系统的使用证明:图像处理识别车
在现代交通管理和道路规划中,交通流量和通行车辆的类型、速度是重要的参数。自动获取这些数据的方法大致可以分为两类:一类是利用压电、红外、环形磁感应线圈等传感器获得车辆本身的参数,这类方法跟踪识别率较高,但是容易损坏,安装也不方便;还有一类就是基于图像处理和模式识别的方法,克服了前面一类方法的局限,由于图像处理识别技术的进步和硬件性价比的大幅提高,有一定实用价值的系统已经出现。这些系统的使用证明:图像处理识别车型的方法日趋成熟,环境适应能力较强,能长期稳定工作,但是计算量大,识别正确率不如感应线圈、激光读卡等方法高。本文的研究属于后者,利用安装在高处的单个静止摄像头监视路面,利用运动分割与模型匹配的方法,检测并统计多车道的车流信息。
整个识别过程分三步:分割、跟踪和车型判定。运动目标的分割常采用帧差法。在监控场合,摄像头大多是固定的,背景基本没有变化或者变化缓慢,可以从图像序列中逐渐取出背景图像,然后利用帧差法检测出目标区域,同时还可以检测静止目标。由于识别过程中利用二值边缘图像,所以本文在图像分割中对输入图像进行了梯度二值化处理。三维空间和二维图像平面之间映射关系的确定,采用基于针孔模型的摄像机定标来计算。对目标区域的跟踪,采用了区域特征向量的匹配跟踪方法,减小了运算量。由于图像处理的方法很难提取轮数、轴距等车辆本身参数,所以在图像车型识别中一般都采用三维模型在图像上投影和车辆边缘相匹配的方法。
1 背景重建和图像分割
由于摄像头固定,背景变化缓慢,因此,可以利用图像序列逐渐恢复出背景图像。其基本原理是:对每一个像素进行监控,如果在较长时间内灰度不发生明显变化,则认为该像素属于背景区域,将该像素灰度值复制到背景缓冲区,否则属于前景区域[1]。由于光照以及车辆阴影等影响,采用这种方法恢复出来的背景图像存在较大噪声。因此在实验中对原始输入图像进行了梯度二值化处理,然后进行背景重建。这样可以减小阴影的干扰,加快背景重建速度。由于识别是利用边缘信息,所以梯度化对后面的识别过程没有影响。
在得到背景边界图像后,利用帧差法可以分割出感兴趣的目标。但是,如果目标区域和背景边界重合(值都为"1"),相减之后该目标区域被错误判定为背景区域 (值为"0")。为了减小错误判决区域,本文在分割时参考了相邻两帧的二值化帧差fdmask,判决准则如下:如果fdmask中某像素为"0",则输入图像和背景图像相应像素相减;否则直接复制输入图像中相应的像素值。分割结果经过噪声消除、形态学平滑边界、种子填充、区域标记等后续处理,就分离出了目标。
2 摄像机定标
在模型匹配中,需要从二维图像恢复目标三维信息,同时将三维模型投影到图像平面上,因此必须计算三维空间到图像平面的投影关系矩阵。这个过程就是摄像机定标。本文采用基于针孔模型的摄像机定标方法,其基本原理是利用给定的一组三维世界的点坐标和这些点在图像中的坐标,求解线性方程组,计算**投影矩阵中的各个元素[2]。**投影矩阵如下:
其中:(u,v)是图像坐标,(w,w,w)是三维坐标,M为投影矩阵,c为三维空间中点到摄像机镜头的矢量在主光轴上的投影距离。要求解M的各个元素,根据文献[2]介绍需要6个点的投影关系组成12阶的方程组,通常方程组不独立,没有唯一解,采用近似计算的误差较大。在(1)式基础上经过变形,将12阶方程分拆成三个4阶方程组,只需要利用4个点的投影关系,方程组的阶次也只有4阶,可以有效避免出现奇异矩阵,求出唯一解。由式(1)可以得出:
另外,除了4组点的坐标之外,还需测定镜头主光轴的水平垂直倾角。
3 车辆的跟踪和分类
在区域分割后,接下来进行区域跟踪,利用相邻两帧的区域匹配从而在图像序列中建立目标链,跟踪目标从进入监视范围到驶离监视范围的整个过程。首先要确定匹配准则。常用的图像匹配方法有 Hausdorff 距离匹配法和图像互相关。这两种方法都需要逐个像素的计算。为了减小计算量,采用区域特征跟踪法。目标区域的特征包括区域形心坐标、区域包围矩形、区域运动速度及运动方向和区域面积。本文匹配准则采用了两个假定:同一目标所对应区域在相邻两帧中面积相近;同一目标在前一帧中的区域形心加上运动速度所得到的形心预测值与后一帧中区域形心距离相近[3]。跟踪过程如下:
(1)将第一帧的各个区域当作不同的目标,对各个目标区域启动目标链。
(2)根据判决准则,如果某目标链中的区域在当前帧找到了匹配区域,则用找到的匹配区域特征更新该目标链中的区域特征。
(3)如果在形心预测值所在位置,当前帧区域和目标链中区域面积相差很大,则可以认为发生了合并或者分裂现象。对目标链中的区域包围矩形,在本帧查找该矩形覆盖了几个区域,如果多于一个区域,则认为发生了分裂现象。对分裂现象出现的新区域,启动新的目标链。同理,对于本帧区域的包围矩形,查找该矩形覆盖了几个目标链中的区域,如果多于一个,则认为发生了合并现象,利用合并区域启动新的目标链,同时终止那些被合并区域的目标链。
(4)对于目标链中的区域,如果在本帧没有与之相匹配的区域存在,则认为发生了消失现象。目标链并不立即终止,只有在经过数帧仍没有找到匹配之后,才终止该目标链。
(5)查找本帧是否还存在新进入的区域,如果存在,则启动新的目标链。
采用这种方法可以快速跟踪图像序列中的目标,同时得到车辆在监视范围的平均速度。在计数时,只有目标在连续数帧里出现才认为是一个真正的目标区域,只有目标在连续数帧都没有出现才认为消失,因此可以消除那些暂时消失引起的计数错误。
车辆分类是个很复杂的问题。图像处理方法要获取轮数、轴距等车辆本身参数比较困难,因此图像识别车型通常采用模型匹配方法。现有的研究大多是先抽取马辆的几条直线边缘,然后用线条和模型边缘匹配。由于在图像中抽取直线本身的计算量相当大,所以本文没有抽取车辆边缘直线,而是直接利用了Canny边缘检测的整体结果与模型相匹配。Canny边缘与模型边缘之间存在较大的形变,Hausdorff距离匹配对形变不敏感,所以采只Hausdorff距离作为匹配准则是很适宜的[4]。
bj-ai (A,B)被称为从A到B的有向Hausdorff 距离,它反映了A到B的不匹配程度。h(B,A)的意义与h(A,B)相似。在具体计算Hausdorff 距离时,通常采用距离变换的方法。车型分类步骤如下:
(1)在分割结果的基础上,对目标区域进行Canny算子边缘检测[5],仅仅处理分割出的目标区域的边缘,减小了运算量。
(2)对Canny边缘,采用串行距离变换,得到距离边换图像。距离变换图像的每个像素灰度值等于该像素到目标边缘的最近距离。
(3)对各分割目标,恢复车辆的三维信息,只计算长度和宽度。由于二维图像平面上一点对应了摄像机坐橱中不同深度的一系列点,所以在从图像上一点恢复到该点在世界坐标中的信息时,首先要给定该点在世界坐标中一个分量以减少不确定度(这样恢复出来的数值有些误差,通常给出Z方向高度值Zw)。
(4)在计算目标区域长度和宽度的同时,可以求出车辆底盘形心在地面上的位置(X,Y),根据速度方向判断车辆在地面上的角度α。利用车辆本身的三维模型数据以及(X,Y,α),通过式(1)**投影,消隐处理,可以确定车辆模型在图像平面上的投影。
(5)当目标进入指定区域后,以模型投影图像为核板,将投影图像在距离变换图像上移动,在每一个位置,求出模型投影图像下距离变换图像被模型轮廓线覆盖的像素值之和,以这个和值作为在该位置当前模型与实际车辆的匹配程度。将当前模型在各位置所得匹配程度的最小值作为当前模型与车辆的实际匹配程度,该最小值除以模型轮廓线的像素数目,即该模型与车辆之间的Hausdorff距离。对各种模型,分别求出它们与车辆之间的Hausdorff距离,取其中最小值对应的那种模型即为车型识别结果。实验过程中为了减小计算量,搜索方法采用了三步搜索法。
4 实验结果
本实验所采用的352x288视频图像,来自采用单千固定CCD摄像机于杭州天目山路拍摄的交通场景片断。主要算法在Trimedial300 DSP上用C语言实现,在图像分割过程中进行了较多的梯度、降低噪声、填充和标记运算,平均处理一帧大约耗时0.3s。算法流程的全过程如图1所示。
实验证明,抽取背景和当前帧之间进行差异检测,分割较为准确。对于比较淡的阴影,用梯度二值化方法可以部分消除阴影影响。由于只监视边缘变化部分,背景重建速度比直接利用灰度图像重建背景快很多,干扰也较小。梯度二值化处理之后重建背景只需150-200帧,而不经过梯度二值化处理在上千帧之后仍然没有较好的背景,并且点状噪声和云雾状模糊比较严重。
跟踪计数的结果表明,利用形心和面积作为特征,可以快速跟踪图像序列中的目标,计数正确率可达95%。计数误差主要在于遮挡引起的分裂合并处理不能完全如实反映目标的运动,把合并区域当作新出现的区域。如果合并区域再次分裂,分裂出来的区域就会被当作新区域,造成计数偏大。为了简化跟踪算法,实验仅在相邻两帧之间进行跟踪匹配,这样处理分裂合并的能力并不强,如果在多帧之间进行跟踪,效果会好一些,但是算法比较复杂。
对于大小相差悬殊的车辆,如公共汽车和轿车,根据长度、宽度信息就很容易分别开来,根本不用进行后面的模型匹配。所以本文试验主要针对了街道上常见的大小相差不太大的车辆,将它们分成了轿车、轻卡和面包车。试验证明:直接利用Canny边缘,根据Hausdorff距离匹配可以有效地对车型加以判别。由于没有逐条抽取边缘直线来与模型轮廓线匹配,计算量大为减小,算法实现简单。由于轿车的外形大小变化相对较小,识别正确率最高,可达90%;轻型卡车次之;面包车的识别率最低,大约50-60%,错误部分主要被识别成轿车,主要原因是面包车的大小相差很大,模型匹配方法的一个不足也在于此。要提高识别率,模型细分是必需的工作。本试验中摄像头安装在街道的前方,由于车辆最显著的外形特征在于侧轮廓,所以如果摄像头安装在街道旁边拍撼车辆的侧面图像,可以认为识别效果应该会更好一些:另外,Canny算子的边缘效果不是很好,噪声比较大,也影响了判决结果。如果采用Hough变换抽取车辆边缘的直线,计算量较大。如果阴影比较严重,还需要进行专门的去阴影处理。这些都是下一步工作要解决的问题。
参考文献
1 Shao-Yi Chien,Shyh-Yih Ma,Liang-Gee Chen。Efficient,Moving Object Segmentation Algorithm Using Background Registration Technique.IEEE Trans.Circuits and Systems for Video Technology.2002;12(6):577-586
2 孙慧,张燕.计算机视觉摄像机定标中投影矩阵的计算.河北师范大学学报,2001;126(1):26-28
3 张嫣,姚耀文,唐华松.动图像序列中多目标跟踪的研究与实现.计算机应用研究,2002;(1):74-76
4 Gunilla Borgefors.Distance Transformations in DiSital Images。Computer Vision,Graphics,and lmage Processing,1986;34:344-371
5 杨枝灵.Visual C++数字图像获取处理及实践.北京:人民邮电出版社,2003
分享到: