论文链接
题目
Learning Deconvolution Network for Semantic Segmentation
摘要
作者Hyeonwoo Noh 通过学习反卷积deconvolution network后提出一种新的语义分割算法。
作者在VGG-16卷积层上学习网络,并指出deconvolution network是由de-
convolution和unpooling layers组成,可以识别像素级标签pixel-wise
class label 和预测分割掩码segmentation masks。
将训练好的网络应用于输入图像的每个目标建议区域proposal,以一个简单的方式组合所有的目标区域,建立最终的语义分割图。
这种算法集成了deep deconvolution network和候选区域级别的预测(proposal-wise predictio),减少了基于全卷积网络FCN fully convolutional networks的限制,能够很自然地识别精细的结构和处理多尺度目标。
提出的网络只通过与全网络的集成并且没有用到外部数据,在PASCAL VOC 2012数据集上证明了出色的性能并且实现72.5%准确度。
引言
卷积神经网络Convolutional neural networks (CNN) 在各种视觉识别问题表现出色的性能,例如图像分类,目标检测,语义分割和动作识别。从CNN中提取特征描述和简单的现成的分类器off-the-shelf classifiers的组合在实践中非常有效。开始应用在结构化预测问题上,例如语义分割,人体姿态估计等。
语义分割算法通常are often formulated to解决结构化像素标记问题,他们将现有的用于分类的CNN架构转换为一个全卷积网络(FCN)。通过对图像中的每个局部区域进行分类,从网络中获得一个粗糙的标签映射,然后用双线性插值执行反卷积,从而获得像素级别的标签pixel-level labeling。
为了对输出映射的精细分割,可以选择应用条件随机域(CRF)。基于FCN方法的主要优点是网络接受整幅图像作为输入,进行快速准确的推理。
基于FCN方法的语义分割有很多限制。第一,由于感受野receptive field为固定大小,网络只能处理图像中的单个尺度语义。比感受野大或小的很多的物体可能被碎片化或贴错标签fragmented or mislabeled。标签预测只对大对象使用本地信息,属于同一对象的像素可能具有不一致的标签,大物体分割不连续。小物体被忽略或者分类为背景。第二,由于输入到反卷积层的标签映射过于粗糙,反卷积过程太简单,对象的细节结构往往会丢失或平滑。在原始标签映射大小仅仅为16*16,然后通过双线性差值以反卷积deconvolution来获得原始输入图像大小的分割结果。物体边界这种高度非线性结构很难精确重建,使用CRF解决了这个问题。
为克服局限性,作者做了以下贡献:
1、学习多层反卷积网络multi-layer deconvolution network,它是由反卷积deconvolution,反池化unpooling和线性回归层rectified linear unit (ReLU)组成;
2、将训练好network应用在各自目标建议区域(object proposal),来获得智能实例分割instance-wise segmentions,再将这些单个的分割结果结合起来组成最终的语义分割结果,这解决了原始的FCN方法存在的物体尺度问题,能够识别细小的结构;
3、在PASCAL VOC 2012上获得目前最好的语义分割结果,通过相对于基于FCN方法的异构性和互补性的特点,获得目前最好的语义分割结果。
系统架构
Architecture
训练网络由两部分组成,卷积和反卷积网络。
卷积网络对应于特征提取器,将输入图像转换为多维特征表示的,而反卷积网络是一种形状发生器shape generator,从卷积网络提取的特征中产生目标分割object segmentation。
网络最终的输出结果是与输入图像大小相同的概率图,表示每个像素属于预定义类之一的概率。
卷积部分使用的是去掉最后分类层的VGG16层网络。卷积网络一共有13个卷积层,卷积之间有时会进行修正和池化,最后增加2个全连接层,实现类特有的投影。
反卷积网络是卷积网络的镜像版本,有多个反池化、反卷积和修正层。与通过前向反馈减小激活量的卷积网络相反,反卷积网络通过反池化和反卷积操作的结合来增大激活值。
用于分割的反卷积网络
反池化
优点:卷积网络中的池化是通过提取感受野内具有单个代表性的激活值,过滤底层的激活噪声noisy activation。
不足:虽然它通过只保留上层的鲁棒的激活值来帮助分类,但在池化过程中,接受域感受野内的空间信息会丢失,不利于语义分割semantic segmentation等要求精确定位的任务。
为了解决这个问题,我们在反卷积网络中使用了unpooling层,它执行了池化pooling的反向操作,并重构了初始激活值的大小。在池化操作时用交换变量switch variables记录选择的最大激活maximum activation的位置,这些交换变量用于将每个激活放回到其原始的池位置。这种反池策略对于重构输入对象的结构特别有用。
反卷积
非池化层的输出是一个放大但稀疏的激活映射activation map。
反卷积层通过使用多个可学习的滤波器进行类似卷积的操作来反池化,从而使稀疏激活稠密。
卷积层将滤波器窗口中的多个输入激活输出得到单个激活,然而反卷积层与卷积层相反,将输入单个激活与输出多个激活。反卷积层的输出是一个放大而稠密的激活映射。我们裁剪放大的激活映射的边界,以保持输出映射的大小与前一个反池化层相同。
反卷积层中的可学习滤波器与重构输入对象的形状相对应。因此,与卷积网络相似,反卷积层的层次结构用于捕获不同层次的形状细节。低层的过滤器倾向于捕捉对象的整体形状,而类特定的细节则编码在高层的过滤器中。反池化unpooling层是通过回溯原始位置来获得更好的结构。
卷积网络分析
在该算法中,反卷积网络是实现精确目标分割的关键组成部分。利用深度反卷积网络生成目标分割掩码mask,通过连续的反池化、反卷积和修正操作得到密集的像素级概率图。
上图将来自网络的逐层输出可视化,这有助于理解我们的反卷积的内部操作。我们可以观察到,通过在反卷积层中的传播,可以重构出从粗到细的目标结构;较低的层次倾向于捕获对象的整体粗略配置(例如位置、形状和区域),而在较高的层次中可以发现较复杂的模式。注意,反池化和反卷积在分割掩码的构造中起着不同的作用。反池化通过将具有强激活的原始位置跟踪回图像空间,捕获特定于示例的结构。因此它可以有效地以更细的分辨率重构对象的详细结构。
另一方面,反卷积层中的学习滤波器倾向于捕捉特定类的形状。通过反卷积,可以放大与目标类密切相关的激活值,同时有效抑制来自其他区域的激活噪声。将反池和反卷积相结合,生成精确的分割映射。
与FCN-8s的粗略激活图相比,我们的网络采用反卷积网络构造致密而精确的激活值。
系统概述
本文提出了一种基于实例的语义分割算法。也就是说,网络将可能包含对象的子图作为输入,并将像素级预测作为输出。在我们的网络中,将网络应用于从图像中提取出的每一个候选建议区域,并将所有建议区域的输出聚合到原始图像空间,从而得到整个图像的语义分割。
与图像级别的预测相比,实例级的分割有一些优点。它能有效地处理各种尺度的对象,识别对象的细节,而具有固定大小感受野的方法存在这些问题。同时,通过减少预测的搜索空间,降低训练的内存需求,降低了训练的复杂度。
总结
本文提出了一种新的基于反卷积网络的语义分割算法。该反卷积网络通过一系列的反卷积操作逐步重构目标的粗到细结构,适合于生成密集而精确的目标分割掩码。基于实例预测的算法消除了全卷积网络感受野固定大小的限制,有利于处理对象尺度变化。我们进一步提出了一种集成方法,将算法的输出与基于FCN的方法相结合,由于两种算法的互补性,取得了更好的性能。我们的网络在没有外部数据的训练方法中展示了PASCAL VOC 2012分割基准的最新性能。
补充 反卷积
反卷积,分数步长卷积(convolution with fractional strides)或者转置卷积(transpose convolution)或者后向卷积backwards strided convolution
真正的反卷积如wikipedia里面所说,但是不会有人在实际的CNN结构中使用它。