目录
全卷积表示:将之前分类网络中的全连接层替换为卷积层
FCN总体思路
对图像进行卷积操作最终得到通道为21的特征层(因为该数据集类别有20个+1个背景共21),再进行上采样得到与原图同样大小的特征图,对21个图进行softmax处理得到该像素针对每一个类别的预测概率,取概率最大的类别为该像素的类别。
FCN将全连接层改为卷积层的好处
可以对输入图像没有限制,因为全连接层为了对一定类别进行预测展平处理得到的向量大小应该一致。但是卷积层无论输入图像大小多少经过相同次数的卷积操作都会得到一样的通道的特征层。
可将一个全连接层上参数直接变化为卷积上的参数
FCN-32s、FCN-16s、FCN-8s差别
1.FCN-32s、FCN-16s、FCN-8s分别表示将预测结果上采用32、16、8倍上采样还原为原图像的大小
FCN-32s:这里的转置卷积参数冻结了,等同于双线性插值
2.FCN-32s、FCN-16s、FCN-8s分别未结合前期骨干网络的特征图、结合了一次和结合了两次特征图
双线性插值的知识可参考:双线性插值_双线性内插法计算公式举例-CSDN博客
损失函数的求解
求每个像素点的交叉熵,将所有点交叉熵求平均得到网络损失
Pytorch中的FCN
由于FCN提出的较早,所以FCN原始文章中的骨干网络采用的VGG16,现在骨干网络较多所以Pytorch官方在实现时采用的是ResNet50.
在预测和部署到正式环境中,只利用output部分,Aux output辅助分类器可以在代码中注释掉,不起作用。
粗浅的学习,后续还会继续更新。。。
文章主要内容来源于:FCN网络结构详解(语义分割)_哔哩哔哩_bilibili