资讯详情

Object Detection in 20 Years: A Survey 20年间的目标检测:综述

摘要

近年来,物体检测作为计算机视觉中最基本、最具挑战性的问题之一,备受关注。过去20年的发展可以看作是计算机视觉历史的缩影。如果我们把今天的物体探测看作是深度学习力量下的技术美学,我们将时钟拨回20年前,见证了冷武器时代的智慧。根据其技术演变(从1990年代到2019年),本文广泛回顾了400多篇关于物体检测的论文。本文涵盖了历史上的里程碑探测器、检测数据集、指标、检测系统的基本构建块、加速技术和最先进的检测方法。本文还总结了行人检测、人脸检测、文本检测等一些重要的检测应用,并对近年来的挑战和技术改进进行了深入分析。

1简介

对象检测是一项重要的计算机视觉任务,用于检测数字图像中特定类别的视觉对象(如人类、动物或汽车)的实例。对象检测的目标是开发计算模型和技术,以提供计算机视觉应用所需的最基本的信息之一:哪些对象在哪里? 对象检测作为计算机视觉的基本问题之一,构成了许多其他计算机视觉任务的基础,如实例分割[1、2、3、4]、图像标题[5、6、7]、对象跟踪[8]等。从应用的角度来看,对象检测可以分为"一般目标检测"和"检测应用"两个研究课题,前者旨在探索在统一框架下检测不同类型物体的方法,以模拟人类的视觉和认知,后一个则是指特定应用场景下的检测,如行人检测、人脸检测、文本检测等。近年来,深度学习技术的快速发展[9]给物体检测带来了新的力量,取得了显著的突破,前所未有的关注将其推向了研究热点。物体检测已广泛应用于自动驾驶、机器人视觉、视频监控等实际应用中。图1显示了过去20年的中和"物体检测"出版物数量不断增加。 在这里插入图片描述

