admin管理员组

文章数量:1122852

【Real

A Comprehensive Study of Real-Time Object Detection Networks Across Multiple Domains: A Survey

文章目录

  • A Comprehensive Study of Real-Time Object Detection Networks Across Multiple Domains: A Survey
    • 导言
    • 1. 总览
      • 论文贡献点
    • 2. 目标网络结构介绍
      • 2.1 目标检测网络的基本组件
      • 2.2 目标检测难点
      • 2.3 常见的实时检测头
        • 2.3.1 ThunderNet
        • 2.3.2 YOLO
        • 2.3.3 SSD
        • 2.3.4 CenterNet
        • 2.3.5 FCOS
        • 2.3.6 NanoDet
        • 2.3.7 DETR
        • 2.3.8 TTFNet
      • 2.4 常见的Backbone
      • 2.5 常见的公开数据集
      • 2.6 评价指标
    • 3 实验结果
      • 3.1 COOC上mAP, FPS和Energy
      • 3.2 不同head和不同backbone下,参数量、FPS、mAP对比
      • 3.3 所有网络结构组合性能完全对比
      • 3.4 不同网络在小、中、大目标上的性能对比
      • 3.5 不同输入尺度对速度和精度的影响
      • 3.6 不同anchor大小对速度和精度的影响
      • 3.7 不同置信度阈值大小对速度和精度的影响
      • 3.8 是否使用Deformable Conv对速度和精度的影响
    • 4. 目标检测矫正(Calibration)
    • 5. 天气变化和噪声对检测算法精度、鲁棒性的影响
    • 6. MAC和算法精度,
    • 7. 通用GPU和边缘设备部署、量化结果对比
    • 8. CASE, 肠息肉检测

导言

A Comprehensive Study of Real-Time Object Detection Networks Across Multiple Domains: A Survey
今天分享一篇关于实时目标检测网络综述的论文,22年8月发表在TMLR。本文在多个数据集(COCO、VOC、BDD、Cityscapes等)上,分析了多种实时目标检测算法(基于anchor的、基于关键点检测的、基于transformer)在多种目标特性(精度、可靠性、延时、资源占用、耗能、灵活性、鲁棒性)上的表现。还分析了诸多变量(如输入尺寸、anchor大小、置信度阈值、网络层类型)对以上性能指标的影响。还分析了这些检测网络在数据分布偏移、自然环境变化、对抗攻击等因素影响下的鲁棒性,以及提供对预测结果可靠性的校准分析。另外分析了诸多网络在两个真实任务上(自动驾驶检测、肠道息肉检测)的表现。最后还进一步分析了多种网络结构在边缘嵌入式设备上(NVIDIA Jetson TX2,Jetson Xavier)的实时性能表现。论文实验非常丰富,给出了工业界和学界可能忽然的一些问题的经验指导,值得一读。

1. 总览


本文对比的检测框架包括二阶段的ThunderNet、一阶段的YOLOv2、SSD、基于transformer的端到端检测器DETR、基于点检测的CenterNet、TTFNet、FOCS、NanoDet。同时对比了多种Backbone。网络特点汇总如下:

并绘制了属性八边形对比。

从图上可看出 NanoDet 在多数属性上都取得了较好的结果,SSD具有最低的校准误差。

论文贡献点

  1. 九种特征提取网络、八种检测头的组合研究。涉及两阶段、一阶段、基于anchor、基于关键点检测、基于transformer的实时检测网络对比实验。
  2. 在基线数据集上对比各网络的 精度, 速度,参数量,计算量,能耗
  3. 分析输入尺寸、anchor大小、置信度阈值、和特定结构对网络性能的影响。
  4. 分析网络在不同自然干扰、不同强度下对抗攻击下的鲁棒性。
  5. 通过评估网络校准分数分析网络结构的可靠性。
  6. 在自动驾驶BDD数据检测应用和分布外数据上的泛化能力对比。
  7. 通过TensorRT加速优化的 边缘设备部署分析:Jetson-Xavier,Jetson-Tx2
  8. 医学图像病灶检测的应用分析:Kvasir-SEG上检测癌性息肉。

2. 目标网络结构介绍

目标检测任务同时对目标实例进行分类和定位。通常可分为一阶段两阶段网络。

