FCN详解
全卷积网络就是在全连接网络的基础上,通过用卷积网络替换全连接网络得到的。
首先看一下什么是全连接网络,以及全连接网络的缺点。
通常的CNN网络中,在最后都会有几层全连接网络来融合特征信息,然后再对融合后的特征信息进行softmax分类。
假设最后一层的feature_map的大小是7x7x512,那么全连接层做的事就是用4096个7x7x512的滤波器去卷积这个最后的feature_map。所以可想而知这个参数量是很大的!!
但是全卷积网络就简单多了。FCN的做法是将最后的全连接层替换为4096个1x1x512的卷积核,所以最后得出来的就是一个二维的图像,然后再对这个二维图像进行上采样(反卷积),然后再对最后反卷积的图像的每个像素点进行softmax分类。
所以可见FCN的好处是不用限制图片的输入尺寸。
那么怎么替代全连接层呢,可以使用全局平均池化(GAP),这样7x7x512的feature_map就变成了1x1x512的feature_map了。
其中反卷积的具体操作可参考这篇博文
下图是作者使用的一种比较好的上采样策略,对最后的conv7(也就是32倍下采样的feature_map)进行32倍上采样,然后再对conv7进行2倍上采样+pool4 进行16倍上采样,然后再对conv7进行4倍上采样+2倍的pool4+pool3再进行8倍上采样。
参考链接
https://zhuanlan.zhihu.com/p/34453588
https://zhuanlan.zhihu.com/p/30195134