2021深度学习目标检测综述

论文地址:[2104.11892] A Survey of Modern Deep Learning based Object Detection Models (arxiv.org)

本文为上述论文的中文翻译,旨在提供一份快速了解截止到2021年基于深度学习目标检测的最新研究进展的速读手册,方便大家可以快速了解目标检测的技术趋势。

目录

0、摘要

1、引言

2、背景

2.1、问题描述

2.2、目标检测中的关键挑战

3、数据集以及评价指标

3.1、数据集

1) PASCAL VOC 07/12

2)ILSVRC

3)MS-COCO

4)Open Image

5)数据倾斜/偏差问题

3.2、指标

4、backbone架构

4.1、AlexNet

4.2、VGG

4.3、GoogleNet/Inception

4.4、ResNet

4.5、ResNeXt

4.6、CSPNet

4.7、EfficientNet

5、目标检测器

5.1、传统检测方法

1) Viola-Jones

2)HOG

3)DPM

5.2、两阶段检测器

1)R-CNN

2)SPP-Net

3)Fast R-CNN

4)Faster R-CNN

5)FPN

6)R-FCN

7)MaskR-CNN

8)DetectoRS

5.3、一阶段检测器

1)YOLO

2)SSD

3) YOLOv2 与YOLO9000

4)RetinaNet

5)YOLOv3

6)CenterNet

7)EfficientDet

8)YOLOv4

9)Swin Transformer

6、轻量网络

6.1、SqueezeNet

6.2、MobileNet

6.3、ShuffleNet

6.4、MobileNetv2

6.5、PeleeNet

6.6、ShuffleNetv2

6.7、MnasNet

6.8、MobileNetv3

6.9、Once-For-All (OFA)

7、结果对比

8、未来趋势

9、总结


0、摘要

目标检测是这样一种任务:在图像或者视频中,找到目标位置并进行分类。近年来,由于其广泛应用而引起了重视。这篇文章综述了近年来基于深度学习的目标检测的最新进展,提供了基准数据集和评估指标的简要概述,还提供了在识别任务中使用的一些突出的骨干网络。同时,也提供了一些当代用于边缘设备的轻量分类网络。最后,在多个评价指标上面对比了这些架构的性能。

1、引言

目标检测对于人类来说,是一项非常简单的任务,就连几个月大的婴儿都能识别出一些常见目标。然而,直到十年之前,让机器学会目标检测仍是一个艰巨的任务。目标检测需要识别并定位视野中某个目标(如:汽车、行人、路标等)的所有实例,其与其他的类似任务,如分类、分割、运动估计、场景理解等,一同构成了计算机视觉领域的基础问题。

早期的目标检测模型是通过集成一系列手工设计的特征提取器(如:Viola-Jones、HOG等)来构造的,这些模型的特点是:速度慢、精度低、跨域性能差。重新崛起的CNNs和深度学习图像分类改变了视觉领域的格局。在2012ImageNet大规模视觉识别挑战赛(ILSVRC)上出现的AlexNet,启发了后续关于CNNs的一些列研究。如今,目标检测的应用范围已经涵盖了从自动驾驶、身份检测到安全及医疗等领域。近年来,随着新的工具及技术的发展,目标检测的应用呈指数级增长。

这篇综述全面回顾了基于DeepLearning的目标检测器以及轻量分类网络。现有的其他综述虽然也很全面,但是缺少一些最新技术。本篇综述的主要贡献如下:

1)深入分类了两类目标检测器:单阶段检测器和两阶段检测器,并从历史的角度审视了这些方法的演变;

2)给出了关于标志性backbone架构和轻量模型的详细评估,这是现有综述所不具备的。

本文系统回顾了各种目标检测架构及其对应技术,如图1所示:

如图1,剩下章节的内容安排如下:

  • 第2节:讨论目标检测的问题定义及其挑战;
  • 第3节:列出各种基准数据集以及评价指标;
  • 第4节:研究现代目标探测器中几个具有里程碑意义的backbone;
  • 第5节:分3个子章节,每个子章节研究不同种类的目标检测器;
  • 第6节:对一种特殊的目标检测分类——轻量网络进行分析;
  • 第7节:轻量网络的对比分析;
  • 第8节:目标检测的未来发展趋势;
  • 第9节:全文总结。

2、背景

2.1、问题描述

目标检测是目标分类的自然扩展,后者的目的仅仅是对图像中的目标进行识别。目标检测的目的是检测出图像中所有实例的类别(预定义好的),并用一个轴对齐的矩形框大致给出实例的位置。检测器应当能够识别出所有实例,并画出包围实例的边框(bounding box)。它通常被视为一个监督学习问题。现代的目标检测模型可以使用大量标记图像进行训练,并在各种标准基准上进行评估。

2.2、目标检测中的关键挑战

在过去的十年里,计算机视觉已经取得了很大的进步,但是它仍然有一些重大的挑战需要克服。在实际应用中面临的一些关键挑战有:

  • 类内变化:自然场景中,统一对象的不同实例之间出现类内变化是非常常见的。这些变化的原因是多种多样的,如:遮挡、光照、姿态、视角等。这些不受约束的外在因素会对目标的外观产生剧烈变化。可以预见的是,目标可能会有非刚性形变或旋转、缩放、模糊等变化,且一些目标可能在环境中不显著,导致其提取变得困难。
  • 类别数量:可用的目标种类绝对数量(过少)是一个需要解决的挑战。其需要高质量的标注数据,而这通常难以获取。使用更少的样本训练检测器是一个待研究的问题。
  • 效率:如今的模型需要大量的计算资源来生成准确的检测结果,但在移动或边缘设备上,更为关键的是计算效率。

3、数据集以及评价指标

3.1、数据集

本章节将概述一些可用的、常用于目标检测任务的数据集。各数据示例如图2:

1) PASCAL VOC 07/12

 Pascal Visual Object Classes(VOC)挑战赛是一个持续了多年的、为了促进视觉感知的比赛。其起始于2005,对四个目标类别进行分类和检测,不过VOC的两个版本主要用作基准测试集。VOC2007有5K个训练图像以及超过12K的标注目标;VOC2012将训练图像增加到11K,并拥有超过27K个标注目标,目标类别也扩展到了20类,同时也增加了语义分割、动作识别的任务。Pascal VOC引入了mAP@0.5IoU作为评价指标,来评估模型性能。图3展示了Pascal VOC数据集中各个类别图像数量的分布情况:

