利用吸收态马尔科夫链进行基于超像素分割的目标跟踪【Superpixel-based Tracking-by-Segmentation using Markov Chains】
2017-08-06 16:38
531 查看
CVPR2017目标跟踪领域中的一篇,文章的亮点在于实现了基于分割的跟踪,博主刚好对这一方向比较感兴趣,所以解读一下文章。
相关文献:Superpixel-based Tracking-by-Segmentation using Markov Chains
首先介绍一下什么是 基于分割的跟踪。一般意义上的目标跟踪,就是在一个视频序列中,根据第一帧给出的目标,对目标在后续帧进行跟踪,传统的跟踪方法是用矩形框框出跟踪目标,如下:
而基于分割的跟踪,在找出目标的同时,还需要对目标进行分割,即找到目标的轮廓:
毫无疑问,基于分割的目标跟踪可以给出更精细的轮廓,提供目标更多的形状信息。但是,也比传统意义上用矩形框进行跟踪的方法更难实现。
接下来我们看看该文章是如何实现基于分割的目标跟踪的。
正如文章名一样,文章主要用了吸收态马尔科夫链(AMC, Absorbing Markov Chain)和超像素(Superpixel)两个概念实现了基于分割的跟踪。
超像素可以把像素级的图片划分成区域级的图片,每个区域内的像素具有相同的标签(前景或背景),这样在之后的分割中只需要对每个区域赋予标签,可以大大减少计算量。
吸收态马尔科夫链用来对超像素进行前后景分类。
如图,在马尔可夫链中,称Pii=1的状态为吸收状态。如果一个马尔可夫链中至少包含一个吸收状态,并且从每一个非吸收状态出发,都可以到达某个吸收状态,那么这个马尔可夫链称为吸收马尔可夫链。
文章中还有矩阵P、Q、R的描述,具体推导可见这一篇博客:吸收马尔科夫链。在此就不再赘述。
初步了解了吸收态马尔科夫链之后,就能对它在本文中的作用有一个认识了:若一副图片中的超像素对应马尔科夫链中的顶点(vertex),相邻超像素之间的边界(edge)对应马尔科夫链中的路径,那么一副基于超像素的图片就能够用一个马尔科夫链来表示。如果我们把标签为背景的超像素视为吸收态顶点(absorbing vertex)那么所有超像素到达吸收态顶点的时间(absorption time)就可以视为它到背景的距离,时间越短,距离越短,说明属于背景的概率越大,反之则大概率属于目标
1.优化吸收时间
文中根据边缘类型,用不同的系数(πt<πa)乘以原始权重,这使得背景超像素具有更快的吸收速度,从而与目标的吸收时间相比区分更明显。
2.整体外观模型
文中说,由上一小节中描述的自下而上方法生成的目标分割掩码可能由于缺少前景超像素而被分段,并且包含假阳性超像素。 为了减轻目标碎片问题,我的理解是,作者在原来相邻edge的基础上,还加入了与相邻的超像素的邻居超像素之间联通路径(也就是文中的“2 hops“),等于说增加了局部信息。
此外,通过不断更新一个外观模型ht,使得在有两个目标区域候选时,可以选择真实的目标。
3.对第一帧的初始分割
相关文献:Superpixel-based Tracking-by-Segmentation using Markov Chains
首先介绍一下什么是 基于分割的跟踪。一般意义上的目标跟踪,就是在一个视频序列中,根据第一帧给出的目标,对目标在后续帧进行跟踪,传统的跟踪方法是用矩形框框出跟踪目标,如下:
而基于分割的跟踪,在找出目标的同时,还需要对目标进行分割,即找到目标的轮廓:
毫无疑问,基于分割的目标跟踪可以给出更精细的轮廓,提供目标更多的形状信息。但是,也比传统意义上用矩形框进行跟踪的方法更难实现。
接下来我们看看该文章是如何实现基于分割的目标跟踪的。
正如文章名一样,文章主要用了吸收态马尔科夫链(AMC, Absorbing Markov Chain)和超像素(Superpixel)两个概念实现了基于分割的跟踪。
超像素可以把像素级的图片划分成区域级的图片,每个区域内的像素具有相同的标签(前景或背景),这样在之后的分割中只需要对每个区域赋予标签,可以大大减少计算量。
吸收态马尔科夫链用来对超像素进行前后景分类。
吸收态马尔科夫链(AMC)
如图,在马尔可夫链中,称Pii=1的状态为吸收状态。如果一个马尔可夫链中至少包含一个吸收状态,并且从每一个非吸收状态出发,都可以到达某个吸收状态,那么这个马尔可夫链称为吸收马尔可夫链。
文章中还有矩阵P、Q、R的描述,具体推导可见这一篇博客:吸收马尔科夫链。在此就不再赘述。
初步了解了吸收态马尔科夫链之后,就能对它在本文中的作用有一个认识了:若一副图片中的超像素对应马尔科夫链中的顶点(vertex),相邻超像素之间的边界(edge)对应马尔科夫链中的路径,那么一副基于超像素的图片就能够用一个马尔科夫链来表示。如果我们把标签为背景的超像素视为吸收态顶点(absorbing vertex)那么所有超像素到达吸收态顶点的时间(absorption time)就可以视为它到背景的距离,时间越短,距离越短,说明属于背景的概率越大,反之则大概率属于目标
算法流程
了解了马尔科夫链的作用之后,文章大致的思路就出来了:首先,对当前帧t进行超像素分割;然后,根据t-1帧结果和当前帧建立吸收态马尔科夫链图(AMC graph);再根据AMC graph算出每个超像素的吸收时间(absorption time);最后,文中取吸收时间的平均值为阈值,进行超像素的分类,然后再递归到t+1帧。整个过程中最关键最主要的一步在于构建AMC graph。构建AMC graph
AMC graph分为两个元素,vertex和edge,vertex比较简单就不做解释了,主要就是如何求每个edge上的权重(weight)。每个edge的权重由相邻超像素特征的相似度求得。 具有相同标签的超像素之间的权重应大于具有不同标签的超像素之间的权重。 文中采用支持向量回归( support vector regressor)的方法,最大化前景和背景样本之间的差异,同时最小化具有相同标签的示例之间的差异。文中有很详细的数学推导,在此就不列出。跟踪的实现及细节问题
在文章的第五章节,给出了算法在实现过程中的三个细节问题,在此简要介绍一下1.优化吸收时间
文中根据边缘类型,用不同的系数(πt<πa)乘以原始权重,这使得背景超像素具有更快的吸收速度,从而与目标的吸收时间相比区分更明显。
2.整体外观模型
文中说,由上一小节中描述的自下而上方法生成的目标分割掩码可能由于缺少前景超像素而被分段,并且包含假阳性超像素。 为了减轻目标碎片问题,我的理解是,作者在原来相邻edge的基础上,还加入了与相邻的超像素的邻居超像素之间联通路径(也就是文中的“2 hops“),等于说增加了局部信息。
此外,通过不断更新一个外观模型ht,使得在有两个目标区域候选时,可以选择真实的目标。
3.对第一帧的初始分割
相关文章推荐
- 【论文阅读】Superpixel-based Tracking-by-Segmentation using Markov Chains
- Superpixel Based RGB-D Image Segmentation Using Markov Random Field——阅读笔记
- 基于RNN的在线多目标跟踪——OnLine Multi-Target Tracking Using Recurrent Neural Networks
- OpenCV:利用Camshift算法进行彩色目标的跟踪
- OpenCV学习之利用Camshift算法进行彩色目标的跟踪
- 显示如何利用Camshift算法进行彩色目标的跟踪
- IMPROVING SUPERPIXEL-BASED IMAGE SEGMENTATION BY INCORPORATING COLOR COVARIANCE MATRIX MANIFOLDS
- OpenCV_利用均值漂移(Mean Shift)和getHueHistogram进行目标跟踪
- 基于opencv的预先设定目标跟踪
- Feature Matching by using opencv(Python)-使用opencv进行图像特征匹配
- 基于js利用经纬度进行两地的距离计算
- 一种基于轮廓的运动目标检测与跟踪算法
- 红外小目标检测matlab程序——基于《Infrared Small-Target Detection Using Multiscale Gray Difference Weighted Image》
- 基于模板的全自动目标检测跟踪系统的设想
- 基于MeanShift的目标跟踪算法及实现
- 基于USB摄像头视频数据采集和利用FFMPEG库函数进行视频数据压缩
- SSIS利用Microsoft Connector for Oracle by Attunity组件进行ETL!
- 利用基于贝叶斯定理的朴素贝叶斯分类器MultinomialNB进行多类分类(复习3)
- 笔记 基于OpenCV的目标跟踪软件与系统实现
- 基于感知哈希算法的视觉目标跟踪