目标检测研究综述

发布时间:2023-11-27 19:30

 

1、国内外研究现状

1.1 传统物体检测识别的研究现状

1.2 基于深度学习物体检测识别的研究现状

2、目标检测模型与发展(对比)

2.1 传统目标检测模型与发展

(1) Viola Jones检测器

(2) HOG 检测器

(3) 基于可变形部件的模型(DPM)

2.2 基于深度学习目标检测模型与发展

2.2.1基于卷积神经网络的单级检测器

2.2.2基于卷积神经网络的双级检测器

3、目标检测常用方法(对比)

3.1 目标检测整体框架

3.2 One-Stage目标检测算法

3.2.1 如何设计CNN结构

3.2.2 如何构建回归目标

3.2.3 如何设计损失函数

3.3 two-Stage目标检测算法

3.3.1 如何高效准确地生成Proposals

3.3.2 如何获取更好的ROI features

3.3.3 如何加速Two-Stage检测算法

3.3.4 如何改进后处理方法

4、 目标检测常用数据集

5、 目标检测常用评价指标

6、 参考文献

1、国内外研究现状

目标检测是计算机视觉和数字图像处理的一个热门方向,广泛应用于机器人导航、智能视频监控、工业检测、航空航天等诸多领域,通过计算机视觉减少对人力资本的消耗,具有重要的现实意义。因此,目标检测也就成为了近年来理论和应用的研究热点,它是图像处理和计算机视觉学科的重要分支,也是智能监控系统的核心部分,同时目标检测也是泛身份识别领域的一个基础性的算法,对后续的人脸识别、步态识别、人群计数、实例分割等任务起着至关重要的作用。由于深度学习的广泛运用,目标检测算法得到了较为快速的发展,本文广泛调研国内外目标检测方法,主要介绍基于深度学习的两种目标检测算法思路,分别为One-Stage目标检测算法和Two-Stage目标检测算法。

1.1 传统物体检测识别的研究现状

物体检测一直是计算机视觉领域经久不衰的研究方向。物体检测同样是一个主观的过程,对于人类来说相当简单。就连一个没受过任何训练的孩子通过观察图片中不同的颜色、区域等特征就能轻易定位出目标物体。但计算机收到这些RGB像素矩阵,不会直接得到目标(如行人、车辆等)的抽象概念,更不必说定位其位置了。再加上目标形态千差万别,目标和背景重合等问题,使得目标检测难上加难。

传统的目标检测算法包括三个阶段,首先生成目标建议框,接着提取每个建议框中的特征,最后根据特征进行分类。以下是这三个阶段的具体过程:

生成目标建议框。当输入一张原始图片时,计算机只认识每一个像素点,想要用方框框出目标的位置以及大小,最先想到的方法就是穷举建议框,具体的做法就是用滑动窗口扫描整个图像,还要通过缩放来进行多尺度滑窗。很显然这种方法计算量很大,很多都是重复的计算,并且效率极低。

提取每个建议框中的特征。在传统的检测中,常见的HOG算法对物体边缘使用直方图统计来进行编码,有较好的表达能力。然而传统特征设计需要人工指定,达不到可靠性的要求。

分类器的设计。传统的分类器在机器学习领域非常多。具有代表性的SVM将分类间隔最大化来获得分类平面的支持向量,在指定特征的数据集上表现良好。

然而传统的算法在预测精度和速度上都很不理想,随着深度学习算法在计算机视觉领域大放异彩,并逐渐成为霸主,传统识别算法渐渐暗淡。

1.2 基于深度学习物体检测识别的研究现状

到目前为止,高性能的检测算法都基于深度学习。最早的R-CNN首次使用深度模型提取图像特征,以49.6%的准确率开创了检测算法的新时代。早期的物体检测,都以滑动窗口的方式生成目标建议框,这种方式本质上与穷举法无异。

实际上,重复计算问题仍然没有得到解决。Fast R-CNN的出现正是为了解决冗余计算这个问题。Fast R-CNN添加了一个简化的SPP层,使得它的训练和测试过程能够合并在一起。

Fast R-CNN使用Selective Search来生成目标候选框,但是速度依然达不到实时的要求。Faster R-CNN则直接利用RPN(Region Proposal Networks)网络来生成目标候选框。RPN输入任意像素的原始图像,输出一批矩形区域,每个区域对应一个目标坐标信息和置信度。从R-CNN到Faster R-CNN,是一个合并的过程,它把传统检测的三个步骤整合到同一个深度网络模型中。

基于回归算法的检测模型又将检测领域带到一个新的高度。其中以YOLO和SSD方法为代表的检测方法做到了真正意义上的实时效果。

R-CNN到Faster R-CNN,再到SSD等是检测方法发展的主要轨迹。实际应用中还有许多特定物体的检测方法,如人脸检测、行人检测等。随着技术的发展,但使用的主要方法都大同小异。

2、目标检测模型与发展(对比)

以2012年为分水岭,目标检测在过去的二十多年中可大致分为两个时期:20142年前的“传统目标检测期”及之后的“基于深度学习的目标检测期”。

2.1 传统目标检测模型与发展

早期的目标检测算法大多是基于手工特征构建的。由于当时缺乏有效的图像表示,人们别无选择,只能设计复杂的特征表示及各种加速技术对有限的计算资源物尽其用。