2)ILSVRC

 ImageNet Large Scale Visual Recognition Challenge (ILSVRC),是2010~2017期间的年度挑战赛,如今其已经成为了评估模型性能的基准集。数据集的规模扩展到了包含了1000个类别、超过100万个图像,其中精选了200个类别、超500K个图像被用于目标检测。该目标检测数据集包含了来自ImageNet、Flikr在內的多种数据源。ILSVRC还放宽了IoU的限制,以将小目标检测纳入其中。图4展示了ImageNet数据集中不同类别的图像数量分布情况:

3)MS-COCO

The Microsoft Common Objects in Context(MS-COCO),是目前最具挑战的数据集之一。其包含了自然环境中发现的、四岁儿童可以轻易识别的共91种常见目标。MS-COCO字2015年提出,自此其热度只增不减。其包含了超过200万个实例,且平均每张图像中有3.5个类别、7.7个实例,也包含了多种视角的图像。MS-COCO引入了更为严格的方法来评价检测器,不像VOC和ILSVCR,COCO在IoU从0.5到0.95的范围内没隔0.5计算一次mAP,然后平均这十个mAP,得到AP。除此之外,它还将AP分别用于小型、中型和大型对象,以在不同的尺度上比较性能。图5展示了MS-COCO数据集中不同类别的图像数量的分布情况:

4)Open Image

谷歌的Open Images数据集由920万张图像组成,使用图像级标签、对象边界框和分割掩码等进行标注。它于2017年推出,并已进行6次更新。对于目标检测,Open Images有1600万个包围框,包含190万张图像上的600个类别,这使它成为最大的目标定位数据集。它的创作者格外小心地选择了有趣、复杂和多样的图像,每张图像有8.3个对象类别。对Pascal VOC中引入的AP做了一些更改,比如忽略未注释的类,需要检测类和子类等。其每类的图像数量分布情况如图6所示:

5)数据倾斜/偏差问题

通过观察图3~图6,可以发现不同类别的图片数量差别很大,上述四种数据集中,有三种(Pascal VOC、MS-COCO、Open Image)数据集中,除了前五类,后面类的图片数量显著下降。比如图3所展示的,有13775张图像被标注为“person”、2829张被标注为“car”,剩下的18个类别的图像数量几乎直线下降,直到“绵羊”类只有55张图像。类似地,对于MS-COCO数据集,类“person”有262465张图像,其次最频繁的类“car”有43867张图像,这种下降趋势一直持续到只有198张图片“吹风机”。类似的现象在Open Images 也存在,其中“Man”最常见,有378077张图片,“Paper Cutter”只有3张图片。这清楚地表示了数据集中的一种倾斜,并且必然会在任何目标检测模型的训练过程中产生一种偏差。因此,在这些倾斜数据集上训练的目标检测模型,对于训练数据中图像数量较多的类,几乎可以表现出更好的检测性能。虽然这个问题仍然存在,但在ImageNet数据集中稍微不那么明显,从图4中可以看出,使用频率最高的类别考拉有2469张图片,使用频率最低的类别cart有624张图片。然而,这导致了ImageNet中另一个引人关注的点:该数据集中出现频率最高的类(考拉、键盘)并非是现实世界中最常见的目标(人、车、交通标志等)。

3.2、指标

目标检测器使用多种指标来评价检测器的性能,如:FPS、precision、recall,以及最常用的mAP。precision由IoU推导出来,后者的定义是预测边框和GT之间的交并比。然后,设定一个IoU阈值来判定检测结果是否正确:如果IoU大于阈值,则该结果分类为True Positive(TP),如果小于阈值,则分类为False Positive(FP)。如果模型没有检测出GT中存在的目标,则这些目标分类为False Negative(FN)。则precision和recall的定义如下:

\begin{aligned} \text { Precision } &=\frac{\text { True Positive }}{\text { True Positive }+\text { False Positive }} \\ &=\frac{\text { True Positive }}{\text { All Observations }} \\ \text { Recall } &=\frac{\text { True Positive }}{\text { True Positive }+\text { False Negative }} \\ &=\frac{\text { True Positive }}{\text { All Ground Truth }} \end{aligned}

基于上述定义,average precision(AP)是每一类的平均精度。然后,为了对比不同检测器,将所有类的AP平均,即可得到mAP这个单一指标。

4、backbone架构

backbone是目标检测器中的重要组成部分,输入图像的特征就是通过其进行提取的。这里讨论几种经典的backbone架构。

4.1、AlexNet

Krizhevsky等提出了AlexNet这种基于卷积神经网络的图像分类器,并赢得了ILSVRC2012年挑战赛的冠军,其达到了比当时最好的模型还要高的性能(超过26%)。AlexNet包括8个可学习的层:5个卷积层、3个全连接层。最后一个全连接层连接到N-Way(N为类别个数)softmax分类器。AlexNet使用了多种卷积核来获取图像特征,也使用了dropout和ReLU分别进行正则化和加速训练。其再次让卷积神经网络进入公众视野,并很快引起了一系列研究热潮。

4.2、VGG

当AlexNet及其继任者ZFNet专注于更小的感受野窗口大小来提升准确率时,Simonyan和Zisserman开始研究网络深度的影响。他们提出了VGG,一种使用了更小的卷积核来构造不同深度的网络。由于大感受野可以通过堆叠一系列更小的卷积核来实现,且这样可以大大降低参数量,并能很快收敛。其文章展示了多深的网络(16~19层)可以用于分类和定位,且具备高精度。VGG包含了一系列卷积层+3个全连接,再接一个softmax层。卷积层的个数从8到16不等:首先,最小的11层架构通过随机初始化进行训练,然后用其权重训练更大的网络,以防止梯度不稳定。在单一网络性能类别中,VGG的表现超过了2014年ILSVRC的获奖者GoogleNet,并很快成为了目标分类和检测模型中最常用的backbone。

4.3、GoogleNet/Inception

尽管分类网络正在朝着更快、更精确的网络迈进,但由于它们是资源密集型的,在现实世界的应用中部署它们仍有很长的路要走。随着网络规模的扩大以获得更好的性能,计算成本呈指数级增长。Szegedy等人认为造成这种情况的主要原因是网络中计算的浪费,更大的模型通常有更多的参数量,并趋向于过拟合。他们提出用局部稀疏连接架构代替全连接架构,以解决这些问题。GoogleNet是一个22层的网络,由多个Inception模块相互堆叠而成。Inception模块是在同一级别上具有多个大小的卷积核的网络。输入的feature map通过这些卷积核之后,连接到下一层。该网络在中间层还具有辅助分类器,以进行正则化和促进梯度传递。GoogLeNet展示了计算块的高效使用可以与其他参数较多的网络相提并论。其在没有外部数据的情况下,仅用ImageNet即可实现93.3%的top-5精度,同时比其他同时代的模型更快。后续几个迭代的版本进一步提高了性能,并进一步证明了精细化稀疏连接架构的应用。