两阶段检测网络通常包括一个独立的Region Proposal Network (RPN)。通过RPN提取到感兴趣区域,然后分别输入到分类head进行分类,输入到回归head得到定位坐标。通常两阶段网络很少用于实时检查。ThunderNet通过轻量化的RPN结构实现了实时检测。
一阶段检测网络不包含独立的Proposal 结构,而是考虑所有可能的目标点。一阶段检测网络通常可分为基于anchor的和基于关键点定位的网络架构。
anchor based 通过预定义的anchor(锚点)辅助预测。比较有名的就是YOLO系列。将输入图像分成网格点,当框的中心点落在格子内时,这个格子就对应一个预测框。每个网格点可以输出多个预测框。SSD 通过FPN(特征金字塔)结构预测不同尺度的目标框和类别。
缺点在于anchor的定义是数据集相关的,包含了较多的超参数,比如anchor数量,长宽比等。
后续研究提出的keypoint based 将目标看做是点或者点的集合,而不是矩形框。关键点通常是目标的中心点或者四周的角点,通过点直接回归框的位置、长宽,而不是通过预定义的anchor框。基于点检测的检测网络主要包括CornetNet,CenterNet,FCOS, NanoDet和TTFNet。

基于CNN的检测网络通常缺乏全局上下文信息,而且需要较为复杂的后处理,比如NMS(非极大值抑制,过滤重复的框)。20年有研究提出基于Transformer的端到端目标检测框架DETR。以集合预测的形式直接预测目标框集合,省去了NMS的麻烦,取得了非常高的精度。

2.1 目标检测网络的基本组件

目标检测:给定一张图像,以及预定义的类别,输出目标实例的坐标(cx,cy,w,h, θ \theta θ)和目标的类别。目标检测网络通常包括一个Backbone 提取多维特征。提取到的特征输入检测Head 分别对目标进行分类和坐标回归。

目标检测常用的损失函数包括:

  • 分类交叉熵Loss
    L c e = − ∑ i = 1 n C i log ⁡ ( p i ) L_{ce}=-\sum_{i=1}^{n}C_{i}\log(p_i) Lce​=−∑i=1n​Ci​log(pi​) 其中 p i p_i pi​为类别概率。

交叉熵损失未考虑检测任务中的正负样本不平衡问题。Focal Loss 提出将困难样本赋予更高的权重,降低简单样本权重提高性能。

  • focal loss
    L F L = − α i ( 1 − p i ) λ log ⁡ ( p i ) L_{FL}=-\alpha_i(1-p_i)^{\lambda}\log(p_i) LFL​=−αi​(1−pi​)λlog(pi​)

回归loss通常为L1 Loss或者L2 Loss. 此外还有辅助回归的IOU Loss, GIOU Loss等,提高收敛速度和检测精度。
典型的检测网络架构图如下:

  • NMS(Non-Maximum Suppression)
    传统目标检测会输出大量重复的检测框,通过极大值阈值后处理操作过滤。具体来说,将预测框置信度从大到小排序,选择置信度最高的框,剩下目标框和当前置信度最高框的IOU大于阈值的将被剔除。重复这个过程直到过滤掉所有重复目标。在密集目标检测任务中,可能有部分目标因为和其他框距离太近而被过滤掉。为了解决该问题提出了Soft-NMS。

    soft-nms中给IOU大于阈值的目标置信度加了(1-IOU)的惩罚。

而基于关键点检测的算法中不采用基于IOU的NMS,而是通过简单的给headmap 取峰值实现过滤

2.2 目标检测难点

理想的目标检测器需要同时取得高精度和高速度。精度和速度同时依赖于输入图像大小和目标尺寸。通常高分辨的输入带来更好的精度,但是速度会同时下降。如何取得精度和速度上的平衡是具有挑战性的。
通常来说,目标检测器在小目标检测性能要弱于中等目标和大目标。密集目标检测和旋转框检测也相对更有难度。
为了取得较高的精度,检测算法需要足够的鲁棒,以适应巨大的类内差异(尺寸,形状,类型,姿态,形变)等。基于anchor的检测器需要根据不同的数据集设计不同的anchor。
另一个挑战在于,在真实场景下的目标检测,需要适应不同的自然天气变化(雨天、雾天、雪天)和灯光条件。在自动驾驶领域,需要考虑复杂的背景、拥挤的场景和摄像头参数。
最后,深度神经网络依赖短期学习线索,很容易在训练数据分布上过拟合,而在分布外的样本上性能下降。在未见过的分布外数据上的泛化能力也是需要重点考虑。

2.3 常见的实时检测头

2.3.1 ThunderNet

2.3.2 YOLO

2.3.3 SSD

2.3.4 CenterNet

2.3.5 FCOS

2.3.6 NanoDet

2.3.7 DETR

2.3.8 TTFNet

2.4 常见的Backbone

