目标检测模型的训练方法、目标检测的方法及相关产品转让专利

申请号 : CN202211310926.1

文献号 : CN115439699B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 贺婉佶史晓宇

申请人 : 北京鹰瞳科技发展股份有限公司

摘要 :

本申请公开了一种目标检测模型的训练方法、目标检测的方法及相关产品。根据本申请实施例所述的目标检测模型包括主干网络和与主干网络连接的检测框分类分支,所述检测框分类分支包括至少一个检测类别输出;所述训练方法包括:获取包含检测类别目标和/或假阳类别目标的样本图像形成的样本训练集;为每个检测类别目标和每个假阳类别目标分别赋予两层标签,所述两层标签中的第一层标签用于标识每个目标的检测类别,所述两层标签中的第二层标签用于标识每个目标的真实类别;以及使用带所述两层标签的样本训练集对所述目标检测模型进行训练。根据本申请实施例的训练方法,有利于提高目标检测模型对假阳类别目标的分辨识别能力。

权利要求 :

1.一种目标检测模型的训练方法,其特征在于,所述目标检测模型包括主干网络和与主干网络连接的检测框分类分支、前景背景分类分支和检测框位置回归分支,所述检测框分类分支包括至少一个检测类别输出;所述训练方法包括:获取包含检测类别目标和/或假阳类别目标的样本图像形成的样本训练集;

为每个检测类别目标和每个假阳类别目标分别赋予两层标签,所述两层标签中的第一层标签用于标识每个目标的检测类别,所述两层标签中的第二层标签用于标识每个目标的真实类别,其中每个目标的检测类别为每个目标被目标检测模型预测的类别,每个目标的真实类别为每个目标所属的检测类别的真阳性类别或假阳性类别;

使用带所述两层标签的样本训练集对所述目标检测模型进行训练;以及基于所述两层标签,计算所述目标检测模型的损失函数,其中所述损失函数包括针对第一层标签的第一损失函数和针对第二层标签的第二损失函数。

2.根据权利要求1所述的训练方法,其特征在于,在使用所述样本训练集对所述目标检测模型进行训练之前,所述训练方法还包括:获取带样本标注的样本图像形成的预训练集,其中所述样本标注用于标识所述样本图像中的检测类别目标;

使用所述预训练集对所述目标检测模型进行预训练。

3.根据权利要求2所述的训练方法,其特征在于,还包括:基于所述预训练集,生成包含两层标签的样本训练集。

4.根据权利要求3所述的训练方法,其特征在于,生成包含两层标签的样本训练集包括:使用预训练后的目标检测模型对所述预训练集中的样本图像进行目标检测,以得到多个检测结果;

将所述多个检测结果与所述样本标注进行比较,以在所述多个检测结果中确定在预训练集中对应背景的假阳类别目标及其所属的检测类别;以及根据所述预训练集中每个检测类别目标和每个假阳类别目标各自所属的检测类别和真实类别,生成包含两层标签的所述样本训练集。

5.根据权利要求1‑4任一所述的训练方法,其特征在于,所述第一损失函数包括交叉熵损失函数,所述第二损失函数包括对比学习损失函数。

6.根据权利要求5所述的训练方法,其特征在于,所述第一损失函数表示为:其中, 用于表示第一损失函数,B用于表示批大小, 用于表示在批中第b张样本图像中检测到的并被匹配为前景框的检测框的数量,N表示检测类别的数量, 用于表示第b张样本图像中第m个检测框的第一层标签中第n个检测类别的标签值, 表示第b张样本图像中第m个检测框在第n个检测类别中的输出概率。

7.根据权利要求5所述的训练方法,其特征在于,所述第二损失函数表示为:,其中

其中, 用于表示第二损失函数,Q用于表示批中所有样本图像中检测到的并被匹配为前景框的检测框的数量, 用于表示批中第i个检测框的对比学习损失, 用于表示第i个检测框的第二层标签, 用于表示第k个检测框的第二层标签, 用于表示第j个检测框的第二层标签, 用于表示第c个检测框的第一层标签, 用于表示第i个检测框的第一层标签,用于表示温度系数,用于表示第i个检测框的倒数第二层特征向量,用于表示第j个检测框的倒数第二层特征向量, 用于表示第c个检测框的倒数第二层特征向量。

8.根据权利要求1所述的训练方法,其特征在于,

所述损失函数为所述第一损失函数和所述第二损失函数的加权之和。

9.根据权利要求1‑4任一所述的训练方法,其特征在于,在使用所述样本训练集对目标检测模型进行训练之前,所述训练方法还包括:冻结所述目标检测模型中除所述检测框分类分支以外的其他网络结构中的权重参数。

10.根据权利要求9所述的训练方法,其特征在于,冻结权重参数包括:冻结所述主干网络、所述前景背景分类分支和所述检测框位置回归分支中的权重参数。

11.根据权利要求1所述的训练方法,其特征在于,所述样本图像包括医学样本图像。

12.一种基于图像进行目标检测的方法,其特征在于,包括:将待检测图像输入至根据权利要求1‑11任一所述的训练方法训练后的目标检测模型中;以及使用所述目标检测模型对所述待检测图像进行目标检测并输出检测结果。

13.一种用于目标检测的设备,其特征在于,包括:

处理器,其用于执行程序指令;以及

存储器,其存储有所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述处理器执行根据权利要求1‑11任一所述的目标检测模型的训练方法或者执行根据权利要求12所述的基于图像进行目标检测的方法。

14.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如权利要求1‑11中任意一项所述的目标检测模型的训练方法或者如权利要求12所述的基于图像进行目标检测的方法。