4.4、ResNet

随着CNNs越来越深,Kaiming He等人表明了网络精度是如何达到饱和并迅速下降的。他们提出了使用残差学习来堆叠卷积层,以减缓精度下降。它是通过在层之间添加跳跃连接来实现的。这种连接是块的输入和输出之间的元素加法,不会给网络增加额外的参数或计算复杂度。一个典型的34层ResNet基本上是一个大的(7x7)卷积核,然后是16个bottleneck模块(一对小的3x3滤波器,在它们之间有恒等的跳跃连接),最后是一个全连接层。bottleneck模块通过堆叠3个卷积层(1x1,3x3,1x3)可以适应更深的网络。Kaiming He等还表明了VGG16的计算复杂度相当于ResNet104和152,且精度更低。在随后的文章中,作者提出了Resnetv2,在block中使用了BN和ReLu,使得更通用且更容易训练。ResNets称为了广泛应用于分类和检测的backbone,且其思想启发了很多其他的网络。

4.5、ResNeXt

现有的提高模型精度的传统方法是增加模型的深度或宽度。然而,增加任何一种都会导致模型的复杂性和参数的数量增加,而增益迅速减少。 Xie等人提出了ResNeXt架构,它比现有的其他模型更简单、更高效。ResNeXt的灵感来自于VGG/ResNet中相似块的堆叠,以及Inception模块中的“分离-转换-合并”方式。它本质上是一个ResNet,其中每个ResNet块被一个类似于Inception的ResNeXt模块替换,inception的复杂、定制的转换模块被ResNeXt块中的拓扑结构相同的模块所取代,使得网络更容易扩展和泛化。Xie等人还强调,可以将基数(ResNeXt块中的拓扑路径)与深度和宽度一起视为第三维,以提高模型的精度。ResNeXt优雅而简洁。与类似的深度ResNet体系结构相比,它获得了更高的精度,同时拥有更少的超参数。它也是ILSVRC 2016年挑战赛的第一名。

4.6、CSPNet

现有的神经网络已经在计算机视觉任务中取得了令人难以置信的结果;然而,它们依赖于过多的计算资源。Wang等人认为通过减少网络中重复的梯度信息可以减少大量的推理计算。他们提出了CSPNet[25],它为网络内的梯度流创建不同的路径。CSPNet将底层的feature map分为两部分:其中一部分送入卷积网络块(例如,DenseNet中的Dense和Transition块或ResNeXt中的Res(X)块),而另一部分在后期与第一部分的输出相结合。这减少了参数的数量,提高了计算单元的利用率,并减少了内存占用。它很容易实现,而且足够通用,可以应用于其他架构,如ResNet, ResNeXt, DenseNet, Scaled-YOLOv4等。在这些网络中应用CSPNet可将计算量减少了10%~20%,而准确性保持不变或有所提高。该方法也大大降低了内存开销和计算瓶颈。它被用于许多先进的检测器模型,同时也被用于移动设备和边缘设备。

4.7、EfficientNet

Tan等人系统研究了网络尺度及其对模型性能的影响。他们总结了改变网络参数如深度、宽度和分辨率是如何影响其准确性的。单独缩放任何参数都会带来相关的成本。增加网络的深度可以帮助捕获更丰富和更复杂的特征,但由于消失梯度问题,它们难以训练。同样地,缩放网络宽度会使捕获细粒度特征更容易,但难以获得高层次的特征。从增加图像分辨率(如深度和宽度)中获得的收益随着模型比例的增加而饱和。Tan等人提出使用一个复合系数,可以均匀地缩放所有三个维度。每个模型参数都有一个相关的常数,它是通过固定系数为1并在baseline网络上执行网格搜索来找到的。基线架构的灵感来自于他们之前的工作(MnasNet),它是通过对搜索目标进行神经架构搜索而开发的,同时优化了精度和计算。EfficientNet是一个简单而高效的架构。它在精度和速度上都优于现有的模型,而且体积要小得多。通过极大地提高效率,它有可能开启一个efficient networks的新时代。

关于各个网络的对比见下图7:

Fig. 7: Visualization of CNN Architectures. Left to

Right: AlexNet, VGG−16, GoogLeNet, ResNet−50,

CSPResNeXt−50, EfficientNet−B4.

5、目标检测器

在本篇综述中,我们将检测器分为两类:两阶段检测器、一阶段检测器。同时,我们也简单回顾了传统的检测方法。如果一个网络,有一个单独的模块用于生成region proposals(区域候选框),那么该网络就称为两阶段检测器。这种模型试着在第一阶段找到一定数量的目标proposals,然后在第二阶段对各个proposals进行定位及分类。由于具有连个阶段,这些网络通常在生成proposals的阶段耗时较长,且结构复杂、缺乏全局信息。一阶段检测器通过密集采样直接对语义目标进行分类和定位,它们使用预定义的不同比例和长宽比的boxes/points来定位目标,其在实时性以及更简单的设计方面超越了两阶段检测器。

5.1、传统检测方法

1) Viola-Jones

 Viola-Jones检测器于2001年提出,主要用于人脸检测,是一个精确而强大的探测器。它结合了类似Haar特征、积分图像、Adaboost和级联分类器等多种技术。第一步是通过在输入图像上滑动窗口搜索haar类特征,并使用积分图像进行计算。然后,它使用一个训练有素的Adaboost找到每个haar特征的分类器,并将它们级联。Viola-Jones算法仍然用于小型设备,因为它非常高效和快速。

2)HOG

 Dalal 和Triggs于2005年提出了Histogram of Oriented Gradients (HOG)特征描述器,用于目标检测的特征提取。与其他探测器相比,HOG是一个改进版,它提取梯度及其边缘方向来创建一个特征表。图像被划分为网格,然后使用特征表为网格中的每个单元创建直方图。为感兴趣的区域生成HOG特征,并将其输入线性SVM分类器进行检测。其提出是作为行人检测检测器的,不过它可以被训练来检测各种其他类。

3)DPM

Deformable Parts Model (DPM)由Felzenszwalb等人引入,是2009年Pascal VOC挑战赛的冠军。它利用目标的个别“部分”进行检测,准确率高于HOG。它遵循分而治之的哲学;在推理期间,对象的各个部分被单独检测,它们的一个可能的排列被标记为检测结果。例如,人体可以被认为是头、胳膊、腿和躯干等部分的集合。一个模型将被指定捕捉整个图像中的一个部分,并对所有这些部分重复这个过程。然后,另一个模型移除那些不可能的组合,以生成最终检测。基于DPM的模型是深度学习时代之前最成功的算法之一。

5.2、两阶段检测器

