xingchenshanyao / NNLearning

这里只是学习深度学习过程中的一些记录
4 stars 0 forks source link

DeepLab-v1 v2 v3 v3+ ———图像分割模型2015-2018 #17

Open xingchenshanyao opened 1 year ago

xingchenshanyao commented 1 year ago

参考来源:

https://blog.csdn.net/qq_35759272/article/details/123700919

使用deeplabv3+训练自己的数据集:

https://blog.csdn.net/weixin_39357271/article/details/124078660
xingchenshanyao commented 1 year ago

语义分割面临的挑战: -1. 分辨率下降:连续的池化或下采样操作会导致图像的分辨率大幅度下降,从而损失了原始信息,且在上采样过程中难以恢复 减少分辨率的损失的方法:使用空洞卷积,或者用步长为2的卷积操作代替池化 -2. 多尺度特征 : --1. 将不同尺度的特征图送入网络做融合,对于整个网络性能的提升很大 --2. 但是由于图像金字塔的多尺度输入,造成计算时保存了大量的梯度,从而导致对硬件的要求很高 --3. 将网络进行多尺度训练,在测试阶段进行多尺度融合。如果网络遇到了瓶颈,可以考虑引入多尺度信息,有助于提高网络性能。

xingchenshanyao commented 1 year ago
  1. DeepLab v1 研究成果及意义: -1.参数同比减少,所以占比内存减小,速度快 -2.ResNet的引入,越深层的网络准确率越高 -3.连续卷积和池化不可避免的会带来分辨率降低, 然而空洞卷积却可以在尽可能保证分辨率的情况下扩大视野 -4.ASPP的创举 摘要: -1.背景概述:DCNNs的最后一层不足以进行精确分割目标 -2.主要贡献:本文将深度卷积神经网络和CRF相结合,克服了深度网络的局部化特性 -3.网络效果:DeepLab v1超过了以往方法的精度水平,可以更好地定位分割边界 -4.实验结果:在PASCAL VOC 2012数据集中取得了71.6%的IOU;在正常GPU上可达到每秒8帧的处理速度 引言: DeepLab v1 是结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)的方法 深度卷积神经网络(DCNNs) -1.采用FCN思想,修改VGG16网络,得到 coarse score map并插值到原图像大小 -2.使用Atrous convolution得到更dense且感受野不变的feature map概率图模型(DenseCRFs) -3.借用fully connected CRF对从DCNNs得到的分割结果进行细节上的refine 算法和实验: -1.把全连接层(fc6、fc7、fc8)改成卷积层(端到端训练) -2.把最后两个池化层(pool4、pool5)的步长2改成1(保证feature的分辨率) -3.把最后三个卷积层(conv5_1、conv5_2、conv5_3)的dilate rate设置为2,且第一个全连接层的dilate rate设置为4(保持感受野) -4.把最后一个全连接层fc8的通道数从1000改为21(分类数为21) -5.第一个全连接层fc6,通道数从4096变为1024,卷积核大小从7x7变为3x3,后续实验中发现此处的dilate rate为12时(LargeFOV),效果最好 1 2 实验设置: -1.DeepLab-MSc:类似FCN,加入特征融合 -2.DeepLab-7×7:替换全连接的卷积核大小为7×7 -3.DeepLab-4×4:替换全连接的卷积核大小为4×4 -4.DeepLab-LargeFOV:替换全连接的卷积核大小为3×3,空洞率为12 3
xingchenshanyao commented 1 year ago
  1. DeepLab v2 摘要: -1.主要贡献:充分利用空洞卷积,可实现在不增加参数量的情况下有效扩大感受域,合并更多的上下文信息;DCNNs与CRF相结合,进一步优化网络效果;提出了ASPP模块 -2.网络效果:ASPP增强了网络在多尺度下多类别分割时的鲁棒性,使用不同的采样比例与感受野提取输入特征,能在多个尺度上捕获目标与上下文信息 -3.实验结果:在PASCAL VOC 2012数据集中取得了79.7%的MIOU;在其他数据集中也进行了充分实验 引言: -1.针对分辨率过低的特征图。文章通过修改最后的几个池化操作,避免特征图分辨率损失过大,通过引入空洞卷积,在没有增加参数与计算量的情况下增大了感受野(基本同理于v1) -2.需要分割的目标具有多样的尺度大小。针对这个问题,文章参考了空间金字塔池化的思想,这里使用不同比例的膨胀卷积构造“空间金字塔结构”(Atrous Spatial PyramidPooling,ASPP) -3.DCNN网络对目标边界的分割准确度不高。文章引入全连接条件随机场(fully-connected Conditional Random Field,CRF)使得分割边界的定位更加准确,从而解决该问题 先验知识: -1.空洞卷积: 4 感受域计算: 6 空洞率对应卷积核尺寸: 8 -2.SPPNet(《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》) : SPPNet提出的初衷是为了解决CNN对输入图片尺寸的限制。由于全连接层的存在,与之相连的最后一个卷积层的输出特征需要固定尺寸,从而要求输入图片尺寸也要固定。SPPNet之前的做法是将图片裁剪或变形(crop/warp)。但是crop/warp的一个问题是导致图片的信息缺失或变形,影响识别精度。 9 10 -3.bottom-up&top-down --1.top-down:在模式识别的过程中使用了上下文信息(举例:当你看到了一张字迹潦草难以辨认的手写文本时,你可以利用整个文本来辅助你理解其中含义,而不是每个字单独辨认。正因为有了周围字体的上下文信息,大脑可以去感知和理解文本里的意思。) --2.bottom-up:以数据为主要驱动(举例:一个人在花园看到一朵花,有关于花朵的所有视觉信息都从视网膜上通过视神经传递到大脑,大脑分析后得到图像从而判断出这是一朵花。这些信息的传递都是单方向的) -4.ResNet 变化率:残差的引入去掉了主体部分,从而突出了微小的变化 主要思想:用一个神经网络去拟合y=x这样的恒等映射,比用一个神经网络去拟合y=0这样的0映射要难。因为拟合y=0的时候,只需要将权重和偏置都逼近0就可以了 算法和实验: Network&ASPP 11 12 实验设置: -1.损失函数:交叉熵+softmax -2.优化器:SGD + momentum 0.9 -3.batchsize:20 -4.学习率:10-3(每2000次,学习率 * 0.1) 13 实验分析 : -1.LargeFOV:3×3卷积 + rate=12(DeepLab v1最好结果) -2.ASPP-S:r = 2, 4, 8, 12 -3.ASPP-L:r = 6, 12, 18, 24 14 15 16 17 18
