一、Abstract
1.基于VGG-16网络
2.对输入图像每一个proposal使用网络进行训练,结果由各个segmentation map结合得到
3.设计的网络减少了已存在方法的限制,结果PASCAL VOC 2012数据集 72.5%的accuracy
二、Introduction
CNN广泛应用于各种visual recognition问题,例如,image classification,object detection,semantic segmentation, visual tracking和action recognition。
最近,semantic segmentation算法常被用来解决CNN上的pixel-wise labeling问题,常用方法是将CNN转换成FCN(全连接网络)。FCN可以得到一个对图像各个区域进行分类的粗糙标签图,然后使用反卷积(实际上是双线性插值)进行pixel-labeling。之后可以选择使用CRF进行更好的分割。
基于FCN的semantic segmentation收到一些关键的限制
(1)图片中物体过大会导致分裂,过小则会导致丢失。一些方法采用skip structure,但这不是问题的基本解。
(2)由于标签图过于粗糙,反卷积程序过于简单,detailed structures总是丢失或者被平滑掉,文章中以FCN为例,很难重建边界上高度非线性的结构。最近的方法使用CRF减轻问题。
为了解决这两个问题,论文中提出了一个deep deconvolution network,由deconvolution,unpooling和Relu组成。
训练好的网络应用于individual object proposals来获得instance-wise segmentation从而摆脱了原始FCN的scale issues
三、Related Work
四、System Architecture
网络结果如下图所示
训练网络由两部分组成,convolutional network和deconvolution network。卷积网络将输入图像转换成多维特征表达可以视为feature extractor,反卷积网络是一个shape generator,使用从卷积网络中提取的特征进行物体分割。网络的输出是个与输入同样大小的概率图(数量与类别数量有关),表示每个体素属于每个类的概率。
采用的是去除分类层的VGG-16网络,共13层convolution层,deconvolution层是convolution镜像。
①unpooling层
记录pooling层选取的max pooling元素及其位置,用于unpooling层的生成。
②Deconvolution层
unpooling层的输出是一个稀疏的**图。deconvolution层通过学习多个滤波器进行类卷积使其稠密化。与使用一个滤波器连接多个输入生成一个activation相反的是,deconvolution层将单个输入和多个输出联系起来,此时输出图是一个dense的图,裁剪边缘使其与之前unpooling层图的大小相同。
较低层的滤波器趋向于获取物体的整体特征而更高层的滤波器倾向于获取物体的局部特征,这样网络就可以直接获取特异性类的形状信息。
③Analysis of Deconvolution Network
本文算法通过使用unpooling,deconvolution和rectification操作生成dense pixel-wise类别概率图。lower layer识别overall coarse configuration,例如物体位置,形状和区域等。higher layer识别更为复杂的模式。unpooling可以通过追踪强的**来获取了example-specific structure,从而可以有效地以更好分辨率重构物体的详细结构。另一方面,deconvolution中的learned filters更倾向于获取class-specific shape信息。
通过反卷积,接近于目标类的**被放大,而来自其它区域的噪声被抑制,从而获得精确的分割图。
可以把本项工作看成一个instance-wise分割问题,也就是说,网络采用可能包含物体的sub-image作为输入,生成像素级类的预测作为输出。本文中对整张图的semantic segmentation就是从原始图像中提取candidate proposals并且把对每一个proposals的输出聚集起作为输出。
Instance-wise segmentation的一些优点,可以在不同scale下处理物体,识别fine details of objects,减少训练内存消耗。
五、Training
训练中使用batch normalization
分两阶段进行训练,使用easy examples进行训练,用复杂的进行fine-tune。
第一阶段训练使用ground-truth annotation裁剪把物体置于裁剪边界框的中间。通过限制物体位置与大小显著地减少了语义分割的search space。
第二阶段使用object proposal重构较难的examples。