【论文学习】A Survey of Deep Learning-based Object Detection-基于深度学习的目标检测综述

本文主要是介绍【论文学习】A Survey of Deep Learning-based Object Detection-基于深度学习的目标检测综述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A Survey of Deep Learning-based Object Detection

基于深度学习的目标检测综述


原文:https://arxiv.org/pdf/1907.09408.pdf

Abstract

【目标检测】是计算机视觉最重要和具有挑战性的分支之一,广泛应用于监控安全,自主驾驶等。 对于检测任务,深度学习网络的飞速发展,给目标检测器性能带来极大的提升。
目标检测的目的:定位某类的语义对象。

1.分析现有典型检测模型的方法并描述基准数据集。
2.对各种目标检测方法的提供全面系统地概述,涵盖one-stage 和 two-stage 探测器。
3.列出了传统和新的应用。对目标检测的一些代表性分支也一并分析。
4.讨论利用这些目标检测方法的体系结构,以建立有效和高效的系统。
并为更好的跟进最新算法及进一步的研究,指出发展趋势。

I. 介绍

• 两类目标检测器

【two-stage 】 如 Faster R-CNN
【one-stage 】 如 YOLO, SSD

• 贡献

(1)
(2)
(3)

II. BACKBONE NETWORKS

Backbone network作为目标检测任务的基础特征提取器,将输入的图像转换为相应的特征图。
对于精度和速度的不同的需求,可选的backbone有 ResNet [11], ResNeXt [17], AmoebaNet [18] or lightweight backbones like MobileNet [19], ShuffleNet [20],
SqueezeNet [21], Xception [22], MobileNetV2 [23].

III. TYPICAL BASELINES

A. Two-stage Detectors

1. R-CNN

第一个基于CNN的物体检测方法R-CNN。Ross Girshick et al.提出。在数据集 PASCAL VOC上应用,而不是在像HOG特征之类的简单系统上。深度学习方法在物体检测领域被验证更加的高效。

R-CNN包含四个模块。第一个模块产生种类独立的区域建议。第二个模块在每一个区块建议的基础上提取一个修正长度(4096维)的特征向量。第三个模块是一系列的特殊线性SVM分类器,用来将每张图像中的物体分类。最后一个模块是一个bounding-box回归器,用于准确的预测bounding-box。

从图像分类到物体识别,想要达到快速收敛的一个方法是:在ImageNet classification dataset上预训练CNN。最后的全连接层用 the CNNs ImageNet specific 1000-way classification layer代替。然后在变形的建议窗口使用SGD精确调整CNN参数。

正负样本的确定:proposal boxes 和ground-truth boxes的IoU值低于0.3的定义为负样本,超过0.5的定义为正样本。

2. Fast R-CNN

Ross Girshick et al.一年后提出Fast R-CNN。 R-CNN完成的是一个前向的ConvNet并且没有共享计算结果,并在SVMs分类中花费了很长时间。Fast R-CNN从整张图中提取了特征,并传到RoI pooling层获取修正大小的特征作为接下来分类和bounding box回归的输入。这样,特征只需要提取一次,并传送到了CNN用于分类和定位,这节省了大量CNN计算时间和很大的硬盘存储。

R-CNN的训练是一个多阶段的处理:pre-training stage, fine-tuning stage, SVMs classification stage and bounding box regression stage。Fast R-CNN是一个阶段的end-to-end的训练处理,在每个标记的RoI上联合训练分类和定位是采用多任务损失的方法。

Fast R-CNN的 另一个提升采用了RoI pooling层从region proposals提取修正大小的特征图。而R-CNN中的region proposals有不同的大小。这个操作不需要为变形区域保留空间信息。为了更快检测,作者采用了截断的SVD,这加速了全连接层计算的前向通过。

在 PASCAL VOC 2007数据集上,mAP从66.0%提升到66.9%;训练时间从84个小时降低到了9.5个小时;测试效率因为截断SVD从47秒提升到0.32秒,快了213倍。(测试平台 Nvidia K40 GPU)

3. Faster R-CNN

三个月后,基于区域的CNN基线提出,即Faster R-CNN。Fast R-CNN对于建议的RoI采用选择性搜索,这种方式很慢,并且与检测网络需要相同的时间。Faster R-CNN用一种新的RPN(region proposal network)代替它。这种新的RPN是一种全卷积网络,可以有效地预测建议区域,这种建议区域有着广泛的尺寸和宽高比例。它加速了建议区域的产生,并且分享了全图的卷积特征和一些通用的卷积层。

