基于MeanShift算法的视频球体目标的跟踪

上传人:仙*** 文档编号:138259072 上传时间:2022-08-20 格式:DOC 页数:32 大小:529KB
收藏 版权申诉 举报 下载
基于MeanShift算法的视频球体目标的跟踪_第1页
第1页 / 共32页
基于MeanShift算法的视频球体目标的跟踪_第2页
第2页 / 共32页
基于MeanShift算法的视频球体目标的跟踪_第3页
第3页 / 共32页
资源描述:

《基于MeanShift算法的视频球体目标的跟踪》由会员分享,可在线阅读,更多相关《基于MeanShift算法的视频球体目标的跟踪(32页珍藏版)》请在装配图网上搜索。

1、宁波大学信息学院本科毕业设计(论文)_编号: 本科毕业设计(论文)题目:(中文)基于Mean Shift算法的视频球体目标的跟踪(英文)Mean Shift-based Target Tracking for Moving Spherical Object in Video分 院 信息科学与技术学院 专 业 计算机与技术学院 班 级 学 号 姓名 指导教师 职称 完成日期 25宁波大学信息学院本科毕业设计(论文)_诚 信 承 诺我谨在此承诺:本人所写的毕业论文基于Mean Shift视频球体目标的跟踪均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承

2、担。 承诺人(签名): 年 月 日摘 要【摘要】在视觉跟踪领域,Mean Shift算法以其实时性和鲁棒性强而著称,是一个非常优秀的算法,近几年来该算法发展迅速,有很大的发展前景。本论文主要研究基于核概率密度估计的Mean Shift理论在视频序列图像中运动目标的识别与跟踪的应用。Mean Shift算法避免了全局搜索,因此有很好的满足了实时性的要求。本文总结了核概率密度估计理论,并对Mean Shift理论做了研究,对基于Mean Shift理论的目标跟踪算法进行了深入研究,分析了其在视频跟踪中的优点,同时也指出了Mean Shift算法的不足。其中,第二章详细介绍了Mean Shift理论

3、,第三章研究了Mean Shift目标跟踪算法并在第四章对基于Mean Shift算法的视频球体跟踪进行了试验与结果分析。【关键词】计算机视觉; 目标跟踪; Mean Shift;核函数;Bhattacharyya系数Mean Shift-based Target Tracking for Moving Spherical Object in Video Abstract【ABSTRACT】In the field of visual tracking, Mean Shift, which is famous for its strong real-time and robustness, i

4、s a very good algorithm. The algorithm developed rapidly in recent years, and have great development prospects. In this paper, I mainly research the use of Mean Shift Theory based on kernel estimation in the moving target. Mean Shift algorithm avoids the global search, so it can meet the requirement

5、 of real-time very well. This paper summarizes the theory of kernel estimation of probability density, and make a research of Mean Shift Theory. Then I analyzed its advantages in target tracking, and also pointed out its defects at the same time. In the second chapter, this paper introduced the Mean

6、 Shift Theory in detail. In the third chapter I researched the Mean Shift tracking algorithm and made an experiment of Mean Shift algorithm and a research of the result.【KEYWORDS】Computer Vision; target tracking; Mean Shift; Bhattacharyya coefficient目录1 绪论11.1 引言11.2国内外研究的现状21.3 目标跟踪综述21.3.1 目标跟踪算法的

7、分类21.3.2 特征的选择及提取31.4 论文内容安排32 Mean Shift理论42.1 引言42.2 Mean Shift理论42.2.1 Mean Shift算法定义42.2.2 Mean Shift基本思想42.2.3 扩展的Mean Shift52.3 Mean Shift的物理意义72.4 Mean Shift算法的迭代步骤72.5 本章小结83 Mean Shift 目标跟踪算法93.1 目标图像的建模93.1.1初始帧目标特征模型的建立93.1.2当前帧目标特征模型的建立93.1.3特征匹配规则103.2 Mean Shift目标跟踪算法113.2.1 系数最大化113.2