图 从1998年到2018年,物体检测领域的出版物数量不断增加。(数据来自Google高级学术搜索:allintitle:“对象检测"和"检测对象”

图 对象检测的路线图。此图中的里程碑检测器:VJ Det. [10, 11], HOG Det. [12], DPM [13, 14, 15],RCNN[16],SPPNet[17],Fast RCNN[18],Faster RCNN[19],YOLO[20],SSD[21],Pyramid Networks [22],Retina-Net[23]. 近年来,对一般物体检测发表了许多评论[24、25、26、27、28]。本文与上述综述的主要区别总结如下: 1.根据技术演进进行全面总结:本文广泛总结了物体检测发展史上400多篇论文(从20世纪90年代到2019年)。大多数以前的评论只关注较短的历史时期或某些特定的测试任务,而不考虑整个生命周期的技术演变。站在历史高速公路上,不仅有助于读者建立完整的知识结构,也有助于在这个快速发展的领域找到未来的方向。 2.深入探索关键技术和近期技术水平:经过多年的发展,最先进的物理检测系统已经与"多尺度检测"、硬负挖,"边界盒回归"结合大量技术。然而,之前的评论缺乏基本面分析,以帮助读者理解这些复杂技术的本质,比如它们来自哪里,它们是如何演变的?每组方法的优缺点是什么?本文深入分析了读者的上述担忧。 3.对检测加速技术的综合分析:物体检测加速一直是一项关键但具有挑战性的任务。本文从多个层面广泛总结了20年对象检测历史中的加速技术,包括"检测管道(如级联检测、特征图共享计算)"数值计算(如积分图像、矢量化)。以前的评论很少涉及到这个主题。 尽管人们总是问"物体检测的困难和挑战是什么?但事实上,这个问题并不容易回答,甚至可能被过度总结。由于不同的检测任务有完全不同的目标和约束,它们的难度可能会有所不同。除了计算机视觉任务中的一些常见挑战,如不同视角下的物体、照明和类变化外,物体检测中的挑战包括但不限于以下几个方面:物体旋转和尺度变化(如小物体)、准确的物体定位、密集和封闭的物体检测、检测速度等。在第四节和第五节,我们将更详细地分析这些主题。 本文的其余部分组织如下。在第二节中,我们回顾了物体检测20年的进化历史。第三节将介绍对象检测中的一些加速技术。第四节总结了过去三年中一些最先进的检测方法。第五节将审查一些重要的测试应用程序。在第六节中,我们总结了本文,并分析了进一步的研究方向。

2.20年内物体检测

在本节中,我们将回顾对象检测的历史,包括里程碑检测器、对象检测数据集、指标和关键技术的演变。

2.对象检测路线图

近二十年来,人们普遍认为,目标检测的进展普遍经历了两个历史时期:“传统物体检测期(2014年以前)“和"如图2所示。 如果我们把今天的物体探测看作是深度学习力量下的技术美学,我们将在20年前见证时钟"冷武器时代的智慧。大多数早期的物体检测算法都是基于手工特征。由于当时缺乏有效的图像表示,人们别无选择,只能设计复杂的特征表示,并使用各种加速技能来耗尽有限的计算资源。 琼斯中提琴探测器 18年前,P. Viola和M. Jones第一次实现人脸实时检测,没有任何限制(如肤色分割)[10,11]。该探测器采用700MHz奔腾III CPU,在相当大的检测精度下,其速度比任何其他算法快几十倍甚至几百倍。检测算法后来被称为"Viola-Jones(VJ)探测器",为了纪念他们的重大贡献,作者的名字给出了这篇文章。 VJ探测器遵循最直接的检测方法,即滑动窗口:浏览图像中所有可能的位置和比例,以查看是否有包含面部的窗口。虽然这似乎是一个非常简单的过程,但它背后的计算远远超出了当时计算机的能力。VJ探测器结合积分图像和特征选择三种重要技术,大大提高了检测速度"和"检测级联。 1)积分图像:积分图像是加速盒子过滤或卷积过程的计算方法。与[29、30、31]中的其他物体检测算法一样,Haar小波在VJ检测器用作图像的特征表示。使用积分图像VJ每个窗口在检测器中的计算复杂性与其大小无关。 2)特征选择:作者没有使用一组手动选择Haar使用基过滤器Adaboost算法[32]从一组巨大的随机特征池(约180k选择一组对人脸检测最有帮助的特征。 3)检测级联:VJ多级检测示例引入检测器(也称为检测器)"检测级联"),通过在后台窗口上花费更少的计算,在人脸目标上花费更多的计算来减少其计算费用。 猪检测仪 定向梯度直方图(HOG)最初由特征描述符N. Dalal和B. Triggs[12]于2005年提出。HOG可视为当时尺度不变特征变化[33、34]和形状上下文[35]的重要改进。不变性(包括平移、比例、照明等)和非线性(在区分不同对象类别时),HOG 描述符设计在均匀间隔的单元密集网格上计算,并使用重叠的局部对比度进行集成("块"以提高准确性。虽然HOG可用于检测各种对象类别,但其动机主要是行人检测。检测不同大小的物体,HOG检测器将多次缩放输入图像,同时保持检测窗口的大小不变。HOG长期以来,探测器一直是许多物体探测器[13、14、36]和各种计算机视觉应用的重要基础。 可变形零件模型(DPM) DPM作为VOC-挑战07、-08和-09的赢家是传统物体检测方法的巅峰。DPM最初由P. Felzenszwalb [13]2008年提出,作为HOG然后扩展探测器R.Girshick[14、15、37、38]进行了各种改进。 DPM遵循"分而治之"训练可以简单地看作是学习分解对象的正确方法,推理可以看作是对不同对象部分的测试的集合。例如,检测"汽车"其窗户、车身和车轮可视为检测问题。这部分工作,又名"星模",由P.Felzenszwalb等人完成[13]。后来,R.Girshick进一步扩展恒星模型"混合模型"为了处理现实世界中更大变化的物体,[14、15、37、38]。 典型的DPM检测器由一个根筛选器和多个部分筛选器组成。在DPM开发了一种弱监督学习方法,而不是手动指定零件过滤器的配置(如尺寸和位置),所有零件过滤器的配置都可以作为潜在变量自动学习。R.Girshick将这一过程进一步描述为多实例学习的特例[39],以及其他重要技术,如"硬负挖掘",边界框回归"和"上下文启动"也用于提高检测准确性(将在第二次).三节介绍)。).为加快检测速度,Girshick开发了一种检测模型"编译"该技术实现了级联架构,在不牺牲任何精度的情况下实现了10倍以上的加速度[14、38]。 虽然今天的物体检测器远远超过了检测精度DPM,但许多探测器仍然深受其宝贵见解的影响,如混合模型、硬负挖掘、边界框回归等。2010年,P.Felzenszwalb和R.Girshick被PASCAL VOC授予"终身成就。 2010年以后,随着手工制作的性能饱和,物体检测达到了平台。R. Girshick说:“…[38]在2010-2012年期间,进展缓慢,通过构建集成系统和采用成功方法的次要变体获得了很小的利润。2012年,世界见证了卷积神经网络的重生[40]。由于深度卷积网络可以学习图像的鲁棒性和先进特征,一个自然问题是我们能否将其用于对象检测?R. Girshick2014年等人率先打破僵局,提出CNN特征的区域(RCNN)用于对象检测[16,41]。从那时起,物体检测开始了前所未有的发展速度。 在深度学习时代,对象检测可分为两类:两阶段检测"和"单阶段检测"粗略到精细"后者将其定义为"一步到位"。 断续器 RCNN它背后的想法很简单:它从选择性搜索[42]提取一组对象提案(对象候选框)开始。然后,每个提案被缩放到固定小的图像,并输入到在ImageNet上训练的CNN模型(例如AlexNet [40])以提取特征。最后,线性SVM分类器用于预测每个区域中物体的存在并识别物体类别。RCNN在VOC07上显著提升了性能,平均精度(mAP)从33.7%(DPM-v5 [43]) 大幅提升至58.5%。 尽管RCNN取得了很大的进步,但其缺点是显而易见的:对大量重叠提案(一个图像的2000多个框)的冗余特征计算导致检测速度极慢(使用GPU时每个图像14个)。同年晚些时候,SPPNet[17]被提出并克服了这个问题。 断续器 2014年,K.他等人提出了空间金字塔池网络(SPPNet)[17]。以前的CNN型号需要固定大小的输入,例如,AlexNet的224x224图像[40]。SPPNet的主要贡献是引入了空间金字塔池(SPP)层,这使得CNN能够生成固定长度的表示,而不管感兴趣图像/区域的大小如何,而无需重新缩放。使用SPPNet进行物体检测时,只能从整个图像中计算一次特征图,然后可以生成任意区域的固定长度表示来训练探测器,从而避免了重复计算卷积特征。SPPNet比R-CNN快20倍以上,而不会牺牲任何检测精度(VOC07 mAP = 59.2%)。 虽然SPPNet有效地提高了检测速度,但仍然存在一些缺点:首先,训练仍然是多阶段的,其次,SPPNet仅微调其完全连接的层,而简单地忽略了所有先前的层。次年晚些时候,Fast RCNN [18]被提出并解决了这些问题。 快速RCNN 2015年,R.Girshick提出了Fast RCNN探测器[18],这是对R-CNN和SPPNet的进一步改进[16,17]。快速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 [19]回答了这个问题。 更快的RCNN 2015年,S. Ren等人在Fast RCNN之后不久提出了Faster RCNN探测器[19,44]。Faster RCNN是第一个端到端的,也是第一个近实时的深度学习检测器(COCO mAP@.5=42.7%,COCO mAP@[.5,.95]=21.9%,VOC07 mAP=73.2%,VOC12 mAP=70.4%,采埃孚-Net为17fps[45])。Faster-RCNN的主要贡献是引入了区域提案网络(RPN),可实现几乎免费的区域提案。从R-CNN到Faster RCNN,对象检测系统的大多数单个模块,例如提案检测,特征提取,边界框回归等,已经逐渐集成到一个统一的端到端学习框架中。 虽然 Faster RCNN 突破了 Fast RCNN 的速度瓶颈,但在后续检测阶段仍然存在计算冗余。后来,提出了各种改进,包括RFCN [46]和Light head RCNN [47]。(有关详细信息,请参阅第 3 节。 要素金字塔网络 2017年,T.-Y.Lin等人在Faster RCNN的基础上提出了特征金字塔网络(FPN)[22]。在FPN之前,大多数基于深度学习的检测器仅在网络顶层运行检测。虽然CNN更深层的特征有利于类别识别,但不利于对象的定位。为此,在FPN中开发了一种具有横向连接的自上而下的架构,用于构建所有规模的高级语义。由于CNN通过其前向传播自然形成特征金字塔,因此FPN在检测具有各种尺度的物体方面显示出巨大的进步。在基本的Faster R-CNN系统中使用FPN,它可以在MSCOCO数据集上实现最先进的单模型检测结果,而不会出现花里胡哨的东西(COCO mAP@.5 = 59.1%,COCO mAP@[.5,.95]= 36.2%)。FPN现已成为许多最新探测器的基本组成部分。 你只看一次 (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版本[48,49],在保持极高检测速度的同时,进一步提高了检测精度。 尽管YOLO的检测速度有了很大的提高,但与两级检测器相比,YOLO的定位精度有所下降,特别是对于一些小物体。YOLO的后续版本[48,49]和后者提出的SSD [21]更加关注这个问题。 单次多盒探测器 (SSD) SSD [21]由W. Liu等人于2015年提出。它是深度学习时代的第二个单级探测器。SSD的主要贡献是引入了多参考和多分辨率检测技术(将在2.3.2节中介绍),这显着提高了单级探测器的检测精度,特别是对于一些小物体。SSD在检测速度和精度方面均具有优势(VOC07 mAP=76.8%,VOC12 mAP=74.9%,COCO mAP@.5=46.5%,mAP@[.5,.95]=26.8%,快速版本以59fps的速度运行)。SSD与以前的任何探测器之间的主要区别在于,前者在网络的不同层上检测不同比例的物体,而后者仅在其顶层上运行检测。 视网膜网 尽管速度快,简单,但单级探测器多年来一直落后于两级探测器的精度。T.-Y. Lin等人发现了背后的原因,并在2017年提出了RetinaNet[23]。他们声称,在密集探测器训练期间遇到的极端前景 - 背景类不平衡是核心原因。为此,RetinaNet中引入了一个名为"焦点损失"的新损失函数,通过重塑标准的交叉熵损失,使探测器在训练期间更加关注困难的、错误分类的例子。焦散使单级探测器能够达到与两级探测器相当的精度,同时保持非常高的检测速度。(COCO mAP@.5=59.1%,mAP@[.5, .95]=39.1%)。

2.2对象检测数据集和衡量指标

构建偏差较小的大型数据集对于开发高级计算机视觉算法至关重要。在对象检测方面,过去10年已经发布了许多知名的数据集和基准测试,包括PASCAL VOC挑战[50,51](例如VOC2007,VOC2012),ImageNet大规模视觉识别挑战赛(例如ILSVRC2014)[52],MS-COCO检测挑战赛[53]等数据集。这些数据集的统计数据见表I。图 4 显示了这些数据集的一些图像示例。图3显示了2008年至2018年VOC07、VOC12和MS-COCO数据集检测精度的提高情况。

图 3改进了VOC07、VOC12和MS-COCO数据集上物体检测的准确性。此图中的探测器:DPM-v1 [13]、DPM-v5 [54]、RCNN [16]、SPPNet [17]、Fast RCNN [18]、Faster RCNN [19]、SSD [21]、FPN [22]、Retina-Net [23]、RefineDet [55]], TridentNet[56].

表 1一些众所周知的对象检测数据集及其统计信息。 帕斯卡挥发性有机化合物 PASCAL 可视对象类 (VOC) 挑战(2005年至2012年)[50,51]是早期计算机视觉界最重要的竞赛之一。PASCAL VOC 中有多个任务,包括图像分类、对象检测、语义分割和动作检测。Pascal-VOC的两个版本主要用于对象检测:VOC07和VOC12,前者由5k tr.图像+ 12k注释对象组成,后者由11k tr.图像+ 27k注释对象组成。在这两个数据集中注释了生活中常见的20类对象(人:人;动物:鸟,猫,牛,狗,马,羊;车辆:飞机,自行车,船,公共汽车,汽车,摩托车,火车;室内:瓶子,椅子,餐桌,盆栽植物,沙发,电视/显示器)。近年来,随着ILSVRC和MS-COCO(即将推出)等一些较大的数据集的发布,VOC逐渐过时,现在已成为大多数新探测器的试验台。 伊尔斯沃研究中心 ImageNet 大规模视觉识别挑战赛(ILSVRC)推动了通用物体检测领域的技术水平。ILSVRC从2010年到2017年每年举办一次。它包含使用 ImageNet 图像的检测挑战 [57]。ILSVRC 检测数据集包含 200 类可视对象。其图像/对象实例的数量比VOC大两个数量级。例如,ILSVRC-14 包含 517k 图像和 534k 带注释的对象。 可可 可可[53]是目前最具挑战性的物体检测数据集。基于MS-COCO数据集的年度竞赛自2015年以来一直举行。与 ILSVRC 相比,它的对象类别数量较少,但对象实例更多。例如,MS-COCO-17 包含来自 80 个类别的 164k 图像和 897k 注释对象。与VOC和ILSVRC相比,MS-COCO最大的进步是除了边界框注释之外,每个对象都使用每个实例分割进一步标记,以帮助精确定位。此外,MS-COCO包含比VOC和ILSVRC更多的小物体(其面积小于图像的1%)和更密集的物体。所有这些功能使MS-COCO中的对象分布更接近现实世界的对象分布。就像当时的ImageNet一样,MS-COCO已经成为物体检测社区事实上的标准。 打开图像 2018年引入了开放图像检测(OID)挑战赛,紧随MS-COCO之后,但规模空前。打开图像中有两个任务:1)标准对象检测,以及2)视觉关系检测,用于检测特定关系中的配对对象。对于对象检测任务,数据集由 1,910k 图像和 600 个对象类别上的 15,440k 带注释的边界框组成。 其他检测任务的数据集 除了一般的物体检测,近20年来,行人检测、人脸检测、文字检测、交通标志/灯光检测、遥感目标检测等特定领域的检测应用蓬勃发展。表 II-VI 列出了这些检测任务的一些常用数据集55#Cites显示了截至2019年2月的统计数据。.有关这些任务的检测方法的详细介绍,请参见第 5 节。 数据 年 描述 #Cites 麻省理工学院佩德。[注30] 2000 首批行人检测数据集之一。包括∼500 培训和∼200 张测试映像(基于 LabelMe 数据库构建)。url:http://cbcl.mit.edu/software-datasets/PedestrianData.html 1515 因里亚 [12] 2005 早期最著名和最重要的行人检测数据集之一。由HOG论文介绍[12]。 网址:http://pascal.inrialpes.fr/data/human/ 24705 加州理工学院 [59, 60] 2009 最著名的行人检测数据集和基准之一。包括∼190,000 名行人在训练场和∼160,000 在测试集。该指标是 Pascal-VOC @ 0.5 IoU。网址: http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/ 2026 基蒂 [61] 2012 交通场景分析最著名的数据集之一。在德国卡尔斯鲁厄被俘。包括∼100,000 名行人 (∼6,000人)。网址: http://www.cvlibs.net/datasets/kitti/index.php 2620 市民 [62] 2017 基于 CityScapes 数据集构建 [63]。包括 ∼19,000 名行人参加训练集和∼测试集 11,000。与加州理工学院的指标相同。网址: https://bitbucket.org/shanshanzhang/citypersons 50 欧洲城 [64] 2018 迄今为止最大的行人检测数据集。从12个欧洲国家的31个城市捕获。包括∼238,000 个实例∼47,000 张图片。与加州理工学院的指标相同。 1 表 2一些常用行人检测数据集的概述。 数据 年 描述 #Cites FDDB [65] 2010 包括∼2,800 张图片和∼来自雅虎的5,000张面孔!遮挡、姿势更改、失焦等 url:http://vis-www.cs.umass.edu/fddb/index.html 531 迷航 [66] 2011 包括∼来自 Flickr 的 26,000 张面孔和 22,000 张图像,带有丰富的面部地标注释。 网址:https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/aflw/ 414 伊吉布 [67] 2015 IJB-A/B/C 由超过 50,000 个图像和视频帧组成,用于识别和检测任务 https://www.nist.gov/programs-projects/face-challenges。 279 加宽面 [68] 2016 最大的人脸检测数据集之一。包括∼32,000 张图像和 394,000 张具有丰富注释的面孔,即比例、遮挡、姿势等 http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/。 193 UFDD [69] 2018 包括∼6,000 张图片和∼11,000 张面孔。变化包括基于天气的退化,运动模糊,焦点模糊等 http://www.ufdd.info/。 1 最狂野的脸 [70] 2018 跟∼68,000 个视频帧和∼2,200个镜头,64个与名人在不受约束的场景中战斗。数据集尚未发布。 2 表 3一些常用人脸检测数据集的概述。 数据 年 描述 #Cites ICDAR [71] 2003 ICDAR2003 是首批用于文本检测的公共数据集之一。ICDAR 2015 和 2017 是 ICDAR 挑战赛 [72, 73] 的其他热门迭代 http://rrc.cvc.uab.es/。 530 全景电视 [74] 2010 包括∼350 张图片和∼720 个文本实例取自 Google 街景。 网址:http://tc11.cvc.uab.es/datasets/SVT_1 339 MSRA-TD500 [75] 2012 包括∼500张室内/室外图片,附中英文文本, 网址: http://www.iapr-tc11.org/mediawiki/index.php/MSRA_Text_Detection_500_Database_(MSRA-TD500) 413 IIIT5k [76] 2012 包括∼1,100 张图片和∼来自街道和原生数字图像的5,000字。 网址:http://cvit.iiit.ac.in/projects/SceneTextUnderstanding/IIIT5K.html 165 可湿90k [77] 2014 一个综合数据集,其中包含从 90,000 个多种字体词汇表生成的 900 万张图像 http://www.robots.ox.ac.uk/~vgg/data/text/。 246 可可文本 [78] 2016 迄今为止最大的文本检测数据集。基于 MS-COCO 构建,包括∼63,000 张图片和∼173,000 个文本批注。 https://bgshih.github.io/cocotext/。 69 表 4一些常用场景文本检测数据集的概述。