对于不同尺寸物体的检测,另一个新的方法是采用多尺寸的anchors作为推理依据。这种anchors不需要输入图像或者特征的多个尺寸,就可以更大的简化错尺寸建议区域的产生。

在最后共享的卷积层的输出上,采用了一个3*3的滑动窗口,每一个特征窗口的中心点与原始图像上的一个点相关,这个点就是K个anchor boxes的中心点。作者设置了3个不同尺寸和3个不同矿高比的anchor boxes。通过测量预测box和ground truth box之间的距离,来优化预测box的位置。

实验证明Faster R-CNN在精度和效率上都得到了很大提升。 在 PASCAL VOC 2007数据集上,mAP从66.9%提升到69.9%;整个训练时间降低了10倍(从1830ms降到198ms);处理效率从0.5帧达到了5帧。

4. Mask R-CNN

Mask R-CNN是Faster R-CNN的一项扩展工作,主要应用在分割任务中。葫芦哦增加的平行mask分支,它可以看做更精确的物体检测。 与Faster R-CNN相比, Mask R-CNN从两个方面提升了精度。

第一方面,增加了FPN(Feature Pyramid Network)。FPN包含了一个 bottom-up和 top-down并从侧面链接。 bottom-up通道是一个backbone ConvNet,它计算了一个特征层次结构,其中包含了以2为倍数的几个尺寸的特征图。 top-down通道通过简单特殊的上采样(语义更强,更高金字塔层的特征图)处理高分辨率的特征。这种特征金字塔网络提供了重要的特征信息:高分辨率的特征图检测小物体,低分辨率的特征图在语义信息中更丰富的检测大物体。

第二方面, 用RoIAlign代替RoI Pooling。传统的RoI Pooling在两个地方量化浮点数来获取近似的特征值。一是用在了每个RoI特征图中计算位置信息,二是在将RoI特征图分成大小相同的小格子的过程中用到了量化操作。这两次量化操作引起了RoI和提取特征的不对齐问题。

RoIAlign首先在每个RoI特征图计算浮点位置时,采用双线性插值的方法,在每个小格子中的四个定期采样位置计算提取的特征值。然后使用最大或者平局池化来获取每个格子的值,并聚合所有结果。

实验证明,在MS COCO数据集上,采用Resnet-FPN提升了1.7点的box AP, RoIAlign提升了1.1个点的box AP。

B. One-stage Detectors

1. YOLO

Joseph Redmon et al 提出。主要贡献是实时检测。一是预测框少于100个;二是它是一个统一的结构,是一个回归问题,可以从输入图像中直接提取特征用于预测位置和分类。

YOLO先将输入图像分成一个SS的网格,每个网格单元责任作用于检测物中心位置落入点。可信度用两部分相乘,P(object)是一个box包含一个物体的可能性, IOU显示了一个box包含一个物体的精确度。每个网格单元预测了B个bounding boxes和他们的可信度,以及C个类的C维条件概率。特征提取网络包含了24个卷积网络和2个全连接层。作者在一个全连接层之后使用了20个卷积层和一个平均池化层,用来在ImageNet数据集上的预训练。预训练阶段的输入图像分辨率是224224,在检测阶段输入图像的分辨率是448*448。

实现显示YOLO不善于精准定位,而且定位错误是主要的预测错误。在 PASCAL VOC数据集上,YOLO获得63.4%mAP和45帧, Fast R-CNN 获得70.0%mAP和0.5帧, Faster R-CNN 获73.2%mAP和7帧。

2. YOLOv2

