Meanshift
无参密度估计:直方图法、最近邻域法和核密度估计法,和参数估计不同的是,无参密度估计不需要知道特征空间服从的概率分布。
Meanshift属于核密度估计法的一种,基本思想是通过计算某个点的周围点距离该点的偏移量的均值,得到一个偏移向量,然后朝着该偏移向量的方向迭代更新,因此可以利用该方法实现目标跟踪
Meanshitf向量基本形式定义:
其中,是一个半径为h的高维球区域,满足下面关系的y点集合:
meanshift更新基于 Meanshift 的目标跟踪
下面通过图示直观的说明MeanShift跟踪算法的基本原理。如下图所示:目标跟踪开始于数据点(空心圆点表示的是中心点,上标表示的是的迭代次数,周围的黑色圆点表示不断移动中的窗口样本点,虚线圆圈代表的是密度估计窗口的大小)。箭头表示样本点相对于核函数中心点的漂移向量,平均的漂移向量会指向样本点最密集的方向,也就是梯度方向。因为 Meanshift 算法是收敛的,因此在当前帧中通过反复迭代搜索特征空间中样本点最密集的区域,搜索点沿着样本点密度增加的方向“漂移”到局部密度极大点点,也就是被认为的目标位置,从而达到跟踪的目的,MeanShift 跟踪过程结束。
跟踪跟踪流程:
- 首先通过人工标注的方式确定跟踪目标的区域,对选中的区域的灰度颜色空间进行均匀划分,构建灰度直方图,计算目标的反向投影图
反向投影图:
用输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个bin上的值来代替该像素值,所以得到的反向投影图是单通的。用统计学术语,输出图像象素点的值是观测数组在某个分布(直方图)下的概率。(其实就是密度分布图)
- 根据方向投影图和输入的方框进行 Meanshift 迭代,向反向投影图中概率大的地方移动
- 使用当前帧迭代终止的位置替换上一帧的位置即可
参考文档
Camshift
Camshitf是一种运动物体跟踪的算法,主要通过视频图像中运动物体的颜色信息来达到跟踪的目的。
该算法分为三个部分:
(1)Back Projection(反向投影)计算
(2)Meanshift算法
(3)Camshift算法
第一步计算图像的反向投影,即颜色密度分布图,然后对每一帧图像进行计算Meanshift 向量,从初始搜索窗口开始迭代,依次运行Meanshift方法,找到新的搜索窗的大小和位置,依次迭代。
网友评论