1)R-CNN

 Region-based Convolutional Neural Network (R-CNN),是R-CNN系列的第一篇文章,其证明了CNNs可以极大地提高性能。R-CNN使用一个类别不可知的region proposals CNNs模块将检测转化为分类和定位问题。减去均值后的输入图像,首先通过区域提议模块,生成2000个候选对象。这个模块使用选择性搜索(SS)找到图像中有较高概率属于一个对象的部分。然后,这些候选项被warped并通过CNN网络传播,CNN为每个proposals提取4096维的特征向量。Girshick等人使用AlexNet作为检测器的backbone。然后,特征向量被送入训练好的、指定类别的SVM获取置信度得分。接着,使用非极大值抑制(NMS)基于IoU和类别对得分区域进行过滤。一旦类别被确认,算法就会使用训练好的边界框回归器来预测其边框,也即预测四个参数:xyhw。

R-CNN有着一个复杂的多阶段训练过程:第一阶段,使用大量分类数据集预训练CNN;第二阶段,是使用特定域的图像(减均值、warped的proposals)针对检测进行微调,并把CNN模型的分类层替换为N+1-way的分类器(N为类别数);最后,为每一类训练一个线性SVM以及边框回归器。

R-CNN在目标检测领域引起了一个新的浪潮,不过它很慢(每张图像47秒),且时空复杂度都很高。它有复杂的训练过程,即使在一些计算是共享的情况下,也要花几天时间在小数据集上训练。

2)SPP-Net

He等人提出使用空间金字塔池化(SPP)层来处理任意尺寸、任意长宽比的图片。他们意识到,仅全连接层需要固定大小的输入。SPP-net在region proposal module之前,只是平移了CNN的卷积层,增加了pooling层,使得网络不依赖于size/aspect ratio,减少了计算量。生成候选窗口的算法仍是选择性搜索(SS)。feature maps是通过ZF-5网络的卷积层从输入图像提取的。然后,候选窗口被映射到特征映射上,这些特征映射随后被金字塔池化层的空间bins转换为固定长度的表示。最后将得到的向量送入全连接层,然后使用SVM分类器预测类别和得分。类似于R-CNN,SPP-Net也有一个边框回归的后处理层来改善定位精度。其同样使用多阶段训练过程,除了微调以外,其他步骤只在全连接层上进行。

SPP-Net在相似精度的前提下,比R-CNN快很多,它还可以处理任意尺寸、比例的图像,因此,也避免了由于输入形变导致的目标变形。然而,由于其架构类似于R-CNN,它也有R-CNN的缺点,像多阶段训练,昂贵的计算和训练时间。

3)Fast R-CNN

R-CNN和SPP-Net的一个主要缺点是需要多阶段分别训练。Fast-RCNN通过创建一个单一的端到端可训练的系统来解决这个问题。网络将一幅图像被送入一些列卷积层,同时目标的proposals也映射到获取的feature maps上。Girshick利用ROI-Pooling层替代了SPP-net中的金字塔结构的Pooling,其后接上两个全连接层,然后分了N+1类的softmax层和一个同样具有一个全连接的边框回归层。该模型还将边框回归器的损失函数从L2改为smooth L1以提高性能,同时引入多任务损失来训练网络。

作者还使用了先进的改进的预训练模型作为backbone。采用随机梯度下降法(SGD)和mini-batch为2对该网络进行单步训练,这有助于网络更快地收敛,因为反向传播在两个图像的roi之间共享计算。

Fast R-CNN主要是作为速度的改进而引入的(是R-CNN的146倍),而准确性的提高则是次要的。

4)Faster R-CNN

尽管Fast R-CNN逐渐接近实时目标检测,但它的区域建议生成仍然慢了一个数量级(每幅图像2秒相比于每幅图像0.2秒)。Ren等人提出了一个完全卷积网络作为区域建议网络(RPN),该网络接受任意输入图像并输出一组候选窗口。每个这样的窗口都有一个相关的对象评分,它决定了一个对象出现的可能性。RPN引入了Anchor的概念,它使用多个不同长宽比的边界框,并在它们之上回归来定位对象。输入的图像首先经过CNN得到一组feature maps。它们被转发到RPN, RPN生成边界框及其分类。被选择的proposals随后映射回前面CNN层所提取的feature maps上,并最终送入全连接层,来进行分类和边框回归。Faster R-CNN实际上就是使用RPN所谓region proposals模块的Fast R-CNN。

训练Faster R-CNN更为复杂,因为两个模型之间存在执行不同的任务的共享层。首先,RPN在ImageNet数据集上进行预训练,在PASCAL VOC数据集上进行微调。然后,使用第一步的RPN得到的region proposals来训练一个Fast R-CNN。到此为止,网络还没有共享卷积层。现在,我们固定了检测器的卷积层,并微调了RPN。最后,Fast R-CNN从更新后的RPN进行微调。

Faster R-CNN比以前的SOTA提高了超过3%的检测精度,并将推理时间减少了一个数量级。它修正了慢速的region proposals过程,并以每秒5帧的速度运行。CNN在region proposals的另一个优势是,它可以学习产生更好的提案,从而提高准确性。

5)FPN

在提升小目标检测效果时,在多个级别上使用图像金字塔来获取特征金字塔(特征化的图像金字塔)是一种常用的手段。虽然它提高了检测器的平均精度,但推理时间的增加也是很多的。Lin等人提出了该特征金字塔网络(FPN),它采用自上而下的横向连接架构,在不同的尺度上构建高层次的语义特征。FPN有两条路径,一条是由卷积神经网络(ConvNet)在多个尺度上计算特征层次的自底向上路径,另一条是自上而下的路径,它将粗特征图从较高层次上采样为高分辨率特征。这些路径通过1x1卷积运算进行横向连接,以增强特征中的语义信息。这里采用FPN作为Faster R-CNN的RPN,以ResNet-101为backbone。

FPN可以在所有尺度上提供高级语义,降低了检测的错误率。它成为了未来检测模型的标准构建块,提高了整体的准确性。它也促进了洽谈改进的网络,如PANet、NAS-FPN、EfficientNet等网络的发展。

6)R-FCN

Dai等人提出基于区域的全卷积神经网络(R-FCN),共享了网络中几乎所有的计算,不像之前的两阶段检测器那样每个proposals都使用了资源密集型技术。他们反对使用完全连接的层,而是使用了卷积层。然而,卷积网络的深层是平移不变的,这使得它们在定位任务中不起作用。作者建议使用位置敏感评分图来补救。这些敏感的评分maps编码了相关的空间信息,并稍后汇集,以确定准确的定位。R-FCN通过将ROI分为k*k个网格,并计算每个cell的得分,然后这些得分求均值,用于预测目标类别。R-FCN检测器是四个卷积网络的组合:输入图像首先经过ResNet-101来获取feature maps;中间输出(Conv4)送入RPN以确定ROI proposals,最后的输出进一步送入一个卷积层进行处理,并送入分类器和回归器。分类层通过结合生成的位置敏感map和RoI proposals来生成预测,而回归网络输出边框的细节。R-FCN采用与Faster-RCNN类似的4步训练方式,同时使用组合交叉熵和边框回归损失。同时,在训练过程中也使用了在线难例挖掘(OHEM)。