xingchenshanyao commented 1 year ago
  1. DeepLab v3 摘要: -1.主要贡献:为了解决多尺度下的分割问题,本文设计了级联或并行的空洞卷积模块;扩充了ASPP模块 -2.网络效果:网络没有经过DenseCRF后处理,也可得到不错的结果 -3.实验结果:在PASCAL VOC 2012数据集中获得了与其他最新模型相当的性能 本文贡献: -1.本文重新讨论了空洞卷积的使用,这让我们在串行模块和空间金字塔池化的框架下,能够获取更大的感受野从而获取多尺度信息 -2.改进了ASPP模块:由不同采样率的空洞卷积和BN层组成,我们尝试以串行或并行的方式布局模块 -3.讨论了一个重要问题:使用大采样率的3×3的空洞卷积,因为图像边界响应无法捕捉远距离信息(小目标),会退化为1×1的卷积, 我们建议将图像级特征融合到ASPP模块中 先验知识: 语义分割常用特征提取框架 20 算法和实验: 21 实验设置: -1.深度学习框架:TensorFlow -2.裁剪尺寸:裁剪图片至513*513 -3.学习率策略:采用poly策略,原理同v2 -4.BN层策略: --1.当output_stride=16时,batchsize=16,同时BN层做参数衰减0.9997 --2.在增强的数据集上,以初始学习率0.007训练30K后,冻结BN层参数 --3.当output_stride=8时,batchsize=8,使用初始学习率0.001训练30K
xingchenshanyao commented 1 year ago
  1. DeepLab v3+ 摘要: -1.背景概述:深度神经网络通常采用ASPP模块或编解码结构进行语义分割 -2.主要贡献:通过添加一个简单而有效的解码器模块开扩展DeepLab v3以优化分割结果 -3.网络效果:该网络超过了以往方法的精度水平,可以更好地定位分割边界 -4.实验结果:在PASCAL VOC 2012数据集和Cityscapes数据集中分别取得了89%和82.1%的MIOU 本文贡献: -1.提出了一种编码器-解码器结构,采用DeepLab v3作为encoder,添加decoder得到新的模型(DeepLabv3+) -2.将Xception模型应用于分割任务,模型中广泛使用深度可分离卷积 先验知识 : 深度可分离卷积(Depthwise separable convolution) --1.输入图片尺寸为12×12×3,用1个5×5×3的卷积核进行卷积操作,会得到8×8×1的输出;用256个5×5×3的卷积核进行卷积操作,会得到8×8×256的输出 --2.参数计算:256×5×5×3 = 19200 31 32 --3.深度可分离卷积 = 深度卷积 + 逐点卷积 --4.深度卷积:每个5×5×1的卷积核对应输入图像中的一个通道,得到三个8×8×1的输出,拼接后得到8×8×3的结果 --5.逐点卷积:设置256个1×1×3的卷积核,对深度卷积的输出再进行卷积操作,最终得到8×8×256的输出 --6.参数计算: ---1.深度卷积参数 = 5×5×3 = 75 ---2.逐点卷积参数 = 256×1×1×3 = 768 ---3.总参数 = 75 + 768 = 843 << 19200 33 34 算法和实验: -1.编码器: --1.使用DeepLab v3作为编码器结构,输出与输入尺寸之比为16(output_stride = 16) --2.ASPP:一个1×1卷积 + 三个3×3卷积(rate = {6, 12, 18}) + 全局平均池化 -2.解码器: --1.先把encoder的结果上采样4倍,然后与编码器中相对应尺寸的特征图进行拼接融合,再进行3x3的卷积,最后上采样4倍得到最终结果 --2.融合低层次信息前,先进行1x1的卷积,目的是降低通道数 35 -3.DeepLab v3+对Xception进行了微调: --1.更深的Xception结构,原始middle flow迭代8次,微调后迭代16次 --2.所有max pooling结构被stride=2的深度可分离卷积替代 --3.每个3x3的depthwise convolution后都跟BN和Relu 36 实验设置: -1.深度学习框架:TensorFlow -2.裁剪尺寸:裁剪图片至513x513 -3.学习率策略:采用poly策略,原理同v2 v3 37
xingchenshanyao commented 1 year ago
  1. 论文总结 DeepLab系列发展历程: -1. v1:修改经典分类网络(VGG16),将空洞卷积应用于模型中,试图解决分辨率过低及提取多尺度特征问题,用CRF做后处理 -2. v2:设计ASPP模块,将空洞卷积的性能发挥到最大,沿用VGG16作为主网络,尝试使用ResNet-101进行对比实验,用CRF做后处理 -3. v3:以ResNet为主网络,设计了一种串行和一种并行的DCNN网络,微调ASPP模块,取消CRF做后处理 -4. v3+:以ResNet或Xception为主网络,结合编解码结构设计了一种新的算法模型,以v3作为编码器结构,另行设计了解码器结构,取消CRF做后处理