超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!

简介: 超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!

cf40989c4e3ff1aaaa84cac1133a9f21.png

近年来,压缩高精度卷积神经网络(CNNs)在实时目标检测方面取得了显著进展。为了加快检测速度,轻量级检测器采用单路径主干,卷积层数较少。然而,在连续的池化和下采样操作中,单路径架构总是带来粗糙和不准确的特征图,这很不利于定位目标。另一方面,由于网络容量有限,目前的轻量级网络在表示大规模数据时往往表现得较差。


针对这些问题,本文提出了一种双路径网络 DPNet,该网络具有轻量级的实时目标检测注意力方案。双路径体系结构能够并行提取High-Level语义特征和Low-Level目标细节。虽然DPNet的形状与单路径检测器几乎相同,但计算成本和模型尺寸没有显著增加。为了增强表示能力,设计了一个轻量级的自相关模块(LSCM)来捕获全局交互,只有很少的计算开销和网络参数。在NeckLSCM被扩展为轻量级的交叉相关模块(LCCM),捕获相邻尺度特征之间的相互依赖性。


MS COCOPascal VOC 2007数据集进行了详尽的实验。实验结果表明DPNet在检测精度和实现效率之间实现了最先进的平衡。具体而言,DPNetMS COCO测试开发平台上实现了30.5% AP,在Pascal VOC 2007测试集上实现了81.5% mAP,模型尺寸接近2.5M, GFLOPs 1.04,对两个数据集的320 × 320输入图像实现了164 FPS和196 FPS。

1、简介

目标检测是计算机视觉领域的一项基本且具有挑战性的任务。它旨在检测覆盖输入图像中感兴趣的目标的最小边界框,并同步分配相关的语义标签。通常,基于卷积神经网络(CNN)的最新方法可以大致分为两阶段和一个阶段检测器。两阶段检测往往是先使用区域提案网络生产候选框,随后将在下一阶段进行完善。因此,由于它们的多阶段性质,这些检测器性能始终不高。


相反,一阶段检测器直接预测目标类别并在卷积特征图上回归边界框。由于整个管道被简化,因此,一阶段检测器总是比两阶段检测器具有更快地推理速度。尽管取得了显著的进展,但绝大多数基于CNN的检测器涉及数百次甚至数千个卷积层和特征通道,其中模型大小和推理效率对于需要在线估算和实时预测的现实世界应用程序是不可接受的,例如自动驾驶,机器人和虚拟现实。

d7aba5ab51e1e766dcce3f45dfa3ae08.png

为了适应现实世界的情况,已经提出了大量的轻型网络以进行实时目标检测。这些轻量级网络源自用于图像分类的使用,更喜欢在其 Backbone 中使用轻量级卷积直接继承单路径体系结构。例如,Mobilenet-SSDMobilenetSSD Head 组合在一起。 ThunerNet 通过用 5×5 深度卷积代替 3×3 深度卷积,并采用 ShuffleNetV2 作为 BackbonePeleeNet 使用具有 Dense 结构的轻量化 Backbone,减少了 SSD Head 的输出尺度以节省计算成本。 Tiny-DSODBackbone 和特征金字塔网络(FPN)中引入深度卷积。Tiny-Yolo 系列减少了卷积层的数量或去除 Neck 的多尺度输出。尽管这些高级和高效的网络已取得了令人印象深刻的检测结果,但它们依然有以下局限性:

  • 采用积极的下采样策略(例如, poolingstride convolution),单路径体系结构在 Backbone 设计中占主导地位,以实现实时目标检测。由于细节从浅层到深卷积层逐步丢弃,因此产生的高级特征对准确定位目标无济于事。图1给出了两个视觉示例。第一行显示 ShuffleNetV2 更喜欢从输入图像的周围区域提取特征。尽管轻量化的检测器遵循采用 FPN 来缓解此问题,但只需通过元素相加或拼接来整合从浅层到深层的此类不准确的特征可能对检测物体有害。
  • 由于网络容量有限,最近的轻量化检测器可能具有较弱的视觉数据表示能力。例如,在图1的第2行中,高通滤波器响应有时会分布在混乱的背景(例如树木和海洋)上,而包含感兴趣目标的区域则较少激活。根本的原因主要在于,由于受欢迎的领域有限,轻量化的卷积在编码全局依赖性方面非常有限。一些网络更喜欢利用大卷积核(例如31×31)或自注意力,但是它们始终涉及巨大的计算成本和不适合实时目标检测。

