Object Detection in 20 Years: A Survey

2022-09-03 21:36:48 浏览数 (1)

摘要

目标检测作为计算机视觉中最基本、最具挑战性的问题之一,近年来受到了广泛的关注。它在过去二十年的发展可以说是计算机视觉历史的缩影。如果我们把今天的物体检测看作是深度学习力量下的一种技术美学,那么让时光倒流20年,我们将见证冷兵器时代的智慧。本文从目标检测技术发展的角度,对近四分之一世纪(20世纪90年代至2019年)的400余篇论文进行了广泛的回顾。本文涵盖了许多主题,包括历史上的里程碑检测器、检测数据集、度量、检测系统的基本构件、加速技术以及最新的检测方法。本文还综述了行人检测、人脸检测、文本检测等重要的检测应用,并对其面临的挑战以及近年来的技术进步进行了深入分析。

1、简介

目标检测是一项重要的计算机视觉任务,它处理在数字图像中检测特定类(如人、动物或汽车)的视觉目标实例。目标检测的目标是开发计算模型和技术,提供计算机视觉应用程序所需的最基本的信息之一:什么目标在哪里?目标检测作为计算机视觉的基本问题之一,是许多其他计算机视觉任务的基础,如实例分割、图像字幕、目标跟踪等。从应用程序的角度来看,目标检测可以被分为两个研究主题“一般目标检测”和“特定场景下的目标检测”,前一个旨在探索的方法检测不同类型的目标在一个统一的框架来模拟人类的视觉和认知,后一个是指检测特定的应用场景下,如行人检测、人脸检测、文本检测等等。近年来,随着深度学习技术的快速发展,为目标检测注入了新的血液,取得了显著的突破,将其推向了一个前所未有的研究热点。目前,目标检测已广泛应用于自主驾驶、机器人视觉、视频监控等领域。图1显示了在过去的二十年中,与“目标检测”相关的出版物数量的增长。

1、和相关综述的不同

近年来,对一般目标检测的研究进展进行了综述。本文与上述综述的主要区别总结如下:

1. A comprehensive review in the light of technical evolutions:本文广泛回顾了目标检测发展史上的400多篇论文,时间跨度超过25年(上世纪90年代至2019年)。以前的大多数综述仅仅关注一个较短的历史时期或一些特定的检测任务,而没有考虑它们整个生命周期中的技术演进。站在历史的高速公路上,不仅有助于读者建立一个完整的知识体系,而且有助于找到这个快速发展领域的未来方向。

2. An in-depth exploration of the key technologies and the recent state of the arts:经过多年的发展,最先进的目标检测系统已经与“多尺度检测”、“难负挖掘”、“边界盒回归”等大量技术相结合。然而,以前的评论缺乏基本的分析来帮助读者理解这些复杂技术的本质,例如,“它们从哪里来,它们是如何进化的?”“每种方法的优缺点是什么?”本文针对上述问题对读者进行了深入的分析。

3. A comprehensive analysis of detection speed up techniques:目标检测加速算法一直是一项关键而又具有挑战性的任务。本文从多个层面对20多年来目标检测历史上的提速技术进行了广泛的回顾,包括“检测管道”(如级联检测、特征图共享计算)、“检测主干”(如网络压缩、轻量级网络设计)、“数值计算”(如积分图像、矢量量化)等。以前的评论很少涉及这个主题。

2、目标检测中的困难和挑战

尽管人们总是问“在目标检测中有哪些困难和挑战?”,事实上,这个问题并不容易回答,甚至可能被过度概括。由于不同的检测任务具有完全不同的目标和约束,它们的困难程度可能会有所不同。除了一些常见的挑战等其他计算机视觉任务的目标在不同的视点,灯饰,和组内变异,挑战目标检测包括但不限于以下方面:目标旋转和尺度变化(例如,小目标),准确的目标定位,密度和闭塞的目标检测、加快检测等。在第4和第5节中,我们将对这些主题进行更详细的分析。本文的其余部分组织如下。在第二部分中,我们回顾了20年来物体检测的发展历史。第三部分将介绍一些加速目标检测的技术。第四部分总结了近三年来一些最先进的检测方法。第五部分将回顾一些重要的检测应用。第六部分对本文进行了总结,并对进一步的研究方向进行了分析。

2、20年间的目标检测

在本节中,我们将从多个方面回顾目标检测的历史,包括里程碑检测器、目标检测数据集、度量和关键技术的发展。

2.1、目标检测的指南

在过去的二十年中,人们普遍认为,目标检测的发展大致经历了两个历史时期:“传统的目标检测时期(2014年以前)”和“基于深度学习的检测时期(2014年以后)”,如图2所示。

2.1.1、里程碑:传统的检测器

如果我们把今天的物体检测看作是深度学习力量下的一种技术美学,那么回到20年前,我们将见证“冷兵器时代的智慧”。早期的目标检测算法大多是基于手工特征构建的。由于当时缺乏有效的图像表示,人们别无选择,只能设计复杂的特征表示,以及各种加速技术来用尽有限的计算资源。

  • Viola Jones Detectors

18年前,P. Viola和M. Jones在没有任何约束条件(如肤色分割)的情况下首次实现了人脸的实时检测。该检测器运行在700MHz奔腾III CPU上,在同等的检测精度下,其速度是其他算法的数十倍甚至数百倍。该检测算法后来被称为“维奥拉-琼斯(Viola-Jones, VJ)检测器”,在此以作者的名字命名,以纪念他们的重大贡献。VJ检测器采用最直接的检测方法,即,滑动窗口:查看图像中所有可能的位置和比例,看看是否有窗口包含人脸。虽然这似乎是一个非常简单的过程,但它背后的计算远远超出了计算机当时的能力。VJ检测器结合了“积分图像”、“特征选择”和“检测级联”三种重要技术,大大提高了检测速度。

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

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

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

  • HOG Detector

方向梯度直方图(HOG)特征描述符最初是由N. Dalal和B. Triggs在2005年提出的。HOG可以被认为是对尺度不变特征变换和当时形状上下文的重要改进。为了平衡特征不变性(包括平移、尺度、光照等)和非线性(区分不同目标类别),将HOG描述符设计为在密集的均匀间隔单元网格上计算,并使用重叠局部对比度归一化(在“块”上)来提高精度。虽然HOG可以用来检测各种目标类,但它的主要动机是行人检测问题。为了检测不同大小的目标,HOG检测器在保持检测窗口大小不变的情况下,对输入图像进行多次重标。多年来,HOG检测器一直是许多目标检测器和各种计算机视觉应用的重要基础。

  • Deformable Part-based Model (DPM)

DPM作为VOC-07、-08、-09检测挑战的优胜者,是传统目标检测方法的巅峰。DPM最初是由P. Felzenszwalb于2008年提出的,作为HOG检测器的扩展,之后R. Girshick进行了各种改进。DPM遵循“分而治之”的检测思想,训练可以简单地看作是学习一种正确的分解目标的方法,推理可以看作是对不同目标部件的检测的集合。例如,检测“汽车”的问题可以看作是检测它的窗口、车身和车轮。这部分工作,即所谓的“明星模型”,是由P. Felzenszwalb等人完成的。后来,R. Girshick进一步将star模型扩展到“混合模型”,以处理更显著变化下的现实世界中的物体。

一个典型的DPM检测器由一个根过滤器和一些部分过滤器组成。该方法不需要手动指定零件滤波器的配置(如尺寸和位置),而是在DPM中开发了一种弱监督学习方法,所有零件滤波器的配置都可以作为潜在变量自动学习。R. Girshick将此过程进一步表示为多实例学习的一个特例,并应用了“难负挖掘”、“边界盒回归”、“上下文启动”等重要技术来提高检测精度(将在2.3节中介绍)。为了加快检测速度,Girshick开发了一种技术,将检测模型“编译”成一个更快的模型,该模型实现了级联结构,在不牺牲任何精度的情况下实现了超过10倍的加速度[14,38]。虽然目前的对象检测器在检测精度上已经远远超过了DPM,但其中很多仍然深受其有价值的见解的影响,如混合模型、硬负挖掘、边界盒回归等。2010年,P. Felzenszwalb和R. Girshick被PASCAL VOC授予“终身成就奖”。

2.1.2、里程碑:基于CNN的两阶段方法

随着手工特性的性能趋于饱和,目标检测在2010年之后达到了一个稳定的水平。R。Girshick说:“…在2010-2012年期间,进展缓慢,通过构建集成系统和使用成功方法的较小变体,取得了较小的进展。2012年,卷积神经网络在世界范围内重生。由于深卷积网络能够学习图像的鲁棒性和高层次特征表示,一个自然的问题是我们能否将其应用到目标检测中?R. Girshick等人在2014年率先打破僵局,提出了具有CNN特征的区域(RCNN)用于目标检测。从那时起,目标检测开始以前所未有的速度发展。在深度学习时代,目标检测可以分为两类:“两阶段检测”和“一阶段检测”,前者将检测框架为一个“由粗到精”的过程,而后者将检测框架为“一步完成”。

  • RCNN

RCNN背后的想法很简单:它首先通过选择性搜索提取一组目标建议(目标候选框)。然后,将每个建议重新调整为固定大小的图像,并将其输入到基于ImageNet(例如AlexNet)的CNN模型中,以提取特征。最后,利用线性SVM分类器对每个区域内的目标进行预测,识别目标类别。RCNN在VOC07上产生了显著的性能提升,平均平均精度(mAP)从33.7% (DPM-v5)大幅提高到58.5%。虽然RCNN已经取得了很大的进步,但它的缺点是显而易见的:在大量重叠的提案上进行冗余的特征计算(一张图片超过2000个框),导致检测速度极慢(GPU下每张图片14秒)。同年晚些时候,SPPNet被提出并克服了这个问题。

  • SPPNet