8、.2 算法描述123.3 本章小结124 Visual C+ 2008编程实现Mean shift目标跟踪134.1 基于可视化面向对象的visual c+ 2008 Express134.2 OpenCV及其在目标跟踪中的应用134.3 基于Mean Shift的视频球体的跟踪的软件设计134.3.1 跟踪算法流程134.3.2 跟踪算法的实现144.3.3 算法的性能分析154.4 本章小结165 总结与展望175.1 总结175.2 展望17参考文献18致谢19附录20宁波大学信息学院本科毕业设计(论文)_1 绪论1.1 引言计算机视觉(Machine Vision)是使用计算机及相关设

9、备对生物视觉的一种模拟。它的主要任务就是通过对采集的图片或视频进行处理以获得相应场景的三维信息,就像人类和许多其他类生物每天所做的那样。计算机视觉既是工程领域,也是科学领域中的一个富有挑战性重要研究领域。计算机视觉是一门综合性的学科,它已经吸引了来自各个学科的研究者参加到对它的研究之中。其中包括计算机科学和工程、信号处理、物理学、应用数学和统计学,神经生理学和认知科学等。计算机视觉是在20世纪中叶从统计模式识别开始的,当时的工作主要集中在二维图像的分析和识别上。60年代有人通过计算机程序从数字图像中提取出立体图形的三维结构,并对物体形状及空间关系进行描述。1977年,David Marr教授提

10、出了不同于“积木世界”分析方法的计算机视觉理论(Computational Vision),该理论后来成为计算机视觉研究领域的一个十分重要的理论框架。在序列图像中对运动目标进行跟踪是计算机视觉领域的一个非常重要的应用和关键技术。它广泛地应用在智能视频监控、医学图像、农业自动化、航空航天、军事监控等各个方面。所谓目标跟踪就是在一段序列图像(视频)的每幅(帧)图像中找出所感兴趣的目标的所在的位置。不难看出,一个较好的目标跟踪算法应该满足以下两个条件:1. 实时性好,一个算法能否对目标进行跟踪,一个前提就是算法的耗时至少要比视频采集系统中对每帧图像的采集速率要快,否则就不能对目标进行有效的跟踪。所以

11、跟踪算法的实时性是非常重要的。2. 鲁棒性强,在实际的观测中,运动目标的背景往往很复杂,还有光照、图像噪声和目标被遮挡情况的影响下,目标的跟踪往往会非常困难,所以算法的鲁棒性也是衡量一个算法优劣的重要因素。但是两个条件是矛盾的,往往很难同时满足,所以在实际的跟踪中,经常要进行折衷,以达到最佳的统合效果。1.2国内外研究的现状计算机视觉是一门新的学科,涉及面很广,包括图像处理、计算机图形学、人工智能、人工神经网络、计算机、数学、物理学等多个学科。经过了多年的研究,近十多年来,才逐步应用在智能监控系统、机器人视觉系统、地图绘制、医学辅助等领域。以军事方面为例,在军事方面图像处理和识别主要用于导弹的

12、精确制导,各种侦察照片的判断,具有图像传输、存储和显示的军事自动化指挥系统,飞机、坦克和军舰模拟训练系统等;指纹识别、人脸识别、图像复原,以及交通监控、事故分析等。智能监控:智能视频监控在交通、军事上都有广泛的应用,从而减少了对人工的依赖,系统会自动对感兴趣的目标分析和研究,而对目标进行实时的检测与跟踪。自动导航:以汽车为例,若有了自动导航系统,汽车就能自动行驶并自动避开道路上的障碍物或其他汽车。同样,自动导航在军事侦察、监视上也起到重要的作用。计算机视觉在其他方面也有很重要的应用,在此就不一一赘述了。1.3 目标跟踪综述1.3.1 目标跟踪算法的分类目标跟踪是计算机视觉和图像处理中的一个重要

13、问题。目前在目标跟踪方面,有很多不同的跟踪算法,有人也试图对它们进行分类,如有刚性目标的跟踪和非刚性目标的跟踪算法的分类;也有基于目标检测或分割的跟踪算法和基于目标特性的跟踪算法的分类等,下面就基于后者的分类对目标跟踪进行简要说明:1. 基于目标检测或分割的算法。这类算法需要在每一帧图像中检测或者分割出目标,然后对每一帧的目标进行关联。由于跟踪对于检测或分割算法实时性有很高的要求,而且一般的检测或分割算法需要借助于先验知识或需要人的干预,故在实际的应用中适用范围很小。2. 基于目标特性的跟踪算法。此类算法主要依靠高级的语义表示和描述来实现目标的跟踪,根据利用信息的不同,可分为基于目标边界和基于

