全卷积神经网络FCN整体概述
FCN是首个端对端针对像素级预测的全卷积网络。FCN会用到分类网络作为backbone
FCN的网络结构类比分类网络
分类网络经过卷积操作后,接全连接层,最后一个全连接层输出长度与分类类别数量相同,最后经过softmax得到术语每个类别的概率。
对于FCN网络,特征提取会用到分类网络作为backbone。类比分类网络,FCN-s32经过一系列卷积操作(下采样)获取特征层,卷积最终输出特征层与语义分割类别数num_cls相等(包含背景),再通过convTranspose反卷积(上采样),得到与原图相同大小的特征图,通道数与num_cls相等。特征图上的每一个像素点在channel维度上对应channel个值,进过softmax得到每一个像素点在所有类别上的概率值,取概率最大值作为该像素点的预测类别。
FCN网络结构
以VGG16为FCN的backbne
VGG16网络结构如下图所示:
FCN-8s和FCN-16s使用到第3个max pooling和第四个max pooling特征层,分别对应原始图片宽高的1/8和1/16
(理解FCN-8s最后特征层经过8倍上采样, FCN-16s最后特征层经过16倍上采样)
FCN-32S网络结构
图片来自
https://www.bilibili.com/video/BV1J3411C7zd/?spm_id_from=333.788&vd_source=91cfed371d5491e2973d221d250b54ae*
如上图所示,在backbone特征提取模块使用是VGG16模型中全连接网络之前的所有卷积模块,FC6表示连接一个7×7卷积、激活函数和dropout,特征层大小不变;
FC7表示连接一个1×1卷积、激活函数和dropout,特征层大小不变;
再经过一个1×1卷积,不改变特征层大小,将channel数量转换为与num_cls相同;
经过反卷积(上采样),将特征图上采样32倍得到与原始图片相同大小的特征层;
(如果训练过称重反卷积参数冻结,等于对特征图做双线性插值处理)
得到语义分割结果
FCN-16S网络结构
图片来自
https://www.bilibili.com/video/BV1J3411C7zd/?spm_id_from=333.788&vd_source=91cfed371d5491e2973d221d250b54ae*
FCN-16s在反卷积结果中融合了backbone中的特征层。
使用VGG16第四个池化后的特征层(原始图像宽高1/16)进过一次1×1卷积将channel数转化为num_cls,
与两倍上采样后的卷积结果相加(特诊层对应位置像素值相加操作),
融合后的结果进行反卷积(16倍上采样),
输出特征层,得到语义分割结果。
FCN-8S网络结构
FCN-8s在反卷积结果中融合了backbone中的特征层。
使用VGG16第四个池化后的特征层(原始图像宽高1/16)进行一次1×1卷积将channel数转化为num_cls,
与两倍上采样后的卷积结果相加(特征层对应位置像素值相加操作),
将结果再次两倍上采样,再与VGG16第三个池化后的特征层(原始图像宽高1/8)进行一次1×1卷积将chnnel数量转化为num_cls相加(特征层对应位置像素值相加操作),
融合后的结果进行反卷积(8倍上采样),
输出特征层,得到语义分割结果。
以上为全卷积神经网络FCN网络结构笔记
感谢:
https://www.bilibili.com/video/BV1J3411C7zd/?spm_id_from=333.788&vd_source=91cfed371d5491e2973d221d250b54ae