基于OpenCV的运动车辆识别与跟踪

龙源期刊网 http://www.qikan.com.cn

基于OpenCV的运动车辆识别与跟踪

作者:唐佳林 邓垲镛 刘小根 郑文晓 来源:《科技资讯》2015年第29期

[摘要]在复杂交通场景下,针对运动车辆的特性,提出一种有效的识别和跟踪方法。使用背景差分,将运动目标从背景中分离出来,并在前景图像中对目标进行识别和标记,同时利用团块跟踪,对运动目标进行实时跟踪。在VC编译环境下使用Opencv开源库函数进行仿真实验,实验结果表明本文方法效率高,跟踪效果好。 [关键词]Opencv 形态学处理 目标识别 目标跟踪

中图分类号:TP39 文献标识码:A 文章编号:1672-3791(2015)10(b)-0000-00 1 引言

运动目标的与跟踪是应用视觉领域的一个重要的课题。现实生活之中,大量的有意义的视觉信息包括在运动之中[1][2]。尽管人类视觉既能看见运动又能看见静止的物体,但是在许多场合,如交通流量的检测,重要场所的保安,航空和军用飞机的制导,汽车的自动驾驶或辅助驾驶等,往往只对运动的物体感兴趣,因此,研究运动目标的识别和跟踪问题,有很大的理论意义和应用价值[3][4]。

OpenCV是一个针对于图像、视频处理的开源库,它包含现有很多图像处理理论的实现程序,可以很便捷的处理问题。研究人员可以更多地投入对算法的研究,然后利用OpenCV函数加以实现,不需要重新用c语言或者c++设计实现函数,从而可以大大缩减研发时间。 1. 2 运动目标的识别 2.1 图像预处理

将彩色视频流转换为灰度化视频,提高处理速度。在RGB模型中, 时,则表示一种灰度图像,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。在opencv中采用加权平均法处理图像灰度化,加权平均法是指:根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此按下式对 三分量进行加权平均能得到较合理的灰度图像。 (2.1)

在灰度化视频中提取出背景图像,同时通过滑动平均值算法对背景进行实时的更新,从而实现背景图像实时更新,提高后续背景差分的准确性。差分算法,即将当前帧图像与背景图像

龙源期刊网 http://www.qikan.com.cn

进行差分,从而得到前景运动目标图像(只有运动目标的图像)。图2.1中,右图为提取出的初始化背景图像,在背景更新过程中,更新后的背景将逐步接近真实的背景。 图2.1 背景提取的效果图(右图为背景) 2.2 前景图像优化

前景图像由于种种原因往往会导致图像受到各式各样的噪声影响,从而导致前景图像中的运动目标形状受到不同程度的影响,而且噪声往往以孤立点的形式出现因此对前景图像进行中值滤波处理,消除噪声。中值滤波的原理是:对一个窗口W内的所有像素灰度值进行排序,取排序结果的中间值作为W中心点处像素的灰度值。用公式表示为 (2.2)

通常W内像素个数选为奇数,以保证有一个中心值。若W内的像素数选为偶数时,则取中间两个值的平均值作为中值。

同时为了提高运动目标的可检测性,需要对前景图像进行二值化处理,并通过形态学处理(膨胀和腐蚀)断开目标与目标之间的细小的相连。

数学上,膨胀定义为集合运算。A被B膨胀,记为 ,定义为 (2.3)

其中 为空集,B为结构元素。A被B膨胀是所有结构元素原点位置组成的集合,其中映射并平移后的B至少与A的某些部分重叠。

腐蚀“收缩”或“细化”二值图像中的对象。像在膨胀中一样,收缩的方式和程度由一个结构元素控制。图2表明了腐蚀过程。

腐蚀的数学定义与膨胀相似,A被B腐蚀记为 ,定义为 (2.4)

换言之,A被B腐蚀是所有结构元素的原点位置的集合,其中平移的A被B的背景并不叠加。

2.3 在前景图像中检测运动目标

在上述两步处理后,可以得到一幅只有运动目标的较为清晰的前景图像。通过对整幅图像的亮度检测,可以在图像中获得各个团块的数据,通过筛选,去除一些不符合要求的团块,剩

龙源期刊网 http://www.qikan.com.cn

下的团块即为目标。对目标团块进行登记,提取他们的团块中心值,而且根据团块的大小制作标记框。这些中心值和标记框可以在原彩色视频中表现出来,实现识别效果。 2.4 处理流程图 图2.2 处理流程图 2.5 实际效果图 图2.3 实际效果图 2. 3 运动目标的跟踪 3.1 跟踪设计

在识别的基础上,如果要想达到跟踪的效果,需要对帧与帧之间运动物体的联系进行判定,若当前帧的运动物体中心坐标与前一帧的物体中心坐标相差在一定数值范围内并且目标具有相同属性时,就可以判定当前帧的物体与前一帧的物体属于同一个目标。以此为标准,对以下帧的运动物体进行判别,逐帧标记同一物体,实现物体的实时跟踪。 3.2 跟踪计数

对于每一个物体,都会进行标记一个ID。但物体离开监控区域时,算法会自动消除该ID,以及该ID所有的数据,释放内存消耗量,避免无效数据影响算法效率。与此同时,该算法还提供一个计数器,当一个ID消除时,该计数器就累加1,并记录消除时间,可以有效的知道在哪一时刻有多少个物体离开监控范围。可以为该区域的需求提供一下数据的参考,例如:路况的拥堵情况。 3.3 处理流转图 图3.1 处理流转图 3.4 效果图

运动目标跟踪效果如图3.2所示。 图3.2 效果图 4 结论

从实验结果可以看出,当场景较为空旷且运动物体的数量不多(一般不多于5个)的前提下,该算法可以很准确的将这些运动物体识别出来,同时根据帧与帧之间运动物体的变化位置

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4