14、区域的方法。目标区域信息很多,因此需要提取出合适的目标特性信息来提高跟踪的速度。目标的直方图具有特性稳定、计算方法简单和计算量小的特点。本文所论述的Mean Shift跟踪算法也是采用直方图对目标进行建模来实现目标的跟踪的。 目标跟踪算法的分类方法还有很多,在此就不一一赘述。1.3.2 特征的选择及提取在基于特性的跟踪算法中,选择什么样的目标特征至关重要。一般来说,一个好的目标特征应该具有很好的区分性、独立性和可靠性。一般的分类有边缘和轮廓、团块和区域。边缘和轮廓:边缘是指其周围像素有灰度的阶跃变化的像素的集合和强度值突然变化的像素点的集合。边缘对于运动很敏感,对灰度的变化不敏感。团块和区域:

15、一般来说,目标区域的颜色特征往往与背景有很大的差别,所以对区域的跟踪往往会非常有效。本论文所论述的Mean Shift算法就属于对目标区域的检测。Mean shift的特性空间是目标区域的直方图分量组成的空间。在核函数的作用下,计算特征的概率值。1.3.3 目标跟踪算法结构在基于特征的目标跟踪算法中,对目标的跟踪一般采用预测检测匹配更新四个步骤的循环结构,首先以前一帧的目标位置为基础,预测当前帧中目标的可能位置,这个可能的位置我们称之为候选区,然后将候选区的特征与初始特征比较,通过优化算法来找出最佳的匹配。此时此候选区域即可作为目标在本帧的位置。1.4 论文内容安排第二章主要讲述了核函数和Me

16、an Shift理论。Mean Shift算法是一种无参密度估计算法。此章主要说明了Mean Shift的特点,证明了Mean Shift的收敛性。第三章研究了Mean Shift在目标跟踪中的应用。分别运用核函数直方图对目标模型和候选区域模型进行了描述。并提出了用Bhattacharyya系数来比较目标与候选区域的相似程序。第四章通过Mean Shift算法编程对视频中运动球体进行了跟踪,证明了Mean Shift在视频跟踪中的优点:实时性和鲁棒性强。并指出了Mean Shift的自身缺陷。最后是论文的总结与展望。2 Mean Shift理论2.1 引言Mean Shift(均值漂移)是一种

17、无参数估计算法,这个概念最早是由Fukunaga等人于1975年在一篇概率密度梯度函数估计的论文中提出来的,其含义就是指偏移的均值向量。随着Mean Shift理论的发展,其含义也发生了变化,Mean Shift算法一般指一个迭代的过程,先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束。然而在很长的一段时间内,Mean Shift并没有引起人们的重视,直到1995年,Yizong Cheng在其论文中对基本Mean Shift算法进行了扩展推广,定义了一族核函数并增加了权重系数,这样大大扩大了Mean Shift的适用范围。Comaniciu

18、等人成功地把Mean Shift运用于特征空间分析,在图像平滑和图像分割中Mean Shift都得到了很好的应用。Comaniciu等证明了Mean Shift在满足一定条件下,一定可以收敛到最近一个概率密度函数的稳态点,因此Mean Shift可以用来检测概率密度函数中存在的模态。Comaniciu等人还把非刚性的跟踪问题近似成Mean Shift最优化问题,使得跟踪可以实时地进行。2.2 Mean Shift理论2.2.1 Mean Shift算法定义Mean Shift 是指偏移的均值向量,是指在给定条件下连续迭代的过程,首先算出当前点偏移均值,然后将该点移动到其偏移均值,接着将这个点作

