基于在线示例分类器精化的多示例检测网络及其训练方法与流程

文档序号:11920858阅读:218来源:国知局

本发明属于计算机视觉技术中弱监督目标检测技术领域,更具体地,涉及一种基于在线示例分类器精化的多示例检测网络及其训练方法。



背景技术:

目标检测是计算机视觉技术领域中弱监督的重要课题,对于人眼来说,目标检测是再简单不过的任务,但是对于计算机来说,它看到的是一些值为0-255的数组,很难判断和得到高层语义概念,也不清楚目标到底在图像中的哪个区域。图像中的目标可能出现在任何位置,目标的形态可能存在各种各样的变化,图像的背景千差万别,这些因素导致目标检测并不是一个容易解决的任务。得益于深度学习——主要是卷积神经网络和候选区域算法,它们的应用大大提高了目标检测的精度。

在训练目标检测网络的过程中,往往需要提前准备大量的具有标签的数据,尤其是标记了目标位置的数据。但相比于图像级别的标签(即只标注了图像中是否含有目标),获取目标位置级别的标签往往需要更多的人力来进行标注。只使用图像级别的数据来训练目标检测网络称为基于弱监督学习的目标检测。多示例学习是典型的弱监督学习(在多示例学习中,训练数据的标签只有正和负两种,被标记的目标对象可以看作是一个数据包,称为正包和负包。正包中至少有一个样本的标签为正,负包中所有样本的标签都为负)。

实际中要获得所有数据的标签是很困难的,为庞大的数据库标记是非常耗时耗力的,特别是目标检测问题中存在巨大的目标候选区域集,要获得每个候选区域的位置和标签,通过人工的方式基本是无法完成的,因此基于弱监督的目标识别是计算机视觉领域中的难点之一。



技术实现要素:

针对弱监督目标检测问题的困难,本发明提供了一种基于在线示例分类器精化的多示例检测网络及其训练方法,其目的在于仅依赖于图像标签的训练图片数据集,训练得到目标示例的位置,将候选区域选取和卷积神经网络分类融合到一起,将网络分类和精化也融合到一起,从而生成端到端的多示例检测网络以进行目标检测。该方法训练速度快检测精度高,不需要人工标注目标的位置和标签,适用于弱监督问题。

为了解决上述技术问题,按照本发明一个方面,提供了一种基于在线示例分类器精化的多示例检测网络训练方法,包括下述步骤:

(1)确定训练图片集,所述训练数据集包括训练图片的集合,以及每张训练图片的类别标签,所述类别标签用于表示该训练图中包含哪一类或多类目标示例;并选择每张训练图片中的多个候选区域;

(2)获得所述训练图片集中训练图片的卷积特征图,并将训练图片的各候选区域在其原始训练图片中的位置映射到该训练图片的卷积层特征图上,得到训练图片的各候选区域的卷积特征;

(3)将训练图片的各候选区域的卷积特征输入到全连接层中,得到训练图片的各候选区域的特征向量;

(4)构建一个基准示例分类器,并根据所述训练图片的各候选区域的特征向量和所述基准示例分类器构建多个精化示例分类器,通过更新每个候选区域得分的权重,进行在线示例分类器精化;

(5)合并整个网络中的损失函数,包含基准示例分类器的损失函数和K个精化示例分类器的损失函数,训练端到端的多示例检测网络。

本发明的一个实施例中,所述步骤(4)具体包括:

(4.1)首先构建基准示例分类器,所述基准示例分类器为基础的多示例目标检测网络,训练图片的各候选区域的特征向量计算各候选区域的得分,并根据各候选区域的得分计算训练图片的分数,利用图片的标签信息和由候选区域得分计算的图片分数来训练基准示例分类器;

(4.2)利用图像候选区域的特征向量和上述的基准示例分类器,构建多个精化示例分类器,所述精化示例分类器将步骤(4.1)训练的基准示例分类器中候选区域的分数结果作为第一个精化示例分类器中候选区域的分数的权重系数,将k-1次训练的精化示例分类器中候选区域的分数结果作为第k个训练的精化示例分类器中候选区域的分数的权重,通过更新每个候选区域得分的权重,进行在线示例分类器精化,所述k为精化示例分类器的个数。

