1.4 本文的研究内容
本文主要研究基于OpenCV的运动目标检测与跟踪算法。所设计算法通过对视频序列中相邻的两幅图像进行差分运算使运动目标凸显出来,然后对差图像进行二值化、滤波、膨胀操作等处理来抑制噪声,不连续空洞等缺陷,这样可以使目标检测更准确。检测出运动目标后用矩形将运动圈出,方便在视频序列中观察。本设计以CamShift算法为基础实现对选定目标的跟踪。
本文用五个章节内容对本设计进行了介绍:第一章引言,第二章目标检测和跟踪算法研究现状,第三章运动目标检测及跟踪算法设计,第四章算法的OpenCV实现及程序效果,第五章结束语。
2 目标检测和跟踪算法的研究现状
2.1 目标检测算法
2.1.2 光流场运动分割
2.1.3 基于块的运动分割
2.2 目标跟踪算法
随着计算机视觉的发展,基于视觉的目标跟踪技术已成为学术界和工程领域关注的热点。基于视觉的目标跟踪技术发展到今天,已经有很多优秀的跟踪算法。跟踪算法按照不同的分类准则可以分为不同的类别。按照视觉跟踪的处理思路可分为自底而上的方法和自顶而下的方法;按照所要跟踪的目标数目可以分为单目标跟踪和多目标跟踪;按照摄像机个数可以分为单目跟踪和多目跟踪;按照摄像机与背景之间是否存在相对运动可以分为静止背景的运动目标跟踪和运动背景的运动目标跟踪;按照目标特征的选取不同,分为基于特征的跟踪、基于区域的跟踪、基于模型的跟踪、基于轮廓的跟踪、基于运动场估计的跟踪、混合方式的跟踪等。跟踪算法主要有粒子滤波法、主动轮廓算法、MeanShift算法、CamShift算法等。
2.2.1 粒子滤波
粒子滤波(PF:Particle Filter)的思想基于蒙特卡洛方法(Monte Carlo methods),它是利用粒子集来表示概率,可以用在任何形式的状态空间模型上。其核心思想是通过从后验概率中抽取的随机状态粒子来表达其分布,是一种顺序重要性采样法(Sequential Importance Sampling)。简单来说,粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进行近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。这里的样本即是粒子,当样本数量N→∞时可以逼近任何形式的概率密度分布。
尽管算法中的概率分布只是真实分布的一种近似,但由于非参数化的特点,它摆脱了解决非线性滤波问题时随机量必须满足高斯分布的制约,能表达比高斯模型更广泛的分布,也对变量参数的非线性特性有更强的建模能力。因此,粒子滤波能够比较精确地表达基于观测量和控制量的后验概率分布,可以用于解决SLAM问题。
在现代目标跟踪领域,由于实际问题的复杂性,所面对的更多的是非线性非高斯问题。在粒子滤波算法下一些传统的难点问题如目标检测、遮挡、交叉、失跟等得到更好的结果。
2.2.2 主动轮廓算法
主动轮廓模型也称为Snake算法,经典的Snake模型可以描述为一条参数化的曲线。设v(s)=(x(s),y(s))为轮廓曲线,s为弧长,则Snake的总能量可以表示为:
(2.2.1)
其中Eint为内部能量,Eext为外部能量。
内部能量Eint的一般计算式如下:
(2.2.2)
其中 为参数曲线的一阶导数; 为参数曲线的二阶导数;Ee为参数曲线的弹性能量;Eb为参数曲线的弯曲能量。
外部能量Eext主要决定轮廓收敛于图像特征点,对于灰度图像I(x,y),其计算式为:
(2.2.3) 基于OpenCV的目标检测与跟踪算法研究(3):http://www.751com.cn/tongxin/lunwen_8902.html