19、为新的起始点继续移动,直到满足给定的收敛条件才停止移动。2.2.2 Mean Shift基本思想 给定d维空间中的n个样本点xi,点的Mean Shift向量基本形式定义为: (2.1)其中区域Sh用下式y点的集合来表示,很明显该区域是半径为h的高维球体。 (2.2)k表示在这n个样本点中落入Sh区域的样本点个数。表示样本点xi相对于点的偏移向量,公式1定义的Mean Shift向量通过计算落入区域Sh中的k个样本点相对于点的偏移向量求和再平均得到。由于非零的概率密度梯度指向概率密度增加最大的方向,若样本点xi从一个概率密度函数f(x)中采样得到,则Sh区域内的样本点主要落在沿着概率密度梯度的

20、方向。因此对应的Mean Shift向量指向与概率密度梯度的方向是一致的。 图1 Mean Shift示意图 如图1所示,大圆圈代表区域Sh,小圆圈代表落入Sh区域内的样本点,即满足:。黑点表示Mean Shift的基准点x,箭头则表示样本点相对于基准点x的偏移向量。从图中的箭头方向可以看出偏移向量指向样本点分布最多的区域,即指向概率密度函数的梯度方向。2.2.3 扩展的Mean Shift1 核函数的概念定义1.1:表示维的欧氏空间,用列向量来表示该空间中的一个点。的模为,用来表示实数域。如果函数存在一个剖面函数,即,并且同时满足以下条件:(1) 为非负。(2) 为非增,即如果那么。(3)

21、为分段连续,并且满足。那么函数就称为核函数,Comaniciu等提出了两种多变量核函数的产生方式。常见的核函数有均匀函数(Uniform)、三角核函数(Triangle)、依潘涅契科夫核函数(Epanechnikov)、双权核函数(Biweight)、高斯核函数(Gaussian)、余弦弧核函数(Cosinus arch)、双指数核函数(Double Exponential)及双依潘涅契科夫核函数(Double Epanechnikov)。2扩展Meanshift形式从式(2.1)可以看出,对于所有落入Sh区域的样本点,无论其离基准点远近对最终计算的贡献都是一样的。然而根据一般的统计规律,离基

22、准点越近的采样点对估计其周围样本的统计特性时影响越大,因此考虑通过核函数的引入来反映基准点和采样点的距离对计算的影响。同时考虑对Sh区域内的每个样本点都引入一个权重系数来反映它们各自的重要性。基于上述思想把基本的Mean Shift形式扩展为: (2.3)其中 (2.4)上式中表示单位核函数,是大小的正定对称矩阵,或称为带宽矩阵。式(2.3)中表示赋给采样点的权重。一般情况下带宽矩阵可以定义为一个对角矩阵,把写成形式,则公式3又可以写为: (2.5)当采样点同时满足式(2.6)和式(2.7)时, (2.6) (2.7)则式(2.5)完全退化为式(2.1),也就是说扩展的Mean Shift形式

23、在满足一定条件下可以转化为基本的Mean Shift形式。2.3 Mean Shift的物理意义总是指向概率密度增加最大方向的结论。2.4 Mean Shift算法的迭代步骤 首先对式(2.5)进一步处理得到下式: (2.8) 把上式右边的第一项记为,即 (2.9) Mean Shift算法就是按以下三个步骤连续迭代计算:(1) 计算Mean Shift向量。(2) 把的值赋给。(3) 判断是否满足,若是则结束循环,否则继续执行(1)。由式(2.9)得到,因此上面的步骤就是使Mean Shift向量不断地沿着概率密度的梯度方向移动,移动的步长不仅与梯度的大小有关也与该点的概率密度有关。在密度大

24、的地方移动的步长小些,密度小的地方移动的步长就大些。2.5 本章小结 本章主要介绍了Mean Shift算法的理论。介绍了核密度估计理论,讨论了核密度估计的收敛性。然后介绍了Mean Shift在目标跟踪中的目标模型、候选模型的建立以及特征匹配的规则。3 Mean Shift 目标跟踪算法 Mean Shift算法一个很大的特点就是它是在某一个位置的邻域内而不是全局搜索,因而Mean Shift算法是一种高效的匹配算法,已经在对实时性要求较高的可视跟踪领域有很重要的应用。3.1 目标图像的建模3.1.1初始帧目标特征模型的建立 在视频序列的初始帧中,用灰度或颜色分量等信息来描述目标特征。由于M

