论文阅读——《Robust Superpixel Tracking》
论文阅读——《Robust Superpixel Tracking》
- 论文阅读——《Robust Superpixel Tracking》
- 《Robust Superpixel Tracking》
论文阅读——《Robust Superpixel Tracking》
《Robust Superpixel Tracking》
这是2014年发表在 IEEE Transactions on Image Processing上的一篇文章,主要基于超像素的方法解决外观发生剧烈变化的物体追踪问题,下面是论文实验的结果
第一个表是定位的误差,第二个表是成功追踪的帧数,看上去本文的方法(SPT)都很棒啊,但是好奇的是为什么SPT在Tracking的圈子里好像不是很出名,在这篇知乎回答 计算机视觉中,目前有哪些经典的目标跟踪算法里都没有提到SPT的方法,是因为太慢?(五帧每秒),博主对Tracking接触得不多,因此这个问题还有待考证。
这里我就简单总结下论文提到的方法,作为学习参考,下面是本文算法的伪代码:
算法的主要步骤是 初始化过程和 追踪过程,其中
初始化过程是
(1)对视频流的前四帧进行超像素分割,并对分割出来的超像素提取特征(这里的特征是 HSI颜色空间的颜色分布直方图),然后用这些特征构建一个特征池 F={ftr∣t=1,…,m;r=1,…,Nt}F=\left\{f_{t}^{r} | t=1, \ldots, m ; \quad r=\right.1, \ldots, N_{t} \}F={ftr∣t=1,…,m;r=1,…,Nt};
(2)对特征池内的特征进行Kmeans聚类获得基于超像素的外观辨别模型(superpixle-based discriminative appearance model):
外观辨别模型其实指的是各个聚类的特征描述符,的主要由四个参数构成,分别是聚类的中心fc(i)f_{c}(i)fc(i),聚类的半径rc(i)r_{c}(i)rc(i),聚类的超像素的数量{ftr∣ftr∈clst(i)}\left\{f_{t}^{r} | f_{t}^{r} \in c l s t(i)\right\}{ftr∣ftr∈clst(i)},以及聚类的置信度CicC_{i}^{c}Cic(属于前景还是背景的概率),其计算公式如下Cic=S+(i)−S−(i)S+(i)+S−(i),∀i=1,…,nC_{i}^{c}=\frac{S^{+}(i)-S^{-}(i)}{S^{+}(i)+S^{-}(i)}, \forall i=1, \ldots, n Cic=S+(i)+S−(i)S+(i)−S−(i),∀i=1,…,n其中S+(i)S^{+}(i)S+(i)和S−(i)S^{-}(i)S−(i)分别表示聚类iii和前景、背景的覆盖面积(这里我就有一个问题啦,难道还得先确定哪个像素属于前景哪个像素属于背景?)
追踪过程是
(1)对图像进行超像素的分割并提取各个超像素的特征,计算目标背景的置信图:
这个置信图是针对各个超像素来说的,主要包括两个部分构成,一部分是这个超像素属于哪个聚类,另一部分是这个超像素与聚类中心超像素的特征的距离,其计算公式如下:Crs=w(r,i)×Cic,∀r=1,…,NtC_{r}^{s}=w(r, i) \times C_{i}^{c}, \quad \forall r=1, \ldots, N_{t} Crs=w(r,i)×Cic,∀r=1,…,Nt其中w(r,i)=exp(−λd×∥fIF−fc(i)∥2rc(i))∀r=1,…,Nt,i=1,…,n\begin{array}{l}{w(r, i)=\exp \left(-\lambda_{d} \times \frac{\left\|f_{I}^{F}-f_{c}(i)\right\|_{2}}{r_{c}(i)}\right)} \\ {\forall r=1, \ldots, N_{t}, \quad i=1, \ldots, n}\end{array} w(r,i)=exp(−λd×rc(i)∥fIF−fc(i)∥2)∀r=1,…,Nt,i=1,…,nCrsC_{r}^{s}Crs就是第ttt帧的第rrr个超像素的置信度(属于前景还是背景的概率)。
(2)基于置信图采样NNN个状态(其实指的就是追踪用的bounding box)
本文的贝叶斯更新是通过采样更新的,其实我觉得指的就是SIR粒子滤波,根运动模型采样预测的状态,然后根据观测模型判断哪个状态是最合理的X^t=argmaxXt(l)p(Xt(l)∣Y1:t)∀l=1,…,N\hat{X}_{t}=\underset{X_{t}^{(l)}}{\operatorname{argmax}} p\left(X_{t}^{(l)} | Y_{1 : t}\right) \forall l=1, \ldots, N X^t=Xt(l)argmaxp(Xt(l)∣Y1:t)∀l=1,…,N
(3)计算运动模型和观测模型:
运动模型如下:p(Xt∣Xt−1)=N(Xt;Xt−1,Ψ)p\left(X_{t} | X_{t-1}\right)=\mathcal{N}\left(X_{t} ; X_{t-1}, \Psi\right) p(Xt∣Xt−1)=N(Xt;Xt−1,Ψ)其中Ψ\PsiΨ是运动的参数(σc\sigma_{c}σc表示移动变换的参数,σs\sigma_{s}σs表示尺度变换的参数,但是σc\sigma_{c}σc和σs\sigma_{s}σs的具体表达式文中并诶有给出)的方差
观测模型如下:p(Yt∣Xt(l))=C^l,∀l=1,…,Np\left(Y_{t} | X_{t}^{(l)}\right)=\hat{C}_{l}, \forall l=1, \ldots, N p(Yt∣Xt(l))=C^l,∀l=1,…,N其中C^l\hat{C}_{l}C^l表示各个采样的归一化置信度C^l=Cl×[S(Xt(l))/S(Xt−1)],∀l=1,…,N\hat{C}_{l}=C_{l} \times\left[S\left(X_{t}^{(l)}\right) / S\left(X_{t-1}\right)\right], \forall l=1, \ldots, N C^l=Cl×[S(Xt(l))/S(Xt−1)],∀l=1,…,NCl=∑(i,j)∈Mlvl(i,j)C_{l}=\sum_{(i, j) \in M_{l}} v_{l}(i, j) Cl=(i,j)∈Ml∑vl(i,j)其中vl(i,j)v_{l}(i, j)vl(i,j)表示像素(i,j)(i,j)(i,j)处的置信度大小(查询它位于哪个超像素就能知道)ClC_{l}Cl指的是没有归一化的状态置信度,而S(Xt(l))S\left(X_{t}^{(l)}\right)S(Xt(l))和S(Xt−1)S\left(X_{t-1}\right)S(Xt−1)表示的是当前状态的采样和前一状态(这里的状态都可以理解为跟踪的bounding box)的面积,这一步的具体操作可以根据下图理解
右边四个图就是采样结果,然后根据观测可以判断 xt(1)x_{t}^{(1)}xt(1)是对合理的,因此将 xt(1)x_{t}^{(1)}xt(1)更新为当前状态。
(4)基于最大似然概率估计最有可能的状态
这个其实就是上面的更新过程
(5)检测和解决严重冲突的情况(这个机制我们先不去关注它,先搞清楚算法是怎样实现追踪的)
这里的步骤还没有细看,但是是很巧妙的,SPT之所以能具有良好的了鲁棒性和这一步的操作是分不开的,这个具体流程之后再看。
未完待续…
总结
以上是生活随笔为你收集整理的论文阅读——《Robust Superpixel Tracking》的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 多视图几何总结——单应矩阵和基础矩阵的兼
- 下一篇: 视觉SLAM总结——SVO中关键知识点总