432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

abb87f7275234475aac322d66e672a8b.jpeg

作者丨ChaucerG

来源丨集智书童

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第1张图片

多尺度学习框架被认为是促进语义分割的一类模型。然而,这个问题并不想象的那么轻描淡写,特别是对于现实应用的部署,这通常需要高效率的推理延迟。

在本文中,作者从轻量级语义分割的角度彻底分析了卷积块的设计(卷积类型和卷积中的通道数)以及跨多个尺度的交互方式。通过如此深入的比较,作者总结出3个原则,并相应地设计了轻量级和渐进式可扩展网络(LPSNet),它以贪婪的方式扩展了网络的复杂性。从技术上讲,LPSNet 首先利用这些原理来构建一个微型网络。然后,LPSNet 通过一次扩展单个维度(卷积块的数量、通道的数量或输入分辨率)逐步将微型网络扩展到更大的网络,以满足最佳速度/准确性权衡。

在3个数据集上进行的大量实验一致地证明了 LPSNet 优于几种有效的语义分割方法。更值得注意的是,LPSNetCityscapes 测试集上实现了 73.4% mIoU,在 NVIDIA GTX 1080Ti 上的速度为 413.5FPS,相对于STDC性能提升 1.5%。

1、简介

语义分割是将语义标签分配给图像或视频帧的每个像素。随着深度神经网络的发展,最先进的网络已经成功地突破了语义分割的极限,并带来了显著的性能提升。例如,DeepLabV3+ 和 Hierarchical Multi-Scale Attention 在 Cityscapes 测试集上达到 82.1% 和 85.4% mIoU,在该数据集上几乎饱和。这些成功背后的秘诀源于多尺度学习。

在文献中,最近的进展涉及利用多尺度学习沿3个不同维度进行语义分割:U-shapePyramid PoolingMulti-Path Framework

  • U-shape结构分层融合特征,逐步提高空间分辨率,自然产生多尺度特征。

  • Pyramid Pooling方法通过在多个尺度上执行空间或空洞空间金字塔池化来深入研究多尺度信息。

  • Multi-Path Framework将输入图像的大小调整为多个分辨率或尺度,并将每个尺度输入到深度网络的单独路径中。通过这样做,Multi-Path设计将输入分辨率从高到低并行放置,并明确维护高分辨率信息,而不是从低尺度特征图恢复。因此,学习到的特征可能更有能力对每个像素进行分类和定位。

本文宜久采用优雅的Multi-Path Framework方法,并进一步发展这种类型的架构,并在语义分割方面具有良好的准确性/速度折衷。本文的设计理念来自2个方面:

  1. 用于语义分割的轻量化计算单元

  2. 在平衡准确性和推理延迟的同时逐步扩大网络

作者建议通过探索卷积块的基本单元来探索第1个问题,包括卷积的类型和卷积中的通道数,基于有效语义分割中的几个唯一性(例如,大特征图、细通道宽度)。

此外,作者进一步详细阐述了在精度/速度权衡方面跨多条路径的不同交互方式。基于这些轻量级的实践,作者构建了一个微小的模型,然后沿着多个可能的维度逐步扩展微小模型,并在每一步中选择一个实现最佳权衡的单一维度,以缓解精度/速度平衡问题。

为了实现这个想法,作者提出了用于高效语义分割的轻量级和渐进式可扩展网络 (LPSNet)。具体来说,作者基于低延迟机制设计了新的Multi-Path机制并应用到LPSNet。每条路径都将调整大小的图像作为单个网络的输入,该网络由堆叠的卷积块组成。跨路径的网络共享相同的结构,但具有独立的可学习权重。所有路径的输出被聚合以生成分数图,通过双线性上采样对像素级预测进行上采样。

为了实现轻量级和高效的架构,作者还研究了卷积块的基本单元,并根据经验建议纯粹使用具有 -通道宽度的 3×3 卷积。此外,利用一种简单而有效的双线性插值方法来促进路径之间的相互交换和交互。有了这些实用的策略,LPSNet首先构建了一个微型网络,然后以渐进的方式将微型网络扩展到一个更大的网络。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第2张图片

从技术上讲,LPSNet通过一次扩展卷积块数、通道数或输入分辨率的单个维度来执行网络复杂性的增长,如图 1 所示。在案例中,LPSNet确保在扩展过程中准确度和推理速度之间取得了很好的平衡,并显示出优于其他手动/自动设计的模型,如图 2 所示。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第3张图片

总之,本文做出了以下贡献:

  1. 卷积块的轻量化设计和Multi-Path Framework中的路径交互方式被证明能够作为高效语义分割的实用原则;

  2. 精心设计的 LPSNet 被证明能够逐步扩展网络复杂性,同时实现正确的准确性-效率折衷;

  3. LPSNet 已经通过对3个数据集的广泛实验得到了适当的验证,在实验中,在 NVIDIA GPU 和嵌入式设备上都观察到了卓越的性能。

