DeepLab简单总结
Deeplab v1:
1.条件随机场(CRF)的作用:
CNN经过多层卷积,获取足够多的语义信息,有平移不变性,重复池化和下采样导致分辨率大幅下降,位置信息丢失难以恢复,
导致最后定位不准,CRF可以解决这个问题(RCF在测试时用,不参与训练时的反向传播)
2.deepLab v1创新点:
引入空洞卷积和CRF,都不是原创
3.代码:https://github.com/wangleihitcs/DeepLab-V1-PyTorch
4.空洞卷积(dilated/Atrous conv)的弊端以及解决方案:https://www.zhihu.com/question/54149221 http://xxx.itp.ac.cn/pdf/1702.08502v3 (HDC)
1)有的像素点可能永远也卷不到
2)对小物体不友好
5.空洞卷积和等大感受野的大核卷积相比,除了减少参数量以外,还有什么优点吗?
Deeplab v2:
1. v2创新点有哪些:
论文里提到有三点:atrous conv,ASPP,CRF.实际上相比v1,只增加了ASPP 将网络VGG16换成了ResNet
2.代码:https://github.com/doiken23/DeepLab_pytorch/blob/master/DeepLab_v2_res.py
3. ASPP的作用
ASPP通过将特征图输入多个膨胀率的空洞卷积中来实现多尺度的,将得到的特征图直接相加(x = x1 + x2 + x3 + x4),然后上采样
4.Poly Learning Rate Policy
LearningRate = InitialLearningRate*(1 - iter/max_iter) ^ (power)
Deeplab v3:
1.分割领域的两个问题:
池化等操作造成的特征图分辨率降低(空洞卷积解决)
目标多尺度
2.分割中的目标多尺度解决方案:
image pyramid
encoder-decoder structure
extra modules are cascaded on top of the original network
spatial pyramid pooling
3.deeplab v3创新点:
ASPP中增加了图像级特征、BN
串并联空洞卷积
将图像级特征融入ASPP
4.deepLab v3中为什么不使用CRF了?
deeplabv3将图像级特征融合到ASPP模块中。融合图像级特征,相当于融合了其位置信息。所以就不需要最后再用CRF了(https://www.zhihu.com/question/299075713)
5.Deeplabv3的网络结构:
https://github.com/sthalles/deeplab_v3/blob/master/network.py
Deeplab v3+
1.创新点:
语义分割卷积后的特征图要插值回原图大小,直接插值略显粗糙。
v3+的创新点一是设计基于v3的decode module,二是用modify xception作为backbone
https://blog.csdn.net/Dlyldxwl/article/details/81148810?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight
https://blog.csdn.net/weixin_38440272/article/details/84787720?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase