一种检测模型压缩方法、装置和计算机可读存储介质与流程

文档序号:19529705发布日期:2019-12-27 15:16阅读:174来源:国知局
一种检测模型压缩方法、装置和计算机可读存储介质与流程

本发明涉及图像识别技术领域,特别是涉及一种检测模型压缩方法、装置和计算机可读存储介质。



背景技术:

人脸检测是计算机视觉领域的一个重要技术,是人脸对齐、人脸识别、人脸跟踪等技术的基础。

近年来,人脸检测技术发展迅速,然而深度神经网络具有参数多、计算量大的特点,造成了大量的内存需求以及计算负担,使得人脸检测模型难以应用到存储和计算资源有限的硬件设备中,例如手机等。

可见,如何降低检测模型的计算量,是本领域技术人员需要解决的问题。



技术实现要素:

本发明实施例的目的是提供一种检测模型压缩方法、装置和计算机可读存储介质,可以降低模型的计算量。

为解决上述技术问题,本发明实施例提供一种检测模型压缩方法,包括:

对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像;

将各所述标准图像输入初始检测模型,计算所述初始检测模型中特定卷积层中各个通道的损失梯度值;

根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各所述特定卷积层进行剪枝处理,得到压缩后的检测模型。

可选的,所述初始检测模型包括候选框生成网络、候选框筛选网络和输出网络;所述特定卷积层包括所述输出网络中的所有卷积层。

可选的,所述根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各所述特定卷积层进行剪枝处理,得到压缩后的检测模型包括:

将所述输出网络中的所有卷积层按照损失梯度值升序的排列,删除每个卷积层中前70%的通道,得到压缩后的输出网络;

将压缩后的输出网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。

可选的,所述特定卷积层还包括所述候选框筛选网络中的所有卷积层;

相应的,所述根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各所述特定卷积层进行剪枝处理,得到压缩后的检测模型还包括:

将所述候选框筛选网络中的所有卷积层按照损失梯度值升序的顺序排列,删除每个卷积层中前50%的通道,得到压缩后的候选框筛选网络;

将压缩后的候选框筛选网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。

可选的,在根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各所述特定卷积层进行剪枝处理,得到压缩后的检测模型之后还包括:

对压缩后的检测模型中的特定参数进行量化,从而实现对所述检测模型的再次压缩。

本发明实施例还提供了一种检测模型压缩装置,包括缩放单元、计算单元和压缩单元;

所述缩放单元,用于对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像;

所述计算单元,用于将各所述标准图像输入初始检测模型,计算所述初始检测模型中特定卷积层中各个通道的损失梯度值;

所述压缩单元,用于根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各所述特定卷积层进行剪枝处理,得到压缩后的检测模型。

可选的,所述初始检测模型包括候选框生成网络、候选框筛选网络和输出网络;所述特定卷积层包括所述输出网络中的所有卷积层。

可选的,所述压缩单元包括删除子单元和修改子单元;

所述删除子单元,用于将所述输出网络中的所有卷积层按照损失梯度值升序的排列,删除每个卷积层中前70%的通道,得到压缩后的输出网络;

所述修改子单元,用于将压缩后的输出网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。

可选的,所述特定卷积层还包括所述候选框筛选网络中的所有卷积层;

相应的,所述删除子单元还用于将所述候选框筛选网络中的所有卷积层按照损失梯度值升序的顺序排列,删除每个卷积层中前50%的通道,得到压缩后的候选框筛选网络;

所述修改子单元还用于将压缩后的候选框筛选网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。

可选的,还包括量化单元;

所述量化单元,用于对压缩后的检测模型中的特定参数进行量化,从而实现对所述检测模型的再次压缩。

本发明实施例还提供了一种检测模型压缩装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述任意一项所述检测模型压缩方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述检测模型压缩方法的步骤。

由上述技术方案可以看出,对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像;将各标准图像输入初始检测模型,计算初始检测模型中特定卷积层中各个通道的损失梯度值。损失梯度值越小,说明通道的表征能力越弱。为了减少检测模型的计算量,在不影响检测性能的前提下,可以将表征能力较弱的通道删除。在该技术方案中,可以根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各所述特定卷积层进行剪枝处理,得到压缩后的检测模型。通过对检测模型进行压缩,大大减少了检测模型对内存的要求,可以使得压缩后的检测模型很方便的移植到存储和计算资源有限的硬件设备中。通过删除检测模型中表征能力较弱的通道,减少了检测模型的网络参数,提升了检测模型的计算效率。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种检测模型压缩方法的流程图;

图2a为本发明实施例提供的一种未进行压缩的检测模型中各网络的卷积层分布示意图;

图2b为本发明实施例提供的一种候选框筛选网络剪枝前后的卷积层分布示意图;

图2c为本发明实施例提供的一种输出网络剪枝前后的卷积层分布示意图;

图3为本发明实施例提供的一种特定参数的量化示意图;

图4为本发明实施例提供的一种检测模型压缩装置的结构示意图;