25、ean Shift算法是一种交互式的半自动跟踪方法,因此可以用手工方式确定跟踪目标的搜索窗口,则在该窗口中第u个特征概率可以表示为: (3.1)其中d0为搜索窗口的中心坐标,表示该窗口中第i个象素的坐标,表示象素总个数;表示核函数,h表示核函数的带宽;函数b 和的作用是判断第i个象素的灰度或颜色值是否属于特征值u;C 是一个归一化系数,且,使得,其中表示特征个数。3.1.2当前帧目标特征模型的建立当前帧搜索窗口中第u个特征概率可以表示为: (3.2) 其中d1表示当前帧搜索窗口的中心坐标。 是一个归一化系数,且,使得,其中表示特征个数。3.1.3特征匹配规则 这里用Bhattacharyya系

26、数来表示初始帧目标特征模型和当前帧目标的匹配程度,按如下定义: (3.3) 其几何含义是m维单位矢量和夹角的余弦值,显然当越大时匹配程度就越高,即当前帧目标与初始帧目标最相似。因此对公式4.30求极值,就能够使目标搜索成功。以前一帧搜索窗口的位置作为当前帧的起始搜索位置,设窗口中心为d1,在该领域内寻找最优目标位置。将公式4.30在d1处按泰勒级数展开,则线性部分近似为: (3.4)其中 (3.5)对公式13求极值,即得到Mean Shift向量: (3.6)因此连续的迭代,将会收敛于局部极大值,即满足的固定点,也就是说Mean Shift是一个连续迭代过程,使达到当前帧目标最优位置。3.2

27、Mean Shift目标跟踪算法为了在当前帧中找到和目标模型最相近的图像区域的位置,就要使Bhattacharyya系数最大。在模式匹配中,其初始位置就是上一帧中目标的位置。由相似度函数的光滑性,我们可以用基于梯度的方法进行寻优处理。本论文采用的就是Mean Shift算法进行寻优。在这,我们假定目标区域在初始帧中进行人为指定,即用鼠标画出目标所在位置的矩形框。3.2.1 系数最大化前面我们说过,在Mean Shift匹配中,当前帧中搜索目标是从上一帧的匹配位置开始的。我们假设在上一帧中目标的位置为。因此,以为中心的候选目标区域概率应当被优先计算出来。对于 (3.7)当候选目标自开始变化不大时

28、,即当目标的运动不是太快时,这种近似处理是可行的。而在实际的跟踪中,目标在连续帧间的运动往往是很小的,所以这种近似是可行的。由式(3.4):(3.8)其中, (3.9)为使取得最大值,只要求得第二子项最大值即可(第一子项与y无关)。而第二子项则表示当前帧位置y处利用加权后的核函数k(x)的概率密度,而这个概率密度的极值问题则可以用Mean Shift算法求得。在匹配的过程中,核函数的中心从处利用式(3.10)不断移动得到新的位置处。3.2.2 算法描述根据上面的结果,我们可以给出Mean Shift目标跟踪算法的具体实现步骤。假定目标模型和上一帧的匹配位置。1. 计算并且估算2. 根据式(3.

29、9)计算权重3. 利用式(3.10)找到下一个新的位置4. 计算并估算5. While Do 估算 6. 如果 则停止,否则,转步骤23.3 本章小结 Mean Shift是一种核密度估计的无参匹配算法。其实际上就是把数据点朝向Mean Shift矢量的方向不断的移动从而最终收敛到某一点。此时核中心的位置对应概率密度的极值。在Mean Shift目标跟踪中,以Bhattacharyya系数来描述目标模型与候选区域所对应的核函数的直方图的相似性。4 Visual C+ 2008编程实现Mean shift目标跟踪 目前对目标跟踪已经进行了大量的研究,人们提出了各种各样的算法,如Kalman滤波算

30、法,粒子滤波算法,Mean Shift算法等,都取得了不错的效果。本论文的编程是在Visual C+ 2008基于OpenCV下实现的。4.1 基于可视化面向对象的Visual C+ 2008 Express Visual C+是Microsoft公司推出的开发Win32环境程序,面向对你的可视化集成编程系统。它不仅具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2、WinSock网络、3D控制界面。由于Visual C+是一个图形化的开发工具,所以对开发图像处理系统提供了极大的方便。V