Dai等人提出了一种新的方法来解决卷积神经网络中的平移不变性问题。R-FCN将Faster R-CNN和FCN结合起来,实现快速、更准确的检测器。尽管它的准确率没有提高多少,但它比同类产品的速度快2.5-20倍。

7)MaskR-CNN

Mask R-CNN在Faster R-CNN基础上进行了扩展,通过增加一个分支来并行进行像素级目标实例分割。该分支是一个应用于RoI上的全连接网络,对每个像素进行分割,整体代价很小。它使用类似于Faster R-CNN的架构进行目标proposals提取,不过增加了一个与分类、回归head并行的mask head。一个主要的区别是使用了RoIAlign层,而不是RoIPool层,以避免由于空间量化造成的像素级错位。为了更好的准确性和速度,作者选择了带有特征金字塔网络(FPN)的ResNeXt-101作为其主干。原先Faster R-CNN中的损失函数更新为了mask loss,就像FPN中那样,它使用了5个anchor、3种长宽比。Mask R-CNN的整体训练与faster R-CNN相似。

Mask R-CNN的性能比现有的SOTA一阶段模型架构更好,增加了一个额外的实例分割功能,但增加的开销很小。该算法训练简单、灵活,在关键点检测、人体姿态估计等应用中具有很好的通用性。然而,它仍然低于实时性能(>30 fps)。

8)DetectoRS

许多当代的两阶段探测器采用的是多看多想的机制,即先计算对象proposals,然后提取特征来检测对象。DetectoRS在网络的宏观和微观层面都使用了该机制。在宏观层面,其提出了递归特征金字塔(RFP),这是由多个特征金字塔(FPN)堆叠而成、且带有从FPN的自顶向下层级到自底向上层之间的额外反馈连接。FPN的输出经过空洞空间金字塔池化层(ASPP)处理,然后送入下一个FPN层。然后,通过一个融合模块创建一个注意力map,将不同模块的FPN的输出联合起来。在微观层面,Qiao等人提出了可切换的Atrous卷积(SAC),以调节卷积的扩张率。利用具有5x5滤波器和1x1卷积的平均池化层作为交换函数来决定atrous卷积[55]的速率,帮助backbone动态检测各种尺度的目标。他们还把SAC放在两个全局上下文模块之间,因为这有助于实现更稳定的切换。递归特征金字塔和可切换Atrous两种技术的结合卷积产生检测器。作者将上述带有混合任务级联(HTC)的技术作为baseline,并和ResNext-101骨干结合起来。

DetectoRS结合了多个系统,以提高探测器的性能,并设置了最先进的两级探测器。其RFP和SAC模块具有很好的通用性,可用于其它检测模型。但是,由于它只能处理数据,不适合实时检测(每秒4帧)。

5.3、一阶段检测器

1)YOLO

两阶段检测器将检测视为一个分类问题:需要一个模块枚举一些由网络分类为前景或背景的候选框。然而,YOLO将检测问题进行了重构,视其为一个回归问题,直接预测图像像素作为目标及其边界框属性。在YOLO中,输入图像被划分为S*S的网格,目标中心点所在的cell负责该目标的检测。一个网格cell预测多个边框,每个预测数组包括五个元素:边框的中心点(x, y)、边框的宽高w/h、置信度得分。

YOLO的灵感来自于用于图像分类的GoogLeNet模型,该模型使用了更小的卷积网络的级联模块。其在ImageNet数据上进行预训练,直到模型达到较高的精度,然后通过添加随机初始化卷积和全连通层对模型进行修正。训练时,每个网络的cell只预测一个类,印着这样可以更好的收敛,不过在推理时,可以预测多个类。采用了多任务损失,即所有预测部件的组合损失,对模型进行优化。非最大抑制(NMS)删除特定类的多重检测。

YOLO在精度和速度上都远远超过了它的当代单级实时模型。然而,它也有明显的缺点。对小的或聚类对象的定位精度和每个单元的对象数量限制是其主要缺点。这些问题在YOLO的后续版本中得到了修复。

2)SSD

Single Shot MultiBox Detector (SSD)是第一个与同时代的两级探测器如Faster R-CNN的准确性相匹配同时还能保持实时速度的一阶段检测器。SSD是在VGG-16上构建的,带有额外的辅助结构以提高性能。这些辅助卷积层添加到模型的末端,在尺寸上逐渐减小。当图像特征不太粗糙时,SSD会在前面的层中检测到较小的物体,而更深的层负责默认尺寸的框和宽高比。

在训练期间,SSD对每个GT box和具有最好jaccard 重叠度的box相匹配,然后类似Multibox训练相应的网络。同时,也使用了困难负样本挖掘以及大量的数据增强。类似与DPM,SSD也利用了利用定位和置信度损失的加权和来训练模型。最终输出通过非最大抑制获得。

尽管SSD比YOLO和faster R-CNN等最先进的网络更快更准确,但它在探测小物体方面有困难。这个问题后来通过使用更好的主干架构(如ResNet)和其他小补丁解决了。

3) YOLOv2 与YOLO9000

YOLOv2是对YOLO的改进,在速度和准确性之间提供了一个简单的权衡;而YOLO9000模型可以实时预测9000个对象类。这两者将YOLO中的backbone从GoogleNet替换为DarkNet-19。它结合了许多令人印象深刻的技术,如BN提高收敛性,联合训练分类和检测系统用于提高检测类别数,移除全连接以提高检测速度,使用聚类得到的anchor来改善recall并提供先验知识。Redmon等人也利用WordNet将分级结构的分类和检测数据集结合起来。即使当下词没有被正确分类,这个WordTree也可以用来预测一个更高的条件概率的上下词,从而提高了整体的性能。

YOLOv2在选择模型的速度和精度方面提供了更好的灵活性,新的架构具有更少的参数。正如文章的标题所暗示的那样“better, faster and stronger”。

4)RetinaNet