本发明的一个实施例中,所述步骤(4.1)具体包括:

(4.1.1)将训练图片的所有候选区域的特征向量输入两个全连接层,得到两个C维度大小的向量Xc和Xd,其中C为类别标签的数目,其中Xc和Xd∈RC*|R|,|R|为每张图片的候选区域的数目;

(4.1.2)将Xc和Xd分别输入两个softmax层,经过该两个softmax层后,得到每个候选区域的两组分数σ(Xc)和σ(Xd),σ(Xc)表示每个候选区域占标签类别中某个类别的概率分数,σ(Xd)表示每个候选区域占该图片做出标签贡献的概率分数,σ(Xc)和σ(Xd)的取值范围为(0,1);两者逐点乘积得到该候选区域的分数XR

其中两个softmax层,表示为:

XR表示为:

XR=σ(Xc)⊙σ(Xd)。

(4.1.3)将该训练图片所有候选区域的分数加和表示为该训练图片的分数表示为:

每张图片的分数是求和池化的结果,其取值范围为(0,1),该分数表示该图片被分类为类别c的概率;

(4.1.4)利用(4.1.3)得到的图片分数,采用标准的多分类交叉熵损失函数训练基准示例分类器;损失函数表示为:

其中Y为训练图片的类别标签,记为:

Y=[y1,y2,…,yC]T∈RC*1

其中,yc的值为1或0表示该图片中包括或不包括目标c,总共有C个目标类别。

本发明的一个实施例中,所述步骤(4.2)具体包括:

(4.2.1)将所有候选区域的特征向量输入到一个全连接层,得到C+1维度大小的向量XRk,记为:

其中,j表示第j个候选区域,k表示第k次精化训练,精化训练的分类器的类别为{C+1};

(4.2.2)将(4.2.1)得到的C+1维度大小的向量XRk输入到一个softmax层,得到每个候选区域的分数,取值范围为(0,1),该分数表示该候选区域占{C+1}类别的概率分数;

(4.2.3)根据候选区域的分数确定每个候选区域的类别;

(4.2.4)利用损失函数:

经过多次精化训练逐渐逼近目标示例的位置,训练各精化示例分类器。

其中,为所述训练图片集的所有候选区域的标签集:

权重系数为第k-1个精化示例分类器训练的分数结果,

本发明的一个实施例中,所述步骤(5)具体为:

将(4.1.4)的基准示例分类器的损失函数和(4.2.4)的K个精化示例分类器的损失函数合并,得到多示例检测网络的损失函数如下:

该优化损失函数,将基准示例分类器训练和分类器精化两个阶段融合到一个网络中。

本发明的一个实施例中,所述步骤(4.2.3)具体为:

选择训练图片的|R|个候选区域的分数XRk中分数最大的那个候选区域,用该训练图片的类别标签来标记该候选区域的类别;

选择与分数最大的那个候选区域的覆盖率大于设定覆盖率阈值的邻近候选区域,并用该训练图片的类别标签来标记这些邻近候选区域的类别。

本发明的一个实施例中,在更新权重系数的过程中,当邻近候选区域与当前分数最大的候选区域的IoU最大时,将该最大分数赋给该邻近候选区域的权重。

本发明的一个实施例中,所述步骤(1)中选择每张训练图片中的多个候选区域,具体为:

采用Selective Search方法为每张训练图片选取可能为目标位置的候选区域。

本发明的一个实施例中,在所述步骤(2)中将训练图片的各候选区域在其原始训练图片中的位置映射到该训练图片的卷积层特征图上,具体为:

将训练图片的卷积特征图及训练图片的各候选区域输入到具有SPP-NET网络结构的卷积层,从而将训练图片的各候选区域在其原始训练图片中的位置映射到该训练图片的卷积层特征图上,得到训练图片的各候选区域的卷积特征。

按照本发明的另一方面,还提供了一种如上述方法训练得到的基于在线示例分类器精化的多示例检测网络。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,本发明具有以下技术效果:

(1)本发明适用于多示例及弱监督的问题,仅依赖具有图像标签的数据集检测目标示例,而不需要人工对图像中一个或多个目标示例的位置和标签进行标注;

