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

一种目标检测的优化方法及设备与流程

2021-11-09 22:43:00 来源:中国专利 TAG:


1.本公开涉及目标检测技术领域,特别涉及一种目标检测的优化方法及设备。


背景技术:

2.目标检测是图像处理和计算机视觉学科的重要分支,也是智能监控系统的核心部分,同时目标检测也是身份识别领域基础性的算法,对后续的人脸识别、步态识别、人群计数等任务起着至关重要的作用。
3.目标检测具体是指找出图像中所有感兴趣的物体,包括物体定位和物体分类两个子任务,能够同时确定物体的类别和位置。目标检测模型的主要性能指标是检测准确度和速度,其中准确度主要考虑物体的定位以及分类准确度。
4.传统的目标检测模型为了提高检测速度,通常采用轻量网络进行检测,但是轻量网络为了保证检测速度通常设置较少的模型参数,而模型参数少便意味着检测准确度降低,无法解决在提高准确度的同时避免引入更多的模型参数的问题。


技术实现要素:

5.本公开提供一种目标检测的优化方法及设备,用于在提高目标检测准确度的同时避免引入更多的模型参数,从而保证目标检测的速度不降低。
6.第一方面,本公开实施例提供的一种目标检测的优化方法,包括:
7.将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别;
8.其中,所述目标检测模型包含多个深度卷积的网络层,所述目标检测模型是利用第一训练样本集进行训练得到待优化模型后,利用最优剪枝方案对所述待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练得到的,其中所述最优剪枝方案是从不同的剪枝方法和剪枝率确定的各个剪枝方案中筛选得到的。
9.本实施例提供的目标检测模型,通过多个深度卷积的网络层编码图像更多的空间信息,提高目标检测模型的准确度,同时,通过多个剪枝方案对目标检测模型中的模型参数进行修剪处理,大幅降低目标检测模型的模型参数,提高目标检测模型的速度。
10.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,还包括:
11.对获取的包含对象的视频流进行解码,得到三通道rgb格式的包含对象的各帧图像;或,
12.对获取的包含对象的未处理图像进行格式转换,得到rgb格式的包含对象的图像。
13.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,还包括:
14.在保证所述图像的原始比例不变的条件下,对所述图像的尺寸进行归一化处理,得到预设尺寸的图像。
15.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别,包括:
16.将包含对象的图像输入到训练好的目标检测模型进行检测,得到所述图像中所述对象的各个候选框的坐标以及各个所述候选框对应的类别的置信度;
17.从各个所述候选框中筛选出置信度大于阈值的各个优选候选框;
18.根据所述各个优选候选框的坐标确定所述对象在所述图像中的坐标,根据所述各个优选候选框对应的类别确定所述对象的类别。
19.作为一种可选的实施方式,所述根据所述各个优选候选框的坐标确定所述对象在所述图像中的坐标,根据所述各个优选候选框对应的类别确定所述对象的类别,包括:
20.根据非极大值抑制nms方法,从所述各个优选候选框中筛选出最优候选框;
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.利用图形处理器gpu处理所述计算量高于数据阈值的网络层的数据,利用中央处理器cpu处理所述计算量不高于数据阈值的网络层的数据。
46.作为一种可选的实施方式,所述确定所述对象在所述图像中的坐标以及所述对象的类别之后,还包括:
47.从所述类别属于预设类别的图像中,筛选出包含最大尺寸的所述对象的图像;或,
48.从所述类别属于预设类别且所述对象的尺寸大于尺寸阈值的图像中,筛选出所述对象的清晰度最高的图像;或,
49.从所述类别属于预设类别的图像中,筛选出所述对象的清晰度最高的图像;或,
50.从所述类别属于预设类别且所述对象的清晰度大于清晰阈值的图像中,筛选出所述对象的尺寸最大的图像。
51.作为一种可选的实施方式,还包括:
52.根据预设关键点,获取筛选出的图像中所述对象的各个关键点的位置信息;
53.根据所述位置信息对所述筛选出的图像中的对象进行对齐处理;
54.对所述对齐处理后的所述图像进行特征提取,得到所述对象的特征。
55.第二方面,本公开实施例提供的一种目标检测的优化设备,包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如下步骤:
56.将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别;
57.其中,所述目标检测模型包含多个深度卷积的网络层,所述目标检测模型是利用第一训练样本集进行训练得到待优化模型后,利用最优剪枝方案对所述待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练得到的,其中所述最优剪枝方案是从不同的剪枝方法和剪枝率确定的各个剪枝方案中筛选得到的。
58.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,所述处理器具体还被配置为执行:
59.对获取的包含对象的视频流进行解码,得到三通道rgb格式的包含对象的各帧图像;或,
60.对获取的包含对象的未处理图像进行格式转换,得到rgb格式的包含对象的图像。
61.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,所述处理器具体还被配置为执行:
62.在保证所述图像的原始比例不变的条件下,对所述图像的尺寸进行归一化处理,得到预设尺寸的图像。
63.作为一种可选的实施方式,所述处理器具体被配置为执行:
64.将包含对象的图像输入到训练好的目标检测模型进行检测,得到所述图像中所述对象的各个候选框的坐标以及各个所述候选框对应的类别的置信度;
65.从各个所述候选框中筛选出置信度大于阈值的各个优选候选框;
66.根据所述各个优选候选框的坐标确定所述对象在所述图像中的坐标,根据所述各个优选候选框对应的类别确定所述对象的类别。
67.作为一种可选的实施方式,所述处理器具体被配置为执行:
68.根据非极大值抑制nms方法,从所述各个优选候选框中筛选出最优候选框;
69.将所述最优候选框的坐标确定为所述对象在所述图像中的坐标,将所述最优候选框对应的类别确定为所述对象的类别。
70.作为一种可选的实施方式,若将包含对象的图像的尺寸进行归一化处理后输入到训练好的目标检测模型进行检测,则将所述最优候选框的坐标确定为所述对象在所述图像中的坐标之前,所述处理器具体还被配置为执行:
71.将所述最优候选框的坐标转换到所述归一化处理前的所述图像的坐标系中,将转换后得到的坐标确定为所述最优候选框的坐标。
72.作为一种可选的实施方式,所述目标检测模型包括骨干网络、颈网络以及头网络,其中:
73.所述骨干网络用于提取所述图像的特征,所述骨干网络包括多个深度卷积的网络层和多个单位卷积的网络层,其中所述深度卷积的网络层对称分布在骨干网络的头部和尾部,所述单位卷积的网络层分布在所述骨干网络的中部;
74.所述颈网络用于对所述骨干网络提取的特征进行特征融合,得到融合的特征图;
75.所述头网络用于对所述融合的特征图中的对象进行检测,得到所述对象在所述图像中的坐标以及所述对象的类别。
76.作为一种可选的实施方式,所述第二训练样本集中训练样本的数据量小于第一训练样本集中训练样本的数据量。
77.作为一种可选的实施方式,所述剪枝方法包括块剪枝、结构化剪枝、非结构化剪枝中的至少一种。
78.作为一种可选的实施方式,所述处理器具体被配置为执行:
79.利用所述最优剪枝方案,对所述待优化模型中的至少一个网络层对应的模型参数进行修剪处理。
80.作为一种可选的实施方式,所述处理器具体还被配置为通过如下方式确定所述最优剪枝方案:
81.基于不同的剪枝方法和剪枝率,确定各个剪枝方案;
82.根据贝叶斯优化对各个剪枝方案对应的待优化模型的性能分别进行评估,得到各个待优化模型的评估性能;
83.从各个评估性能中确定最优评估性能对应的最优剪枝方案。
84.作为一种可选的实施方式,所述处理器具体被配置为执行:
85.根据贝叶斯优化对各个剪枝方案分别对应的待优化模型的性能进行初始评估,得到各个待优化模型的初始评估性能;
86.按预设迭代次数,根据所述待优化模型服从的高斯过程的均值的梯度对性能的影响程度,对各个剪枝方案进行筛选,并对筛选后的各个剪枝方案对应的待优化模型的性能进行重新评估;
87.根据最后一次迭代完成后得到的各个剪枝方案对应的评估性能,确定各个待优化模型的评估性能。
88.作为一种可选的实施方式,所述处理器具体被配置为执行:
89.将所述梯度变换为梯度概率;
90.通过将梯度概率大于第一阈值的待优化模型的剪枝方案,替换为梯度概率小于第二阈值的待优化模型的剪枝方案,对各个剪枝方案进行筛选,其中所述第一阈值大于所述第二阈值。
91.作为一种可选的实施方式,所述处理器具体还被配置为执行:
92.确定所述目标检测模型中各个网络层的计算量;
93.利用图形处理器gpu处理所述计算量高于数据阈值的网络层的数据,利用中央处理器cpu处理所述计算量不高于数据阈值的网络层的数据。
94.作为一种可选的实施方式,所述确定所述对象在所述图像中的坐标以及所述对象的类别之后,所述处理器具体还被配置为执行:
95.从所述类别属于预设类别的图像中,筛选出包含最大尺寸的所述对象的图像;或,
96.从所述类别属于预设类别且所述对象的尺寸大于尺寸阈值的图像中,筛选出所述对象的清晰度最高的图像;或,
97.从所述类别属于预设类别的图像中,筛选出所述对象的清晰度最高的图像;或,
98.从所述类别属于预设类别且所述对象的清晰度大于清晰阈值的图像中,筛选出所述对象的尺寸最大的图像。
99.作为一种可选的实施方式,所述处理器具体还被配置为执行:
100.根据预设关键点,获取筛选出的图像中所述对象的各个关键点的位置信息;
101.根据所述位置信息对所述筛选出的图像中的对象进行对齐处理;
102.对所述对齐处理后的所述图像进行特征提取,得到所述对象的特征。
103.第三方面,本公开实施例还提供一种目标检测的优化装置,包括:
104.检测单元,用于将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别;
105.其中,所述目标检测模型包含多个深度卷积的网络层,所述目标检测模型是利用
第一训练样本集进行训练得到待优化模型后,利用最优剪枝方案对所述待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练得到的,其中所述最优剪枝方案是从不同的剪枝方法和剪枝率确定的各个剪枝方案中筛选得到的。
106.第四方面,本公开实施例还提供计算机存储介质,其上存储有计算机程序,该程序被处理器执行时用于实现上述第一方面所述方法的步骤。
107.本公开的这些方面或其他方面在以下的实施例的描述中会更加简明易懂。
附图说明
108.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
109.图1为本公开实施例提供的一种现有轻量网络的结构示意图;
110.图2为本公开实施例提供的一种优化的目标检测方法实施流程图;
111.图3为本公开实施例提供的一种目标检测模型的结构示意图;
112.图3a为本公开实施例提供的第一种骨干网络的结构示意图;
113.图3b为本公开实施例提供的第二种骨干网络的结构示意图;
114.图3c为本公开实施例提供的第三种骨干网络的结构示意图;
115.图4为本公开实施例提供的一种目标检测模型中各个网络的连接关系示意图;
116.图5为本公开实施例提供的一种块剪枝示意图;
117.图6a为本公开实施例提供的第一种结构化剪枝示意图;
118.图6b为本公开实施例提供的第二种结构化剪枝示意图;
119.图7为本公开实施例提供的一种非结构化剪枝示意图;
120.图8为本公开实施例提供的一种剪枝方案的迭代筛选的实施流程图;
121.图9为本公开实施例提供的一种优化的目标检测设备示意图;
122.图10为本公开实施例提供的一种优化的目标检测装置示意图。
具体实施方式
123.为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
124.本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
125.本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
126.目标检测是图像处理和计算机视觉学科的重要分支,也是智能监控系统的核心部分,同时目标检测也是身份识别领域基础性的算法,对后续的人脸识别、步态识别、人群计数等任务起着至关重要的作用。目标检测具体是指找出图像中所有感兴趣的物体,包括物体定位和物体分类两个子任务,能够同时确定物体的类别和位置。目标检测模型的主要性能指标是检测准确度和速度,其中准确度主要考虑物体的定位以及分类准确度。传统的目标检测模型为了提高检测速度,通常采用轻量网络进行检测,如图1所示的一种轻量网络mobienetv2的网络结构,从输入到输出依次为单位卷积的网络层(conv 1
×
1)、深度卷积的网络层(dw conv 3
×
3)、单位卷积的网络层(conv 1
×
1)。其中,容易理解的是,卷积核越小,网络层能够提取的特征信息越少,网络中的模型参数越少,计算速度越快,因此单位卷积的网络层能够提高检测速度,而深度卷积的网络层能够提取更多的特征信息,模型参数较多,能够保证检测的准确度。但是目前的轻量网络在确保一定的检测准确度的情况下,为了提高检测速度通常设置较少的模型参数,无法解决在引入深度卷积的网络层提高检测准确度的情况下还可以保证检测速度不下降。
127.本实施例为了解决目前检测速度、检测准确度难以同时得到保证的问题,本实施例的核心思想是一方面增加深度卷积的网络层来提高目标检测准确率,另一方面,利用各个剪枝方案对目标检测模型中的模型参数进行修剪处理,从而降低模型参数的总量,提高目标检测的速度。本实施例从目标检测模型的结构和模型参数优化出发,通过增加深度卷积的网络层,以及对目标检测模型中的模型参数进行修剪处理,保证满足高准确率的同时提高目标检测模型的检测速度。
128.如图2所示,本实施例提供的一种优化的目标检测方法,该方法的具体实施流程如下所示:
129.步骤200、将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别;
130.其中,所述目标检测模型包含多个深度卷积的网络层,所述目标检测模型是利用第一训练样本集进行训练得到待优化模型后,利用最优剪枝方案对所述待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练得到的,其中所述最优剪枝方案是从不同的剪枝方法和剪枝率确定的各个剪枝方案中筛选得到的。
131.本实施例中的对象包括但不限于人脸、人体、身体部位、车辆、物体等,具体根据实际需求确定,本实施例对此不作过多限定。
132.实施中,将图像输入到目标检测模型后,输出图像中的对象的坐标和对象的类别,输出的形式具体是通过候选框的方式输出的,即在该图像中通过候选框将对象框出,并标注该候选框的坐标(即对象的坐标),以及该候选框对应的类别,其中类别可以根据实际需求确定,例如该目标检测模型用于检测人脸,则该类别包括人脸、非人脸两个类别,或者该目标检测模型用于检测性别,则该类别包括男性、女性两个类别,本实施例对此不作过多限定。
133.本实施例中目标检测模型由于包括多个深度卷积的网络层,在一些实施例中,具体可以使用深度可分离卷积来更好的编码更多空间信息,深度可分离卷积分为两部分,首先使用给定的卷积核尺寸对每个通道(如rgb通道中的每个通道)分别卷积并将卷积结果进行组合,该部分被称为深度卷积(depthwise convolution),随后深度可分离卷积使用单位
卷积核进行标准卷积并输出特征图,该部分被称为逐点卷积(pointwise convolution)。由于深度卷积或深度可分离卷积能够编码更多的空间信息,同时比常规卷积的计算量小,从而能够在仅增加了很少的目标检测模型的模型参数的前提下提升检测准确度,而通过各个剪枝方案筛选得到的最优剪枝方案对目标检测模型的模型参数进行修剪处理后,能够去除不影响检测准确度的模型参数,从而减少模型参数,提高目标检测的速度。
134.在一些示例中,如图3所示,本实施例中的目标检测模型的结构包括:
135.骨干网络300,所述骨干网络用于提取所述图像的特征;如果检测的对象为人脸,则骨干网络用于提取图像中与人脸相关的语义特征信息。
136.在一些示例中,所述骨干网络包括多个深度卷积的网络层和多个单位卷积的网络层,骨干网络的结构包括如下任一种:
137.第一种结构,如图3a所示,包括两个深度卷积的网络层(dw conv 3
×
3)、两个单位卷积的网络层(conv 1
×
1)。并且,将两个深度卷积的网络层(dw conv3
×
3)位于模型的中部,将两个单位卷积的网络层分别置于模型的首部和尾部。其中,深度卷积(dw conv)相对于1x1卷积(conv1x1)可以编码更多的空间信息,同时深度卷积也是一种轻量单元,在1x1卷积之间增加深度卷积,可以在仅增加了很少的模型参数前提下提升人脸检测准确度。
138.第二种结构,如图3b所示,包括两个深度卷积的网络层(dw conv 3
×
3)、两个单位卷积的网络层(conv 1
×
1)。所述深度卷积的网络层对称分布在骨干网络的头部和尾部,所述单位卷积的网络层分布在所述骨干网络的中部。其中,将两个深度卷积调整到1x1卷积的前后,相比于第一种结构可以进一步提升编码空间信息的能力,从而进一步提升人脸检测的准确度,并且增加的模型参数也很少。
139.本实施例重新设计了目标检测网络的骨干网络的结构,在保证准确度没有下降的前提下通过剪枝方案大幅降低模型参数量来提升目标检测的推理速度。相对于mobilenetv2在准确度没有下降的前提下,使得目标检测的推理速度得到较大提升,其中,经过大量试验证明,本实施例中的第二种结构的检测速度和检测准确度综合得到的检测性能是最优的。
140.如图3c所示,骨干网络采用自底向上、逐层求精的特征提取架构,位于上层的网络层能够提取的特征,相对位于下层的网络层能够提取的特征较少,但是更加精细。
141.颈网络301,所述颈网络用于对所述骨干网络提取的特征进行特征融合,得到融合的特征图;
142.需要说明的是,骨干网络不同的网络层提取的特征的语义信息是不同的,通过颈网络能够将不同的语义信息进行融合,得到同时包含对象的高层语义信息与底层语义信息的特征图。
143.实施中,颈网络可以采用上采样 拼接融合的结构,包括但不限于特征图金字塔网络(feature pyramid networks,fpn)、感知对抗网络(perceptual adversarial network,pan)、专用网络、自定义网络等。
144.头网络302,所述头网络用于对所述融合的特征图中的对象进行检测,得到所述对象在所述图像中的坐标以及所述对象的类别。
145.实施中,头网络的作用是进一步从颈网络输出的特征图中提取对象的候选框的坐标及置信度。其中置信度用于表征属于某一类别的程度。
146.如图4所示,本实施例提供的目标检测模型中各个网络的连接关系,包含对象的图像通过输入层(input)输入到骨干网络(backbone)进行特征提取,颈网络(neck)将骨干网络各层提取的特征进行特征融合后,通过头网络(head)对融合的特征图中的对象进行检测,从而确定该对象的候选框的坐标及该对象类别,例如确定出图像中人脸的坐标以及该对象为人脸的置信度。
147.在一些实施例中,为了提高检测的准确率,将包含对象的图像输入到训练好的目标检测模型进行检测之前,还可以提前对图像进行处理。本实施例提供如下多种处理方式,其中各种处理方式可以单独实施,也可以结合实施,本实施例对此不作过多限定。
148.第一种处理方式,是格式转换处理,具体包括如下任一种:
149.第1种、对获取的包含对象的视频流进行解码,得到三通道rgb格式的包含对象的各帧图像;
150.实施中,如果获取的是视频流,则可以对视频流进行解码,统一转换为3通道bgr图像。
151.其中非三通道rgb格式的图像包括但不限于灰度图、yuv格式的图像。其中,“y”表示明亮度,也就是灰阶值,“u”和“v”表示色度,用于描述影像色彩及饱和度。
152.第2种、对获取的包含对象的未处理图像进行格式转换,得到rgb格式的包含对象的图像。
153.若获取的未处理图像格式为非rgb格式的图像,则将未处理图像转换为rgb格式的图像。
154.第二种处理方式,是尺寸归一化处理,具体包括如下步骤:
155.在保证所述图像的原始比例不变的条件下,对所述图像的尺寸进行归一化处理,得到预设尺寸的图像。
156.实施中,可以将图像归一化处理为预设尺寸如宽高640
×
384dpi。为了保证图像的原始比例,还可以在归一化处理时进行填充padding处理。
157.在一些实施例中,通过上述一种或多种处理方式对获取的图像进行处理后,输入到训练好的目标检测模型进行检测,其中具体的检测步骤如下所示:
158.步骤1