数据 年 描述 #Cites TLR [79] 2009 在巴黎被一辆移动的车辆捕获。包括∼11,000 个视频帧和∼9,200 个红绿灯实例。 网址: http://www.lara.prd.fr/benchmarks/trafficlightsrecognition 164 丽莎 [80] 2012 首批交通标志检测数据集之一。包括∼6,600 帧视频,∼47 个美国标志的 7,800 个实例。 网址:http://cvrr.ucsd.edu/LISA/lisa-traffic-sign-dataset.html 325 GTSDB [81] 2013 最受欢迎的交通标志检测数据集之一。包括∼900 张图片∼1,200 个交通标志在一天中的不同时间捕获各种天气条件。 网址:http://benchmark.ini.rub.de/?section=gtsdb&subsection=news 259 比利时TSD [82] 2012 包括∼7,300 张静态图像,∼120,000 个视频帧,以及∼11,000个交通标志注释,共269种。每个标志的 3D 位置都已添加注释。网址: https://btsd.ethz.ch/shareddata/ 224 TT100K [83] 2016 迄今为止最大的交通标志检测数据集,具有∼100,000 张图像 (2048 x 2048) 和∼128 个类的 30,000 个流量标志实例。每个实例都使用类标签、边界框和像素掩码进行批注。网址: http://cg.cs.tsinghua.edu.cn/traffic%2Dsign/ 111 英国国家图书馆 [84] 2017 最大的交通灯检测数据集。包括∼5000 张静态图像,∼8300 个视频帧,以及∼24000 个红绿灯实例。 https://hci.iwr.uni-heidelberg.de/node/6132 21 表 5一些常用的交通信号灯检测和交通标志检测数据集的概述。 数据 年 描述 #Cites 塔斯马尼亚州 [85] 2008 由来自 Google 地球的 729x636 像素的 30 张图像组成,以及∼1,300 辆车。 网址: http://ai.stanford.edu/~gaheitz/Research/TAS/ 419 手术室 [86] 2009 包含由机载摄像头捕获的 900 张图像(0.08-0.3 米/像素)和 1,800 个带注释的车辆目标。 url: https://sourceforge.net/projects/oirds/ 32 数码单反3K [87] 2013 小型车辆检测最常用的数据集。由9,300辆汽车和160辆卡车组成。 网址: https://www.dlr.de/eoc/en/desktopdefault.aspx/tabid-5431/9230_read-42467/ 68 UCAS-AOD [88] 2015 包括∼900 谷歌地球图片,∼2,800辆汽车和∼3,200 架飞机。 网址: http://www.ucassdl.cn/resource.asp 19 吠代 [89] 2016 包括∼1,200 张图像(0.1-0.25 米/像素),∼9个班级的3,600个目标。设计用于检测遥感图像中的小目标。 网址: https://downloads.greyc.fr/vedai/ 65 新世界疫苗-VHR10 [90] 2016 近年来使用最频繁的遥感探测数据集。包括∼800 张图像(0.08-2.0 米/像素)和∼3800个十类遥感目标(如飞机、轮船、棒球钻石、网球场等 http://jiong.tea.ac.cn/people/JunweiHan/NWPUVHR10dataset.html)。 204 莱维尔 [91] 2018 包括∼22,000 谷歌地球图片和∼10,000 个独立标记的目标(飞机、轮船、油罐)。 网址:https://pan.baidu.com/s/1geTwAVD 15 多塔 [92] 2018 第一个包含旋转边界框的遥感检测数据集。包括∼2,800 谷歌地球图片和∼15 个类的 200,000 个实例。 url:https://captain-whu.github.io/DOTA/dataset.html 32 xView [93] 2018 迄今为止最大的遥感探测数据集。包括∼100万个60类遥感目标(30万/像素),覆盖1415个km2 土地面积。 网址: http://xviewdataset.org 10 表 6部分遥感目标检测数据集概述. 我们如何评估物体检测器的有效性?这个问题甚至可能在不同的时间有不同的答案。 在早期的检测界,没有广泛接受的检测性能评估标准。例如,在行人检测的早期研究中[12],“每个窗口的误报率与误报率(FPPW)“通常被用作指标。然而,在某些情况下,每窗口测量(FPPW)可能存在缺陷,无法预测完整的图像性能[59]。2009年,加州理工学院创建了行人检测基准[59,60],从那时起,评估指标已从每个窗口(FPPW)更改为每个图像的误报(FPPI)。 近年来,最常用的物体检测评估是"平均精度(AP)”,它最初是在VOC2007中引入的。AP定义为不同召回率下的平均检测精度,通常以特定类别的方式进行评估。为了比较所有对象类别的性能,通常使用所有对象类别的平均 AP (mAP) 作为性能的最终衡量指标。为了测量对象定位精度,使用并集交叉点 (IoU) 来检查预测框和地面实况框之间的 IoU 是否大于预定义的阈值(例如 0.5)。如果是,则该对象将被标识为"成功检测到”,否则将被标识为"错过"。多年来,基于 0.5 IoU 的 mAP 已成为对象检测问题的事实指标。 2014年后,由于MS-COCO数据集的普及,研究人员开始更加关注边界框位置的准确性。MS-COCO AP 不是使用固定的 IoU 阈值,而是在 0.5(粗略定位)和 0.95(完美定位)之间的多个 IoU 阈值上取平均值。指标的这种变化鼓励了更准确的对象定位,并且对于某些实际应用可能非常重要(例如,想象有一个机器人手臂试图抓住扳手)。 最近,在Open Images数据集中,评估有一些进一步的发展,例如,通过考虑框组和非穷尽的图像级类别层次结构。一些研究人员还提出了一些替代指标,例如"本地化召回精度"[94]。尽管最近发生了变化,但基于VOC/COCO的mAP仍然是对象检测最常用的评估指标。