7518a272cdacec518278b30533d55ffb.png

为了解决这些缺点,本文设计了一个名为 DPNet 的双路径网络,并具有轻量化的注意力设计用于实时目标检测。如图2所示,DPNet 由3个组成部分组成:BackboneNeck检测 Head。为了纠正丢失目标细节的问题,与以前的轻量化检测网络始终采用单路结构,DPNet 采用了平行路径架构,从而得到双分辨率 Backbone


更具体地说,低分辨率路径(LRP)的分辨率像往常一样逐渐减少,其中 High-Level 语义信息被编码。相反,高分辨率路径(HRP)的分辨率保持不变,并在其中提取了 Low-Level 的空间细节。这两条路径对于轻量化目标检测都很重要。考虑到两个子网络的互补性,构建了双向融合模块(Bi-FM),以增强两条路径之间的通信,从而促进可变分辨率特征之间的信息流。尽管 DPNetBackbone 相对于单路径结构几乎具有重复的形状,但计算复杂性和网络大小并未显著增加。


另一方面,为了提高整个 DPNet 的表示能力,开发了带有轻量化自相关模块(LSCM)的 ShuffleNetV2 UNit,从而产生了基于注意力的 shuffle unitASU)。类似于 CBAMLSCM 也分别在空间和通道的注意力图中产生。但是,LSCM 采用了一种模仿自注意力的结构,而不是采用全局合并来代表元素的依赖性。


此外,LSCM 不用探索涉及大量计算的 pixel-to-pixel/channel-to-channel 相关性,而是研究了低维嵌入中的 pixel-to-region/channel-to-group-channel 依赖性,从而节省了大量的计算成本,同时仍保持强大的表示能力。在图2中,为了充分利用 Neck 不同分辨率的特征,LSCM 进一步扩展到轻量化交互相关模块(LCCM)。 LCCM 以双向方式工作:自上而下(LCCM-TD)和自下而上(LCCM-BU)。 LCCM-TD 引入了 High-Level 语义以指导 Low-Level 特征。相反,LCCM-BU 利用 Low-Level 细节来完善 High-Level 信息。


本文的主要贡献是 3 个方面:

  • 与使用单路径的主流轻型检测器相反,DPNet 采用了双路径体系结构,该架构可以同步提取 High-Level 语义并保持 Low-Level 细节。此外,两条路径相互补充以进一步提高性能。
  • 设计了一个基于注意力的模块 LSCM,该模块同时具有推理效率和表示能力。 LSCM 在计算上很便宜,因为其计算复杂性与输入特征分辨率呈线性关系。即便如此,它仍然通过研究全局空间和通道相互作用来实现强大的表示能力。作者还将 LSCM 扩展到 NeckLCCM,在与不同分辨率不同的相邻尺度特征之间很好地探索了相关的依赖关系。

2、本文方法

DPNet 的整体结构如图2所示。具体来说,DPNet 由 3 个组成部分:BackboneNeck和检测Head组成。

7518a272cdacec518278b30533d55ffb.png

2.1、Backbone

表I中给出了 DPNetBackbone 的详细结构。更具体地,DPNet采用双分辨率 Backbone,分别使用并行路径体系结构:LRP和 HRP。这两条路径主要由一系列 ASUs 构建。与传统的单路径检测器相似,LRP 采用了 Stem + 多个 ASUS Stride=2,逐渐生成卷积特征图,其分辨率为1/2、1/4、1/8、1/16和1/32。注意 Stem 包括 Stride 为2的 3×3 卷积和最大池化,直接收缩输入分辨率的4倍。

另一方面,为了获得高质量的目标详细信息,HRP 保持了相对较高的 LRP 分辨率,维持未改变的特征分辨率,即输入图像大小的1/8。在2条路径中,使用2个 Bi-FM 来增强跨分辨率的特征集成和交互。

最后,如图2所示,组合特征,表示为{C1,C2,C3},其形状为{40×40×128,20×20×20×256,10×10×512},用作多个输入到 Neck 部分,这有助于信息的交互。