1、将包含对象的图像输入到训练好的目标检测模型进行检测,得到所述图像中所述对象的各个候选框的坐标以及各个所述候选框对应的类别的置信度;
159.其中,候选框的坐标用于表示检测出的对象的位置,候选框的置信度用于表示检测出的对象属于某一类别的可信程度。
160.步骤1

2、从各个所述候选框中筛选出置信度大于阈值的各个优选候选框;
161.需要说明的是,首先滤除置信度小于阈值thr的候选框。其中thr越小说明目标检测模型检测对象的能力越强,但可能导致少量误检。其中阈值的设置可根据实际应用需求进行调整,本实施例对此不作过多限定。
162.步骤1

3、根据所述各个优选候选框的坐标确定所述对象在所述图像中的坐标,根据所述各个优选候选框对应的类别确定所述对象的类别。
163.实施中,为了滤除同一对象的冗余的候选框,从各个优选候选框中确定出最优的,滤除其余的优选候选框,具体通过如下步骤滤除:
164.步骤2

1、根据非极大值抑制(non

maximum suppression,nms)方法,从所述各个
优选候选框中筛选出最优候选框;
165.其中,nms用于抑制不是极大值的优选候选框,提取置信度最高的优选候选框,可以理解为局部最大搜索。
166.步骤2