2.3物体检测技术演进

在本节中,我们将介绍检测系统的一些重要构建模块及其在过去20年中的技术演变。 早期时代的黑暗知识 早期的物体检测(2000年之前)没有遵循像滑动窗口检测那样的统一检测理念。当时的探测器通常是根据低级和中级视觉设计的,如下所示。

图 4早期的一些众所周知的探测模型:(a)特征面[95],(b)共享重量网络[96],(c)空间位移网络(Lenet-5)[97],(d)VJ探测器的哈尔小波[10]。 组件、形状和边缘 "按组件识别"作为一种重要的认知理论[98],长期以来一直是图像识别和物体检测的核心思想[99,100,13]。一些早期的研究人员将物体检测框定为对物体组件,形状和轮廓之间相似性的测量,包括距离变换[101],形状上下文[35]和Edgelet [102]等。尽管初步结果很有希望,但在更复杂的检测问题上,情况并不顺利。因此,基于机器学习的检测方法开始蓬勃发展。

图 5从2001年到2019年,物体检测中多尺度检测技术的演变:1)特征金字塔和滑动窗口,2)使用对象建议进行检测,3)深度回归,4)多参考检测,以及5)多分辨率检测。此图中的检测器:VJ Det. [10]、HOG Det. [12]、DPM [13, 15]、示例 SVM [36]、Overfeat [103]、RCNN [16]、SPPNet [17]、Fast RCNN [18]、Faster RCNN [19], DNN Det. [104], YOLO [20], YOLO-v2 [48], SS 基于机器学习的检测经历了多个时期,包括外观统计模型(1998年之前)、小波特征表示(1998-2005)和基于梯度的表示(2005-2012)。 构建对象的统计模型,如图5(a)所示,如特征面[95,106],是对象检测历史上第一波基于学习的方法。1991年,M. Turk等人通过使用特征面分解[95]在实验室环境中实现了实时人脸检测。与当时基于规则或基于模板的方法相比[107,108],统计模型通过从数据中学习特定于任务的知识,更好地提供了对象外观的整体描述。 自2000年以来,小波特征转换开始主导视觉识别和物体检测。这组方法的本质是通过将图像从像素转换为一组小波系数来学习。在这些方法中,Haar小波由于其高计算效率,主要用于许多物体检测任务,如一般物体检测[29],人脸检测[109,10,11],行人检测[30,31]等。图5(d)显示了由VJ探测器[10,11]为人脸学习的一组Haar小波基。 早期的 CNN 用于对象检测 使用CNN检测物体的历史可以追溯到1990年代[96],当时Y. LeCun等人做出了巨大贡献。由于计算资源的限制,当时的CNN模型比今天的模型小得多,也浅得多。尽管如此,计算效率仍然被认为是早期基于CNN的检测模型中难以破解的难题之一。Y. LeCun等人进行了一系列改进,如"共享权重复制神经网络"[96]和"空间位移网络"[97],通过扩展卷积网络的每一层来减少计算,从而覆盖整个输入图像,如图5所示。 (b)-(c)。通过这种方式,整个图像的任何位置的特征都可以通过仅采取一次网络的正向传播来提取。这可以被认为是当今全卷积网络(FCN)[110,111]的原型,该网络是在近20年后提出的。CNN还被应用于其他任务,如人脸检测[112,113]和当时的手部跟踪[114]。 多尺度检测具有"不同尺寸"和"不同长宽比"的物体是物体检测中的主要技术挑战之一。在过去的20年中,多尺度检测经历了多个历史时期:“特征金字塔和滑动窗口(2014年之前)”,“使用对象提案进行检测(2010-2015年)”,“深度回归(2013-2016年)”,“多参考检测(2015年后)“和"多分辨率检测(2016年后)”,如图6所示。 特色金字塔+推拉窗(2014年以前) 随着VJ探测器后计算能力的提高,研究人员开始更多地关注通过构建"特征金字塔+滑动窗口"的直观检测方式。从2004年到2014年,基于这种检测范式构建了许多里程碑式的探测器,包括HOG探测器,DPM,甚至是深度学习时代的Overfeat探测器[103](ILSVRC-13定位任务的获胜者)。 VJ探测器和HOG探测器等早期检测模型专门设计用于检测具有"固定长宽比"的物体(例如,人脸和直立的行人),只需构建特征金字塔并在其上滑动固定尺寸的检测窗口即可。当时没有考虑检测"各种宽高比”。为了检测具有更复杂外观的物体,如PASCAL VOC中的物体,R. Girshick等人开始在特征金字塔之外寻求更好的解决方案。“混合模型”[15]是当时最好的解决方案之一,通过训练多个模型来检测具有不同长宽比的物体。除此之外,基于示例的检测[36,115]通过为训练集的每个对象实例(示例)训练单个模型提供了另一种解决方案。 随着现代数据集中的对象(例如MS-COCO)变得更加多样化,混合模型或基于示例的方法不可避免地导致更多的杂项检测模型。那么自然而然地出现了一个问题:是否有统一的多尺度方法来检测不同宽高比的物体?“对象提案”(待提出)的引入已经回答了这个问题。 带目标的检测建议(2010-2015) 对象建议是指一组可能与类无关的候选框,这些候选框可能包含任何对象。它于2010年首次应用于物体检测[116]。使用对象建议进行检测有助于避免在图像上进行详尽的滑动窗口搜索。 一种对象提案检测算法应满足以下三个要求:1)召回率高,2)定位精度高,3)在前两个要求的基础上,提高精度,缩短处理时间。现代提案检测方法可分为三类:1)分割分组方法[42,117,118,119],2)窗口评分方法[116,120,121,122]和3)基于神经网络的方法[123,124, 125, 126, 127, 128].我们向读者推荐以下论文,以全面回顾这些方法[129,130]。 早期提出的检测方法遵循自下而上的检测理念[116,120],并受到视觉显著性检测的深刻影响。后来,研究人员开始转向低级视觉(例如,边缘检测)和更仔细的手工技能,以改善候选框的定位[42,117,118,131,119,122]。2014年后,随着深度CNN在视觉识别中的普及,自上而下、基于学习的方法开始在这个问题上显示出更多的优势[121,123,124,19]。从那时起,对象提案检测已经从自下而上的视觉演变为"过度拟合到一组特定的对象类",探测器和提案生成器之间的区别变得越来越模糊[132]。 由于"物体提案"彻底改变了滑动窗口检测,并迅速主导了基于深度学习的探测器,在2014-2015年,许多研究人员开始提出以下问题:物体提案在检测中的主要作用是什么?是提高准确性,还是仅仅为了加快检测速度?为了回答这个问题,一些研究人员试图削弱提案的作用[133],或者只是对CNN特征[134,135,136,137,138]进行滑动窗口检测,但没有一个获得令人满意的结果。在单级检测器和"深度回归"技术(即将推出)的兴起之后,建议的检测很快就溜走了。