图5为本发明实施例提供的一种检测模型压缩装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种检测模型压缩方法。图1为本发明实施例提供的一种检测模型压缩方法的流程图,该方法包括:

s101:对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像。

检测模型的类型有多种,常用的有人脸检测模型。

在利用检测模型对待检测图片进行分析之前,需要对待检测图片进行不同尺度的缩放处理。以人脸检测模型为例,可以将待检测图片按照大小为12×12、24×24和48×48这三种尺寸进行缩放处理,得到三种尺寸规格的标准图像。

s102:将各标准图像输入初始检测模型,计算初始检测模型中特定卷积层中各个通道的损失梯度值。

初始检测模型指得是未进行压缩处理的基于深度神经网络的检测模型。初始检测模型包括候选框生成网络、候选框筛选网络和输出网络。

结合上述举例的三种尺寸规格的标准图像,将各标准图像输入初始检测模型包括将大小为12×12的标准图像输入候选框生成网络中,得到粗略的人脸候选框、分类标签及特征点坐标。

接着,将大小为24×24的标准图像输入到候选框筛选网络中,结合在前一个网络中所获得的人脸候选框的坐标、分类标签及特征点坐标,过滤掉较差的候选框,候选框的过滤可以通过计算生成的候选框与真实的人脸框之间的并交比值即iou值(两个框交集部分与并集部分的比值),将iou值小于设定阈值的候选框直接去掉。对选定的人脸候选框进行边框回归(bounding-boxregression)和非极大值抑制(nms),进一步优化预测结果。边框回归的主要目的是使得候选框能够逐渐逼近真实的人脸框,非极大值抑制则能消除重叠的窗口。

最后,将大小为48×48的标准图像输入到输出网络中,与候选框筛选网络类似,对候选框进行边框回归和非极大值抑制,同时,还需要对人脸的面部特征点进行回归,最终输出结果。

每个网络中均包括有卷积层,在本发明实施例中,初始检测模型的压缩可以包括对输出网络的卷积层进行压缩,相应的,特定卷积层可以包括输出网络中的所有卷积层。

每个卷积层包括有多个通道,在本发明实施例中,通过计算各通道的损失梯度值,对各通道的表征能力进行评估。损失梯度值越大,说明说明通道的表征能力越强。

对于通道损失梯度值的计算可以分为前向操作(forward)和后向操作(backward)。具体来讲,forward操作即计算损失值,包含分类损失值、回归损失值和特征点定位损失值,最终的损失值为这三者加权平均值;backward操作即计算损失值的梯度,通过求导获得通道的损失梯度值。

s103:根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各特定卷积层进行剪枝处理,得到压缩后的检测模型。

通道的损失梯度值越小,说明该通道的表征能力越弱,因此,在本发明实施例中,可以将表征能力较弱的通道删除。

在实际应用中,可以根据网络中卷积层的工作性能,设定通道的删除比例。按照该删除比例,将表征能力较弱的通道删除之后,可以保证卷积层仍能正常工作即可。

具体的,可以将输出网络中的所有卷积层按照损失梯度值升序的排列,删除每个卷积层中前70%的通道,得到压缩后的输出网络。

考虑到输出网络的最后一个卷积层需要进行展平操作然后再与全连接层进行连接,参数量为3×3×128×256=294912,全连接层的参数占网络参数的90%。为了减少网络的计算量,可以将压缩后的输出网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。输出网络中修改后的卷积层大小为3×3,通道数量为256。

在本发明实施例中,除了对输出网络的卷积层进行压缩之外,还可以对候选框筛选网络的卷积层进行压缩处理,进一步减少检测模型的计算量。相应的,特定卷积层还包括候选框筛选网络中的所有卷积层;

对候选框筛选网络的卷积层进行压缩时,可以将候选框筛选网络中的所有卷积层按照损失梯度值升序的顺序排列,删除每个卷积层中前50%的通道,得到压缩后的候选框筛选网络。

考虑到候选框筛选网络的最后一个卷积层需要进行展平操作然后再与全连接层进行连接,参数量为3×3×64×128=73728,全连接层的参数占网络参数的90%。为了减少网络的计算量,可以将压缩后的候选框筛选网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。候选框筛选网络中修改后的卷积层大小为3×3,通道数量为128。

如图2a所示为未进行压缩的检测模型中各网络的卷积层分布示意图,如图2b所示为候选框筛选网络剪枝前后的卷积层分布示意图,图2b上侧示意图为未进行剪枝之前的候选框筛选网络的卷积层分布示意图,图2b下侧示意图为进行剪枝之后的候选框筛选网络的卷积层分布示意图,从图2b中可以看出,候选框筛选网络中各卷积层的通道数减少了50%,并且第一个全连接层变成了一个卷积核为3×3,通道数为128的卷积层。

如图2c所示为输出网络剪枝前后的卷积层分布示意图,图2c上侧示意图为未进行剪枝之前的输出网络的卷积层分布示意图,图2c下侧示意图为进行剪枝之后的输出网络的卷积层分布示意图,从图2c中可以看出,输出网络中各卷积层的通道数减少了70%,并且第一个全连接层变成了一个卷积核为3×3,通道数为256的卷积层。

