深度双分辨率网络(DDRNets)用于道路场景的实时语义分割

DDRNet是一种基于HRNet改进的实时语义分割网络,包含双分辨率网络结构和深度聚合金字塔池化模块。它在保持高分辨率特征图的同时,通过下采样获取丰富的上下文信息,实现精度与速度的良好平衡。实验结果显示,DDRNet在CityScapes测试集上取得了优秀的性能。
摘要由CSDN通过智能技术生成

Deep Dual-resolution Networks

BackGrounds

自动驾驶道路场景的语义分割是一个安全关键的应用,要求尽可能高质量的语义分割和低的部署计算量。
近年来,针对道路场景的语义分割提出了一些比较有竞争力的方法, 如SwiftNet,FANet,BiSeNetv2等网络结构,他们大多基于两种架构,一种是编码解码结构,一种是基于双通路的体系结构, 除了普通编码器获取语义信息的一条路径外,另一条高分辨率的浅层路径提供了丰富的空间细节作为补充。
但是,这些工作并没有显示出获得更高质量结果的潜力,由于刻意设计的架构和调优的超参数,其中一些方法可能不容易扩展。当前实时语义分割的性能对比图

Contributions

1.基于HRNet的启发,提出了一种新的深度双分辨率双边网络用于实时语义分割,从一个主干开始分为两个不同分辨率的平行深分支,一个深度分支生成相对高分辨率的特征图,另一个通过多次下采样操作提取丰富的上下文信息。
2. 设计了一个新的模块,通过将特征聚合与金字塔池相结合来获取丰富的上下文信息。当它与低分辨率的特征映射集成时,推理时间几乎没有增加。
3. 通过简单的增加网络的宽度和深度,DDRNet在现有的方法中实现了mIoU和FPS之间的最大权衡,在cityscape测试集上,从77.4%的mIoU在109 FPS到80.4%的mIoU在23 FPS。

DDRNets

Rethinking the HRNet

从HRNet的工作中得到启示,多尺度表示能力在目标检测中尤为重要,从这一点出发,只保留两个分支,一个分支负责维持高分辨率的特征图,而另一个分支通过重复下采样产生足够大的接受域。通过大量的实验证明,这种紧凑的结构可以大大提高推理速度,减少内存消耗。

Dual-resolution Network

整体的网络结构

整体的网络结构主要通过一个主干网络和一条深度学习分支组成。图中的黑色虚线表示卷积,黑色实线表示上、下采样操作和Bilateral fusion操作,对于高到低的融合,在逐点求和之前,高分辨率的特征图通过3×3卷积序列进行下采样,步长为2。对于低分辨率到高分辨率的特征图,首先采用1×1卷积对低分辨率特征图进行压缩,然后采用双线性插值对其进行更新采样。
作者表示,这种紧凑的结构大大提高了推理速度,减少了内存消耗。
在这里插入图片描述

主干网络的选择和修改

作者的主干网络主要通过使用ResNet, 其中,DDRNet23使用ResNet18, DDRNet39使用ResNet34.,对网络进行了一些修改如下图所示, 对比上图的整体网络结构可以看出,经过conv3,也就是处理到原图size的1/8之后,会增加一条深度分支,该分支比主分支有着更高的通道数和更小的size,用于增加感受野提取语义信息,并在每一个end of each branch增加了Bilateral fusion结构,用于将高分辨率的特征图和低分辨率高语义的特征图进行融合
p

Bilateral fusion结构

该结构主要包括了(☞特征图处理)

  1. 高分辨率图的下采样
  2. 低分辨率图的上采样
  3. 采样后的图像合并
  4. RELU函数激活操作

在这里插入图片描述

Deep Aggregation Pyramid Pooling Module

本文作者提出来的新的模块,DAPPM模块。

DAPPM模块可以看作是深度特征聚合和金字塔池的结合, 其结构如下图所示。
在这里插入图片描述

使用不同的池化核和增加stride步数来生成输入图像分辨率为1/128、1/256、1/512的特征映射。输入1/64分辨率的特征图和由全球平均池生成的图像级别信息也被利用。
如上图所示,从左到右六条分支分辨率分别为1/64、 1/128、1/256、1/512、1 (全局池化)、1/64, 可用公式表达如下图。

在这里插入图片描述
C表示卷积,U表示上采样, Pi,j表示池化,i表示pooling_size, j表示stride。

在DAPPM中,将较大的池核提取的上下文与更深层次的信息流进行整合,通过对不同深度的池核与不同大小的池核进行整合形成多尺度特性。DAPPM能够提供比PPM(PSPNet)更丰富的上下文, 虽然DAPPM包含了更多的卷积层和更复杂的融合,但它几乎不影响推理速度,它本身的输入分辨率只有输入图像分辨率的1/64。以1024×1024 input为例,DAPPM的最大特征分辨率为16×16。

class DAPPM(nn.Module):
    def __init__(self, inplanes, branch_planes, outplanes):
        super(DAPPM, self).__init__()
        self.scale1 = nn.Sequential(nn.AvgPool2d(kernel_size=5, stride=2, padding=2),
                                    BatchNorm2d(inplanes, momentum=bn_mom),
                                    nn.ReLU(inplace=True
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源介绍】 基于深度学习场景语义分割python源码+项目说明.zip 本文创建了SUPnetw网络实现利用有限开放基准测试与无语义标签实际城市竣工测绘三维场景数据共同进行训练模型,提高城市三维场景点云语义分割的性能 SUPnet网络结构如下: SUPnet由特征提取器和分类器以及数据对齐模块共同构建MCD。 具体步骤如下: 1)源场景数据流经特征提取器,然后流经两个分类器,利用 cross-entropy_loss 训练特 征提取器以及两个分类器在源场景中的语义分割性能,同时复制一份源场景数据用以进行步 骤 2)PW-ATM 训练。\ 2)目标数据流经 PW-ATM 模块,利用 EMD_loss 来训练 PW-ATM 模块的转换能 力。\ 3)目标数据经过 PW-ATM 转换后,流入提取器和两个分类器,利用 ADV_loss 来最 大化分类器差异。在这一步中,冻结特征提取模块和数据对齐模块,仅更新两个分类器的参 数。\ 4)目标数据经过 PW-ATM 转换后,流入提取器和两个分类器,利用 ADV_loss 来最 小化分类器差异。在这一步中,冻结两个分类器,更新特征提取器和数据对齐模块的参数。 本项目的data下面应包含四个文件: .\Source_Scene_Point_Clouds\ .\Target_Scene_Point_Clouds\ .\Validationset\ .\testset python train_SUPnet.py --model SUPnet --batch_size 12 --log_dir SUPnet --epoch 32 python test_SUPnet.py --log_dir SUPnet --visual SUPnet对实际城市竣工数据语义分割结果如下: ![结果.png](%E7%BB%93%E6%9E%9C.png) 其中,a列和c列为PointNet++语义分割结果,b列和d列为SUPnet语义分割结果。 表格 网络测试集语义分割准确率 PointNet++ acc(%) SUPNet acc (%) 实验区A 34.5 89.3 实验区B 37.3 85.1 实验区D 12.8 88.7 实验区F 32.7 90.8 平均 29.3 88.5 【说明】 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载交流,互相学习,共同进步!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值