2014年,K. He等人提出了空间金字塔汇聚网络(SPPNet)。以前的CNN模型需要固定大小的输入,例如,AlexNet需要224x224图像。SPPNet的主要贡献是引入了空间金字塔池(SPP)层,它使CNN能够生成固定长度的表示,而不需要重新调整图像/感兴趣区域的大小。使用SPPNet进行目标检测时,只需要对整个图像计算一次特征图,然后生成任意区域的定长表示,训练检测器,避免了重复计算卷积特征。SPPNet的速度是R-CNN的20多倍,并且没有牺牲任何检测精度(VOC07 mAP=59.2%)。SPPNet虽然有效地提高了检测速度,但仍然存在一些不足:第一,训练仍然是多阶段的,第二,SPPNet只对其全连接层层进行微调,而忽略了之前的所有层。次年晚些时候,Fast RCNN被提出并解决了这些问题。

  • 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的优点,但其检测速度仍然受区域检测的限制(详见2.3.2节)。然后,一个问题自然而然地出现了:“我们能用CNN模型生成目标建议吗?”稍后,Faster R-CNN回答了这个问题。

  • Faster RCNN

2015年,S. Ren等人在快速RCNN之后不久提出了更快的RCNN检测器。Faster RCNN是第一个端到端的,也是第一个接近实时的深度学习检测器(COCO mAP@.5=42.7%, COCO mAP@[.5,.95]=21.9%, VOC07 mAP=73.2%, VOC12 mAP=70.4%, 17fps with ZF-Net)。Faster R-CNN的主要贡献是引入了区域建议网络(RPN),使几乎免费的区域建议成为可能。从R-CNN到速度更快的RCNN,一个目标检测系统的大部分独立块,如建议检测、特征提取、边界盒回归等,都逐渐集成到一个统一的端到端学习框架中。虽然更快的RCNN突破了Fast RCNN的速度瓶颈,但是在后续的检测阶段仍然存在计算冗余。后来提出了多种改进方案,包括RFCN和Light head RCNN。(详见第3节。)

  • Feature Pyramid Networks

2017年,T.-Y。Lin等人基于更快的RCNN提出了特征金字塔网络(FPN)。在FPN之前,大多数基于深度学习的检测器只在网络的顶层进行检测。虽然CNN较深层的特征有利于分类识别,但不利于目标的定位。为此,在FPN中开发了一个具有横向连接的自顶向下体系结构,用于在所有级别上构建高级语义。由于CNN通过前向传播自然形成了一个特征金字塔,所以FPN在检测具有多种尺度的目标时显示出了很大的进步。在基本的更快的R-CNN系统中使用FPN,它在MSCOCO数据集上实现了最先进的单模型检测结果,没有附加任何附加条件(COCO mAP@.5=59.1%, COCO mAP@[.5,.95]=36.2%)。FPN现在已经成为许多最新探测器的基本组成部分。

2.1.3、里程碑:基于CNN的一阶段检测器

  • You Only Look Once (YOLO)

YOLO由R. Joseph等人于2015年提出。它是深度学习时代[20]的第一个单级检测器。YOLO非常快:YOLO的一个快速版本运行速度为155fps, VOC07 mAP=52.7%,而它的增强版本运行速度为45fps, VOC07 mAP=63.4%, VOC12 mAP=57.9%。YOLO是“你只看一次”的缩写。从它的名字可以看出,作者完全抛弃了之前的“提案检测 验证”的检测范式。相反,它遵循一个完全不同的哲学:将单个神经网络应用于整个图像。该网络将图像分割成多个区域,同时预测每个区域的边界框和概率。后来R. Joseph在YOLO的基础上进行了一系列改进,提出了其v2和v3版本,在保持很高检测速度的同时进一步提高了检测精度。虽然YOLO的检测速度有了很大的提高,但是与两级检测器相比,它的定位精度有所下降,特别是对于一些小目标。YOLO的后续版本和后者提出的SSD更关注这个问题。

  • Single Shot MultiBox Detector (SSD)

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

  • Retinanet

单级检测器速度快、结构简单,但多年来一直落后于两级检波器的精度。T.-Y。Lin等人发现了背后的原因,并在2017年提出了RetinaNet。他们声称,在密集探测器训练过程中所遇到的极端的前-后级不平衡是主要原因。为此,在Retinanet中引入了一个新的损失函数“焦损失”,通过对标准交叉熵损失的重构,使检测器在训练过程中更加关注难分类的样本。焦损耗使得单级探测器在保持很高的检测速度的同时,可以达到与两级探测器相当的精度。(COCO mAP@.5 = 59.1%, mAP@ [。5,.95]= 39.1%)。

2.2、目标检测数据集和基准

建立更大的数据集和更少的偏见是开发先进的计算机视觉算法的关键。在目标检测方面,近10年来发布了许多知名的数据集和基准,包括PASCAL VOC Challenges(如VOC2007, VOC2012)、ImageNet Large Scale Visual Recognition Challenge(如ILSVRC2014)、MS-COCO detection Challenge等数据集。表1给出了这些数据集的统计数据。图4显示了这些数据集的一些图像示例。图3为2008 - 2018年VOC07、VOC12和MS-COCO数据集检测精度的提高情况。

  • Pascal VOC

PASCAL Visual Object Classes (VOC)挑战赛(2005 - 2012)是早期计算机视觉界最重要的比赛之一。PASCAL VOC中包含多种任务,包括图像分类、目标检测、语义分割和动作检测。两种版本的Pascal-VOC主要用于目标检测:VOC07和VOC12,前者由5k tr. images 12k annotated objects组成,后者由11k tr. images 27k annotated objects组成。在这两个数据集中(Person: Person;动物:鸟、猫、牛、狗、马、羊;交通工具:飞机、自行车、船、公共汽车、小汽车、摩托车、火车;室内:瓶子、椅子、餐桌、盆栽植物、沙发、电视/显示器)。近年来,随着ILSVRC、MS-COCO(即将推出)等大型数据集的发布,VOC逐渐淡出人们的视野,成为大多数新型检测器的试验台。

  • ILSVRC

ImageNet大尺度视觉识别挑战(ILSVRC)推动了通用目标检测技术的发展。ILSVRC从2010年到2017年每年举办一次。它包含一个使用ImageNet图像的检测挑战。ILSVRC检测数据集包含200类视觉目标。它的图像/目标实例的数量比VOC大两个数量级。例如,ILSVRC-14包含517k图像和534k带注释的目标。

  • MS-COCO

MS-COCO是目前最具挑战性的目标检测数据集。基于MS-COCO数据集的年度比赛从2015年开始举办。它的目标类别比ILSVRC少,但是目标实例多。例如,MS-COCO-17包含来自80个类别的164k图像和897k带注释的目标。与VOC和ILSVRC相比,MS-COCO最大的进步是除了边框标注外,每个目标都进一步使用实例分割进行标记,以帮助精确定位。此外,MS-COCO包含更多的小目标(其面积小于图像的1%)和比VOC和ILSVRC更密集的定位对象。所有这些特性使得MS-COCO中的目标分布更接近真实世界。就像当时的ImageNet一样,MS-COCO已经成为目标检测社区事实上的标准。

  • Open Images

继MS-COCO之后,开放图像检测(OID)在2018年迎来了前所未有的挑战。在开放图像中有两项任务:1)标准目标检测和2)视觉关系检测。对于目标检测任务,数据集由1,910k张图像和15,440k个带注释的边界框组成,这些边界框位于600个目标类别上。

  • 其他检测任务的数据集

在过去的20年里,除了一般的目标检测外,在行人检测、人脸检测、文本检测、交通标志/灯光检测、遥感目标检测等特定领域的检测应用也十分繁荣。表2-6列出了这些检测任务的一些流行数据集。第5节详细介绍了这些任务的检测方法。

2.2.1、度量

我们如何评估目标探测器的有效性?这个问题甚至可能在不同的时间有不同的答案。在早期的检测社区中,对于检测性能的评价标准并没有得到广泛的认可。例如,在行人检测的早期研究中,通常使用“每个窗口的漏检率与误报率(FPPW)”作为度量。然而,perwindow测量(FPPW)可能存在缺陷,在某些情况下不能预测完整的图像性能。2009年,加州理工学院(Caltech)建立了行人检测基准,从那时起,评估指标从每窗口(per-window, FPPW)改为伪阳性每图像(false positive perimage, FPPI)。近年来,对目标检测最常用的评估方法是“平均精度(AP)”,该方法最早是在VOC2007中引入的。AP定义为不同召回情况下的平均检测精度,通常以类别特定的方式进行评估。为了比较所有目标类别的性能,通常使用所有目标类别的平均AP (mAP)作为性能的最终度量。为了测量目标定位精度,使用Union上的交集(交集over Union, IoU)来检查预测框和ground truth框之间的IoU是否大于预定义的阈值,比如0.5。如果是,则将该对象标识为“成功检测到”,否则将标识为“未检测到”。基于0.5 iou的地图已经成为多年来实际的目标检测问题的度量标准。

2014年以后,由于MS-COCO数据集的普及,研究人员开始更加关注边界框位置的准确性。MS-COCO AP没有使用固定的IoU阈值,而是在多个IoU阈值上取平均值,阈值介于0.5(粗定位)和0.95(完美定位)之间。这种度量的变化鼓励了更精确的目标定位,并且对于一些实际应用可能非常重要(例如,假设有一个机器人手臂试图抓住扳手)。近年来,对开放图像数据集的评价有了进一步的发展,如考虑了盒组和非穷举的图像级类别层次结构。一些研究者也提出了一些替代指标,如“定位回忆精度”。尽管最近发生了一些变化,基于VOC/COCO的mAP仍然是最常用的目标检测评估指标。

2.3、目标检测技术的进化

在本节中,我们将介绍检测系统的一些重要构件及其在过去20年中的技术发展。

2.3.1、早期的灰色知识

早期的目标检测(2000年以前)没有遵循滑动窗口检测等统一的检测理念。当时的探测器通常基于低层和中层的视觉设计如下。

  • 组件、形状和边缘

