MeanShift 视频目标追踪
简介
在视频的目标追踪算法中,可以分为两类,一类是卡尔曼滤波、MeanShift、ASMS这种根据相似性,从前一个帧计算当前帧目标的位置;另外一类是使用分类算法,当然也包括深度学习中的YOLO、FAST-RCNN这种对每一帧图像检测目标的位置。
Mean Shift作为一种特征空间的分析技术,可以最终定位到使得密度度量函数(density function)最大的位置。在视频的目标追踪中,通过在初始阶段计算得到关于目标的颜色直方图表示,在视频的接下来的帧中,将与目标的直方图的Bhattacharyya相关性系数、概率权重等作为更新的依据。MeanShift的更新过程可以使用下图解释。
流程
核密度估计
在 d d d维的空间 R d R^{d} Rd中,对于点 { x i } i = 1 … n \{x_i\}_{i=1\dots n} {
xi}i=1…n,核密度估计的核函数记为 K ( x ) K(x) K(x),窗口的大小记为 h h h,则对于以 x x x为中心点的值为:
f ^ ( x ) = 1 n h d ∑ i = 1 n K ( x − x i h ) \hat{f}(x)=\frac{1}{nh^d}\sum_{i=1}^{n}K(\frac{x-x_i}{h}) f^(x)=nhd1i=1∑nK(hx−xi)
常用的核函数有
- Epanechnikov 核函数
K E ( x ) = { 1 2 c d − 1 ( d + 2 ) ( 1 − ∥ x ∥ 2 ) , ∥ x ∥ < 1 0 o t h e r w i s e K_{E}(x)= \left\{ \begin{aligned} &\frac{1}{2}c_d^{-1}(d+2)(1-\|x\|^2) ,& \|x\| < 1\\ & 0 & otherwise \end{aligned} \right. KE(x)=⎩⎨⎧21cd−1(d+2)(1−∥x∥2),0∥x∥<1otherwise
其中 c d c_d cd是 d d d维空间的容量。 - 高斯核函数
K N ( x ) = ( 2 π ) − d / 2 exp ( − 1 2 ∥ x ∥ 2 ) K_N(x)=(2\pi)^{-d/2}\exp\left(-\frac{1}{2}\|x\|^2\right) KN(x)=(2π)−d/2exp(−21∥x∥2)
相关性
当使用直方图表示图像中某个区域的像素分布时,该直方图可以看做一个向量。衡量两个向量的相似性可以使用余弦相似度来计算。
假设目标的直方图向量为