图 7: 2001年至2019年对象检测中边界框回归技术的演变。此图中的检测器:VJ Det. [10]、HOG Det. [12]、示例 SVM [36]、DPM [13、 15]、Overfeat [103]、RCNN [16]、SPPNet [17]、Fast RCNN [18]、Faster RCNN [19], YOLO [20], SSD [21], YOLO-v2 [48], Unified Det. [105], FPN [22],RetinaNet [23],RefineDet [55],TridentNet [56].

图 8: 从2001年到2019年,对象检测中上下文启动的演变:1)使用本地上下文进行检测,2)使用全局上下文进行检测,3)使用上下文交互进行检测。此图中的检测器:Face Det. [139]、MultiPath [140]、GBDNet [141, 142]、CC-Net [143]、MultiRegion-CNN [144]、CoupleNet [145]、DPM [14、 15]、StructDet [146]、YOLO [20], RFCN++ [147], ION [148], AttenContext [149], CtxSVM [150], PersonContext [151], SMN [152], RetinaNet [23], SIN [153]. 深度回归(2013-2016) 近年来,随着GPU计算能力的提高,人们处理多尺度检测的方式变得越来越直接和蛮力。使用深度回归来解决多尺度问题的想法非常简单,即基于深度学习特征[104,20]直接预测边界框的坐标。这种方法的优点是它简单且易于实现,而缺点是本地化可能不够准确,特别是对于某些小对象。“多参考检测”(即将推出)后来解决了这个问题。 多参考/分辨率检测(2015年以后) 多引用检测是用于多尺度对象检测的最常用框架 [19, 44, 48, 21]。其主要思想是在图像的不同位置预先定义一组具有不同大小和宽高比的参考框(又名锚框),然后根据这些参考预测检测框。 每个预定义锚盒的典型损失由两部分组成:1) 用于类别识别的交叉熵损失和 2) 用于对象定位的 L1/L2 回归损失。损失函数的一般形式可以写如下:

