1、图像分类与语义分割
通常CNN网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都期望得到整个输入图像的一个数值描述(概率),比如AlexNet的ImageNet模型输出一个1000维的向量表示输入图像属于每一类的概率(softmax归一化)。
FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类(如上图)
2、全卷积网络(FCN)
可以看到:
FCN以传统的卷积网络(VGG,ResNet等)作为基础网络,去掉最后的全连接层。
经过卷积层(conv1,conv2...)输入尺寸不变,而经过池化层后feature map尺寸减半。
经过pool3后feature map尺寸变为原始图像的1/8,经过pool4后变为1/16,经过pool5后变为1/32。
将pool5得到的1/32尺寸feature map(此时应叫heat map)进行上采样(转置卷积或双线性插值)得到1/16与pool4的1/16对应相加,得到新的1/16