鉴于单级和两级探测器的精度差异,Lin等人认为单级探测器滞后的原因是“极端的前景-背景类不平衡”。他们提出了一个改造的交叉熵损失,称为Focal Loss作为解决不平衡的手段,通过其中的参数来降低简单样本对loss的贡献度。作者通过一个简单的单级探测器(RetinaNet)证明了它的有效性,通过对输入图像的位置、比例和纵横比进行密集采样来预测目标。该算法使用由特征金字塔网络(FPN)扩充的ResNet作为骨干网络,两个相似的子网络分别进行分类和回归。FPN的每一层都被传递到子网中,使其能够检测出不同规模的目标。分类子网预测每个位置的对象得分,而边框回归子网将每个锚点的偏移量回归到GT。两个子网都是小的FCN,并在各个网络之间共享参数。与之前大多网络不同,作者使用了一个与类别无关的边界框回归变器,发现它们等效。

RetinaNet训练简单,收敛快速,且容易实现。它在精度和运行时间方面都优于两级探测器。RetinaNet还通过引入新的损失函数来推进目标探测器优化的方法。

5)YOLOv3

与以前的YOLO版本相比,YOLOv3进行了“增量改进”。Redmon 等人用一个更大的Darknet-53网络代替了原来的特征提取器。他们还整合了各种技术,如数据增强、多尺度训练、批标准化等;分类器层的Softmax被逻辑分类器取代。

尽管YOLOv3比YOLOv2快,但它与之前的版本相比没有任何突破性的变化,它的精度甚至还不如一年前的SOTA检测器。

6)CenterNet

Zhou等人采用了一种非常不同的方法:将对象建模为点,而不是传统的边界框表示。CenterNet将对象预测为包围框中心的单个点。输入图像通过FCN生成heatmap,heatmap的峰值对应被检测物体的中心。它使用ImageNet预训练的Hourglass-101作为特征提取网络,有3个head:点目标中心点的heatmap头、目标尺寸wh头、目标中心点偏移头。在训练时,三个头的多任务损失被反向传播到特征提取器中。在推理过程中,利用偏移头的输出来确定对象点,最终生成一个方框。由于预测是点,而不是结果,这里不需要使用非最大抑制(NMS)进行后处理。

CenterNet乜有利用这些年来目标检测的常用套路,而是提出了一个新颖的视角。它比之前的方法更准确,推理时间更短。它具有较高的精度,可用于三维目标检测、关键点估计、姿态、实例分割、方向检测等多种任务。不过在做不同任务时,需要不同的骨干架构,因为一般架构与其他探测器工作良好,性能较差,反之亦然。

关于CenterNet的更多介绍,可以参考:CenterNet(Objects as Points):极简Anchor-free目标检测框架CenterNet 后处理过程及源码解析

7)EfficientDet

EfficientDet构建了具有更高精度和效率的可扩展检测器的思想,引入了有效的多尺度特征、BiFPN和模型缩放。BiFPN是一种具有可学习权值的双向特征金字塔网络,用于不同尺度下输入特征的交叉连接,它在NAS-FPN的基础上,通过删除一个输入节点,增加一个额外的横向连接,改进了需要大量训练和复杂网络的NAS-FPN,这消除了低效节点,增强了高级特征融合。与现有的探测器不同的是,它可以根据更大、更深的骨干网络或堆叠FPN层进行放大,EfficientDet引入了一个复合系数,可用于“联合放大骨干网络、BiFPN网络、类/盒网络和分辨率的所有维度”。EfficientDet利用EfficientNet作为backbone,该backbone是一种具有多个BiFPN的堆叠的特征提取网络,最终BiFPN层的每个输出被发送到类和边框预测网络。该模型使用SGD优化器和同步BN进行训练,并使用swish激活,而不是标准的ReLU激活,后者可区分,效率更高,性能更好。

EfficientDet比以前的检测器具有更好的效率和准确性,同时体积更小,计算成本更低。它易于扩展,可以很好地应用于其他任务,并且是当前单阶段对象检测的SOTA模型。

8)YOLOv4

YOLOv4结合了许多有效的idea,设计了一种可以在现有系统中工作快速且容易训练的目标检测器。它利用“bag of freebies”方法,只增加训练时间,而不影响推理时间。YOLOv4利用数据增强技术,正则化方法,类标签平滑,CIoU-loss , Cross mini-Batch Normalization (CmBN),自我对抗训练,余弦退火学习率调度等技巧来提高训练。网络中还加入了只影响推理时间的方法,称为“Bag of Specials”,包括Mish激活[、Cross-stage partial connections (CSP)、SPP-Block、PAN路径聚合块、多输入加权残差连接(MiWRC)等,还使用了遗传算法进行超参搜索。其使用在ImageNet上预训练的CSPNetDarkNet-53作为backbone,以SPP和PAN块作为neck,以YOLOv3的head为head。

目前大多数检测算法都需要多个gpu来训练模型,但YOLOv4可以在单个gpu上轻松训练。它的速度是EfficientDet的两倍,却具有类似的性能,达到了SOTA。

9)Swin Transformer

Transformer从一开始就在自然语言处理(NLP)领域产生了深远的影响。它在语言模型中的应用,如BERT(Bidirectional Encoder Representation from Transformers),GPT(Generative Pre-trained Transformer),T5(Text-To-Text Transfer Transformer)等,推动了这一领域的技术进步。transformer[75]使用注意模型来建立序列元素之间的依赖关系,并且可以比其他顺序架构关注更长的上下文。在自然语言处理中的成功引起了人们对其在计算机视觉中的应用的兴趣。而cnn一直是CV的支柱,不过其有一些固有的缺点,如缺乏全局上下文的重要性,固定的训练后权重等。

Swin Transformer旨在为计算机视觉任务提供基于Transformer的backbone,它将输入图像分割成多个不重叠的patch,并将其转换为token。然后将大量Swin Transformer块应用于4个阶段的patch,每个后续阶段减少patch的数量,以保持分层表示。Swin Transformer块由局部多头自注意(MSA)模块组成,在连续块中基于交替移位的patch窗口。在局部自注意中,计算复杂度与图像大小成线性关系,而移动窗口可以实现跨窗口连接。作者还显示了移动的Windows如何在开销很小的情况下提高检测精度。

Transformers提供了一个不同于CNN的范式,不过其在CV领域的应用仍处于初级阶段,它在这些任务中取代卷积的潜力是非常大的。 Swin Transformer在MS-COCO上达到了新的SOTA,不过其参数量相比CNN模型更高。

更多关于Swin Transformer的内容,可以参考:Swin Transformer: 使用滑动窗口的分层视觉transformer

6、轻量网络

近年来,一个新的研究分支已经形成,旨在为物联网中常见的资源受限环境设计小型而高效的网络。这一趋势也渗透到强大的目标检测器的设计中,我们可以看到,虽然大量的目标检测器能够实现很好的准确性和实时推理,但是这些模型大部分需要过多的计算资源,因此不能部署在边缘设备上。