“分量识别”作为一种重要的认知理论,长期以来一直是图像识别和目标检测的核心思想。早期的一些研究人员将目标检测定义为测量目标组件、形状和轮廓之间的相似性,包括距离变换、形状上下文和Edgelet等。尽管最初的结果很有希望,但在更复杂的检测问题上,事情进展得并不顺利。因此,基于机器学习的检测方法开始蓬勃发展。基于机器学习的检测经历了多个时期,包括外观统计模型(1998年以前)、小波特征表示(1998-2005年)和基于梯度的表示(2005-2012年)。建立一个目标的统计模型,如图5(a)所示的Eigenfaces,是目标检测历史上基于学习的第一波方法。1991年,米。Turk等人利用特征脸分解技术在实验室环境中实现了实时人脸检测。与当时基于规则或模板的方法相比,统计模型通过从数据中学习特定于任务的知识,更好地提供了对象外观的整体描述。自2000年以来,小波特征变换开始主导视觉识别和目标检测。这组方法的本质是通过将图像从像素点转换为一组小波系数来学习。在这些方法中,Haar小波由于其较高的计算效率,主要应用于许多目标检测任务中,如一般目标检测、人脸检测、行人检测等。图5 (d)为VJ检测器学习到的一组人脸Haar小波基。

自2000年以来,小波特征变换开始主导视觉识别和目标检测。这组方法的本质是通过将图像从像素点转换为一组小波系数来学习。在这些方法中,Haar小波由于其较高的计算效率,主要应用于许多目标检测任务中,如一般目标检测、人脸检测、行人检测等。图5 (d)为VJ检测器学习到的一组人脸Haar小波基。

  • 早期的CNN目标检测

使用CNN检测物体的历史可以追溯到20世纪90年代,当时Y. LeCun等人做出了巨大的贡献。由于计算资源的限制,当时的CNN模型比现在的模型要小得多,也要浅得多。尽管如此,在早期基于CNN的检测模型中,计算效率仍然被认为是难以破解的难题之一。Y. LeCun等人对“共享权复制神经网络”、“空间位移网络”等进行了一系列改进,通过扩展卷积网络的每一层来覆盖整个输入图像,减少计算量,如图5 (b)-(c)所示。这样,只需一次网络的正向传播,就可以提取出整个图像任意位置的特征。这可以被认为是当今全卷积网络(FCN)的原型,它是在近20年后提出的。CNN在当时也被应用于人脸检测和手部跟踪等任务。

2.3.2、多尺度检测技术的演化

“不同尺寸”和“不同纵横比”目标的多尺度检测是目标检测的主要技术挑战之一。近20年来,多尺度检测经历了多个历史时期:“特征金字塔和滑动窗口(2014年前)”、“基于目标建议的检测(2010-2015年)”、“深度回归(2013-2016年)”、“多参考检测(2015年后)”、“多分辨率检测(2016年后)”,如图6所示。

  • Feature pyramids sliding windows (before 2014)

随着VJ检测器后计算能力的提高,研究者们开始更加关注一种直观的检测方法,即构建“特征金字塔 滑动窗口”。从2004年到2014年,基于这种检测范式构建了许多里程碑式的检测器,包括HOG检测器、DPM,甚至深度学习时代的Overfeat检测器(ILSVRC-13定位任务冠军)。早期的检测模型,如VJ检测器和HOG检测器,都是专门设计用来检测“固定长宽比”的目标(如人脸和直立的行人),只需要简单地构建特征金字塔,并在其上滑动固定大小的检测窗口。当时没有考虑检测“各种宽高比”。为了检测PASCAL VOC中外观更复杂的物体,R. Girshick等人开始在特征金字塔外寻找更好的解决方案。“混合模型”是当时最好的解决方案之一,它通过训练多个模型来检测不同纵横比的物体。除此之外,基于范例的检测通过为训练集中的每个目标实例(范例)训练单独的模型提供了另一种解决方案。随着现代数据集中的对象(例如MS-COCO)变得更加多样化,混合模型或基于范例的方法不可避免地会导致更多的杂类检测模型。于是一个问题就自然而然地产生了:是否存在一种统一的多尺度方法来检测不同长宽比的目标?“目标提案”(即将提出)的提出已经回答了这个问题。

  • Detection with object proposals (2010-2015)

对象建议引用一组可能包含任何目标的与类无关的候选框。它于2010年首次应用于目标检测。使用目标建议进行检测有助于避免对图像进行彻底的滑动窗口搜索。目标建议检测算法应满足以下三个要求:1)高召回率,2)高定位精度,3)在前两个要求的基础上,提高精度,减少处理时间。现代的提案检测方法可以分为三类:1)分割分组方法;2)窗口评分方法;3)基于神经网络的方法。我们建议读者阅读以下论文,以全面回顾这些方法。

早期的proposal检测方法遵循自底向上的检测理念,深受视觉显著性检测的影响。后来,研究人员开始转向低水平的视觉(如边缘检测)和更精细的手工技能,以改进候选框的定位。2014年以后,随着深度CNN在视觉识别领域的普及,自上而下、基于学习的方法在这个问题上开始显示出更多的优势。从那时起,目标建议检测就从自下而上的视觉演化为“对一组特定目标类的过度拟合”,检测器与建议生成器之间的区别也变得模糊。随着“object proposal”对滑动窗口检测的革命性变革,并迅速主导基于深度学习的检测器,2014-2015年,许多研究者开始提出以下问题:object proposal在检测中的主要作用是什么?是为了提高准确度,还是仅仅为了加快检测速度?为了回答这个问题,一些研究人员试图削弱proposal的作用,或者只是对CNN feature进行滑动窗口检测,但都没有得到令人满意的结果。在单级检测器和(即将引入的)“深度回归”技术的兴起之后,提议检测很快就淡出了人们的视线。

  • Deep regression (2013-2016)

近年来,随着GPU计算能力的提高,人们处理多尺度检测的方式变得越来越直接和暴力。使用深度回归来解决多尺度问题的思想非常简单,即,基于深度学习特征直接预测边界框的坐标。这种方法的优点是简单易行,缺点是定位不够准确,特别是对于一些小目标。“多参考检测”(待介绍)解决了这一问题。

  • Multi-reference/-resolution detection (after 2015)

多参考检测是目前最流行的多尺度目标检测框架。它的主要思想是在图像的不同位置预先定义一组不同大小和宽高比的参考框(即锚框),然后根据这些参考框预测检测框。每个预定义锚盒的典型损失包括两部分:1)类别识别的交叉熵损失和2)目标定位的L_1/L_2回归损失。损失函数的一般形式可以写成:

begin{aligned} Lleft(p, p^{*}, t, t^{*}right) &=L_{c l s .}left(p, p^{*}right) beta I(t) L_{l o c .}left(t, t^{*}right) \ I(t) &=left{begin{array}{ll} 1 & operatorname{IOU}left{a, a^{*}right}>eta \ 0 & text { else } end{array}right. end{aligned}

tt^* 是预测的和地面真实边界框的位置,p和p是它们的类别概率。IOU{a, a^*}是锚a与其ground truth a^* 之间的IOU。η是一个IOU阈值,0.5。如果锚没有覆盖任何对象,其定位损失不计入最终损失。近两年来另一种流行的技术是多分辨率检测,即在网络的不同层检测不同尺度的目标。由于CNN在正向传播过程中自然形成了一个特征金字塔,所以更容易在较深的层中检测到较大的目标,在较浅的层中检测到较小的目标。多参考和多分辨率检测已成为当前最先进的目标检测系统的两个基本组成部分。

2.3.3、Bounding Box回归技术的演进

边界盒(BB)回归是一种重要的对象检测技术。它的目标是在初始建议或锚框的基础上细化预测边界框的位置。近20年来,BB回归的演变经历了三个历史时期:“没有BB回归(2008年以前)”、“从BB到BB(2008- 2013)”、“从feature到BB(2013年以后)”。图7为边界盒回归的演化过程。

  • 没有Bounding Box回归(2008年之前)

早期的检测方法,如VJ检测器和HOG检测器,大多不使用BB回归,通常直接将滑动窗口作为检测结果。为了获得精确的目标位置,研究人员别无选择,只能建造非常密集的金字塔,并在每个位置上密集地滑动探测器。

  • 从BB到BB(2008年-2013年)

第一次将BB回归引入目标检测系统是在DPM中。那时的BB回归通常作为一个后处理块,因此它是可选的。由于PASCAL VOC的目标是预测每个目标的单个边界框,因此DPM生成最终检测的最简单方法应该是直接使用其根过滤器位置。后来,R. Girshick等人提出了一种更复杂的方法来预测一个基于目标假设完整配置的边界框,并将这个过程表示为一个线性最小二乘回归问题。该方法对PASCAL标准下的检测有明显的改进。

  • 从特征到BB(2013年以后)

2015年引入更快的RCNN后,BB回归不再作为单独的后处理块,而是与检测器集成,以端到端的方式进行训练。同时,BB回归已经演化为直接基于CNN特征预测BB。为了得到更强的鲁棒预测,通常使用平滑l1函数,

L(t)=left{begin{array}{ll} 5 t^{2} & |t| leqslant 0.1 \ |t|-0.05 & text { else } end{array}right.

或者平方根函数,Lleft(x, x^{*}right)=left(sqrt{x}-sqrt{x^{*}}right)^{2} 作为回归损失,其对异常值的鲁棒性优于DPM中使用的最小二乘损失。一些研究人员还选择将坐标标准化以获得更健壮的结果。

  • 上下文启动的技术演变

视觉对象通常嵌入到与周围环境一起的典型上下文中。我们的大脑利用物体和环境之间的联系来促进视觉感知和认知[160]。长期以来,上下文启动一直被用来改进检测。在其进化过程中,常用的方法有三种:1)局部上下文检测,2)全局上下文检测,3)上下文交互,如图8所示。

  • 用局部纹理检测

局部上下文是指要检测的目标周围区域的视觉信息。长期以来,人们一直认为局部上下文有助于改进目标检测。在21世纪初,Sinha和Torralba发现,包含面部边界轮廓等局部上下文区域可以显著提高人脸检测性能。Dalal和Triggs还发现,加入少量的背景信息可以提高行人检测的准确性。最近的基于深度学习的检测器也可以通过简单地扩大网络的接受域或目标建议的大小来随着本地上下文进行改进。

  • 用全局纹理检测

全局上下文利用场景配置作为目标检测的额外信息源。对于早期的目标检测器,集成全局上下文的一种常见方法是集成组成场景的元素的统计摘要,如Gist。对于现代的基于深度学习的检测器,有两种方法来集成全局上下文。第一种方法是利用大的接受域(甚至大于输入图像)或CNN feature的全局池操作。第二种方法是将全局上下文看作一种序列信息,并使用递归神经网络学习它。

  • 纹理交互