哪里t和t∗是预测和地面实况边界框的位置,p和p∗是它们的类别概率。借据{一个,一个∗}是锚点之间的 IOU一个及其基本事实一个∗.η是 IOU 阈值,例如 0.5。如果锚点未覆盖任何对象,则其定位损失不计入最终损失。 过去两年中另一种流行的技术是多分辨率检测[21,22,105,55],即通过检测网络不同层中不同尺度的物体。由于CNN在其向前传播过程中自然形成特征金字塔,因此更容易在较深的层中检测较大的物体,而在较浅的层中检测较小的物体。多参考和多分辨率检测现已成为最先进的物体检测系统中的两个基本构建块。 边界框 (BB) 回归是对象检测中的一项重要技术。它旨在根据初始建议或锚点框优化预测边界框的位置。在过去的20年中,BB回归的演变经历了三个历史时期:“没有BB回归(2008年之前)”,"从BB到BB(2008-2013)“和"从特征到BB(2013年后)”。图 7 显示了边界框回归的演变。 无BB回归(2008年之前) VJ检测器、HOG检测器等早期检测方法大多不使用BB回归,通常直接考虑滑动窗口作为检测结果。为了获得物体的准确位置,研究人员别无选择,只能建造非常密集的金字塔,并在每个位置密集地滑动探测器。 从BB到BB(2008-2013) BB 回归首次引入对象检测系统是在 DPM [15] 中。当时的BB回归通常充当后处理块,因此它是可选的。由于 PASCAL VOC 中的目标是预测每个对象的单个边界框,因此 DPM 生成最终检测的最简单方法应直接使用其根筛选器位置。后来,R. Girshick等人引入了一种更复杂的方法来预测基于对象假设的完整配置的边界框,并将此过程表述为线性最小二乘回归问题[15]。这种方法在PASCAL标准下产生了明显的检测改进。

图 9: 从1994年到2019年,非最大抑制(NMS)技术在对象检测中的演变:1)贪婪选择,2)边界框聚合,以及3)学习NMS。此图中的探测器:VJ Det. [10],Face Det. [96],HOG Det. [12],DPM [13,15],RCNN [16],SPPNet [17],Fast RCNN [18],Faster RCNN [19],YOLO [20],SSD[21], FPN [22], RetinaNet [23], LearnNMS [154], MAP-Det [155], End2End-DPM [136], StrucDet [146], Overfeat [103], APC-NMS [156], MAPC [157], SoftNMS [158], FitnessNMS [159]. 从功能到BB(2013年以后) 在 2015 年引入 Faster RCNN 后,BB 回归不再用作单独的后处理块,而是与检测器集成并以端到端方式进行训练。同时,BB回归已经发展到直接基于CNN特征预测BB。为了获得更稳健的预测,通常使用平滑-L1 函数 [19],

或平方根函数 [20],

作为其回归损失,对于异常值而言,它们比 DPM 中使用的最小二乘法损失更可靠。一些研究人员还选择对坐标进行归一化,以获得更可靠的结果[18,19,21,23]。 可视对象通常嵌入在具有周围环境的典型上下文中。我们的大脑利用物体和环境之间的关联来促进视觉感知和认知[160]。上下文启动长期以来一直用于改进检测。在其进化史上有三种常见的方法:1)使用局部上下文进行检测,2)使用全局上下文进行检测,以及3)上下文交互,如图8所示。 使用本地上下文进行检测 局部上下文是指要检测的对象周围区域中的视觉信息。人们早就认识到,本地上下文有助于改进对象检测。在2000年代初,Sinha和Torralba[139]发现,包含局部上下文区域(如面部边界轮廓)可显着提高面部检测性能。Dalal和Trigs还发现,结合少量的背景信息可以提高行人检测的准确性[12]。最近的基于深度学习的探测器也可以通过简单地扩大网络的接收场或对象提案的大小[140,141,142,161,143,144,145]来改进本地环境。 全局上下文检测 全局上下文利用场景配置作为对象检测的附加信息源。对于早期的物体检测器,整合全球背景的一种常见方法是整合构成场景的元素的统计摘要,如Gist [160]。对于基于现代深度学习的探测器,有两种方法可以整合全局上下文。第一种方法是利用大接受场(甚至大于输入图像)[20]或CNN特征的全局池操作[147]。第二种方法是将全球语境视为一种顺序信息,并使用递归神经网络学习它[148,149]。 上下文交互 上下文交互是指通过视觉元素的交互(如约束和依赖关系)传达的信息片段。对于大多数对象检测器,可以单独检测和识别对象实例,而无需利用它们之间的关系。最近的一些研究表明,通过考虑上下文交互,可以改进现代物体探测器。最近的一些改进可以分为两类,第一类是探索单个对象之间的关系[15,150,146,162,152],第二类是探索对象和场景之间的依赖关系建模[151,153,151]。 非最大抑制 (NMS) 是对象检测中的一组重要技术。由于相邻窗口通常具有相似的检测分数,因此本文将非最大抑制用作后处理步骤,以删除复制的边界框并获得最终的检测结果。在物体检测的早期,NMS并不总是集成的[30]。这是因为当时物体检测系统的期望输出并不完全清楚。在过去的20年中,NMS已逐渐发展为以下三组方法:1)贪婪选择,2)边界盒聚合,3)学习NMS,如图9所示。 贪婪的选择 贪婪选择是一种老式的,但在对象检测中执行NMS的最流行方式。此过程背后的思想简单直观:对于一组重叠检测,选择具有最大检测分数的边界框,同时根据预定义的重叠阈值(例如,0.5)删除其相邻框。上述处理以贪婪的方式迭代执行。 虽然贪婪选择现在已经成为NMS的事实方法,但它仍然有一些改进的空间,如图11所示。首先,得分最高的盒子可能不是最合适的。其次,它可能会抑制附近的物体。最后,它不会抑制误报。近年来,尽管最近进行了一些手动修改以提高其性能[158,159,163](有关详细信息,请参阅第4.4节),但据我们所知,贪婪的选择仍然是当今物体检测的最强基准。

图 10: 1994年至2019年物体检测中硬负片采矿技术的演变。此图中的探测器:面部 [164]、哈尔区 [29]、VJ 区 [10]、HOG 分机组 [12]、DPM [13、 15]、RCNN [16]、SPPNet [17]、快速 RCNN [18]、速度更快的 RCNN [19]、YOLO [20], SSD [21], FasterPed [165], OHEM [166], RetinaNet [23], Refinedet [55].

