Advertisement

【Real-Time Detection survey】实时目标检测网络综述论文 A Comprehensive Study of Real-Time Object Detection Network

阅读量:

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_{ce}=-\sum_{i=1}^{n}C_{i}\log(p_i) 其中p_i为类别概率。

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

  • focal loss
    L_{FL}=-\alpha_i(1-p_i)^{\lambda}\log(p_i)

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

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

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

2.2 目标检测难点

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

2.3 常见的实时检测头

2.3.1 ThunderNet
ThunderNet
2.3.2 YOLO
YOLO
2.3.3 SSD
SSD
2.3.4 CenterNet
CenterNet
2.3.5 FCOS
FCOS
2.3.6 NanoDet
NanoDet
2.3.7 DETR
DETR
2.3.8 TTFNet
TTFNet

2.4 常见的Backbone

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

2.5 常见的公开数据集

开源数据集

2.6 评价指标

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

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

precision=\frac{TP}{TP+FP}
recall=\frac{TP}{TP+FP}

根据precision和recall可以计算F1:
F1=2\times\frac{precision\times{recall}}{precision+{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网络。通常一阶段网络倾向于欠自信,二阶段网络倾向于过度自信。
Calibration

ECE和D-ECE的数值结果
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

6. MAC和算法精度,

在这里插入图片描述

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

在这里插入图片描述

8. CASE, 肠息肉检测

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~