首页 > 编程知识 正文

算法的五个特性,算法原理

时间:2023-05-04 18:48:17 阅读:40191 作者:349

转自: http://www.cn blogs.com/moon dark/archive/2012/05/12/2497391.html

在最近的跟踪研究中,跟踪的方法实际上有很多,包括粒子滤波(pf )、meanshift跟踪以及KLT跟踪或kddc光流方法。 这些方法各有不同,粒子滤波可以全局找到最佳解,但它们的解决速度相对较慢,是基于颜色直方图的计算,因此与同一颜色的解决方法区别不大。 均值偏移法容易陷入局部最优,但速度很快,现在也有人组合均值偏移和pf进行跟踪,正好在很多方面是互补的。

Kanade-kddc-Tomasi方式在跟踪方面也很出色。 特别是在实时计算速度下,使用它得到的是很多点的轨迹“trajectory”,也有发生漂移的地方。 因此,在得到跟踪点后进行一些后处理。 说到Kanade-kddc-Tomasi,首先是Kanade-kddc两人在20世纪80年代发表的paper:aniterativeimageregistrationtechniquewithanapplicationtontostosteraterer 这里,我们将讨论图像点定位的方法,也就是图像的局部匹配,从传统的滑动窗口检索方法变成了计算偏移量d的过程,但是后来Jianbo Shi和Carlo Tomasi两个人在cvpr(94 '的文章good 本文主要说明在求解d的过程中,在什么情况下一定能得到d的解,这些情况的特点

PS:其实我很奇怪,这个算法为什么不叫KLT算法,用建博石命名~

那么,前戏就到此为止,接下来进入正题。 KLT是如何实现跟踪的?

首先说KLT算法的几个前提条件:

1 )亮度一定

2 )时间连续或运动“小运动”

3 )空间一致,运动类似于邻点,保持相邻

这几个为什么这样假设,以后再说明。 直观上,如果确定一个视频的两个相邻帧的I、j在某个局部窗口w上相同,则在窗口w内有I(x、y、t )、y )、t )。 假设亮度恒定)假设1 )是为了防止等号受到亮度的影响。

在窗口w上,所有的(x,y )向一个方向移动)为dx,dy ),(x ),y ),即t时刻的) x,y )点为t 时刻) x dx,y dy ),所以求匹配的问题如下

用积分表示上述公式时,上述公式等效如下。

该式的意思是,也就是说,找出两个图像中w窗口中I、j的不同。 其中,I是以x-d/2为中心、j是以x+d/2为中心、w/2为半径的一个矩形窗口之间的差异。 那么,结合我们的微积分知识,将w/2

的值为0,由包容的酒窝展开的性质:

可获得:

因此,问题如下。

其中:

因此,问题如下:

=

即,如下所示

其中,z是2*2矩阵,e是2*1的向量,

为了使d得到解,z必须满足条件。 也就是说,Z*Z '矩阵是可逆的,其中z '是z矩阵的倒相(ZT ),通常在拐角处有这样的特征。

在OpenCV中,可以使用查找角点的函数

voidcvgoodfeaturestotrack (constcvarr * imagecvarr * EIG image,cvarr * tempimagecvpoint 2d 32 f * corners int * cornercountdoublt

然后,可以使用函数cvCalcOpticalFlowPyrLK进行跟踪(在OpenCV中调用LK的函数似乎不止这些。 这是金字塔计算)。

voidcvcalcopticalflowpyrlk (constcvarr * prev、const CvArr* curr、CvArr* currPyr、constcvpoint 2d 32 f * ppyr CvSize winSize,int level,char* status,float* track error,cvtermcriteriacriteriiacle

OK,KLT算法的原理基本是这样的,其实其跟踪效果不太准确。 此后,提出了许多修正方法。 其中,我目前正在看TLD算法作者Zdenek Kalal在2010年ICPR上的文章forward-backward error 3360 automaticdetectionofttection

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。