目标检测研究综述_第1张图片

 图2.1 传统目标检测模型与发展

(1) Viola Jones检测器

2001年,P.Viola和M.Jones在没有任何约束(如肤色分割)的情况下首次实现了人脸的实时检测。他们所设计的检测器在一台配备700MHz Pentium III CPU的电脑上运行,在保持同等检测精度的条件下的运算速度是其他算法的数十甚至数百倍。这种检测算法以共同作者的名字命名为“Viola-Jones (VJ) 检测器”以纪念他们的重大贡献。

VJ检测器采用最直接的检测方法,即滑动窗口(slide window):查看一张图像中所有可能的窗口尺寸和位置并判断是否有窗口包含人脸。这一过程虽然听上去简单,但它背后所需的计算量远远超出了当时计算机的算力。VJ检测器结合了“积分图像”、“特征选择”和“检测级联”三种重要技术,大大提高了检测速度。

1)积分图像:这是一种计算方法,以加快盒滤波或卷积过程。与当时的其他目标检测算法一样,在VJ检测器中使用Haar小波作为图像的特征表示。积分图像使得VJ检测器中每个窗口的计算复杂度与其窗口大小无关。

2)特征选择:作者没有使用一组手动选择的Haar基过滤器,而是使用Adaboost算法从一组巨大的随机特征池(大约18万维)中选择一组对人脸检测最有帮助的小特征。

3)检测级联:在VJ检测器中引入了一个多级检测范例(又称“检测级联”,detection cascades),通过减少对背景窗口的计算,而增加对人脸目标的计算,从而减少了计算开销。

(2) HOG 检测器

方向梯度直方图(HOG)特征描述器最初是由N.Dalal和B.Triggs在2005年提出的。HOG对当时的尺度不变特征变换(scale-invariant feature transform)和形状语境(shape contexts)做出重要改进。

为了平衡特征不变性(包括平移、尺度、光照等)和非线性(区分不同对象类别 ),HOG描述器被设计为在密集的均匀间隔单元网格(称为一个“区块”)上计算,并使用重叠局部对比度归一化方法来提高精度。

虽然HOG可以用来检测各种对象类,但它的主要目标是行人检测问题。如若要检测不同大小的对象,则要让HOG检测器在保持检测窗口大小不变的情况下,对输入图像进行多次重设尺寸(rescale)。这么多年来,HOG检测器一直是许多目标检测器和各种计算机视觉应用的重要基础。

(3) 基于可变形部件的模型(DPM)

DPM作为voco-07、-08、-09届检测挑战赛的优胜者,它曾是传统目标检测方法的巅峰。DPM最初是由P.Felzenszwalb提出的,于2008年作为HOG检测器的扩展,之后R.Girshick进行了各种改进。

DPM遵循“分而治之”的检测思想,训练可以简单地看作是学习一种正确的分解对象的方法,推理可以看作是对不同对象部件的检测的集合。例如,检测“汽车”的问题可以看作是检测它的窗口、车身和车轮。工作的这一部分,也就是“star model”由P.Felzenszwalb等人完成。后来,R.Girshick进一步将star model扩展到“混合模型”,以处理更显著变化下的现实世界中的物体。

一个典型的DPM检测器由一个根过滤器(root-filter)和一些零件滤波器(part-filters)组成。该方法不需要手动设定零件滤波器的配置(如尺寸和位置),而是在开发了一种弱监督学习方法并使用到了DPM中,所有零件滤波器的配置都可以作为潜在变量自动学习。R. Girshick将这个过程进一步表述为一个多实例学习的特殊案例,同时还应用了“困难负样本挖掘(hard-negative mining)”、“边界框回归”、“语境启动”等重要技术以提高检测精度。而为了加快检测速度,Girshick开发了一种技术,将检测模型“编译”成一个更快的模型,实现了级联结构,在不牺牲任何精度的情况下实现了超过10倍的加速。

虽然今天的目标探测器在检测精度方面已经远远超过了DPM,但仍然受到DPM的许多有价值的见解的影响,如混合模型、困难负样本挖掘、边界框回归等。2010年,P.Felzenszwalb和R.Girshick被授予PASCAL VOC的“终身成就奖”。

2.2 基于深度学习目标检测模型与发展

随着手动选取特征技术的性能趋于饱和,目标检测在2010年之后达到了一个平稳的发展期。2012年,卷积神经网络在世界范围内重新焕发生机。由于深卷积网络能够学习图像的鲁棒性和高层次特征表示,自然而然会让我们想到能否将其应用到目标检测中。

目标检测研究综述_第2张图片

图2.2 基于深度学习目标检测模型与发展

2.2.1基于卷积神经网络的单级检测器

(1) You Only Look Once (YOLO)

YOLO由R. Joseph等人于2015年提出。它是深度学习时代的第一个单级检测器。YOLO非常快:YOLO的一个快速版本运行速度为155fps,VOC07mAP=52.7%,而它的增强版本运行速度为45fps,VOC07mAP=63.4%,VOC12mAP=57.9%。YOLO是“ You Only Look Once ” 的缩写。从它的名字可以看出,作者完全抛弃了之前的“提案检测+验证”的检测范式。

