AI学习者 · 2022年07月26日

MobileDenseNet | 一步步打造全新的轻量化目标检测模型,让SSD继续发光发热

image.png

在过去的几年里,目标检测问题的解决有了很大的发展。在存在硬件限制的情况下需要更轻的模型,并且需要为移动设备量身定制模型。在本文中,作者将评估在创建解决这些问题的算法时使用的方法。本文的主要目标是提高最先进算法的准确性,同时保持速度和实时效率。

单阶段目标检测中最重要的问题与小目标和不准确的定位有关。作为解决方案,作者创建了一个名为MobileDenseNet的适用于嵌入式系统的新网络。还为移动设备开发了一种轻型Neck FCPNLite,有助于检测小物体。

研究表明,很少有论文引用嵌入式系统中的瓶颈。本文的网络与其他网络的不同之处在于对连接特征的使用。网络Head的一个小而显着的变化放大了准确性,而不会提高速度或限制参数。

简而言之,对具有挑战性的 CoCoPascal VOC 数据集的AP分别为 24.8 和 76.8。网络能够提高准确性,同时保持移动设备上的实时效率。模型在Pixel 3 (Snapdragon 845) 的运行速度为 22.8 fps。

1、本文方法

image.png

1.1、Backbone

在我们看来,模型的核心是 Backbone。主网络生成特征,以便其他部分可以使用这些特征来提取对象。用于各种目标检测的网络包括 VGGResNetDarknetEfficientNet。这些网络不适用于具有硬件限制。一些文章使用 MobileNetMobileNetV2

作者认为,根据作者的经验和实验,这些网络不适合目标检测,尤其是定位。它们不足的原因是这些网络最初是为分类而设计的,没有足够的低级信息流特征。一篇文章也使用了 PleeNetPleeNet 作者声称它仅有 66% 的 MobileNet 参数;但它仍然不适合定位,其准确性并没有提高。

为了定位和良好的目标精度,需要一个也具有低级特征的网络。作者希望设计一个网络,其中信息流适合局部化,并且也适合真实硬件,例如需要实时运行的移动设备的 CPU 中的硬件。因此,设计并实现了 MobileDenseNet 网络。

如前所述,Mobilenets 使用深度可分离卷积而不是卷积。MobilenetV1 网络没有skip connection,不适合局部化。在 MobilenetV2 中,skip connection类似于 Resnet,通过 add 完成。某种程度上可以说倒置残差连接+Mobilenet\=MobilenetV2

在作者看来,如果使用连接而不是相加,允许网络从那些具有 1×1 瓶颈卷积的特征中选择作为特征选择器。此外,使用 add 会生成与原点不同的新功能。最后,根据经验,如果使用连接而不是相加,则较低层的属性可以更令人满意地达到目标检测并获得更好的准确度。当然,当决定使用连接时,很明显参数的数量增加了。因此,有必要使用瓶颈。需要注意的是,如果密集连接的数量增加超过一个点,它们会大大增加网络的计算成本,因此必须避免过度使用它们。例如,DenseNet 使用了大量的skip connection作为连接,这严重拖慢了 CPU 上的网络速度。

单阶段方法的另一个问题是它们不具备检测小物体的能力。作者通过对提议的网络进行更改在很大程度上解决了这个问题。由于从一开始就为图像分类问题提供了所有主干,因此所有参考主干中的一个重要问题是第二块和第三块中的层数非常少。因为需要这些块中更好的信息,将它们用于骨干中间的 C3 和 C4 输出,这里作者决定稍微增加网络的第二和第三块中的层数,以便从这些块中获取特征图具有更好、更全面的特征。

简而言之,Mobilenet(Enhanced version) + Dense connection(Concatenation) + Bottleneck = MobileDenseNet

MobileDenseNet与其他骨干网络一样,包含 5 个主要块。与 Mobilenet 类似,已经考虑了确定每个块中最终特征数量的必要参数。还应该注意,不同的架构可以用于不同的应用程序。MobileDenseNet 网络可以灵活地为不同的应用增加或减少每个块的层数。核心网络架构由许多深度可分离的卷积块组成。唯一的主要区别是在某些情况下使用Dense connection。提出的目标检测架构如图所示。

image.png

MobileDenseNet有3个输出。该公式可以定义为:

image.png
其中,C3、C4、C5分别为第三、第四、第五块的输出。作者还将C5的两个新输出定义为:

image.png

1.2、Neck

作为第二点,Neck 已经有了许多更改。FPNBi-FPNNAS-FPNCPAM 都不适用于嵌入式应用。其中许多,如 EfficientDet 中使用的模型,too non-specific,并带有严重的硬件限制。它们给网络带来了大量的参数和计算成本。

作者还提出了不同的 Neck ,目的是创造比 SSDLite 更有效的结果。单阶段目标检测网络的主要问题是它们在小目标方面的准确性低。一般来说,像其他论文一样添加和复制这些金字塔是很耗时的,而且准确性会略有提高。一条信息流足以将低级特征和高级特征结合起来。使用连接的原因是允许网络本身使用它想要的任何特征。add 函数创建了新的特征,并且连接允许低级特征更原封不动地到达最后阶段。最终建议的 Neck 可以在下图中查看。在这个 Neck 没有使用大量的连接,而是只使用了有限数量的连接来提高小物体的准确性。

image.png

对于 Neck 部分,转换了称为 FPN 的第一个 Neck,并进行了一些调整,以添加连接而不是add,使用瓶颈来减少计算量,并使用深度可分离卷积代替具有大量参数的标准卷积。称为 FCPNLite,特征连接金字塔网络 lite(图 3 中心),可以表述为

image.png

此外,如果像原始文章一样使用 Add,将创建一个名为 FPNLite 的新 Neck(图 3 左)。经过实验得出结论,并不是所有的特征图都需要用concatenationadd来连接。如前所述,过度使用连接和加法会显着增加 FLOP 的数量和计算成本。可以通过有限数量的连接来提高网络准确性。由于 C5C6C7 的特征强度相似,因此不需要上采样和连接。最终,比 FCPNLite 更简单的 Neck 具有高度准确且计算成本更低。将此 Neck SSDCLite 命名为 SSD concatenation lite(图 3 右)。主要区别在于这个 Neck的连接数量是有限的

1.3、Head

对于 Head,和其他网络一样,使用了许多分类和边界框Head;不同的是,它们的权重并不完全共享。作者这里使用了新的想法,half-share。这意味着如果整个Head的权重相互共享,网络将很难使用共享的权重提取非常小和非常大的目标。

由于两个特征图中物体的尺寸和形状都非常接近,所以将每两个Head的权重分成一行,共享两个连续Head的权重;当权重相同时将 AP 增加到 1.1%。

image.png
image.png

从p3到p7的所有5个特征图都用于256通道的卷积,并将p4共享权重p3,p6共享权重p5,3x3大小的p7与其他权重分离。不同Head之间共享或不共享的不同模式(图 4)。

image.png

2、实验

2.1 COCO数据集

2.2.1 Head分析

image.png

2.1.2 NECK分析

image.png

2.1.3 Backbone分析

image.png

2.1.4 SOTA对比

image.png

2.2 VOC数据集

image.png
image.png

ChaucerG
集智书童

推荐阅读
三星提出XFormer | 超越MobileViT、DeiT、MobileNet等模型
2022年人体姿态估计SOTA方案ViTPose论文解读
万字长文 | 手把手教你优化轻量姿态估计模型(算法篇)

更多嵌入式AI相关技术干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18801
内容数
1347
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息