2、LPSNet

具体来说,首先介绍 LPSNet 中采用Multi-Path Framework的宏架构。然后,提出了3个设计原则来从轻量级的角度升级这个架构,包括卷积的类型卷积中的通道数以及多路径的交互方式。基于这些实用指南,通过一次扩展单个维度以寻求最佳速度/准确性权衡,以渐进方式设计了一系列可扩展 LPSNet

2.1、宏观架构

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第4张图片

图 3 描绘了 LPSNet 中宏架构的概述。宏架构基本上是在Multi-Path Framework设计中构建的,它将输入图像的大小调整为多个尺度,并将每个尺度馈送到一个单独的路径中。

形式上,给定分辨率为 的输入图像,具有 个路径的 LPSNet(例如,图 3 中的 )将图像大小调整为 ,作为第 个路径的输入。这里 表示缩放比例。每条路径都实现为5个阶段的卷积块堆栈,第 个阶段包含 个块。通道数(即通道宽度)在每个阶段内保持不变。Stage 1∼4 中的第1个卷积块将空间维度减少了2倍。通过这样做,最后阶段的输出特征图的分辨率为 。

此外,将交互模块放置在阶段 3∼5 的末尾,旨在促进路径之间的相互交互。所有路径的输出被聚合并输入到分割头中,以生成具有 num 类通道的分数图。

最后,对分数图执行双线性上采样,产生分辨率为 的输出,与输入分辨率完全匹配。请注意,路径的缩放比例 ,卷积块的重复数 ,并且可以灵活设置该宏架构中的通道数,以使网络结构适合目标推理时间,并调整LPSNet的可扩展性。

2.2、卷积块

卷积块是卷积神经网络中的基本计算单元。卷积块的堆栈自然会在整个网络中消耗很大比例的推理时间。因此,轻量化卷积块对于高效的网络至关重要。在本节中从2个维度深入研究 LPSNet 中基本计算块的设计:

  1. 卷积块的类型

  2. 通道数

1、卷积块的类型

为了追求更少的计算复杂度,已经提出了一系列创新来改造卷积块。在这些工作中,浮点运算(FLOPs)的数量经常被用作计算复杂度的度量,它指导着用于图像识别的轻量级网络的设计。然而,FLOPs 忽略了显着影响网络推理延迟的内存访问成本 (MAC) 和并行度,从而导致 FLOPs 和实际延迟之间的差异。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第5张图片

更重要的是,由于高效语义分割的几个独特性(例如,更大的特征图和细通道宽度),轻量级设计从图像识别到语义分割的扩展并非易事。为此,在图 4 中对标准卷积和广泛采用的深度可分离卷积 (SepConv) 进行了比较。这里将输入特征图的Shape设置为 32 × 128 × 128,这是最常见的形状用于语义分割的轻量级网络。

通过在具有 1070Ti GPU 的 PC (i7-8700K/16GB RAM) 上执行块来评估延迟。FLOPs-efficiency 表示每单位运行时间处理的浮点运算的数量,用作效率度量。如图 4 所示,标准卷积的 FLOPs 效率(3987 MFLOPs/ms)是 SepConv(357 MFLOPs/ms)的 10 倍。因此,本文选择用标准卷积作为 LPSNet 中的构建块。

2、通道数

通道宽度是影响卷积 FLOPs 效率的另一个重要因素。从理论上讲,计算复杂度需要随着通道宽度的增加而二次级数。然而,由于现代库/设备中高度优化的软件(例如,BLAS、cuDNN)和硬件(例如,CUDA Core、Tensor Core),实际上推理时间和通道宽度之间的关系变得模糊。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第6张图片

为了分析这种关系,在图 5 中比较了具有不同通道宽度的 3×3 卷积的 FLOP 和延迟。正如预期的那样,当通道宽度从 1 增加到 17 时,FLOP 呈二次增长(参见图 5(a) 中的蓝色曲线);同时,延迟仅线性增长并在大约 8 和 16 通道宽度处达到平台期(参见图 5(a) 中的红色曲线)。这种具有高 FLOPs 效率的通道宽度设置被视为卷积的“sweet spots”。类似地,在图 5(b) 中,在 32 和 64 通道宽度处获得了高 FLOPs 效率。这些优点主要归功于具有 -divisible 通道宽度的卷积的可并行化实现。因此,将 LPSNet 中卷积的通道宽度设为-divisible,其中 n 尽可能大。

2.3、 Multi-Path交互

为了在多个尺度上优雅地传播互补信息,作者设计了Multi-Path交互模块,鼓励 LPSNet 中路径之间的相互交换和交互。具体来说:

将交互模块 I 定义为

402 Payment Required

