关于 STC(时空上下文) 跟踪算法的理解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/an_mu_xi/article/details/102699589
o o 0 o o
欢迎想步入目标跟踪领域的小伙伴与我交流学习、共同进步丫 *|+ +|)* ...
最近一直在学习机器学习理论部分,研一还有几个大作业要搞,已经拖更N天了,现在终于有点时间开始写点自己的东西了==

注:本文也是在看了几个大佬写的东西、硕士论文以及咨询师兄大佬才得出的一点想法。

参考1:https://eason.blog.csdn.net/article/details/52217114
参考2:https://www.cnblogs.com/xiaojianliu/p/8705653.html
参考3:师兄大佬的论文,放这镇压一切妖魔鬼怪 (+ +|)
郭志翼,王欢欢.基于嵌入式平台的低时间复杂度目标跟踪算法[J/OL].红外与激光工程:1-9[2019-10-23].http://kns.cnki.net/kcms/detail/12.1261.TN.20191008.1545.020.html.

1. STC 跟踪思想

《Fast Tracking via Spatio-Temporal Context Learning》是Kaihua Zhang等人于2014年(传闻好像是2012年投的,14年才发出来 ±+)发表的一篇文章,文中提到了通过利用时空上下文进行视觉跟踪,具有很好的实时性和鲁棒性。该算法基于贝叶斯框架,建立了目标与周围内容的时空关系,在低阶特征上(如图像灰度和位置)对目标与附近区域进行了统计关系建模。

该过程不仅使用了目标的时间信息和空间信息,同时在追踪进程中
又充分考虑到运动物体的大小变化,使得跟踪的结果较为准确,且跟踪速度也非常快。

通过计算置信图(confidence map),找到似然概率最大的位置,即为下一帧的跟踪结果。

本论文官方主页:http://www4.comp.polyu.edu.hk/~cslzhang/STC/STC.htm

其实从发表时间和算法理论来看,该算法深受 MOSSE 算法的影响,看原理部分发现更新模板或是在频域加速计算部分,都有着MOSSE 的影子。师兄大佬说,两算法差不多,但STC 考虑了上下文部分,加大了计算量,但跟踪精度显著提升。。。

2.准备工作

2.1 贝叶斯理论

刚开始搞贝叶斯的时候,以为会用到很高深的理论知识,还查了几天的资料以及西瓜书中的 贝叶斯分类器,但后来发现二者不是一回事(摊手.jpg),用的原理很简-单,就是高中学的贝叶斯基础的东西,只要明白几个新名词即可。。。

贝叶斯公式:
P ( B A ) = P ( B A ) P ( A ) = P ( B ) P ( A B ) P ( A ) P(B|A)=\frac{P(BA)}{P(A)}=\frac{P(B)\cdot P(A|B)}{P(A)}
P ( B ) P(B) :先验概率。最初认为事件 B 发生的概率。
P ( B A ) P(B|A) :后验概率。当事件A发生后,事件 B 受到了影响,发生了改变后的概率。

2.2 联合概率与边缘概率的关系

P ( X = a ) = b P ( X = a , Y = b ) P(X=a)=\sum _b P(X=a,Y=b)

该公式用于推导置信图概率分布。

还有个小公式是:
P ( A , B C ) = P ( A B , C ) P ( B C ) P(A,B|C)=P(A|B,C)\cdot P(B|C)

乘开得证。

2.2 时空上下文

时间信息:邻近帧间目标变化不会很大。位置也不会发生突变。
空间信息:目标和目标周围的背景存在某种特定的关系,当目标的外观发生很大变化时,这种关系可以帮助区分目标和背景。

对目标这两个信息的组合就是时空上下文信息,该论文就是利用这两个信息来进行对阻挡等鲁棒并且快速的跟踪。

3. STC 理论

该算法将跟踪过程转化为一系列寻找置信图(Confidence map)极值 的过程。类比于 MOSSE 算法中的响应图 G 的最大值。
在这里插入图片描述
置信图表达式:表示目标位于位置 x 的可能性。
c ( x ) = P ( x o ) c(x)=P(x|o)

