完整版基于MeanShift算法的视频球体目标的跟踪毕业论文Word下载.docx
《完整版基于MeanShift算法的视频球体目标的跟踪毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《完整版基于MeanShift算法的视频球体目标的跟踪毕业论文Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
MeanShift;
核函数;
Bhattacharyya系数
MeanShift-basedTargetTrackingforMovingSphericalObjectinVideo
Abstract
【ABSTRACT】Inthefieldofvisualtracking,MeanShift,whichisfamousforitsstrongreal-timeandrobustness,isaverygoodalgorithm.Thealgorithmdevelopedrapidlyinrecentyears,andthispaper,ImainlyresearchtheuseofMeanShiftTheorybasedonkernelestimationinthemovingtarget.MeanShiftalgorithmavoidstheglobalsearch,soitcanmeettherequirementofreal-timeverywell.Thispapersummarizesthetheoryofkernelestimationofprobabilitydensity,andmakearesearchofMeanShiftTheory.ThenIanalyzeditsadvantagesintargettracking,andalsopointedoutitsdefectsatthesametime.Inthesecondchapter,thispaperintroducedtheMeanShiftTheoryindetail.InthethirdchapterIresearchedtheMeanShifttrackingalgorithmandmadeanexperimentofMeanShiftalgorithmandaresearchoftheresult.
【KEYWORDS】ComputerVision;
targettracking;
MeanShift;
Bhattacharyyacoefficient
目 录
1绪论1
1.1引言1
1.2国内外研究的现状2
1.3目标跟踪综述2
1.3.1目标跟踪算法的分类2
1.3.2特征的选择及提取3
1.4论文内容安排3
2MeanShift理论4
2.1引言4
2.2MeanShift理论4
2.2.1MeanShift算法定义4
2.2.2MeanShift基本思想4
2.2.3扩展的MeanShift5
2.3MeanShift的物理意义7
2.4MeanShift算法的迭代步骤7
2.5本章小结8
3MeanShift目标跟踪算法9
3.1目标图像的建模9
3.1.1初始帧目标特征模型的建立9
3.1.2当前帧目标特征模型的建立9
3.1.3特征匹配规则10
3.2MeanShift目标跟踪算法11
3.2.1系数最大化11
3.2.2算法描述12
3.3本章小结12
4VisualC++2008编程实现Meanshift目标跟踪13
4.1基于可视化面向对象的visualc++2008Express13
4.2OpenCV及其在目标跟踪中的应用13
4.3基于MeanShift的视频球体的跟踪的软件设计13
4.3.1跟踪算法流程13
4.3.2跟踪算法的实现14
4.3.3算法的性能分析15
4.4本章小结16
5总结与展望17
5.1总结17
5.2展望17
参考文献18
致谢19
附录20
1绪论
1.1引言
计算机视觉(MachineVision)是使用计算机及相关设备对生物视觉的一种模拟。
它的主要任务就是通过对采集的图片或视频进行处理以获得相应场景的三维信息,就像人类和许多其他类生物每天所做的那样。
计算机视觉既是工程领域,也是科学领域中的一个富有挑战性重要研究领域。
计算机视觉是一门综合性的学科,它已经吸引了来自各个学科的研究者参加到对它的研究之中。
其中包括计算机科学和工程、信号处理、物理学、应用数学和统计学,神经生理学和认知科学等。
计算机视觉是在20世纪中叶从统计模式识别开始的,当时的工作主要集中在二维图像的分析和识别上。
60年代有人通过计算机程序从数字图像中提取出立体图形的三维结构,并对物体形状及空间关系进行描述。
1977年,DavidMarr教授提出了不同于“积木世界”分析方法[]的计算机视觉理论(ComputationalVision),该理论后来成为计算机视觉研究领域的一个十分重要的理论框架。
在序列图像中对运动目标进行跟踪是计算机视觉领域的一个非常重要的应用和关键技术。
它广泛地应用在智能视频监控、医学图像、农业自动化、航空航天、军事监控[]等各个方面。
所谓目标跟踪就是在一段序列图像(视频)的每幅(帧)图像中找出所感兴趣的目标的所在的位置。
不难看出,一个较好的目标跟踪算法应该满足以下两个条件:
1.实时性好,一个算法能否对目标进行跟踪,一个前提就是算法的耗时至少要比视频采集系统中对每帧图像的采集速率要快,否则就不能对目标进行有效的跟踪。
所以跟踪算法的实时性是非常重要的。
2.鲁棒性强,在实际的观测中,运动目标的背景往往很复杂,还有光照、图像噪声和目标被遮挡情况的影响下,目标的跟踪往往会非常困难,所以算法的鲁棒性也是衡量一个算法优劣的重要因素。
但是两个条件是矛盾的,往往很难同时满足,所以在实际的跟踪中,经常要进行折衷,以达到最佳的统合效果。
1.2国内外研究的现状
计算机视觉是一门新的学科,涉及面很广,包括图像处理、计算机图形学、人工智能、人工神经网络、计算机、数学、物理学等多个学科。
经过了多年的研究,近十多年来,才逐步应用在智能监控系统、机器人视觉系统、地图绘制、医学辅助[]等领域。
以军事方面为例,在军事方面图像处理和识别主要用于导弹的精确制导,各种侦察照片的判断,具有图像传输、存储和显示的军事自动化指挥系统,飞机、坦克和军舰模拟训练系统等;
指纹识别、人脸识别、图像复原,以及交通监控、事故分析[]等。
智能监控:
智能视频监控在交通、军事上都有广泛的应用,从而减少了对人工的依赖,系统会自动对感兴趣的目标分析和研究,而对目标进行实时的检测与跟踪。
自动导航:
以汽车为例,若有了自动导航系统,汽车就能自动行驶并自动避开道路上的障碍物或其他汽车。
同样,自动导航在军事侦察、监视上也起到重要的作用。
计算机视觉在其他方面也有很重要的应用,在此就不一一赘述了。
1.3目标跟踪综述
1.3.1目标跟踪算法的分类
目标跟踪是计算机视觉和图像处理中的一个重要问题。
目前在目标跟踪方面,有很多不同的跟踪算法,有人也试图对它们进行分类,如有刚性目标的跟踪和非刚性目标的跟踪算法的分类;
也有基于目标检测或分割的跟踪算法和基于目标特性的跟踪算法的分类[][]等,下面就基于后者的分类对目标跟踪进行简要说明:
1.基于目标检测或分割的算法。
这类算法需要在每一帧图像中检测或者分割出目标,然后对每一帧的目标进行关联。
由于跟踪对于检测或分割算法实时性有很高的要求,而且一般的检测或分割算法需要借助于先验知识或需要人的干预,故在实际的应用中适用范围很小。
2.基于目标特性的跟踪算法。
此类算法主要依靠高级的语义表示和描述来实现目标的跟踪,根据利用信息的不同,可分为基于目标边界和基于区域的方法。
目标区域信息很多,因此需要提取出合适的目标特性信息来提高跟踪的速度。
目标的直方图具有特性稳定、计算方法简单和计算量小的特点。
本文所论述的MeanShift跟踪算法也是采用直方图对目标进行建模来实现目标的跟踪的。
目标跟踪算法的分类方法还有很多,在此就不一一赘述。
1.3.2特征的选择及提取
在基于特性的跟踪算法中,选择什么样的目标特征至关重要。
一般来说,一个好的目标特征应该具有很好的区分性、独立性和可靠性。
一般的分类有边缘和轮廓、团块和区域。
边缘和轮廓:
边缘是指其周围像素有灰度的阶跃变化的像素的集合和强度值突然变化的像素点的集合。
边缘对于运动很敏感,对灰度的变化不敏感。
团块和区域:
一般来说,目标区域的颜色特征往往与背景有很大的差别,所以对区域的跟踪往往会非常有效。
本论文所论述的MeanShift算法就属于对目标区域的检测。
Meanshift的特性空间是目标区域的直方图分量组成的空间。
在核函数的作用下,计算特征的概率值。
1.3.3目标跟踪算法结构
在基于特征的目标跟踪算法中,对目标的跟踪一般采用预测—检测—匹配—更新四个步骤的循环结构,首先以前一帧的目标位置为基础,预测当前帧中目标的可能位置,这个可能的位置我们称之为候选区,然后将候选区的特征与初始特征比较,通过优化算法来找出最佳的匹配。
此时此候选区域即可作为目标在本帧的位置。
1.4论文内容安排
第二章主要讲述了核函数和MeanShift理论。
MeanShift算法是一种无参密度估计算法。
此章主要说明了MeanShift的特点,证明了MeanShift的收敛性。
第三章研究了MeanShift在目标跟踪中的应用。
分别运用核函数直方图对目标模型和候选区域模型进行了描述。
并提出了用Bhattacharyya系数来比较目标与候选区域的相似程序。
第四章通过MeanShift算法编程对视频中运动球体进行了跟踪,证明了MeanShift在视频跟踪中的优点:
实时性和鲁棒性强。
并指出了MeanShift的自身缺陷。
最后是论文的总结与展望。
2MeanShift理论
2.1引言
MeanShift(均值漂移)是一种无参数估计[]算法,这个概念最早是由Fukunaga等人[]于1975年在一篇概率密度梯度函数估计的论文中提出来的,其含义就是指偏移的均值向量。
随着MeanShift理论的发展,其含义也发生了变化,MeanShift算法一般指一个迭代的过程,先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束。
然而在很长的一段时间内,MeanShift并没有引起人们的重视,直到1995年,YizongCheng在其论文[]中对基本MeanShift算法进行了扩展推广,定义了一族核函数并增加了权重系数,这样大大扩大了MeanShift的适用范围。
Comaniciu等人成功地把MeanShift运用于特征空间分析,在图像平滑和图像分割中MeanShift都得到了很好的应用。
Comaniciu等证明了MeanShift在满足一定条件下,一定可以收敛到最近一个概率密度函数的稳态点,因此MeanShift可以用来检测概率密度函数中存在的模态。
Comaniciu等人还把非刚性的跟踪问题近似成MeanShift最优化问题,使得跟踪可以实时地进行。
2.2MeanShift理论
2.2.1MeanShift算法定义
MeanShift是指偏移的均值向量,是指在给定条件下连续迭代的过程,首先算出当前点偏移均值,然后将该点移动到其偏移均值,接着将这个点作为新的起始点继续移动,直到满足给定的收敛条件才停止移动。
2.2.2MeanShift基本思想
给定d维空间中的n个样本点xi,
,点的MeanShift向量基本形式定义为:
(2.1)
其中区域Sh用下式y点的集合来表示,很明显该区域是半径为h的高维球体。
(2.2)
k表示在这n个样本点中落入Sh区域的样本点个数。
表示样本点xi相对于点的偏移向量,公式1定义的MeanShift向量通过计算落入区域Sh中的k个样本点相对于点的偏移向量求和再平均得到。
由于非零的概率密度梯度指向概率密度增加最大的方向,若样本点xi从一个概率密度函数f(x)中采样得到,则Sh区域内的样本点主要落在沿着概率密度梯度的方向。
因此对应的MeanShift向量指向与概率密度梯度的方向是一致的。
图1MeanShift示意图
如图1所示,大圆圈代表区域Sh,小圆圈代表落入Sh区域内的样本点,即满足:
。
黑点表示MeanShift的基准点x,箭头则表示样本点相对于基准点x的偏移向量。
从图中的箭头方向可以看出偏移向量指向样本点分布最多的区域,即指向概率密度函数的梯度方向。
2.2.3扩展的MeanShift
1核函数的概念
定义1.1:
表示维的欧氏空间,用列向量来表示该空间中的一个点。
的模为,用来表示实数域。
如果函数存在一个剖面函数,即,并且同时满足以下条件:
(1)为非负。
(2)为非增,即如果那么。
(3)为分段连续,并且满足。
那么函数就称为核函数,Comaniciu等提出了两种多变量核函数的产生方式[]。
常见的核函数有均匀函数(Uniform)、三角核函数(Triangle)、依潘涅契科夫核函数(Epanechnikov)、双权核函数(Biweight)、高斯核函数(Gaussian)、余弦弧核函数(Cosinusarch)、双指数核函数(DoubleExponential)及双依潘涅契科夫核函数(DoubleEpanechnikov)。
2扩展Meanshift形式
从式(2.1)可以看出,对于所有落入Sh区域的样本点,无论其离基准点远近对最终计算的贡献都是一样的。
然而根据一般的统计规律,离基准点越近的采样点对估计其周围样本的统计特性时影响越大,因此考虑通过核函数的引入来反映基准点和采样点的距离对计算的影响。
同时考虑对Sh区域内的每个样本点都引入一个权重系数来反映它们各自的重要性。
基于上述思想把基本的MeanShift形式扩展为:
(2.3)
其中
(2.4)
上式中表示单位核函数,是大小的正定对称矩阵,或称为带宽矩阵。
式(2.3)中表示赋给采样点的权重。
一般情况下带宽矩阵可以定义为一个对角矩阵,把写成形式,则公式3又可以写为:
(2.5)
当采样点同时满足式(2.6)和式(2.7)时,
(2.6)
(2.7)
则式(2.5)完全退化为式(2.1),也就是说扩展的MeanShift形式在满足一定条件下可以转化为基本的MeanShift形式。
2.3MeanShift的物理意义
总是指向概率密度增加最大方向的结论。
2.4MeanShift算法的迭代步骤
首先对式(2.5)进一步处理得到下式:
(2.8)
把上式右边的第一项记为,即
(2.9)
MeanShift算法就是按以下三个步骤连续迭代计算:
(1)计算MeanShift向量。
(2)把的值赋给。
(3)判断是否满足,若是则结束循环,否则继续执行
(1)。
由式(2.9)得到,因此上面的步骤就是使MeanShift向量不断地沿着概率密度的梯度方向移动,移动的步长不仅与梯度的大小有关也与该点的概率密度有关。
在密度大的地方移动的步长小些,密度小的地方移动的步长就大些。
2.5本章小结
本章主要介绍了MeanShift算法的理论。
介绍了核密度估计理论,讨论了核密度估计的收敛性。
然后介绍了MeanShift在目标跟踪中的目标模型、候选模型的建立以及特征匹配的规则。
3MeanShift目标跟踪算法
MeanShift算法一个很大的特点就是它是在某一个位置的邻域内而不是全局搜索,因而MeanShift算法是一种高效的匹配算法,已经在对实时性要求较高的可视跟踪领域有很重要的应用。
3.1目标图像的建模
3.1.1初始帧目标特征模型的建立
在视频序列的初始帧中,用灰度或颜色分量等信息来描述目标特征。
由于MeanShift算法是一种交互式的半自动跟踪方法,因此可以用手工方式确定跟踪目标的搜索窗口,则在该窗口中第u个特征概率可以表示为:
(3.1)
其中d0为搜索窗口的中心坐标,表示该窗口中第i个象素的坐标,表示象素总个数;
表示核函数,Shift向量:
(3.6)
因此连续的迭代,将会收敛于局部极大值,即满足的固定点,也就是说MeanShift是一个连续迭代过程,使达到当前帧目标最优位置。
3.2MeanShift目标跟踪算法
为了在当前帧中找到和目标模型最相近的图像区域的位置,就要使Bhattacharyya系数[]最大。
在模式匹配中,其初始位置就是上一帧中目标的位置。
由相似度函数的光滑性,我们可以用基于梯度的方法进行寻优处理。
本论文采用的就是MeanShift算法进行寻优。
在这,我们假定目标区域在初始帧中进行人为指定,即用鼠标画出目标所在位置的矩形框。
3.2.1系数最大化
前面我们说过,在MeanShift匹配中,当前帧中搜索目标是从上一帧的匹配位置开始的。
我们假设在上一帧中目标的位置为。
因此,以为中心的候选目标区域概率应当被优先计算出来。
对于
(3.7)
当候选目标自开始变化不大时,即当目标的运动不是太快时,这种近似处理是可行的。
而在实际的跟踪中,目标在连续帧间的运动往往是很小的,所以这种近似是可行的。
由式(3.4):
(3.8)
其中,
(3.9)
为使取得最大值,只要求得第二子项最大值即可(第一子项与y无关)。
而第二子项则表示当前帧位置y处利用加权后的核函数k(x)的概率密度,而这个概率密度的极值问题则可以用MeanShift算法求得。
在匹配的过程中,核函数的中心从处利用式
(3.10)
不断移动得到新的位置处。
3.2.2算法描述
根据上面的结果,我们可以给出MeanShift目标跟踪算法的具体实现步骤。
假定目标模型和上一帧的匹配位置。
1.计算并且估算
2.根据式(3.9)计算权重
3.利用式(3.10)找到下一个新的位置
4.计算并估算
5.While
6.Do
7.估算
8.如果则停止,
9.否则,转步骤2
3.3本章小结
MeanShift是一种核密度估计的无参匹配算法。
其实际上就是把数据点朝向MeanShift矢量的方向不断的移动从而最终收敛到某一点。
此时核中心的位置对应概率密度的极值。
在MeanShift目标跟踪中,以Bhattacharyya系数来描述目标模型与候选区域所对应的核函数的直方图的相似性。
4VisualC++2008编程实现Meanshift目标跟踪
目前对目标跟踪已经进行了大量的研究,人们提出了各种各样的算法,如Kalman滤波算法,粒子滤波算法,MeanShift算法等,都取得了不错的效果。
本论文的编程是在VisualC++2008基于OpenCV下实现的。
4.1基于可视化面向对象的VisualC++2008Express
VisualC++是Microsoft公司推出的开发Win32环境程序,面向对你的可视化集成编程系统。
它不仅具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2、WinSock网络、3D控制界面。
由于VisualC++是一个图形化的开发工具,所以对开发图像处理系统提供了极大的方便。
VisualC++现在已经成了开发Win32程序的主要开发工具。
4.2OpenCV及其在目标跟踪中的应用
OpenCV[]是Intel开源计算机视觉库。
它由一系统C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。
它有三个重要的特性。
1.OpenCV拥有300多个C函数的跨平台的中、高层API。
它不依赖于其他的外部库。
2.OpenCV对非商业应用和商业应用都是免费(FREE)的,也就是说OpenCV是一个开源函数库。
3.OpenCV为IntelIntergratedPerformancePrimitives(IPP)提供了透明接口。
这意味着如果有为特定处理器优化的IPP库,OpenCV将在运行时自动加载这些库。
4.3基于MeanShift的视频球体的跟踪的软件设计
4.3.1跟踪算法流程
图4.1MeanShift算法流程图
4.3.2跟踪算法的实现
MeanShift算法假定满足两个条件:
1.在目标初始帧中已经检测出目标。
本文采用在初始帧用鼠标画出目标所在的矩形框,故满足此条件。
2.目标的颜色不会突然发生变化。
在论文程序所用的视频,运动球体的颜色是恒定的。
在上一章,我们已经详细的介绍了MeanShift目标跟踪算法的具体步骤。
在本文中,我采用VisualC++2008Express作为开发工具。
程序是基于OpenCV的MeanShift视频球体跟踪。
4.3.3算法的性能分析
本章的算法是在Pentium(R)Dual-CoreT43002.1GHZ的CPU,2GB内存的电脑,Windows7操作系统下用VisualC++2008下编程实现的。
OpenCV的版本为2.0。
图4.2中的视频序列是从一个运动球体的视频中截取出来的,共有495帧,长度为33s,帧宽640像素,高480像素,用MeanShift算法跟踪的效果。
特别说明的是本次实验中视频球体运动速度并不快。
可以看出,MeanShift对此视频球体的跟踪效果还