相反,它遵循一个完全不同的设计思路:将单个神经网络应用于整个图像。该网络将图像分割成多个区域,同时预测每个区域的边界框和概率。后来R. Joseph在 YOLO 的基础上进行了一系列改进,其中包括以路径聚合网络(Path aggregation Network,PAN)取代FPN,定义新的损失函数等,陆续提出了其 v2、v3及v4版本(截止本文的2020年7月,Ultralytics发布了“YOLOv5”,但并没有得到官方承认),在保持高检测速度的同时进一步提高了检测精度。

必须指出的是,尽管与双级探测器相比YOLO的探测速度有了很大的提高,但它的定位精度有所下降,特别是对于一些小目标而言。YOLO的后续版本及在它之后提出的SSD更关注这个问题。

(2) Single Shot MultiBox Detector (SSD)

SSD由W.Liu等人于2015年提出。这是深度学习时代的第二款单级探测器。SSD的主要贡献是引入了多参考和多分辨率检测技术,这大大提高了单级检测器的检测精度,特别是对于一些小目标。SSD在检测速度和准确度上都有优势(VOC07mAP=76.8%,VOC12mAP=74.9%,COCOmAP@.5=46.5%,mAP@[.5,.95]=26.8%,快速版本运行速度为59fps) 。SSD与其他的检测器的主要区别在于,前者在网络的不同层检测不同尺度的对象,而后者仅在其顶层运行检测。

(3) RetinaNet

单级检测器有速度快、结构简单的优点,但在精度上多年来一直落后于双级检测器。T.-Y.Lin等人发现了背后的原因,并在2017年提出了RetinaNet。他们的观点为精度不高的原因是在密集探测器训练过程中极端的前景-背景阶层不平衡(the extreme foreground-background class imbalance)现象。

为此,他们在RetinaNet中引入了一个新的损失函数“焦点损失(focal loss)”,通过对标准交叉熵损失的重构,使检测器在训练过程中更加关注难分类的样本。焦损耗使得单级检测器在保持很高的检测速度的同时,可以达到与双级检测器相当的精度。(COCO mAP@.5=59.1%,mAP@[.5,.95]=39.1%)。

2.2.2基于卷积神经网络的双级检测器

R.Girshick等人在2014年率先打破僵局,提出了具有CNN特征的区域(RCNN)用于目标检测。从那时起,目标检测开始以前所未有的速度发展。在深度学习时代,目标检测可以分为两类:“双级检测(two-stage detection)”和“单级检测(one-stage detection)”,前者将检测框定为一个“从粗到细”的过程,而后者将其定义为“一步到位”。

(1) RCNN

RCNN的思路很简单:它首先通过选择性搜索来提取一组对象作为“提案(proposal)”并当做对象的候选框。然后将每个提案重新调整成一个固定大小的图像,再输入到一个在ImageNet上训练得到的CNN模型(如AlexNet)来提取特征。最后,利用线性SVM分类器对每个区域内的目标进行预测,识别目标类别。RCNN在VOC07测试集上有明显的性能提升,平均精准度(mean Average Precision,mAP)从33.7%(DPM-v5)大幅提高到58.5%。

虽然RCNN已经取得了很大的进步,但它的缺点是显而易见的:需要在大量重叠的提案上进行冗余的特征计算(一张图片超过2000个框),导致检测速度极慢(使用GPU时每张图片耗时14秒)。同年晚些时候,有人提出了SPPNet并克服了这个问题。

(2) SPPNet

2014年,K. He等人提出了空间金字塔池化网络( Spatial Pyramid Pooling Networks,SPPNet)。以前的CNN模型需要固定大小的输入,例如AlexNet需要224x224图像。SPPNet的主要贡献是引入了空间金字塔池化(SPP)层,它使CNN能够生成固定长度的表示,而不需要重新调节有意义图像的尺寸。

利用SPPNet进行目标检测时,只对整个图像进行一次特征映射计算,然后生成任意区域的定长表示以训练检测器,避免了卷积特征的重复计算。SPPNet的速度是R-CNN的20多倍,并且没有牺牲任何检测精度(VOC07 mAP=59.2%)。

SPPNet虽然有效地提高了检测速度,但仍然存在一些不足:

第一,训练仍然是多阶段的。

第二,SPPNet只对其全连接层进行微调,而忽略了之前的所有层。而次年晚些时候出现Fast RCNN并解决了这些问题。

(3)Fast RCNN

2015年,R.Girshick提出了Fast RCNN检测器,这是对R-CNN和SPPNet的进一步改进。Fast RCNN使我们能够在相同的网络配置下同时训练检测器和边界框回归器。在VOC07数据集上,Fast RCNN将mAP从58.5%( RCNN)提高到70.0%,检测速度是R-CNN的200多倍。

虽然Fast-RCNN成功地融合了R-CNN和SPPNet的优点,但其检测速度仍然受到提案检测的限制。然后,一个问题自然而然地出现了:“我们能用CNN模型生成对象提案吗?”之后的Faster R-CNN解决了这个问题。

(4) Faster RCNN