式中, x R 2 x\in R^2 即为上下文区域里的一个点,o表示运动物体存在的场景区域。

在第一帧,先根据初始公式,以目标中心 x x^* 为原点,计算出一个理想置信图(和MOSSE一样,也是个理想的二维高斯图像)。

在当前帧:定义目标的上下文特征集(灰色特征):
X c = { c ( z ) = ( I ( z ) , z ) z Ω c ( x ) } X^c = \{ c(z) = (I(z),z ) | z \in \Omega _c(x^*) \} 其中, I ( z ) I(z) 表示位置 z 处的灰度强度, Ω c \Omega _c 表示 x x^* 邻域。结合边缘联合概率 P ( x , c ( z ) o ) P(x,c(z)|o) ,置信图公式表示为:
c ( x ) = P ( x o ) = c ( z ) X c P ( x , c ( z ) o ) = c ( z ) X c P ( x c ( z ) , o ) P ( c ( z ) o ) \begin{aligned} c(x) &=P(x|o) \\ &=\sum_{c(z) \in X^c} P(x,c(z)|o) \\ &=\sum_{c(z) \in X^c} P(x|c(z),o) P(c(z)|o) \\ \end{aligned}

由于条件概率 P ( x c ( z ) , o ) P(x|c(z),o) 建立起了目标位置和空间上下文之间的桥梁,因此该算法的关键是学习条件概率 P ( x c ( z ) , o ) P(x|c(z),o)

在刚开始看公式的时候,总有个 o 感觉怪怪的,后来想着可以把它当做不存在,因为我们本来就是潜意识中是对目标在当前帧中是存在的。那要是不存在的话,嗯。。。 who cares = _=)

3.1 空间上下文模型 h s c h^{sc}

条件概率 P ( x c ( z ) , o ) P(x|c(z),o) 反映的是目标位置与周围北京的上下文关系,可以建立空间上下文模型:
P ( x c ( z ) , o ) = h s c ( x z ) P(x|c(z),o)=h^{sc}(x-z)

代表关于被跟踪物体的位置与其上下文的位置 z 之间的相对距离与方向
的函数。这个函数是非径向对称的,即:
h s c ( x z ) h s c ( x z ) h^{sc}(x-z) \neq h^{sc}(|x-z|)

3.2 上下文先验模型

P ( c ( z ) o ) P(c(z)|o) 反映了目标的背景信息,可以建立上下文先验概率模型:
P ( c ( z ) o ) = I ( z ) w σ ( z x ) P(c(z)|o)=I(z) \cdot w_{\sigma}(z-x^*)
其中, I ( z ) I(z) 是 z 处对应的灰度值。 w σ w_{\sigma} 是权重函数,由生物视觉系统的focus of attention 启发得到的。意义是距离目标越近的地方,权重越大,对于跟踪目标越重要。
w σ = a e z 2 ) δ 2 w_{\sigma}=ae^{-{ \frac{|z|^2)}{\delta ^2} } }

式中,a 是归一化常数, δ \delta 是尺度参数。

3.3 置信图模型

对象位置的置信图建模为:
c ( x ) = b e x x α β c(x)=be^{-|{ \frac{x-x^*}{\alpha }| ^\beta }}
式中,b 是归一化常数, α β \alpha、\beta 是模型参数。

其实,这里类似于 MOSSE 的理想响应模型。

3.4 空间上下文模型求解

c ( x ) = b e x x α β = c ( z ) X c P ( x c ( z ) , o ) P ( c ( z ) o ) = c ( z ) X c h s c ( x z ) I ( z ) w σ ( z x ) = h s c [ I ( z ) w σ ( z x ) ] \begin{aligned} c(x) & =be^{-|{ \frac{x-x^*}{\alpha }| ^\beta }}=\sum_{c(z) \in X^c} P(x|c(z),o) P(c(z)|o) \\ & = \sum_{c(z) \in X^c} h^{sc}(x-z) \cdot I(z) \cdot w_{\sigma}(z-x^*) \\ & = h^{sc} \bigotimes [ I(z) \cdot w_{\sigma}(z-x^*) ] \end{aligned}

