DeepLabV3+神经网络解析

论文:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

https://arxiv.org/pdf/1802.02611.pdf

什么是DeeplabV3+网络

该网络是于2018年提出的语义分割模型,以deeplabv3为encoder为架构,在此基础上加入了Decoder模块细化分割结果。并将Depthwise separable convolution在ASPP和Decoder上的应用,最终得到了更加强大的神经网络deeplabv3+:
在这里插入图片描述

Encoder:
首先图片进入Encoder里面进行特征提取,经过DCNN(深度卷积神经网络)生成两个有效特征层,分别为浅层特征层和深层特征层,浅层特征层的高和宽会大一些,而深层特征层的下采样会多一些,所以高和宽会小一些。在Encoder中,我们会使用不同膨胀率的膨胀卷积进行特征提取,其中有膨胀率分别为6,12,18的3x3卷积,用来提高网络的感受野,使得网络有不同的特征感受情况,之后将特征层进行堆叠,再经过1x1卷积进行通道数调整,获得绿色特征层。
Decoder:
由DCNN生成的浅层特征层进入到Decoder解码器中,由编码器生成的具有高语义信息的绿色特征层进入到Decoder中进行上采样,之后与较浅的特征经过1x1卷积得到的结果进行特征融合,之后经过3x3的卷积进行特征提取,最终经过上采样将输出图片与输入图片大小一致,得到预测结果。

deeplabV3+主要结构

主干网络(DCNN)

