1.FCN网络概述
FCN网络(Fully Convolutional Networks):首个端对端的针对像素级预测的全卷积网络。
FCN网络思想:输入图像经过多次卷积,得到一个通道数为21的特征图,再经过上采样,得到一个与原图同样大小的特征图,再经过Softmax函数处理就能得到该像素针对Pascal Voc数据集每一个类别的预测概率,选择最大概率的类别作为该像素的预测类别。
FCN网络在VGG网络上做出的修改:把VGG全连接层改为卷积层。一方面,可以不用固定输入图像的大小。另一方面,当输入图像大小大于24x24,最终得到的输出特征图的channel就会变为2D的数据,这时我们把channel提取出来就得到一张热图(heatmap)。
最上面一个网络模型为vgg 16。
2.几种不同的FCN网络
FCN-32s:使用32倍的上采样。FCN-16s:使用16倍的上采样。FCN-8s:使用8倍的上采样。
(1) FCN-32s
VGG16 Backbone(主干网络)为VGG16网络全连接层之前的网络部分。注意:FCN网络把VGG全连接层改为卷积层,即其中两个卷积层为FC6,FC7。
模型的训练过程如下:
1.输入图片,首先,通过VGG16 Backbone(主干网络)会将图片下采样32倍,得到的特征图W、H为原图片大小的1/32,Channel变为512。
2.其次,经过size=7x7,padding=3,卷积核数为4096的FC6卷积,输出特征图大小不变,Channel变为4096。
3.再次,经过size=1x1,padding=1,卷积核数为4096为FC7卷积,输出特征图大小不变,Channel也不变。
4.然后,经过size=1x1,padding=1,卷积核数为num_class的卷积,输出的特征图大小不变,Channel变为num_class。
(num_class为分类个数,VGG网络全连接层会经过softmax进行多分类,因此我们要把Channel值设置为分类个数,确保参数个数与VGG保持一致。讲解视频中有提到!)
5.最后,经过一个size=64的上采样(即32倍的上采样),特征图恢复到原图大小。得到的特征图的Channel仍然为num_class。
(在源码中,这里没有使用上采样,而是直接使用双线性插值还原。原因是直接使用32倍的上采样效果不明显,不用也可以。这是由于直接放大32倍导致的。)
(2) FCN-16s
(3) FCN-8s