说明书 :

目标检测模型的训练方法、目标检测的方法及相关产品

技术领域

[0001] 本申请一般涉及图像处理技术领域。更具体地,本申请涉及一种目标检测模型的训练方法、目标检测的方法、设备及计算机可读存储介质。

背景技术

[0002] 随着人工智能技术的不断发展,目标检测模型在图像识别中的应用已经十分广泛,例如监控场景中对于监控视频中人体或者目标物体的识别和检测、人脸识别场景中对于人脸图像中五官的识别和检测、医学图像中对于病灶的识别和检测、显微图像中对于感兴趣细胞或者微生物的识别和检测等。
[0003] 对于目前常用的目标检测模型,虽然不同的模型检测框架可能具有不同的金标准框(或称真实框)与锚(或检测框)之间的匹配原则,但是这些匹配原则通常有一个共同点,即只会将金标准框附近的锚和该金标准框进行匹配,对于那些并不在任何金标准框附近的锚,则会被匹配为背景。
[0004] 由于这些被匹配为背景的锚对应的目标无法被输入到目标检测模型的检测框分类分支中进行学习,使得目标检测模型的检测框分类分支只能学习到感兴趣类别的检测框的样子,而学不到可能存在的与感兴趣类别类似但却属于背景的目标的样子。从分类学习的角度而言,检测框分类分支只见过“什么是正样本”,从未见过“什么不是正样本”,这是不利于模型学习的。
[0005] 有鉴于此,亟需提供一种更有利于模型学习的训练方式。

发明内容

[0006] 为了至少解决如上所提到的一个或多个技术问题,本申请在多个方面中提出了一种目标检测模型的训练方法、目标检测的方法、设备及计算机可读存储介质。
[0007] 在第一方面中,本申请提供一种目标检测模型的训练方法,所述目标检测模型包括主干网络和与主干网络连接的检测框分类分支,所述检测框分类分支包括至少一个检测类别输出;所述训练方法包括:获取包含检测类别目标和/或假阳类别目标的样本图像形成的样本训练集;为每个检测类别目标和每个假阳类别目标分别赋予两层标签,所述两层标签中的第一层标签用于标识每个目标的检测类别,所述两层标签中的第二层标签用于标识每个目标的真实类别;以及使用带所述两层标签的样本训练集对所述目标检测模型进行训练。
[0008] 在一些实施例中,在使用所述样本训练集对所述目标检测模型进行训练之前,所述训练方法还包括:获取带样本标注的样本图像形成的预训练集,其中所述样本标注用于标识所述样本图像中的检测类别目标;使用所述预训练集对所述目标检测模型进行预训练。
[0009] 在另一些实施例中,所述训练方法还包括:基于所述预训练集,生成包含两层标签的样本训练集。
[0010] 在又一些实施例中,生成包含两层标签的样本训练集包括:使用预训练后的目标检测模型对所述预训练集中的样本图像进行目标检测,以得到多个检测结果;将所述多个检测结果与所述样本标注进行比较,以在所述多个检测结果中确定在预训练集中对应背景的假阳类别目标及其所属的检测类别;以及根据所述预训练集中每个检测类别目标和每个假阳类别目标各自所属的检测类别和真实类别,生成包含两层标签的所述样本训练集。
[0011] 在一些实施例中,训练方法还包括:基于所述两层标签,计算所述目标检测模型的损失函数,其中所述损失函数包括针对第一层标签的第一损失函数和针对第二层标签的第二损失函数。
[0012] 在另一些实施例中,所述第一损失函数包括交叉熵损失函数,所述第二损失函数包括对比学习损失函数。
[0013] 在又一些实施例中,所述第一损失函数表示为:
[0014] ,其中, 用于表示第一损失函数,B用于表示批大小, 用于表示在批中第b张样本图像中检测到的并被匹配为前景框的检测框的数量,N表示检测类别的数量, 用于表示第b张样本图像中第m个检测框的第一层标签中第n个检测类别的标签值, 表示第b张样本图像中第m个检测框在第n个检测类别中的输出概率。
[0015] 在一些实施例中,所述第二损失函数表示为:   ,其中,其中,
用于表示第二损失函数,Q用于表示批中所有样本图像中检测到的并被匹配为前景框的检测框的数量, 表示批中第i个检测框的对比学习损失, 用于表示第i个检测框的第二层标签, 用于表示第k个检测框的第二层标签, 用于表示第j个检测框的第二层标签, 用于表示第c个检测框的第一层标签, 用于表示第i个检测框的第一层标签,用于表示温度系数, 用于代表第i个检测框的倒数第二层特征向量, 用于代表第j个检测框的倒数第二层特征向量, 用于代表第c个检测框的倒数第二层特征向量。
[0016] 在另一些实施例中,所述损失函数为所述第一损失函数和所述第二损失函数的加权之和。
[0017] 在又一些实施例中,在使用所述样本训练集对目标检测模型进行训练之前,所述训练方法还包括:冻结所述目标检测模型中除所述检测框分类分支以外的其他网络结构中的权重参数。
[0018] 在一些实施例中,所述目标检测模型还包括与所述主干网络分别连接的前景背景分类分支和检测框位置回归分支;冻结权重参数包括:冻结所述主干网络、所述前景背景分类分支和所述检测框位置回归分支中的权重参数。
[0019] 在另一些实施例中,所述样本图像包括医学样本图像。
[0020] 在第二方面中,本申请提供一种基于图像进行目标检测的方法,包括:将待检测图像输入至根据本申请的第一方面中任一所述的训练方法训练后的目标检测模型中;以及使用所述目标检测模型对所述待检测图像进行目标检测并输出检测结果。
[0021] 在第三方面中,提供一种用于目标检测的设备,包括:处理器,其用于执行程序指令;以及存储器,其存储有所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述处理器执行根据本申请的第一方面中任一所述的目标检测模型的训练方法或者执行根据本申请的第二方面中任一所述的基于图像进行目标检测的方法。
[0022] 在第四方面中,提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如本申请的第一方面中任意一项所述的目标检测模型的训练方法或者如本申请的第二方面中任一所述的基于图像进行目标检测的方法。
[0023] 通过上述对本申请的技术方案及其多个实施例的描述,本领域技术人员可以理解本申请的方案中通过为每个检测类别目标和每个假阳类别目标分别赋予两层标签,使得目标检测模型的检测框分类分支不仅能够在第一层标签中学习到检测类别的特征,还能够在第二层标签中学习到检测类别目标与假阳类别目标之间的差别,从而使得目标检测模型能够更好的学习如何区分检测类别目标和假阳类别目标,有利于提高目标检测模型对假阳类别目标的分辨识别能力以及提高对检测类别目标的检测准确性。
[0024] 进一步地,在一些实施例中,通过基于两层标签,设置针对两层标签的损失函数,可以实现对目标检测模型训练过程中层级式的监督方式,以监督目标检测模型对每层标签的学习效果。更进一步地,在另一些实施例中,通过使用对比学习损失函数,加强了检测框分类分支对每个感兴趣类的假阳类别目标(或称假阳性样本)和其对应的检测类别目标(或称真阳性样本)之间的对比,增大了每个感兴趣类的假阳类别目标和检测类别目标的特征距离,从而使检测框分类分支对目标的识别能力更强。