2015年,S.Ren等人提出了Faster RCNN检测器,在Fast RCNN之后不久。Faster RCNN是第一个端到端的,也是第一个接近实时的深度学习检测器(COCOmAP@.5=42.7%,COCOmAP@[.5,.95]=21.9%,VOC07mAP=73.2%,VOC12mAP=70.4%)。

Faster RCNN的主要贡献是引入了区域提案网络(RPN)从而允许几乎所有的cost-free的区域提案。从RCNN到Faster RCNN,一个目标检测系统中的大部分独立块,如提案检测、特征提取、边界框回归等,都已经逐渐集成到一个统一的端到端学习框架中。

虽然Faster RCNN突破了Fast RCNN的速度瓶颈,但是在后续的检测阶段仍然存在计算冗余。后来提出了多种改进方案,包括RFCN和 Light head RCNN。

(5) Feature Pyramid Networks(FPN)

2017年,T.-Y.Lin等人基于Faster RCNN提出了特征金字塔网络(FPN)[21]。在FPN之前,大多数基于深度学习的检测器只在网络的顶层进行检测。虽然CNN较深层的特征有利于分类识别,但不利于对象的定位。

为此,开发了具有横向连接的自顶向下体系结构,用于在所有级别构建高级语义。由于CNN通过它的正向传播,自然形成了一个特征金字塔,FPN在检测各种尺度的目标方面显示出了巨大的进步。

在基础的FasterRCNN系统中使用FPN骨架可在无任何修饰的条件下在MS-COCO数据集上以单模型实现state-of-the-art的效果(COCOmAP@.5=59.1%,COCOmAP@[.5,.95]=36.2%)。FPN现在已经成为许多最新探测器的基本组成部分。

3、目标检测常用方法(对比)

3.1 目标检测整体框架

目前主流的目标检测算法主要是基于深度学习模型,大概可以分成两大类别:(1)One-Stage目标检测算法,这类检测算法不需要Region Proposal阶段,可以通过一个Stage直接产生物体的类别概率和位置坐标值,比较典型的算法有YOLO、SSD和CornerNet;(2)Two-Stage目标检测算法,这类检测算法将检测问题划分为两个阶段,第一个阶段首先产生候选区域(Region Proposals),包含目标大概的位置信息,然后第二个阶段对候选区域进行分类和位置精修,这类算法的典型代表有R-CNN,Fast R-CNN,Faster R-CNN等。目标检测模型的主要性能指标是检测准确度和速度,其中准确度主要考虑物体的定位以及分类准确度。一般情况下,Two-Stage算法在准确度上有优势,而One-Stage算法在速度上有优势。不过,随着研究的发展,两类算法都在两个方面做改进,均能在准确度以及速度上取得较好的结果。

目标检测研究综述_第3张图片

图3.1 目标检测整体框架概述

3.2 One-Stage目标检测算法

One-Stage目标检测算法可以在一个stage直接产生物体的类别概率和位置坐标值,相比于Two-Stage的目标检测算法不需要Region Proposal阶段,整体流程较为简单。如下图所示,在Testing的时候输入图片通过CNN网络产生输出,解码(后处理)生成对应检测框即可;在Training的时候则需要将Ground Truth编码成CNN输出对应的格式以便计算对应损失loss。

目标检测研究综述_第4张图片

图3.2 One-Stage检测算法示意图

目前对于One-Stage算法的主要创新主要集中在如何设计CNN结构、如何构建网络目标以及如何设计损失函数上,如下图所示。

目标检测研究综述_第5张图片图3.3 One-Stage目标检测算法

3.2.1 如何设计CNN结构

设计CNN网络结构主要有两个方向,分别为追求精度和追求速度。最简单的一种实现方式就是替换Backbone网络结构,即使用不同的基础网络结构对图像提取特征。举例来说,ResNet101的表征能力要强于MobileNet,然而MobileNet的计算量要远远低于ResNet101,如果将ResNet101替换为MobileNet,那么检测网络在精度应该会有一定的损失,但是在速度上会有一定提升;如果将MobileNet替换为ResNet101,那么检测网络在速度上会有一定的损失,但是在精度上会有一定的提升。当然这只是一种相对简单的改进CNN网络结构的方式,实际上在改进CNN结构的时候需要很多的学术积累和经验,我将通过几篇SSD相关论文做一下简要分析。

SSD:SSD检测算法的网络结构如下图3.4所示,其中Backbone为VGG网络,使用不同阶段不同分辨率的feature maps进行预测。

目标检测研究综述_第6张图片

目标检测研究综述_第7张图片

图3.4 SSD检测算法的网络结构

DSSD:DSSD检测算法的网络结构如下图3.5所示,DSSD也是使用不同阶段不同分辨率的feature maps进行预测,在不考虑Backbone网络结构差别的情况下,可以发现DSSD相比于SSD多了一系列的后续上采样操作,SSD是使用下采样过程中的feature maps进行预测,而DSSD是使用上采样过程中的feature maps进行预测。显而易见的是,SSD用于检测的feature maps位于网络的较低层,表征能力较弱,而DSSD用于检测的feature maps位于网络的较高层,表征能力较强,同时DSSD在反卷积的过程中通过Skip-Connection引入了较低层的feature maps,实现了一定程度的特征融合。所以DSSD的效果要优于SSD检测算法。