31、isual C+现在已经成了开发Win32程序的主要开发工具。4.2 OpenCV及其在目标跟踪中的应用OpenCV是Intel开源计算机视觉库。它由一系统C函数和少量C+类构成,实现了图像处理和计算机视觉方面的很多通用算法。它有三个重要的特性。1. OpenCV拥有300多个C函数的跨平台的中、高层API。它不依赖于其他的外部库。2. OpenCV对非商业应用和商业应用都是免费(FREE)的,也就是说OpenCV是一个开源函数库。3. OpenCV为Intel Intergrated Performance Primitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的IPP

32、库,OpenCV将在运行时自动加载这些库。4.3 基于Mean Shift的视频球体的跟踪的软件设计4.3.1 跟踪算法流程视频结束用Mean Shift算法在下一帧找出与目标最匹配的y。计算目标模型的核密度函数,找出质心点并建立目标的颜色直方图在视频的初始帧用鼠标确定所要跟踪的目标开始视频输入NoYes结束图4.1 Mean Shift算法流程图4.3.2 跟踪算法的实现Mean Shift算法假定满足两个条件:1. 在目标初始帧中已经检测出目标。本文采用在初始帧用鼠标画出目标所在的矩形框,故满足此条件。2. 目标的颜色不会突然发生变化。在论文程序所用的视频,运动球体的颜色是恒定的。 在上一

33、章,我们已经详细的介绍了Mean Shift目标跟踪算法的具体步骤。在本文中,我采用Visual C+ 2008 Express作为开发工具。程序是基于OpenCV的Mean Shift视频球体跟踪。4.3.3 算法的性能分析本章的算法是在Pentium(R) Dual-Core T4300 2.1GHZ的CPU,2GB内存的电脑,Windows 7操作系统下用Visual C+ 2008下编程实现的。OpenCV的版本为2.0。图4.2中的视频序列是从一个运动球体的视频中截取出来的,共有495帧,长度为33s,帧宽640像素,高480像素,用Mean Shift算法跟踪的效果。特别说明的是本

34、次实验中视频球体运动速度并不快。可以看出,Mean Shift对此视频球体的跟踪效果还是比较理想的。图4.2 Mean Shift算法对视频球体的跟踪效果图图4.3 Mean Shift算法在对视频球体出现遮挡的情况下跟踪效果图图4.3是球体在右侧边界出逐渐消失并再次出现时的跟踪效果,说明Mean Shift算法在出现遮挡的情况下,其鲁棒性也是很好的。4.4 本章小结 本章实现了运动Mean Shift算法对视频球体进行了跟踪,并对结果进行了分析。可以看出Mean Shift算法在目标跟踪方便有很大的优势,其实时性非常好,并且在球体出现遮挡的情况下,也不会出现跟踪失败,故Mean Shift算

35、法还有很好的鲁棒性。5 总结与展望5.1 总结可视跟踪是当今计算机视觉领域的研究重点。一般来说,目标跟踪算法要有良好的实时性并且能够适应目标自身复杂的运动以及场景的变化。Mean Shift算法以其非常优秀的搜索效率、无参的初始化过程较好地满足了快速模式匹配的要求。本文在分析目标图像序列的基础上,对本课题基于Mean Shift的运动目标检测与跟踪进行了研究。总结如下:1. 根据实际应用背景,确立了本课题的任务是采用图像处理的方法来解决动态图像的目标识别与跟踪。2. 研究了核概率密度估计理论,对基于无参估计的Mean Shift进行了深入了解。并通过实验验证了Mean Shift算法在视频目标

36、跟踪中的有效性。并且证明了在目标跟踪领域,Mean Shift算法有很好的实时性和鲁棒性。对遮挡的鲁棒性也不错。同时也指出了Mean Shift算法的缺点,如缺乏模板更新能力,对快速运动目标的跟踪效果不理想等。5.2 展望 Mean Shift算法以核函数加权下的直方图来描述目标,其对目标的变形、遮挡等鲁棒性较好。但是直方图并不是一种很好的对目标特征的描述。当背景和目标颜色相似时,效果不理想。另外,由于Mean Shift算法是在邻域内搜索,所以Mean Shift在对快速运动目标的跟踪效果上并不理想,往往会出现跟踪失败的现象。 Mean Shift的另一个缺点是核函数的带宽不发生变化,所以当