(2)现有的目标检测往往采用迭代策略优化网络,每次迭代都需要训练一次模型,训练耗时长;本发明将多示例分类器的训练和分类器的精化整合在一起,只需要训练一个模型,减少了训练时间提高了训练效率;

(3)本发明提出的多示例检测网络是端到端的,将目标候选区域的选取和卷积神经网络的分类融合到了一起,无论在速度上还是精度上都得到了很好的提升。

附图说明

图1是本发明基于在线示例分类器精化的多示例检测网络训练方法的原理示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

以下首先就本发明的技术术语进行解释和说明:

弱监督目标检测(Weakly Supervised Object Detection,WSOD):一类计算机视觉中的研究课题,目标检测是识别并定位输入图像中已知特定的某个或多个物体,可分为目标定位和目标分类两部分。弱监督目标检测网络中,一般只具有图像级别的标签,但没有目标候选区域的标签。只使用图像级别的数据来训练目标检测网络称为基于弱监督学习的目标检测。

多示例学习(Multiple Instance Learning,MIL):在多示例学习中,训练数据的标签只有两种,正和负,被标记的目标是一个数据包,称为正包和负包。正包中至少有一个样本的标签为正,负包中所有样本的标签都为负。多示例学习是典型的弱监督学习。

卷积神经网络(Concolutional Neural Network,CNN):一种可用于图像分类、回归等任务的神经网络。网络通常由卷积层、降采样层和全连接层构成。卷积层和降采样层负责提取图像的特征,全连接层负责分类或回归。网络的参数包括卷积核以及全连接层的参数及偏置,参数可以通过反向传导算法,从数据中学习得到。

本发明基于在线示例分类器精化的多示例检测网络包括以下步骤:

(1)确定训练图片集,所述训练数据集包括训练图片的集合,以及每张训练图片的类别标签,所述类别标签用于表示该训练图中包含哪一类或多类目标示例;并选择每张训练图片中的多个候选区域;

具体地,所述数据集包括训练图片集合和每张训练图片的类别标签(即整个网络的训练标签),该类别标签表示该训练图片中包含哪一类或多类示例,但不用标注示例在训练图片中的具体位置。所述候选区域可以采用Selective Search方法为每张训练图片选取可能为目标位置的候选区域,每张训练图片的候选区域的数目记为|R|,例如|R|可以取值为2000。

(2)获得所述训练图片集中训练图片的卷积特征图,并将训练图片的各候选区域在其原始训练图片中的位置映射到该训练图片的卷积层特征图上,得到训练图片的各候选区域的卷积特征;

具体地,将训练图片原始和该训练图片的所有候选区域输入到卷积层中,得到各候选区域的卷积特征。所述卷积层是采用SPP-NET的网络结构,任意给一张图像输入进来,经过卷积操作得到卷积特征,将候选区域在原图的位置映射到卷积层特征图上。例如,当卷积层网络为VGG16时,窗口大小设为7*7,共有512个特征图,在原图的卷积特征图上抠出每个候选区域对应的特征图,并通过上/下采样将它的大小调整为7*7,可以得到49*512维度大小的卷积特征,将这个作为全连接层的输入进行后续操作。

(3)将训练图片的各候选区域的卷积特征输入到全连接层中,得到训练图片的各候选区域的特征向量。

具体地,利用(2)中得到的固定长度的卷积层特征经过2个全连接层,得到更高语义层的特征向量。例如,当网络为VGG16时,49*512维度大小的卷积层特征经过2个全连接层,最终得到4096维度大小的特征向量。

(4)根据得到的候选区域的特征向量,构建一个基准示例分类器和K个精化示例分类器,对多示例目标检测网络进行训练和在线示例分类器精化,以确定示例目标的位置。

(4.1)首先构建基础的MIDN(Multiple Instance Detection Network,多示例目标检测网络),即一个基准示例分类器,利用训练图片候选区域的得分,计算每张训练图片的分数,通过交叉熵计算损失函数,训练该基准示例分类器。具体如下:

(4.1.1)根据上述网络,每张训练图片产生|R|个候选区域,每个候选区域得到4096维度的特征,将所有候选区域的特征经过两个全连接层,得到两个C维度大小的向量,C为图片类别的数目。由该两个全连接层得到的向量记为Xc和Xd,其中Xc,Xd∈RC*|R|(|R|为每张图片的候选区域的数目);

