基于稠密特征金字塔网络的物体检测方法与流程

文档序号:17237466发布日期:2019-03-30 08:25阅读:218来源:国知局
基于稠密特征金字塔网络的物体检测方法与流程

本发明涉及计算机视觉领域中鲁棒有效的物体检测方法,特别是涉及基于深度卷积神经网络进行物体检测的方法。



背景技术:

物体检测是指识别图像或视频序列中存在物体(如行人、车辆等)的类别,并定位物体的位置。物体检测可以广泛应用于许多计算机视觉任务中,如自动驾驶、辅助驾驶、人机交互、身份认证、智能视频监控等。图1给出了物体检测在自动驾驶和身份认证等两个领域的应用示例。在图1(a)中,为了更好地进行驾驶决策、避免交通事故的发生,汽车的自动驾驶系统需要能够及时准确地检测汽车前方的行人、骑车人等。在图1(b)中,为了能够识别图像中具体人的身份信息,身份识别系统需要先检测出图像中存在的人脸。

近年来,随着深度学习技术的发展,基于深度学习的方法开始在计算机视觉任务(如图像分类、物体检测、超分辨率重建、图像分割)中取得巨大的成功。具体到物体检测领域,基于深度卷积神经网络的方法取得了巨大的成功。在基于卷积神经网络的物体检测方法中,最具有代表性的物体检测方法为fasterrcnn[1]。fasterrcnn进行物体检测的主要过程分为两步:候选检测窗口的生成和候选检测窗口的分类。候选窗口的生成旨在提取图像中可能存在物体的所有候选检测窗口,而候选检测窗口的分类旨在分类这些候选窗口(即识别候选窗口的具体物体类别)。为了减少网络的计算消耗量、加快物体检测的速度,fasterrcnn的上述两个过程(即候选窗口的生成和候选窗口的分类)共享同一个基础网络。换而言之,基于基础网络的输出特征图,fasterrcnn进行候选窗口的生成和候选窗口的分类。一般而言,基础网络可以采用图像分类中常用的模型(如vgg[2]、resnet[3]),包括若干的卷积层、激活层(relu)以及池化层等。因而,基础网络输出的特征图具有相对较小的空间分辨率和相对较大的感受野。由于相对较小的空间分辨率,小尺度物体的空间信息将会大量丢失。同时,相对较大的感受野也不能够很好地匹配所有尺度的物体,特别是小尺度物体。基于以上分析,fasterrcnn不能够很好地解决物体检测中的尺度变化问题,仍然存在很大的提升空间。

为了能够更好地应对物体尺度变化的问题,近些年研究人员提出了许多的多尺度物体检测方法。这些多尺度方法主要分为两类:基于图像金字塔的方法[1][4]和基于特征金字塔的方法[5][6][7][8][9]。基于图像金字塔的方法首先将输入图像缩放成一系列不同尺度的图像,然后分别将每个尺度的图像送入神经网络中进行检测,最后合并各个尺度下的物体检测结果。该方法在一定程度上克服了物体尺度变化的影响,提升了物体检测的性能。但是,由于该方法需要将不同尺度的图像分别送入神经网络中,因而该方法在检测过程中十分耗时。基于特征金字塔的方法主要利用神经网络中不同卷积层输出的不同分辨率特征图分别检测不同尺度的物体。相比于基于图像金字塔的方法,基于特征金字塔的方法在提升物体检测性能的同时具有更高的检测效率。因而,基于特征金字塔的方法受到更好研究人员的青睐,在物体检测中具有更广泛的应用。

在基于特征金字塔的方法中,多尺度神经网络(简称为mscnn[5])和特征金字塔网络(简称为fpn[6])是两种代表性的方法。图2给出了两种方法(mscnn和fpn)的示意图。mscnn首先使用基础网络中不同卷积层输出的特征图提取不同尺度的候选检测窗口,然后对这些候选检测进行进一步分类和回归。如图2(a)所示,mscnn利用神经网络中靠前的分辨率相对较大的特征图提取小尺度物体的候选检测窗口,利用神经网络中靠后的分辨率相对较小的特征图提取大尺度物体的候选检测窗口。同样,类似的思想被用于典型的单阶段物体检测方法ssd[7]中。尽管该方法取得了一定的成功,但是它仍然存在输出特征图语义不一致的问题。具体地,靠前的特征图语义级别相对较低,靠后的特征图语义级别相对较高。为了提升输出特征图的语义级别,fpn利用自上而下的跨层连接将不同卷积层输出的特征图进行融合。具体地,fpn将高语义级别低分辨率的特征图进行上采样同低语义级别高分辨率的特征图进行融合(点对点的像素相加),用于提升低语义级别高分辨率特征图的语义级别。因而,在fpn结构中所有输出特征图都具有较高级语义特征。在物体检测过程中,fpn具有更好的检测性能,特别是小尺度物体检测。同样,该跨层连接操作同样被用于ron[8]和dssd[9]中。

参考文献:

[1]s.ren,k.he,r.girshick,andj.sun,fasterr-cnn:towardsreal-timeobjectdetectionwithregionproposalnetworks,ieeetrans.patternanalysisandmachineintelligence,vol.39,no.6,pp.1137-1149,2017.

