MeanShift算法(三)之CamShift

来源:互联网 发布:知乎 史上最惨男主角 编辑:程序博客网 时间:2024/05/22 02:20

CamShift(Continuous Adaptive Mean Shift)是MeanShift的改进算法。建立跟踪目标的颜色概率模型后,可将视频转化为颜色概率分布图,然后在第一帧图像中初始化搜索窗。对以后的每一帧图像, CamShift可以自动调整搜索窗的大小和位置,定位被跟踪目标的中心和大小,并且用当前帧定位结果来预测下一帧图像中目标的中心和大小。

CamShift算法是一种动态变化分布的密度梯度估计的非参数方法。对离散概率分布,其过程如下:

1) 在颜色概率分布图中选取大小为s的搜索W;

2) 计算零阶矩:

计算x、y的一阶矩:


式中I(x,y)是坐标(x,y)的像素值,x、y的变化范围为搜索范围。

3) 计算搜索窗的质心为(xc,yc):


4) 重新设置搜索窗的大小s为上面搜索窗区域内颜色概率分布的函数;

5) 重复2)、3)、4)知道收敛(质心变化小于给定的阈值)。


零阶矩反应了目标在图像中的面积,颜色概率分布图是最大值为255的离散灰度图像。由此,设置搜索窗大小s与Z00的关系为:


考虑对称性,s取值接近计算结果的奇数。

通过计算二阶矩,可得到被跟踪目标的长轴、短轴和方向角。二阶矩为:



目标长轴的方向角为:


图像中目标长轴和短轴的长度可以按一下公式计算:



当用CamShift算法对特定颜色的目标进行跟踪时,不必计算每帧图像所有像素点的颜色概率分布,只需计算比当前搜索窗大一些的区域内的像素点的颜色概率分布,这样可节省很大的计算量。视频序一帧一帧变化时,就形成了连续的跟踪。MeanShift是针对每一帧的目标跟踪,CamShift是针对图像序列的目标跟踪。







0 0
原创粉丝点击