图 11: 使用基于标准贪婪选择的非最大抑制时可能失败的示例:(a) 最高评分框可能不是最合适的,(b) 它可能抑制附近的对象,以及 (c) 它不抑制误报。图片来自R. Rothe等人, ACCV2014 [156]。 BB 聚合 BB聚合是用于NMS [10,156,103,157]的另一组技术,其思想是将多个重叠的边界框组合或聚类到一个最终检测中。这种类型的方法的优点是它充分考虑了对象关系及其空间布局。有一些众所周知的探测器使用这种方法,例如VJ探测器[10]和Overfeat[103]。 学习 NMS 最近受到广泛关注的一组NMS改进正在学习NMS [154,155,136,146]。这些方法组的主要思想是将NMS视为过滤器,以重新对所有原始检测进行评分,并以端到端的方式将NMS训练为网络的一部分。与传统的手工制作的NMS方法相比,这些方法在改善遮挡和密集物体检测方面取得了有希望的结果。 对象检测器的训练本质上是一个不平衡的数据学习问题。在基于滑动窗口的探测器的情况下,背景和物体之间的不平衡可能非常极端104∼105每个对象的背景窗口。现代检测数据集需要预测对象长宽比,进一步将不平衡比提高到106∼107 在这种情况下,使用所有背景数据将对训练有害,因为大量简单的负面因素将淹没学习过程。硬负挖掘(HNM)旨在解决训练过程中数据不平衡的问题。HNM在物体检测中的技术演变如图10所示。 启动 对象检测中的 Bootstrap 是指一组训练技术,其中训练从一小部分背景样本开始,然后在训练过程中迭代添加新的未分类背景。在早期,引入自举的目的是减少数百万个背景样本的训练计算[164,29,10]。后来,它成为DPM和HOG检测器[12,13]中解决数据不平衡问题的标准训练技术。 基于深度学习的探测器中的 HNM 在深度学习时代的后期,由于计算能力的提高,自举在2014-2016年期间很快在对象检测中被丢弃[16,17,18,19,20]。为了缓解训练期间的数据不平衡问题,像Faster RCNN和YOLO这样的检测器只是简单地平衡了正负窗口之间的权重。然而,研究人员后来注意到,权重平衡不能完全解决不平衡的数据问题[23]。为此,在2016年之后,自举被重新引入基于深度学习的探测器[21,165,166,167,168]。例如,在SSD [21]和OHEM [166]中,只有极少数样本(具有最大损耗值的样本)的梯度将反向传播。在 RefineDet [55] 中,设计了一个"锚点细化模块"来过滤容易出现的负面因素。另一种改进是设计新的损失函数[23,169,170],通过重塑标准的交叉熵损失,使其更加关注困难的,错误分类的例子[23]。

3加速检测

长期以来,物体检测的加速一直是一个重要但具有挑战性的问题。在过去的20年中,物体检测界已经开发出复杂的加速技术。这些技术大致可分为三个层次的组:“检测管道加速”、“检测引擎加速"和"数值计算加速”,如图12所示。

图 12: 对象检测中的加速技术概述。

3.1特征图共享计算

在对象检测器的不同计算阶段中,特征提取通常主导计算量。对于基于滑动窗口的检测器,计算冗余从位置和尺度开始,其中前者是由相邻窗口之间的重叠引起的,而后者是由相邻尺度之间的特征相关性引起的。 减少空间计算冗余的最常用思想是特征图共享计算,即在滑动窗口之前仅计算整个图像的特征图一次。本文中传统探测器的"图像金字塔"可以被认为是"特征金字塔"。例如,为了加速HOG行人探测器,研究人员通常会积累整个输入图像的"HOG地图",如图13所示。然而,这种方法的缺点也很明显,即特征图分辨率(该特征图上滑动窗口的最小步长)将受到像元大小的限制。如果一个小物体位于两个单元格之间,则所有检测窗口都可能忽略它。此问题的一个解决方案是构建一个完整的要素金字塔,这将在第 3.6 节中介绍。

图 13: 如何计算图像的 HOG 映射的图示。 特征图共享计算的思想也已被广泛用于基于卷积的探测器。一些相关作品可以追溯到1990年代[97,96]。近年来,大多数基于CNN的探测器,例如SPPNet [17],Fast-RCNN [18]和Faster-RCNN [19],都应用了类似的想法,这些想法已经实现了数十甚至数百倍的加速度。 为了减少尺度计算冗余,最成功的方法是直接缩放特征而不是图像,这首先应用于VJ检测器[10]。但是,由于模糊效果,这种方法不能直接应用于类似 HOG 的特征。对于这个问题,P. Dollár等人通过广泛的统计分析发现了HOG的相邻尺度与积分通道特征之间的强(对数线性)相关性[171]。这种相关性可用于通过近似相邻比例的要素图来加速要素金字塔[172]的计算。此外,构建"探测器金字塔"是避免尺度计算冗余的另一种方法,即通过简单地在一个特征图上滑动多个探测器而不是重新缩放图像或特征来检测不同尺度的物体[173]。

3.2加速分类器

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

3.3级联检测

级联检测是物体检测[10,176]中常用的技术。它需要一个粗略到精细的检测理念:使用简单的计算过滤掉大多数简单的背景窗口,然后用复杂的窗口处理那些更困难的窗口。VJ探测器是级联检测的代表。之后,许多后续的经典物体探测器,如HOG探测器和DPM,通过使用这种技术[177,14,38,54,178]进行了加速。 近年来,级联检测也被应用于基于深度学习的检测器,特别是针对那些"大场景中的小物体"的检测任务,例如人脸检测[179,180],行人检测[177,165,181]等。除了算法加速之外,级联检测还被应用于解决其他问题,例如,改进硬示例的检测[182,183,184],集成上下文信息[185,143],并提高定位精度[125,104]。

