欢迎来到天天文库
浏览记录
ID:33653155
大小:2.09 MB
页数:11页
时间:2019-02-28
《基于opencv目标跟踪系统的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于OpenCV的运动目标跟踪系统的实现徐俊斌SA摘要:运动目标跟踪在军事制导、视觉导航、机器人、智能交通、公共安全等领域有着广泛的应用.例如在车辆违章抓拍系统中,车辆的跟踪就是必不可少的.在入侵检测中,人、动物、车辆等大型运动目标的检测与跟踪也是整个系统运行的关键所在.因此在计算机视觉领域中目标跟踪是一个很重要的分支。传统的的运动目标检测主要有三种方法:背景图像差分法,时态差分法和光流法。然而这几种算法均不能很好地解决目标存在旋转或部分遮挡等复杂情况下的跟踪难题。本文基于OpenCV设计出改进的运动目标检
2、测与跟踪算法---CAMSHIFT算法来实现运动目标的跟踪,并在VC++编译环境下,利用USB摄像头作为视频采集器,通过观察实验结果可以看出,本文的运动目标检测算法能够正确地检测出视频图像中的运动目标,而且在检测性能上优于传统的检测算法。关键词:目标跟踪;OpenCV;CAMSHIFT算法;VC++0引言目标跟踪是计算机视觉的一个重要分支,日益广泛应用于科学技术、国防安全、航空、医药卫生以及国民经济等领域。实现目标跟踪的关键在于完整地分割目标、合理提取特征和准确地识别目标,同时,要考虑算法实现的时间,以保证
3、实时性。当视频图像中被跟踪目标发生姿态变化,存在旋转或部分遮挡时,简单的灰度模板或者Hausdorff距离匹配一般很难达到实时跟踪目标的要求,出现误匹配或者跟踪丢失的情况,而且跟踪效果较低。GaryR.Bradski提出的CAMSHIFT(ContinuouslyAdaptiveMeanShift)算法是以颜色直方图为目标模式的目标跟踪算法,可以有效地解决目标变形和部分遮挡的问题,而且运算效率很高。该文首先详细介绍CAMSHIFT算法,并结合Intel公司开发的开源OpenCV计算机视觉库,实现了运动目标跟
4、踪,并验证了CAMSHIFT算法的有效性以及展现OpenCV计算视觉库的灵活性和优越性。1CAMSHIFT算法原理CAMSHIFT算法是利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置。这个算法可以分为三个部分:1、色彩投影图(反向投影):(1).RGB颜色空间对光照亮度变化较为敏感,为了减少此变化对跟踪效果的影响,首先将图像从RGB空间转换到HSV空间。(2).然后对其中的H分量作直方
5、图,在直方图中代表了不同H分量值出现的概率或者像素个数,就是说可以查找出H分量大小为h的概率或者像素个数,即得到了颜色概率查找表。(3).将图像中每个像素的值用其颜色出现的概率对替换,就得到了颜色概率分布图。这个过程就叫反向投影,颜色概率分布图是一个灰度图像。2、MEANSHIFTMEANSHIFT算法是一种密度函数梯度估计的非参数方法,通过迭代寻优找到概率分布的极值来定位目标。算法过程为:(1).在颜色概率分布图中选取搜索窗W(2).计算零阶距:计算一阶距:计算搜索窗的质心:(3).调整搜索窗大小宽度为;
6、长度为1.2s;(4).移动搜索窗的中心到质心,如果移动距离大于预设的固定阈值,则重(2)(3)(4),直到搜索窗的中心与质心间的移动距离小于预设的固定阈值,或者循环运算的次数达到某一最大值,停止计算。关于MEANSHIFT的收敛性证明可以google相关文献。3、CAMSHIFT将MEANSHIFT算法扩展到连续图像序列,就是CAMSHIFT算法。它将视频的所有帧做MEANSHIFT运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧MEANSHIFT算法搜索窗的初始值。如此迭代下去,就可以实现对目标
7、的跟踪。算法过程为:(1).初始化搜索窗(2).计算搜索窗的颜色概率分布(反向投影)(3).运行MEANSHIFT算法,获得搜索窗新的大小和位置。(4).在下一帧视频图像中用(3)中的值重新初始化搜索窗的大小和位置,再跳转到(2)继续进行。CAMSHIFT算法能有效解决目标变形和遮挡的问题,对系统资源要求不高,时间复杂度低,在简单背景下能够取得良好的跟踪效果。但当背景较为复杂,或者有许多与目标颜色相似像素干扰的情况下,会导致跟踪失败。因为它单纯的考虑颜色直方图,忽略了目标的空间分布特性,所以这种情况下需加入
8、对跟踪目标的预测算法。2计算机视觉库OpenCV简介OpenCV(opensourcecomputervisionlibrary)诞生于Intel研究中心,是近年来推出的开源、免费的计算机视觉库,利用其所包含的函数可以很方便地实现数字图像和视频处理。同时利用面向对象的VC++6.0编程工具,采用C/C++语言编写,可以在Linux/Windows/Mac等操作系统上运行,大大提高了计算机的运行速度。OpenCV还
此文档下载收益归作者所有