[2]k.simonyananda.zisserman,verydeepconvolutionalnetworksforlarge-scaleimagerecognition,proc.internationalconferenceonlearningrepresentations,2015.

[3]k.he,x.zhang,s.ren,andj.sun,deepresiduallearningforimagerecognition,proc.ieeecomputervisionandpatternrecognition,2016.

[4]b.singhandl.s.davis,ananalysisofscaleinvarianceinobjectdetection-snip,proc.ieeecomputervisionandpatternrecognition,2018.

[5]z.cai,q.fan,r.s.feris,andn.vasconcelos,aunifiedmulti-scaledeepconvolutionalneuralnetworkforfastobjectdetection,proc.europeanconferenceoncomputervision,2016.

[6]t.lin,p.dollar,r.girshick,k.he,b.hariharan,ands.belongie,featurepyramidnetworksforobjectdetection,proc.ieeecomputervisionandpatternrecognition,2017.

[7]w.liu,d.anguelov,d.erhan,c.szegedy,s.reed,c.-y.fu,a.c.berg,ssd:singleshotmultiboxdetector,proc.europeanconferenceoncomputervision,2016.

[8]t.kong,f.sun,a.yao,h.liu,m.lu,andy.chen,ron:reverseconnectionwithobjectnesspriornetworksforobjectdetection,proc.ieeecomputervisionandpatternrecognition,2017.

[9]c.-y.fu,w.liu,a.ranga,a.tyagi,a.c.berg,dssd:deconvolutionalsingleshotdetector,corrabs/1701.06659,2017.



技术实现要素:

本发明提出一种稠密特征金字塔网络,并将其用于物体检测上。采用本发明所提出的稠密特征金字塔网络进行物体检测,能够更好地解决物体的尺度变化问题,进而提升物体检测的性能,通过自上而下的稠密连接和细尺度的预测,所提出的方法能够更好地匹配物体的尺度变化,提升对尺度变化的鲁棒性。技术方案如下:

一种基于稠密特征金字塔网络的物体检测方法,包括下列步骤:

(1)确定基础网络架构,用于从输入图像中提取不同语义级别的深度特征,该基础网络包括多个卷积块,每个卷积块由多个卷积层构成,不同卷积块之间由池化层连接,在该基础网络中不同卷积块输出的特征图分辨率从下到上由逐渐降低。

(2)设计稠密连接网络部分,利用自上而下的跨层连接稠密地生成具有高级语义的特征图,将基础网络中最后输出的低分率特征图逐渐双线性差值上采样,使其与基础网络中所有卷积块中所有卷积层一一对用,并将其与基础网络中对应的特征图进行相加,最终得到若干高级语义且分辨率不同的特征图。

(3)设计细尺度预测部分,利用具有不同感受野的特征图分别提取不同尺度的候选检测窗口:经过稠密连接部分后,输出的特征分别具有不同的感受野。为进一步将上下文信息引入到每一个输出特征图中,在细尺度预测中每个输出特征由稠密连接部分的相邻三个输出特征图进行串接并经过1x1卷积层降低通道数得到。

(4)输出物体检测结果:分别将细尺度预测部分的特征图接检测子网络用于预测特征图不同位置为物体的概率和位置偏移量,根据相关概率和位置偏移量可以得到最终的物体检测结果。

附图说明

图1物体检测的应用示例

图2两种基于特征金字塔的物体检测方法

图3本发明提出的稠密特征金字塔网络(dfpn)

图4本发明所提出方法的流程图

具体实施方式

在本章节中,我们首先介绍所提出的稠密特征金字塔网络,然后介绍如何将所提出的稠密金字塔网络用于物体检测。

(1)稠密特征金字塔网络(dfpn)

图3给出了稠密特征金字塔网络(简称为dfpn)的基本架构。dfpn主要包括三个部分:基础网络,稠密连接,细尺度预测等。

基础网络部分主要用于从输入图像中提取不同语义级别的深度特征。一些著名的神经网络神经网络模型(如vgg16[2]、resnet[3])可以用于构建基础网络。这些模型一般由若干个卷积块构成。每个卷积块由若干个卷积层和激活层等组成。不同卷积块之间存在一个池化层。因而,同一个卷积块内不同卷积层输出的特征图存在相同的空间分辨率,而不同卷积块输出的特征图具有不同的空间分辨率。与此同时,靠前卷积块内卷积层输出的特征图具有相对较低的语义级别,靠后卷积块内卷积层输出的特征图具有相对较高的语义级别。