1、ASU

a3f883a842f952c9cd3e1b30466fbd6e.png

如图3(a)所示,ASU 采用了 split-transform-merge 结构,该结构利用残差连接和轻量化特征提取。在每个ASU的开头,输入特征首先分为2个低维特征,即 transformidentity 分支,其中每个分支都有输入的一半通道。transform 后的分支充当残差特征,而 identity 分支则用于促进模型训练。transform 的分支不使用3×3深度卷积,而是依次采用较大的kernel-size(例如5×5)和提出的 LSCM,这两者都用于获得更强大的特征。

此后,使用拼接合并了2个分支的输出,以使通道的数量相对于输入保持相同。最后,将特征通道Shuflle为启用两个分支之间的信息交互。 Shuflle 后,下一个ASU开始。 图3(b)还展示了ASUstride 版本,用于减少特征分辨率,其中5×5步长深度卷积分别用于 transformidentity 分支

2、bi-fm

92d2522917a49618cb324b45e82f57a8.png

Bi-FM 充当桥梁在 Backbone 中进行 HRPLRP 之间的通信。 Bi-FM 的详细结构如图3(c)所示。令1675255002331.png,是Bi-fm的输入,1675255046405.png分别为BI-FM的输出,其中H×W代表输入分辨率,C表示通道号。更具体地说,1675255065676.png首先通过1×1卷积,然后以相等的尺寸进行更新,以遵循与1675255065676.png融合。另一方面,为了产生1675255094406.png1675255065676.png被馈入5×5 stride 卷积,然后以相等的尺寸降采样,以与1675255065676.png集成下一个特征。

2.2、Neck

Neck(也称为FPN)是最先进的检测器中的基本组件,可汇总多尺度特征。先前的方法利用了简单的融合策略,该策略采用双线性插值和元素添加,通常忽略了具有不同分辨率的特征之间的相互依赖性。为此,LCCMDPNetNeck 部分采用,用于汇总不同卷积层的跨分辨率特征。


Neck 的详细体系结构如图2所示。注意 LCCM 以双向方式工作:自上而下和自下而上的方向,分别表示为 LCCM-TDLCCM-BULCCM-TD 旨在提取 High-Level 语义来进行类识别,而LCCM-BU希望加强目标定位的 Low-Level 细节。


更具体地说,接收由 Backbone 作为输入产生的{C1,C2,C3},Neck 以1×1的卷积开始,产生具有相同通道数和各种分辨率的特征。这些中间特征(表示为{M1,M2,M3})首先通过2个 LCCM-TDS 融合在自上而下的路径中,然后通过2个 LCCM-BUS 融合在自下而上的路径。最后,所产生的输出表示为{F1,F2,F3},其中相邻刻度特征图之间相关的相互作用被很好地集成到轻量化检测head。

2.3、Head

ca7d0e65df3740cd8cbb6be4351a9ddf.jpg

检测head会学习将特征映射到最终估计的预测。 一些检测网络采用轻量化Backbone,但涉及SSD head太重而无法做出预测。 替代方法设计了轻量化检测头,以降低模型尺寸。 同样,DPNet 还采用了轻量化的检测头来加速推理速度。 如图3(d)所示,DPNet不使用3×3深度卷积,而是利用具有较大核大小(例如5×5)的紧凑型卷积来扩大感受野,从而增加了非常有限的模型尺寸。 检测头的详细体系结构如图2所示。 从 Neck 部分产生的输入特征{F1,F2,F3},经历了2个连续的交互。 然后,使用1×1卷积来产生最终输出,从相关的 GT 中获得其监督。

3、LSCM and LCCM

4ed702e8829e5d4d7a3e4f7b7c011c38.png

3.1、LSCM

上下文表述的任务是收获周围的信息,这始终是通过全局池化来完成的。尽管产生了代表整个图像的 High-Level 特征,但此类网络的表示形式无法提供 element-wise 交互。许多替代方法都用于使用密集的注意力图来捕获全局上下文,其中每个像素的重要性都由所有其他像素编码。但是,这些方法需要大量计算。