至于为啥这里是卷积呢,还有待解决。。。

经频域傅里叶变换加速计算得到:
h s c = F 1 F [ b e x x α β ] F [ I ( z ) w σ ( z x ) ] h^{sc}=ℱ^{-1} { \frac{ℱ[ b\cdot e^{-|{ \frac{x-x^*}{\alpha }| ^\beta }} ] } {ℱ[ I(z) \cdot w_{\sigma}(z-x^*) ] } }

3.5 时空上下文模型 H s c H^{sc}

很明显,时空上下文要结合空间模型+时间模型,且第一帧是没有时空上下文模型滴,一开始就是 H 2 s c H^{sc}_2

假设要跟踪第 t+1 帧时,此处的时空上下文模型 H t + 1 s c H^{sc}_{t+1} ,由它之前的每帧的时空上下文模型通过在线更新的方式得到,公式为:
H t + 1 s c = ( 1 ρ ) H t s c ( x ) + ρ h t s c ( x ) H^{sc}_{t+1}=(1-\rho) \cdot H^{sc}_{t}(x)+\rho \cdot h^{sc}_{t}(x)

  • 此处放上草稿纸的那个模板更新图
    主要是缕清楚时空上下文模型 H t s c H^{sc}_t 与跟踪的更新流程 …

3.6 目标检测跟踪

设在 t+1 帧,

3.7 模板自适应更新

3.1 空间上下文模型

条件概率 P ( x c ( z ) , o ) P(x|c(z),o) 反映的是目标位置与周围北京的上下文关系,可以建立空间上下文模型:
P ( x c ( z ) , o ) = h s c ( x z ) P(x|c(z),o)=h^{sc}(x-z)

代表关于被跟踪物体的位置与其上下文的位置 z 之间的相对距离与方向
的函数。这个函数是非径向对称的,即:
h s c ( x z ) h s c ( x z ) h^{sc}(x-z) \neq h^{sc}(|x-z|)

3.1 空间上下文模型

条件概率 P ( x c ( z ) , o ) P(x|c(z),o) 反映的是目标位置与周围北京的上下文关系,可以建立空间上下文模型:
P ( x c ( z ) , o ) = h s c ( x z ) P(x|c(z),o)=h^{sc}(x-z)

代表关于被跟踪物体的位置与其上下文的位置 z 之间的相对距离与方向
的函数。这个函数是非径向对称的,即:
h s c ( x z ) h s c ( x z ) h^{sc}(x-z) \neq h^{sc}(|x-z|)

4 整体思路图

最后,放上作者论文中的整体路线图,现在应该好理解 H s c H^{sc} 与各种模型的变换关系了。。。
在这里插入图片描述

5 STC优势

当用在小型嵌入式平台上的话,该算法可以很好的实现实时跟踪效果,相比 MOSSE 有着更好的精度,相比其他更复杂的算法又有着较高的帧率,所以 ,研究一下该方法的移植还是比较好的。。 师兄大佬就是这方面的大嘎。。。。

写在最后:看论文的一点想法

现在好些硕士论文感觉对原理分析的不是很透彻,有的数学符号或公式等比较乱,也可能是由于该领域没有一个统一的教科书,尤其是对工科来说,反正看的比较糊涂。。(不禁感慨秦始皇大佬的车同轨、书同文… 高瞻远瞩。。),并且有的理论分析部分感觉像是一个模子里出来的,哎, 科研 真他喵的 太难了,如果只是简单的运用的话,相对简单;要想搞明白每一点原理部分,真是路漫漫其修远兮……

猜你喜欢

转载自blog.csdn.net/an_mu_xi/article/details/102699589