上下文交互是指通过视觉元素的交互(如约束和依赖关系)来传达的信息。对于大多数目标检测器,在不利用目标实例之间的关系的情况下分别检测和识别目标实例。最近的一些研究表明,考虑上下文的交互作用可以改进现代的目标检测器。最近的一些改进可以分为两类,第一类是探索单个目标之间的关系,第二类是探索建模目标和场景之间的依赖关系。

2.3.5、非极大值抑制技术的演进

非最大抑制(NMS)是一组重要的目标检测技术。由于相邻窗口的检测分数往往相近,因此本文采用非最大抑制作为后处理步骤,去除复制的边界框,得到最终的检测结果。在目标检测的早期,NMS并不总是集成[30]。这是因为当时目标检测系统的期望输出并不完全清楚。近20年来,NMS逐步发展为三组方法:1)贪心选择法、2)边界盒聚集法、3)学习NMS法,如图9所示。

  • Greedy selection

贪心选择是一种老式但最流行的目标检测方法。该过程背后的思想简单直观:对于一组重叠检测,选择检测分值最大的边界框,并根据预定义的重叠阈值(如0.5)删除相邻框。上述处理以贪婪的方式迭代执行。虽然贪心选择已成为NMS的实际方法,但仍有一定的改进空间,如图11所示。首先,得分最高的盒子可能不是最合适的。其次,它可能会抑制附近的物体。最后,它不抑制假阳性。近年来,尽管最近进行了一些手工修改以提高其性能[158,159,163](更多细节请参见4.4节),但据我们所知,贪心选择仍然是当今目标检测的最强基线。

  • BB aggregation

BB聚集是针对NMS的另一组技术,其思想是将多个重叠的边界框组合或聚类成一个最终检测。这种方法的优点是充分考虑了目标关系及其空间布局。有一些著名的检测器使用这种方法,如VJ检测器和Overfeat。

  • Learning to NMS

最近受到广泛关注的一组NMS改进正在学习NMS。这类方法的主要思想是将NMS看作一个过滤器,对所有原始检测进行重新评分,并以端到端方式将NMS训练为网络的一部分。与传统的手工NMS方法相比,这些方法在改善遮挡和密集目标检测方面取得了良好的效果。

2.3.6、难负样本挖掘技术的演进

目标检测器的训练本质上是一个不平衡的数据学习问题。在基于滑动窗口的检测器的情况下,每个目标的背景和目标之间的不平衡可能达到极端的104∼105个背景窗口。现代检测数据集要求预测目标的长径比,进一步将不平衡比提高到106∼107。在这种情况下,使用所有的背景数据对培训都是有害的,因为大量容易产生的负面影响将压倒学习过程。难负挖掘(HNM)是针对训练过程中数据不平衡的问题。HNM在目标检测中的技术演进如图10所示。

  • Bootstrap

目标检测中的Bootstrap是指一组训练技术,训练从一小部分背景样本开始,然后在训练过程中迭代地添加新的误分类背景。在早期的目标检测器中,最初引入bootstrap的目的是减少对数百万个背景样本的训练计算。后来成为DPM和HOG检测器中解决数据不平衡问题的标准训练技术。

  • HNM in deep learning based detectors

在深度学习时代后期,由于计算能力的提高,在2014-2016年的目标检测中,bootstrap很快被丢弃。为了缓解训练过程中的数据不平衡问题,像图12这样的检测器速度更快。目标检测中加速技术的概述。RCNN和YOLO只是在正面和负面窗口之间平衡权重。然而,研究人员后来发现,权重平衡不能完全解决不平衡的数据问题。为此,2016年以后,bootstrap被重新引入到基于深度学习的检测器中。例如,在SSD和OHEM中,只有很小一部分样本(损失值最大的样本)的梯度会被反向传播。在RefineDet中,设计了一个“锚定细化模块”来过滤容易出现的底片。另一种改进是设计新的损失函数,通过重新定义标准的交叉熵损失,使其更关注于困难的、分类错误的示例。

3、检测的加速

加速目标检测一直是一个重要而又具有挑战性的问题。在过去的20年里,目标检测领域已经发展了复杂的加速技术。这些技术大致可以分为“检测流程提速”、“检测引擎提速”和“数值计算提速”三个层次,如图12所示。

3.1、特征图共享计算

在目标检测器的不同计算阶段中,特征提取通常占主导地位。对于基于滑动窗的检测器,计算冗余从位置和尺度两方面入手,其中位置和尺度是由相邻窗口之间的重叠造成的,尺度和尺度之间的特征相关造成的。

3.1.1、空间计算冗余和加速

减少空间计算冗余最常用的方法是特征图共享计算,即,在滑动窗口前只计算一次整个图像的特征图。传统探测器的“图像金字塔”可以看作是一个“特征金字塔”。例如,为了加快HOG行人检测器的速度,研究者通常会将整个输入图像的“HOG map”进行累加,如图13所示。然而,这种方法的缺点也很明显,即,功能图分辨率(此功能图上滑动窗口的最小步长)将受到单元格大小的限制。如果一个小目标位于两个单元格之间,那么所有检测窗口都可以忽略它。解决这个问题的一个方法是构建一个完整的特征金字塔,这将在第3.6节中介绍。特征图共享计算的思想在基于卷积的检测器中也得到了广泛的应用。一些相关的著作可以追溯到20世纪90年代。近年来,大多数基于CNN的探测器,如SPPNet、Fast-RCNN、Fast-RCNN,都采用了类似的思路,实现了数十倍甚至数百倍的加速度。

3.1.2、扩展计算冗余并加快速度

为了减少尺度计算冗余,最成功的方法是直接缩放特征而不是图像,这种方法首次应用于VJ检测器。然而,由于模糊效果,这种方法不能直接应用于类似于hog的特性。对于这个问题,P. Dollar’等人通过广泛的统计分析发现HOG相邻尺度与积分通道特征之间存在很强的(log-linear)相关性。这种相关性可以通过近似相邻尺度的特征图来加速特征金字塔的计算。此外,构建“检测器金字塔”是避免尺度计算冗余的另一种方法,即,通过简单地在一个feature map上滑动多个检测器来检测不同尺度的对象,而不是重新缩放图像或feature。

3.2、分类器的加速

传统的基于滑动窗口的检测器,如HOG检测器和DPM,由于计算复杂度较低,更喜欢使用线性分类器而不是非线性分类器。核SVM等非线性分类器的检测精度较高,但同时也带来较高的计算开销。作为一种标准的非参数方法,传统的核函数法没有固定的计算复杂度。当我们有一个非常大的训练集时,检测速度会变得非常慢。在目标检测中,有很多方法可以加快核化分类器的速度,其中最常用的是“模型近似”。由于经典核支持向量机的决策边界只能由一小组训练样本(支持向量)确定,因此推理阶段的计算复杂度与支持向量的个数成正比:O(Nsv)。约简集向量是核支持向量机的一种近似方法,其目的是用少量的合成向量来获得一个等价的决策边界。另一种提高核SVM在目标检测中的速度的方法是将其决策边界近似为分段线性形式,从而获得一个恒定的推理时间。核方法也可以通过稀疏编码方法来加速。

3.3、级联检测

级联检测是一种常用的目标检测技术。它需要一个粗到精的检测理念:使用简单的计算过滤掉大部分简单的背景窗口,然后用复杂的窗口处理那些更困难的窗口。VJ检测器是级联检测的代表。在此之后,许多后续的经典目标检测器,如HOG检测器和DPM,都通过使用这种技术得到了加速。近年来,级联检测也被应用到基于深度学习的检测器中,特别是针对“大场景中的小目标”的检测任务,如人脸检测、行人检测等。除了算法加速外,级联检测还被应用于解决其他问题,如提高对难例子的检测,整合上下文信息,提高定位精度。

3.4、网络剪枝和量化

“网络剪枝”和“网络量化”是加速CNN模型的两种常用技术,前者是指对网络结构或权值进行剪枝以减小其大小,后者是指减少激活或权值的码长。

3.4.1、网络剪纸

“网络修剪”的研究最早可以追溯到20世纪80年代。当时,Y. LeCun等人提出了一种称为“最优脑损伤”的方法来压缩多层感知器网络的参数[186]。该方法利用二阶导数逼近网络的损失函数,从而去除一些不重要的权重。基于这一思想,近年来的网络剪枝方法通常采用迭代的训练和剪枝过程,即:,在每个训练阶段后只移除一小部分不重要的砝码,并重复这些操作。传统的网络剪枝只是简单地去除不重要的权值,这可能导致卷积滤波器中存在一些稀疏连接模式,不能直接应用于CNN模型的压缩。解决这个问题的一个简单方法是删除整个过滤器而不是独立的权重。

3.4.2、网路量化

最近的网络量化工作主要集中在网络二值化上,其目的是通过将网络的激活或权值量化为二进制变量(如0/1),从而将浮点运算转换为AND或NOT logical operations,从而加快网络的速度。网络二值化可以显著加快计算速度,并减少网络的存储,从而更容易部署到移动设备上。上述思想的一种可能实现是用二进制变量用最小二乘法近似卷积。使用多个二进制卷积的线性组合可以得到更精确的近似。此外,一些研究人员进一步开发了GPU加速库进行二值化计算,获得了更显著的加速结果。

3.4.3、网络蒸馏

网络蒸馏是将大型网络(“教师网”)的知识压缩成小型网络(“学生网”)的一般框架。最近,这一思想被用于加速目标检测。该思想的一种直接方法是使用教师网来指导(轻量级)学生网的训练,以便后者可用于加速检测。另一种方法是对候选区域进行变换,使学生网络和教师网络的特征距离最小化。该方法使检测模型的速度提高了2倍,同时达到了相当的精度。

3.5、轻量网络设计

最后一组加速基于CNN的检测器的方法是直接设计一个轻量级的网络,而不是使用现成的检测引擎。研究人员长期以来一直在探索网络的正确配置,以便在有限的时间成本下获得准确性。除了一些通用的设计原则如“更少的通道,更多的层”,近年来也提出了一些其他的方法:1)分解卷积,2)群卷积,3)深度可分离卷积,4)瓶颈设计,5)神经结构搜索。

3.5.1、网络分解

