当前位置: 首页 > news >正文

DeepLabv3+:融合空洞可分离卷积的编码器-解码器语义分割架构

论文基础信息

  • 标题:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
  • 会议:ECCV 2018
  • 单位:Google Inc.
  • 代码:github.com/tensorflow/models/tree/master/research/deeplab
  • 论文:https://arxiv.org/pdf/1802.02611.pdf

一、论文核心总览

这篇论文把空间金字塔池化和编码器-解码器结构的优势焊死在一起,在DeepLabv3基础上加了极简解码器,同时用深度可分离卷积把速度和精度拉满,在PASCAL VOC 2012和Cityscapes两个数据集刷到SOTA,是语义分割领域兼顾精度与速度的里程碑工作。

一句话总结:DeepLabv3+ = 超强编码器(DeepLabv3+ASPP)+ 极简高效解码器 + 深度可分离空洞卷积

图 1.我们对 DeepLabv3 进行了改进,该模型采用了空间金字塔池化模块(a)以及编码器-解码器结构(b)。所提出的模型 DeepLabv3+ 从编码器模块中获取了丰富的语义信息,而详细的对象边界则通过简单但有效的解码器模块得以恢复。编码器模块允许我们通过应用空洞卷积在任意分辨率下提取特征。

二、核心创新点(人话版)

  1. 结构融合:把DeepLabv3的多尺度上下文捕获能力,和编码器-解码器的边界恢复能力结合
  2. 灵活分辨率:用空洞卷积任意控制编码器特征密度,平衡精度和算力
  3. 轻量化升级:改造Xception backbone,全链路用深度可分离卷积,更快更强
  4. 边界优化:专用解码器专门修复物体边缘,分割边界更锐利

三、核心技术详解(带公式+通俗解释)

图 2. 3×3 深度分离卷积将标准卷积分解为(a)深度卷积(针对每个输入通道应用单一滤波器)和(b)点卷积(将深度卷积在不同通道中的输出进行组合)。在本研究中,我们探讨了空洞分离卷积,其中在深度卷积中采用了空洞卷积,如图(c)所示,其采样率为 2。

1. 空洞卷积(Atrous Convolution)

论文核心公式(公式1):
y[i]=∑kx[i+r⋅k]w[k]y[i] = \sum_k x[i + r \cdot k]w[k]y[i]=kx[i+rk]w[k]

字母逐词解释

  • y[i]y[i]y[i]:输出特征图第iii个位置的像素值
  • xxx:输入特征图
  • rrr空洞率(atrous rate),控制卷积核的孔洞大小,越大感受野越大
  • kkk:卷积核内部元素的索引
  • w[k]w[k]w[k]:卷积核第kkk个位置的权重参数

通俗解释
普通卷积是密集采样,空洞卷积就是在卷积核里插r−1r-1r1个0,不增加参数就能扩大感受野,还能保持特征分辨率,解决分割任务下小物体丢失、边缘模糊的问题。

2. 深度可分离空洞卷积(Atrous Separable Convolution)

把标准卷积拆成两步:

  1. 深度卷积:每个通道单独卷积,不跨通道混合
  2. 逐点卷积:1×1卷积融合通道信息
    再把空洞卷积嵌入深度卷积,计算量砍半,精度不降反升

通俗解释
相当于把卷积的「空间滤波」和「通道融合」分开做,再加上空洞扩大感受野,轻量+大感受野一举两得

3. 编码器-解码器整体结构

图 3. 我们提出的 DeepLabv3+ 通过采用编码器-解码器结构对 DeepLabv3 进行了扩展。编码器模块通过在多个尺度上应用空洞卷积来编码多尺度的上下文信息,而简单的但有效的解码器模块则沿着对象边界对分割结果进行细化。

结构拆解

  • 编码器:DeepLabv3 backbone + ASPP模块,捕获多尺度语义信息
  • 解码器
    1. 编码器输出上采样4倍
    2. 拼接主干网低层细粒度特征
    3. 两层3×3卷积细化特征
    4. 再上采样4倍得到最终分割图

通俗解释
编码器负责「看懂这是什么」,解码器负责「把边缘画精准」,两者结合既懂语义又抠细节。

4. ASPP模块(空洞空间金字塔池化)