目标检测研究综述_第8张图片

图3.5 DSSD检测算法的网络结构

FSSD:FSSD检测算法的网络结构如下图3.6所示,同样,FSSD也是使用不同阶段不同分辨率的feature maps进行预测,相比于SSD,FSSD多了一个特征融合处理,将网络较低层的特征引入到网络的较高层,在检测的时候能够同时考虑不同尺度的信息,使得检测更加准确。

目标检测研究综述_第9张图片

图3.6 FSSD检测算法的网络结构

3.2.2 如何构建回归目标

如何构建网络回归目标即如何区分正负样本使其与卷积神经网络的输出相对应,最简单直接的方法是直接回归物体的相关信息(类别和坐标),稍微复杂一些,在回归坐标时可以回归物体坐标相对于anchor的偏移量等等。对于One-Stage检测方法主要有如下三种典型的回归目标构建方式,其中代表方法分别为YOLO系列算法、SSD系列算法以及CornerNet目标检测算法。

YOLO系列算法:如下图所示,其中左图取自YOLOv1,右图取自YOLOv2[9],需要说明的是YOLOv1相比于YOLOv2在坐标回归的时候没有anchor的概念。YOLO系列算法在构建回归目标时一个主要的区别就是如果将图像划分成SxS的格子,每个格子只负责目标中心点落入该格子的物体的检测;如果没有任何目标的中心点落入该格子,则为负样本。

目标检测研究综述_第10张图片

图3.7 YOLO系列算法回归目标构建方式

SSD系列算法:如下图所示,SSD系列检测算法在确定正负样本的时候通过交并比大小进行区分,当某一个Ground Truth的目标框与anchor的交并比最大且对应的交并比大于某一个阈值的时候,对应anchor即负责检测该Ground Truth,即每一个anchor最多负责一个物体的检测,同一个物体可能被多个anchor同时检测。

目标检测研究综述_第11张图片

图3.8 SSD系列算法回归目标构建方式

CornerNet:如下图3.9所示,CornerNet检测算法巧妙的将检测框转换成了关键点,显而易见,一个目标框可以由两个点(左上角和右下角)来表示,那么对于一个目标物体在预测的时候就可以直接预测两个类别的关键点,然后对关键点进行组合即可生成对应的目标框。

目标检测研究综述_第12张图片

目标检测研究综述_第13张图片

图3.9 CornerNet检测算法回归目标构建方式

3.2.3 如何设计损失函数

目标检测算法主要分为两个子任务,分别为物体分类和物体定位。损失主要包括分类损失(Cls Loss)和定位损失(Loc Loss),常见的损失组合主要有如下两种Cls Loss + Loc Loss(SSD系列算法)、Cls Loss + Obj Loss + Loc Loss (YOLO系列算法),其中YOLO系列算法相比于SSD系列算法多了Object Loss,即判断对应区域是否为物体的损失。除此之外,One-Stage目标检测算法的正负样本不均衡的问题比较严重,对于设计损失函数还会有一些针对创新。

Hard Negative Mining:即对于大量的负样本只挑取其中适当比例的损失较大的负样本来计算损失,其余损失较小的负样本忽略不计,防止负样本过多干扰网络学习;

Focal Loss:由于大多数都是简单易分的负样本(属于背景的样本),使得训练过程不能充分学习到属于那些有类别样本的信息;其次简单易分的负样本太多,可能掩盖了其他有类别样本的作用。Focal Loss希望那些hard examples对损失的贡献变大,使网络更倾向于从这些样本上学习。

需要说明的是,个人任务One-Stage检测算法和Two-Stage检测算法的第一个Stage并没有太大区别,在某种程度上Two-Stage检测算法的第一个Stage可以看成是One-Stage检测算法,而第二个Stage只是对前一个Stage的结果做进一步精化,上述所有思路本人觉得都适用于Two-Stage检测算法的第一个Stage。除此之外针对于Two-Stage检测框架设计的相关损失函数同样适用于One-Stage检测算法。

3.3 two-Stage目标检测算法

Two-Stage目标检测算法本人认为可以看作是进行两次One-Stage检测,第一个Stage初步检测出物体位置,第二个Stage对第一个阶段的结果做进一步的精化,对每一个候选区域进行One-Stage检测。整体流程如下图所示,在Testing的时候输入图片经过卷积神经网络产生第一阶段输出,对输出进行解码处理生成候选区域,然后获取对应候选区域的特征表示(ROIs),然后对ROIs进一步精化产生第二阶段的输出,解码(后处理)生成最终结果,解码生成对应检测框即可;在Training的时候需要将Ground Truth编码成CNN输出对应的格式以便计算对应损失loss。

目标检测研究综述_第14张图片

图3.10 Two-Stage检测算法示意图

如上图3.10所示,Two-Stage的两个阶段拆开来看均与One-Stage检测算法相似,所以我觉得Two-Stage可以看成是两个One-Stage检测算法的组合,第一个Stage做初步检测,剔除负样本,生成初步位置信息(Region of Interest),第二个Stage再做进一步精化并生成最终检测结果。

如图3.11所示,目前对于Two-Stage算法的主要创新主要集中在如何高效准确地生成Proposals、如何获取更好的ROI features、如何加速Two-Stage检测算法以及如何改进后处理方法,接下来我将从这几个方面进行阐述。

