智能交通系统中运动汽车快速检测算法的实现
扫描二维码
随时随地手机看文章
引言
随着经济的发展,我国的机动车辆数量急剧增加,给管理带来了巨大的压力,在信息化为主要特征的今天,迫切要求利用现代物联网技术更好地为交通运输服务,构建智能交通系统,让交通模式变得更加智能化、更加安全、高效、节能。而对运动汽车的检测是智能交通系统中的重要环节,同时它也是以后进行汽车跟踪和识别的基础。
从监控网络中得到的视频序列,一般都是经过编码器压缩后进行传输和存储的。如果经过反变换后在像素域对它进行处理,会增加处理难度,也不符合快速、实时的要求。另一方面,经过视频压缩以后的码流本身就是对其中的运动物体的描述,如运动矢量信息、残差信息等,这使得在压缩域进行运动物体检测成为可能。本文就是通过压缩码流处理来实现对运动汽车的快速检测。
1 算法实现
本文提出的基于压缩域内的智能交通系统中运动汽车的快速检测算法,是直接从压缩域码流中提取运动矢量场,再对运动矢量场进行累积、去噪、补偿等处理,在得到可靠的运动矢量场后,再利用人和汽车运动矢量的差异去掉码流中的非汽车部分,最后利用改进型区域增长算法检测出汽车对象(速度快的车和速度慢的车)。其系统算法框图如图1所示。
2 运动矢量处理
因为码流讲究的是压缩效率而不是估计的准确性,因此,运动矢量并不能代表真实的运动情况,这其中含有许多噪声和伪运动矢量。所以,在进行运动对象提取之前,必须尽可能的将这么些不利于提取结果的运动矢量滤除。本文使用一种时域和空域相结合的运动矢量预处理方法。
首先,在时域上对多帧运动矢量求平均值来消除一些随机噪声和伪运动矢量。即:
本文对p64码流(352X288,130帧)视频图像进行了处理,处理之前,一帧图像的运动矢量如图2所示,经过时域和空间域处理后的运动矢量如图3所示。
3 提取运动目标
从图2和图3可以看出,其大部分噪声和伪运动矢量已经去除,但是还没有除去人的部分,为此,可以利用汽车和人的运动矢量差异来去除人的部分,本文主要利用了人和汽车运动矢量方向的不一样。由于汽车一般是在水平运动,运动矢量的角度不大,而人在上坡或下坡会有垂直运动,所以运动矢量的角度比汽车大。计算出各个运动矢量的角度后,即可制定判断准则:
利用这种方法,就可以把绝大部分属于人的运动矢量给去除掉。
4 改进的区域增长算法
经过上述处理后,往往还会残留部分非车的运动矢量,像骑自行车或骑摩托车的人为了完全分开这些不需要的运动矢量,利用汽车运动矢量的特点,本文采用了改进型区域增长算法,也称为三角形区域增长算法。先选择种子点,种子点应满足前后左右四个运动矢量和自身不为零值,然后进行种子点的向前、向后检测,再统计与它连续的非零运动矢量的个数,并设置阈值。若个数小于阈值,则认为是非车运动矢量而不考虑,否则认为与种子点连续的向前、向后、上一行、下二行所包括的区域均有汽车运动矢量区域。具体算法为:
这样,经过处理后,码流中就基本只有运动汽车的运动矢量了,实验结果如图4所示。之后还可以进一步通过K-means聚类算法来识别不同运动速度的汽车。
5 结论
基于压缩域运动汽车提取算法,在计算复杂度和计算速度方面都比基于像素域的算法有较大的优势,但分割的精确度不够高。目前,针对精度问题提出的解决方案是以时间换取精度,通过解码运动区域,在像素域完成边缘检测,以求达到更好的分割效果。在MPEG压缩域中,可供利用的主要信息是运动矢量和DCT系数,进一步分析这两者的特性,充分利用其提供的信息来提高对象分割的精确度是一个值得研究的方向。