附图说明

[0025] 通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0026] 图1是示出根据本申请实施例的目标检测模型的示意性框图;
[0027] 图2是示出根据本申请实施例的目标检测模型的训练方法流程图;
[0028] 图3是示出根据本申请另一个实施例的目标检测模型的训练方法流程图;
[0029] 图4是示出根据本申请实施例的预训练集中样本图像的示意图;
[0030] 图5是示出根据本申请实施例的样本训练集中样本图像的示意图;
[0031] 图6是示出根据本申请实施例的基于图像进行目标检测的方法流程图;
[0032] 图7是示出根据本申请实施例的训练后的目标检测模型的示意框图;以及
[0033] 图8是示出根据本申请实施例的用于目标检测的系统的示意框图。

具体实施方式

[0034] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0035] 应当理解,本申请的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0036] 还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本申请。如在本申请说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本申请说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0037] 如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0038] 下面结合附图来详细描述本申请的具体实施方式。为了便于理解本申请实施例的技术方案,下面首先结合图1对本申请实施例中涉及到的目标检测模型进行示例性的描述。
[0039] 图1是示出根据本申请实施例的目标检测模型的示意性框图。如图1中所示,该目标检测模型100可以包括主干网络110和与主干网络110连接的检测框分类分支120,检测框分类分支120可以包括至少一个检测类别输出121。在一些实施例中,主干网络110(或称Backbone网络)可以用于对输入图像进行特征提取,可以输出基于输入图像生成的特征图和/或特征向量等。在另一些实施例中,主干网络110可以包括例如卷积神经网络等能够用于对输入图像进行特征提取的网络结构。在又一些实施例中,目标检测模型100可以为目前常用的检测模型,例如可以采用YOLO系列或者RCNN系列等网络模型结构,其中主干网络110可以采用例如YOLO系列或者RCNN系列等网络模型中的骨干网络结构。
[0040] 检测框分类分支120可以用于对检测框中的目标进行分类。在一些实施例中,每个检测类别输出121可以用于输出一个检测类别的概率值。检测类别可以是感兴趣的类别或者目标类别,例如在一些应用场景中,检测任务为检测输入图像中是否有苹果和梨,则苹果和梨属于检测类别,而输入图像中的例如香蕉、石榴等其他类别物体则不属于检测类别,会在检测中被确定为背景而不被检测框标识出来。在另一些实施例中,每个检测类别输出121可以采用sigmoid归一化层来实现。
[0041] 如图1中进一步示出的,该目标检测模型100还可以包括分别与主干网络110连接的前景背景分类分支130和检测框位置回归分支140,其中前景背景分类分支130可以用于对主干网络110输出的特征图进行前景和背景的区分,输出的前景目标可以以检测框的形式标出;检测框位置回归分支140可以用于输出检测框的位置信息,包括例如位置坐标、偏移量、检测框尺寸等。在一些实施例中,前景背景分类分支130和检测框位置回归分支140可以采用例如YOLO系列或者RCNN系列等网络模型中相应的分支网络结构。
[0042] 以上结合图1对根据本申请实施例的目标检测模型进行了示例性的描述,可以理解的是,上面的描述是示例性的而非限制性的,例如检测类别输出121的数量可以不限于图示中的三个,也可以根据需要设置的更多或者更少。在介绍了本申请实施例的目标检测模型之后,下面将结合图2对根据本申请实施例的训练方法进行示例性的说明。
[0043] 图2是示出根据本申请实施例的目标检测模型的训练方法流程图。如图2中所示,训练方法200可以包括:在步骤210中,可以获取包含检测类别目标和/或假阳类别目标的样本图像形成的样本训练集。
[0044] 上文中所述的样本图像的内容可以根据所需应用的场景来选择。例如,在一些实施例中,样本图像可以包括医学样本图像,以用于对病灶的检测。在另一些实施例中,医学样本图像可以包括例如眼底图像、脑部图像、肺部图像等医学图像中的一种。在又一些实施例中,医学样本图像可以通过例如眼底相机、OCT(Optical coherence tomography)设备、核磁共振设备、电子计算机断层扫描CT设备等医疗设备采集得到。还例如,在另一些实施例中,样本图像可以包括例如人像样本图像,以用于监控领域或者人脸识别领域的检测。在又一些实施例中,样本图像可以包括文字样本图像,例如用于文字识别或者翻译领域中的文字检测。再例如,在一些实施例中,样本图像可以包括通行车辆样本图像,以用于道路监控中对车辆的检测和识别等。
[0045] 样本训练集可以包括一张或多张样本图像,其中每张样本图像中可以包含检测类别目标和/或假阳类别目标。在一些实施例中,样本训练集中的每张样本图像可以均包含检测类别目标和假阳类别目标。在另一些实施例中,样本训练集中的一部分样本图像仅包含检测类别目标或假阳类别目标,另一部分样本图像中均包含检测类别目标和假阳类别目标。在又一些实施例中,样本训练集中的一部分样本图像仅包含检测类别目标,而另一部分样本图像中仅包含假阳类别目标。
[0046] 在一些实施例中,检测类别目标可以为样本图像中属于检测类别的目标,假阳类别目标可以为样本图像中属于假阳类别的目标。在另一些实施例中,假阳类别可以是与检测类别目标相似,而容易被误分为检测类别中的非检测目标的类别,即对应检测类别的假阳性。仍以上述检测类别包括苹果和梨为例,输入图像中的石榴可以是相对于苹果而言的非检测目标,由于石榴与苹果相似而容易被目标检测模型误分为苹果,因此可以将石榴确定为与苹果这个检测类别对应的假阳类别目标。在一些实施例中,样本图像中的检测类别目标和/或假阳类别目标可以由检测框(或称边界框)标注出,以便于识别。
[0047] 接着,在步骤220中,可以为每个检测类别目标和每个假阳类别目标分别赋予两层标签,两层标签中的第一层标签用于标识每个目标的检测类别,两层标签中的第二层标签用于标识每个目标的真实类别。标签可以用于表示目标检测模型的学习目标。在一些实施例中,每个目标的检测类别可以理解为每个目标被目标检测模型预测的类别。对于检测类别目标而言,第一层标签即为其本身所属的检测类别,由于检测类别目标的真实类别仍然是其所属的检测类别,因此检测类别目标的第二层标签仍是表示其检测类别,或者可以表示为真阳性。对于假阳类别目标而言,第一层标签为其易被模型误分的检测类别,由于假阳类别目标的真实类别并不是其被误分的检测类别,因此假阳类别目标的第二层标签是表示其真实的假阳类别,或者可以表示为假阳性。
[0048] 在另一些实施例中,两层标签可以均采用独热编码one‑hot标签(即标签中的数据只包括0和1)。例如,在一个具体实施例中,对于一个三分类任务,其包括三个检测类别,对于属于第一个检测类别的检测类别目标而言,其第一层标签可以表示为[1,0,0],其第二层标签可以表示为[1,0,0,0,0,0];对于原属于第一个检测类别的假阳类别目标而言,其第一层标签可以表示为[1,0,0],即与其对应的真阳性的检测类别目标的第一层标签相同,其第二层标签可以表示为[0,1,0,0,0,0]。在该实施例中,由于第一层标签中的每个检测类别在第二层标签中被详细分为真阳性或假阳性,因此可以以两位数字来表示。在又一些实施例中,在第二层标签中,标签1可以分为[标签1真阳性,标签1假阳性]。
[0049] 然后,流程可以前进到步骤230中,可以使用带两层标签的样本训练集对目标检测模型进行训练。该目标检测模型可以包括主干网络和与主干网络连接的检测框分类分支,检测框分类分支可以包括至少一个检测类别输出。目标检测模型可以采用例如图1中所示的目标检测模型100,这里将不再赘述。
[0050] 进一步地,在一些实施例中,训练方法200还可以包括:基于两层标签,可以计算目标检测模型的损失函数,其中该损失函数可以包括针对第一层标签的第一损失函数和针对第二层标签的第二损失函数。通过设置针对不同层标签的损失函数,可以有针对性的对检测框分类分支进行分层级的训练。
[0051] 在又一些实施例中,第一损失函数可以包括交叉熵损失函数,第二损失函数可以包括对比学习损失函数。由于这里的对比学习损失函是是针对模型学习第二层标签而设置的,因此这里的对比学习损失函数可以实现目标检测模型的有监督的对比学习。
[0052] 在一些实施例中,第一损失函数可以表示为如下公式1所示的交叉熵损失函数的形式:
[0053]                 (公式1)
[0054] 其中, 用于表示第一损失函数,B用于表示批大小, 用于表示在批中第b张样本图像中检测到的并被匹配为前景框的检测框的数量(即被匹配为前景中的检测框的数量),N用于表示检测类别的数量, 用于表示第b张样本图像中第m个检测框的第一层标签中第n个检测类别的标签值, 用于表示第b张样本图像中第m个检测框在第n个检测类别中的输出概率。 表示当第b张样本图像中第m个检测框的第一层标签中第n个检测类别的标签值为1时 =1,否则 =0。在一些实施例中,可以采用例如交
并比IOU匹配规则等来对检测到的检测框进行匹配,以确定被匹配为前景框的检测框的数量。
[0055] 在另一些实施例中,第二损失函数可以表示为如下公式2和公式3所示的对比学习损失函数的形式:
[0056]                        (公式2)
[0057]    (公式3)
[0058] 其中, 用于表示第二损失函数,Q用于表示批中所有样本图像中检测到的并被匹配为前景框的检测框的数量, 表示批中第i个检测框的对比学习损失, 用于表示第i个检测框的第二层标签, 用于表示第k个检测框的第二层标签, 用于表示第j个检测框的第二层标签, 用于表示第c个检测框的第一层标签, 用于表示第i个检测框的第一层标签, 用于表示温度系数, 用于表示第i个检测框的倒数第二层特征向量(即sigmoid所操作的特征层的上一特征层), 用于表示第j个检测框的倒数第二层特征向量, 用于表示第c个检测框的倒数第二层特征向量。在一些实施例中,温度系数 可以大于1。
[0059] 进一步地,上式中 用于表示当第i个检测框的第二层标签与第k个检测框的第二层标签相同时,该值为1;否则该值为0。 用于表示当i=j时,该值为1;否则该值为0。 用于表示当第i个检测框的第二层标签与第j个检测框的第二层标签相同时,该值为1;否则该值为0。 用于表示i与c不相同时,该值为1;否则该值为0。 用于表示当第i个检测框的第一层标签与第c个检测框的第一层标签相同时,该值为1;否则该值为
0。
[0060] 由上述公式3中的 可以看出,根据本申请实施例设置的对比学习损失只在每两个第一层标签相同(即模型预测的检测类别相同)的第二层类别(即第二层标签对应的真阳性类别或者假阳性类别)中计算,不会在对应不同第一层标签的第二层类别中计算。根据这样的设置,可以保证目标检测模型学习的是假阳类别与相应的检测类别之间的区别,而不是与其他检测类别的区别,有利于加强检测框分类分支对每个假阳类别目标与其对应的检测类别目标之间的对比,从而有利于增强检测框分类分支的识别能力。
[0061] 在另一些实施例中,损失函数可以为第一损失函数和第二损失函数的加权之和。根据这样的设置,可以根据需要调整第一损失函数和第二损失函数之间的配比。在又一些实施例中,损失函数可以通过如下公式4来表示:
[0062]                          (公式4)
[0063] 其中,L表示损失函数,L1表示第一损失函数,L2表示第二损失函数, 表示超参数,用以调节第一损失函数和第二损失函数之间的配比。在一些实施例中, 的取值可以为0‑1之间的数值。
[0064] 以上结合图2对根据本申请实施例的训练方法进行了示例性的描述,可以理解的是,通过使用带两层标签的样本训练集对目标检测模型进行训练,建立了两层的层级类别,即第一层类别为模型预测的检测类别,第二层类别为该所属的检测类别的真阳性类别和假阳性类别,使得目标检测模型能够在对第二层类别的学习过程中学习到真阳性类别和假阳性类别之间的区别。
[0065] 进一步地,在一些实施例中,还可以通过设置针对两层标签的损失函数来对目标检测模型的训练进行监督,增大了假阳类别目标与其对应的检测类别目标之间的特征距离,从而更有利于提高训练后的目标检测模型的识别能力。还可以理解的是,上面的描述是示例性的而非限制性的,例如在一些实施例中,在使用样本训练集对目标检测模型进行训练之前,还可以包括预训练。下面将结合图3进行详细描述。
[0066] 图3是示出根据本申请另一个实施例的目标检测模型的训练方法流程图。通过下面的描述可知,图3中所示的训练方法300可以是前文中结合图2所描述的训练方法200的一个具体化表现形式。因此,前文中对训练方法200的描述也可以适用于下面对训练方法300的描述中。
[0067] 如图3中所示,训练方法300可以包括:在步骤310中,可以获取带样本标注的样本图像形成的预训练集,其中样本标注可以用于标识样本图像中的检测类别目标。在一些实施例中,样本标注可以以检测框(或称边界框)的形式示出。在另一些实施例中,样本标注还可以包括对样本图像中检测类别目标的类别标记。在又一些实施例中,预训练集可以选自于目前已有的常用于对目标检测模型进行传统训练的数据集。
[0068] 接着,在步骤320中,可以使用预训练集对目标检测模型进行预训练。预训练集可以包括一张或多张样本图像,其中部分或者全部样本图像中带有样本标注。由于该预训练集中仅包括样本标注,因此样本图像中除样本标注以外的其他目标难以被匹配为前景而被送入到检测框分类分支中进行学习,使得预训练后的目标检测模型难以区分真实的检测类别目标和假阳类别目标,从而可能存在误检的问题。
[0069] 然后,流程可以前进到步骤330中,可以基于预训练集,生成包含两层标签的样本训练集。在一些实施例中,可以根据预训练集中的样本标注标记的检测类别目标,通过机器在样本图像中查找到与检测类别目标相似的假阳类别目标。在另一些实施例中,还可以根据预训练集中的样本标注标记的检测类别目标,在预训练集中的样本图像和预训练集以外的其他样本图像中查找与检测类别目标相似的假阳类别目标,然后可以将预训练集中的样本图像和预训练集以外的其他样本图像共同形成样本训练集。
[0070] 在另一些实施例中,基于预训练集,生成包含两层标签的样本训练集可以包括:根据预训练后的目标检测模型和预训练集,生成包含两层标签的样本训练集。如图3中进一步示出的,步骤330可包括图示中的步骤331‑步骤333,其中在步骤331(虚线框示出)中,可以使用预训练后的目标检测模型对预训练集中的样本图像进行目标检测,以得到多个检测结果。可以将预训练集中的样本图像输入至预训练后的目标检测模型的主干网络中,以在目标检测模型的分支结构中输出针对每张样本图像的检测结果。在一些实施例中,检测结果可以包括检测框及其所属的检测类别。
[0071] 接着,在步骤332(虚线框示出)中,可以将多个检测结果与样本标注进行比较,以在多个检测结果中确定假阳类别目标及其所属的检测类别(即预测其属于的检测类别)。可以将每张样本图像中的检测结果与该样本图像中的样本标注进行比较。在一些实施例中,样本标注可以被视为检测类别目标的金标准框,将多个检测结果与样本标注进行比较可以理解为将训练后的目标检测模型预测的多个检测框中概率值大于概率阈值的检测框结果与金标准框进行比较,以在多个检测框结果中找到与金标准框之间的交并比小于交并比阈值的检测框结果(即假阳检测框)。该假阳检测框中的目标(即假阳类别目标)被预测为属于某个检测类别,但是其实际上并不是该检测类别,且也不属于其他检测类别。在通常的训练方法中,由于该假阳检测框中的目标并不在任何金标准框的附近,因此其无法影响检测框分类分支的学习。即,该假阳类别目标在预训练集中对应背景而未被标注,并在目标检测模型的预训练过程中作为背景而未进入检测框分类分支中进行学习。
[0072] 然后,流程可以继续前进到步骤333(虚线框示出)中,可以根据预训练集中每个检测类别目标和每个假阳类别目标各自所属的检测类别和真实类别,生成包含两层标签的样本训练集。具体地,对于每个检测类别目标,可以对其第一层标签赋予用于表示其所属检测类别的标签值,并对其第二层标签赋予用于表示其真阳性类别的标签值。对于每个确定的假阳类别目标,可以对其第一层标签赋予用于表示其所属检测类别的标签值,并对其第二层标签赋予用于表示其假阳性类别的标签值。
[0073] 在一些应用场景中,在步骤320中可以使用预训练集中的全部样本图像来对目标检测模型进行预训练,并在步骤331中可以使用预训练后的目标检测模型来对预训练集中的全部样本图像进行目标检测,以得到预训练集中全部样本图像的检测结果,在此情况下,步骤333中生成的样本训练集可以包括预训练集中的全部样本图像。
[0074] 在另一些应用场景中,在步骤320中可以使用预训练集中的一部分样本图像来对目标检测模型进行预训练,并在步骤331中可以使用预训练后的目标检测模型来对预训练集中的另一部分样本图像进行目标检测,以得到预训练集中另一部分样本图像的检测结果,在此情况下,步骤333中生成的样本训练集可以包括预训练集中的另一部分样本图像。
[0075] 在又一些应用场景中,在步骤320中可以使用预训练集中的全部样本图像来对目标检测模型进行预训练,而在步骤331中可以使用预训练后的目标检测模型来对预训练集中的一部分样本图像进行目标检测,以得到预训练集中一部分样本图像的检测结果,在此情况下,步骤333中生成的样本训练集可以包括预训练集中的一部分样本图像。根据这样的设置,可以使用大数据样本进行预训练,而只需生成较少数量包括两层标签的训练数据对模型进行微调训练,有助于降低样本训练集的生成难度。
[0076] 可以理解的是,上面所描述的步骤331和步骤332可以是前文中结合图2描述的步骤210的一个具体化表现形式,步骤333可以是前文中结合图2描述的步骤220的一个具体化表现形式。如图3中进一步示出的,在生成了样本训练集之后,可以继续执行步骤340,可以使用带两层标签的样本训练集对目标检测模型进行训练。步骤340已经在前文中结合图2描述的步骤230进行了详细的说明,此处不再赘述。
[0077] 在另一些实施例中,在执行步骤340之前,训练方法300还可以包括:冻结目标检测模型中除检测框分类分支以外的其他网络结构中的权重参数。冻结权重参数可以是将其他网络结构中的权重参数固定,以避免后续操作对其他网络结构的权重参数造成改变。在一些实施例中,其他网络结构可以包括主干网络。在另一些实施例中,目标检测模型还可以包括与主干网络分别连接的前景背景分类分支和检测框位置回归分支;冻结其他网络结构中的权重参数可以包括:冻结主干网络、前景背景分类分支和检测框位置回归分支中的权重参数。
[0078] 根据这样的设置,可以在使用样本训练集对目标检测模型进行训练时,不改变预训练后确定的除检测框分类分支以外的其他网络结构中的权重参数,而只对检测框分类分支中的权重参数进行微调和更新,有利于提高目标检测模型训练的速度和效率。
[0079] 以上结合图3对根据本申请另一个实施例的训练方法进行了详细的描述,为了更便于理解基于预训练集生成样本训练集的方法,下面将结合图4和图5进行示例性的说明。
[0080] 图4是示出根据本申请实施例的预训练集中样本图像的示意图。图5是示出根据本申请实施例的样本训练集中样本图像的示意图。如图4中所示,以预训练集中的一张第一样本图像400为例,假设字母a、b、c为三个不同的感兴趣的检测类别目标,该第一样本图像400中每个检测类别目标上均带有样本标注,例如图中所示的检测类别目标a上的样本标注401、检测类别目标b上的样本标注402和检测类别目标c上的样本标注403。在一些实施例中,样本标注401、402和403可以分别以不同的颜色表示。在第一样本图像400中还存在着非检测目标O404、非检测目标g405和非检测目标q406等,这些非检测目标不会被任何框标注。
[0081] 在使用例如前文中结合图1描述的目标检测模型或者其他常用的检测网络模型对第一样本图像400进行目标检测时,由于围绕着这些非检测目标404、405和406的锚不在任何金标准框附近,因此这些非检测目标404、405和406不会被匹配到任何金标准框,从而无法影响检测框分类分支的损失计算。然而,从外形特征来看,这些非检测目标O、g、q与图示中的检测类别目标a、b、c是比较相似的(例如g与a相似、O与c相似、q与b相似),容易被目标检测模型检测为属于某种检测类别,因此这些容易被误检的非检测目标属于困难假阳性样本,本文中可以称之为假阳类别目标。
[0082] 在另一些实施例中,通过对例如图4中所示的假阳类别目标O、g、q进行检测框标注可以形成如图5中所示的第二样本图像500,其中检测框501(虚线框示出)用于标注假阳类别目标g,其为检测类别目标a的假阳性;检测框502(虚线框示出)用于标注假阳类别目标q,其为检测类别目标b的假阳性;检测框503(虚线框示出)用于标注假阳类别目标O,其为检测类别目标c的假阳性。在另一些实施例中,检测框501、502和503可以分别以不同的颜色表示,并可以以区别于样本标注的形式示出,例如图示中的以虚线框形式示出,以区别于样本标注的实线框的形式。
[0083] 在一些实施例中,可以使用预训练后的目标检测模型对预训练集中的例如图4中所示的第一样本图像400进行检测,以挖掘出假阳类别目标O、g、q,从而可以基于第一样本图像400来生成第二样本图像500,进而可以对生成的每个第二样本图像500中的检测类别目标和挖掘出的假阳类别目标分别赋予两层标签,以形成包含两层标签的样本训练集。
[0084] 上面结合多个附图描述了本申请实施例的训练方法,本申请还在另一方面中提供了基于图像进行目标检测的方法,即目标检测模型的推理方法或预测方法。下面将结合图6进行说明。
[0085] 图6是示出根据本申请实施例的基于图像进行目标检测的方法流程图。如图6中所示,方法600可以包括:在步骤610中,可以将待检测图像输入至根据上面结合图2‑图5中任一实施例所述的训练方法训练后的目标检测模型中。接着,在步骤620中,可以使用目标检测模型对待检测图像进行目标检测并输出检测结果。
[0086] 在一些实施例中,待检测图像可以包括医学图像,将医学图像输入至根据本申请实施例的训练方法训练后的目标检测模型中,目标检测模型中的主干网络可以提取医学图像中的病灶特征,目标检测模型中的前景背景分类分支可以对包括病灶特征的特征图进行前景和背景的区分,检测框分类分支可以对前景中的病灶特征的检测框进行识别和分类,以确定检测框中的病灶特征是否属于检测类别输出中对应的检测类别,检测框位置回归分支可以用于输出每个检测框的位置信息。
[0087] 在另一些实施例中,待检测图像可以包括文字图像,以使用目标检测模型检测该文字图像中是否存在感兴趣的检测类别文字或者假阳类别文字,目标检测模型的检测过程与检测医学图像类似,此处不再赘述。在又一些实施例中,待检测图像还可以根据需要选择人像图像、道路监控图像、显微图像、物品图像等中的一种或多种,例如可以根据用于训练目标检测模型的样本训练集中的样本图像包含的内容进行选择。
[0088] 进一步地,由于根据本申请实施例的训练方法采用了两层标签来训练目标检测模型,因此使用该目标检测模型对待检测图像进行目标检测输出的检测结果可以包括每个检测框中的目标属于检测类别的真阳性或假阳性。为了便于理解,下面结合图7进行示例性的说明。
[0089] 图7是示出根据本申请实施例的训练后的目标检测模型的示意框图。如图7中所示,该目标检测模型700可以包括主干网络110和与主干网络110分别连接的检测框分类分支120、前景背景分类分支130和检测框位置回归分支140,检测框分类分支120可以包括至少一个检测类别输出121。对于每个检测类别输出121,可以用于输出真阳性类别701或假阳性类别702。
[0090] 以图5中所示的第二样本图像500为例,假设第二样本图像500中的每个检测框内的目标均已被赋予两层标签,并且假设图示中目标检测模型700中包括的三个检测类别输出分别用于预测a、b和c这三个检测类别,则对于训练后的目标检测模型700,其在对待检测图像进行目标检测时,可以在检测框分类分支120的检测结果中输出待检测图像中每个检测出的检测框中的目标是属于[a、非a、b、非b、c、非c]这六个第二层类别中的某个。
[0091] 本申请实施例的上述方案可以借助于程序指令来实现。由此,本申请还提供一种用于目标检测的设备,包括:处理器,其用于执行程序指令;以及存储器,其存储有程序指令,当程序指令由处理器加载并执行时,使得处理器执行前文任一实施例所述的目标检测模型的训练方法或者执行前文结合图6所描述的基于图像进行目标检测的方法。
[0092] 图8是示出根据本申请实施例的用于目标检测的系统的示意框图。该系统800可以包括根据本申请实施例的设备801以及其外围设备和外部网络,其中设备801用于对目标检测模型进行训练或者用于对待检测图像进行目标检测等操作,以实现前述结合图1‑图7任一所述的本申请实施例的技术方案。
[0093] 如图8中所示,设备801可以包括CPU 8011,其可以是通用CPU、专用CPU或者其他信息处理以及程序运行的执行单元。进一步,设备801还可以包括大容量存储器8012和只读存储器ROM 8013,其中大容量存储器8012可以配置用于存储各类数据,包括预训练集、样本训练集、权重参数和检测结果等以及运行神经网络所需要的各种程序,ROM 8013可以配置成存储对于设备801的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统所需的数据。
[0094] 进一步,设备801还包括其他的硬件平台或组件,例如示出的TPU 8014、GPU 8015、FPGA 8016和MLU 8017。可以理解的是,尽管在设备801中示出了多种硬件平台或组件,但这里仅仅是示例性的而非限制性的,本领域技术人员可以根据实际需要增加或移除相应的硬件。例如,设备801可以仅包括CPU作为公知硬件平台和另一硬件平台作为本发明的测试硬件平台。
[0095] 本申请的设备801还包括通信接口8018,从而可以通过该通信接口8018连接到局域网/无线局域网(LAN/WLAN)805,进而可以通过LAN/WLAN连接到本地服务器806或连接到因特网(“Internet”)807。替代地或附加地,本申请的设备801还可以通过通信接口8018基于无线通信技术直接连接到因特网或蜂窝网络,例如基于第三代(“3G”)、第四代(“4G”)或第5代(“5G”)的无线通信技术。在一些应用场景中,本申请的设备801还可以根据需要访问外部网络的服务器808以及可能的数据库809,以便获得各种已知的神经网络模型、数据和模块,并且可以远程地存储测量的各种数据。
[0096] 设备801的外围设备可以包括显示装置802、输入装置803以及数据传输接口804。在一个实施例中,显示装置802可以例如包括一个或多个扬声器和/或一个或多个视觉显示器,其配置用于对本申请设备的运算过程或者检测结果进行语音提示和/或图像视频显示。
输入装置803可以包括例如键盘、鼠标、麦克风、姿势捕捉相机,或其他输入按钮或控件,其配置用于接收训练数据的输入或用户指令。数据传输接口804可以包括例如串行接口、并行接口或通用串行总线接口(“USB”)、小型计算机系统接口(“SCSI”)、串行ATA、火线(“FireWire”)、PCI Express和高清多媒体接口(“HDMI”)等,其配置用于与其他设备或系统的数据传输和交互。根据本申请的方案,该数据传输接口804可以接收用于预训练的预训练集的预训练数据或者用于训练的样本训练集的训练数据,并且向设备801传送各种类型的数据和结果。
[0097] 本申请的设备801的上述CPU 8011、大容量存储器8012、只读存储器ROM 8013、TPU 8014、GPU 8015、FPGA 8016、MLU 8017和通信接口8018可以通过总线8019相互连接,并且通过该总线与外围设备实现数据交互。在一个实施例中,通过该总线8019,CPU 8011可以控制设备801中的其他硬件组件及其外围设备。
[0098] 在工作中,本申请的设备801的处理器CPU 8011可以通过输入装置803或数据传输接口804接收训练数据或者待检测图像,并调取存储于存储器8012中的计算机程序指令或代码(例如涉及神经网络的代码)对接收到的训练数据进行训练或者对待检测图像进行检测,以得到训练后的目标检测模型的权重参数或者检测结果。在CPU 8011通过执行程序指令确定了检测结果后,可以在显示装置802上显示或者通过语音提示的方式输出检测结果。另外,设备801还可以通过通信接口8018将检测结果上传至网络,例如远程的数据库809。
[0099] 还应当理解,本申请示例的执行指令的任何模块、单元、组件、服务器、计算机、终端或设备可以包括或以其他方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的)和/或不可移动的)例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。
[0100] 基于上文,本申请还提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如前文结合图2‑图5中任一实施例所述的目标检测模型的训练方法或者如前文结合图6所述的基于图像进行目标检测的方法。
[0101] 计算机可读存储介质可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random‑Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High‑Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等,或者可以用于存储所需信息并且可以由应用程序、模块或两者访问的任何其他介质。任何这样的计算机存储介质可以是设备的一部分或可访问或可连接到设备。本发明描述的任何应用或模块可以使用可以由这样的计算机可读介质存储或以其他方式保持的计算机可读/可执行指令来实现。
[0102] 通过上面对本申请的目标检测模型的训练方法以及多个实施例的描述,本领域技术人员可以理解的是,本申请的训练方法通过使用带两层标签的样本训练集对目标检测模型进行训练,能够在不改变目标检测模型的结构的基础上使得目标检测模型学习到检测类别目标与其对应的假阳类别目标之间的区别,从而有利于提高目标检测模型对假阳类别目标的识别能力以及有利于提高训练后的目标检测模型对检测类别目标的检测准确性。
[0103] 在一些实施例中,通过针对第二层标签使用对比学习损失函数进行训练监督,增大了假阳类别目标与其对应的检测类别目标之间的特征距离,从而使得目标检测模型的检测框分类分支的识别能力更强。
[0104] 进一步地,在另一些实施例中,通过使用预训练后的目标检测模型检测带有样本标注的预训练集,并将检测结果与样本标注进行对比,可以挖掘出对于目标检测模型而言较难识别的困难假阳性样本,使其能够更好的指导目标检测模型的训练,还能够有利于提高获取样本训练集的效率和可靠性。该挖掘困难假阳性样本的方法可以巧妙且充分地利用较容易获得的带有样本标注的预训练集,降低了生成样本训练集的难度,还可以降低前景背景分类分支进行前景和背景分类时的困难和压力。
[0105] 虽然本文已经示出和描述了本申请的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本申请思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本申请的过程中,可以采用对本文所描述的本申请实施例的各种替代方案。所附权利要求书旨在限定本申请的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。