目标检测研究综述_第15张图片

图3.11 Two-Stage目标检测算法

3.3.1 如何高效准确地生成Proposals

如何高效准确地生成Proposals考虑的是Two-Stage检测算法的第一个Stage,获取初步的检测结果,供下一个Stage做进一步精化。接下来我将通过对比R-CNN、Faster R-CNN和FPN来做简要说明。

R-CNN:R-CNN生成Proposals的方法是传统方法Selective Search,主要思路是通过图像中的纹理、边缘、颜色等信息对图像进行自底向上的分割,然后对分割区域进行不同尺度的合并,每个生成的区域即一个候选Proposal,如下图所示。这种方法基于传统特征,速度较慢。

目标检测研究综述_第16张图片

图3.12 R-CNN网络示意图

Faster R-CNN:Faster R-CNN使用RPN网络代替了Selective Search方法,大大提高了生成Proposals的速度,具体实现策略同One-Stage检测算法,这里不再做过多赘述。网络示意图如下图所示。

目标检测研究综述_第17张图片

图3.13 Faster R-CNN网络示意图

FPN:Faster R-CNN只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。FPN算法把低分辨率、高语义信息的高层特征和高分辨率、低语义信息的低层特征进行自上而下的侧边连接,使得所有尺度下的特征都有丰富的语义信息,然后在不同尺度的特征层上进行预测,使得生成Proposals的效果优于只在顶层进行预测的Faster R-CNN算法。如下图所示。

目标检测研究综述_第18张图片

图3.14 FPN Proposal网络示意图

Cascade R-CNN:类似于Faster R-CNN、FPN等,其Proposal网络对于正样本只设置了一个阈值,只做了一次较为宽松的约束,得到的Proposals结果较为粗糙,当对检测框的定位结果要求更为精确的时候就稍显不足。而Cascade R-CNN在获取Proposals的时候也采用逐步求精的策略,前一步生成的Proposals作为后一步的输入,通过控制正样本的交并比阈值不断提高Proposals的质量,如下图所示。准确来说,Cascade R-CNN应该不能算Two-Stage检测算法,应该是多Stage检测算法,多步求精。

目标检测研究综述_第19张图片

图3.15 Cascade R-CNN Proposal网络示意图

3.3.2 如何获取更好的ROI features

在获取Proposals之后,如何获取更好的ROI features是Two-Stage检测算法第二个Stage的关键,只有输入比较鲁棒的情况下才能得到较好的输出。对于这个问题主要考虑的有两个方向,其一是如何获取Proposals的features,其二是得到Proposals的features之后如何align到同一个尺度。首先对于第一个问题主要有如下几种策略:

R-CNN:在原图裁剪Proposals对应区域,然后align到同一个尺度,分别对每一个align之后的原图区域通过神经网络提取特征;

Fast/Faster R-CNN:只对原图提取一次特征,将对应Proposals的坐标映射到提取的原图的feature map上提取对应特征;

FPN:对原图提取不同尺度的特征,将不同尺度的Proposals映射到不同尺度的原图的feature maps上提取对应特征;

FCN:同样只对原图提取一次特征,主要区别是提取目标特征的同时加上了位置信息(Position-Sensitive),即目标的不同区域的特征维护在不同channels上,对于一个候选目标Proposal,其不同区域区域的特征需要映射到原图特征的不同channels上。如下图所示。

目标检测研究综述_第20张图片

图3.16 R-FCN网络示意图

其次对于第二个问题主要有如下几种策略,分别为ROI Pool、ROI Align、PSROI Pool、PrROI Pool,接下来做简要说明。

ROI Pool:即对Proposal区域划分为固定大小的格子,每个格子Pooling操作,获取一个值,从而所有Proposal生成同样大小的输出。

ROI Align:主要解决了ROI Pool的量化误差问题,即浮点数坐标转换成整数坐标产生的误差,主要解决方式即不采用量化方式获取具体坐标,每个格子的值通过采样多个点获得,其中被采样点的值采用双线性插值的方式获得,不需要量化成整数坐标。

PSROI Pool:即R-FCN采用的Pooling方式,与ROI Pool的唯一区别在于PSROI Pool需要每一个Proposal的不同区域对应到feature map的不同channels进行取值。

PrROI Pool:即Precise ROI Pooling,其考虑了Proposal对应格子区域的每个值,采用积分的方式进行求解,而ROI Align只Sample对应格子区域的几个值。

目标检测研究综述_第21张图片

图3.17 ROI 策略对比图

3.3.3 如何加速Two-Stage检测算法

Two-Stage检测算法在一般情况下要慢于One-Stage检测算法,然而随着研究的发展,速度上的差别也在逐渐缩小,Two-Stage算法的开销主要有两部分,一个是Proposal的开销,一个是ROI Sub-Network的开销,提高Region Proposal的效率和降低ROI Sub-Network的开销均可以加速Two-Stage检测算法。

Fast R-CNN vs. Faster R-CNN:Faster R-CNN使用神经网络代替Selective Search,大大提高了Region Proposal的的速度,前面已有描述。

