大道之行,天下为公。这篇文章主要讲述基于深度卷积神经网络的目标检测研究综述相关的知识,希望能为你提供帮助。
基于深度卷积神经网络的目标检测研究综述??人工智能技术与咨询??
来自《光学精密工程》
,作者范丽丽等摘要:作为计算机视觉中的基本视觉识别问题,目标检测在过去的几十年中得到了广泛地研究。目标检测旨在给定图像中找到具有准确定位的特定对象,并为每个对象分配一个对应的标签。近年来,深度卷积神经网络DCNN(Deep Convolutional Neural Networks)凭借其特征学习和迁移学习的强大能力在图像分类方面取得了一系列突破,在目标检测方面,它越来越受到人们的重视。因此,如何将CNN应用于目标检测并获得更好的性能是一项重要的研究。首先回顾和介绍了几类经典的目标检测算法;然后将深度学习算法的产生过程作为切入点,以系统的方式全面概述了各种目标检测方法;最后针对目标检测和深度学习算法面临的重大挑战,讨论了一些未来的方向,以促进深度学习对目标检测的研究。
关 键 词:图像处理;深度卷积神经网络;目标检测;特征表示;深度学习
1 引 言随着世界经济的飞速发展,目标检测已经成为社会安全、公共交通等各个领域的基础性研究课题之一,在机器人导航[1]、航空航天[2]、工业检测[3-4]、行人追踪[5]和军事应用[6-7]等领域应用广泛。所谓的目标检测,是通过分析目标的几何特征,从图像或视频中定位感兴趣的目标,准确地判断每个目标的具体类别,并给出每个目标的边界框。然而,目标所处的环境缤纷复杂、目标本身通常具有不同的形态以及光亮、颜色和遮挡等多种因素的影响使目标检测在近年来受到广泛关注。
传统的目标检测的方法主要包括区域选择、特征提取和分类三个阶段。
(1)区域选择是定位目标位置。在定位的过程中,因为不能确定检测目标的大小、长宽比以及位置,因此使用多尺度滑动窗口,以便尽可能找到目标的所有可能位置;
(2)采用SIFT(Scale-Invariant Feature Transform)[8],Strip[9],Haar[10]等能提高特征的抗变形能力和表达能力的方法进行特征提取;
(3)利用AdaBoost[11]和DPM(Deformable Parts Model)[12]等方法通过提高分类器的准确度和速度进行特征分类。
尽管传统的目标检测算法广泛应用于各个领域,但是其缺点引起人们的关注:
(1)众多的候选窗口,不仅会产生很大的计算花销,并且还会产生许多多余的窗口;
(2)语义鸿沟无法通过人工手动设计的描述符和经过判别训练的浅层模型组合来弥补;
(3)分类训练效果受到提取特征的影响,大量的特征维数,不仅影响训练效果,还会产生“维数灾难”等问题;
(4)算法可迁移性差,并且对特定任务的依赖性高,当检测目标发生较大改变时,需要设计新的算法。
为了能让计算机模拟人类提取特征的过程而让计算机更自然地获取图像信息,人们进行不断地研究和尝试,2006年,深度学习被Hinton提出,他利用深度神经网络从大量数据中自动地学习高层语义特征。深度学习强大的表征能力以及丰富的特征表示使目标检测的准确度获得了很大提升,推动了目标检测的发展。
卷积神经网络不仅能够提取高层特征,提高特征的表达能力,还能够将特征提取、特征选择和特征分类融合在同一个模型中,通过端到端的训练,从整体上进行功能优化,增强特征的可分性。
2014年,Ross B.Girshick将检测抽象为两个过程,一是基于图片提出若干可能包含目标的区域(即图片的局部裁剪),二是在提出的这些区域上运行Alexnet分类网络,得到目标的类别。这就是检测任务转化为区域上的分类任务的R-CNN(Convolutional Neural Networks)框架,它在目标检测方面取得重大突破,影响着检测任务上的深度模型革命。基于卷积神经网络的目标检测成为计算机视觉领域的研究热点。
2 深度卷积神经网络概述卷积神经网络是一种常用的深度学习网络框架。1959年,Hubel &
Wiesel[13]发现视觉系统中的可视皮层处理信息是分级处理的。20世纪90年代,LeCun等人[14]建立了CNN的现代结构,并对其进行了改进。他们设计了一种可以对手写数字进行分类的LeNet-5网络。与其他神经网络相同,也能使用反向传播算法[15]对数据进行训练。
卷积神经网络可以获取原始图像的有效表示,这使得它能够通过很少的预处理直接从原始像素识别视觉之上的规则。但是,训练数据的不足限制了计算机的计算能力,从而制约了LeNet-5在处理复杂问题方面的能力。之后,设计了多种方法来克服卷积神经网络训练深度的困难。其中AlexNet[16]框架的提出促进了图像识别领域的发展,该框架类似于LeNet-5,但层次结构更深。同时使用了非线性激活函数ReLu[17]与Dropout[18]方法,取得了卓越的效果。
AlexNet之后,ZFNet[19],VGGNet[20],GoogleNet[21]和ResNet[22]等方法相继被提出。从结构上讲,CNN发展的一个方向是增加层数。通过增加深度,可以利用增加的非线性得到目标函数的近似结构,同时得到更好的特征。然而,这也使网络的整体复杂性和优化难度增加,并且会产生过度拟合现象。
自从2012年以来,多种改进CNN的方法被提出。ZFNet对AlexNet的改进首先通过将第一层的卷积核尺寸从11×11降为7×7,同时将卷积时的步长从4降至2。这样扩张中间的卷积层可以获取到更多的信息。VGGNet将网络的深度扩展到了19层,并且每个卷积层使用了3×3这种小尺寸的卷积核,结果证明深度对网络性能有着重要影响。GoogleNet同时增加了网络的宽度与深度,相比于更窄更浅的网络,在计算量没有增加的同时,网络性能明显增强。
3 通用的目标检测方法通用的目标检测算法旨在任意一张图片中定位和分类已有对象,并用矩形框标记,最后显示置信度。其主要包括两种类型,一种是基于锚点的目标检测,一种是基于Anchor-free的检测,其中基于锚点的目标检测分为Two-stage检测模型和One-stage检测模型,文中将进行一一介绍。
3.1 基于Two-stage的检测模型
3.1.1 R-CNN
R-CNN[23]不仅能够提高候选边界框质量,还能提取高级特征,其工作可以分为三个阶段:生成候选区域、基于CNN的特征提取和分类与定位。R-CNN采用选择搜索[24]为每个图片产生2k个区域提议,选择性搜索方法依赖于简单的自下而上的分组和显著性提示,从而快速提供任意大小的更准确的候选框,并有效减少了搜索空间。在分类上,R-CNN使用区域提议进行评分,然后通过边界框回归调整评分区域,并用非极大值抑制进行过滤以产生用于保留目标位置的最终边界框。流程图如图1所示。
图1 R-CNN的网络结构
Fig.1 Network structure of R-CNN
尽管R-CNN在准确程度上相比于传统方法有所提高,并且将CNN应用于实际目标检测中具有重要意义,但是仍然存在一些缺点。
(1)全连接层的存在使得输入图像的大小固定,直接导致每个评估区域的整个CNN都需要重新计算,花费大量的测试时间;
(2)R-CNN的训练是分为多阶段完成的。首先,对提议的卷积网络进行了微调。然后,将通过微调学习的softmax分类器替换为SVM。最后,训练边界框回归器;
(3)训练阶段时间长,占用空间大。从不同区域提议提取并存储在磁盘上的特征占用很大的内存。
(4)尽管选择性搜索可以生成具有较高召回率的区域提议,但是获得的区域仍然存在多余的部分,并且这个过程需要耗费很长时间。
为了解决这些问题,现在已经提出了许多方法。DeepBox[25]和SharpMask[26]试图重新排序或者完善提取特征前的区域提议以去除冗余信息,获得少数的有价值的建议。此外,还有一些改进可以解决定位不准确的问题。Saurabh Gupta等改进了具有语义丰富的图像和深度特征的RGB-D图像的目标检测[27]。目标检测器和超像素分类框架的结合在语义场景分割任务上取得了可喜的成果。
图2 卷积层和全联接层的SPP层
Fig.2 SPP layer between convolutional layers and fully-connected layers
3.1.2 SPP-net
为了解决因为目标比例发生变化造成的目标丢失或失真问题,He等人考虑到空间金字塔匹配(SPM)[28]的理论,并提出了一种名为SPP-net[29]的新型CNN体系结构。SPM需要更精细的尺度才能将图像划分为多个部分,并将量化的局部特征聚合为中级表示形式。
目标检测中SPP-net的结构如图2所示,与R-CNN不同,目标检测中SPP-net重新使用了第五层卷积层(Conv5)的特征图,将任意大小的区域提议投影成固定长度的特征向量。这些特征图的可重复使用的可行性不仅涉及局部响应的增强,而且与其空间位置也有关系。SPP-net不仅可以通过估计不同区域提议的大小来获得更好的结果,而且还可以通过共享不同区域之间的SPP层,提前计算成本来提高测试期间的效率。
3.1.3 Fast-R-CNN
与R-CNN相比,尽管SPP-net网络在准确性和效率上都提高了很多,但是仍然存在一些问题。SPP-net 采用了跟R-CNN几乎相同的多级操作,需要额外的存储空间。除此之外,在SPP层之前的卷积层不能使用微调算法进行更新参数[29],这些都会导致深度网络的准确性下降。
针对以上问题,Girshick[30]引入了多任务损失,并提出了一种新颖的名为Fast R-CNN的卷积神经网络。Fast-R-CNN在卷积的最后一层采用感兴趣区域(Region of Interests,ROI)池化生成固定尺寸的特征图,另外,使用多任务损失函数,将边界回归加入到CNN网络中进行训练。Fast R-CNN的体系结构如图3所示,体系整个图像都经过卷积层处理后生成特征图。然后,从每个感兴趣区域的区域提议中提取一个固定长度的特征向量。感兴趣区域层是特殊的SPP层,它只有一个金字塔。它将每个特征向量送入一系列全连接层,最后分为两个同级输出层。一个输出层产生所有C+1类(C目标类加上一个“背景”类)的softmax概率,另一输出层用四个数值对编码的边界框的位置进行编码。这些过程中的所有参数(生成区域提议的除外)都通过端到端的多任务损失函数进行了优化。
图3 Fast-R-CNN的网络结构
Fig.3 Network structure of Fast-R-CNN
为了加快Fast R-CNN的运行速度,可以采用两个方式。第一,如果训练样本来自不同的图像,Fast R-CNN可以对小批样本进行分层采样,即首先随机采样N个图像,然后在每个图像中采样R/N个感兴趣区域,其中R代表感兴趣区域的数量,在向前和向后传播中从同一图像共享计算和内存。第二,在前向通道[29]中,计算FC层花费了大量时间,SVD[31]可用于压缩较大的FC层并加快测试过程。在Fast R-CNN中,无论区域提议如何产生,所有网络层的训练都可以在一个多阶段的损失下进行单阶段处理。这样可以节省更多的存储空间,并通过更合理的训练方式提高准确性和效率。
3.1.4 Faster-R-CNN
在目标检测中的特征提取和分类上,Fast R-CNN已经很好地解决了很多问题,但是最新的目标检测网络仍然依赖于选择性搜索算法和Edgebox来生成候选区域。区域提议的计算也影响效率的提高。为了解决这个问题,Ren等人引入了附加的区域提议网络(Region Proposal Network,RPN)[32],如图4所示,网络通过与检测网络共享全卷积特征,以几乎无代价的方式进行工作。区域提议网络是通过全卷积网络实现的,该网络具有同时预测每个位置上的目标边界和出现概率的能力。类似于[24],区域提议网络将任意大小的图像生成一组矩形目标建议。区域提议网络在特定的卷积层上运行,与之前的层共享目标检测网络。
图4 Faster R-CNN的网络结构
Fig.4 Network structure of faster R-CNN
在Faster R-CNN的作用下,基于区域提议的CNN体系结构可以以端到端的方式训练。此外,在PASCAL VOC 2007上,最新的目标检测精度,可以在GPU上达到5 FPS(frame/s)的帧率。但是,更换训练算法非常耗时,并且区域提议网络会生成类似于目标的区域,而不是目标实例,并且不擅长处理极端比例或形状的目标。
3.1.5 R-FCN
根据感兴趣区域池化层划分,用于目标检测的流行的深度网络[30,32]由两个子网络组成:共享的完全卷积子网(独立于感兴趣区域)和不共享的感兴趣区域子网。目前最先进的图像分类网络,例如残差网络(ResNets)[22]和GoogLeNets[21],都是完全卷积的。为了适应这些架构,构建没有感兴趣区域子网的完全卷积目标检测网络,然而事实证明这种解决方案效果并不好[22]。是因为在图像分类中,图像中的一个目标的移动对分类是没有影响的,但是在候选区域中,目标的任何移动在目标检测中都是意义重大的。将感兴趣区域手动接入卷积层中会解决平移不变形问题,但是会影响其他区域。因此,Li[33]等人提出了一种基于区域的全卷积网络(R-FCN).其运行步骤如图5所示。
图5 R-FCN的网络结构
Fig.5 Network structure of R-FCN
与Faster R-CNN不同的是,对于每一个类别,R-FCN的最后一个卷积层会生成k2个具有固定K×K网格的位置敏感得分图,然后添加一个位置敏感感兴趣区域层进行聚合。最后,在每个感兴趣区域中,将k个位置敏感得分取平均,生成C+1维矢量,并计算跨类别的Softmax响应。另外附加了一个4k2-d的卷积转换层,获取与类无关的边界框。
借助R-FCN可以通过共享几乎所有层来采用更强大的分类网络实现全卷积架构中的目标检测。在PASCAL VOC和Microsoft COCO[34]数据集上均获得了最好的结果,测试速度为每张图像170 ms。
3.2 基于one-stage的模型
基于two-stage的框架由几个阶段组成,区域提议生成,使用CNN进行特征提取,分类和边界框回归,这些阶段通常是分开训练。即使在最近的端到端网络Faster R-CNN中,仍然需要进行替代训练才能获得区域提议网络和检测网络之间的共享卷积参数。因此,处理不同部分都需要花费的时间成为实时目标检测的瓶颈。基于全局回归/分类的一步框架,可以直接从图像像素映射到边界框坐标和分类概率,减少时间开销。本文介绍几个重要的框架,即YOLO(You Only Look Once)和SSD(Single Shot MultiBox Detector)[35]。
3.2.1 YOLO
Redmon等人[36]提出了一个名为YOLOv1的框架,该框架利用最上层的整个特征图来预测多个类别和计算边界框的置信度。YOLOv1的基本思想如图6所示,YOLOv1将输入图像划分为S×S网格,每个网格单元负责预测以该网格单元为中心的目标的边界框以及其对应的置信度分数。其中置信度表示存在目标的可能性并显示其预测的置信度。与此同时,无论边界框的数量为多少,都会在每个网格单元中预测C个条件类概率。
图6 YOLO模型
Fig.6 Model of YOLO
在YOLOv1的基础上,一种改进的版本YOLOv2[37]被提出,YOLOv2提出了一个新的拥有19个卷积层和5个池化层的分类主干网络,即Darknet-19, 并采用了更强大的深度卷积ImageNet主干框架,输入图片的分辨率由原来的224×224直接设置为448×448,这使得学习到的权重对于获取微小信息更加敏感。除此之外,YOLOv2借鉴Faster R-CNN中设定先验框的策略,使用全卷积网络,用K-means聚类算法获取先验框的宽和高,并通过预测偏移量来降低网络训练难度。最后与批归一化、多尺度处理技术一起形成训练网络。
作为YOLOv2的改进版本YOLOv3[38],提出了更深入,更强大特征提取网络Darknet-53。为了适应包含许多重叠标签的复杂数据集,YOLOv3使用多标签分类。在对边界框进行预测时,YOLOv3在3个不同比例的特征图进行预测,是当时速度和精度最均衡的目标检测网络。
3.2.2 SSD
YOLO难以处理组合中的小物体,是因为对边界框的预测增加了空间约束[36]。同时,由于多次进行下采样,将其刻画为具有新的宽高比的目标,产生了相对粗糙的特征。
针对这些问题,Liu等人提出了SSD[35],其灵感来自于MultiBox[39]、区域提议网络[32]和多尺度表示[40]中采用的锚点。给定一个特定的特征图,SSD利用一组具有不同长宽比和比例的默认锚点框来使边界框的输出空间离散化。为了处理不同大小的目标,将会利用多个具有不同分辨率的特征图的预测融合网络。SSD在VGG16网络末端添加了几个功能层,这些功能层用于预测具有不同比例和纵横比及其相关置信度的默认框的偏移量。最终检测结果是通过在多尺度边界框上通过非极大值抑制获得的。SSD在PASCAL VOC和COCO的准确性方面明显优于Faster R-CNN,并且速度提高了三倍。SSD300(输入图像尺寸为300×300)以59 FPS运行,相比于YOLO更加准确和高效。针对SSD不善于处理小目标的问题,可以通过采用更好的特征提取网络主干(例如ResNet101),添加反卷积层以引入额外的大规模上下文[41]和设计更好的网络结构[42]。
SSD与YOLO在结构上的不同在于,SSD的特征是从不同的卷积层提取出来,进行组合再回归和分类,而YOLO只有一层,在YOLO之后的版本中也借鉴了SSD的这种多尺度的思想。
SSD网络中的预选框的大小和形状不能直接通过学习获得,需要通过手动设置。而网络中的每一层使用的预选框大小和形状都不一样,调试过程依赖经验,除此之外,检测靠近彼此的多个小目标的问题仍然没有解决。SSD使用低级特征检测小目标,但是低级特征卷积层数少,存在特征提取不充分的问题,在理论上还有很大的提升空间。
3.3 基于Anchor-free的检测模型
虽然基于Anchor的目标检测模型(one-stage模型和two-stage模型)在效率和精度上有很大的提升,但是自身的局限性也阻碍了模型的优化创新。大多数预设的锚点是负样本,在训练过程中会导致正样本和负样本的失衡;为了实现较高的查全率,需要设置大量密集的锚点候选框,为此造成巨大的计算成本和内存需求开销;预设的锚框是人为设置的,其比例和宽高比对数据集比较敏感,很大程度上会影响检测性能。为了解决这个问题,最近提出一些Anchor-free检测模型。
3.3.1 CornerNet[43]
CornerNet是一种新颖的anchor-free网络,使用Hourglass网络作为主干网络,后面连接两个预测模型,分别预测左上和右下角点。在特征图的每个位置上都可以预测角度偏移、对嵌入和类热图。通过类热图可以计算出现拐角的可能性,并使用拐角偏移量来预测拐角位置。CornerNet在MSCOCO数据集上获得了显着改进。
3.3.2 FSAF[44]
为了让位于图像中的每个目标都能自助选择最合适的特征层,FSAF(Feature Selective Anchor-Free)在特征层中不设置anchor,实现了anchor-free.在训练过程中,FSAF根据损失,自动选择最好的特征层,并将每个对象动态分配给最合适的特征层,在这个特征层进行后续的回归和预测。在预测阶段,FSAF可以独立预测,也可以与基于锚点的方法相结合。
3.3.3 ExtremeNet[45]
ExtremeNet 是在CornerNet上的改进,不同于CorNet, ExtremeNet 的检测目标是4个极值点(最左点、最右点、最上点和最下点),而不是检测目标的左上点和右下点,这种做法避免了因为强行使用矩形包围框包围物体带来的问题。当检测到极值点之后,利用匹配算法,将所有极值点进行组合,通过验证组合中是否存在中心极值点,对所有组合示例进行筛选。该方法速度不是很快,但是标注简单,在此基础上可以进行更多的改进。
3.3.4 FCOS[46]
FCOS(Fully Convolutional One-Stage)是一个基于全卷积的检测网络,它利用一个新的分支“center-ness”来预测一个像素与对应对框中心的偏差,所得到的分数用于降低低质量检测框的权重,最后通过NMS(Non-Maximum Suppression)将接测结果进行融合。FCOS可以将语义分割和目标检测任务结合,除此之外,还可以对模型进行小幅度改造(例如,关键点检测)以应用于其他检索任务。
3.3.5 CenterNet[47]
CenterNet结合了基于中心的方法(中心点)和基于角点的方法(左上角点和右下角点)的思想,使网络花费小的代价便能感知物体内部信息,从而消除误检框。其作用过程为,首先通过成对的角预测边界框,然后将角点的位置映射到输入图片的对应位置,最优判断哪两个角点属于同一物体,以便形成一个检测框。该方法可以移植到其他锚点或者anchor-free网络上。
3.4 应用深度卷积神经网络算法进行目标检测存在的问题
尽管深度卷积神经网络在目标检测中发展迅速并且取得了可喜的进展,但是其本身算法的应用仍然存在挑战,本文主要划分为以下几点:
算法属于有监督的学习,在学习过程中需要大量的标记样本。从目标检测的发展状况来看,有监督的学习已经远远超过无监督学习。训练深度卷积神经网络需要大量的数据。虽然在网上可以找到大量的数据,但是都杂乱无章,需要人工进行标注,这几年的标注成本逐渐升高。
训练时间过长且计算资源代价大。深度学习的参数过多,训练周期时间长,GPU的运用加快了训练速度,缩短了训练时间,深度卷积神经网络算法随着GPU的运用流行起来,然而价格昂贵的GPU为建立大规模GPU集群的科研院所带来的负担。
理论研究不足。借助GPU的发展,深度学习使用端到端的方式优化大容量模型。近几年,度量学习、大数据、各种各样的样本选择方法、训练方法和网络结构的优化都促进了卷积神经网络的发展,然而,这些进步缺乏理论支撑,虽然有效,但是缓慢。这种没有深层次本质理解的改进,使得设计和训练卷积神经网络时,经常会出现梯度不稳定和拟合问题。卷积神经网络本身有很多超参数,这些超参数的组合是一个很大的数字,很多时候靠经验无法完成,只能凭直觉反复尝试其中一部分组合,因此现在的卷积神经网络只能实现效果很好,但是效果和效率都不能达到最优。
4 目标检测数据集和评价指标建立具有较小偏差的较大数据集对于开发高级计算机视觉算法至关重要。作为场景理解的重要组成部分,目标检测已广泛应用于现代生活的许多领域,到目前为止,许多基准数据集在目标检测中发挥了重要作用。在本节中,将展示衣蛾写常见的检测数据集以及用来衡量检测器性能的评估指标。
4.1 数据集
4.1.1 通用的目标检测数据集
(1)Pascal视觉挑战数据集[48]
PASCAL视觉挑战是早起计算机视觉中最重要的竞赛之一。Pascal-VOC的两个版本:VOC07和VOC12主要用于对象检测。其中VOC07是包含20类图片的中等数据集,分为三部分,分别使用2 501,2 510和5 011张图像进行训练、验证和测试。VOC12与COC07包含相同类别的图像,分别使用5 717,5 823和10 991张图像进行训练、验证和测试近年来,随着一些较大数据集的发布,VOC逐渐被取代。
【基于深度卷积神经网络的目标检测研究综述】(2)MSCOCO[34]是具有80个类别的大规模数据集,分别使用118 287,5 000和40 670图像进行训练,验证和测试。
(3)Open Images[49]是一个包含920万张图像的数据集,并带有图像级标签、对象边界框和视觉关系。Open Images V5在1.9 M图像上总共包含600万个对象类别的1 600万个边界框,这使其成为具有对象位置注释的最大的现有数据集。该数据集中的框是由专业注释者手工绘制的,以确保准确性和一致性,并且图像多样化,并且大多数包含有多个对象的复杂场景。
(4)ImageNet[50]包含120万个高分辨率图像,是一个具有200个类别的大型数据集,数据规模大,对象范围广,这使得使用大型训练数据训练深度模型成为可能。
4.1.2 除了一些通用的目标检测数据集,还有一些数据集是用于具体检测任务。比如,在人脸检测任务中,经常用到的数据集有WIDER FACE数据集[51]、FDDB数据集[52]和Pascal Face数据集[53]。在行人检测任务中,广泛使用的数据集是Caltech数据集[54]、CityPersons数据集[55]、KITTI数据集[56]、INRIA数据集[57]和ETH数据集[58]。
4.2 评估指标
定位和分类是目标检测的两个重要任务,在物体检测评估指标下,检测准确性和定位精度是用于评估检测准确性常用的两个标准。对于定位精度,IoU通过判断预测边界框及其对应的分配地面真值判断回归质量。对于检测准确性,常用均值平均精度(mAP)作为评估指标。
5 目标检测的未来方向和任务尽管目标检测发展迅速并且检测效果显著,但是仍然存在许多未解决的问题。
5.1 小物体检测
在COCO数据集和人脸检测任务中的检测都是小物体检测,为了提高遮挡情况下小物体的定位精度,可以从以下几个方面对网络体系结构进行修改。
尺度自适应。检测目标通常以不同的比例存在,这在人脸检测和行人检测中表现尤为突出,为了增加尺度变化的鲁棒性,需要训练尺度不变、多尺度[59]或尺度自适应检测器。对于尺度不变的检测器,可以采用更强大的网络架构、负样本挖掘[60]、反向连接[61]和子类别建模[62]。对于多尺度检测器,产生多尺度特征图的FPN[63]和利用缩小物体与大物体之间的表示差异的生成对抗网络[64-65]都弥补了特征金字塔的不足。对于尺度自适应检测器,可以将知识图谱、注意力机制、级联网络和尺度分布估计组合在一起以更好定位检测目标。
空间相关性和上下文建模。空间分布在目标检测中起着重要作用。因此,可以采用区域提议生成和网格回归来获取目标的可能位置。但是,多个提议和目标类别之间的相关性往往被忽略。除此之外,R-FCN中的位置敏感分数图会忽略全局结构信息。为了解决这些问题,可以参考各种子集选择和顺序推理任务来获得合适的解决方案。
多任务联合优化和多模式信息融合。根据目标检测中内外部不同任务之间的相关性,许多研究人员研究了多任务联合优化[30,32]。但是除了其中提到的任务还需要考虑目标检测中不同子任务的特征,并将多任务优化扩展到其他应用程序,例如实例分割和多目标跟踪。此外,在特定的应用中,可以将来自不同形式的信息融合在一起,以构建更具判别性的网络。
5.2 减轻人工标注的负担并实现实时目标检测
5.2.1 级联网络
级联网络往往在不同的阶段或者不同的层中构建级联检测器,浅层中不使用易于区分的示例,后期的分类器可以处理更多不易区分的样本。但在训练新网络时,级联的前段网络将被固定,阻止了不同CNN的优化,这表明了CNN级联的端到端优化的必要性。
5.2.2 无监督和无监督的学习
采用手动的方式标注大量的边界框非常耗时。为了减轻负担,可以整合语义先验、无监督目标发现、多实例学习和深度神经网络预测等方式,充分利用图像监督分配目标类别标签给相应的目标区域和精准的目标边界。此外,弱注释也有助于通过适量的注释工作构建高质量的检测模型。
5.2.3 网络优化
在特定的应用程序和平台下,通过选择最佳的检测架构[66],在速度、内存和准确性之间取得平衡是非常重要的。然而,通过降低检测精度来让模型学习较少参数更为有意义[67]。引入更好的预训练方案、知识提炼和提示学习可以缓解这种情况。DSOD(Deeply Supervised Object)还提出可以从头开始进行训练,以弥合不同图像源和任务之间的鸿沟[42]。
5.3 3D目标检测和视频目标检测
3D目标检测。深度学习借助3D传感器可以更好地理解2D图像,并将图像级别的知识扩展到现实世界。但是,很少利用这些3D感知技术将3D边界框放置在检测到的目标周围。为了获得更好的边界标定,惯性传感器可以借助多视图表示和3D建议网络对深度信息进行编码。
视频目标检测。在理解不同目标的行为时,时间信息起着重要的作用。但是,准确性容易受到视频中目标外观退化的影响,并且不采用端到端的方式训练网络。为此,可以考虑时空小管、光学流和LSTM等方法从根本上为连续的帧之间建立目标关联。
6 结 论目标检测经过几十年的研究发展,已经逐渐成为一个成熟的研究领域。凭借其强大的学习能力以及在处理遮挡,尺度转换和背景切换方面的优势,基于深度学习的目标检测已成为近年来的研究热点。本文详细介绍了基于卷积神经网络的目标检测框架,以及其在R-CNN上进行的不同程度的改进,最后提出了目标检测在未来的发展方向,以全面了解目标检测领域。
我们的服务类型公开课程
人工智能、大数据、嵌入式
内训课程
普通内训、定制内训
项目咨询
技术路线设计、算法设计与实现(图像处理、自然语言处理、语音识别)
关注微信公众号:人工智能技术与咨询。了解更多咨询!
推荐阅读
- 记一次文件编码格式导致命令执行不成功的错误--服务 tomcat 不支持 chkconfig
- struts2中Action的三种开发编写形式,ActionSupport,POJO
- MacBook将大文件分割成很多个小文件split命
- 电脑开机显示节电模式,显示器显示不了,是什么原因()
- 使用 ReactSolidity 和 Web3.js 构建真实世界的 dApp#yyds干货盘点#
- React 配置化+Serverless,落地低代码+云原生全栈开发
- Oracle数据库的增删改,索引视图以及序列的创建和销毁
- #yyds干货盘点#MyBatis-plus 从入门到入土 !
- CGIPHP-FPMFastCGI配置指令