一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

目标检测器的训练方法、装置、存储介质和电子设备与流程

2022-05-18 14:45:09 来源:中国专利 TAG:


1.本发明涉及目标检测技术领域,特别地涉及一种目标检测器的训练方法、装置、存储介质和电子设备。


背景技术:

2.目标检测是计算机视觉领域中一个基础却充满挑战性的任务。目标检测是判断给定的一幅图像中是否存在感兴趣的目标物体。如果存在目标物体,则给出所有目标物体的类别和位置。与图像分类相比,目标检测除了识别目标物体的类别,还要输出目标物体的位置参数。
3.目标检测方法分为两种:一类是基于锚框的检测方法;一类是基于无锚框目标检测器的检测方法。基于锚框的检测方法,存在目标检测的高精度和高速度难以平衡的技术问题。相对于基于锚框的目标检测器来说,无锚框的目标检测器不需要与锚框相关的超参数,直接回归物体位置。然而,无锚框目标检测器在真实应用场景中存在检测精度不高的问题,需要通过手动设计网络结构和增加计算量来提高目标检测器的检测精度。
4.本领域亟需一种方案对目标检测器进行训练,以在不增加计算量的情况下,增加无锚框目标检测器的精度。


技术实现要素:

5.本发明提供一种目标检测器的训练方法、装置、存储介质和电子设备,解决了一些技术方案中检测精度不高的技术问题。
6.第一方面,本发明提供了一种目标检测器的训练方法,包括:
7.获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;
8.基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;
9.对稀疏的神经网络进行重新训练,得到稠密的神经网络。
10.在一些实施例中,对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络,包括:
11.获取预训练目标检测器的主干网络的所有卷积层参数;
12.计算每一卷积层参数的重要性得分;
13.根据卷积层参数的个数和预设剪枝率确定剪枝阈值;
14.根据剪枝阈值和重要性得分进行剪枝,以生成稀疏的神经网络。
15.在一些实施例中,计算每一卷积层参数的重要性得分,包括:
16.计算每一卷积层参数的权值与反向传播计算梯度的积的l2范数,以得到每一卷积层参数的重要性得分。
17.在一些实施例中,通过如下表达式获得反向传播计算梯度:
[0018][0019]
其中,gi表示反向传播计算梯度,l表示目标检测器的总损失值,wi表示卷积层参数的权值,i表示卷积层参数的索引。
[0020]
在一些实施例中,根据卷积层参数的个数和预设剪枝率确定剪枝阈值,包括:
[0021]
基于卷积层参数的个数n和预设剪枝率p确定剪枝数量n*p;
[0022]
按照卷积层参数的重要性得分对卷积层参数进行排序;
[0023]
将排序后的第n*p个卷积层参数的重要性得分作为剪枝阈值。
[0024]
在一些实施例中,根据剪枝阈值和重要性得分进行剪枝,以生成稀疏的神经网络,包括:
[0025]
遍历每一卷积层参数,对重要性得分小于剪枝阈值的卷积层参数对应的网络连接进行剪枝。
[0026]
在一些实施例中,对重要性得分小于剪枝阈值的卷积层参数对应的网络连接进行剪枝,包括:
[0027]
将重要性得分小于剪枝阈值的卷积层参数置为零。
[0028]
在一些实施例中,还包括:使用非极大值抑制策略筛选边界框。
[0029]
在一些实施例中,使用非极大值抑制策略筛选边界框,包括:
[0030]
将置信度最高的边界框作为真实框;
[0031]
若第一边界框与真实框的交并比大于非极大值抑制阈值,则降低第一边界框的置信度;
[0032]
若降低后第一边界框的置信度低于删除阈值,则删除第一边界框;
[0033]
其中,第一边界框为除置信度最高的边界框外的任一边界框。
[0034]
在一些实施例中,对稀疏的神经网络进行重新训练,得到稠密的神经网络,包括:
[0035]
将已置零的网络连接重新激活,得到稠密的神经网络。
[0036]
第二方面,本发明提供了一种目标检测器的训练装置,包括:
[0037]
获取模块,用于获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;
[0038]
第一训练模块,用于基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;
[0039]
第二训练模块,用于对稀疏的神经网络进行重新训练,得到稠密的神经网络。
[0040]
第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面的方法。
[0041]
第四方面,本发明提供了一种电子设备,包括处理器和存储器,存储器上存储有计算机程序,处理器执行计算机程序时实现第一方面的方法。
[0042]
本发明提供的一种目标检测器的训练方法、装置、存储介质和电子设备,通过获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;对稀疏的神经网络进行重新训练,得到稠密的神经网络;能够在不增加目标检测器的计算量的情况下,增加无锚框目标检测器的精度。
附图说明
[0043]
在下文中将基于实施例并参考附图来对本发明进行更详细的描述:
[0044]
图1为本发明实施例的一种目标检测器的训练方法流程图;
[0045]
图2为本发明实施例的一种目标检测器的训练装置示意图。
[0046]
在附图中,相同的部件使用相同的附图标记,附图并未按照实际的比例绘制。
[0047]
具体实现方式
[0048]
为了使本技术领域的人员更好地理解本发明方案,并对本发明如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。本发明实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0049]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0050]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0051]
目标检测是计算机视觉领域中一个基础却充满挑战性的任务。目标检测是判断给定的一幅图像中是否存在感兴趣的目标物体。如果存在目标物体,则给出所有目标物体的类别和位置。与图像分类相比,目标检测除了识别目标物体的类别,还要输出目标物体的位置参数。
[0052]
在应用深度学习的目标检测中,首先将图像标注而得到训练集、验证集。其中,标注的数据标签便是在原始图像上使用矩形框框出目标物体,得到矩形框的位置参数(左上角点和右下角点的坐标)。
[0053]
目标检测方法分为两种:一类是基于锚框的检测方法;一类是基于无锚框目标检测器的检测方法。基于锚框的检测方法,存在目标检测的高精度和高速度难以平衡的技术问题。相对于基于锚框的目标检测器来说,无锚框的目标检测器不需要与锚框相关的超参数,直接回归物体位置。
[0054]
基于无锚框目标检测器的检测方法包括:基于中心点的方法和基于关键点的方法。
[0055]
然而,无锚框目标检测器在真实应用场景中存在检测能力不高的问题,需要通过手动设计网络结构和增加计算量来提高目标检测器的检测能力。可见,本领域亟需一种方案来改进训练过程,提高目标检测器的精度,且在不显著增加目标检测器的计算量的情况
下,提高目标检测器的检测能力。
[0056]
以下,将在多个实施例中分别说明本发明的技术方案。
[0057]
实施例一
[0058]
目标检测器(fcos)使用的基础主干网络(backbone)是深度残差网络,深度残差网络包括至少三个卷积层,fcos预训练网络包括resnet-50、resnet-101、resnext-101等。
[0059]
图1为本发明实施例的一种目标检测器的训练方法流程图。如图1所示,一种目标检测器的训练方法,包括步骤s110~步骤s130:
[0060]
步骤s110,获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;
[0061]
步骤s120,基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;
[0062]
步骤s130,对稀疏的神经网络进行重新训练,得到稠密的神经网络。
[0063]
本实施例通过获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;对稀疏的神经网络进行重新训练,得到稠密的神经网络;能够在不增加目标检测器的计算量的情况下,增加无锚框目标检测器的精度。
[0064]
实施例二
[0065]
在上述实施例的基础上,对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络,包括步骤s201至步骤s204:
[0066]
步骤s201,获取预训练目标检测器的主干网络的所有卷积层参数;其中,主干网络为稠密的预训练神经网络,基础主干网络包括多个卷积层参数。
[0067]
步骤s202,计算每一卷积层参数的重要性得分;
[0068]
步骤s203,根据卷积层参数的个数和预设剪枝率确定剪枝阈值;
[0069]
步骤s204,根据剪枝阈值和重要性得分进行剪枝,以生成稀疏的神经网络。
[0070]
在一些实现方式中,步骤s202,计算每一卷积层参数的重要性得分,包括:
[0071]
计算每一卷积层参数的权值与反向传播计算梯度的积的l2范数,以得到每一卷积层参数的重要性得分。
[0072]
在一些实现方式中,通过如下表达式获得反向传播计算梯度:
[0073][0074]
其中,gi表示反向传播计算梯度,l表示目标检测器的总损失值,wi表示卷积层参数的权值,i表示卷积层参数的索引。
[0075]
因此,每个卷积层参数的重要性得分si可由下述表达式得到:
[0076]
si=||gi·
wi||2[0077]
其中,i为无锚框目标检测器中卷积层参数的索引,||a||2为a的l2范数。
[0078]
在一些实现方式中,步骤s203,根据卷积层参数的个数和预设剪枝率确定剪枝阈值,包括步骤s2031至步骤s2033:
[0079]
步骤s2031,基于卷积层参数的个数n和预设剪枝率p确定剪枝数量n*p;
[0080]
步骤s2032,按照卷积层参数的重要性得分对卷积层参数进行排序;
[0081]
步骤s2033,将排序后的第n*p个卷积层参数的重要性得分作为剪枝阈值。
[0082]
在一些实现方式中,步骤s204,根据剪枝阈值和重要性得分进行剪枝,以生成稀疏的神经网络,包括:
[0083]
遍历每一卷积层参数,对重要性得分小于剪枝阈值的卷积层参数对应的网络连接进行剪枝。
[0084]
在一些实现方式中,对重要性得分小于剪枝阈值的卷积层参数对应的网络连接进行剪枝,包括:
[0085]
将重要性得分小于剪枝阈值的卷积层参数置为零。
[0086]
剪枝,表示对卷积层参数进行抑制,以将稠密的预训练神经网络转化为稀疏的神经网络,使得稀疏网络具备更好的效率。
[0087]
在本实施例中,假设总共有n个卷积层参数,需要剪去n*p个重要性得分si最低的卷积层参数,则:
[0088]
s331、按照重要性得分si对卷积层参数进行排序,将与第n*p个卷积层参数的重要性得分si作为剪枝阈值t。
[0089]
s332、遍历所有卷积层参数。
[0090]
s333、当某个卷积层参数重要性得分小于剪枝阈值t时,则对该卷积层参数对应的连接进行裁剪,从而剪去重要性得分比较低的部分连接。可选的,可以通过将该重要性得分对应的卷积层参数的权值设置为0,从而实现对该卷积层参数对应的连接进行裁剪。
[0091]
当某个卷积层参数重要性得分大于阈值t时,则保留该卷积层参数对应的连接。
[0092]
完成上述遍历后,得到稀疏的主干网络,在稀疏的主干网络中,卷积层有n*(1-p)个权值非零的参数。
[0093]
在本实施例中,通过对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络,能够得到仅有n*(1-p)个权值非零的参数的稀疏神经网络,使得稀疏网络具备更好的效率。
[0094]
实施例三
[0095]
在上述实施例的基础上,目标检测器的训练方法,还包括:使用非极大值抑制策略筛选边界框,包括:
[0096]
将置信度最高的边界框作为真实框;
[0097]
若第一边界框与真实框的交并比大于非极大值抑制阈值,则降低第一边界框的置信度;
[0098]
若降低后第一边界框的置信度低于删除阈值,则删除第一边界框;
[0099]
其中,第一边界框为除置信度最高的边界框外的任一边界框。
[0100]
由于整个网络会产生大量的边界框,在众多的边界框中存在重叠的、错误的检测样本。所以需要剔除同一目标上的重叠边界框,最终使得每个目标只保留一个得分最高的边界框。
[0101]
具体地,计算边界框与真实框的交并比iou,其中,bb表示边界框(bounding box),gt表示真实框(ground truth)。
[0102]
假设所有边界框的集合为s。根据所有边界框的置信度进行排序,选中置信度最高的边界框作为真实框b,将真实框b加入到结果集合s’中。并将真实框b从所有边界框的集合s中排除。
[0103]
遍历所有边界框的集合s中剩余的第一边界框a;如果第一边界框a和真实框b的交并比iou小于等于非极大值抑制阈值,则在所有边界框的集合s中保留第一边界框a;如果剩余的第一边界框a和真实框b的交并比iou大于非极大值抑制阈值,则降低第一边界框a的置信度。若第一边界框a的置信度低于删除阈值,则删除第一边界框a。若第一边界框a的得分不低于删除阈值,则保留第一边界框a。
[0104]
然后,从所有边界框的集合s未处理的边界框中继续选择置信度最高的边界框,重复上述流程。直至集合s为空。集合s’为所求结果。
[0105]
在本实施例中,如果第一边界框与真实框的交并比大于非极大值抑制阈值,则降低第一边界框的置信度而不是直接删除第一边界框,能够更好地筛选边界框,提高了目标检测器精度。
[0106]
实施例四
[0107]
在上述实施例的基础上,对稀疏的神经网络进行重新训练,得到稠密的神经网络,包括:
[0108]
将已置零的网络连接重新激活,得到稠密的神经网络。
[0109]
在本实施例的训练过程中,卷积神经网络经历了“稠密-稀疏-稠密”的流程。初始化的稠密神经网络是普通的预训练卷积网络(cnn)。在网络剪枝之后,将不重要的连接置零,得到小的稀疏神经网络。在网络重新训练的过程中,已置零的网络连接被重新激活,得到稠密神经网络。重新激活是指,在稀疏过程中已置零的卷积层参数能够在重新训练的过程中,通过反向传播继续更新。
[0110]
在本实施例中,通过将已置零的网络连接被重新激活,得到稠密神经网络,能够得到目标检测器所需要的神经网络。
[0111]
实施例五
[0112]
在上述实施例的基础上,图2为本发明实施例的一种目标检测器的训练装置示意图。本实施例提供一种目标检测器的训练装置,包括:
[0113]
获取模块101,用于获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;
[0114]
第一训练模块102,用于基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;
[0115]
第二训练模块103,用于对稀疏的神经网络进行重新训练,得到稠密的神经网络。
[0116]
本实施例通过获取样本数据集和预训练目标检测器,预训练目标检测器的主干网络包括稠密的神经网络;基于样本数据集对预训练目标检测器的主干网络进行训练,并对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络;对稀疏的神经网络进行重新训练,得到稠密的神经网络;在不增加目标检测器的计算量的情况下,能够增加无锚框目标检测器的精度。
[0117]
在上述实施例的基础上,第一训练模块102对预训练目标检测器的主干网络进行剪枝,以生成稀疏的神经网络,包括模块s201至模块s204:
[0118]
第一获取模块201,用于获取预训练目标检测器的主干网络的所有卷积层参数;其中,主干网络为稠密的预训练神经网络,基础主干网络包括多个卷积层参数。
[0119]
计算模块202,用于计算每一卷积层参数的重要性得分;
[0120]
剪枝阈值确定模块203,用于根据卷积层参数的个数和预设剪枝率确定剪枝阈值;
[0121]
稀疏模块204,用于根据剪枝阈值和重要性得分进行剪枝,以生成稀疏的神经网络。
[0122]
在一些实现方式中,计算每一卷积层参数的重要性得分,包括:
[0123]
计算每一卷积层参数的权值与反向传播计算梯度的积的l2范数,以得到每一卷积层参数的重要性得分。
[0124]
在一些实现方式中,通过如下表达式获得反向传播计算梯度:
[0125][0126]
其中,gi表示反向传播计算梯度,l表示目标检测器的总损失值,wi表示卷积层参数的权值,i表示卷积层参数的索引。
[0127]
因此,每个卷积层参数的重要性得分si可由下述表达式得到:
[0128]
si=||gi·
wi||2。
[0129]
其中,i为无锚框目标检测器中卷积层参数的索引,||a||2为a的l2范数。
[0130]
在一些实现方式中,根据卷积层参数的个数和预设剪枝率确定剪枝阈值,包括:
[0131]
基于卷积层参数的个数n和预设剪枝率p确定剪枝数量n*p;
[0132]
按照卷积层参数的重要性得分对卷积层参数进行排序;
[0133]
将排序后的第n*p个卷积层参数的重要性得分作为剪枝阈值。
[0134]
在一些实现方式中,根据剪枝阈值和重要性得分进行剪枝,以生成稀疏的神经网络,包括:
[0135]
遍历每一卷积层参数,对重要性得分小于剪枝阈值的卷积层参数对应的网络连接进行剪枝。
[0136]
在一些实现方式中,对重要性得分小于剪枝阈值的卷积层参数对应的网络连接进行剪枝,包括:
[0137]
将重要性得分小于剪枝阈值的卷积层参数置为零。
[0138]
本实施例通过稠密-稀疏-稠密(dense-sparse-dense)训练策略,改进了无锚框目标检测器的训练过程,提高了无锚框目标检测器的精度;通过改进的剪枝方案,使得训练过程中的稀疏网络具备更好效率,提高剪枝后主干网络的性能;本实施例还使用改进的软化非极大值抑制策略更好地筛选边框,提高了精度;本实施例使用深度学习方案,结合目标检测样本数据集,优化训练过程,从而提高了检测性能;本实施例可以应用于实际的目标检测项目中。
[0139]
实施例六
[0140]
在上述实施例的基础上,本实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的方法。
[0141]
上述存储介质可以是闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只
读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等。
[0142]
本实施例中,获取目标检测任务的样本数据集和预训练的imagenet卷积神经网络;加载预训练模型作为初始化;对于目标检测器的主干网络,根据预定的剪枝策略生成稀疏神经网络;使用无锚框目标检测器对主干网络重新训练,恢复裁剪后的连接,获得稠密神经网络。
[0143]
关于方法的其他内容请参见前述实施例,本实施例中不再赘述。
[0144]
实施例七
[0145]
在上述实施例的基础上,本实施例提供一种电子设备,包括处理器和存储器,存储器上存储有计算机程序,处理器执行计算机程序时实现上述实施例的方法。
[0146]
关于方法的内容请参见前述实施例,本实施例中不再赘述。
[0147]
处理器可以是专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例中的方法。关于方法的内容请参见前述实施例,本实施例中不再赘述。
[0148]
存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
[0149]
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0150]
需要说明的是,在本发明中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0151]
虽然本发明所揭露的实现方式如上,但上述的内容只是为了便于理解本发明而采
用的实现方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献