作为ASU的核心单元,LSCM充分利用了计算效率和表示能力。直观地说,有两种方法可以节省计算成本:减少元素的数量和减少特征维度。因此,介绍LSCM在这两个方面的工作原理。


LSCM 的详细结构如图4(a)所示。令1675255117088.png  为输入特征,其中W,H和C分别代表输入 F 的宽度,高度和通道数。为了减少图像元素,首先将池化操作应用于输入特征 F,产生紧凑的表示1675255163024.png,其中R中的每个元素代表一个包括1675255182881.png像素的图像区域然后,将两个特征 F 和 R flattened 为2个 2D 序列1675255232746.png,促进了后续空间注意力和通道注意力的计算。


在空间注意力中,首先学习2个线性投影1675255203041.png,以将输入序列x和x'投射到2个低维嵌入1675255255436.png其中r是控制特征压缩比的非负尺度因子:

8a298b409923dbfec0df237afba5e425.png

之后,使用1675255286493.png之间的矩阵乘积计算空间像素到区域相关性,该矩阵乘积顺序依次经过线性投影1675255336621.png,层归一化ln(·)和sigmoid函数σ(·),产生最终的空间注意力图1675255351494.png

c1ff5557402403ef06ca5b718bce61ee.png

在通道注意中,为了减少特征维度,首先学会了线性投影1675255374134.png,以将输入序列x'映射到低维嵌入1675255384102.png中,其中1675255395998.png中的每个通道代表一组 X' 中的 r 通道。 另一方面,另一个线性投影 1675255412887.png还将输入序列x'映射到1675255434377.png

d5cd5bff2f30676a47c07be9b071fb22.png

接下来,类似于空间注意力,使用1675255491833.png之间的矩阵乘积计算通道到组通道相关性,该矩阵乘积依次经过线性投影1675255451376.png,层归一化LN(·)和Sigmoid 函数σ(·),产生最终通道注意力图1675255477537.png

dc6057f313ae9c756821e6ae4c03026d.png

最后,利用学习到的空间注意力图1675255506873.png和通道注意力图1675255520634.png分别对输入序列X进行加权,然后使用元素相加进行融合,从而产生了融合特征特征1675255534362.png

58bc18b80eac4db344830823bed258a6.png

其中1675255551331.png分别是元素的相加和相乘。请注意,两个注意力映射1675255570915.png分别以列重新加权和行重新加权的方式与输入序列X相乘。最终,产生的序列1675255585539.png被reshape为1675255601524.png,与输入特征 F 具有相等的维度。

30272182a09652d5ba4fa4e28d7e53f0.png

作者还分析了所提出的 LSCM 的计算复杂度,并将其与最近的自注意力网络进行了比较,因为它们在研究全局依赖性方面都具有强大的表示能力。表2报告了将包括空间注意力和通道注意力放在一起的比较结果。


为了清晰起见只考虑了空间注意力。以前的方法和 LSCM 都涉及两个计算步骤:计算元素上的相似性和重新加权输入特征。在自注意力中,计算密集的空间注意力和重写特征都需要1675255620476.png操作,从而导致输入分辨率的二次复杂度。相反,LSCM只需要与输入分辨率呈线性关系的1675255666334.png操作,因为使用全局池化已经大大减少了特征元素。此外,由于生成的注意力图非常简单,重新加权过程只需要1675255648392.png操作,而不是自注意力中的1675255620476.png

3.2、LCCM

这里作者将 LSCM 扩展到多个输入版本(称为LCCM),在Neck中用于结合多尺度特征。LCCM 以双向方式工作:自上而下和自下而上,分别表示为 LCCM-TDLCCM-BU。由于它们以类似的方式工作,因此只详细介绍LCCM-TD,然后指出其与 LCCM-BU 的主要差异。


LCCM-TD 的详细体系结构如图4(b)所示。通常,LCCM-TDLSCM 共享相似的结构,但两个具有不同分辨率的输入。令1675255695046.png分别为高分辨率和低分辨率输入特征。此处,1675255714743.png,因为1675255760736.png来自相邻的scale卷积层。


为了探索跨层相互作用并节省计算成本,必须使用全局池化在同一时间缩小1675255760736.png的分辨率,然后将2个2D序列1675255795857.png。注意1675255812867.png。同时,输入特征也被flattened为2D序列1675255843954.png,随后可以按照空间和通道注意力来参与计算。


