up主学习视频地址:
【语义分割前言】 https://www.bilibili.com/video/BV1ev411P7dR/?share_source=copy_web&vd_source=49d7ac1e09d11f99978e8cf36c8bad41
这个up主真的很厉害,宝藏up主呀!!!
常见语义分割评价指标
转置卷积(Transposed Convolution)
主要是起到上采样的作用
强调:
- 转置卷积不是卷积的逆运算
- 专职卷积也是卷积
先进行填充后再正常进行卷积操作
在Pytorch官方有给出转置卷积的函数ConvTranspose2d — PyTorch 2.2 documentation
groups:是否使用组卷积,默认为1即传统卷积
dilation:是否使用空洞卷积,默认为1即传统卷积
FCN网络
首个端对端的针对像素级预测的全卷积网络
特征层为21个通道,将tunnel为21的层进行上采样后得到和原图一样大小的特征图,对这21个值进行softmax处理就可以得到该像素针对于每个类别的预测概率,取概率最大的类别作为该像素的预测值。 将全连接层转为卷积层
其实在全连接层中展开后使用权重计算最终值的效果与将权重作为卷积核进行卷积层处理是一致的,只是使用卷积层会保留高宽的信息
FCN-32S ==> 32倍上采样还原至原图大小
FCN-16S ==> 16倍上采样还原至原图大小
FCN-8S ==> 8倍上采样还原至原图大小
FCN-32S
在转置卷积层中学习率是冻结的,可能是上采样倍数过大因而作者称是否冻结对结果影影响不大
FCN-16S
融合了来自VGG16中的MaxPooling4的信息,MaxPooling4是将原图缩放至原来的16倍
FCN-8S
融合了来自VGG16中的MaxPooling3与MaxPooling4的信息,结构中的相加是指对应特征层中的元素进行相加。
膨胀/空洞卷积(Dilated convolution)
作用:
- 增大感受野
- 保持原输入特征图的高W宽H
连续堆叠多个膨胀卷积时需要注意的问题:gridding effect(高层膨胀卷积中有部分没有使用到底层中的信息,在感受野内用没有被使用到的元素,当间隔为1时代表都使用到了)
堆叠多个膨胀卷积时膨胀系数的确定:
- 计算公式
- 将dilation rates设置为锯齿结构,如[1,2,3,1,2,3]
- 公约数不能大于1
Pytorch官方实现的FCN网络结构
up主源码解析:
【FCN源码解析(Pytorch)】 https://www.bilibili.com/video/BV19q4y1971Q/?share_source=copy_web&vd_source=49d7ac1e09d11f99978e8cf36c8bad41
up主提供的源码地址:GitHub - WZMIAOMIAO/deep-learning-for-image-processing: deep learning for image processing including classification and object-detection etc.
DeepLabV3网络
相比于DeepLabV2有以下特点:
- 引入了Multi-grid(针对于膨胀卷积,为Resnet结构中的膨胀系数)
- 改进ASPP结构(提高获取多尺度上下文的能力)
- 移除CRFs后处理
在连级模型中multi-grid设置为[1,2,1]
但是对于ASPP结构则设置为[1,2,4]
根据论文中对于ASPP model的消融实验中可以发现在COCO数据集上进行预训练mIOU会提升大致3个点
Pytorch官方实现的DeepLabV3网络结构
【DeepLabV3源码讲解(Pytorch)】 https://www.bilibili.com/video/BV1TD4y1c7Wx/?share_source=copy_web&vd_source=49d7ac1e09d11f99978e8cf36c8bad41
正在学习语义分割中,如有不当之处欢迎指出!!