YOLOv2是YOLO的升级版。更新内容如下:

  1. Batch Normalization. 由于优化步骤中采用了随机梯度下降SGD,所以标准化整个训练集是不可能的。但是对于一个卷积网络层修正它的输入分布具有正向结果。那么怎么做呢? 由于在训练中SGD采用了mini-batch,所以我们标准化一个大小为m的mini-batch的激活函数,标准化后这个大小为m的mini-batch均值为0,方差为1. 最后每个mini-batch的元素从相同的分布中被抽样。这钟操作就可以被看做一个BN层。YOLOv2在每个卷积层前增加了一个BN层。这个操作可以提升至少2%mAP。

  2. High Resolution Classifier。YOLO的分类器采用的是224224的分辨率,检测阶段采用448448的分辨率。在使用物体检测任务前必须将图像转到448448的大小。而YOLOv2在分类网络中增加了一个fine-tuning处理使用448448输入。这提高了4%的mAP。

  3. Convolutional With Anchor Boxes。YOLO通过全连接层产生物体的位置信息。参考Faster R-CNN,YOLOv2shouci移除了全连接层,并采用anchor boxes预测分类和位置信息。这提高了7%的召回率,降低了0.3%的mAP。

  4. 采用K-means聚类在训练集上的bounding boxes自动获取较好的先验率,然后采用dimension clusters直接预测bounding box的中心位置。

  5. Fine-Grained Features。用于提高小物体的识别。通过不同通道的临近特征堆叠,将高分辨率特征和低分辨率特征级联起来,提升1%。

  6. Multi-Scale Training。用于预测不同分辨率的图像。每10个batches,网络自动从{320,352,……,608}选择一个新的图像大小进行训练。在VOC 2007数据集上,从63.4%mAP提升到78.6%mAP,帧率从45变为40.

  7. YOLOv2提出新的分类架构Darknet-19(含有19个卷积层和5个最大池化层)。

3. YOLOv3

YOLOv3是YOLOv2的提升版本。

  1. 采用多标签分类,这是独立的逻辑分类器,可以适应更多负责的数据集包含标签重叠的问题。

  2. 采用三种不同尺寸的特征图预测bounding box。

  3. 受到ResNet的启发,提出一种更深的,robust的特征提取器——Darknet-53。

YOLOv3可以更多检测出小物体,但相比较而言,大中物体的检测有很逊色。

4 . SSD

SSD(single-shot detector)可在one-stage 中针对多个类别的单次检测器,直接预测多个尺度不同的特征图中,每个位置上一组固定比例边界框的类别score和框偏移。如图4。
在这里插入图片描述
每个特征图中,默认的 bounding boxes 具有不同的宽高比和尺度。不同的特征图中,默认 bounding boxes 的尺度,是在最高layer和最低layer间有规则间隔的情况下计算的,每个特征图都学习如何对特定尺度的目标作出响应。对于每个默认框,它将预测所有目标类别的偏移量和置信度。Fig.3 © 展示了这种方法。
Test
Predicting each of the pyramidal feature hierarchy from a ConvNet as if it is a image pyramid like SSD

在训练阶段,默认的bounding boxes与ground truth boxes匹配上时作为正样本,剩余的为负样本。对于大量的负样本,作者对每个默认box采用高置信度损失,然后选取排名靠前的一些,使得负样本与正样本占比最高为3:1。同样,作者也采用了数据增广以提升精度和效率。

SSD512在测试数据集PASCAL VOC 2007上达到了81.6%mAP,在测试数据集PASCAL VOC

2012 上达到了80.0%mAP。而Faster R-CNN在这两个数据集上的mAP分别是78.8%和75.9%,YOLO在VOC2012 为 57.9%mAP。在 MS COCO DET数据集上SSD512完胜Faster R-CNN。

4 . RetinaNet

Tsung-Yi Lin et al.2018年2月提出。 RetinaNet是一个one-state的物体检测采用中心损失作为损失函数。对于R-CNN为什么要分两个阶段才能检测出准确的物体,原因是一阶段检测器训练网络聚合时出现前景和背景极端不平衡。因此作者提出一个中心损失函数,来降低好分类或者简单样本的比重损失,重点关注南训练的样本,以避免大量的简单负样本在训练的过程中压制分类器。

RetinaNet继承了之前一阶段检测器的快速性能,并且极大地客服了一阶段检测器对于正负样本不平衡时难以训练的问题。它对中小物体的检测大幅度提升。

5. DSSD

Deconvolutional Single Shot Detector,是SSD的修正版本。增加了预测陌路昂和反卷积模块,同样采用了ResNet-101作为主干。

在预测模块, Fu et al.增加了一个残差块给每个预测层,然后 再预测层和残差块的输出执行元素对元素的处理。反卷积模块为了加强特征增加了特征图的分辨率。反卷积层跟在预测层之后。

如何训练的呢?首先在基于ResNet-101的主干网络上预训练,基于数据集 ILSVRC CLS-LOC; 然后在检测数据上采用321321或者513513的输入训练原始SSD模型;最后冻结所有SSD模块权重训练反卷积模型。