分解卷积是构建轻量级CNN模型最简单、最直接的方法。有两组分解方法。第一组的方法是因式分解一个大康沃变频器全局过滤器为一组的小空间维度(147、198),如图14所示(b)。例如,一个人可以因式分解7 x7过滤器为三个3 x3过滤器,它们共享相同的接受域但后来的人更有效率。另一个例子是将k×k滤波器分解为k×1滤波器和1×k滤波器,这对于非常大的滤波器来说可能更有效,比如15x15。该思想最近被用于目标检测。第二组是因式分解的方法那一大群卷绕成两个小组在他们的频道维度(201、202),如图14所示(c)。例如,一个人可以近似一个卷积层与d过滤器和c通道的特性映射d0过滤器 非线性激活另一个过滤器(d' < d)。在这种情况下,原始层的复杂度O(dk^2c)可以降低到O(d'k^2c) O(dd')。

3.5.2、群卷积

群卷积旨在减少参数的数量在一个卷积层特性除以渠道分成不同的组,然后缠绕在每一组独立(189、203),如图14所示(d)。如果我们平分特性渠道分成m组,而不改变其他配置,卷积的计算复杂性理论将减少到1 / m的之前。

3.5.3、深度方面分离卷积

图14 (e)所示的深度可分离卷积是近年来流行的一种构建轻量级卷积网络的方法。当组数等于信道数时,它可以看作是群卷积的一个特例。假设我们有一个卷积层,带有d个过滤器和一个c通道的特征图。每个滤波器的大小为k×k,对于深度可分卷积,首先将每个k×k×c滤波器分割为c个切片,每个切片的大小为k×k×1,然后在每个通道中对每个滤波器的每个切片分别进行卷积。最后,使用多个1x1过滤器进行维度转换,以便最终的输出应该具有d通道。利用深度可分卷积,将计算复杂度从O(dk^2c)降低到O(ck^2) O(dc)。该思想最近被应用于目标检测和细粒度分类。

3.5.4、瓶颈设计

与前一层相比,神经网络中的瓶颈层只包含很少的节点。它可用于学习降维输入的高效数据编码,这在深度自编码中得到了广泛的应用。近年来,瓶颈设计在轻量化网络设计中得到了广泛的应用。在这些方法中,一种常见的方法是压缩检测器的输入层,以减少从检测管道开始的计算量。另一种方法是压缩检测引擎的输出,使feature map变薄,使其在后续的检测阶段更加高效。

3.5.5、神经架构搜索

近年来,人们对利用神经结构搜索(NAS)自动设计网络体系结构而不是依赖于专家经验和知识产生了浓厚的兴趣。NAS已应用于大规模图像分类,目标检测和图像分割任务。NAS最近在设计轻量级网络方面也显示出了很好的结果,其中在搜索过程中考虑了预测精度和计算复杂度的限制。

3.6、数值加速

在这一节中,我们主要介绍了四种重要的数值加速方法,它们在目标检测中经常使用:1)积分图像加速,2)频域加速,3)矢量量化,4)降阶近似。

3.6.1、用积分图像加速

积分图像是图像处理中的一种重要方法。它有助于快速计算图像子区域的和。积分图像的本质是信号处理中卷积的积分微分可分性:

f(x) * g(x)=left(int f(x) d xright) *left(frac{d g(x)}{d x}right)

如果dg(x)/dx是一个稀疏信号,那么卷积可以被方程右边的部分加速。虽然VJ检测器以积分图像加速度著称,但在它诞生之前,积分图像已经被用来加速CNN模型,并达到了10倍以上的加速度。除了上述例子外,积分图像还可以用来加速目标检测中更一般的特征,如颜色直方图、梯度直方图等。一个典型的例子是通过计算积分HOG映射来加速HOG。积分HOG map不是在传统的积分图像中积累像素值,而是在图像中积累梯度方向,如图15所示。由于细胞的直方图可以看作是某一区域梯度向量的和,利用积分图像可以计算任意位置和大小的矩形区域的直方图,计算开销是恒定的。积分HOG地图已被应用于行人检测中,并在不损失任何精度的前提下实现了数十倍的加速度。2009年晚些时候,P. Dollar’等人提出了一种新的图像特征,称为积分通道特征(ICF),可以认为是积分图像特征的一种更为普遍的情况,并已成功应用于行人检测。ICF在其所处的时间内,以接近实时的检测速度实现了最先进的检测精度。

3.6.2、频域的加速

卷积是目标检测中的一种重要的数值运算形式。由于线性检测器的检测可以看作是特征图与检测器权值之间的窗口内积,因此该过程可以通过卷积来实现。卷积可以在很多方面得到加速,傅里叶变换是一个非常实用的选择尤其是对于加速那些大的滤波器。频域加速卷积的理论基础是信号处理中的卷积定理,即在合适的条件下,两个信号卷积的傅里叶变换是其傅里叶空间的点乘:

I * W=F^{-1}(F(I) odot F(W))

其中F^{-1}是傅里叶变换,F×1是傅里叶反变换,IW是输入图像和滤波器,n是卷积运算,n是逐点积。利用快速傅里叶变换(FFT)和反快速傅里叶变换(IFFT)可以加速上述计算。FFT和IFFT现在经常被用来加速CNN模型和一些经典的线性目标检测器,这使得检测速度提高了一个数量级。图16是在频域加速线性目标检测器(如HOG和DPM)的标准管道。

3.6.3、矢量量化

矢量量化(VQ)是信号处理中的一种经典的量化方法,其目的是通过一组小的原型矢量来近似一组大数据的分布。它可用于数据压缩和加速目标检测中的内积运算。例如,使用VQ,可以将HOG直方图分组并量化为一组原型直方图向量。然后在检测阶段,通过查表操作实现特征向量与检测权值之间的内积。由于该过程中没有浮点乘法和除法,因此DPM和样本SVM检测器的速度可以提高一个数量级。

3.6.4、减少秩的逼近

在深度网络中,全连通层的计算本质上是两个矩阵的乘法。当参数矩阵W∈Ru×v较大时,检测器的计算量较大。例如,在快速RCNN检测器中,近一半的正向通过时间用于计算完全连接的层。降秩近似是一种加速矩阵乘法的方法。它的目的是对矩阵W进行低秩分解: mathbf{W} approx mathbf{U} Sigma_{t} mathbf{V}U是一个U×t矩阵组成的第t左奇异向量W,Σt是一个包含顶级t×t对角矩阵奇异值的WV V×t矩阵组成的第一个t right-singular向量W以上的过程,也称为截断奇异值分解,减少了参数计算从紫外线到(U V),可以显著如果t比最小值小得多(U, V)截断奇异值分解被用来加速RCNN检测器和达到x2速度快。

4、目标检测的最新进展

在这一节中,我们将回顾近三年来最先进的目标检测方法。

4.1、使用更好的引擎进行检测

近年来,deep CNN在许多计算机视觉任务中发挥了核心作用。由于检测器的精度在很大程度上取决于其特征提取网络,因此本文将主干网络(如ResNet和VGG)称为检测器的“引擎”。图17显示了三种著名的检测系统的检测精度:速度更快的RCNN、R-FCN和SSD,不同的发动机选择。在本节中,我们将介绍深度学习时代的一些重要的检测引擎。关于这个话题的更多细节,我们请读者参考下面的调查。

AlexNet: AlexNet是一个八层深度网络,是第一个开启计算机视觉深度学习革命的CNN模型。AlexNet在2012年ImageNet LSVRC-2012比赛中以巨大的优势胜出(15.3% VS . 26.2%(第二名))。截至2019年2月,Alexnet论文被引用超过3万次。

VGG: VGG是2014年由牛津视觉几何小组(Visual Geometry Group, VGG)提出的。VGG将模型的深度增加到16-19层,使用非常小的卷积滤波器(3x3),而不是以前AlexNet中使用的5x5和7x7。VGG在当时的ImageNet数据集上实现了最先进的性能。

GoogLeNet: GoogLeNet a.k.Inception[198,231 - 233]是谷歌Inc.自2014年以来提出的CNN模型的一个大家族。GoogLeNet增加了CNN的宽度和深度(多达22层)。Inception系列的主要贡献是引入了因子卷积和批处理标准化。

ResNet: Deep Residual Networks (ResNet)[234],由K. He等人于2015年提出,是一种新型的卷积网络架构,它比以前使用的卷积网络结构要深很多(高达152层)。ResNet 旨在 减轻 网络 的 培训 通过 调整 其 作为 学习 剩余 功能 层 inputs. 参考 层ResNet在2015年多次计算机视觉大赛中获奖,包括ImageNet检测、ImageNet定位、COCO检测、COCO分割。

DenseNet: DenseNet由G. Huang、Z. Liu等人于2017年提出。ResNet的成功表明,CNN的捷径连接使我们能够训练更深入、更准确的模型。作者接受了这一观察结果,并引入了一个紧密连接的块,它以前馈的方式将每一层连接到每一层。

SENet:挤激网络(SENet)是由J. Hu和L. Shen等人于2018年提出的。它的主要贡献是集成了全球池和洗牌,以学习功能映射在通道方面的重要性。SENet在ILSVRC 2017年分类竞赛中获得第一名。

用新引擎来进行目标检测:近三年来,许多最新的发动机已应用于目标检测。例如,一些最新的目标检测模型,如STDN, DSOD, TinyDSOD, Pelee,都选择DenseNet作为检测引擎。Mask RCNN作为实例分割的最先进模型,采用了下一代ResNet: ResNeXt作为其检测引擎。此外,为了加快检测速度,在MobileNet、LightHead RCNN等检测器中也采用了由Incepion改进版Xception[204]引入的深度可分离卷积运算。

4.2、用更好的特征检测

特征表示的质量是目标检测的关键。近年来,许多研究人员在一些最新的引擎的基础上,进一步提高了图像特征的质量,其中最重要的两组方法是:1)特征融合和2)学习具有较大接受域的高分辨率特征。

4.2.1、为什么特征融合这么重要?