基础网络特性
ReNet经典网络,引入shortcut机制
DarkNet轻量特征提取
Xception基于Depth-wise separable conv
MobileNetinverted residual blocks, Depth-wise separable conv, 轻量化网络
Shuffle-Net将通道数一分为二,输入两个residual block, shuffle channel,减少延时
VoVNetOne-shot Aggregation,降低加乘法计算量,提高GPU运算效率
EfficientNet基于mobile和NAS的轻量化网络,用了Mobile Inverted Bottleneck Conv和 Squeeze & Excitation 模块, 根据参数化网络的深度,宽度和输入大小,获取不同尺度的网络结构
HarDNet采用 Harmonic Densely Connected
DeiTDate-efficient image Transformer

2.5 常见的公开数据集

2.6 评价指标

在特定IOU阈值下根据像本的分类结果可以定义TP和FP,从而计算precision和recall。

precision表示网络预测样本中,正确样本的比率
recall 表示网络检测出所有正样本的能力

p r e c i s i o n = T P T P + F P precision=\frac{TP}{TP+FP} precision=TP+FPTP​
r e c a l l = T P T P + F P recall=\frac{TP}{TP+FP} recall=TP+FPTP​

根据precision和recall可以计算F1:
F 1 = 2 × p r e c i s i o n × r e c a l l p r e c i s i o n + r e c a l l F1=2\times\frac{precision\times{recall}}{precision+{recall}} F1=2×precision+recallprecision×recall​
F1分数在precision和recall中取得均衡。PR 曲线表示precision和recall在不同阈值下的动态变化趋势。AP值(average of precision)表示IOU阈值从[0,1]时PR曲线下面积。mAP为所有类别的AP值平均。

PASCAL VOC 中 采用mAP50为评价指标,即IOU阈值为0.5时的mAP。
COCO中将IOU阈值[0.5,0.95]根据步长为0.05分成10等份,然后计算mAP。

MAC (multiply-accumulate operations)统计卷积,BN, FC计算量。

3 实验结果

3.1 COOC上mAP, FPS和Energy


其中mAP越高颜色越深,FPS速度越快颜色越深,Energy能耗越低颜色越浅

3.2 不同head和不同backbone下,参数量、FPS、mAP对比


右上角模型表示速度最快,精度最高

3.3 所有网络结构组合性能完全对比


3.4 不同网络在小、中、大目标上的性能对比

3.5 不同输入尺度对速度和精度的影响

3.6 不同anchor大小对速度和精度的影响


按表格中可见、对于ThunderNet,适当降低anchor大小可以提升速度和精度

3.7 不同置信度阈值大小对速度和精度的影响

3.8 是否使用Deformable Conv对速度和精度的影响


可见Deformable Conv基本都能明显提升算精度,但是也会降低推理速度。

4. 目标检测矫正(Calibration)

一些对安全性要求较高的应用,(如自动驾驶、医学影像分析)需要目标检测算法具有高精度和高可靠性。检测器输出的结果,不仅需足够准确,还需要在提示出结果不正确的概率。一般的检测网络输出置信度和目标的可信度之间没有正比的关系。模型矫正提供对检测器不确定度的评估,可以将不确定度提供给终端用户,或者用于模型输出的进一步分析处理。它反映了模型预测结果最终可能的精度的度量。大多数论文和模型旨在优化最终的算法精度,而很少考虑输出的可信度。

主流的模型矫正工作均集中于分类任务,Expected Calibration Error (ECE) 是一种常见的评估校准以及评估精度和置信度差异的评价指标。在分类域中,该得分表示分类精度与估计置信度的偏差。【Multivariate confidence calibration for object detection,2020cvpr】将该指标扩展到目标检测领域,提出 Detection-ECE, 在考虑分类置信度的同时,还会计算目标框的特性。

D-ECE计算时,将置信度空间和Bounding-box空间等份成区间,然后遍历所有的区间,并累计每个区间内AP值和置信度之间的差值。分类时只考虑置信度,但是在检测任务中,还需要考虑目标框的置信度,cx, cy, w,h。下图为基于HarDNet-backone下不同检测框架的可靠性图。绿色带阴影的部分表示相对于完美矫正结果的差异。深色阴影表示低估置信度的结果,即准确的预测目标置信度低,如YOLO网络。浅绿色表示网络输出过于自信,如DETR,倾向于给假阳性结果较高的置信度得分。矫准越好的网络,可靠性越高,如SSD网络。通常一阶段网络倾向于欠自信,二阶段网络倾向于过度自信。

ECE和D-ECE的数值结果

5. 天气变化和噪声对检测算法精度、鲁棒性的影响


6. MAC和算法精度,

7. 通用GPU和边缘设备部署、量化结果对比

8. CASE, 肠息肉检测

本文标签: Real