论文地址:http://arxiv.org/abs/2101.06085
摘要
语义分割是自动驾驶汽车了解周围场景的一项关键技术。 对于实际的自动驾驶车辆,不希望花费大量的推理时间来获得高精度的分割结果。 使用轻量级架构(编码器-解码器或两条路径)或对低分辨率图像进行推理,最近的方法实现了非常快速的场景解析,甚至在单个1080Ti GPU上以超过100 FPS的速度运行。 但是,这些实时方法和基于膨胀主干的模型之间在性能上仍存在明显差距。 为了解决这个问题,我们提出了新颖的深度双分辨率网络(DDRNet),用于道路场景的实时语义分割。 此外,我们设计了一个新的上下文信息提取器,称为深度聚合金字塔池模块(DAPPM),以扩大有效的感受野并融合多尺度上下文。 我们的方法在Cityscapes和CamVid数据集上实现了精度和速度之间的最新折衷。 特别是,在单个2080Ti GPU上,DDRNet-23-slim在109 FPS的Cityscapes测试装置上可产生77.4%的mIoU,在230 FPS的情况下在CamVid测试装置上可产生74.4%的mIoU。 DDRNet-39在没有利用注意力机制,未对更大的语义分段数据集进行预训练或推理加速的情况下,在Cityscapes上以23 FPS的速度达到了80.4%的测试mIoU。 通过广泛使用的测试扩充,我们的方法仍然优于大多数最新模型,所需的计算量更少。 代码和训练有素的模型将公开提供。
介绍
前面的Deeplab系列和PSPNet等网络,虽然实现了不错的精度,但是速度慢,甚至不到一帧。HRNet虽然高层分辨率大,但是深层分支多,效率也不高。对于实时性,多采用轻量encoder-decoder结构。
本篇文章受HRNet启发,我们的DDRNet从一个主干开始,然后被分成两个并行的不同分辨率的深分支。 一个深层分支生成相对高分辨率的特征图,而另一个深层分支则通过多次下采样操作提取丰富的信息。 在两个分支之间桥接了多个双边连接,以实现有效的信息融合。 此外,我们提出了一种新颖的名为DAPPM的模块,该模块大大增加了接收域,并且比普通PPM更充分地提取了上下文信息。 在对语义分割数据集进行训练之前,首先按照通用范例在ImageNet上对双分辨率网络进行训练。
根据两个流行基准的大量实验结果,DDRNet在分割精度和推理速度之间达到了极好的平衡,并且在训练过程中所占用的GPU内存少于HRNet。 与其他没有注意机制和任何额外铃声的实时算法相比,我们的方法在Cityscapes和CamVid上均实现了最新的mIoU。 借助标准的测试增强技术,DDRNet可以与最新模型媲美,但所需的计算资源却少得多。
本文方法
-
网络的基本结构比较:
-
文章首先对HRNet进行了分析,然后进行了简化:
HRNet是一种通用体系结构,可在整个网络中保持高分辨率表示。 为了增强模型容量,它是从高分辨率子网开始的,第一步是将高分辨率子网和低到高分辨率子网逐个添加以形成更多的阶段。 因此,对于HRNet,实际上有几个并行的多分辨率分支,并且每个分支都是互连的。 这种复杂的架构使HRNet能够更好地提取不同分辨率下的特征。 从[14]中的结果来看,HRNet在对象检测方面的表现优于基于FPN的ResNet,这说明了其本身具有多尺度表示的性质。 与DeepLabv3plus相比,HRNet还以更低的计算复杂度和更少的推理时间实现了更好的性能。 从先前的作品中学到的东西,语义分割需要高分辨率的特征图才能胜任密集的预测,并需要大的接收场来解析场景。 相比之下,多尺度表示能力对于对象检测任务更为重要,因为假定神经网络可以在一幅图像中检测到尽可能多的多尺度对象。 从这一点出发,仅保留两个分支就可以简化HRNet的体系结构。 一个分支负责维护高分辨率特征图,而另一个分支则通过重复进行下采样来生成足够大的接收场 。我们证明,这种紧凑的体系结构可以极大地提高推理速度并减少内存消耗,这是通过大量实验对HRNet造成的可怕影响。 -
然后是骨干网络设计:
为了方便起见,我们可以在广泛使用的分类主干(例如ResNets)上添加一个额外的高分辨率分支。 为了在分辨率和推理速度之间进行权衡,我们让高分辨率分支创建分辨率为输入图像分辨率的1/8的特征图。 因此,额外的分支将在conv3阶段的末尾插入。 请注意,额外分支不包含任何下采样操作,并且与原始分支(低分辨率分支)具有一一对应关系,以形成较深的高分辨率表示形式。 继HRNet之后,在两个路径之间添加了类似的桥梁,以执行双边特征融合。 表I和表II中显示了三个具有不同参数和GFLOP的双分辨率网络的特定体系结构,其中DDRNet-23源自ResNet-18,而DDRNet-39源自ResNet-34。
另外,我们修改了原始ResNet的输入,用两个连续的3×3卷积层替换了一个7×7卷积层。为了增强表示能力,在每个分支的末尾添加了一个瓶颈块。 双边融合包括将高分辨率分支融合到低分辨率分支(高到低融合)和将低分辨率融合到高分辨率分支(低到高融合)。 对于高到低融合,在逐点求和之前,通过步长为2的3×3卷积序列对高分辨率特征图进行下采样。 对于低至高分辨率,低分辨率特征图首先通过1×1卷积进行压缩,然后通过双线性插值进行上采样。 -
最后两分支的特征融合增强模块:
不是简单的1乘1卷积和3乘3卷积线性加和,采用了一种层级残差融合方式。
此外,对于网络的优化,还加入了辅助损失,如下图,在网络中间添加输出头进行损失计算。在测试阶段丢弃不用。 -
网络总览:
-
结果