不变性和等方差是图像特征表示的两个重要性质。分类需要不变的特征表示,因为它的目的是学习高级语义信息。由于目标定位的目的是区分位置和尺度的变化,所以目标定位需要等变表示。由于目标检测由目标识别和定位两个子任务组成,因此检测器必须同时学习不变性和等方差。近三年来,特征融合在目标检测中得到了广泛的应用。由于CNN模型由一系列卷积层和池化层组成,更深层次的特征具有更强的不变性,但等方差较小。虽然这有利于分类识别,但在目标检测中定位精度较低。相反,较浅层次的特征不利于学习语义,但它有助于对象定位,因为它包含更多关于边缘和轮廓的信息。因此,CNN模型中深度和深度特征的融合有助于提高不变性和等方差。

4.2.2、特征融合的不同方式

在目标检测中进行特征融合的方法有很多。本文从两个方面介绍了近年来的一些方法:1)处理流程和2)元素智能操作。

  • Processing flow

目前用于目标检测的特征融合方法主要分为两类:1)自底向上融合,2)自顶向下融合,如图18 (a)-(b)所示。自底向上的融合通过跳过连接将浅层特征转发到更深的层。相比之下,自顶向下融合将更深层次的特征反馈给更浅层次的特征。除了这些方法,最近还提出了更复杂的方法,例如跨不同层编织特性。由于不同层的地物图在空间维度和通道维度上的尺寸可能不同,因此可能需要对地物图进行调整,如调整通道数量、上采样低分辨率地物图或下采样高分辨率地物图,使其大小合适。最简单的方法是使用最接近或双线性插值。此外,分数阶条纹卷积(又称转置卷积)是近年来另一种常用的调整feature map大小和调整通道数量的方法。使用分数阶条纹卷积的优点是,它可以学习一种适当的方法来执行上采样本身。

  • 逐元素操作

从局部的角度看,特征融合可以看作是不同特征映射之间的元素智能操作。有三组方法:1)元素明智的总和,2)元素明智的乘积,3)连接,如图18 (c)-(e)所示。逐元素的和是执行特征融合最简单的方法。它已被频繁地用于许多最近的目标检测器。element-wise product与element-wise sum非常相似,唯一的区别是使用乘法而不是求和。元素智能产品的一个优点是,它可以用来抑制或突出某个区域内的特性,这可能进一步有利于小目标检测。特征拼接是特征融合的另一种方式。它的优点是可以用来集成不同区域的上下文信息,缺点是增加了内存。

4.2.3、学习高分辨率的特点与大的接受领域

接受域和功能解析基于CNN探测器的两个重要特点,前一个是指输入像素的空间范围导致的计算一个像素的输出,而后者对应于一个采样下来的速度输入和功能之间的映射。具有较大接受域的网络能够捕获更大范围的上下文信息,而具有较小接受域的网络则可能更专注于局部细节。正如我们前面提到的,特征分辨率越低,就越难检测小目标。提高特征分辨率最直接的方法是去除池化层或降低卷积下采样率。但这将带来一个新的问题,即由于输出步长减小,接收域会变得太小。换句话说,这将缩小探测器的“视线”,并可能导致一些大型物体的漏检。一种同时提高接收域和特征分辨率的方法是引入膨胀卷积(又称无孔卷积,或带孔卷积)。扩展卷积最初是在语义分割任务中提出的。其主要思想是对卷积滤波器进行扩展,使用稀疏参数。例如,膨胀率为2的3x3滤波器与5x5内核具有相同的接受域,但只有9个参数。膨胀卷积目前已广泛应用于目标检测中,在不需要任何额外参数和计算代价的情况下,被证明是提高精度的有效方法。

4.3、超越滑动窗

  • 用子区域搜索

子区域搜索提供了一种新的检测方法。最近的一种方法是将检测视为一个路径规划过程,从初始网格开始,最终收敛到所需的ground truth盒。另一种方法是将检测看作是一个迭代更新过程,对预测边界框的角进行细化。

  • 检测为重点定位

关键点定位是一项重要的计算机视觉任务,有着广泛的应用,如面部表情识别、人体姿态识别等。由于图像中任何目标都可以由其在地面真值框的左上角和右下角唯一确定,因此检测任务可以等价地框定为一对关键点定位问题。这个想法最近的一个实现是预测拐角的热图。该方法的优点是可以在语义分割框架下实现,不需要设计多尺度的锚盒。

4.4、对定位的提升

为了提高定位精度,目前的检测方法主要有两种:1)边界盒细化法和2)设计新的损失函数进行精确定位。

4.4.1、Bounding Box精炼

提高定位精度最直观的方法是对边界框进行细化,可以将其视为检测结果的后处理。尽管边界框回归已经集成到大多数现代目标检测器中,但是仍然有一些具有意外规模的目标不能被任何预定义的锚很好地捕获。这将不可避免地导致对其位置的不准确预测。因此,最近引入了“迭代边界框细化”,将检测结果迭代地输入BB回归器,直到预测收敛到正确的位置和大小。但也有研究人员认为该方法不能保证定位精度的单调性,即多次使用BB回归可能会使定位退化。

4.4.2、提升损失函数来进行精确定位

在大多数现代探测器中,目标定位被认为是一个坐标回归问题。然而,这种模式有两个缺点。首先,回归损失函数并不对应最终的本地化评估。例如,我们不能保证较低的回归误差总是会产生较高的欠条预测,特别是当对象的长径比非常大时。其次,传统的边界盒回归方法不能提供定位的置信度。当多个BB重叠时,可能导致非最大抑制失败(详见2.3.5节)。设计新的损失函数可以缓解上述问题。最直观的设计是直接使用IoU作为定位损失函数。其他一些研究人员进一步提出了一种基于人工智能引导的NMS,以提高训练和检测阶段的定位。此外,一些研究者也尝试在概率推理框架下改进定位。与以往直接预测框坐标的方法不同,该方法预测了边界框位置的概率分布。

4.5、用分割学习

目标检测和语义分割是计算机视觉中的重要任务。近年来的研究表明,通过学习和语义分割可以提高目标检测能力。

4.5.1、为什么分割能提升检测

语义分割提高目标检测能力的原因有三个。

  • 分割有助于分类识别

边缘和边界是构成人类视觉认知的基本要素。在计算机视觉中,物体(如汽车、人)和物体(如天空、水、草)的区别在于前者通常有一个封闭的、明确的边界,而后者没有。由于语义分割任务的特征能够很好地捕捉到目标的边界,因此分割可能有助于分类识别。

  • 分割有助于精确定位

目标的ground truth边界框由其定义良好的边界决定。对于一些特殊形状的物体(例如,想象一只猫有很长的尾巴),很难预测高借据的位置。由于目标边界可以很好地编码在语义分割特征中,分割学习有助于准确的目标定位。

  • 分割可以作为上下文嵌入

日常生活中的物体被不同的背景所包围,如天空、水、草等,这些元素构成了一个物体的语境。整合上下文的语义分割将有助于目标检测,例如,飞机更有可能出现在空中而不是水上。

4.5.2、分割如何提升精度

通过分割提高目标检测的主要方法有两种:1)特征丰富的学习和2)多任务丢失函数的学习。

  • 学习丰富的特征

最简单的方法是将分割网络看作一个固定的特征提取器,并将其作为附加特征集成到检测框架中。该方法的优点是易于实现,缺点是分割网络可能带来额外的计算。

  • 多任务损失函数的学习

另一种方法是在原有检测框架的基础上引入额外的分割分支,用多任务丢失函数(分割丢失 检测丢失)训练该模型。在大多数情况下,分割早午餐将在推理阶段被删除。优点是检测速度不受影响,缺点是训练需要像素级的图像标注。为此,一些研究人员采用了“弱监督学习”的思想:他们不是基于像素级注释掩码进行训练,而是基于边界框级注释训练分割早午餐。

4.6、旋转和尺度变化的鲁棒检测

目标旋转和尺度变化是目标检测中的重要挑战。由于CNN学习到的特征是不受旋转和尺度变化的影响的,近年来很多人在这个问题上做出了努力。

4.6.1、旋转鲁棒检测

目标旋转在人脸检测、文本检测等检测任务中非常常见。这个问题最直接的解决方案是数据扩充,使任何方向的目标都能被扩充的数据很好地覆盖。另一种解决方案是为每个方向训练独立的探测器。除了这些传统的方法,最近还有一些新的改进方法。

  • 旋转不变损失函数

旋转不变损失函数学习的思想可以追溯到20世纪90年代。最近的一些工作对原有的检测损耗函数进行了约束,使旋转后的物体的特征保持不变。

  • 旋转校准

改进旋转不变量检测的另一种方法是对候选对象进行几何变换。这对于多级探测器尤其有用,早期的相关关系将有利于后续的检测。这种思想的代表是空间变压器网络(STN)。STN目前已被用于旋转文本检测和旋转人脸检测。

  • 选准RoI池化

在两阶段检测器中,特征池的目标是为任意位置和大小的目标提案提取固定长度的特征表示,首先将提案均匀地划分为一组网格,然后将网格特征串联起来。由于网格网格划分是在直角坐标系下进行的,其特征对旋转变换不具有不变性。最近的一项改进是在极坐标下对网格进行网格划分,使特征对旋转变化具有鲁棒性。

4.6.2、尺度鲁棒检测

近年来,在尺度鲁棒检测的训练和检测阶段都有了改进。

  • 尺度适应训练

大多数现代探测器都是将输入图像重新缩放到一个固定的尺寸,并将物体在所有尺度下的损失进行反向传播,如图19 (a)所示。但是,这样做的缺点是会出现“尺度不平衡”问题。在检测过程中构建图像金字塔可以缓解这一问题,但不能从根本上解。最近的改进是尺度归一化的图像金字塔(剪),而构建图像金字塔的训练和检测阶段,只有backpropagates失去一些选择的尺度,如图19所示(b)。一些研究人员进一步提出更有效的培训策略:剪断与高效的重采样(狙击手)即剪切和变换图像一组分区,以便从大型批量训练中获益。

  • 尺度适应检测

现代探测器大多采用固定的结构来检测不同尺寸的物体。例如,在一个典型的基于CNN的检测器中,我们需要仔细定义锚的大小。这样做的一个缺点是配置不能适应意外的规模变化。为了提高对小目标的检测,近年来的一些检测器提出了一些“自适应放大”技术,自适应地将小目标放大为“大目标”。最近的另一项改进是学习预测图像中目标的尺度分布,然后根据分布自适应地重新缩放图像。