Faster R-CNN vs. Light-Head R-CNN:Light-Head R-CNN使用更小的Sub-Network代替Faster R-CNN较为臃肿的Sub-Network,使得第二阶段的网络更小,大大提高了Two-Stage检测算法的速度。

3.3.4 如何改进后处理方法

这里所说的后处理方法仅指NMS相关算法,NMS即非极大值抑制算法,在目标检测,定位等领域是一种被广泛使用的方法,主要目的是为了消除多余的框,找到最佳的物体检测的位置,几乎所有的目标检测方法都用到了这种后处理算法。接下来我将简要介绍如下几种NMS相关算法,分别为NMS、Soft NMS、Softer NMS、IOU-Guided NMS。

目标检测研究综述_第22张图片

图3.17 NMS示例

Soft NMS:Soft NMS相对于NMS的改进即每次并不是直接排除掉和已选框重叠大于一定阈值的框,而是以一定的策略降低对应框的得分,直到低于某个阈值,从而不至于过多删除拥挤情况下定位正确的框。

Softer NMS:Softer NMS相对于NMS的改进即每次并不是直接以得分最大的框的坐标作为当前选择框的坐标,而是和得分最大的框重叠大于一定阈值的所有框的坐标进行一定策略的加权平均,所得的新的框作为当前选择的得分最大的框的坐标,从而尽可能准确地定位物体。

IOU-Guided NMS:即以IOU(交并比)得分作为NMS的排序依据,因为IOU得分直接反应了对应框的定位精确程度,优先考虑定位精度较高的框,防止定位精度较低但是其他得分较高的框被误排序到前面。

4.目标检测常用数据集

DOTA:A Large-scale Dataset for Object Detection in Aerial Images,arXiv:1711.10398v1 [cs.CV] 28 Nov 2017。这是武大遥感国重实验室夏桂松和华科电信学院白翔联合做的一个数据集,2806张遥感图像(大小约4000*4000),188,282个instances,分为15个类别。

UCAS-AOD: Dataset of Object Detection in Aerial Images,中国科学院大学模式识别与智能系统开发实验室标注的,只包含两类目标:汽车,飞机,以及背景负样本。

NWPU VHR-10:西北工业大学标注的航天遥感目标检测数据集,共有800张图像,其中包含目标的650张,背景图像150张,目标包括:飞机、舰船、油罐、棒球场、网球场、篮球场、田径场、港口、桥梁、车辆10个类别。开放下载,大概73M.

RSOD-Dataset:武汉大学团队标注,包含飞机、操场、立交桥、 油桶四类目标,数目分别为:飞机:4993 aircrafts in 446 images. 操场:191 playgrounds in 189 images. 立交桥180 overpass in 176 overpass.油桶:1586 oiltanks in 165 images.

5.标检测常用评价指标

目标检测研究综述_第23张图片

图5.1 目标检测常用评价指标

6.参考文献

[1]Zhengxia Zou, Zhenwei Shi, Member, IEEE, Yuhong Guo, and Jieping Ye, Object Detection in 20 Years: A Survey Senior Member, IEEE

[2]Xiongwei Wu, Doyen Sahoo, Steven C.H. Hoi, Recent Advances in Deep Learning for Object Detection, arXiv:1908.03673v1

[3]K. He, X. Zhang, S. Ren, J. Sun, Deep residual learning for image recognition, in: CVPR, 2016.

[4]R. Girshick, J. Donahue, T. Darrell, J. Malik, Rich feature hierarchies for accurate object detection and semantic segmentation, in: CVPR, 2014.

[5]K. He, G. Gkioxari, P. Doll´ar, R. Girshick, Mask r-cnn, in: ICCV, 2017.

[6]L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, A. L. Yuille, Semantic image segmentation with deep convolutional nets and fully connected crfs, in: arXiv preprint arXiv:1412.7062, 2014.

[7]Y. LeCun, Y. Bengio, and G. Hinton, “Deep learning,” nature, vol. 521, no. 7553, p. 436, 2015.

[8]P. Viola and M. Jones, “Rapid object detection using a boosted cascade of simple features,” in Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, vol. 1. IEEE, 2001, pp. I–I.

[9]P. Viola and M. J. Jones, “Robust real-time face detection,” International journal of computer vision, vol. 57, no. 2, pp. 137–154, 2004.

[10]C. Papageorgiou and T. Poggio, “A trainable system for object detection,” International journal of computer vision, vol. 38, no. 1, pp. 15–33, 2000.

[11]N. Dalal and B. Triggs, “Histograms of oriented gradients for human detection,” in Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, vol. 1. IEEE, 2005, pp. 886–893.

[12]P. Felzenszwalb, D. McAllester, and D. Ramanan, “A discriminatively trained, multiscale, deformable part model,” in Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2008, pp. 1–8.

[13]P. F. Felzenszwalb, R. B. Girshick, and D. McAllester, “Cascade object detection with deformable part models,” in Computer vision and pattern recognition (CVPR), 2010 IEEE conference on. IEEE, 2010, pp. 2241–2248.

[14]P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detection with discriminatively trained part-based models,” IEEE transactions on pattern analysis and machine intelligence, vol. 32, no. 9, pp. 1627– 1645, 2010.