实验证明,当增加了预测模块和反卷积模块后, DSSD513模型在测试数据集 PASCAL VOC 2007带来了2.2%的增强。

6 . RetinaNet

Tsung-Yi Lin et al.2018年2月提出。 RetinaNet是一个one-state的物体检测采用中心损失作为损失函数。对于R-CNN为什么要分两个阶段才能检测出准确的物体,原因是一阶段检测器训练网络聚合时出现前景和背景极端不平衡。因此作者提出一个中心损失函数,来降低好分类或者简单样本的比重损失,重点关注南训练的样本,以避免大量的简单负样本在训练的过程中压制分类器。

RetinaNet继承了之前一阶段检测器的快速性能,并且极大地客服了一阶段检测器对于正负样本不平衡时难以训练的问题。它对中小物体的检测大幅度提升。

7. M2Det

为了适应大量尺寸变化的物体实例检测, Zhao et al. 提出多水平特征金字塔网络(multi-level feature pyramid network (MLFPN)),构造更多有效的特征金字塔。作者分三步获取最终增强的特征金字塔:

首先,类似于FPN,从多层网络中提取多层特征融合作为基本特征。

其次,基本特征输入到一个block中,组成可替代的联合Thinned U型模型和特征融合模型。同时获取TUM的解码层作为下一步的特征。

最后,具有相同尺寸的解码层聚到一起构造一个包含多层特征的特征金字塔。

剩余的工作就是以一种端到端的方式遵循SSD架构获取boundingbox位置和分类结果。

8 . RefineDet

这个网络包含两个内关联的模块:一个anchor提炼模块和物体检测模块。这两个模块通过一个专一链接块连接到一起。训练过程是一个端到端的方法,有三个阶段引导:预处理,检测,NMS。

经典的一阶段检测器如SSD,YOLO,RetinaNet等使用一步回归的方法获取最终结果。作者发现使用两步级联回归方法可以更好的预测难以检测的物体,特别是小物体,并且可以提高检测和定位的精度。

C. Latest Detectors

1. Relation Networks for Object Detection

Hu et al.提出的一种适应注意力模型。这种相关模型添加在检测器前,两个全连接层之前,用于获得更强的特征。

2. DCNv2

Deformable convolutional networks DCN。 Jifeng Dai et al. 提出。目的是为了学习在有效的空间目标的支持区域内适应几何变化反应。DCN可以处理变形的核和位移。变形的ROI 池化也可以适应部分不同形状的物体位置。DCNv1获得了很好的精度提升。DCNv2 比 DCNv1利用更多的变形卷积层,在conv3-conv5阶段中代替常规的卷积层;所有变形层被一个学习的标量调节;作者采用特征模仿去更多的提升检测精度:通过结合DCN中每个ROI特征的特征模仿损失,这些特征是相似于从剪切图像中提取的好的特征。

在数据集COCO 2017 test-dev上, DCNv2获得了45.3%的mAP, DCNv1获得了41.7%的mAP, 常规 Faster R-CNN 在ResNet-101上获得了40.1%的mAP。

3. NAS-FPN

作者从谷歌大脑中采用了神经架构搜索找到了一些新的特征金字塔架构,称为NAS-FPN。包含top-down,bottom-up连接融合了各种尺寸的特征;重复FPN架构N次,将它们级联到一个大的结构中;高分辨率的特征用于检测小目标。堆叠更多的金字塔网络,增加特征维度,使用高容量的架构都提升了检测精度。

在 COCO test-dev数据集上, NAS-FPN 使用ResNet-50,拥有256个特征维度,吵多了原始FPN2.9%平均精度。NAS-FPN 利用 AmoebaNet作为主干网络,并堆叠7个FPN,拥有384个特征维度,在该数据及上可以达到48%的平均精度。

IV. DATASETS AND METRICS

目标检测需要标出目标所属的类别和及其在图像中的位置。其中目标的位置常用外接框来表示。如图5。
在这里插入图片描述

V. ANALYSIS OF GENERAL IMAGE OBJECT DETECTION METHODS

VI. APPLICATIONS AND BRANCHES

VII. CONCLUSIONS AND TRENDS

A. 结论

B. 趋势

REFERENCE

这篇关于【论文学习】A Survey of Deep Learning-based Object Detection-基于深度学习的目标检测综述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019028

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2