本发明涉及计算机视觉领域,具体涉及一种基于改进深度残差网络的弱监督目标检测方法。
背景技术:
目标检测是机器视觉的基本问题,在视频监控、无人驾驶等场景都有广泛应用。随着深度学习的兴起,近年来涌现了大量优秀的目标检测模型。然而,基于强监督学习的目标检测结果严重依赖于目标标注的准确性,而目标标注的结果很容易受到主观判断的影响。
随着深度学习的不断发展,目标标注的成本变得越来越高。训练一个高准确率的检测模型需要大量的以包围框形式精细标注的图片数据作为模型监督条件,需要花费大量的人力物力。如何利用低成本的图像标注取得良好的检测结果成为了当下研究的热点,因此研究者开始研究基于弱监督学习的目标检测算法。同时,我们可以从互联网轻松获取海量粗标注的图片,如利用flickr的标签。因此,研究如何在弱监督条件下,即仅提供粗略图片类别标注,训练目标检测模型,具有重要的意义。已有学者探索了基于多示例学习构建弱监督条件下的目标检测模型学习方法,但是模型的精确度仍然难以令人满意。与强监督需要大量人工标注不同,弱监督只需要提供图像级别的标签,即指出图像中是否包含某类目标,从而实现目标检测。
给定一张图像和对应的候选区域,大多数弱监督目标检测使用候选区域特征池化层显式地从主干网络的图像特征图中截取出候选区域的特征。然后使用特定任务的弱监督检测头部网络来进行目标定位和候选区域特征学习。然而,目前大多数方法都是使用普通的非残差结构的卷积神经网络(如vgg、alexnet网络等)作为主干网络。但是,非残差卷积神经网络的层数有限,难以扩展到更深的神经网络模型。例如,alexnet只有8层,vgg最深只有19层。而深度残差网络(如resnet,densenet网络等)则可以轻松达到上百层,甚至上千层。例如resnet1202的深度达到1202层。总所周知,在计算机视觉不同的领域里,更深的卷积神经网络往往可以带来更好的特征。例如图像分类和目标检测里,resnet152的性能远远优于vgg和alexnet。
目前,基于深度残差网络的弱监督目标检测的研究还是一个未探索的领域。事实上,直接使用深度残差网络(如resnet,densenet网络)作为主干部分会大大降低弱监督目标检测的性能。这也是大多数弱监督目标检测方法不使用深度残差网络的主要原因。因此,在弱监督目标检测领域里,如何充分利用残差网络结构以提升性能是一个迫切亟需研究的问题。
技术实现要素:
针对现有技术存在的问题,本发明的目的在于提供一种基于改进深度残差网络的弱监督目标检测方法,其可以有效提高弱监督目标检测的性能。
为实现上述目的,本发明采用的技术方案是:
一种基于改进深度残差网络的弱监督目标检测方法,其包括以下步骤:
(1)构建网络模型;
选择任意深度残差网络作为主干网络,在深度残差网络和弱监督头部网络之间加入候选区域池化层和冗余自适应脖子网络;其中,候选区域池化层的输入是深度残差网络的图像特征图,输出是候选区域特征图;冗余自适应脖子网络是两层全连接层,第一层全连接层输入是候选区域特征池化层的候选区域特征图;第二层全连接层的输入是第一层全连接层的输出,而弱监督检测头部的输入是第二次全连接层的输出;
(2)采用弱监督数据集对重构后的网络模型进行训练;
(3)给定任意图像,将其输入训练后的网络模型,网络模型输出检测结果。
所述步骤(1)中,在深度残差网络和弱监督头部网络之间加入候选区域特征池化层和冗余自适应脖子网络之前,对深度残差网络的进行重构:
首先,重构深度残差网络的第一阶段:重构后的第一阶段包含一个3×3卷积核、64个输出通道、2×2步长的卷积层、一个3×3卷积核、64个输出通道的卷积层和一个2×2卷积核、2×2步长的最大值池化层;每个卷积层后面连接relu层和batchnorm层;
其次,重构深度残差网络中大于1×1步长的卷积层:每个s×s步长(s>1)、k×k卷积核的卷积层都更换为一个s×s步长、s×s卷积核的最大值池化层和一个1×1步长、k×k卷积核的卷积层。
所述深度残差网络的重构还包括候选区域特征对齐:对深度残差网络的第4、5个阶段中的所有神经层的步长都设为1×1。
所述(3)中,使用非极大值抑制过滤网络模型输出的检测结果,得到最终的检测结果。
采用上述方案后,本发明在构建网络模型时,采用深度残差网络作为主干网络,并将候选区域池化层和冗余自适应脖子网络结合到主干网络和弱监督检测头部网络之间,有效弥补了已有的深度残差网络应用于弱监督目标检测时的缺点,大大提升了弱监督目标检测的性能。此外,本发明还对主干网络进行了重构,增强网络信息流和最大化对齐候选区域特征,进一步提升了弱监督目标检测的性能。
附图说明
图1为本发明网络模型结构示意图;
图2为resnet原来的网络结构图;
图3为重构后的resnet的网络结构图;
图4为候选区域池化层中,正确候选区域的所有通道最大值的采样位置;
图5为图像样本和对应的图像梯度图;
图6(a)表示预训练和微调后vgg16网络的conv5、fc6和fc7层的特征可视化;
图6(b)分别表示预训练和微调后resnet18的conv5层的特征可视化;
图6(c)分别表示预训练和微调后resnet50的conv5层的特征可视化;
图6(d)分别表示预训练和微调后resnet101的conv5层的特征可视化;
图6(e)分别表示预训练和微调后的改进resnet18的conv5、fc6和fc7层的特征可视化;
图6(f)分别表示预训练和微调后的改进resnet50的conv5、fc6和fc7层的特征可视化;
图6(g)分别表示不微调卷积层的微调后的改进resnet18的conv5、fc6和fc7层的特征可视化;
图6(h)分别表示不微调卷积层的微调后的改进resnet50的conv5、fc6和fc7层的特征可视化.
具体实施方式
如图1所示,本发明揭示了一种基于改进深度残差网络的弱监督目标检测方法,其包括以下步骤:
(1)构建网络模型;
选择任意深度残差网络作为主干网络,在深度残差网络和弱监督头部网络之间加入候选区域池化层和冗余自适应脖子网络;其中,候选区域池化层的输入是深度残差网络的图像特征图,输出是候选区域特征图;冗余自适应脖子网络是两层全连接层,第一层全连接层输入是候选区域特征池化层的候选区域特征图;第二层全连接层的输入是第一层全连接层的输出,而弱监督检测头部的输入是第二次全连接层的输出。
如图2所示,通常残差卷积神经网络包含五个阶段,即第一阶段(conv1)、第二阶段(conv2_x)、第三阶段(conv3_x)、第四阶段(conv4_x)、第五阶段(conv5_x),每个阶段又包含多个块(block),每个块通常包含三个卷积层。
为了增强网络信息流和最大化对齐候选区域特征,在深度残差网络和弱监督头部网络之间加入候选区域特征池化层和冗余自适应脖子网络之前,对深度残差网络的进行重构,具体如下:
(a)增强网络信息流;
首先,重构深度残差网络的第一阶段:重构后的第一阶段包含一个3×3卷积核、64个输出通道、2×2步长的卷积层、一个3×3卷积核、64个输出通道的卷积层和一个2×2卷积核、2×2步长的最大值池化层;每个卷积层后面连接线性整流层relu和批量归一化层batchnorm。
其次,重构深度残差网络的所有阶段中大于1×1步长的卷积层:每个s×s步长(s>1)、k×k卷积核的卷积层都更换为一个s×s步长、s×s卷积核的最大值池化层和一个1×1步长、k×k卷积核的卷积层。
(b)候选区域特征对齐;
对深度残差网络的第四、五个阶段中的所有神经层的步长都设为1×1。
(2)采用弱监督数据集对重构后的网络模型进行训练。
(3)给定任意图像,将其输入训练后的网络模型,网络模型输出检测结果。
为详尽本发明内容,以下将列举一具体实施例进行详细说明。
本实施例是基于resnet和wsddn的弱监督目标检测应用。其中resnet是常用的深度残差网络结构,wsddn是常用的弱监督目标检测头部网络。
下面以数据集pascalvoc2007为例,详细说明本发明提出的改进基于深度残差网络的弱监督目标检测的操作方法。
本实施例的方法包括以下步骤:
(1)给定任意深度残差网络resnet,例如如图6所示的resnet50,首先重构深度残差网络resnet,然后结合弱监督检测头部网络wsddn组成最终网络模型。如图3所示,
具体地,按照以下三个步骤进行模型网络结构重构:
首先,网络信息流增强。
为了增强网络信息流,首先重构主干网络的第一阶段。新的第一阶段包含一个3×3卷积核、64个输出通道、2×2步长的卷积层、一个3×3卷积核、64个输出通道的卷积层和一个2×2卷积核、2×2步长的最大值池化层。每个卷积层后面连接relu层和batchnorm层。其次,重构主干网络中大于1×1步长的卷积层。每个大于1×1步长的卷积层都更换为一个2×2卷积核、同样步长的最大值池化层和一个同样卷积核、1×1步长的卷积层。
如图4所示,其第一行表示一些图像样本,第二行表示vgg16的图像梯度图,第三行表示resnet18的图像梯度图,第四行表示改进第一阶段后的后resnet18的图像梯度图,第五行表示改进大于1×1步长的卷积层后的resnet18的像素梯度图。如图3所示,本准则可以极大增强了深度残差网络的信息流。
其次,候选区域特征对齐。
为了最大化对齐候选区域的特征,对主干网络的第四、第五个阶段中所有神经层的步长都设为1×1。因此,主干网络的步长为8×8。
图5表示候选区域特征池化层中,正确候选区域的所有通道最大值的采样位置。图5的第一行表示resnet18的采样位置,第二行表示候选区域特征对齐改进后的resnet18的采样位置。如图4所示,本准则可以极大对齐了深度残差网络的候选区域特征。
最后,在主干网络resnet和弱监督检测头部网络wsddn之间,加入候选区域池化层和冗余自适应脖子网络。候选区域池化层的输入是主干网络的图像特征图,输出是候选区域特征图。冗余自适应脖子网络是两层全连接层。第一层全连接层的输入是候选区域特征池化层的候选区域特征图,输出是2048维度的特征。第二层全连接层的输入是第一层全连接层的输出,输出是4096维度的特征。弱监督检测头部的输入是第二次全连接层的输出。
图6表示不同主干网络的候选区域特征可视化。图6(a)表示预训练和微调后vgg16网络的conv5、全连接层fc6和fc7的特征可视化。图6(b,c,d)分别表示预训练和微调后resnet18、resnet50和resnet101的conv5层的特征可视化。图6(e,f)分别表示预训练和微调后的改进resnet18和resnet50的conv5、fc6和fc7层的特征可视化。图6(g,h)分别表示不微调卷积层的微调后的改进resnet18和resnet50的conv5、fc6和fc7层的特征可视化。如图6所示,本准则可以极大改善了深度残差网络的候选区域特征。
(2)在给定pascalvoc2007弱监督数据集,对组成的网络模型进行训练。
具体地,只使用pascalvoc2007的图像i和图像级的标签信息t。这里用i∈rh×w×3表示rgb格式的输入图像,t∈{0,1}c表示对应的图像层面的标签,{p1…pr}表示图像的候选区域(proposals),r表示候选区域的数目,c表示全部的类别数目。首先输入一张图像i和对应标签t,通过主干网络获得图像的特征图,然后通过候选区域特征池化层获得r个候选区域{p1…pr}的特征。然后候选区域的特征分别通过两个支流:分类支流和检测支流。这两个支流分别使用全连接层输出两个得分矩阵xc,xd∈rr×c。两个得分矩阵分别用softmax层σ(·)在类别和候选区域维度上进行归一化。
归一化后的得分矩阵进行点积:
xs=σ(xc).σ(xd)(3)
为了获得图像层面的预测,我们使用一个累加池化:
最后我们获得交叉熵损失:
其中,c表示数据集的类别数目,log()表示底数为自然数e的对数函数。tk为图像第k个类别的标签,yk表示网络对第k个类别的预测。
基于交叉熵损失函数,使用随机梯度下降算法训练深度残差网络的参数。参数更新的公式为:
δθl:=ηδl(θl)+αδθl-1(6)
θl:=θl-δθl(7)
这里θl为卷积神经网络第l层的参数,也就是卷积层的卷积核。δl(θl)为此参数对于交叉熵损失的导数。δθl为需要更新的误差。η为学习速率。α为动量参数。重复(2)步骤直到交叉熵损失的结果不再下降为止。
(3)给定任意图像,将其输入网络模型,网络输出检测结果,然后使用非极大值抑制过滤检测结果。
本发明在构建网络模型时,采用深度残差网络作为主干网络,并将候选区域池化层和冗余自适应脖子网络结合到主干网络和弱监督检测头部网络之间,有效弥补了已有的深度残差网络应用于弱监督目标检测时的缺点,大大提升了弱监督目标检测的性能。此外,本发明还对主干网络进行了重构,增强网络信息流和最大化对齐候选区域特征,进一步提升了弱监督目标检测的性能。
以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。