过去,许多不同的方法都显示出令人兴奋的结果。利用高效组件和压缩技术,如剪枝,量化、哈希等提高了深度学习模型的效率。利用训练好的大网络来训练更小的模型,称为蒸馏,也显示了有趣的结果。然而,在本节中,我们将探讨一些在边缘设备上实现高性能的高效神经网络设计的典型例子。列表如下所示:

6.1、SqueezeNet

cnn领域的最新进展主要集中在提高基准数据集的最新精度上,这导致了模型尺寸及其参数的爆炸式增长。但在2016年,Iandola等人提出了一个更小、更智能的网络,称为SqueezeNet,它在保持性能的同时减少了参数。他们采用了三种主要的设计策略,即使用更小的滤波器,将输入通道的数量减少后作为3x3滤波器的输入,以及在网络中更靠后的位置放置下采样层。前两种策略在保持准确性的同时减少了参数的数量,第三种策略增加了网络的准确性。SqueezeNet的构建块称为fire模块,它由两层组成:squeeze层和expand层,每个层都有一个ReLU激活。squeeze层由多个1*1滤波器组成,expand层由一个1*1、3*3混合滤波器组成,从而限制了输入通道的数量。SqueezeNet架构由8个Fire模块穿插在卷积层中间而组成。受ResNet启发,带有残差块的SqueezeNet也被提出,相比普通模型提高了准确率。作者还对深度压缩进行了实验,相比AlexNet,模型尺寸压缩了510倍。SqueezeNet为提高神经网络体系结构的硬件效率提供了一个很好的候选方案。

6.2、MobileNet

MobileNet摆脱了传统小型模型的方法,如收缩、剪枝、量化或压缩,取而代之的是使用高效的网络架构。该网络使用深度可分离卷积,将传统卷积分解为depthwise卷积和1*1的pointwise卷积。一个标准卷积在所有通道上进行卷积,并一次性合并;而深度可分离卷积对输入的每个通道使用不同的卷积核,然后使用pointwise卷积进行合并。这种特征过滤和组合的分离降低了计算成本和模型规模。MobileNet由28个独立的卷积层组成,每个层随后是批处理标准化和ReLU激活功能。Howard等人还引入了两个模型收缩超参数:宽度倍增器和分辨率倍增器,以进一步提高模型的速度和缩小模型的尺寸。宽度倍增器通过减少输入和输出通道来均匀地操纵网络的宽度,而分辨率倍增器影响输入图像的大小及其在整个网络中的表示。MobileNet达到了一些成熟模型的准确率,但模型尺寸只是其数倍之小。Howard等人还展示了它如何在各种应用中进行推广,比如人脸属性、地理定位和目标检测。然而,它像VGG一样过于简单和线性,因此没有太多的通道来实现梯度流,不过在此模型的后期迭代中也得以解决。

6.3、ShuffleNet

2017年,Zhang等人提出了ShuffleNet,这是一种专门为移动设备设计的计算效率极高的神经网络架构。他们认识到,许多高效的网络随着规模的缩小而变得不那么有效,并声称这是由昂贵的1x1卷积造成的。结合信道打乱,他们提出了利用分组卷积来克服其信息流有限的缺点。ShuffleNet主要包括一个标准的卷积,然后是分成三个阶段的ShuffleNet单元。ShuffleNet单元类似于ResNet块,在3x3层使用深度卷积,并将1x1层替换为逐点分组卷积,且在深度卷积层之前有一个通道打乱的操作。ShuffleNet的计算代价可通过两个超参数管理: 组数控制连接稀疏度、缩放因子操纵模型大小。随着组数的增大,错误率会随着每个组的输入通道的减少而饱和,因此可能会降低表示能力。ShuffleNet表现优于当代模且具有相当小的模型尺寸,不过由于ShuffleNet唯一的改进是通道shuffle,因此模型的推理速度没有任何改善。

6.4、MobileNetv2

基于MobileNetv1,Sandler等人于2018提出了MobileNetv2——引入了具有线性瓶颈的反向残差这种新颖的模块,从而降低了计算复杂度并提高了精度。该模块将输入的低维表示扩展为高维,通过深度卷积进行过滤,然后将其投影回低维,不像常见的残差块先压缩、再卷积、最后展开。MobileNetv2包含一个卷积层,随后是19个残差bottleneck块,随后是两个卷积层。只有当stride为1时,残差bottleneck块才有shortcut连接。对于更高的步幅,由于尺寸的差异,不使用shortcut。他们还使用ReLU6作为非线性函数,而不是简单的ReLU,以限制计算。针对目标检测,作者使用MobileNetv2作为backbone,设计了一款SDD,称之为SSDLite,声称拥有比原始SSD少8倍的参数,同时实现具有竞争力的精度。它可以很好地泛化到其他数据集,且易于实现,因此受到社区的好评。

6.5、PeleeNet

现有的轻量级深度学习模型严重依赖深度可分离卷积,缺乏有效的实现。Wang等人提出了一种基于传统卷积的新型高效结构,名为PeleeNet,使用了计算守恒技术。PeleeNet的核心是DenseNet,但参考了许多其他模型的灵感。它引入两路dense层、bottleneck中的动态通道个数、过渡层压缩和传统的后激活,以降低计算成本和提高速度。两路dense层有助于获得不同尺度的接受域,使其更容易识别较大的物体。为了减少信息损失,使用了一个stem块。他们还放弃了DenseNet中使用的压缩因子,因为它损害了特征表达式并降低了准确性。PeleeNet包含了一个stem块、四个阶段的修改后的dense和转化层,以及最后的分类层。作者还提出了一种实时目标检测系统,称为Pelee,它是基于PeleeNet和SSD的变种。与移动设备和边缘设备上的当代检测器相比,它的性能是有所提升的,这表明简单的设计选择可以在整体性能上产生巨大的差异。

6.6、ShuffleNetv2

2018年,马宁宁等人在ShuffleNetv2中提出了一套设计高效网络架构的综合指南,他们主张使用速度或延迟等直接指标来衡量计算复杂度,而不是使用FLOPs等间接指标。ShuffleNetv2建立在四个指导原则上:1)输入和输出通道的宽度相等以最小化内存访问成本,2)根据目标平台和任务仔细选择组卷积,3)多路径结构以效率为代价获得更高的精度,4)像add和ReLU这样的元素操作在计算上是不可忽略的。根据上述原则,他们设计了一个新的构建块,通过通道分离层将输入分成两部分,然后是三个卷积层,这些卷积层与残差连接concat起来并通过一个通道shuffle层。对于下采样模型,去掉了通道分离,且残差连接带有深度可分离卷积层。在两个卷积层之间插入这些块的集合就产生了ShuffleNetv2。作者还对更大的模型(50/162层)进行了实验,获得了更高的精度,但FLOPs增加很少。ShuffleNetv2在计算复杂度方面也优于其他SOTA模型。