2、将所述最优候选框的坐标确定为所述对象在所述图像中的坐标,将所述最优候选框对应的类别确定为所述对象的类别。
167.在一些实施例中,通过上述方式对图像进行处理,并输入目标检测模型进行检测得到对象的最优候选框的坐标和类别。具体实施中,以人脸检测为例,能够在包含人脸的图像中显示最优候选框,其中最优候选框将人脸框住,并标出人脸的位于该图像中的坐标以及该人脸的类别的置信度。由于对包含对象的图像的尺寸进行归一化处理后输入到训练好的目标检测模型进行检测,而目标检测模型输出的最优候选框的坐标是基于进行归一化处理后的图像上的坐标,因此需要将该坐标转换到归一化处理前原始的图像的坐标系中,从而最终确定的对象在原始的图像中的位置。具体的处理方式如下:
168.若将包含对象的图像的尺寸进行归一化处理后输入到训练好的目标检测模型进行检测,则将所述最优候选框的坐标确定为所述对象在所述图像中的坐标之前,将所述最优候选框的坐标转换到所述归一化处理前的所述图像的坐标系中,将转换后得到的坐标确定为所述最优候选框的坐标。
169.在一些实施例中,本实施例中的目标检测模型需要经过至少两次训练得到,其中,第一次训练过程是,利用第一训练样本集对目标检测模型进行训练,得到训练好的待优化模型,具体训练的过程是利用第一训练样本集中的训练图像作为输入,与该训练图像对应的对象的坐标和类别作为输出,对目标检测模型中的模型参数进行训练,直至根据模型参数计算得到的损失函数的损失值小于设定值,确定此时训练完成。其中,损失函数可以根据实际需求选择,例如可以是arcface函数,本实施例对此不作过多限定。
170.第二次训练过程是,利用第二训练样本集对修剪处理后的待优化模型进行训练,得到训练好的目标检测模型。具体训练的过程是利用第二训练样本集中的训练图像作为输入,与该训练图像对应的对象的坐标和类别作为输出,对目标检测模型中的模型参数进行训练,直至根据模型参数计算得到的损失函数的损失值小于设定值,确定此时训练完成。
171.需要说明的是,第一次训练过程和第二次训练过程的不同在于训练样本集中包含的训练样本的数量不同,本实施例中第二训练样本集中训练样本的数据量小于第一训练样本集中训练样本的数据量。实施中,由于第一次训练过程中需要用到的第一训练样本集的训练数据量很大,为了加速剪枝处理的过程,可以从第一训练样本集中选取部分训练样本形成第二训练样本集,从而加速剪枝处理的过程。并且由于第二次训练过程是对已经训练好的待优化模型,因此只需使用较少的训练样本也能达到训练的目的,能够有效节省训练的时间和计算量。
172.需要说明的是,神经网络模型的网络层数越深、模型参数越多,计算得到的结果就越精细,但与此同时,意味着所消耗的计算资源也越多,此时便需要利用剪枝技术对模型参数进行修剪处理,将那些对输出结果贡献不大的模型参数剪掉。目前的目标检测方案,难以实现高精度且快速的检测,而基于剪枝方案能够在执行效率和准确性之间取得平衡的特定,本实施例利用剪枝方案对模型参数进行修剪处理,从而保证检测精度和检测效率。本实施例中涉及的剪枝方法结合了非结构化剪枝、结构化剪枝和块剪枝,根据不同剪枝方法的
特性,为当前模型选择最优的组合。
173.在一些实施例中,本实施例利用各个剪枝方案对训练好的待优化模型中的模型参数进行修剪处理,其中根据不同的剪枝方法和剪枝率,确定各个剪枝方案,进而从中筛选出最优的进行修剪处理。具体的,可以将不同的剪枝方法和不同的剪枝率进行组合,得到各个剪枝方案。
174.在一些实施例中,本实施例中的剪枝方法包括但不限于块剪枝、结构化剪枝、非结构化剪枝中的至少一种。
175.1)块剪枝
176.块剪枝能够在保持高精度的同时实现高硬件并行性。除了3
×
3conv层外,还可以映射到其他类型的深度神经网络(deep neural networks,dnn),如1
×
1conv层和全连接层(fully connected layers,fc层)。尤其适用于资源有限的移动设备上的高效dnn推理。块剪枝是将目标检测模型中的网络层(dnn层)对应的权重矩阵划分为大小相等的多个块(block),每个块中包含来自多个滤波器(filter)的多个通道(channel)的参数核(kernel)的权重。在每个块中,在所有过滤器的相同位置上修剪一组权重,同时在所有通道的相同位置上修剪权重。被修剪的权重将穿透一个块内所有过滤器和通道的相同位置。其中,每个块中经过修剪的权重的数量是灵活的,并且可以在不同的块之间有所不同。每个块中的参数核采用相同的修剪处理,即修剪相同位置的一个或多个权重。
177.从精度的角度来看,块剪枝采用了一种细粒度的结构化剪枝策略,以增加结构的灵活性,减少精度的损失。从硬件性能的角度来看,与粗粒度结构修剪相比,块剪枝方案通过利用适当的块大小和编译器级代码生成的帮助,能够实现高硬件并行性。块剪枝可以从内存和计算两个角度更好地利用硬件并行性。首先,在卷积计算中,所有的滤波器在每一层共享相同的输入。由于在每个块中的所有过滤器中删除了相同的位置,因此这些过滤器将跳过读取相同的输入数据,从而减轻处理这些过滤器的线程之间的内存压力。其次,限制在一个块内删除相同位置的通道,保证了所有这些通道共享相同的计算模式(索引),从而消除了处理每个块内通道的线程之间的计算发散。块剪枝方案中,块大小影响精度和硬件加速。一方面,更小的块大小提供了更高的结构灵活性,因为它的粒度更细,通常可以获得更高的精度,但代价是降低速度。另一方面,更大的块大小可以更好地利用硬件并行性来实现更高的加速度,但也可能造成更严重的精度损失。因此,可以根据实际需求确定块大小。为了确定适当的块大小,首先通过考虑设备的计算资源来确定每个块中包含的通道数。例如,为每个块使用与终端cpu/gpu中的向量寄存器长度相同的通道数来实现高并行性。如果每个块中包含的通道数小于向量寄存器的长度,则向量寄存器和向量计算单元都将得不到充分利用。相反的,增加通道的数量并不会提高性能,反而会导致更严重的精度下降。因此,考虑到精度和硬件加速之间的权衡,每个块中包含的滤波器的数量应该相应地确定。通过推理速度可以推导出硬件加速度,不需要对dnn模型(目标检测模型)进行再训练就可以得到硬件加速度,与模型精度相比更容易推导。因此,设定合理的最小推理速度要求作为需要满足的设计目标。在块大小满足推理速度目标的情况下,选择在每个块中保留最小的滤波器数量,以减少精度损失。块剪枝能够在提升推理速度和保持准确度方面达到较好的平衡。
178.如图5所示,每个块中包含来自m个filter与n个channel的m
×
n个kernel,同一块内的修剪处理是相同的,不同块之间的修剪处理是不同的。其中白色的方块代表被修剪掉
的参数核的权重。
179.2)结构化剪枝
180.结构化剪枝是对权重矩阵的整个通道/过滤器进行剪枝,例如按照一定的结构规律,将某个维度的参数核的权重全部修剪掉。如图6a所示,将某个filter维度上的所有的参数核的权重全部修剪掉。如图6b所示,将某个channel维度上的所有的参数核的权重全部修剪掉。其中白色的方块代表被修剪掉的参数核的权重。过滤器修剪删除了权重矩阵的整行,其中通道修剪删除了权重矩阵中对应通道的连续列。结构化修剪保持了降维权重矩阵的规则形状。因此,它是硬件友好的,可以利用硬件并行性来加速。然而,由于结构化剪枝的粗粒度特征,其准确性会受到很大的影响。其中,基于模式的结构化剪枝被认为是一种细粒度的结构化剪枝方案。由于其适当的结构灵活性和结构规律性,同时保持了精度和硬件性能。基于模式的结构化剪枝包括核模式剪枝和连通性剪枝两部分。核模式剪枝用于在每个卷积核中修剪(删除)固定数量的权重。
181.结构化剪枝大部分情况下能够获得较高加速但准确度可能会大幅下降,但在模型参数的结构能够与结构化剪枝匹配时,有可能既获得较高加速又使准确度下降较小。
182.3)非结构化剪枝
183.非结构化剪枝允许对权重矩阵中任意位置的权重进行修剪,保证了搜索优化修剪结构的更高灵活性,通常压缩率高,精度损失小。但是,非结构化剪枝会导致权重矩阵的不规则稀疏性,在计算过程中需要额外的索引来定位非零权值。这使得底层系统(例如,移动平台上的gpu)提供的硬件并行性得不到充分利用。因此,单独的非结构化修剪不适用于dnn推理加速。如图7所示,非结构化剪枝用于修剪某个filter维度上某个channel的参数核的权重。其中白色的方块代表被修剪掉的参数核的权重。非结构化剪枝相比于块剪枝和结构化剪枝更加繁琐,计算量大。非结构化剪枝大部分情况下能够使准确度下降较小但加速也较低,但在模型参数的结构能够与非结构化方法匹配时,既能使准确度下降较小又能获得较高加速。
184.在一些实施例中,相同的剪枝方法采用不同的剪枝率所获得的加速及准确度结果也会不同。本实施例基于不同的剪枝方法和剪枝率,能够确定出各个剪枝方案。可选的,剪枝率包括1x、2x、2.5x、3x、5x、7x、10x、skip,其中,x表示倍数,剪枝率越大保留的模型参数越少,1x表示不修剪,skip表示直接修剪掉整个网络层。
185.在一些实施例中,本实施例利用从各个剪枝方案中筛选出的最优剪枝方案,对待优化模型中的至少一个网络层对应的模型参数进行修剪处理。从而减少模型参数的数量,提高检测的速度。在一些实施例中,本实施例利用从各个剪枝方案中筛选出的最优剪枝方案,对待优化模型中的所有网络层对应的模型参数进行修剪处理,也就是说,本实施例确定的各个剪枝方案包括目标检测模型中的各个层对应的剪枝方法和剪枝率。
186.本实施例中的目标检测模型或待优化模型为cnn结构,其中,在cnn结构中,经过多个卷积层和池化层后,连接着1个或1个以上的全连接层。全连接层中的每个神经元与其前一层的所有神经元进行全连接。全连接层可以整合卷积层或者池化层中具有类别区分性的局部信息。为了提升cnn网络性能,全连接层每个神经元的激励函数一般采用relu函数。最后一层全连接层的输出值被传递给一个输出,可以采用softmax逻辑回归(softmax regression)进行分类,该层也可称为softmax层(softmax layer)。通常cnn的全连接层的
训练算法采用后向传播(back propagation,bp)算法。在计算神经网络有多少层时,通常只统计具有权重和参数的层,因为池化层没有权重和参数,只有一些超参数。本实施例中的剪枝方案也可以对池化层中的超参数进行修剪处理。
187.在一些实施例中,在随机生成的各个剪枝方案构成的搜索空间中,根据贝叶斯优化对各个剪枝方案对应的待优化模型的性能进行评估,根据评估结果从各个剪枝方案中筛选出最优剪枝方案。在一些实施例中,根据评估结果从各个剪枝方案中筛选出最优剪枝方案的过程是利用高斯过程不断迭代进行的,其中利用剪枝方案对待优化模型中的模型参数进行修剪处理后,利用第二训练样本集对修剪处理后的待优化模型进行训练,假设任意训练好的待优化模型都服从高斯过程(高斯分布),利用训练好的待优化模型的高斯过程的均值的梯度来更新剪枝方案,利用更新后的剪枝方案继续对待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练,利用训练好的待优化模型的高斯过程的均值的梯度来继续更新剪枝方案,直至满足迭代次数。利用最后一次迭代后得到的剪枝方案对待优化模型中的模型参数进行修剪处理后,利用第二训练样本集对修剪处理后的待优化模型进行训练后,根据评估结果,从各个剪枝方案中筛选出最优剪枝方案。
188.实施中,本实施例具体通过如下步骤确定目标检测模型的最优剪枝方案:
189.步骤3

