CNN应用之基于FCN的图像语义分割

作者:hjimce


一、相关理论


    本篇博文主要讲解2015年的一篇图像语义分割的paper:《Fully Convolutional Networks for Semantic Segmentation》,这篇文献可以说是利用深度学习搞图像分割的开山之作,貌似获得了2015 年CVPR的best paper 奖,具体不是很清楚,只知道很牛逼的一篇文章,搞图像分割必学的文章。仅仅一年的时间,引用量非常高。感觉这篇文献的算法,比较难,如果你以前没有学过反卷网络,也没有接触过Fully Convolutional Networks这个概念,更没有接触过mutil-scale CNN网络,那么看这篇文献,会比较累。


    因为这篇文献的创新点很多,所以我们学起来会比较费劲,请容我细细道来……








Fully convolutional networks

利用深度学习,进行语义分割的开山之作,具有非常高的引用率,所以如果搞到深度学习,图像分割就会遇到这个经典算法。

对于卷积神经网络的每一层的数据,其是一个h*w*d大小的三维矩阵,其中h和w表示本层特征图的大小,d表示特征图的个数或者可理解为图片通道数。我们知道对于网络的输入层,如果是3通道的彩色图片,就相当于输入层是3个feature map。卷积神经网络具有平移不变性,我们知道,假设卷积神经网络的某一层的数据为X,假设(i,j)坐标的数据为Xij,那么下一层数据的计算公式就是:

 

其中k就是卷积核大小,s就是跨步大小。fks可以表示卷积、池化、非线性激活函数等运算。

在传统的卷积神经网络中,我们要求输入的图片是固定大小的图片,那是因为我们在网络的最后几层有个全连接层,在这个全连接层里,输入和输出的大小是固定的,也就是参数的个数是固定的。我们也可以把从卷积层到全连接层,看成是对整张feature map进行卷积,关于FCN的概念,可以去好好解读下Overfeat,