,其中 和 分别表示输入对和输出对。输入对由高分辨率特征图 和低分辨率特征图 组成,其中 且 。每条路径的分辨率在交互过程中保持不变。 432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第7张图片

在这里研究了6种交互模块的变体,它们可以分为3类(图 6)。对于第1类(Direct-A/B),转换后的低分辨率特征通过元素求和或通道连接直接集成到高分辨率特征中。

对于第2类不是简单地组合来自两条路径的特征,而是采用注意力机制来促进多路径交互,即 Attention-A/B

具体来说,在 Attention-A 中,首先从 计算出注意力图 ,然后在特征聚合之前将其应用于变换后的 和 :

16a93b4ad8e457b450ac2c518a1aa57b.png

其中 F 和 U 分别表示卷积变换和空间上采样。Attention-B 通过将每条路径与来自另一条路径的注意力相结合,进一步以双向方式升级了简单的注意力。

在实践中,由于大量的转换和注意力,上述4种类型的交互模块在计算上是昂贵的。因此,技术通常将它们放置在多路径网络的末端,而使早期阶段的路径交互未被利用。

为了缓解这个问题,设计了2个有效的交互模块来实现早期阶段的交互,即 Bilateral-A/BBilateral-A 转换低分辨率特征并将其注入高分辨率特征,反之亦然。这种对称设计平等地对待每条网络路径,简单的转换以有效的方式在早期阶段触发交互。Bilateral-B 进一步消除了 Bilateral-A 中的卷积变换,通过仅在输入特征图上应用空间调整大小和元素求和来实现最简单的交互:

b63ba1c70945a49c18efe60ce043d415.png

其中 U 和 D 表示特征图的上采样和下采样。所有6种交互变体之间的比较将在实验中进行详细说明,凭经验验证 Bilateral-B 实现了最佳速度/准确性权衡。因此,采用 Bilateral-B 作为 LPSNet 中的默认交互模块。

2.4、可伸缩架构

给定选定的卷积块和交互模块,特定的 LPSNet 架构可以定义为 N = {B, C, R},其中 B, C, R 是第 3.1 节中描述的可调参数。因此,网络复杂度由这些参数从3个维度决定。深度维度(B)是决定网络捕获高级语义信息能力的块数。宽度维度(C),即每个阶段的通道数,会影响每个卷积的学习能力。分辨率维度 (R) 表示每条路径的空间粒度。在设计 LPSNet 架构时,为了平衡这3个维度,首先构建一个微型网络,然后以渐进的方式一次扩展一个维度。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第8张图片

从技术上讲,将小网络 的参数设置为 , , 。请注意,不包括 r = 0 的路径,因此微型网络仅包含单个路径。通过这种方式,微型网络非常高效,在单个 GPU 上只有 0.38 毫秒的延迟,通过多步扩展进一步将其扩展到更重的网络。展开操作的所有候选 Δ = ΔB ∪ ΔC ∪ ΔR 定义在表 1 中。当 N = {B, C, R} 扩展 δ 时,δ 将沿其对应维度添加到 N 并产生扩展网络(例如,当 δ ∈ ∆B 时,{B + δ, C, R})。对于每一步,通过比较每个操作 δ ∈ Δ 的速度和准确性之间的权衡来贪婪地确定执行的扩展操作。具体来说,对于第 i 步,扩展后的目标延迟首先由不同扩展操作之间的最大延迟确定:

b9216126f9248682425ee8bc1f8f4c19.png

其中 表示最后一步的架构,Lat(·) 测量网络的延迟。然后,每个操作的步长计算如下:

2015cf8ca3d74af24ead8d52ba48b668.png

目标是在扩展不同的操作后更好地将产生的延迟与 LT 对齐。然而,由于扩展只产生离散步骤的网络,扩展网络的延迟可能会超过 LT。如果操作的选择仅取决于扩展网络的性能,则可能会偏向于导致较大延迟增加的操作。为了解决这个问题,最终通过最大化每一步扩展后的性能增长和延迟增长的比率来选择最优扩展操作δ∗:

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第9张图片

其中 Perf(·) 评估语义分割的性能。因此,从微小的网络 开始迭代地执行网络扩展 I 次,最终推导出一个具有不同复杂度的 LPSNet 族。算法 1 总结了 LPSNet 的扩展算法。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第10张图片

3、实验

3.1、Lightweight Designs

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第11张图片 432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第12张图片

3.2、SOTA对比

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第13张图片

3.3、速度对比

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第14张图片

3.4、可视化对比

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第15张图片

4、参考

[1].Lightweight and Progressively-Scalable Networks for Semantic Segmentation

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

计算机视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第16张图片

▲长按加微信群或投稿

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第17张图片

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型_第18张图片

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~ 

你可能感兴趣的:(算法,大数据,编程语言,python,计算机视觉)