图 14: CNN卷积层的加速方法概述及其计算复杂性的比较:(a)标准卷积:O(dk2c).(b) 分解卷积滤波器(k×k → (k′×k′)2或1×k,k×1)😮(dk′2c)或O(dkc).(c) 分解卷积通道:O(d′k2c)+O(dk2d′).(d) 群卷积 (#groups=m)😮(dk2c/m).(e) 按深度分可分卷积:O(ck2)+O(dc).

3.4网络修剪和量化

"网络修剪"和"网络量化"是加速CNN模型的两种常用技术,前者是指修剪网络结构或权重以减小其大小,后者是指减少激活或权重的代码长度。 "网络修剪"的研究可以追溯到20世纪80年代。当时,Y. LeCun等人提出了一种称为"最佳脑损伤"的方法,以压缩多层感知器网络的参数[186]。在这种方法中,通过取二阶导数来近似网络的损失函数,以便去除一些不重要的权重。遵循这一思路,近年来的网络修剪方法通常采用迭代训练和修剪过程,即在每个训练阶段后只去掉一小群不重要的权重,并重复这些操作[187]。由于传统的网络修剪只是简单地删除了不重要的权重,这可能会导致卷积滤波器中出现一些稀疏的连接模式,因此无法直接应用于压缩 CNN 模型。这个问题的一个简单解决方案是移除整个过滤器而不是独立权重[188,189]。 最近关于网络量化的工作主要集中在网络二值化上,其目的是通过将网络的激活或权重量化为二进制变量(例如0/1)来加速网络,以便将浮点运算转换为AND,OR,NOT逻辑运算。网络二值化可以显著加快计算速度并减少网络的存储,从而可以更轻松地将其部署在移动设备上。上述想法的一个可能的实现是用最小二乘法[190]近似二进制变量的卷积。通过使用多个二进制卷积的线性组合可以获得更准确的近似值[191]。此外,一些研究人员进一步开发了用于二值化计算的GPU加速库,从而获得了更显着的加速结果[192]。 网络提炼是一个通用框架,用于将大型网络(“教师网络”)的知识压缩成一个小网络(“学生网络”)[193,194]。最近,这个想法已被用于加速物体检测[195,196]。这个想法的一个直接方法是使用教师网络来指导(轻量级)学生网络的训练,以便后者可用于加速检测[195]。另一种方法是对候选区域进行变换,以最小化学生网和教师网之间的特征距离。这种方法使检测模型的速度提高了2倍,同时达到了相当的精度[196]。

3.5轻量级网络设计

加速基于CNN的探测器的最后一组方法是直接设计轻量级网络,而不是使用现成的检测引擎。长期以来,研究人员一直在探索网络的正确配置,以便在有限的时间成本下获得准确性。除了一些一般的设计原则,如"更少的通道和更多的层"[197],近年来还提出了一些其他方法:1)分解卷积,2)群卷积,3)深度可分离卷积,4)瓶颈设计,以及5)神经架构搜索。 分解卷积是构建轻量级 CNN 模型的最简单、最直接的方法。分解方法有两组。 第一组方法是将一个大卷积滤波器分解成一组空间维度的小滤波器[198,147,47],如图14(b)所示。例如,可以将 7x7 滤波器分解为三个 3x3 滤波器,其中它们共享相同的接受域,但后者更有效。另一个例子是分解k×k过滤成k×1过滤器和1×k过滤器 [198, 199],对于非常大的过滤器,例如 15x15 [199],可能更有效。这个想法最近被用于对象检测[200]。 第二组方法是将一大组卷积分解为两个通道维[201,202]中的小组,如图14(c)所示。例如,可以近似于卷积层d过滤器和的特征图c渠道由d′滤波器 + 一个非线性激活 + 另一个d过滤器 (d′<d).在这种情况下,复杂性O(dk2c)的原始图层可以减少到O(d′k2c)+O(dd′). 群卷积旨在通过将特征通道划分为许多不同的组来减少卷积层中的参数数量,然后在每个组上独立卷积[203,189],如图14(d)所示。如果我们将功能通道平均划分为m组,在不改变其他配置的情况下,卷积的计算复杂度理论上将降低到1/m之前。 如图14(e)所示,深度可分卷积是最近流行的构建轻量级卷积网络的方法[204]。当组数设置为等于通道数时,可以将其视为组卷积的特殊情况。 假设我们有一个卷积层d过滤器和的特征图c渠道。每个过滤器的大小为k×k.对于深度可分离卷积,每个k×k×c过滤器首先拆分为c每个切片的大小k×k×1,然后使用滤波器的每个切片在每个通道中单独执行卷积。最后,使用许多 1x1 筛选器进行维度转换,以便最终输出应具有d渠道。通过使用深度可分离卷积,计算复杂性可以降低O(dk2c)自O(ck2)+O(dc).这个想法最近被应用于物体检测和细粒度分类[205,206,207]。

图 15: 如何计算"积分 HOG 图"的插图 [177]。通过积分图像技术,我们可以有效地计算任何位置和任何大小的直方图特征,并具有恒定的计算复杂性。 与前几层相比,神经网络中的瓶颈层包含的节点很少。它可用于学习具有降低维数的输入的高效数据编码,这在深度自动编码器[208]中已常用。近年来,瓶颈设计已被广泛用于设计轻量级网络[209,210,211,47,212]。在这些方法中,一种常见的方法是压缩检测器的输入层,以减少从检测管道一开始的计算量[209,210,211]。另一种方法是压缩检测引擎的输出,使特征图更薄,从而使其在后续检测阶段[47,212]中更有效率。 最近,人们对通过神经架构搜索(NAS)自动设计网络架构产生了浓厚的兴趣,而不是严重依赖专家经验和知识。NAS已应用于大规模图像分类[213,214],对象检测[215]和图像分割[216]任务。NAS最近在设计轻量级网络方面也显示出有希望的结果,其中在搜索过程中都考虑了对预测准确性和计算复杂性的限制[217,218]。

3.6数值加速度

在本节中,我们主要介绍物体检测中常用的四种重要的数值加速度方法:1)使用积分图像加速,2)在频域中加速,3)矢量量化,以及4)减少秩近似。 积分图像是图像处理中的重要方法。它有助于快速计算图像子区域的总和。积分图像的本质是信号处理中卷积的积分微分可分离性:

其中,如果dg(x)/dx是一个稀疏信号,那么卷积可以通过这个等式的右部分加速。虽然VJ探测器[10]以积分图像加速度而闻名,但在它诞生之前,积分图像已经被用来加速CNN模型[219]并实现了超过10倍的加速度。 除上述示例外,积分图像还可用于加速物体检测中更一般的特征,例如颜色直方图,梯度直方图[220,177,221,171]等。一个典型的例子是通过计算积分HOG图[220,177]来加速HOG。积分 HOG 映射不是在传统的积分图像中累积像素值,而是在图像中累积梯度方向,如图 15 所示。由于像元的直方图可以看作是某个区域中梯度矢量的总和,因此通过使用积分图像,可以在具有恒定计算开销的任意位置和大小的矩形区域中计算直方图。积分HOG地图已用于行人检测,并在不损失任何精度的情况下实现了数十倍的加速度[177]。 2009年晚些时候,P. Dollár等人提出了一种称为积分通道特征(ICF)的新型图像特征,可以将其视为积分图像特征的更一般情况,并已成功用于行人检测[171]。ICF在其时间的近乎实时的检测速度下实现了最先进的检测精度。 卷积是物体检测中一种重要的数值运算类型。由于线性检测器的检测可以看作是特征图和检测器权重之间的窗口内积,因此此过程可以通过卷积来实现。 卷积可以通过多种方式加速,其中傅里叶变换是一个非常实用的选择,特别是对于加速那些大滤波器。在频域中加速卷积的理论基础是信号处理中的卷积定理,即在合适的条件下,两个信号卷积的傅里叶变换是其傅里叶空间中的逐点积:

哪里F是傅里叶变换,F−1是逆傅里叶变换,我和W是输入图像和过滤器,∗是卷积运算,并且⊙是按点划分的产品。可以使用快速傅里叶变换 (FFT) 和逆快速傅里叶变换 (IFFT) 来加速上述计算。FFT和IFFT现在经常用于加速CNN模型[222,223,224,225]和一些经典的线性物体探测器[226],这已经将检测速度提高了一个数量级。图16显示了在频域中加速线性物体检测器(例如,HOG和DPM)的标准管道。

图 16: 如何利用快速傅里叶变换和逆快速傅里叶变换在频域中加速线性检测器(例如,HOG检测器、DPM 等)的图示[226]。 矢量量化(VQ)是信号处理中的一种经典量化方法,旨在通过一小组原型矢量近似于一大组数据的分布。它可用于数据压缩和加速对象检测[227,228]中的内积操作。例如,使用 VQ,可以将 HOG 直方图分组并量化为一组原型直方图向量。然后在检测阶段,特征向量和检测权重之间的内部生成可以通过表查找操作来实现。由于在此过程中没有浮点乘法和除法,DPM和示例SVM检测器的速度可以加速超过一个数量级[227]。 在深度网络中,全连接层中的计算本质上是两个矩阵的乘法。当参数矩阵W∈Ru×v

标签: 挖掘机工作台旋转角度传感器e3t系列传感器韩国cas传感器型号smn1000td位移传感器h1141接近传感器ni4流量传感器p11146st

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台