1、基于不同的剪枝方法和剪枝率,确定各个剪枝方案;
190.实施中,根据不同的剪枝方法和剪枝率两两组合,随机生成各个剪枝方案。此时生成的剪枝方案数量很大,可以超过10000种。
191.步骤3

2、根据贝叶斯优化(bayesian optimization,bo)对各个剪枝方案对应的待优化模型的性能分别进行评估,得到各个待优化模型的评估性能;
192.实施中,需要先确定各个剪枝方案分别对应的待优化模型,具体过程是,利用各种剪枝方案对目标检测模型分别进行修剪处理,得到与各种剪枝方案对应的各个初始待优化模型,利用第二训练样本集分别对各个初始待优化模型进行训练,得到各个待优化模型。
193.贝叶斯优化的主要目的是学习目标检测模型的表达形式,在一定范围内求一个函数的最大(或最小)值。本实施例利用贝叶斯优化,对各个剪枝方案对应的性能进行评估,求解评估函数的最大值。使用的评估函数如公式(1)所示,函数值p用于表示剪枝方案对应的待优化模型的性能,其中,性能包括目标检测模型的推理速度和准确度。剪枝方案的目的是为了去掉模型中的不重要的模型参数。
194.p=a

α*max(0,t

t)
ꢀꢀꢀ
公式(1);
195.其中,a表示目标检测模型检测的准确度,(数值范围0~1.0);t表示目标检测模型推理的延迟时间,(单位毫秒);t表示延迟阈值时间,(单位毫秒);α为权重系数(可根据需求设置,范围0.001~0.1)。通过p表示检测速度与检测准确度的综合,也就是说当目标检测模型满足速度要求同时准确度较高时p较大,反之较小。
196.步骤3