37、目标大小发生很大的改变时,跟踪就不会太理想。由于时间有限,并未对此做过多的研究,希望今后在这方面有更大的突破。参考文献1 David Marr, Artificial Intelligence: A personal viewJ. Artificial Intelligence 1997, 9(1), 3748.2 Collins, R.T. and A.J. Lipton, Introductions to the special section on video surveillanceJ. IEEE Transactions on Pattern Analysis and Machine

38、 Intelligence, 2000. 22(8): p. 7457463 齐飞,罗予频,胡东成. 基于均值漂移的视觉目标跟踪方法综述J. 计算机工程. 2007(11). p. 4752.4 赵艳启. 运动目标识别与跟踪算法的研究D. 南京: 河海大学 20055 李智勇等. 动态图像分析M. 北京: 国防工业出版社 1999.6 高文,陈熙霖. 计算机视觉M. 北京: 清华大学出版社 1999.7 Corder, G.W. and Foreman, D.I. Nonparametric Statistics for Non-Statisticians: A Step-by-Step Ap

39、proachJ. Wiley 2009.8 Fukunage, K. and L.D. Hostetler, The estimation of the gradient of a density function with application in pattern recognitionJ. IEEE Trans. Information Theory, 1975. 21(1): p. 3234.9 Comaniciu, D. and P. Meer. Mean Shift analysis and applicationJ. in Proceedings of the Seventh

40、IEEE international Conference. Computer Vision. 1999.10 McFarlane, N.J.B. and C.P. Toyama, and G.D. Hager. Tracking objects by color aloneJ. In Technical report, Dept. of Computer Science. 1997. Yale University.11 Bhattacharyya, A. On a measure of divergence between two statistical populations defin

41、ed by their probability distributionsJ. Bulletin of the Calcutta Mathematical Society 35: 99-109.12 Bradski, G. and Kaehler, A. 学习OpenCVM. 南京: 东南大学出版社 2009致谢首先要感谢我的导师陈恳老师,感谢在这半年多来,陈恳老师对我的谆谆教诲。我这个愚钝顽劣的学生能在陈老师的门下是我一生的荣幸。祝愿我的导师身体安康,万事如意。同时还要感谢陈老师的研究生赵雪梅学长,她在我毕业设计期间给了我很大的帮助,孜孜不倦的讲解我所不懂的问题,没有她,我的毕业设计就不可能

42、完成这样。 在宁波大学的这几年光阴,有欢乐,有泪水;有对学习的一片热诚,也有迷恋上游戏的迷惘。大学给我了太多太多,它让我变得成熟。感谢这个美丽的校园。 感谢每一个教过我,给过我帮助的老师,每每聆听他们的教诲,都受益匪浅,感慨良多。 父母之恩,天高地厚,常念于心。附录部分程序源码:IplImage *image = 0, *hsv = 0, *hue = 0, *mask = 0, *backproject = 0, *histimg = 0;CvHistogram *hist = 0;int select_object = 0;int track_object = 0; CvPoint ori

43、gin; CvRect selection; CvRect track_window;CvConnectedComp track_comp; int hdims = 256; int vmin = 10, vmax = 256, smin = 30; bool g_bIsFinished = true;void on_mouse( int event, int x, int y, int flags, void* param ) if( !image ) return; if( image-origin ) y = image-height - y; if( select_object ) s