4.7、从零开始训练

大多数基于深度学习的检测器首先在大规模数据集(如ImageNet)上进行预训练,然后针对特定的检测任务进行微调。人们一直认为预训练有助于提高泛化能力和训练速度,问题是,我们真的需要在ImageNet上对检测器进行预训练吗?事实上,采用预训练网络进行目标检测存在一定的局限性。第一个限制是ImageNet分类和目标检测之间的分歧,包括它们的损失函数和尺度/类别分布。第二个限制是域不匹配。由于ImageNet中的图像是RGB图像,而深度图像(RGB- d)或三维医学图像有时需要进行检测,因此无法很好地将预先训练好的知识转移到这些检测任务中。近年来,一些研究人员尝试从零开始训练一种物体探测器。为了加快训练速度和提高稳定性,一些研究人员引入密集连接和批量归一化来加速浅层的反向传播。最近的工作由k . et al。进一步质疑pretraining的范式进一步探索相反的政权:他们在COCO目标检测报告竞争结果数据集使用标准模型训练从随机初始化,唯一例外的增加训练的迭代的数量所以随机初始化模型可能收敛。即使只使用10%的训练数据,随机初始化训练的鲁棒性也令人惊讶,这表明ImageNet预处理可以加快收敛速度,但不一定提供正则化或提高最终检测精度。

4.8、对抗训练

由A. Goodfellow等人于2014年提出的生成式对抗网络(GAN)近年来受到了极大的关注。一个典型的GAN由两个神经网络组成:一个生成网络和一个判别网络,它们在极小极大优化框架下相互竞争。通常,生成器学习从潜在空间映射到感兴趣的特定数据分布,而discriminator的目标是区分真实数据分布中的实例和生成器生成的实例。GAN广泛应用于图像生成、图像样式传输、图像超分辨率等计算机视觉任务。近年来,GAN也被应用于目标检测,尤其是对小遮挡目标的检测。GAN被用来通过缩小小目标和大目标之间的表示来增强对小目标的检测。为了提高对被遮挡物体的检测,最近的一个想法是使用对抗性训练生成遮挡掩模。与在像素空间中生成示例不同,对抗性网络直接修改特性来模拟遮挡。此外,“对抗性攻击”研究如何用对抗性的例子攻击检测器,近年来受到越来越多的关注。这一课题的研究对于自主驾驶来说尤为重要,因为在保证其对对抗攻击的鲁棒性之前,不能完全信任它。

4.9、弱监督目标检测

现代目标探测器的训练通常需要大量的人工标记数据,而标记过程费时、昂贵、低效。弱监督目标检测(WSOD)的目标是通过训练一个只带有图像级注释而不是边界框的检测器来解决这一问题。近年来,多实例学习被用于WSOD。多实例学习是一种有监督的学习方法。多实例学习模型不是使用一组单独标记的实例进行学习,而是接收一组标记的包,每个包包含多个实例。如果将一个图像中的候选目标看作一个包,并将图像级注释看作标签,那么WSOD可以表示为一个多实例学习过程。类激活映射是最近出现的另一组WSOD方法。对CNN可视化的研究表明,尽管没有对目标位置的监控,但是CNN的卷积层表现为目标检测器。类激活映射揭示了如何使CNN在接受图像级标签训练的情况下仍然具有定位能力。除了上述方法外,还有一些研究者认为WSOD是一个提案排序过程,通过选择信息量最大的区域,然后用图像级标注对这些区域进行训练。WSOD的另一个简单方法是屏蔽图像的不同部分。如果检测分值急剧下降,则物体被覆盖的概率较高。此外,交互注释在训练中考虑了人的反馈,从而提高了WSOD。最近,生成性对抗性训练被用于WSOD。

5、应用

在本节中,我们将回顾过去20年来一些重要的检测应用,包括行人检测、人脸检测、文本检测、交通标志/灯光检测和遥感目标检测。

5.1、行人检测

行人检测作为一种重要的目标检测应用,在自动驾驶、视频监控、刑事侦查等领域得到了广泛的关注。早期的行人检测方法,如HOG检测器、ICF检测器,在特征表示、分类器设计、检测加速度等方面,为一般的目标检测奠定了坚实的基础。近年来,一些通用的目标检测算法,如Faster RCNN,被引入到行人检测中,极大地推动了该领域的发展。

5.1.1、困难和挑战

行人检测的挑战和困难可以总结如下。

  • 小行人:图20 (a)显示了一些远离摄像机拍摄的小行人的例子。在Caltech Dataset[59,60]中,15%的行人身高小于30像素。
  • 难负:街景图像中的一些背景与行人的视觉外观非常相似,如图20 (b)所示。密集和闭塞行人:图20 (c)显示了密集和闭塞行人的一些例子。在Caltech的数据集中[59,60],没有被遮挡的行人只占行人总数的29%。
  • 实时检测:高清视频中的实时行人检测对于自动驾驶、视频监控等应用至关重要。

5.1.2、文献回顾

行人检测有着非常悠久的研究历史。其发展可分为两个技术阶段:1)传统的行人检测和2)基于深度学习的行人检测。关于这个主题的更多细节,请参考下面的调查。

  • 传统行人检测方法

由于计算资源的限制,Haar小波特征在早期行人检测中得到了广泛的应用。为了提高对遮挡行人的检测,当时流行的一种思想是“组件检测”,即,把探测看作一个多部分探测器的集合,这些探测器分别训练在不同的人体部位,如头部、腿部和手臂上。随着计算能力的提高,人们开始设计更加复杂的检测模型,自2005年以来,基于梯度的表示和DPM已经成为行人检测的主流。2009年,利用积分图像加速,提出了一种有效且轻量级的特征表示:积分通道特征(ICF)。ICF成为当时行人检测的新标杆。除了特征表示,还考虑了一些领域知识,如外观恒常性和形状对称性以及立体信息。

  • 基于深度学习的行人检测

行人检测是第一个使用深度学习的计算机视觉任务。

改进小行人检测:虽然Fast/Faster R-CNN等深度学习目标检测器在一般目标检测方面表现出了最先进的性能,但由于卷积特征的分辨率较低,在小行人检测方面的成功率有限[。最近解决这一问题的一些方法包括特征融合,引入额外的高分辨率手工特征,以及基于多个分辨率的集成检测结果。

改进硬阴性检测:最近的一些改进包括增强决策树的集成,以及语义分割(作为行人上下文)。此外,还引入了“交叉模态学习”的思想,利用RGB图像和红外图像来丰富硬底片的特征。

改进密集遮挡行人检测:如2.3.2节所述,CNN较深层的特征具有较丰富的语义,但对密集目标检测效果不佳。为此,一些研究人员考虑到目标的吸引力和周围物体的排斥力,设计了新的损失函数。目标遮挡是密集行人经常遇到的另一个问题。局部检测器的集成和注意机制是改善遮挡行人检测最常见的方法。

5.2、人脸检测

人脸检测是最古老的计算机视觉应用之一。早期的人脸检测,如VJ检测器,极大地促进了目标检测,其许多出色的思想甚至在今天的目标检测中仍然发挥着重要的作用。人脸检测已经应用于各行各业,如数码相机中的“微笑”检测、电子商务中的“刷脸”、移动应用中的人脸化妆等。

5.2.1、困难和挑战

人脸检测的难点和挑战可以总结如下:

类内变异:人脸可能呈现多种表情、肤色、姿势和动作,如图21 (a)所示。

遮挡:人脸可能被其他物体遮挡部分,如图21 (b)所示。

多尺度检测:检测多种尺度下的人脸,尤其是一些微小的人脸,如图21(c)所示。

实时检测:移动设备上的人脸检测通常需要CPU的实时检测速度。

5.2.2、文献回顾

人脸检测的研究可以追溯到20世纪90年代初。然后经历了多个历史时期:早期人脸检测(2001年以前)、传统人脸检测(2001-2015)、基于深度学习的人脸检测(2015-至今)。我们请读者参考以下调查以了解更多详情。

  • 早期的人脸检测(2001年之前)

早期的人脸检测算法可以分为三类:1)基于规则的方法。这组方法将人类对构成一张典型面孔的知识进行编码,并捕捉面部元素之间的关系。2)基于子空间分析的方法。这组方法分析了人脸在底层线性子空间中的分布。特征面是这组方法的代表。3)基于学习的方法:将人脸检测框架为滑动窗口 二分类(目标vs背景)过程。这一组常用的模型包括神经网络和SVM。

  • 传统的人脸检测(2000-2015年)

这一时期有两组人脸探测器。第一组方法是基于增强决策树构建的。这些方法计算简单,但在复杂场景下检测精度较低。第二组基于早期的卷积神经网络,利用特征的共享计算加快检测速度。

  • 基于深度学习的人脸检测(2015年以后)

在深度学习时代,大多数人脸检测算法都遵循一般的对象检测思想,如更快的RCNN和SSD。加速人脸检测:级联检测(详见3.3节)是深度学习时代加速人脸检测最常用的方法[179,180]。另一种加速方法是预测图像中人脸的尺度分布[283],然后在选定的尺度上进行检测。

改进多姿态和遮挡人脸检测:利用“人脸校准”的思想,通过估计校准参数或通过多个检测阶段的逐步校准来改进多姿态人脸检测。为了提高对遮挡人脸的检测,最近提出了两种方法。第一个是融入“注意机制”,突出潜在人脸目标的特征。第二种是“基于零件的检测”,它继承了DPM的思想。

改进多尺度人脸检测:近年来多尺度人脸检测研究采用了与一般目标检测相似的检测策略,包括多尺度特征融合和多分辨率检测(详见2.3.2和4.2.2节)。

5.3、文本检测

几千年来,文字一直是人类的主要信息载体。文本检测的基本目标是确定给定图像中是否有文本,如果有,则定位并识别它。文本检测有着非常广泛的应用。它帮助视障人士“阅读”街道标识和货币。在地理信息系统中,对门牌号和街道标识的检测和识别使得构建数字地图更加容易。

5.3.1、困难和挑战

文本检测的难点和挑战可以总结如下:

不同的字体和语言:文本可能有不同的字体、颜色和语言,如图22 (a)所示。