论文中采用的是Xception系列作为主干特征提取网络,但由于计算机性能问题,本人采用Mobilenetv2作为主干特征提取网络。
![![请添加图片描述](https://i-blog.csdnimg.cn/direct/a38d9a42ab89421a93fc0554c4d7cead.png#pic_center)

#pic_center)
左边为主干部分,首先经过1x1卷积进行升维,然后利用3x3深度可分离卷积进行特征提取,然后利用1x1卷积进行降维,输入和输出直接相接。
请添加图片描述
需要注意的是,在DeeplabV3当中,一般不会5次下采样,可选的有3次下采样和4次下采样,本文使用的4次下采样。这里所提到的下采样指的是不会进行五次长和宽的压缩,通常选用三次或者四次长和宽的压缩。
在完成MobilenetV2的特征提取后,我们可以获得两个有效特征层,一个有效特征层是输入图片高和宽压缩两次的结果,一个有效特征层是输入图片高和宽压缩四次的结果。
Xception模型
在这里插入图片描述

整个网络具有14个模块,36个卷积。它引入了Entry/Middle/Exit三个flow,每个flow内部使用不同的重复模块,当然最最核心的属于中间不断分析、过滤特征的Middel flow。
Entry flow主要是用来不断下采样,减小空间维度;中间则是不断学习关联关系,优化特征;最终则是汇总、整理特征,用于交由FC来进行表达。

空洞卷积(膨胀卷积)

Deeplabv3+在Encoder部分引入了大量的空洞卷积,在不损失信息的情况下,增加了感受野大小,捕捉到了较大范围的信息。
请添加图片描述

一为普通卷积,也可理解为膨胀率为0的膨胀卷积。二为膨胀率为1的膨胀卷积
膨胀卷积的优点:
1、常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,而膨胀卷积可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样操作
1、不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息,
1、空洞卷积可以增大感受野,同时可以不改变图像输出特征图的尺寸

空洞空间卷积池化金字塔(atrous spatial pyramid pooling (ASPP))

在Encoder中,我们对压缩四次的初步有效特征层经过ASPP对给定的输入以不同采样率的空洞卷积进行并行采样,相当于以多个比例捕捉图像的上下文。
请添加图片描述

在Decoder中,我们会对压缩两次的初步有效特征层利用1x1卷积调整通道数,再和空洞卷积后的有效特征层上采样的结果进行堆叠,在完成堆叠后,进行两次深度可分离卷积块。
请添加图片描述
这个时候,我们就获得了一个最终的有效特征层,它是整张图片的特征浓缩。

利用特征获得预测结果

我们可以获取输入进来的图片的特征,此时,我们需要利用特征获得预测结果。
利用特征获得预测结果的过程可以分为2步:
1、利用一个1x1卷积进行通道调整,调整成Num_Classes。
2、利用resize进行上采样使得最终输出层,宽高和输入图片一样。

损失函数

本文所使用的LOSS由两部分组成:
1、Cross Entropy Loss。
2、Dice Loss。

Cross Entropy Loss就是普通的交叉熵损失,当语义分割平台利用Softmax对像素点进行分类的时候,进行使用。

Dice loss将语义分割的评价指标作为Loss,Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值范围在[0,1]。

计算公式如下:
请添加图片描述
就是预测结果和真实结果的交乘上2,除上预测结果加上真实结果。其值在0-1之间。越大表示预测结果和真实结果重合度越大。所以Dice系数是越大越好。

如果作为LOSS的话是越小越好,所以使得Dice loss = 1 - Dice,就可以将Loss作为语义分割的损失了。

结果对比

本次训练参数如下:
epoch:40
lrate:0.1
gt
请添加图片描述
pre
在这里插入图片描述

请添加图片描述

### DeepLabV3 网络架构图解析 DeepLabV3 是一种先进的语义分割方法,其核心在于通过空洞卷积(Atrous Convolution)和空洞空间金字塔池化(Atrous Spatial Pyramid Pooling, ASPP)来捕获多尺度上下文信息[^4]。以下是关于 DeepLabV3 的网络架构及其相关示意图的解析。 #### 1. 主要组成部分 DeepLabV3 的整体结构可以分为以下几个部分: - **主干网络(Backbone Network)**: 使用深度卷积神经网络(DCNN),如 ResNet 或 Xception,作为特征提取的基础模型[^1]。 - **空洞卷积(Atrous Convolution / Dilated Convolution)**: 调整感受野大小而不增加参数量或计算复杂度的技术。 - **空洞空间金字塔池化(ASPP)**: 结合不同采样率的空洞卷积层,以捕捉多尺度的信息。 - **解码器模块(可选)**: 在某些变体中加入了解码器模块以恢复更精细的空间细节[^2]。 #### 2. 架构图说明 下图为典型的 DeepLabV3 网络架构示意: ![DeepLabV3 Architecture](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/DeepLabv3_plus_architecture.png/800px-DeepLabv3_plus_architecture.png) ##### 图片中的关键组件解释如下: - **输入图像**: 输入到网络中的原始 RGB 图像。 - **主干网络**: 提取低级和高级特征的主要部分,通常由预训练的 DCNN 组成。 - **ASPP 模块**: - 包含多个平行分支,每个分支应用不同的空洞率(rate)进行卷积操作。 - 还有一个全局平均池化(Global Average Pooling, GAP)分支,用于获取全局上下文信息并将其插值回原尺寸。 - **最终分类头**: 将来自 ASPP 和其他模块的特征映射转换为像素级别的类别预测结果。 #### 3. 关键技术点 - **空洞卷积的作用**: 它允许在网络更深阶段保持较高分辨率的同时扩大感受野,从而更好地适应不同尺度的目标对象。 - **ASPP 设计目的**: 针对目标物体可能存在的多种比例情况,通过引入多样化的扩张因子来增强模型对于多尺度模式的理解能力。 ```python import torch from torchvision.models.segmentation import deeplabv3_resnet101 model = deeplabv3_resnet101(pretrained=True) input_tensor = torch.randn(1, 3, 512, 512) # 假设输入图片大小为 512x512 output = model(input_tensor)['out'] print(output.shape) # 输出形状应为 [1, num_classes, height, width] ``` 上述代码展示了如何加载 PyTorch 中预先定义好的 DeeplabV3+ 模型,并执行一次前向传播得到输出张量维度。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只能凯瑞一点

你的鼓励是我最大的动力,多交流

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值