并行4路不同空洞率的3×3卷积 + 1路全局池化,同时捕获小、中、大、全局尺度的上下文,解决多尺度物体分割难题。

5. Modified Aligned Xception

图 4. 我们对 Xception 进行了如下修改:(1)增加层数(与 MSRA 的修改相同,但入口流程有所变化),(2)将所有的最大池化操作替换为具有步长的深度可分离卷积,(3)在每个 3×3 深度卷积之后添加额外的批量归一化和 ReLU 操作,类似于 MobileNet。


论文对Xception做了3点改造:

  1. 加深网络,保留Entry Flow结构保证速度
  2. 最大池化全部替换为带步幅的深度可分离卷积
  3. 每个3×3深度卷积后加BN和ReLU

通俗解释
把Xception改成全卷积、可空洞、更稳定的分割专用backbone。


四、实验结果与分析(带表格+解读)

实验表格总览


出处:DeepLabv3+论文表1、表2、表6

1. 解码器1×1卷积通道数实验(表1)

Channels816324864
mIOU77.61%77.92%78.16%78.21%77.94%

分析

  • 通道数48时mIOU达到峰值78.21%
  • 通道太少特征不足,太多引入冗余噪声
  • 论文最终选用48通道作为低层特征压缩维度

2. 解码器结构设计实验(表2)

结构方案mIOU
两层3×3卷积(256通道)78.85%
一层3×3卷积78.21%
三层3×3卷积78.02%

分析

  • 两层3×3卷积效果最优,过多卷积导致过拟合
  • 仅用Conv2低层特征比叠加Conv3更高效
  • 证明论文解码器简单但极其有效

3. SOTA对比实验(表6)

模型mIOU
DeepLabv385.7%
DeepLabv3+(Xception)87.8%
DeepLabv3+(Xception-JFT)89.0%

分析

  • 相比DeepLabv3提升3.3%
  • 加入JFT预训练再提1.2%
  • 无任何后处理刷到VOC 2012测试集89.0%,登顶SOTA

4. 边界精度实验

论文用trimap实验验证边界效果:

  • 窄边界区域mIOU提升4.8%~5.4%
  • 解码器对边缘细节的修复能力显著优于单纯双线性上采样

五、核心代码实现(TensorFlow2)

importtensorflowastffromtensorflow.kerasimportlayers,Model# 空洞卷积(论文核心算子)defatrous_conv2d(x,filters,kernel_size,rate=1,**kwargs):""" 空洞卷积:扩大感受野,不损失分辨率 :param rate: 空洞率r,对应论文公式中的r """returnlayers.Conv2D(filters,kernel_size,dilation_rate=rate,padding='same',**kwargs)(x)# 深度可分离空洞卷积(DeepLabv3+专属)defatrous_sep_conv2d(x,filters,kernel_size,rate=1,**kwargs):x=layers.DepthwiseConv2D(kernel_size,padding='same',dilation_rate=rate,**kwargs)(x)x=layers.Conv2D(filters,1,padding='same')(x)returnx# ASPP模块(空洞空间金字塔池化)defASPP(x,output_stride=16):shape=x.shape.as_list()conv1x1=layers.Conv2D(256,1,padding='same')(x)rate=6ifoutput_stride==16else12conv3x3_r6=atrous_sep_conv2d(x,256,3,rate=rate)conv3x3_r12=atrous_sep_conv2d(x,256,3,rate=rate*2)conv3x3_r18=atrous_sep_conv2d(x,256,3,rate=rate*3)# 图像级全局特征image_pool=layers.GlobalAveragePooling2D()(x)image_pool=layers.Reshape((1,1,shape[-1]))(image_pool)image_pool=layers.Conv2D(256,1,padding='same')(image_pool)image_pool=layers.UpSampling2D((shape[1],shape[2]))(image_pool)# 拼接融合x=layers.Concatenate()([conv1x1,conv3x3_r6,conv3x3_r12,conv3x3_r18,image_pool])x=layers.Conv2D(256,1,padding='same')(x)returnx# 解码器模块(论文核心创新)defdecoder_module(encoder_out,low_level_features):# 4倍上采样x=layers.UpSampling2D((4,4))(encoder_out)# 低层特征通道压缩low_level_features=layers.Conv2D(48,1,padding='same')(low_level_features)# 特征拼接x=layers.Concatenate()([x,low_level_features])# 边界细化x=atrous_sep_conv2d(x,256,3)x=atrous_sep_conv2d(x,256,3)# 最终4倍上采样x=layers.UpSampling2D((4,4))(x)returnx# DeepLabv3+完整模型defDeepLabv3Plus(input_shape=(512,512,3),num_classes=21):inputs=layers.Input(input_shape)# 加载ResNet101 backbonebackbone=tf.keras.applications.ResNet101(weights='imagenet',include_top=False,input_tensor=inputs)low_level_features=backbone.get_layer('conv2_block3_out').output# 编码器encoder_out=ASPP(backbone.output)# 解码器decoder_out=decoder_module(encoder_out,low_level_features)# 像素分类outputs=layers.Conv2D(num_classes,1,activation='softmax')(decoder_out)returnModel(inputs,outputs)