文本旋转和透视变形:文本可能有不同的方向,甚至可能有透视变形,如图22 (b)所示。

密集排列的文本定位:长宽比大、布局密集的文本行很难精确定位,如图22 (c)所示。破碎和模糊的字符:破碎和模糊的字符在街景图像中很常见。

5.3.2、文献回顾

文本检测包括两个相关但相对独立的任务:1)文本定位和2)文本识别。现有的文本检测方法可分为“逐级检测”和“综合检测”两大类。我们请读者参考下面的调查以了解更多细节。

  • 步进检测vs集成检测

步进检测方法由字符分割、候选区域验证、字符分组和单词识别等一系列处理步骤组成。这组方法的优点是大部分的背景都可以在粗分割步骤中进行滤波,大大降低了后续处理的计算成本。缺点是需要仔细设置所有步骤的参数,这些错误将在每个步骤中发生和积累。相比之下,集成方法将文本检测定义为一个联合概率推理问题,在统一的框架下处理字符定位、分组和识别的步骤。这些方法的优点是避免了累积误差,易于集成语言模型。缺点是,当考虑到大量字符类和候选窗口时,推理的计算开销会很大。

  • 传统方法VS深度学习方法

传统的文本检测方法大多采用无监督的方式生成候选文本,常用的方法有最大稳定极值区域分割(MSER)和形态学滤波。这些方法还考虑了文本的对称性和笔画结构等领域知识。近年来,学者们更多地关注文本的定位问题,而不是识别问题。最近提出了两组方法。第一组方法将文本检测作为一般目标检测的特例。这些方法都有统一的检测框架,但对于方向或长宽比较大的文本检测效果较差。第二组方法将文本检测框架为图像分割问题。这些方法的优点是对文本的形状和方向没有特殊的限制,缺点是根据分割结果很难区分排列密集的文本行。针对上述问题,近年来基于深度学习的文本检测方法提出了一些解决方案。

对于文本旋转和透视图更改:这个问题最常见的解决方案是在锚框和RoI池层中引入与旋转和透视图更改相关的附加参数。

改进密集排列文本检测:基于分段的方法在检测密集排列文本方面显示出更大的优势。为了区分相邻的文本行,最近提出了两组解决方案。第一个是“段与链接”,其中“段”表示字符的热度图,“链接”表示相邻的两个段之间的连接,表示它们属于同一单词或文本行。第二组是引入额外的角/边界检测任务,以帮助分离密集排列的文本,其中一组角或封闭的边界对应于单个文本行。

改进断字和模糊文本检测:最近出现的一种处理断字和模糊文本的方法是使用单词级识别和句子级识别。处理不同字体的文本,最有效的方法是使用合成样本进行训练。

5.4、交通灯和标志检测

对于文本旋转和透视图更改:这个问题最常见的解决方案是在锚框和RoI池层中引入与旋转和透视图更改相关的附加参数。随着自动驾驶技术的发展,交通标志和交通灯的自动检测近年来引起了人们的极大关注。在过去的几十年里,虽然计算机视觉社区在很大程度上推动了对一般物体的检测,而不是像交通灯和交通标志这样的固定模式,但认为它们的识别没有挑战性仍然是一个错误。

5.4.1、困难和挑战

交通标志/灯光探测的挑战和困难可归纳如下:

光照变化:当行驶在强光下或夜间时,检测尤为困难,如图23 (a)所示。

运动模糊:由于汽车的运动,车载摄像头拍摄到的图像会变得模糊,如图23 (b)所示。

恶劣天气:在恶劣天气下,如雨雪天气,会影响图像质量,如图23 (c)所示。

实时检测:这对自动驾驶尤为重要。

5.4.2、文献回顾

现有的交通标志/灯光检测方法可以分为两大类:传统的检测方法和基于深度学习的检测方法。关于这个话题的更多细节,我们请读者参考下面的调查。

  • 传统检测方法

基于视觉的交通标志/灯光检测的研究最早可以追溯到20年前。由于交通标志/信号灯具有特定的形状和颜色,传统的检测方法通常基于颜色阈值化、视觉显著性检测、形态填充法、边缘/轮廓分析。由于上述方法仅仅是基于低水平视觉进行设计,在复杂的环境下往往会失败(如图23所示),因此一些研究者开始寻找除了基于视觉的方法之外的其他解决方案,例如将GPS与数字地图相结合用于交通灯检测。虽然“特征金字塔 滑动窗”已经成为当时通用目标检测和行人检测的标准框架,但除了极少数的工作,主流的交通标志/灯光检测方法直到2010年才遵循这一范式。

  • 基于深度学习的检测方法

在深度学习时代,一些著名的检测器如fast RCNN和SSD被应用到交通标志/灯光检测任务中。在这些检测器的基础上,一些新的技术,如注意机制和对抗性训练被用来改善复杂交通环境下的检测。

5.5、遥感目标检测

遥感成像技术为人们更好地了解地球打开了一扇门。近年来,随着遥感图像分辨率的提高,遥感目标检测(如飞机、船舶、油壶等的检测)成为研究热点。遥感目标检测在军事侦察、灾害救援、城市交通管理等方面有着广泛的应用。

5.5.1、困难和挑战

遥感目标检测面临的挑战和困难总结如下:

“大数据”中的检测:由于遥感图像数据量巨大,如何快速准确地检测遥感目标仍然是一个问题。图24 (a)为遥感图像与自然图像数据量对比图。

遮挡目标:每天超过50%的地球表面被云层覆盖。图24 (b)给出了一些被遮挡目标的例子。

领域适应:不同传感器(如不同调制和分辨率)获取的遥感图像存在很大差异。

5.5.2、文献回顾

关于这个话题的更多细节,我们请读者参考以下调查。

  • 传统检测方法

传统的遥感目标检测方法大多采用两阶段检测范式:1)候选提取和2)目标验证。在候选提取阶段,常用的方法有基于灰度值滤波的方法、基于视觉显著性的方法、基于小波变换的方法、基于异常检测的方法等。上述方法的一个相似之处是它们都是非监督方法,因此在复杂的环境中通常会失败。在目标验证阶段,常用的特征包括HOG, LBP, SIFT等。此外,还有一些其他方法遵循滑动窗口检测范式。为了检测具有特定结构和形状的目标,如油罐和近岸船舶,需要使用一些领域知识。例如,油壶检测可以看作是圆/弧检测问题。图24近岸船。遥感目标检测面临的挑战:(a)“大数据”检测:单视图遥感图像与VOC、ImageNet、MS-COCO平均图像大小的数据量比较。(b)被云遮挡的目标。图片来自邱S.等人。JSTARS2017[380],邹泽明等。TGRS2016。检测可视为对前甲板和船尾的检测。为了改进遮挡目标检测,常用的一种方法是“分部检测”。为了检测不同方向的目标,使用“混合模型”对不同方向的目标训练不同的检测器。

  • 基于深度学习的方法

RCNN在2014年取得巨大成功后,deep CNN很快被应用于遥感目标检测。Fast RCNN、SSD等通用目标检测框架在遥感领域受到越来越多的关注。由于遥感图像与日常图像的巨大差异,人们对深度CNN特征对遥感图像的有效性进行了一些研究。人们发现,尽管深度CNN取得了巨大的成功,但它并不比传统的光谱数据处理方法好。为了检测不同方向的目标,一些研究者改进了ROI池层,使旋转不变性更好。为了提高区域自适应能力,一些研究者从贝叶斯的角度提出了检测方法,在检测阶段,根据测试图像的分布自适应更新模型。此外,注意机制和特征融合策略也被用来改进小目标检测。

6、结论和将来的方向

近20年来,在目标检测方面取得了显著的成就。本文不仅广泛评论一些里程碑探测器(例如VJ探测器,HoG探测器,DPM, Faster-RCNN, YOLO,意思SSD,等等),关键技术为研究,加速方法,检测应用中,数据集,和指标在其20年的历史,而且还讨论了社区目前遇到的挑战,以及如何将这些探测器可以进一步扩展和改进。未来的目标检测研究可能会集中在以下几个方面:

  • 轻量级目标检测:加快检测算法的速度,使其能够在移动设备上平稳运行。一些重要的应用包括移动增强现实、智能摄像头、人脸验证等。虽然近年来已经做了很大的努力,但机器和人眼之间的速度差距仍然很大,特别是在检测一些小物体时。
  • 检测与自动化:最近基于深度学习的检测器变得越来越复杂,严重依赖于经验。未来的方向是通过神经结构搜索,减少在设计检测模型时的人为干预(例如,如何设计引擎,如何设置锚盒)。AutoML可能是未来的目标检测。
  • 检测满足域自适应:任何目标检测器的训练过程本质上都可以看作是一个在独立且同分布(i.i.d)数据假设下的似然估计过程。使用非i.i.d进行目标检测。数据,特别是对一些实际应用程序来说,仍然是一个挑战。GAN在领域自适应方面显示出良好的应用前景,对未来的目标检测具有重要的指导意义。
  • 弱监督检测:基于深度学习的检测器的训练通常依赖于大量注释良好的图像。注释过程耗时、开销大且效率低。开发弱监督检测技术,只使用图像级标注或部分使用边界框标注对检测器进行训练,对于降低人工成本和提高检测灵活性具有重要意义。
  • 小目标检测:在大场景中检测小目标一直是一个挑战。该研究方向的一些潜在应用包括利用遥感图像计算野生动物的数量和检测一些重要军事目标的状态。一些进一步的方向可能包括视觉注意机制的集成和高分辨率轻量级网络的设计。
  • 视频检测:高清视频中的实时目标检测/跟踪对于视频监控和自主驾驶具有重要意义。传统的目标检测器通常设计为基于图像的检测,而忽略了视频帧之间的相关性。通过探索时空相关性来改进检测是一个重要的研究方向。
  • 信息融合检测:RGB-D图像、三维点云、激光雷达等多数据源/多模式数据的目标检测对自主驾驶和无人机应用具有重要意义。目前存在的问题包括:如何将训练有素的检测器移植到不同的数据模式,如何进行信息融合以提高检测能力等。站在技术发展的高速公路上,我们相信这篇论文将帮助读者建立一个大的图像目标检测,并找到这个快速移动的研究领域的未来方向。

0 人点赞