1.本申请实施例涉及人工智能技术领域,尤其涉及一种神经网络的训练方法、物体检测方法、装置及设备。
背景技术:
2.深度学习(deep learning,dl)是机器学习(machine learning,ml)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(artificial intelligence,ai)。随着深度学习技术的发展,深度学习技术已经被广泛应用到各个领域中。
3.例如,深度学习技术使得计算机在物体检测中取到了卓越的性能。深度学习技术之所以能够如此成功,一个非常重要的因素是大数据,特别是大规模带标签的数据,即利用大规模带标签的数据训练得到的深度学习网络,能够较好地完成物体检测任务。
4.然而,人工获取大规模数据的标签的代价比较高,而且部分类别的数据是无法大规模获取的。因此,诞生了小样本学习方法。小样本学习方法是指利用少量带标签的数据(也可以称为样本)对深度神经网络进行训练,使得训练后的深度神经网络可以对未测试过的图像完成物体检测任务。
5.尽管小样本学习方法能够利用少量带标签的样本对深度神经网络进行训练,但是样本数量的不足仍然会影响得到深度神经网络的物体检测精度。为此,通常采用样本扩增算法获取一部分新增样本,然后基于新增样本和原始样本对深度神经网络进行训练。
6.新增样本通常是在原始样本的基础上进行变换得到的,新增样本的标签与原始样本的标签仍然相同。但是,部分新增样本和原始样本的差别较大,若使用新增样本训练神经网络,会使得神经网络将与原始样本差别较大的新增样本也识别为原始样本的标签,从而降低了训练得到的深度神经网络的物体检测精度。
技术实现要素:
7.本申请实施例提供了一种神经网络的训练方法、物体检测方法、装置及设备,该方法能够控制变换前的第一支持样本与变换后的第二支持样本间特征的差异,以避免变换后的第二支持样本与变换前的第一支持样本间特征的差异过大,从而可以提高训练得到的目标神经网络的物体检测精度,提高训练得到的目标神经网络的鲁棒性。
8.本申请实施例第一方面提供了一种神经网络的训练方法,应用于目标神经网络,目标神经网络包括第一特征提取子网络和物体检测子网络,相应地,该训练方法包括:通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,第二支持样本是对第一支持样本进行第一变换得到的,第一支持样本的数量可以为一个或多个,相应地,第二支持样本的数量也可以为一个或多个;获取第一损失函数,第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间特征的差异;基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样
本中的物体进行检测,以得到检测结果;基于检测结果和查询样本中的物体的标签获取第二损失函数;基于第一损失函数和第二损失函数更新目标神经网络的参数。
9.由于第二支持样本是对第一支持样本进行第一变换得到的,所以实现了通过变换后的第二支持样本对目标神经网络进行训练;对第一支持样本进行第一变换得到第二支持样本,增加了样本的数量,弥补了部分类别的物体对应的样本数量较少的缺陷,有利于对目标神经网络的训练;并且,由于第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异,所以通过第一损失函数更新目标神经网络的参数,能够控制控制变换前的第一支持样本与变换后的第二支持样本间特征的差异,以避免变换后的第二支持样本与变换前的第一支持样本的差别过大,从而可以提高训练得到的目标神经网络的物体检测精度,提高训练得到的深度神经网络的鲁棒性。
10.作为一种实现的方式,第二支持样本为带标签的样本。
11.该实现方式提供了第二支持样本的一种可行方案,即使用带标签的样本作为第二支持样本。
12.作为一种实现的方式,第二支持样本为无标签的样本。
13.使用无标签的样本作为第二支持样本,可以增加样本的数量,以增强训练效果,提升训练得到的目标神经网络的性能;并且,可以减少人工标注的工作量。
14.作为一种实现的方式,基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果包括:获取查询样本中目标区域的特征,目标区域是指查询样本中可能包含物体图像的一个区域,目标区域的特征也可以采用特征向量表示;基于第二支持样本中物体的类别特征和目标区域的特征,且通过物体检测子网络对查询样本中的物体进行检测,以得到检测结果。
15.该实现方式提供了检测一种具体可行方案,即先获取取查询样本中目标区域的特征,然后利用取查询样本中目标区域的特征和第二支持样本中物体的类别特征,对查询样本中的物体进行检测。
16.作为一种实现的方式,目标神经网络还包括第二特征提取子网络、区域提取子网络和第三特征提取子网络,相应地,获取查询样本中目标区域的特征包括:通过第二特征提取子网络提取查询样本的特征图像,其中,特征图像(feature maps)主要包括图像的颜色特征、纹理特征、形状特征和空间关系特征,第二特征提取子网络提取的结构可以有多种;对查询样本进行第二变换,第二变换可以理解为不改变查询样本中物体类别和物体位置的变换,第二变换的种类有很多。
17.通过区域提取子网络从经过第二变换后的查询样本中提取目标区域,一个查询样本可以包含一个或多个物体,当查询样本包含多个物体时,可以从经过第二变换后的查询样本中提取多个目标区域;区域提取子网络的结构可以有多种;通过第三特征提取子网络提取特征图像中目标区域的特征,其中,第三特征提取子网络可以是roialign层,目标区域的特征也可以采用向量表示。
18.第二变换与第一变换类似,都是不改变图像中物体的类别特征的变换,所以可以认为在理想情况下,从经过第二变换的查询样本中提取的目标区域与从查询样本中提取的目标区域是基本相同的;若从经过第二变换的查询样本中提取的目标区域与从查询样本中提取的目标区域差异较大,则说明区域提取子网络的性能较差而导致目标区域提取地不够
精确,并且这会导致从查询样本的特征图像中提取的特征不准确,进而导致检测结果不准确。而在更新目标神经网络的参数的过程中,会更新区域提取子网络的参数,解决区域提取子网络提取的目标区域不准确而导致检测结果不准确的问题。
19.所以对查询样本进行第二变换,并从经过第二变换的查询样本中提取目标区域,再基于该目标区域提取从查询样本的特征图像中提取目标区域的特征,最后利用该目标区域的特征进行检测,相比于直接从查询样本中提取目标区域并提取目标区域的特征的方法,本申请实施例能够提升区域提取子网络的性能,使得区域提取子网络能够从经过第二变换的样本中准确提取出目标区域。
20.作为一种实现的方式,基于第二支持样本中物体的类别特征和目标区域的特征,且通过物体检测子网络对查询样本中的物体进行检测,以得到检测结果包括:通过融合子网络将目标区域的特征与第二支持样本中物体的类别特征融合,以得到融合特征,其中,融合子网络的结构可以有多种,融合的方法也可以有多种,融合特征可以体现目标区域的特征与第二支持样本中物体的类别特征之间的差异,以及目标区域的特征与第二支持样本中物体的类别特征之间的相似度;以融合特征为物体检测子网络的输入,获取物体检测子网络对查询样本中的物体的检测结果。
21.将目标区域的特征与第二支持样本中物体的类别特征融合,并将融合后的融合特征作为物体检测子网络的输入,可以实现对查询样本中物体的检测。
22.作为一种实现的方式,融合子网络属于目标神经网络。
23.由于融合子网络属于目标神经网络,所以在对目标神经网络优化的过程中,也需要对融合子网络进行融合,从而可以提升融合子网络的融合效果,使得融合特征更加准确,从而可以获取更准确的检测结果。
24.作为一种实现的方式,第一变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
25.颜色扭曲处理是指通过某种处理使得第一支持样本颜色扭曲;高斯噪声处理是指在第一支持样本上添加符合高斯分布的噪声;高斯模糊处理是指通过模糊技术对图像进行处理,使得图像的视觉效果就像是经过一个半透明屏幕在观察图像,从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积,由于正态分布又称为高斯分布,所以这项模糊技术就称为高斯模糊。
26.当第一变换是颜色扭曲处理、高斯噪声处理或高斯模糊处理中的一种时,实现了通过对第一支持样本进行改变以得到第二支持样本,从而可以增加支持样本的数量,且不改变第一支持样本中物体的类别特征,以避免变换后的第二支持样本与变换前的第一支持样本的差别过大,从而可以提高训练得到的目标神经网络的物体检测精度,提高训练得到的目标神经网络的鲁棒性。
27.作为一种实现的方式,第二变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
28.颜色扭曲处理是指通过某种处理使得第一支持样本颜色扭曲;高斯噪声处理是指在第一支持样本上添加符合高斯分布的噪声;高斯模糊处理是指通过模糊技术对图像进行处理,使得图像的视觉效果就像是经过一个半透明屏幕在观察图像,从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积,由于正态分布又称为高斯分布,所以这项
模糊技术就称为高斯模糊。
29.当第二变换是颜色扭曲处理、高斯噪声处理或高斯模糊处理中的一种时,不改变查询样本中物体的类别特征,以避免变换后的查询样本与变换前的查询样本的差别过大,影响对区域提取子网络的优化。
30.作为一种实现的方式,训练方法还包括:以第一支持样本中物体的类别特征为第一分类神经网络的输入,获取第一分类神经网络的输出;基于第一分类网路的输出以及第一支持样本的标签,获取第三损失函数;基于第三损失函数进行反向传播,可以更新第一特征提取子网络的参数。
31.将第一支持样本中物体的类别特征作为第一分类神经网络的输入,获取第一分类神经网络的输出,并根据第一分类神经网络的输出以及第一支持样本的标签构建第三损失函数,可以实现对第一特征提取子网络进行进一步优化。
32.作为一种实现的方式,训练方法还包括:以第二支持样本中物体的类别特征为第二分类神经网络的输入,获取第二分类神经网络的输出;基于第二分类网路的输出以及第二支持样本的标签,获取第四损失函数;基于第四损失函数进行反向传播,可以更新第一特征提取子网络的参数。
33.将第二支持样本中物体的类别特征作为第二分类神经网络的输入,获取第一分类神经网络的输出,并根据第二分类神经网络的输出以及第二支持样本的标签构建第四损失函数,可以实现对第一特征提取子网络进行进一步优化。
34.作为一种实现的方式,物体检测子网络包括定位子网络和/或分类子网络;定位子网络用于检测查询样本中的物体的位置;分类子网络用于检测查询样本中的物体的类别。
35.在该实现方式中,可以实现对定位子网络的训练,也可以实现对分类子网络的训练。
36.本申请实施例第二方面提供了一种物体检测方法,应用于采用本申请实施例第一方面中任意一项的训练方法得到的目标神经网络,目标神经网络包括第一特征提取子网络和物体检测子网络,物体检测方法包括:通过第一特征提取子网络提取多个支持样本中物体的类别特征;基于多个支持样本中物体的类别特征且通过物体检测子网络,对目标图像中的物体进行检测,以得到检测结果。
37.由于本申请实施例第一方面的训练方法使得目标神经网络具有较高的物体检测精度,所以采用本申请实施例第一方面的训练方法得到的目标神经网络对目标图像进行检测,能够较准确地检测中目标图像中物体的位置和物体的类别。
38.本申请实施例第三方面提供了一种神经网络的训练装置,应用于目标神经网络,目标神经网络包括第一特征提取子网络和物体检测子网络,训练装置包括:第一提取单元,用于通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,第二支持样本是对第一支持样本进行第一变换得到的;第一获取单元,用于获取第一损失函数,第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异;第一检测单元,用于基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;第二获取单元,用于基于检测结果和查询样本中的物体的标签获取第二损失函数;第一参数更新单元,用于基于第一损失函数和第二损失函数更新神经网络的参数。
39.作为一种实现的方式,第二支持样本为带标签的样本。
40.作为一种实现的方式,第二支持样本为无标签的样本。
41.作为一种实现的方式,检测单元用于:获取查询样本中目标区域的特征;基于第二支持样本中物体的类别特征和目标区域的特征,且通过物体检测子网络对查询样本中的物体进行检测,以得到检测结果。
42.作为一种实现的方式,目标神经网络还包括第二特征提取子网络、区域提取子网络和第三特征提取子网络;检测单元用于:通过第二特征提取子网络提取查询样本的特征图像;对查询样本进行第二变换;通过区域提取子网络从经过第二变换后的查询样本中提取目标区域;通过第三特征提取子网络提取特征图像中目标区域的特征。
43.作为一种实现的方式,第一检测单元用于通过融合子网络将目标区域的特征与第二支持样本中物体的类别特征融合,以得到融合特征;以融合特征为物体检测子网络的输入,获取物体检测子网络对查询样本中的物体的检测结果。
44.作为一种实现的方式,融合子网络属于目标神经网络。
45.作为一种实现的方式,第一变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
46.作为一种实现的方式,第二变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
47.作为一种实现的方式,训练装置还包括:第二参数更新单元,用于以第一支持样本中物体的类别特征为第一分类神经网络的输入,获取第一分类神经网络的输出;基于第一分类网路的输出以及第一支持样本的标签,获取第三损失函数;基于第三损失函数更新第一特征提取子网络的参数。
48.作为一种实现的方式,训练装置还包括:第三参数更新单元,用于以第二支持样本中物体的类别特征为第二分类神经网络的输入,获取第二分类神经网络的输出;基于第二分类网路的输出以及第二支持样本的标签,获取第四损失函数;基于第四损失函数更新第一特征提取子网络的参数。
49.作为一种实现的方式,物体检测子网络包括定位子网络和/或分类子网络;
50.定位子网络用于检测查询样本中的物体的位置;
51.分类子网络用于检测查询样本中的物体的类别。
52.本申请实施例第四方面提供了一种物体检测装置,应用于采用本申请实施例第一方面中任意一项的训练方法得到的目标神经网络,目标神经网络包括第一特征提取子网络和物体检测子网络,物体检测装置包括:
53.第三提取单元,用于通过第一特征提取子网络提取多个支持样本中物体的类别特征;
54.第二检测单元,用于基于多个支持样本中物体的类别特征且通过物体检测子网络,对目标图像中的物体进行检测,以得到检测结果。
55.其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例第二方面的描述。
56.本申请实施例第五方面提供了一种训练设备,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取计算机可读指令,
以使训练设备实现如第一方面任一实现方式所述的方法。
57.本申请实施例第六方面提供了一种计算机设备,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取计算机可读指令,以使训练设备实现如第二方面任一实现方式所述的方法。
58.本申请实施例第七方面提供了一种计算机可读存储介质,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如第一方面或第二方面任一实现方式所述的方法。
59.本申请实施例第八方面提供了一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述第一方面或第二方面任意可能的实现方式中的方法。
60.可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
61.在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
62.本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
63.本申请实施例第九方面提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面中或第二方面中任意一种实现方式所述的方法。
附图说明
64.图1为人工智能主体框架的一种结构示意图;
65.图2为本申请实施例中图像的一个实施例示意图;
66.图3为工业视觉场景中设备的图像的实施例示意图;
67.图4为铁路故障检测场景下火车的图像的实施例示意图;
68.图5为电网故障检测场景下线路的图像的实施例示意图;
69.图6为本申请实施例的训练方法的训练系统的结构示意图;
70.图7为小样本学习系统的架构示意图;
71.图8为本申请实施例提供了一种神经网络的训练方法的一个实施例的示意图;
72.图9为本申请实施例中获取检测结果的流程示意图;
73.图10为本申请实施例目标区域的特征的流程示意图;
74.图11为本申请实施例中对目标神经网络进行训练的实施例示意图;
75.图12为本申请实施例提供了一种神经网络的训练装置的一个实施例示意图;
76.图13为本申请实施例中训练设备的实施例示意图。
具体实施方式
77.本申请实施例提供了一种神经网络的训练方法、物体检测方法、装置及设备,该训
练方法通过第一损失函数控制变换前的第一支持样本与变换后的第二支持样本间特征的差异,以避免变换后的第二支持样本与变换前的第一支持样本的差别过大,从而可以提高训练得到的目标神经网络的物体检测精度,提高训练得到的目标神经网络的鲁棒性。
78.本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
79.下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
80.首先,对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
81.其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0082]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0083]
(1)基础设施:
[0084]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片提供,作为示例,该智能芯片包括中央处理器(central processing unit,cpu)、神经网络处理器(neural
‑
networkprocessing unit,npu)、图形处理器(graphics processing unit,gpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程逻辑门阵列(fieldprogrammable gate array,fpga)等硬件加速芯片;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0085]
(2)数据
[0086]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0087]
(3)数据处理
[0088]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[0089]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0090]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0091]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0092]
(4)通用能力
[0093]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[0094]
(5)智能产品及行业应用
[0095]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,智慧城市,智能终端等。
[0096]
应理解,物体检测是计算机视觉的重要基本任务之一,具体是指用框去标出图像中物体的位置,并给出物体的类别;物体检测在自动驾驶、工业视觉等领域都有重要应用。
[0097]
目前,物体检测通常通过神经网络实现,而神经网络的训练往往需要大规模的带标签的样本。其中,标签是我们要预测的事物,标签可以是小麦未来的价格、图像中显示的动物品种、音频剪辑的含义或任何事物。
[0098]
在本申请实施例中,由于物体检测是指用框去标出图像中物体的位置,并给出物体的类别,所以在本申请实施例中,标签是指图像中物体的位置和物体的类别。例如,对于图2所示的图像,标签可以为图2中矩形框所示的位置以及该位置中物体的类别“篮球”。
[0099]
然而,样本的标签通常是人工标注的,所以获取大规模的带标签的样本的代价较高。并且,对于某些类别的样本,是无法大量获取的。下面通过具体的应用场景对无法大量获取的样本进行说明。
[0100]
第一场景。在医学诊断场景中,可以通过神经网络对患者局部的图像进行检测,以确定患病的部位和患病的类别,但在对神经网络进行训练的过程中,训练所需的医学样本通常需要专业医生标注且涉及患者的隐私,所以难以获取大规模的带标签的医学样本。
[0101]
第二场景。在工业视觉场景中,如图3所示,远程维护人员需要通过图像对设备进行检测,以准确检测出设备的关键模块的位置,并确定该关键模块的故障。然而,新出厂的设备通常只有少量实验室环境下的标注的样本,因此也难以获取大规模的带标签的实际设备样本。
[0102]
第三场景。如图4和图5所示,在铁路故障检测(包括货车、客车、动车等的故障检测)和电网故障检测(例如线路故障检测)等大颗粒故障检测场景中,由于故障发生几率少且需要人工标注,收集带标签的样本较困难;而且外部环境变化导致成像变化大,故障类别差别明显;因此,也难以获取大规模的带标签的故障样本。
[0103]
由此可见,对于部分类别的物体来说,无法获取大规模的带标签的样本,所以仅能通过小样本学习方法对其进行检测。其中,小样本学习方法是指利用少量带标签的样本对神经网络进行训练,使得训练后的神经网络可以对未测试过的图像完成物体检测任务。
[0104]
尽管小样本学习方法能够利用少量带标签的样本对神经网络进行训练,但是样本数量的不足仍然会影响得到深度神经网络的物体检测精度。为此,通常采用样本扩增算法获取部分新增样本,然后基于新增样本和原始样本,且仍采用小样本学习方法对神经网络进行训练。
[0105]
由于新增样本通常是在原始样本的基础上进行变换得到的,新增样本的标签与原始样本的标签仍然相同,所以若新增样本和原始样本的差别较大,则会导致神经网络将与原始样本差别较大的新增样本也识别为原始样本的标签,从而降低了训练得到的深度神经网络的物体检测精度。
[0106]
为此,本申请实施例提供了一种神经网络的训练方法,该训练方法通过损失函数控制变换后的新增样本与变换前的原始样本之间特征的差别,从而避免换后的第二支持样本的特征与变换前的第一支持样本的特征差别过大,导致训练得到的深度神经网络的物体检测精度较低。
[0107]
为了便于理解,下面结合图6对应用本申请实施例的训练方法的训练系统进行介绍。
[0108]
请参阅图6,图6为本申请实施例提供的任务处理系统的一种系统架构图,在图6中,任务处理系统100包括执行设备110、训练设备120、数据库130、客户设备140、数据存储系统150和数据采集设备160,执行设备110中包括计算模块111。其中,数据采集设备160用于获取用户的数据(即训练集),并将训练集存入数据库130中,训练设备120基于数据库130中的维护的训练集对目标模型/规则101进行训练,训练得到的训练后的神经网络再在执行设备110上进行运用。执行设备110可以调用数据存储系统150中的数据、代码等,也可以将数据、指令等存入数据存储系统150中。数据存储系统150可以置于执行设备110中,也可以为数据存储系统150相对执行设备110是外部存储器。
[0109]
经由训练设备120训练的目标模型/规则101后得到的训练后的神经网络可以应用于不同的系统或设备(即执行设备110)中,具体可以是云服务器或终端设备,例如,手机、平板、笔记本电脑、监控系统(如,摄像头)、安防系统等等。在图6中,执行设备110配置有i/o接口112,与外部设备进行数据交互,“用户”可以通过客户设备140向i/o接口112输入数据。如,客户设备140可以是监控系统的摄像设备,通过该摄像设备拍摄的目标图像作为输入数据输入至执行设备110的计算模块111,由计算模块111对输入的该目标图像进行检测后得出检测结果,再将该检测结果输出至摄像设备或直接在执行设备110的显示界面(若有)进行显示;此外,在本申请的一些实施方式中,客户设备140也可以集成在执行设备110中,如,当执行设备110为手机时,则可以直接通过该手机获取到目标任务(如,可以通过该手机的摄像头拍摄到目标图像,或,可以通过该手机的摄像头拍摄到目标视频等,此处对目标任务不做限定)或者接收其他设备(如,另一个手机)发送的目标任务,再由该手机内的计算模块111对该目标任务进行检测后得出检测结果,并直接将该检测结果呈现在手机的显示界面。此处对执行设备110与客户设备140的产品形态不做限定。
[0110]
值得注意的,图6仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图6中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中;在图6中,客户设备140相对执行设备110是外部设备,在其他情况下,客户设备140的也可以集成在执行设备110中。
[0111]
下面对本申请实施例提供的神经网络的训练方法进行介绍,由于本申请实施例提供的神经网络的训练方法属于小样本学习方法,所以在介绍本申请实施例提供的神经网络的训练方法之前,先对小样本学习系统进行介绍。
[0112]
如图7所示,小样本学习系统通常包含两个分支,一个是支持分支,另一个是查询分支。支持分支包括特征提取模块一,查询分支包括特征提取模块二、特征融合模块和物体检测模块。
[0113]
在训练过程中,利用特征提取模块一提取支持样本的特征,利用特征提取模块提取查询样本的特征,然后利用特征融合模块将支持样本的特征和提取查询样本的特征融合,并将融合后的特征输入到物体检测模块中,从而得到检测结果;根据检测结果建立相应的损失函数,并基于损失函数对上述所有的模块的参数进行更新。
[0114]
在物体检测过程中,会向特征提取模块一输入支持样本,向特征提取模块二输入待检测的样本,利用特征提取模块一提取支持样本的特征,利用特征提取模块提取待检测的样本的特征;然后利用特征融合模块将支持样本的特征和待检测的样本的特征融合,并将融合后的特征输入到物体检测模块中,从而得到检测结果。
[0115]
在训练过程中和物体检测过程中,支持样本主要是参照的作用;具体地,在训练过程中,基于支持样本和查询样本间特征的差异、相似性对查询样本进行检测,在物体检测过程中,基于支持样本和待检测的样本间特征的差异、相似性对待检测的样本进行检测。
[0116]
上文提及的特征提取模块(包括特征提取模块一和特征提取模块二)也可以称为类别特征提取器。
[0117]
基于上述小样本学习系统,下面结合图8对本申请实施例提供的神经网络的训练方法进行介绍。
[0118]
如图8所示,本申请实施例提供了一种神经网络的训练方法的一个实施例,应用于目标神经网络,该目标神经网络包括第一特征提取子网络和物体检测子网络,该第一特征提取子网络的输出用于计算物体检测子网络的输入。
[0119]
其中,物体检测子网络包括定位子网络和/或分类子网络,定位子网络用于检测查询样本中的物体的位置;分类子网络用于检测查询样本中的物体的类别。
[0120]
本申请实施例对第一特征提取子网络的结构和物体检测子网络的结构不做具体限定,具体可以根据实际需要进行调整。
[0121]
基于上述目标神经网络,该训练方法可以包括多次迭代训练,每次迭代训练的大致过程如下。
[0122]
先从原始样本集中随机选取包含n
c
个类别的物体的多个样本,组成训练集。其中,原始样本集中包含多个样本,这多个样本包含多个类别的物体,这多个类别又可以分别基础类别和新类别。对于基础类别,原始样本集中包含充足的带标签的样本;对于新类别,原始样本集中包含数量较少的带标签的样本,一般情况下,对于每个新类别,带标签的样本的数量小于或等于10个。
[0123]
对应n个类别中的每个类别,从训练集中随机抽取一个样本,组成支持集s
i
表示第i个类别的物体对应的样本,m
i
表示第i个类别的物体对应的标签;其中,支持集中的样本又可以称为支持样本。
[0124]
再从训练集中剩余的样本中随机抽取一些样本组成测试集q;其中,测试集中的样本又可以称为测试样本或查询样本。
[0125]
最后将支持集中的支持样本输入到支持分支,将测试集中的查询样本输入到查询
分支,以完成一次迭代训练。
[0126]
基于上述对迭代训练过程的说明,下面以一次迭代训练为例对本申请实施例提供的训练方法进行介绍,其中,下文中的样本是指图像。
[0127]
具体地,本申请实施例提供的训练方法包括:
[0128]
操作201,通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,第二支持样本是对第一支持样本进行第一变换得到的。
[0129]
其中,第一特征提取子网络的结构可以多种,本申请实施例对此不做具体限定。
[0130]
第一支持样本可以是前述训练集中的一个样本,第一支持样本的数量可以为一个,也可以为多个,本申请实施例对此不做具体限定。
[0131]
第二支持样本可以理解为对第一支持样本进行第一变换,得到的新增样本,目的在于增加部分类别的物体对应的样本的数量,以弥补部分类别的物体对应的样本的数量不足的缺陷。
[0132]
由于第一变换是为了增加部分类别的物体对应的样本的数量,所以第一变换可以理解为不改变第一支持样本中物体类别和物体位置的变换。
[0133]
作为一种实现方式,第一变换可以采用非参数数据增强技术实现,非参数数据增强技术是指不需要优化参数的数据扩增方法;若采用非参数数据增强技术实现第一变换,则第一变换可以包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
[0134]
颜色扭曲处理是指通过某种处理使得第一支持样本颜色扭曲;高斯噪声处理是指在第一支持样本上添加符合高斯分布的噪声;高斯模糊处理是指通过模糊技术对图像进行处理,使得图像的视觉效果就像是经过一个半透明屏幕在观察图像,从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积,由于正态分布又称为高斯分布,所以这项模糊技术就称为高斯模糊。
[0135]
由于第二支持样本是对第一支持样本进行变换得到的,所以第二支持样本也可以为一个或多个;当第一支持样本和第二支持样本的数量均为多个时,多个第一支持样本和多个第二支持样本一一对应。
[0136]
基于前述说明可知,在训练过程中,第二支持样本作为支持样本,主要是参照的作用,可以不使用第二支持样本的标签;因此,第二支持样本可以为带标签的样本,第二支持样本也可以是无标签的样本。
[0137]
尤其是当第二支持样本包含的物体的类别属于新类时,即当第二支持样本包含的物体的类别所对应的样本的数量有限时,使用无标签的样本作为第一支持样本,以得到无标签的第二支持样本,可以增加样本的数量,以增强训练效果,提升训练得到的目标神经网络的性能;并且,可以对原始样本集中所有的样本进行人工标注,也可以对原始样本集中部分样本进行人工标注,使得训练过程更加灵活。
[0138]
下面对第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征的提取过程进行简单的说明。
[0139]
以第一支持样本s
i
为例,可以将第一支持样本s
i
和边界框输入第一特征提取子网络,边界框指示第一支持样本中包含物体的某个区域,第一特征提取子网络根据边界框的指示可以提取第一支持样本中物体的类别特征g
i
。
[0140]
第二支持样本中物体的类别特征的提取过程与第一支持样本中物体的类别特征
的提取过程类似,这里令第二支持样本中物体的类别特征为
[0141]
在本申请实施例中,第一支持样本中物体的类别特征g
i
和第二支持样本中物体的类别特征为可以采用特征向量表示。
[0142]
操作202,获取第一损失函数,第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异。
[0143]
在本申请实施例中,第一损失函数作为第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征的约束,用于约束第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征的差异。
[0144]
其中,第一损失函数的形式有多种,本申请实施例对此不做具体限定。例如,可以将公式作为第一损失函数的表达式,l
c
表示第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异,表示度量第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异的函数。
[0145]
操作203,基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果。
[0146]
可以理解的是,基于第二支持样本中物体的类别特征和查询样本计算物体检测子网络的输入,然后获取物体检测子网络输出,该输出则为检测结果;在检测过程中,第二支持样本中物体的类别特征主要起到参照的作用。
[0147]
基于前述说明可知,物体检测子网络可以是定位子网络,也可以是分类子网络;当物体检测子网络为定位子网络时,检测结果为查询样本中的物体的位置;当物体检测子网络为分类子网络时,检测结果为查询样本中的物体的类别。
[0148]
下面对上述检测过程进行具体说明。
[0149]
作为一种实现方式,如图9所示,操作203包括:
[0150]
操作301,获取查询样本中目标区域的特征。
[0151]
其中,目标区域是指查询样本中可能包含物体图像的一个区域;以图2为例,目标区域可以是图2中矩形框所在的区域,即包含篮球图像的一个区域,目标区域也可以是图2中包含篮筐图像的一个区域。
[0152]
目标区域的特征也可以采用特征向量表示。
[0153]
获取查询样本中目标区域的特征的方法有多种,本申请实施例对此不做具体限定。
[0154]
作为一种实现的方式,神经网络还包括第二特征提取子网络、区域提取子网络和第三特征提取子网络。
[0155]
其中,第二特征提取子网络、区域提取子网络和第三特征提取子网络的结构均可以多种,本申请实施例对此不做具体限定。
[0156]
具体地,如图10所示,操作301包括:
[0157]
操作401,通过第二特征提取子网络提取查询样本的特征图像。
[0158]
其中,特征图像(feature maps)主要包括图像的颜色特征、纹理特征、形状特征和空间关系特征。
[0159]
操作401,对查询样本进行第二变换。
[0160]
示例性地,第二变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
[0161]
由于第二变换与第一变换相同,故可参照前文对第一变换的相关说明对第二变换进行理解。
[0162]
操作403,通过区域提取子网络从经过第二变换后的查询样本中提取目标区域。
[0163]
可以理解的是,一个查询样本可以包含一个或多个物体,当查询样本包含多个物体时,可以从经过第二变换后的查询样本中提取多个目标区域。
[0164]
因此,在本申请实施例中,目标区域的数量可以为一个,也可以为多个。
[0165]
具体地,可以将经过第二变换后的查询样本输入区域提取网络(region proposal network,rpn)中,以提取目标区域,本申请实施例将该区域提取网络rpn称为区域提取子网络。
[0166]
由于提取目标区域为较成熟的技术,所以本申请实施例对此不做详述。
[0167]
操作404,通过第三特征提取子网络提取特征图像中目标区域的特征。
[0168]
第三特征提取子网络可以是roialign层;当第三特征提取子网络为roialign层时,提取目标区域的特征的过程包括:将目标区域r和特征图像输入roialign层,可以得到以目标区域r为条件的roi特征
[0169]
当目标区域的数量为多个时,roi特征可以表示为n
r
表示目标区域的数量,表示第j个目标区域提取的特征。
[0170]
第二变换与第一变换类似,都是不改变图像中物体的类别和物体的位置的变换,所以可以认为在理想情况下,从经过第二变换的查询样本中提取的目标区域与从查询样本中提取的目标区域是基本相同的;若从经过第二变换的查询样本中提取的目标区域与从查询样本中提取的目标区域差异较大,则说明区域提取子网络的性能较差而导致目标区域提取地不够精确,并且这会导致从查询样本的特征图像中提取的特征不准确,进而导致检测结果不准确。而在更新目标神经网络的参数的过程中,会更新区域提取子网络的参数,解决区域提取子网络提取的目标区域不准确而导致检测结果不准确的问题。
[0171]
因此在本申请实施例中,对查询样本进行第二变换,并从经过第二变换的查询样本中提取目标区域,再基于该目标区域提取从查询样本的特征图像中提取目标区域的特征,最后利用该目标区域的特征进行检测,相比于直接从查询样本中提取目标区域并提取目标区域的特征的方法,本申请实施例能够提升区域提取子网络的性能,使得区域提取子网络能够从经过第二变换的样本中准确提取出目标区域。
[0172]
操作302,基于第二支持样本中物体的类别特征和目标区域的特征,且通过物体检测子网络对查询样本中的物体进行检测,以得到检测结果。
[0173]
将第二支持样本中物体的类别特征作为目标区域的特征对照,且通过物体检测子网络即可得到对查询样本的检测结果。
[0174]
下面对上述检测过程进行具体说明。
[0175]
作为一种实现的方式,操作302包括:
[0176]
通过融合子网络将目标区域的特征与第二支持样本中物体的类别特征融合,以得到融合特征;
[0177]
以融合特征为物体检测子网络的输入,获取物体检测子网络对查询样本中的物体
的检测结果。
[0178]
需要说明的是,融合子网络的结构可以有多种,本申请实施例对此不做具体限定。
[0179]
可以采用多种方法将目标区域的特征与第二支持样本中物体的类别特征融合,本申请实施例对此也不做具体限定。
[0180]
例如,可以采用公式将目标区域的特征与第二支持样本中物体的类别特征融合,其中,表示融合目标区域的特征r
j
与第二支持样本中物体的类别特征的函数,表示按通道连接,表示按通道乘法运算符,
‑
表示按照通道减法,表示目标区域的特征r
j
与第二支持样本中物体的类别特征间的差别,表示目标区域的特征r
j
与第二支持样本中物体的类别特征间的相似度。
[0181]
作为一种实现的方式,融合子网络也可以作为被优化的网络,相应地,融合子网络属于目标神经网络。
[0182]
若融合子网络不需要被优化,那么融合子网络也可以不属于目标神经网络。
[0183]
操作204,基于检测结果和查询样本中的物体的标签获取第二损失函数。
[0184]
基于检测结果和标签获取第二损失函数的方法为较成熟的技术,故在此不做详述。
[0185]
基于前述说明可知,检测结果包含查询样本中的物体的位置和/或查询样本中的物体的类别;当检测结果包含查询样本中的物体的位置时,对应地,可以获取一个损失函数,当检测结果包含查询样本中的物体的类别时,对应地,也可以获取一个损失函数。
[0186]
因此,第二损失函数的数量可以为一个,也可以为两个。
[0187]
操作205,基于第一损失函数和第二损失函数更新目标神经网络的参数。
[0188]
需要说明的是,基于第一损失函数可以对第一特征提取子网络进行反向传播,以对第一特征提取子网络的参数进行更新;基于第二损失函数可以对整个目标神经网络进行反向传播,以对整个目标神经网络的参数进行更新。
[0189]
由于基于损失函数更新神经网络的参数属于较成熟的技术,故在此不做详述。
[0190]
在本申请实施例中,通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,并基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;然后基于检测结果和查询样本中的物体的标签获取第二损失函数,最后基于第一损失函数和第二损失函数更新神经网络的参数,由于第二支持样本是对第一支持样本进行第一变换得到的,所以实现了通过变换后的第二支持样本对目标神经网络进行训练;对第一支持样本进行第一变换得到第二支持样本,增加了样本的数量,弥补了部分类别的物体对应的样本数量较少的缺陷,有利于对目标神经网络的训练。
[0191]
并且,本申请实施例还通过第一特征提取子网络提取第一支持样本中物体的类别特征,并获取了第一损失函数,该第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异,所以通过第一损失函数更新目标神经网络的参数,能够控制控制变换前的第一支持样本与变换后的第二支持样本间特征的差异,以避免变换后的第二支持样本与变换前的第一支持样本的差别过大,从而可以提高训练得到的目标神经网络的物体检测精度,提高训练得到的深度神经网络的鲁棒性。
[0192]
基于操作201的相关说明可知,第一支持样本和第二支持样本均可以是无标签的样本,也可以是有标签的样本。
[0193]
当第一支持样本为有标签的样本时,可以通过构建损失函数的方法对第一特征提取子网络进行进一步优化。
[0194]
具体地,作为一种实现的方式,本申请实施例提供的训练方法还包括:
[0195]
操作206,以第一支持样本中物体的类别特征为第一分类神经网络的输入,获取第一分类神经网络的输出。
[0196]
可以理解的是,在该实施例中,将第一支持样本中物体的类别特征输入到第一分类神经网络中,以识别第一支持样本中物体的类别;第一分类神经网络的输出即为第一支持样本中物体的类别的识别结果。
[0197]
操作207,基于第一分类网路的输出以及第一支持样本的标签,获取第三损失函数。
[0198]
由于获取第三损失函数为较成熟的技术,故在此不做具体详述。
[0199]
操作208,基于第三损失函数更新第一特征提取子网络的参数。
[0200]
可以理解的是,基于第三损失函数可以对第一特征提取子网络进行反向传播,以更新第一特征提取子网络的参数,其中,反向传播为较成熟的技术,故在此不做具体详述。
[0201]
同样地,当第二支持样本为有标签的样本时,可以通过构建损失函数的方法对第一特征提取子网络进行进一步优化。
[0202]
具体地,作为一种实现的方式,本申请实施例提供的训练方法还包括:
[0203]
操作209,以第二支持样本中物体的类别特征为第二分类神经网络的输入,获取第二分类神经网络的输出;
[0204]
操作210,基于第二分类网路的输出以及第二支持样本的标签,获取第四损失函数;
[0205]
操作211,基于第四损失函数更新第一特征提取子网络的参数。
[0206]
操作209至操作211与操作206至操作208类似,具体可参照操作206至操作208的相关说明,对操作209至操作211进行理解。
[0207]
基于上述说明,采用本申请实施例提供的训练方法对目标神经网络进行训练的过程可以概括如下。
[0208]
具体地,如图11所示,对包含客车的第一支持样本进行第一变换,得到包含客车的第二支持样本;然后将包含客车的第一支持样本和包含客车的第二支持样本分别输入第一特征提取子网络,以提取第一支持样本中客车的特征和第二支持样本中客车的特征。
[0209]
基于第一支持样本中客车的特征和第二支持样本中客车的特征可以建立第一损失函数loss1;将第一支持样本中客车的特征输入第一分类神经网络,并利用第一支持样本的标签,则可以得到一个第三损失函数loss3,同样地,将第二支持样本中客车的特征输入第二分类神经网络,并利用第一支持样本的标签,也可以得到一个第四损失函数loss4。
[0210]
其中,第一支持样本的标签除了包含“客车”这一类别外,还包含图11所示的标签,在图11所示的标签中,白色区域是指人工标注的包含客车的边界框。
[0211]
对包含多辆客车的查询样本进行第二变换,然后将包含多辆客车的查询样本输入第二特征提取子网络,以提取到特征图像;将经过第二变换的包含多辆客车的查询样本输
入到区域提取子网络,以提取到目标区域;再将特征图像和目标区域输入到roialign层,以提取到查询样本的目标区域的特征;此后,将第二支持样本中客车的特征与目标区域的特征输入到融合子网络,以得到融合特征;将融合特征输入到物体检测子网络以实现对查询样本的检测,并根据检测结果获取第二损失函数loss2。
[0212]
最终,基于第一损失函数loss1、第二损失函数loss2、第三损失函数loss3和第三损失函数loss4对图10所示的整个目标神经网络进行参数更新。
[0213]
基于采用本申请实施例提供的训练方法得到的目标神经网络,本申请实施例还提供了一种物体检测方法的一个实施例,在该实施例中,目标神经网络包括第一特征提取子网络和物体检测子网络;相应地,物体检测方法包括:
[0214]
通过第一特征提取子网络提取多个支持样本中物体的类别特征;
[0215]
基于多个支持样本中物体的类别特征且通过物体检测子网络,对目标图像中的物体进行检测,以得到检测结果。
[0216]
由于本申请实施例提供的训练方法使得目标神经网络具有较高的物体检测精度,所以采用本申请实施例提供的训练方法得到的目标神经网络对目标图像进行检测,能够较准确地检测中目标图像中物体的位置和物体的类别。
[0217]
上述检测过程可以具体包括:
[0218]
通过第二特征提取子网络提取目标图像的特征图像;
[0219]
通过区域提取子网络从目标图像中提取目标区域;
[0220]
通过第三特征提取子网络提取特征图像中目标区域的特征;
[0221]
对于每个支持样本中物体的类别特征,通过融合子网络将目标区域的特征与物体的类别特征融合,以得到融合特征,对应多个支持样本则得到多个融合特征;
[0222]
将多个融合特征输入到物体检测子网络,以实现对目标图像的检测,并得到检测结果。
[0223]
由于上述检测过程与训练过程中的检测过程类似,因此可参照前述训练方法中的相关说明进行理解,本申请实施例对此不做具体限定。
[0224]
本申请实施例还提供了一种神经网络的训练装置,应用于目标神经网络,目标神经网络包括第一特征提取子网络和物体检测子网络,如图12所示,训练装置包括:第一提取单元501,用于通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,第二支持样本是对第一支持样本进行第一变换得到的;第一获取单元502,用于获取第一损失函数,第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间特征的差异;第一检测单元503,用于基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;第二获取单元504,用于基于检测结果和查询样本中的物体的标签获取第二损失函数;第一参数更新单元505,用于基于第一损失函数和第二损失函数更新神经网络的参数。
[0225]
作为一种实现的方式,第二支持样本为带标签的样本。
[0226]
作为一种实现的方式,第二支持样本为无标签的样本。
[0227]
作为一种实现的方式,检测单元用于:获取查询样本中目标区域的特征;基于第二支持样本中物体的类别特征和目标区域的特征,且通过物体检测子网络对查询样本中的物
体进行检测,以得到检测结果。
[0228]
作为一种实现的方式,目标神经网络还包括第二特征提取子网络、区域提取子网络和第三特征提取子网络;检测单元用于:通过第二特征提取子网络提取查询样本的特征图像;对查询样本进行第二变换;通过区域提取子网络从经过第二变换后的查询样本中提取目标区域;通过第三特征提取子网络提取特征图像中目标区域的特征。
[0229]
作为一种实现的方式,第一检测单元503用于通过融合子网络将目标区域的特征与第二支持样本中物体的类别特征融合,以得到融合特征;以融合特征为物体检测子网络的输入,获取物体检测子网络对查询样本中的物体的检测结果。
[0230]
作为一种实现的方式,融合子网络属于目标神经网络。
[0231]
作为一种实现的方式,第一变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
[0232]
作为一种实现的方式,第二变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。
[0233]
作为一种实现的方式,训练装置还包括:第二参数更新单元505,用于以第一支持样本中物体的类别特征为第一分类神经网络的输入,获取第一分类神经网络的输出;基于第一分类网路的输出以及第一支持样本的标签,获取第三损失函数;基于第三损失函数更新第一特征提取子网络的参数。
[0234]
作为一种实现的方式,训练装置还包括:第三参数更新单元506,用于以第二支持样本中物体的类别特征为第二分类神经网络的输入,获取第二分类神经网络的输出;基于第二分类网路的输出以及第二支持样本的标签,获取第四损失函数;基于第四损失函数更新第一特征提取子网络的参数。
[0235]
作为一种实现的方式,物体检测子网络包括定位子网络和/或分类子网络;
[0236]
定位子网络用于检测查询样本中的物体的位置;
[0237]
分类子网络用于检测查询样本中的物体的类别。
[0238]
本申请实施例还提供了一种物体检测装置,应用于采用本申请实施例第一方面中任意一项的训练方法得到的目标神经网络,目标神经网络包括第一特征提取子网络和物体检测子网络,物体检测装置包括:
[0239]
第三提取单元,用于通过第一特征提取子网络提取多个支持样本中物体的类别特征;
[0240]
第二检测单元,用于基于多个支持样本中物体的类别特征且通过物体检测子网络,对目标图像中的物体进行检测,以得到检测结果。
[0241]
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例第二方面的描述。
[0242]
本申请实施例还提供了一种训练设备的实施例,该训练设备可以是服务器,请参阅图13,图13是本申请实施例提供的训练设备一种结构示意图,训练设备1800上可以部署有图11或图12对应实施例中所描述的神经网络的训练装置,用于实现图11或图12对应实施例中神经网络的训练装置的功能,具体的,训练设备1800由一个或多个服务器实现,训练设备1800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1822(例如,一个或一个以上处理器)和存储器1832,一
个或一个以上存储应用程序1842或数据1844的存储介质1830(例如一个或一个以上海量存储设备)。其中,存储器1832和存储介质1830可以是短暂存储或持久存储。存储在存储介质1830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1822可以设置为与存储介质1830通信,在训练设备1800上执行存储介质1830中的一系列指令操作。
[0243]
训练设备1800还可以包括一个或一个以上电源1826,一个或一个以上有线或无线网络接口1850,一个或一个以上输入输出接口1858,和/或,一个或一个以上操作系统1841,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0244]
本申请实施例中,中央处理器1822,用于执行图12对应实施例中的神经网络的训练装置执行的神经网络的训练方法。具体的,中央处理器1822,可以用于:
[0245]
通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,第二支持样本是对第一支持样本进行第一变换得到的;
[0246]
获取第一损失函数,第一损失函数用于计算第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征间的差异;
[0247]
基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;
[0248]
基于检测结果和查询样本中的物体的标签获取第二损失函数;
[0249]
基于第一损失函数和第二损失函数更新目标神经网络的参数。
[0250]
本申请实施例还提供一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行前述各实施例的方法。
[0251]
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
[0252]
在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
[0253]
本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
[0254]
本申请实施例还提供了一种计算机存储介质,该计算机存储介质用于储存为上述计算机设备所用的计算机软件指令,其包括用于执行为计算机设备所设计的程序。
[0255]
该计算机设备可以如前述图12所描述的神经网络的训练装置。
[0256]
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现前述各个实施例所示的方法中的流程。
[0257]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0258]
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0259]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0260]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0261]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
技术特征:
1.一种神经网络的训练方法,其特征在于,应用于目标神经网络,所述目标神经网络包括第一特征提取子网络和物体检测子网络,所述训练方法包括:通过所述第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,所述第二支持样本是对所述第一支持样本进行第一变换得到的;获取第一损失函数,所述第一损失函数用于计算所述第一支持样本中物体的类别特征以及所述第二支持样本中物体的类别特征间的差异;基于所述第二支持样本中物体的类别特征且通过所述物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;基于所述检测结果和所述查询样本中的物体的标签获取第二损失函数;基于所述第一损失函数和所述第二损失函数更新所述目标神经网络的参数。2.根据权利要求1所述的训练方法,其特征在于,所述第二支持样本为带标签的样本。3.根据权利要求1所述的训练方法,其特征在于,所述第二支持样本为无标签的样本。4.根据权利要求1至3中任意一项所述的训练方法,其特征在于,所述基于所述第二支持样本中物体的类别特征且通过所述物体检测子网络,对查询样本中的物体进行检测,以得到检测结果包括:获取查询样本中目标区域的特征;基于所述第二支持样本中物体的类别特征和所述目标区域的特征,且通过所述物体检测子网络对所述查询样本中的物体进行检测,以得到检测结果。5.根据权利要求4所述的训练方法,其特征在于,所述目标神经网络还包括第二特征提取子网络、区域提取子网络和第三特征提取子网络;所述获取查询样本中目标区域的特征包括:通过所述第二特征提取子网络提取查询样本的特征图像;对所述查询样本进行第二变换;通过所述区域提取子网络从经过所述第二变换后的查询样本中提取目标区域;通过所述第三特征提取子网络提取所述特征图像中所述目标区域的特征。6.根据权利要求4或5所述的训练方法,其特征在于,所述基于所述第二支持样本中物体的类别特征和所述目标区域的特征,且通过所述物体检测子网络对所述查询样本中的物体进行检测,以得到检测结果包括:通过融合子网络将所述目标区域的特征与所述第二支持样本中物体的类别特征融合,以得到融合特征;以所述融合特征为所述物体检测子网络的输入,获取所述物体检测子网络对所述查询样本中的物体的检测结果。7.根据权利要求6所述的训练方法,其特征在于,所述融合子网络属于所述目标神经网络。8.根据权利要求1至7中任意一项所述的训练方法,其特征在于,所述第一变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。9.根据权利要求1至8中任意一项所述的训练方法,其特征在于,所述第二变换包括颜色扭曲处理、高斯噪声处理或高斯模糊处理。10.根据权利要求1至9中任意一项所述的训练方法,其特征在于,所述训练方法还包
括:以所述第一支持样本中物体的类别特征为第一分类神经网络的输入,获取所述第一分类神经网络的输出;基于所述第一分类网路的输出以及所述第一支持样本的标签,获取第三损失函数;基于所述第三损失函数更新所述第一特征提取子网络的参数。11.根据权利要求1至10中任意一项所述的训练方法,其特征在于,所述训练方法还包括:以所述第二支持样本中物体的类别特征为第二分类神经网络的输入,获取所述第二分类神经网络的输出;基于所述第二分类网路的输出以及所述第二支持样本的标签,获取第四损失函数;基于所述第四损失函数更新所述第一特征提取子网络的参数。12.根据权利要求1至11中任意一项所述的训练方法,其特征在于,所述物体检测子网络包括定位子网络和/或分类子网络;所述定位子网络用于检测所述查询样本中的物体的位置;所述分类子网络用于检测所述查询样本中的物体的类别。13.一种物体检测方法,其特征在于,应用于采用权利要求1至12中任意一项所述的训练方法得到的目标神经网络,所述目标神经网络包括第一特征提取子网络和物体检测子网络,所述物体检测方法包括:通过所述第一特征提取子网络提取多个支持样本中物体的类别特征;基于所述多个支持样本中物体的类别特征且通过所述物体检测子网络,对目标图像中的物体进行检测,以得到检测结果。14.一种神经网络的训练装置,其特征在于,应用于目标神经网络,所述目标神经网络包括第一特征提取子网络和物体检测子网络,所述训练装置包括:第一提取单元,用于通过所述第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,所述第二支持样本是对所述第一支持样本进行第一变换得到的;第一获取单元,用于获取第一损失函数,所述第一损失函数用于计算所述第一支持样本中物体的类别特征以及所述第二支持样本中物体的类别特征间的差异;第一检测单元,用于基于所述第二支持样本中物体的类别特征且通过所述物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;第二获取单元,用于基于所述检测结果和所述查询样本中的物体的标签获取第二损失函数;第一参数更新单元,用于基于所述第一损失函数和所述第二损失函数更新所述神经网络的参数。15.根据权利要求14所述的训练装置,其特征在于,所述检测单元用于:获取查询样本中目标区域的特征;基于所述第二支持样本中物体的类别特征和所述目标区域的特征,且通过所述物体检测子网络对所述查询样本中的物体进行检测,以得到检测结果。16.根据权利要求15所述的训练装置,其特征在于,所述目标神经网络还包括第二特征
提取子网络、区域提取子网络和第三特征提取子网络;所述检测单元用于:通过所述第二特征提取子网络提取查询样本的特征图像;对所述查询样本进行第二变换;通过所述区域提取子网络从经过所述第二变换后的查询样本中提取目标区域;通过所述第三特征提取子网络提取所述特征图像中所述目标区域的特征。17.一种物体检测装置,其特征在于,应用于采用权利要求1至12中任意一项所述的训练方法得到的目标神经网络,所述目标神经网络包括第一特征提取子网络和物体检测子网络,所述物体检测装置包括:第三提取单元,用于通过所述第一特征提取子网络提取多个支持样本中物体的类别特征;第二检测单元,用于基于所述多个支持样本中物体的类别特征且通过所述物体检测子网络,对目标图像中的物体进行检测,以得到检测结果。18.一种计算机设备,其特征在于,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述计算机可读指令,以使所述训练设备实现如权利要求1至13中任一项所述的方法。19.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至13中任一项所述的方法。20.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至13中任一项所述的方法。
技术总结
本申请实施例公开了一种神经网络的训练方法、物体检测方法、装置及设备,该方法包括:先通过第一特征提取子网络提取第一支持样本中物体的类别特征以及第二支持样本中物体的类别特征,并通过第一损失函数计算这两个支持样本中物体的类别特征间的差异;然后基于第二支持样本中物体的类别特征且通过物体检测子网络,对查询样本中的物体进行检测,以得到检测结果;再基于检测结果和查询样本中的物体的标签获取第二损失函数;最后基于第一损失函数和第二损失函数更新目标神经网络的参数;由于通过第一损失函数对变换前后的支持样本间特征的差异进行了约束,所以能够避免变换前后的支持样本间的特征差异过大,从而提高了目标神经网络的物体检测精度。经网络的物体检测精度。经网络的物体检测精度。
技术研发人员:李傲雪 李震国
受保护的技术使用者:华为技术有限公司
技术研发日:2021.02.27
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-12853.html