完整可运行代码:sandbox://tos-cn-i-ik7evvg4ik/ci/38422596160947970_1776741507562/deeplabv3+_core_code.py


六、全文精读总结

1. 核心贡献

  • 提出编码器-解码器+ASPP的混合结构,兼顾上下文与边界
  • 设计极简高效解码器,专门修复分割边缘
  • 改造Xception+深度可分离空洞卷积,实现速度精度双提升
  • 在两大分割数据集刷到SOTA,无后处理VOC 2012达89.0%

2. 适用场景

  • 城市景观分割(Cityscapes)
  • 通用物体语义分割(PASCAL VOC)
  • 移动端/边缘端部署(轻量化优势)

3. 行业影响

DeepLabv3+成为工业界最常用的语义分割基线模型,后续大量分割算法都基于它改进,是从学术到落地的经典之作。


http://www.jsqmd.com/news/706329/

相关文章:

  • gws:Google Workspace命令行工具,为AI自动化而生
  • Cursor Stats Extension:为AI编程助手打造数据可视化仪表盘
  • LLMStack:低代码平台如何简化大模型应用开发与RAG系统构建
  • 【3D】VTK-Ubuntu22.04安装VTK
  • AI日报:24小时全球科技热点速览
  • 2026如何选牛牛加速厂家:牛牛ip、牛牛加速、宽带多拨、模拟器、短效IP、静态IP、SDK包、http、socks5选择指南 - 优质品牌商家
  • 2026年平衡泥技术解析:平衡泥厂家、平衡泥品牌、平衡泥工厂、动平衡泥、平衡泥公司、平衡泥厂商、平衡土、高比重平衡胶泥选择指南 - 优质品牌商家
  • 基于用户行为数据的留存动因分析与预警策略研究
  • 【风暴之城】游玩日记 新手攻略(2)
  • 为Open WebUI构建安全代码执行沙箱:基于gVisor的本地LLM增强方案
  • 这些AI编曲软件到底强在哪,2026年度甄选5款AI编曲软件汇总,高质量助力音乐人制作编曲伴奏
  • 自洽性与Agent的结合
  • DeepSeek-V4-Pro API降价实测
  • 07.训练自己的数据集(上):标注与格式准备
  • Agent 安全性红队测试:如何防止 Prompt Injection 攻击你的智能体?
  • 基于RAG的ChatGPT文件检索工具:从原理到实践
  • 基于LangGraph的多智能体AI内容生成系统XunLong实战指南
  • 智能体的情景记忆
  • NLP文本表示方法对比:词袋、TF-IDF与LLM嵌入
  • 昨天晚上 口头发表政治评论 马桶提示:6 d 心
  • 深度学习实践
  • React Fiber 异步渲染原理讲解
  • 计算机视觉中图像数据预处理与增强技术详解
  • 为什么 Markdown 是大模型更优雅的对话格式?
  • 低功耗IoT自动调制识别:轻量特征+微型神经网络,一文吃透核心理论【附python代码】
  • GOSIM Spotlight 2026 Frontier Creators入围作品正式官宣!
  • Bridgic:轻量级数据集成平台的设计、实践与避坑指南
  • 「一文搞懂 Material Design:Toolbar 到 CollapsingToolbar 全攻略」
  • nli-MiniLM2-L6-H768在软件测试中的应用:自动化生成测试用例与断言
  • MAF快速入门()给Agent Skill添加脚本执行能力