全卷积神经网络FCN
CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题。神经网络大神Jonathan Long发表了《Fully Convolutional Networks for Semantic Segmentation》
FCN概述:
FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。
最后逐个像素计算softmax分类的损失, 相当于每一个像素对应一个训练样本。
简单的来说,FCN与CNN的区域在把于CNN最后的全连接层换成卷积层,输出的是一张已经Label好的图片。
这些抽象的特征对分类很有帮助,可以很好地判断出一幅图像中包含什么类别的物体,但是因为丢失了一些物体的细节,不能很好地给出物体的具体轮廓、指出每个像素具体属于哪个物体,因此做到精确的分割就很有难度。
而全卷积网络(FCN)则是从抽象的特征中恢复出每个像素所属的类别。即从图像级别的分类进一步延伸到像素级别的分类。
而传统的基于CNN的图像分割,存储开销大,计算率地下,像素块大小的限制了感知区域的大小。
可以发现,经过多次卷积(还有pooling)以后,得到的图像越来越小,分辨率越来越低(粗略的图像),那么FCN是如何得到图像中每一个像素的类别的呢?为了从这个分辨率低的粗略图像恢复到原图的分辨率,FCN使用了上采样。例如经过5次卷积(和pooling)以后,图像的分辨率依次缩小了2,4,8,16,32倍。对于最后一层的输出图像,需要进行32倍的上采样,以得到原图一样的大小。
这个上采样是通过反卷积(deconvolution)实现的。对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。于是Jonathan将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。下图是这个卷积和反卷积上采样的过程:
与传统用CNN进行图像分割的方法相比,FCN有两大明显的优点:一是可以接受任意大小的输入图像,而不用要求所有的训练图像和测试图像具有同样的尺寸。二是更加高效,因为避免了由于使用像素块而带来的重复存储和计算卷积的问题。
:一是得到的结果还是不够精细。进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感。二是对各个像素进行分类,没有充分考虑像素与像素之间的关系,忽略了在通常的基于像素分类的分割方法中使用的空间规整(spatial regularization)步骤,缺乏空间一致性。
在FCN的基础上,UCLA DeepLab的Liang-Chieh Chen[2]
等在得到像素分类结果后使用了全连接的条件随机场(fully connected conditional random fields),考虑图像中的空间信息,得到更加精细并且具有空间一致性的结果
Liang-Chieh的这篇文章有两大特点,一是忽略下采样过程,转而使用稀疏的卷积核以增加感知范围。如下图所示:
二是使用了Fully Connected CRF。CRF的能量函数中包括数据项和平滑项两部分,数据项与各个像素属于各类别的概率有关,平滑项控制像素与像素间类别的一致性。传统的CRF的平滑项只考虑相邻像素类别的关联性,而Fully Connected CRF将图像中任意两个像素之间的类别关联性都考虑进来。
CRF或者Fully Connected CRF是对CNN或者FCN输出的一种后处理技术。像素分类和空间规整这两步是分别进行的。Shuai Zheng[3][3]等人将Fully Connected CRF表示成回流神经网络的结构(recurrent neuron network,RNN),将CNN与这个RNN放到一个统一的框架中,可以一步到位地对两者同时进行训练。将图像分割中的三个步骤:特征提取、分类器预测和空间规整全部自动化处理,通过学习获得,得到的结果比FCN-8s和DeepLab的方法的效果好了许多。如下图结果:
CNN、FCN与Fully Connected CRF的结合及统一的自动训练具有很不错的应用价值,已有很多的研究对这几篇文章进行跟进([2]和[3]的引用都已过百)。例如,帝国理工的Konstantinos Kamnitsas,Daniel Rueckert等人在这几篇文章的基础上,提出了三维的多尺度CNN和全连接CRF结合的方法,称为DeepMedic, 用于脑肿瘤的分割,最近(4月4号)刚发表于arXiv。