(4.1.2)根据(4.1.1)中得到的特征向量,计算得到每个候选区域以及每张训练图片的分数;

将Xc和Xd分别输入两个softmax层,表示为:

经过该两个softmax层后,得到每个候选区域的两组分数。σ(Xc)表示每个候选区域占某个类别的概率分数,σ(Xd)表示每个候选区域占该训练图片做出标签贡献的概率分数,σ(Xc)和σ(Xd)的取值范围为(0,1)。两者的逐点乘积得到该候选区域的分数XR,表示为:

XR=σ(Xc)⊙σ(Xd)

(4.1.3)将该训练图片所有候选区域的分数加和表示为该训练图片的分数表示为:

每张训练图片的分数是求和池化的结果,其取值范围为(0,1),该分数表示该训练图片被分类为类别c的概率;

(4.1.4)为了训练一个基准的示例分类器,采用标准的多分类交叉熵损失函数。假定训练图片集的类别标签为Y,记为:

Y=[y1,y2,…,yC]T∈RC*1

其中,yc的值为1或0表示该训练图片中包括或不包括目标c,总共有C个目标类别。利用(4.1.3)得到的图片分数计算和训练示例分类器,损失函数表示为:

利用训练图片的标签信息和由候选区域得分计算的图片分数来训练基准示例分类器。

(4.2)利用图像候选区域的特征向量和上述的基准示例分类器,构建多个精化示例分类器,通过更新每个候选区域得分的权重,进行在线示例分类器精化。

(4.2.1)根据(3)得到的训练图片的所有|R|个候选区域的特征向量和(4.1)训练的基准的示例分类器,来训练K个其他分类器,在线调整和更新候选区域的标签分数。将所有候选区域的特征向量输入到一个全连接层,得到C+1维度大小的向量XRk,记为:

其中,j表示第j个候选区域,k表示第k次精化训练,精化训练的分类器的类别为{C+1},C和(4.1.1)中的C一致,表示该数据集的图片类别的数目,这里增加了一个背景的类别(第C+1类)以更精准的区分和判断每个候选区域的标签;

(4.2.2)根据(4.2.1)得到的向量,计算每个候选区域的分数:

将(4.2.1)得到的C+1维度大小的向量XRk输入到一个softmax层,得到每个候选区域的分数,取值范围为(0,1),该分数表示该候选区域占{C+1}类别的概率分数;

(4.2.3)为了训练K个精化示例分类器,需要确定每个候选区域的类别标签。给定一张图片,其标签类别为c,由之前得到该图片的|R|个候选区域的分数XRk,选择最大的那个候选区域,设定其标签也为c。接着计算该候选区域与其邻近候选区域的IoU(覆盖率),例如当值大于0.5时,设定这些邻近候选区域的标签也为c,否则将这些不邻近的候选区域的标签设为背景;

(4.2.4)为了训练K个精化示例分类器,更好地更新确定每个候选区域的标签,需要定义合适的损失函数。

标准损失函数如下:

其中,表示第k次精化训练中第r个候选区域属于c类别的概率分数,表示该候选区域的真实标签。该图像集的所有候选区域的标签集表示为:

定义新的损失函数如下:

其中,新的损失函数与标准损失函数相比,多了一项权重系数即为上一次训练的分数结果,为了充分利用训练的结果,将(4.1)训练的基准示例分类器中候选区域的分数结果作为第一个精化示例分类器中候选区域的分数的权重系数,将第k-1个训练的精化示例分类器中候选区域的分数结果作为第k个训练的精化示例分类器中候选区域的分数的权重。在更新权重过程中,当邻近候选区域与当前分数最大的候选区域的IoU最大时,将该最大分数赋给该邻近候选区域的权重,通过多次精化训练,可以逐渐逼近目标示例的位置。

(5)合并整个网络中的损失函数,包含基准示例分类器的损失函数和K个精化示例分类器的损失函数,训练端到端的多示例检测网络。

将(4.1.4)的基准示例分类器的损失函数和(4.2.4)的K个精化示例分类器的损失函数合并,得到该网络的损失函数如下:

该优化损失函数,将基准示例分类器训练和分类器精化两个阶段融合到一个网络中,训练是端到端的。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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