在空间注意力中,输入特征1675255878028.png经过两个线性投影1675255892995.png,分别得到两个低维嵌入1675255912580.png,其中,r是控制特征压缩比的非负比例因子:

15bb4caf1a05ba54eb26c77ae922fbff.png

之后,使用1675255930471.png之间的矩阵乘积结果计算空间跨层相互作用,这些矩阵乘积被依次馈送到线性投影1675255945045.pngSigmoid,产生最终空间注意力图1675255962703.png

294f4ddb2fd66bb3579d151f3ca3a236.png

在通道注意中,线性投影1675255981646.png首先将输入序列映射到低维嵌入1675255995958.png中。 然后,另一个线性投影1675256014008.png 将输入序列1675256029808.png映射到1675256049471.png

482d936a06ef0b81f33ee3ce47c32917.png

接下来,类似于空间注意力,使用1675256069761.png矩阵乘积计算跨层相关性,该矩阵乘积依次经过线性投影1675256083851.png层归一化LNSigmoid,产生最终通道注意力图1675256098041.png

bc67a29d1c7ed1122ecd46e17f5d8103.png

此后,学习的空间注意力图1675256114081.png1675256408817.png通道注意图分别对高分辨率输入1675256419338.png进行甲醛,并使用元素相加来进行融合,从而产生融合特征1675256432107.png

60b785fa0b7125c427a937a98a28542f.png

整个重新加权过程是一种残差功能,以端到端的方式促进培训LCCM-TD

c88c06a383f774075ab3f68dbdd38041.png

请注意,等式(10)中的两个加权操作分别与LSCM相似。 最终,生成的序列1675256453955.pngreshape1675256474515.png,相对于输入特征1675256500252.png,尺寸相等的尺寸,如图2所示。

关于LCCM-BU,其详细体系结构如图4(c)所示。 对于LCCM-TD,只有一个差异:当计算空间注意力时,分辨率必须被降采样两次,以进行精确的重新加权和 identity 映射。

4、实验

4.1、SOTA对比

ee2ff9c9a4d210fa30126b2255745a13.png

4.2、可视化效果

dc9c4633ca828852dd1c9c0302e22096.png

5、参考

[1].DPNet: Dual-Path Network for Real-time Object Detection with Lightweight Attention

6、推荐阅读

必备技能 | YOLOv6中的用Channel-wise Distillation进行的量化感知训练来自哪里?

All are Worth Words | 当 ViT 遇到扩展模型会出现什么样子的火花?

Light-YOLOv5 | SepViT + BiFPN + SIoU成就更轻更快更优秀的 YOLOv5 改进算法

相关文章
|
6月前
|
机器学习/深度学习 自然语言处理
YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
346 2
|
6月前
|
机器学习/深度学习 编解码 自然语言处理
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
436 2
|
5月前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
|
5月前
|
机器学习/深度学习 存储 自动驾驶
基于YOLOv8深度学习的高精度车辆行人检测与计数系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的高精度车辆行人检测与计数系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
5月前
|
机器学习/深度学习 存储 自动驾驶
基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
机器学习/深度学习 数据可视化 算法
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
396 0
|
6月前
|
机器学习/深度学习 人工智能 算法
基于AidLux的工业视觉少样本缺陷检测实战应用---深度学习分割模型UNET的实践部署
  工业视觉在生产和制造中扮演着关键角色,而缺陷检测则是确保产品质量和生产效率的重要环节。工业视觉的前景与发展在于其在生产制造领域的关键作用,尤其是在少样本缺陷检测方面,借助AidLux技术和深度学习分割模型UNET的实践应用,深度学习分割模型UNET的实践部署变得至关重要。
162 1
|
机器学习/深度学习 人工智能 监控
基于深度学习的人群密度检测系统(UI界面+YOLOv5+训练数据集)
基于深度学习的人群密度检测系统(UI界面+YOLOv5+训练数据集)
710 0
|
机器学习/深度学习 编解码 固态存储
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!(一)
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!(一)
573 0
|
编解码 算法 数据可视化
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!(二)
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!(二)
228 0