44、election.x = MIN(x, origin.x); selection.y = MIN(y, origin.y); selection.width = selection.x + CV_IABS(x - origin.x); selection.height = selection.y + CV_IABS(y - origin.y); selection.x = MAX( selection.x, 0 ); selection.y = MAX( selection.y, 0 ); selection.width = MIN( selection.width, image-width

45、); selection.height = MIN( selection.height, image-height ); selection.width -= selection.x; selection.height -= selection.y; switch( event ) case CV_EVENT_LBUTTONDOWN:origin = cvPoint(x, y); selection = cvRect(x, y, 0, 0); select_object = 1; break; case CV_EVENT_LBUTTONUP:select_object = 0; if( sel

46、ection.width 0 & selection.height 0 ) track_object = -1; break; CvScalar hsv2rgb( float hue ) int rgb3, p, sector; static const int sector_data3= 0,2,1, 1,2,0, 1,0,2, 2,0,1, 2,1,0, 0,1,2; hue *= 0.033333333333333333333333333333333f; sector = cvFloor(hue); p = cvRound(255*(hue - sector); p = sector &

47、 1 ? 255 : 0; rgbsector_datasector0 = 255; rgbsector_datasector1 = 0; rgbsector_datasector2 = p; return cvScalar(rgb2, rgb1, rgb0,0);void PlayVideo()float arr2=0,180; float* hranges = arr;CvCapture* capture = 0; capture = cvCaptureFromAVI( ball.avi ); if( !capture ) fprintf(stderr,Could not initiali

48、ze capturing.n);return; cvNamedWindow( Tracking Demo, 1 );cvNamedWindow( Histogram, 1 );cvNamedWindow( Back Project, 1);cvNamedWindow( Hue, 1);cvNamedWindow( Hsv, 1); cvSetMouseCallback( Tracking Demo, (CvMouseCallback)on_mouse ); for(;) IplImage* frame = 0; int i, bin_w; frame = cvQueryFrame( captu

49、re ); if( !frame ) g_bIsFinished = true; break; if( !image ) /* allocate all the buffers */ image = cvCreateImage( cvGetSize(frame), 8, 3 ); image-origin = frame-origin=0; hsv = cvCreateImage( cvGetSize(frame), 8, 3 ); hue = cvCreateImage( cvGetSize(frame), 8, 1 ); mask = cvCreateImage( cvGetSize(fr

50、ame), 8, 1 ); backproject = cvCreateImage( cvGetSize(frame), 8, 1 );backproject-origin = frame-origin; hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 ); histimg = cvCreateImage( cvGetSize(frame), 8, 3 ); cvZero( histimg ); cvCopy( frame, image, 0 ); cvCvtColor( image, hsv, CV_BGR2HSV );

51、if( track_object ) int _vmin = vmin, _vmax = vmax; cvInRangeS( hsv, cvScalar(0,smin,MIN(_vmin,_vmax),0), cvScalar(180,256,MAX(_vmin,_vmax),0), mask ); cvInRangeS( hsv, cvScalar(0, 0, 0,0), cvScalar(130, 255, 255, 0), mask ); cvSplit( hsv, hue, 0, 0, 0 ); if( track_object bins,hist-bins,max_val?255./

52、max_val:0.,0); cvResetImageROI( hue ); cvResetImageROI( mask ); track_window = selection; track_object = 1; cvZero( histimg ); bin_w = histimg-width / hdims; for( i = 0; i bins, i)*histimg-height/255 ); CvScalar color = hsv2rgb(i*180.f/hdims); cvRectangle( histimg, cvPoint(i*bin_w, histimg-height),

53、cvPoint(i+1)*bin_w, histimg-height - val), color, -1, 8, 0 ) cvCalcBackProject( &hue, backproject, hist ); cvAnd( backproject, mask, backproject, 0 ); cvMeanShift( backproject, track_window, cvTermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 ), track_window = track_comp.rect;CvScalar cc;cc =

54、cvScalar(0, 0, 255);cvRectangle( image, cvPoint(track_window.x, track_window.y), cvPoint(track_window.x+ track_window.width, track_window.y+ track_window.height), if( select_object & selection.width 0 & selection.height 0 ) cvSetImageROI( image, selection ); cvXorS( image, cvScalarAll(255), image, 0 ); cvResetImageROI( image ); cvShowImage( Tracking Demo, image );cvShowImage( Histogram, histimg );cvShowImage( Back Project, backproject ); cvShowImage( Hue, hue );cvShowImage( hsv, hsv );cvWaitKey(50); cvReleaseCapture( &capture );cvDestroyWindow( Back P

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!