CBWH学习笔记(三)

在之前的文章里,我们学习了均值漂移的基本方法,在这篇文章里,我们从BWH方法入手,继续学习CBWH方法。 Credit:

本文中所引用的研究来自:

J. Ning, Robust mean-shift tracking with corrected background-weighted histogram, DOI: 10.1049/iet-cvi.2009.0075

王芳芳,陈华 《动态背景下的视频目标跟踪》,硕士学位论文

Kernel-Based Object Tracking, DOI: 10.1109/TPAMI.2003.1195991

成伟,柴毅 《均值漂移算法在视频目标跟踪中的应用》,硕士学位论文

BWH方法

在之前的均值漂移算法里,存在一个问题,即,算法是用颜色直方图来描述目标的,如果目标颜色和背景颜色模式很相似,可能产生的差异不足以让算法收敛,或者收敛至错误的局部最优。所以在此基础上,有人提出了BWH算法,即通过在描述目标的时候考虑背景的特征,尝试降低背景的影响。

背景特征

定义背景特征为:

\[\left\{ \hat { O } _ { u } \right\} _ { u = 1,2 , \ldots m } \left( \sum _ { u = 1 } ^ { m } \hat { O } _ { u } = 1 \right)\]

其中背景区域是指,以目标中心点为中心点,取目标区域3倍大小的区域,再去掉目标区域,剩下的就是背景区域。

而背景特征的计算方法,和之前的目标特征的计算方法一致。(这一点在各种论文中均未提及,但是基于算法的特点,我推测是这样,有时间之后我会尝试查看更详细的例子,比如实现CBWH的源码,来进行确认)即:

\[o_u={C\sum_{i=1}^nK\left(\middle\|{x'}_i^*\middle\|^2\right)\delta\left[b\left({x'}_i^*\right)-u\right]}\]

其中x’是背景区域的点集元素。

背景特征系数

获得背景特征

\[\left\{\hat o_u \right\}_{u=1,2,\ldots m }\]

之后,需要通过背景特征获取一个背景特征系数,参与之后的运算。背景特征系数被定义为

\[\left.v _ { u } = \min \left( \hat { o } ^ { * } / \hat { o } _ { u } , 1 \right) \right\} _ { u = 1 , \ldots , m }\]

。其中,\(\hat o^*\)是背景特征集中最小的非零元素。

仔细观察这一系数,可以发现,对应的背景特征越明显,系数就越小,就越能把这一特征对目标模型的影响消除。

基于BWH的模型描述

将刚才获得的系数应用在模型描述上,将获得:

\[{q'}_u={C' v_u\sum_{i=1}^nK\left(\middle\|x_i^*\middle\|^2\right)\delta\left[b\left(x_i^*\right)-u\right]}\]

其中标准化系数:

\[C'={1\over{\sum_{i=1}^nk\left(\middle\|x_i^*\middle\|^2\right) \sum_{u=1}^m v_u \delta\left[b\left(x_i^*\right)-u\right]}}\]

同样的,将其应用在候选目标描述模型上,则有:

\[{p'}_u(y)={ { C' } _h v_u \sum_{i=1}^{n_h}k\left(\middle\|{ { y - x_i } \over h}\middle \| ^ 2 \right) \delta \left[ b \left( x_i \right) - u \right] }\]

其中标准化系数:

\[C' ={ 1\over{ \sum _ { i = 1 }^{ n_h }k\left( \middle \|{ { y - x_i }\over h } \middle\| ^ 2 \right) \sum_ { u=1 } ^ m v_u \delta \left [b \left( x_i \right) -u \right] } }\]

其余的计算方法与均值漂移完全一致,只是实际参与运算的变量有所不同。这一方法的主要缺陷在于,它虽然考虑到了背景的影响,但是同时对目标和候选目标使用了BWH系数,这样导致在生成漂移向量的时候,分子分母处的系数互相约分,其实与一般的均值漂移是一样的。由此,研究人员发明了CBWH方法。

CBWH方法

在进行了如此之多的铺垫之后,我们终于开始学习本次的主角——CBWH方法。但是其实,CBWH的全部要点在上面都介绍过,它也是均值漂移方法,与BWH不同的是,它只用新的系数处理目标模型,而不处理候选目标模型,有效避免了BWH的被约分掉的问题。

基于CBWH的模型描述和漂移向量

CBWH的追踪目标概率模型描述方法与BWH一致,也是使用由背景特征生成的\(v_u\)进行描述,即:

\[{q''}_u={C'' v_u\sum_{i=1}^nK\left(\middle\|x_i^*\middle\|^2\right)\delta\left[b\left(x_i^*\right)-u\right]}\]

其中标准化系数:

\[C''={1\over{\sum_{i=1}^nk\left(\middle\|x_i^*\middle\|^2\right) \sum_{u=1}^m v_u \delta\left[b\left(x_i^*\right)-u\right]}}\]

与BWH不同的是,CBWH的候选目标模型仍然是标准的均值漂移的候选目标模型:

\[p''_u(y)={C''_h\sum_{i=1}^{n_h}k\left(\middle\|{ {y - x_i} \over h}\middle\|^2\right)\delta\left[b\left(x_i\right)-u\right]}\]

其中标准化系数:

\[C''={1\over{\sum_{i=1}^{n_h}k\left(\middle\|{ { y - x_i }\over h}\middle\|^2\right)}}\]

由此可以得到新的权值\(w_i^{\prime\prime}\):

\[w_i^{\prime\prime}=\sqrt{\frac{q_u^\prime} {p_u^\prime} }=\sqrt{\frac{ C ^\prime v_u \sum_{i=1}^n\mathrm k\left(\left\| \mathbf x_i^*\right\|^2 \right) \delta \left[b \left(\mathbf x_i^* \right) - u \right] } { C_h^\prime \sum_{j=1}^ {n_n} \mathrm k \left(\left\|\frac{\mathbf y - \mathbf x_j} h \right\|^2 \right) \delta \left[b\left( \mathbf x _ j^* \right)-u \right]}}\]

可以看出来,与原来的权值相比,有:

\[w_i^{\prime \prime}=\sqrt {v_u^\prime w_i}\]

这样,当背景中一个特征很明显时,其权值便会很小,保证CBWH能够快速收敛到正确的目标上。新的漂移向量为:

\[\mathbf y_1= \frac{\sum_{i=1}^{n_h} \mathbf x_i g_i w_i^ {\prime \prime}} {\sum_{i = 1}^{n_h} g_i w_i}\]

其中的\(g_i\)是我们为了方便表示而进行的缩写,有:

\[g_i= \mathrm g \left( \left\| \frac {\mathbf y - \mathbf x_i} h \right\|^2 \right)\]

背景特征更新

在经过一系列迭代,完成本帧追踪之后,需要考虑的一个问题就是,当前帧与上一帧的背景已经发生改变,是否需要更新背景特征?在得到新的目标区域之后,计算新的背景特征\(\lbrace o_u^\prime \rbrace_{u=1,\ldots ,m}\),并计算新旧背景之间的相似度\(\rho = \sum_{u=1}^m \sqrt{o_u o_u^\prime}\)。如果相似度小于一个阈值,则认为新旧背景之间发生了较大的变化,此时用新的背景特征更新背景特征描述模型即可。


到这里,CBWH算法的要点也全部结束了(再次撒花),在之后的文章中,我们将从卡尔曼滤波先行入手,开始对于结合SIFT和CBWH的卡尔曼滤波追踪的学习,这将是我们这次研究的算法的主体部分,之前的SIFT和CBHW都是对于这个算法的铺垫。若有错误,还望指正。