6.7、MnasNet

随着各种边缘设备对精确、快速和低延迟模型的需求不断增加,设计这样的神经网络比以往任何时候都更具挑战性。在2018年, Tan等人提出了基于自动神经结构搜索(NAS)方法设计的Mnasnet。他们将搜索问题定义为以高精度和低延迟为目标的多目标优化。它还对搜索空间进行因式分解,将CNN划分为独特的块,然后分别搜索这些块中的操作和连接,从而减少了搜索空间。这也允许每个块有一个独特的设计,不像早期的模型堆叠相同的块。作者使用基于rnn的强化学习代理作为控制器和训练器来测量准确性以及移动设备上的延时。每个采样的模型都在一个任务上进行训练,以获得其准确性,并在实际设备上运行以测试延迟,这用来获取软奖励目标和进行控制器更新。该过程一直重复,直到达到最大迭代次数或者得到一个更优的候选项。其由16个不同的块组成,有一些带有残差连接。MnasNet的速度几乎是MobileNetv2的两倍,且准确率更高。然而,与其他基于强化学习的神经结构搜索模型一样,MnasNet的搜索时间需要海量的计算资源。

6.8、MobileNetv3

MobileNetv3的核心与创建MnasNet的方法相同,只是做了一些修改。一种平台感知的自动神经体系结构搜索是通过NetAdapt在一个分解的层次搜索空间中执行的,它在多次迭代中删除了网络中未充分利用的组件。一旦获得架构方案,它就会对通道进行调整,对权重进行初始化,然后对其进行微调,以改进目标指标。该模型被进一步修改,以删除体系结构中一些计算昂贵的层,并获得额外的延迟优化。Howard等人认为,架构中的滤波器通常是彼此的镜像,即使去掉一半的滤波器也能保持准确性,这样可以减少计算量。MobileNetv3使用了一种混合的ReLU和hard swish作为激活核,后者主要在模型后面使用。hard swish和swish没有明显区别,不过前者在保留精度的同时计算成本更低。对于不同的资源使用用例,作者提出了两种模型:MobileNetv3-Large 和 MobileNetv3-Small。 MobileNetv3-Large由15个bottleneck块组成,而 MobileNetv3-Small由11个bottleneck块组成。其构建块也包含了squeeze和excitation层。类似于MobileNetV2,这些模型在SSDLite中充当特征检测器,比早期的模型快35%,同时实现更高的mAP。

6.9、Once-For-All (OFA)

在过去的几年中,神经体系结构搜索(NAS)的体系结构设计已经产生了很多SOTA,但是,由于样本模型训练,它们的计算成本很高。Cai等提出了一种新的解耦模型训练阶段和神经结构搜索阶段的方法。该模型只训练一次,可以根据需求从中提取子网络。OFA (Once-for-all)网络在深度、宽度、核大小和维数这四个重要维度上为子网络的选择提供了灵活性。由于它们嵌套在OFA网络中,干扰训练,因此引入了渐进收缩。首先,将所有参数设为最大值,训练最大的网络。随后,通过逐步减小内核大小、深度和宽度等参数维度,对网络进行微调。对于弹性核,在大核的中心使用小核。当中心被共享时,将使用一个内核转换矩阵来维持性能。为了改变深度,仅用大网络的前几层,后面的层将跳过。弹性宽度则利用了一个通道排序操作,重新分配通道,且在较小的模型中使用最重要的核。OFA在ImageNet中,以80%的top-1准确率达到了SOTA,并因其将GPU训练时间降低了好几个数量级,在低功耗CV挑战赛(LPCVC)中取得第四的成绩。它展示了为各种硬件需求设计轻量级模型的新范式。

7、结果对比

8、未来趋势

在过去的十年中,目标检测取得了巨大的进展。该算法在一些垂直领域已经达到了人类水平的精度,但仍有许多令人兴奋的挑战需要解决。在本节中,我们将讨论目标检测领域中的一些开放性问题。

AutoML:采用神经结构自动搜索(NAS)确定目标探测器的特性已经成为一个比较热的研究领域。前面章节已经展示了一些通过NAS设计的检测器,不过其仍处于初级阶段,算法的搜索是一个复杂且资源密集型的过程。

Lightweight detectors: 虽然轻量网络能够达到与成熟分类网络相当的性能,展示了 其巨大潜力,不过在检测精度上,仍然低于50%。随着越来越多的设备上机器学习的应用上市,对小型、高效和同样精确也高的模型的需求将会增加。

Weakly supervised/few shot detection: 大多SOTA目标检测模型都是在数以百万计的标注数据上训练的,这些数据费时费力难以扩展。在弱监督数据(也即:图像级的标注)上进行训练,将大大降低成本。

Domain transfer: 域转移是指在一个独立但相关的目标任务上使用一个在特定源任务的标注图像上训练的模型。它鼓励重用训练过的模型,减少对大型数据集可用性的依赖,以实现高精度。

3D object detection: 3D目标检测是自动驾驶中尤为关键的问题。即使模型已经达到了很高的准确性,但任何低于人类水平性能的应用都将带来安全问题。

Object detection in video: 目标检测器是为独立图像的推理而设计的,这缺乏了多帧图像间的相关性。使用多帧图像间的时空关系进行目标识别是一个开放性问题。

9、总结

尽管在过去的十年中,目标检测已经取得了很大的进步,但最好的检测器在性能上仍远未达到饱和。随着其应用程序在现实世界中的增加,对可部署在移动和嵌入式系统上的轻量级模型的需求将呈指数级增长。人们对这个领域越来越感兴趣,但它仍然是一个公开的挑战。在本文中,我们展示了两阶段、一阶段检测器是如何一步步发展并超越前期研究的。两阶段检测器通常更为准确,不过它们的速度更慢、难以满足类似自动驾驶这样的实时应用。然而,在过去几年里,一阶段检测器的发展改变了这个情况,其可以达到与前者等同的性能,而速度更快。正如图10所示,Swin Transformer是迄今为止最精确的检测器。随着目前检测器在精度上出现的正向趋势,我们对更准确、更快的检测器抱有很高的希望。

版权声明:本文为CSDN博主「叶舟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/oYeZhou/article/details/116934793

叶舟

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

PsROI Pooling 深入理解,附代码

faster rcnn 和 rfcn 的最大不同点在于rfcn采用了PsROI Pooling 保留了局部区域的位置敏感性。 输入batch_size N 的批次训练图像。 假设我们通过 RPN 层网络获取了 M 个 rois, 每个 ro