[15]A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with deep convolutional neural networks,” in Advances in neural information processing systems, 2012, pp. 1097–1105.

[16]R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Regionbased convolutional networks for accurate object detection and segmentation,” IEEE transactions on pattern analysis and machine intelligence, vol. 38, no. 1, pp. 142– 158, 2016.

[17]K. E. Van de Sande, J. R. Uijlings, T. Gevers, and A. W. Smeulders, “Segmentation as selective search for object recognition,” in Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011, pp. 1879–1886.

[18]K. He, X. Zhang, S. Ren, and J. Sun, “Spatial pyramid pooling in deep convolutional networks for visualrecognition,” in European conference on computer vision. Springer, 2014, pp. 346–361.

[19]R. Girshick, “Fast r-cnn,” in Proceedings of the IEEE international conference on computer vision, 2015, pp. 1440–1448.

[20]S. Ren, K. He, R. Girshick, and J. Sun, “Faster r-cnn: Towards real-time object detection with region proposal networks,” in Advances in neural information processing systems, 2015, pp. 91–99.

[21]T.-Y. Lin, P. Doll´ar, R. B. Girshick, K. He, B. Hariharan, and S. J. Belongie, “Feature pyramid networks for object detection.” in CVPR, vol. 1, no. 2, 2017, p. 4.

[22]J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You only look once: Unified, real-time object detection,” in Proceedings of the IEEE conference on computer vision and pattern recognition, 2016, pp. 779–788.

[23]W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg, “Ssd: Single shot multibox detector,” in European conference on computer vision. Springer, 2016, pp. 21–37.

[24]T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Doll´ar, “Focal loss for dense object detection,” IEEE transactions on pattern analysis and machine intelligence, 2018.

[25] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with deep convolutional neural networks,” in Advances in neural information processing systems, 2012, pp. 1097–1105.

[26] Vishwakarma S, Agrawal A. A survey on activity recognition and behavior understanding in video surveillance [J]. The Visual Computer, 2012: 1-27.

[27] D. Lowe. Distinctive image features from scale-invariant keypoints. IJCV, 2004.
[28] N. Dalal and B. Triggs. Histograms of oriented gradients for human detection. In CVPR, 2005.

[29] Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." European Conference on Computer Vision Springer International Publishing, 2016:21-37.

[30] Fu C Y, Liu W, Ranga A, et al. DSSD : Deconvolutional Single Shot Detector[J]. 2017.

[31] Li Z, Zhou F. FSSD: Feature Fusion Single Shot Multibox Detector[J]. 2017.

[32] Redmon, Joseph, et al. "You Only Look Once: Unified, Real-Time Object Detection." (2015):779-788.

[33] Redmon, Joseph, and A. Farhadi. "YOLO9000: Better, Faster, Stronger." (2016):6517-6525.

[34] Law H, Deng J. CornerNet: Detecting Objects as Paired Keypoints[J]. 2018.

[35] Girshick, R., Donahue, J., Darrell, T., Malik, J.: Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR 2014.

[36] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In Neural Information Processing Systems (NIPS), 2015.

[37] Lin T Y, Dollár P, Girshick R, et al. Feature Pyramid Networks for Object Detection[J]. 2016.

[38] Cai Z, Vasconcelos N. Cascade R-CNN: Delving into High Quality Object Detection[J]. 2017.

[39] Dai J, Li Y, He K, et al. R-FCN: Object Detection via Region-based Fully Convolutional Networks[J]. 2016.

[40] Li Z, Peng C, Yu G, et al. Light-Head R-CNN: In Defense of Two-Stage Object Detector[J]. 2017.

[41] Bodla N, Singh B, Chellappa R, et al. Soft-NMS — Improving Object Detection with One Line of Code[J]. 2017.

[42] Softer-NMS: Rethinking Bounding Box Regression for Accurate Object Detection. arxiv id:1809.08545

[43] Jiang B, Luo R, Mao J, et al. Acquisition of Localization Confidence for Accurate Object Detection[J]. 2018.

[44] Real-Time High-Resolution Background Matting .CVPR.2021

[45] EfficientDet Scalable and Efficient Object Detection.CVPR.2021

[46] NAS-FPN Learning Scalable Feature Pyramid Architecture .CVPR.2021

[47] SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks

[48] ReDet: A Rotation-equivariant Detector for Aerial Object Detection.CVPR

[49] SSD:Single Shot MultiBox Detector.ECCV2016

[50] Mask R-CNN.ICCV 2017

[51] Bounding box regression.CVPR

[52] CBNetV2: A Composite Backbone Network Architecture for Detection.

[53] YOLOV3.CVPR

[54] YOLOV4.CVPR

[55] YOLOV5.Github

[56] Instance Localization for Self-supervised Detection Pretraining.CVPR 2021

[57] An image is worth 16 x 16 words: transformers for image recognition

[58] BERT: Pre-training of Deep Bidirectional Transformers

[59] Swin Transformer.CVPR 2021

[60] Attention is All you need(Seq2Seq With Attention).Google Mind.2014

[61] Light-Head R-CNN(2017).CVPR

[62] KLD: Learning High-Precision Bounding Box for Rotated Object Detection

[63] Gaussian Bounding Boxes and Probabilistic Intersection-over-Union

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号