SLIC 超像素分割详解(三):应用

版权声明:本文为博主原创文章,未经博主允许不得转载。违者必究。 https://blog.csdn.net/electech6/article/details/45690279

看过上面的介绍后,我们应该思考一下:分割好的超像素有什么用?怎么用?用到哪里?

首先,超像素可以用来做跟踪,可以参考卢湖川课题组发表在IEEE TIP上的《Robust superpixeltracking》;其次,可以做标签分类,参考09年ICCV的《Class segmentation andobject localization with superpixel neighborhoods》,这篇文章对后来的文章还是有很大的指导意义的;还有做超像素级词袋(superpixel-basedbag-of-words)的,参考13年CVPR《Improving an objectdetector and extracting regions using superpixels》,作者把样本中超像素级的特征通过k-means聚类为超像素级词袋,最后又结合了SVM对难分类样本进一步分类,该文章的算法框图如下;


超像素级词袋

在视频前景分割中用的也挺多,因为相比像素,超像素处理速度会快几十倍、几百倍甚至更高,这对实时性要求较高的视频分割比较重要,还有最近提出的supervoxel概念(可以认为是三维的superpixel),文章可以参考《Video object segmentationwith shape cue based on spatiotemporal superpixel neighbourhood》和《Supervoxel-consistentforeground propagation in video》。


Supervoxel (3D superpixel)示例

除了上述介绍的之外,超像素还可以用于骨架提取、人体姿态估计(参考文章《Guiding ModelSearch Using Segmentation》)、医学图像分割等方面。


骨架提取示例


医学图像分割

其实,传统的像素级处理都可以考虑改造成超像素级处理,所以如果你想用的话,超像素就可以应用到计算机视觉这个大领域的方方面面。举一个具体的例子进行分析:下图中每个红色闭环轮廓内都是一个超像素,像素级的光流改造(例如求均值)为超像素级的光流矢量用绿色的箭头表示。这样一张300万像素的图片可以用300个(给定分割数目K=300)超像素来表示。


下面以一篇文章《Improving video foreground segmentation with an object-like pool》下载论文为例具体分析一下超像素的用法。该文章目标是在无监督条件下对序列图像中运动目标进行精细的分割。算法流程如下:


算法流程图

1.  作者先计算像素级的常用的特征:binary mask(二值化掩膜,通过帧差得到),以及optical flow。我们知道基于graph cut的方法需要多次迭代优化,如果直接进行像素级的graph cut非常耗时,所以作者将像素级的binary mask和optical flow特征转化为超像素级特征。

2.  Binarymask特征通过2012年CVPRW的论文《Improving foreground segmentationswith probabilistic superpixel Markov random fields》中的方法


改造为超像素级特征,其实就是将超像素内的binarymask逐像素统计,用目标点数目占总像素点数目(即该超像素的大小)的比例给该超像素赋予一个在binarymask特征下属于前景/背景的概率。


Optical flow像素级特征改造稍微复杂一点,因为每个像素点是一个二维矢量,作者首先将平均的光流矢量作为该超像素的光流矢量,然后将所有超像素级的光流矢量均值作为参考矢量,再计算每个超像素矢量和参考矢量的余弦相似度作为该超像素在optical flow特征下属于前景/背景的概率。

3.  分割问题其实就是对每个超像素标记的问题,作者用conditional random field(条件随机场)来对超像素的分布进行建模,上述两种超像素级的特征都需要归一化到[0,1]并加权融合,结果作为unary potential(一元势函数,描述自身属于前景/背景概率)。Pairwise potential(二元势函数,描述邻域关系)的表达参照了像素级的做法:以种子点的四邻域作为中心超像素的邻域。在这里就体现出SLIC方法的优点了,分割结果比较紧凑而且大小相差不大,所以邻域关系相对于其他的超像素分割方法依然保持的比较好。

4.  Object-likepool和background-like pool是作者引入的概念,是以上一次分割的结果作为先验条件指导当前分割,其保留的也是超像素级的信息(颜色、光流、位置)。然后利用公式(11)计算出了一个新的归一化特征foreground likelihood,把它融入上述conditional random field模型。

下面讨论一下如何设置待分割超像素数目?使用超像素对图像进行分割时,设置的超像素数目K比较重要:如果K比较小,每个超像素尺寸会比较大,这样超像素对边界的保持就会变差,如果K比较大,每个超像素的尺寸会比较小,那么会出现类似“过拟合”现象,超像素的形状会变得非常不规则,邻域关系很难保持,而且数目也比较多。如下图:


不同尺寸的超像素分割结果对比。(a)原图,超像素尺寸:(b)100X100,(c)30X30,(d)8X8

    实际上具体分割数目K和具体应用有关,比如如果对上图做主要人物(左边的小魔女)分割的话,100X100大小的超像素就够了,但是如果对两个骑自行的人物也进行分割的话,需要使用30X30的尺寸,但是此时较小人物的分割精度不高,如果有更高要求,则需要使用8X8甚至更小的尺寸。另外,由于上图是动画,所以细节和纹理并不是很多,现实场景下的图片纹理会复杂的多,尺寸也需要根据不同场合选择。

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页