稠密连接部分旨在利用自上而下的跨层连接稠密地生成具有高级语义的特征图。所谓的稠密连接是指不仅融合同一卷积块内不同卷积层的特征,而且融合不同卷积块间卷积层的特征。特征图f63经过一个3x3的卷积层生成特征图基于特征图和特征图f62,我们可以计算得到特征图具体地,特征图由特征图f62经过一个3x3的卷积层生成特征图和特征图进行点对点的相加得到。同样的方式,我们可以由特征图f61和特征图计算得到特征图在融合不同卷积块间不同卷积层的不同分辨率特征图时,我们将低分辨率的特征图进行上采样操作,然后同高分辨率的特征图进行融合(即点对点的像素相加)。例如,特征图由特征图f53和特征图计算得到。具体地,特征图f53经过一个3x3的卷积层生成一个新的特征图;特征图经过一个上采样操作(如双线性差值操作)生成一个新的特征图;最后将上述两个新生成的特征图进行点对点的相加得到特征图依据上述两种不同的跨层连接方法,我们可以依次得到高级语义的输出特征图自上而下看,不同输出特征图具有相似的高级语义,同时具有不同的感受。靠上的输出特征图具有相对最大的感受野,靠下的输出特征图具有相对最小的感受野。

细尺度预测部分旨在利用具有不同感受野的特征图分别提取不同尺度的候选检测窗口。为了进一步将上下文信息引入到每一个输出特征图中,在细尺度预测中每个输出特征由稠密连接部分的相邻三个输出特征图进行串接并经过1x1卷积层降低通道数得到。如果串接的特征图存在分辨率不一致时,我们将相邻的特征图上采样(双线性差值)或下采样(池化操作)成同中间特征图相同大小的特征图。例如,特征图由特征图和特征图串接并经过1x1卷积层得到;特征图由特征图特征图特征图串接并经过1x1卷积层得到;特征图由特征图特征图下采样的特征图串接并经过1x1卷积层得到。类似的方法,我们可以得到输出特征图基于细尺度预测,输出特征图能够更好地匹配不同尺度的物体。因而,它对物体的尺度变化更加鲁棒。

(2)将dfpn应用到物体检测

在物体检测中,我们首先利用dfpn网络提出图像中可能存在物体的候选检测窗口,然后利用fastrcnn头网络(包括roi池化层、两个全连接层、softmax层、检测窗口回归层等)对这些候选检测窗口进行分类。假设行人的最大尺度为smax,行人的最小尺度为smin,则行人的尺度区间为[smin,smax]。则我们将尺度在对数空间中均匀的分成9份。每份的中间尺度分别对应dfpn的一个输出特征图。即最大的尺度对应最靠上的输出特征,最小的尺度对应最靠下的输出特征图。

为了将dfpn网络应用到物体检测中,我们需要经过训练阶段和测试阶段等两个步骤。训练阶段的目的是针对给定的训练数据库学习所提出dfpn的网络参数。基于训练得到的dfpn参数,测试阶段能够检测图像中存在物体的类别和位置。

首先,我们介绍一下具体的训练过程:

步骤1:准备训练图像集,给出训练集对应图像的物体标注信息,包括物体所属的类别和物体的标注框信息。

步骤2:设置训练阶段的相关超参数,包括迭代次数,学习率的变化情况,每次训练的图像块和roi中正负例的数量等。

步骤3:初始化dfpn网络和fastrcnn头网络的卷积层权重,可以利用imagenet预训练模型初始化相关的卷积权重。设定训练阶段的损失函数,该损失函数包括候选窗口提取的损失函数(包括分类损失和回归损失)和候选窗口分类的损失函数(包括分类损失和回归损失)。

步骤4:根据深度卷积网络中常用的反向传播算法,不断更新网络的权重参数。当迭代次数结束时,所学习的权重参数为最终的网络参数。

然后,我们介绍一下具体的测试过程:

步骤1:给定测试图像,利用训练得到的dfpn提取图像中可能存在物体的候选检测窗口。其中,dfpn每一个输出特征图都能够生成一定数量的候选检测窗口。对这些检测窗口,我们利用非极大值抑制对这些候选检测窗口进行合并。

步骤2:基于合并的候选检测窗口,我们利用fastrcnn对这些候选检测窗口进行分类和进一步位置回归。

步骤3:分别对每类物体的检测窗口进行进一步的非极大值抑制得到最终的物体检测结果。

图4给出了本发明所提出方法的流程图,主要步骤如下:

步骤1:准备训练图像集,以及训练集对应图像的物体标注信息,包括物体的具体类别和物体的标注框信息。

步骤2:设置训练阶段的相关超参数,包括迭代次数,学习率变化情况,每次训练的图像块和roi中正负例样本的数量等。

步骤3:初始化dfpn网络和fastrcnn头网络的卷积层权重。设定训练的损失函数,该损失函数包括候选窗口提取的损失函数和候选窗口分类的损失函数。

步骤4:根据反向传播算法,不断更新网络的权重参数。当迭代次数结束时,所学习的权重参数为最终的网络参数。

步骤5:给定测试图像,利用训练得到的dfpn提取图像中可能存在物体的候选检测窗口。dfpn中每个输出特征图都能够生成一定数量的候选检测窗口。对这些检测窗口,我们利用非极大值抑制对这些检测窗口进行合并。

步骤6:基于合并的候选检测窗口,我们利用fastrcnn头网络对这些候选检测窗口进行分类和进一步位置回归。

步骤7:分别对每类物体的检测窗口进行进一步的非极大值抑制得到最终的物体检测结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1