3、从各个评估性能中确定最优评估性能对应的最优剪枝方案。
197.在一些实施例中,根据贝叶斯优化对各个剪枝方案对应的待优化模型的性能分别进行评估,得到各个待优化模型的评估性能的过程是一个不断进行迭代更新剪枝方案以及对应的待优化模型的评估性能的过程。具体实施流程如下所示:
198.1)根据贝叶斯优化对各个剪枝方案分别对应的待优化模型的性能进行初始评估,
得到各个待优化模型的初始评估性能;
199.在一些实施例中,基于不同的剪枝方法和剪枝率生成的各个剪枝方案分别对应的待优化模型,是利用各个剪枝方案分别对待优化模型中的模型参数进行修剪之后,再利用第二训练样本集对修剪后的初始待优化模型进行训练得到的,从而根据贝叶斯优化对训练好的待优化模型的性能进行初始评估,得到各个待优化模型的初始评估性能。
200.2)按预设迭代次数,根据所述待优化模型服从的高斯过程的均值的梯度对性能的影响程度,对各个剪枝方案进行筛选,并对筛选后的各个剪枝方案对应的待优化模型的性能进行重新评估;
201.在一些实施例中,得到初始评估性能之后,利用训练好的各个待优化模型服从的高斯过程(高斯分布),求解各个待优化模型的高斯过程的均值的梯度,其中梯度大于零说明该梯度对应的剪枝方案有利于提高性能,梯度小于零说明该梯度对应的剪枝方案会影响性能的提高,因此利用大于零的梯度对应的剪枝方案,替换掉小于零的梯度对应的剪枝方案,对各个剪枝方案进行筛选,并对筛选后的各个剪枝方案对应的待优化模型的性能进行重新评估。
202.在一些实施例中,为了便于计算梯度对性能的影响程度,还可以根据梯度概率的大小来进行筛选,具体如下:
203.通过sigmoid函数将所述梯度变换为梯度概率;
204.通过将梯度概率大于第一阈值的待优化模型的剪枝方案,替换为梯度概率小于第二阈值的待优化模型的剪枝方案,对各个剪枝方案进行筛选,其中所述第一阈值大于所述第二阈值。
205.在一些实施例中,确定出各个待优化模型的初始评估性能之后,首先确定各个待优化模型的高斯过程的均值的梯度(梯度概率),基于梯度对各个剪枝方案进行初次筛选,并利用初次筛选后得到的各个剪枝方案确定对应的待优化模型以及对应的再次评估性能,并继续确定初次筛选后的各个剪枝方案对应的高斯过程的均值的梯度,对各个剪枝方案进行再次筛选,不断重复上述过程直至达到迭代次数。
206.3)根据最后一次迭代完成后得到的各个剪枝方案对应的评估性能,确定各个待优化模型的评估性能。
207.为了描述剪枝方案的筛选过程,如图8所示,本实施例还提供一种剪枝方案的迭代筛选过程,具体实施流程如下所示:
208.步骤800、获取预设迭代次数n;
209.其中,n大于零;
210.步骤801、基于不同的剪枝方法和剪枝率随机生成各个剪枝方案;
211.其中,m大于零。
212.步骤802、按照各个剪枝方案对待优化模型进行剪枝处理,并利用第二训练样本集进行重新训练;
213.步骤803、根据贝叶斯优化确定各个剪枝方案对应的评估性能;
214.步骤804、计算各个剪枝方案对应的高斯过程的均值的梯度,并转换为梯度概率,根据梯度概率筛选出各个剪枝方案;
215.步骤805、判断当前的迭代次数是否达到n,若是执行步骤806,否则返回执行步骤
802;
216.步骤806、根据贝叶斯优化对各个剪枝方案对应的待优化模型的性能分别进行评估,得到各个待优化模型的评估性能;
217.步骤807、从各个评估性能中确定最优评估性能对应的最优剪枝方案。
218.实施中,剪枝方案的筛选过程主要由控制器和评估器两部分组成。首先控制器用于随机生成多种(m种,m>=10000)剪枝方案,然后评估器评估剪枝方案的性能(速度和准确度),为控制器生成更优剪枝方案提供指导。之后控制器根据指导生成新的剪枝方案,经过多轮(n轮,n<=100)迭代,控制器输出同时满足速度和准确度要求的最优剪枝方案。具体的,控制器会根据从评估器输出的梯度概率来生成新的剪枝方案,在潜在最优的剪枝方案中依据每个剪枝方案对应梯度的梯度概率来确定是否进行替换,确定后会用梯度概率最低的剪枝方案替换掉梯度概率较高的剪枝方案。
219.由于评估每个剪枝方案需要对待优化模型进行修剪处理并重训练待优化模型,导致时间成本较高,所以引入贝叶斯优化(bo)来优化加速评估过程。从控制器获取多个剪枝方案后,评估器会选出一部分相对来说更有可能性能最优的剪枝方案进行评估,剩余潜力较小的剪枝方案不再进行评估。通过减少实际评估的数量来达到优化检测评估过程的目的。为了处理剪枝方案的不连续问题,还可以为贝叶斯优化构建一个专用的高斯过程(gp)。本实施例中采用高斯过程(gp)均值的梯度来引导剪枝方案更新。为了更直观地使用梯度,本实施例还通过负梯度sigmoid函数变换将梯度转换为了梯度概率,高梯度概率对应的剪枝方案会更可能被低梯度概率对应的剪枝方案所替换。
220.需要说明的是,本实施例通过最优剪枝方案对待优化模型中的模型参数进行修剪处理的方法,以及获取最优剪枝方案的方法还可以应用于其他网络模型的优化,例如可以利用本实施例中的剪枝方案对特征提取模型、人脸清晰度模型、关键点定位模型等进行优化处理,提高模型的推理速度,本实施例中的剪枝方案的优化方法可以针对不同的网络结构进行优化,具体可以根据实际需求设置,本实施例对此不作过多限定。
221.在一些实施例中,本实施例还提供一种分支优化的方法,用于联合gpu和cpu进行并行优化,统计目标检测模型的各分支计算复杂度,优先将计算复杂度较高的分支放在gpu中执行,复杂度较低的分支放在cpu中执行,并通过预推理来实际评估不同配置下目标检测模型的推理综合速度,选择速度最快的作为实际执行的配置。
222.实施中,具体可通过如下方式进行分支优化:
223.确定所述目标检测模型中各个网络层的计算量;利用图形处理器gpu处理所述计算量高于数据阈值的网络层的数据,利用中央处理器cpu处理所述计算量不高于数据阈值的网络层的数据。
224.可选的,将目标检测模型中位于较上层的网络层通过cpu对该网络层的数据进行处理,将位于较下层的网络层通过gpu对该网络层的数据进行处理,由于目标检测模型中越靠近上层的网络层处理的数据量越少,越靠近下层处理的数据量越多的特点,将计算复杂度高的设置在gpu中执行,计算复杂度低的设置在cpu中执行。从而提高实际运行的目标检测模型的推理速度。
225.在一些实施例中,通过上述目标检测模型确定所述对象在所述图像中的坐标以及所述对象的类别之后,还可以对得到的图像进一步处理,具体包括如下任一或任多种处理
方式:
226.方式1、从所述类别属于预设类别的图像中,筛选出包含最大尺寸的所述对象的图像;
227.方式2、从所述类别属于预设类别且所述对象的尺寸大于尺寸阈值的图像中,筛选出所述对象的清晰度最高的图像;
228.方式3、从所述类别属于预设类别的图像中,筛选出所述对象的清晰度最高的图像;
229.方式4、从所述类别属于预设类别且所述对象的清晰度大于清晰阈值的图像中,筛选出所述对象的尺寸最大的图像。
230.实施中,可以根据实际需求对检测得到的包含同一对象的多张图像中,进一步筛选出对象尺寸最大和/或清晰度最高的,以用于后续进行特征提取,提高特征提取的准确度。
231.在一些实施例中,从检测得到的包含同一对象的多张图像中,筛选出符合需求的图像后,进一步对该图像中的对象进行对齐处理,如果该对象为人脸,则根据如下方式进行人脸对齐:
232.根据预设关键点,获取筛选出的图像中所述对象的各个关键点的位置信息;根据所述位置信息对所述筛选出的图像中的对象进行对齐处理;对所述对齐处理后的所述图像进行特征提取,得到所述对象的特征。
233.其中,关键点用于表示人脸部的各个关键点,对齐处理用于表示将对象(人脸)中不符合正脸要求的图像,处理为正脸的图像,从而进一步提高特征提取的准确度,为后续使用提取的特征提供有力保障。
234.本公开实施例采用专门设计的轻量化网络作为目标检测模型的骨干网络,通过由多种剪枝方法、剪枝率的组合得到的多个剪枝方案,在保持准确度没有下降的前提下通过大幅降低模型参数量来提升目标检测模型的推理速度,进一步通过分支优化提升目标检测模型的推理速度,并在结合特征提取的过程中,通过对检测出的图像进行筛选、对齐处理等,提高特征提取的准确度,同时也能提高特征提取的速度。
235.基于相同的发明构思,本公开实施例还提供了一种优化的目标检测设备,由于该设备即是本公开实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
236.如图9所示,包括处理器900和存储器901,所述存储器901用于存储所述处理器900可执行的程序,所述处理器900用于读取所述存储器901中的程序并执行如下步骤:
237.将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别;
238.其中,所述目标检测模型包含多个深度卷积的网络层,所述目标检测模型是利用第一训练样本集进行训练得到待优化模型后,利用最优剪枝方案对所述待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练得到的,其中所述最优剪枝方案是从不同的剪枝方法和剪枝率确定的各个剪枝方案中筛选得到的。
239.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,所述处理器具体还被配置为执行:
240.对获取的包含对象的视频流进行解码,得到三通道rgb格式的包含对象的各帧图像;或,
241.对获取的包含对象的未处理图像进行格式转换,得到rgb格式的包含对象的图像。
242.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,所述处理器具体还被配置为执行:
243.在保证所述图像的原始比例不变的条件下,对所述图像的尺寸进行归一化处理,得到预设尺寸的图像。
244.作为一种可选的实施方式,所述处理器具体被配置为执行:
245.将包含对象的图像输入到训练好的目标检测模型进行检测,得到所述图像中所述对象的各个候选框的坐标以及各个所述候选框对应的类别的置信度;
246.从各个所述候选框中筛选出置信度大于阈值的各个优选候选框;
247.根据所述各个优选候选框的坐标确定所述对象在所述图像中的坐标,根据所述各个优选候选框对应的类别确定所述对象的类别。
248.作为一种可选的实施方式,所述处理器具体被配置为执行:
249.根据非极大值抑制nms方法,从所述各个优选候选框中筛选出最优候选框;
250.将所述最优候选框的坐标确定为所述对象在所述图像中的坐标,将所述最优候选框对应的类别确定为所述对象的类别。
251.作为一种可选的实施方式,若将包含对象的图像的尺寸进行归一化处理后输入到训练好的目标检测模型进行检测,则将所述最优候选框的坐标确定为所述对象在所述图像中的坐标之前,所述处理器具体还被配置为执行:
252.将所述最优候选框的坐标转换到所述归一化处理前的所述图像的坐标系中,将转换后得到的坐标确定为所述最优候选框的坐标。
253.作为一种可选的实施方式,所述目标检测模型包括骨干网络、颈网络以及头网络,其中:
254.所述骨干网络用于提取所述图像的特征,所述骨干网络包括多个深度卷积的网络层和多个单位卷积的网络层,其中所述深度卷积的网络层对称分布在骨干网络的头部和尾部,所述单位卷积的网络层分布在所述骨干网络的中部;
255.所述颈网络用于对所述骨干网络提取的特征进行特征融合,得到融合的特征图;
256.所述头网络用于对所述融合的特征图中的对象进行检测,得到所述对象在所述图像中的坐标以及所述对象的类别。
257.作为一种可选的实施方式,所述第二训练样本集中训练样本的数据量小于第一训练样本集中训练样本的数据量。
258.作为一种可选的实施方式,所述剪枝方法包括块剪枝、结构化剪枝、非结构化剪枝中的至少一种。
259.作为一种可选的实施方式,所述处理器具体被配置为执行:
260.利用所述最优剪枝方案,对所述待优化模型中的至少一个网络层对应的模型参数进行修剪处理。
261.作为一种可选的实施方式,所述处理器具体还被配置为通过如下方式确定所述最优剪枝方案:
262.基于不同的剪枝方法和剪枝率,确定各个剪枝方案;
263.根据贝叶斯优化对各个剪枝方案对应的待优化模型的性能分别进行评估,得到各个待优化模型的评估性能;
264.从各个评估性能中确定最优评估性能对应的最优剪枝方案。
265.作为一种可选的实施方式,所述处理器具体被配置为执行:
266.根据贝叶斯优化对各个剪枝方案分别对应的待优化模型的性能进行初始评估,得到各个待优化模型的初始评估性能;
267.按预设迭代次数,根据所述待优化模型服从的高斯过程的均值的梯度对性能的影响程度,对各个剪枝方案进行筛选,并对筛选后的各个剪枝方案对应的待优化模型的性能进行重新评估;
268.根据最后一次迭代完成后得到的各个剪枝方案对应的评估性能,确定各个待优化模型的评估性能。
269.作为一种可选的实施方式,所述处理器具体被配置为执行:
270.将所述梯度变换为梯度概率;
271.通过将梯度概率大于第一阈值的待优化模型的剪枝方案,替换为梯度概率小于第二阈值的待优化模型的剪枝方案,对各个剪枝方案进行筛选,其中所述第一阈值大于所述第二阈值。
272.作为一种可选的实施方式,所述处理器具体还被配置为执行:
273.确定所述目标检测模型中各个网络层的计算量;
274.利用图形处理器gpu处理所述计算量高于数据阈值的网络层的数据,利用中央处理器cpu处理所述计算量不高于数据阈值的网络层的数据。
275.作为一种可选的实施方式,所述确定所述对象在所述图像中的坐标以及所述对象的类别之后,所述处理器具体还被配置为执行:
276.从所述类别属于预设类别的图像中,筛选出包含最大尺寸的所述对象的图像;或,
277.从所述类别属于预设类别且所述对象的尺寸大于尺寸阈值的图像中,筛选出所述对象的清晰度最高的图像;或,
278.从所述类别属于预设类别的图像中,筛选出所述对象的清晰度最高的图像;或,
279.从所述类别属于预设类别且所述对象的清晰度大于清晰阈值的图像中,筛选出所述对象的尺寸最大的图像。
280.作为一种可选的实施方式,所述处理器具体还被配置为执行:
281.根据预设关键点,获取筛选出的图像中所述对象的各个关键点的位置信息;
282.根据所述位置信息对所述筛选出的图像中的对象进行对齐处理;
283.对所述对齐处理后的所述图像进行特征提取,得到所述对象的特征。
284.基于相同的发明构思,本公开实施例还提供了一种优化的目标检测装置,由于该设备即是本公开实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
285.如图10所示,该装置包括:
286.检测单元1000,用于将包含对象的图像输入到训练好的目标检测模型进行检测,确定所述对象在所述图像中的坐标以及所述对象的类别;
287.其中,所述目标检测模型包含多个深度卷积的网络层,所述目标检测模型是利用第一训练样本集进行训练得到待优化模型后,利用最优剪枝方案对所述待优化模型中的模型参数进行修剪处理,利用第二训练样本集对修剪处理后的待优化模型进行训练得到的,其中所述最优剪枝方案是从不同的剪枝方法和剪枝率确定的各个剪枝方案中筛选得到的。
288.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,还包括转换单元具体用于:
289.对获取的包含对象的视频流进行解码,得到三通道rgb格式的包含对象的各帧图像;或,
290.对获取的包含对象的未处理图像进行格式转换,得到rgb格式的包含对象的图像。
291.作为一种可选的实施方式,所述将包含对象的图像输入到训练好的目标检测模型进行检测之前,还包括归一化单元具体用于:
292.在保证所述图像的原始比例不变的条件下,对所述图像的尺寸进行归一化处理,得到预设尺寸的图像。
293.作为一种可选的实施方式,所述检测单元具体用于:
294.将包含对象的图像输入到训练好的目标检测模型进行检测,得到所述图像中所述对象的各个候选框的坐标以及各个所述候选框对应的类别的置信度;
295.从各个所述候选框中筛选出置信度大于阈值的各个优选候选框;
296.根据所述各个优选候选框的坐标确定所述对象在所述图像中的坐标,根据所述各个优选候选框对应的类别确定所述对象的类别。
297.作为一种可选的实施方式,所述检测单元具体用于:
298.根据非极大值抑制nms方法,从所述各个优选候选框中筛选出最优候选框;
299.将所述最优候选框的坐标确定为所述对象在所述图像中的坐标,将所述最优候选框对应的类别确定为所述对象的类别。
300.作为一种可选的实施方式,若将包含对象的图像的尺寸进行归一化处理后输入到训练好的目标检测模型进行检测,则将所述最优候选框的坐标确定为所述对象在所述图像中的坐标之前,所述转换单元具体还用于:
301.将所述最优候选框的坐标转换到所述归一化处理前的所述图像的坐标系中,将转换后得到的坐标确定为所述最优候选框的坐标。
302.作为一种可选的实施方式,所述目标检测模型包括骨干网络、颈网络以及头网络,其中:
303.所述骨干网络用于提取所述图像的特征,所述骨干网络包括多个深度卷积的网络层和多个单位卷积的网络层,其中所述深度卷积的网络层对称分布在骨干网络的头部和尾部,所述单位卷积的网络层分布在所述骨干网络的中部;
304.所述颈网络用于对所述骨干网络提取的特征进行特征融合,得到融合的特征图;
305.所述头网络用于对所述融合的特征图中的对象进行检测,得到所述对象在所述图像中的坐标以及所述对象的类别。
306.作为一种可选的实施方式,所述第二训练样本集中训练样本的数据量小于第一训练样本集中训练样本的数据量。
307.作为一种可选的实施方式,所述剪枝方法包括块剪枝、结构化剪枝、非结构化剪枝
中的至少一种。
308.作为一种可选的实施方式,所述检测单元具体用于:
309.利用所述最优剪枝方案,对所述待优化模型中的至少一个网络层对应的模型参数进行修剪处理。
310.作为一种可选的实施方式,所述检测单元具体用于通过如下方式确定所述最优剪枝方案:
311.基于不同的剪枝方法和剪枝率,确定各个剪枝方案;
312.根据贝叶斯优化对各个剪枝方案对应的待优化模型的性能分别进行评估,得到各个待优化模型的评估性能;
313.从各个评估性能中确定最优评估性能对应的最优剪枝方案。
314.作为一种可选的实施方式,所述检测单元具体用于:
315.根据贝叶斯优化对各个剪枝方案分别对应的待优化模型的性能进行初始评估,得到各个待优化模型的初始评估性能;
316.按预设迭代次数,根据所述待优化模型服从的高斯过程的均值的梯度对性能的影响程度,对各个剪枝方案进行筛选,并对筛选后的各个剪枝方案对应的待优化模型的性能进行重新评估;
317.根据最后一次迭代完成后得到的各个剪枝方案对应的评估性能,确定各个待优化模型的评估性能。
318.作为一种可选的实施方式,所述检测单元具体用于:
319.将所述梯度变换为梯度概率;
320.通过将梯度概率大于第一阈值的待优化模型的剪枝方案,替换为梯度概率小于第二阈值的待优化模型的剪枝方案,对各个剪枝方案进行筛选,其中所述第一阈值大于所述第二阈值。
321.作为一种可选的实施方式,还包括分支单元具体用于:
322.确定所述目标检测模型中各个网络层的计算量;
323.利用图形处理器gpu处理所述计算量高于数据阈值的网络层的数据,利用中央处理器cpu处理所述计算量不高于数据阈值的网络层的数据。
324.作为一种可选的实施方式,所述确定所述对象在所述图像中的坐标以及所述对象的类别之后,还包括筛选单元具体用于:
325.从所述类别属于预设类别的图像中,筛选出包含最大尺寸的所述对象的图像;或,
326.从所述类别属于预设类别且所述对象的尺寸大于尺寸阈值的图像中,筛选出所述对象的清晰度最高的图像;或,
327.从所述类别属于预设类别的图像中,筛选出所述对象的清晰度最高的图像;或,
328.从所述类别属于预设类别且所述对象的清晰度大于清晰阈值的图像中,筛选出所述对象的尺寸最大的图像。
329.作为一种可选的实施方式,还包括对齐单元具体用于:
330.根据预设关键点,获取筛选出的图像中所述对象的各个关键点的位置信息;
331.根据所述位置信息对所述筛选出的图像中的对象进行对齐处理;
332.对所述对齐处理后的所述图像进行特征提取,得到所述对象的特征。
333.本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
334.本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
335.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
336.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
337.显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献