通过对卷积层的通道进行删减,筛选出具有表征能力的通道,减少了检测模型的参数量。将候选框筛选网络和输出网络上的第一个全连接层修改为大小均为3×3,通道数量分别为128和256的卷积层,这样就相当于将展平操作转换为卷积操作,减少了网络的计算量。

由上述技术方案可以看出,对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像;将各标准图像输入初始检测模型,计算初始检测模型中特定卷积层中各个通道的损失梯度值。损失梯度值越小,说明通道的表征能力越弱。为了减少检测模型的计算量,在不影响检测性能的前提下,可以将表征能力较弱的通道删除。在该技术方案中,可以根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各特定卷积层进行剪枝处理,得到压缩后的检测模型。通过对检测模型进行压缩,大大减少了检测模型对内存的要求,可以使得压缩后的检测模型很方便的移植到存储和计算资源有限的硬件设备中。通过删除检测模型中表征能力较弱的通道,减少了检测模型的网络参数,提升了检测模型的计算效率。

在本发明实施例中,为了进一步减少检测模型的网络参数,可以在根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各特定卷积层进行剪枝处理,得到压缩后的检测模型之后,对压缩后的检测模型中的特定参数进行量化,从而实现对检测模型的再次压缩。

其中,特定参数可以包括激活函数数组和权重数组的参数。

对特定参数进行量化可以包括将特定参数量化为整数,例如,可以将权重数组和激活函数数组量化为8位的整数,如图3所示为本发明实施例中特定参数的量化示意图。

在具体实现中,可以根据等式:r=s(q-z),得到量化后的值。其中,q表示实数值,r表示量化后的值,s和z为量化参数,s为浮点型的scale,z为zero-point。

在本发明实施例中,可以对输出网络的卷积层进行剪枝,从而压缩检测模型,在此基础上,还可以对候选框筛选网络进行剪枝,进一步压缩检测模型。除了剪枝之外,还可以对检测模型的特定参数进行量化处理,进一步减少检测模型的网络参数。如下表1所示为对检测模型进行不同剪枝量化处理的性能比较表。

表1

size代表检测模型的大小。从表1中可以看出,通过对检测模型依次进行剪枝和量化处理,检测模型的召回率和平均归一化均方误差并没有发生太大的变化,也即检测模型的检测性能并没有受太大的影响,但是检测模型的大小发生了明显的变化,大大减少了检测模型对内存的要求。

图4为本发明实施例提供的一种检测模型压缩装置的结构示意图,包括缩放单元41、计算单元42和压缩单元43;

缩放单元41,用于对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像;

计算单元42,用于将各标准图像输入初始检测模型,计算初始检测模型中特定卷积层中各个通道的损失梯度值;

压缩单元43,用于根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各特定卷积层进行剪枝处理,得到压缩后的检测模型。

可选的,初始检测模型包括候选框生成网络、候选框筛选网络和输出网络;特定卷积层包括输出网络中的所有卷积层。

可选的,压缩单元包括删除子单元和修改子单元;

删除子单元,用于将输出网络中的所有卷积层按照损失梯度值升序的排列,删除每个卷积层中前70%的通道,得到压缩后的输出网络;

修改子单元,用于将压缩后的输出网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。

可选的,特定卷积层还包括候选框筛选网络中的所有卷积层;

相应的,删除子单元还用于将候选框筛选网络中的所有卷积层按照损失梯度值升序的顺序排列,删除每个卷积层中前50%的通道,得到压缩后的候选框筛选网络;

修改子单元还用于将压缩后的候选框筛选网络的第一个全连接层修改为卷积层,得到压缩后的检测模型。

可选的,还包括量化单元;

量化单元,用于对压缩后的检测模型中的特定参数进行量化,从而实现对检测模型的再次压缩。

图4所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,对获取的待检测图片按照预设的图片尺寸进行缩放处理,得到标准图像;将各标准图像输入初始检测模型,计算初始检测模型中特定卷积层中各个通道的损失梯度值。损失梯度值越小,说明通道的表征能力越弱。为了减少检测模型的计算量,在不影响检测性能的前提下,可以将表征能力较弱的通道删除。在该技术方案中,可以根据各个通道的损失梯度值以及特定卷积层对应的删除比例,对各特定卷积层进行剪枝处理,得到压缩后的检测模型。通过对检测模型进行压缩,大大减少了检测模型对内存的要求,可以使得压缩后的检测模型很方便的移植到存储和计算资源有限的硬件设备中。通过删除检测模型中表征能力较弱的通道,减少了检测模型的网络参数,提升了检测模型的计算效率。

图5为本发明实施例提供的一种检测模型压缩装置50的硬件结构示意图,包括:

存储器51,用于存储计算机程序;

处理器52,用于执行计算机程序以实现如上述任意一项检测模型压缩方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项检测模型压缩方法的步骤。

以上对本发明实施例所提供的一种检测模型压缩方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

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