论文阅读:Superpixel Sampling Network
论文阅读:Superpixel Sampling Network
关键词:深度学习聚类,超像素网络,无监督任务
超像素几乎不与现代深度网络结合使用,这有两个主要原因:
- 形成大多数深层结构基础的标准卷积运算通常在规则网格上定义,并且当在不规则超像素晶格上操作时变得低效。
- 现有的超像素算法是不可微分的,因此在深度网络中使用超像素使得在端到端的可训练网络架构中引入了不可微分的模块。(提出一种新的深度可扩展的超像素分割算法来缓解第二个问题)
经典算法
简单线性迭代聚类(SLIC)超像素算法
(一种用于图像分割的超像素算法,具有快速、简单、易于实现和调整参数的特点)
SLIC算法是最简单最广泛使用的超像素算法之一,它很容易实现,有着较高的运行时(runtime),并且可以生成较为紧凑和均匀的超像素。尽管已经有数种SLIC算法的变体,在SLIC的原始形式中,SLIC是一种K均值聚类算法,针对图像像素的五维特征空间(XY LAB)进行聚类。
对于超像素计算的任务而言,其最终目的是要对每个像素分配一个超像素标号,假设要分成m个超像素,且给定一个图像I,它是一个nx5的集合,有n个像素,每个像素是5维(XY LAB)向量,SLIC算法的主要操作流程如下所述。
采样初始的m个聚类中心(超像素中心)S0,其是mx5的集合。该采样通常在像素网格上均匀地进行,并且基于图像梯度进行一些局部扰动。给定这些初始的超像素中心后,SLIC算法可以开始反复迭代下面的两步:

解释:第一部分中
本质为一个据称簇的过程
第二部分即对每个超像素簇中所有的像素的特征进行平均,获得簇中心。
这两个步骤构成了SLIC算法的核心,并且一直重复直到收敛或者达到固定次数的迭代。
SNN 算法
简述
- 给定的输入图像首先通过深度网络产生更为有效的特征。
- 然后将这些深度特征传递到可微分SLIC上
- SLIC执行迭代聚类
- 产生所需的超像素
优点
可端到端训练;SSN允许学习灵活的损失函数,从而学习特定于任务的超像素;有利的运行时间。
本文算法
在本文提出了一种基于深度学习的聚类算法。与以前的工作不同,本文的算法是针对超像素分割任务而定制的,其中使用特定于图像的约束。此外,该框架可以轻松地结合其他视觉目标函数来学习任务特定的超像素表示。
不可微分转成可微分
提出一种计算soft-associations Q(nxm)的方法。对于迭代过程中第t步的像素p和超像素i,这里替换最近邻操作用以下的关于距离的钟型函数权重的形式来表达:

算法过程

- 从使用CNN的深度图像特征提取开始(第1行)
- 使用初始常规超像素网格中的平均像素特征来初始化超像素中心(第2行)
- 对于v次迭代,使用上述计算(第3-6行)迭代地更新像素-超像素关联超像素中心**。
- 虽然可以直接使用软关联Q来执行多个下游任务,但根据应用需求,可以选择将软关联转换为硬关联(第7行)。
- 此外,与原始SLIC算法一样,可以选择强制跨每个超像素集群内的像素进行空间连接。这是通过将小于特定阈值的超像素与周围的超像素合并,然后为每个空间连接的组件分配唯一的簇ID来实现的。
- 请注意,这两个可选步骤(第7,8行)不可微分。
像素和超像素的转换
- 对于使用超像素的一些下游应用程序,像素表示被映射到超像素表示,以及反过来。
- 利用提供硬聚类的传统超像素算法,这种从像素到超像素表示的映射是通过在每个聚类内部进行平均来完成的(方程2)。
- 从超像素到像素表示的逆映射是通过将相同的超像素特征分配给属于该超像素的所有像素来完成的。我们可以使用与SSN超像素相同的像素-超像素映射,这使用了从SSN获得的硬聚类(算法1中的第7行)。然而,由于这种硬关联的计算是_不可微分_的,因此在集成到端到端可训练系统时可能不希望使用硬聚类。
值得注意的是,由SSN生成的软像素-超像素关联也可以容易地用于像素和超像素表示之间的映射。
为像素到超像素表示的映射

为从超像素到像素的逆映射通过乘以行归一化的Q来计算
这两个过程表明像素-超像素特征映射关系可以使用简单的矩阵乘法来进行描述,并且这是可微的。
实验过程

