特征检测方法、模型合并方法、设备和介质与流程

文档序号:30518983发布日期:2022-06-25 04:16阅读:84来源:国知局
特征检测方法、模型合并方法、设备和介质与流程

1.本发明涉及计算机视觉技术领域,尤其是涉及特征检测方法、模型合并方法、设备和介质。


背景技术:

2.由于实际业务的变动,越来越多的业务更倾向于边缘部署。边缘部署主要用于嵌入式设备,主要通过将模型打包封装到软件开发工具包(software development kit,sdk),集成到嵌入式设备,数据的处理和模型推理都在终端设备上执行。但是现有的模型个数太多,若一一进行部署,将导致边缘部署十分不利。


技术实现要素:

3.基于此,有必要针对上述问题,提供特征检测方法、模型合并方法、设备和介质,以解决现有模型不利于边缘部署的问题。
4.一种模型合并方法,应用于模型集合,所述模型集合包括网络结构相同的多个教师模型和一个学生模型,所述多个教师模型均已收敛,不同教师模型用于检测不同特征,所述学生模型未收敛,所述方法包括:
5.获取多个未携带标签的人脸训练图像,分别将第一人脸图像输入所述多个教师模型,获取每个教师模型输出的第一特征信息,将所有教师模型输出的第一特征信息作为所述第一人脸图像的标签;其中,所述第一人脸图像为所述多个未携带标签的人脸训练图像中的任意一个,不同教师模型输出的第一特征信息不同;
6.将携带有标签的第一人脸图像输入所述学生模型,获取所述学生模型输出的对应多个特征的第二特征信息;
7.通过预设的蒸馏损失函数,根据所述第一特征信息和所述第二特征信息计算蒸馏损失,根据所述蒸馏损失调整所述学生模型的参数,返回执行所述分别将第一人脸图像输入所述多个教师模型的步骤,直至所述学生模型收敛。
8.在其中一个具体实施例中,所述第一特征信息和所述第二特征信息均包括特征严重程度及置信度,所述蒸馏损失函数包括多个特征蒸馏损失函数,一个特征蒸馏损失函数对应一个特征,一个特征蒸馏损失函数包括一个软标签损失函数及一个硬标签损失函数;
9.所述通过预设的蒸馏损失函数,根据所述第一特征信息和所述第二特征信息计算蒸馏损失,包括:
10.通过所述软标签损失函数,根据所述第一特征信息中目标特征对应的特征严重程度和所述第二特征信息中目标特征对应的特征严重程度计算所述目标特征的软标签损失;其中,所述目标特征为所述多个教师模型检测的特征中的任意一个;
11.通过所述硬标签损失函数,根据所述第一特征信息中目标特征对应的置信度与所述第二特征信息中目标特征对应的特征严重程度计算所述目标特征的硬标签损失;
12.计算第一权重与所述软标签损失的第一乘积,及第二权重与所述硬标签损失的第
二乘积,将所述第一乘积与所述第二乘积的和作为所述目标特征对应的特征蒸馏损失;其中,所述第一权重与所述第二权重的和为1;
13.计算所有特征对应的特征蒸馏损失的和,以得到所述蒸馏损失。
14.在其中一个具体实施例中,所述软标签损失函数的公式为:
[0015][0016]
其中,n为目标特征对应的特征严重程度的总程度数;为所述第一特征信息中目标特征对应的特征严重程度,指示在温度=t的情况下,第一特征信息中目标特征对应的特征严重程度在程度j上的值;
[0017]
为所述第二特征信息中目标特征对应的特征严重程度,指示在温度=t的情况下,第二特征信息中目标特征对应的特征严重程度在程度j上的值。
[0018]
在其中一个具体实施例中,
[0019][0020]
其中,vj指示教师模型中全连接层上目标特征在程度j的输出;指示教师模型中全连接层上所有输出的和;
[0021][0022]
其中,zj指示目标特征对应的学生模型中全连接层上在程度j的输出;指示学生模型中全连接层上所有输出的和。
[0023]
在其中一个具体实施例中,所述硬标签损失函数的公式为:
[0024][0025]
其中,mj为所述第一特征信息中目标特征对应的置信度。
[0026]
在其中一个具体实施例中,所述计算所有特征对应的特征蒸馏损失的和之前,还包括:
[0027]
为每一特征对应的特征蒸馏损失赋予一个对应的特征权重;其中,所述特征权重基于不同特征蒸馏损失的减小速度确定。
[0028]
在其中一个具体实施例中,特征a的特征权重表示为:
[0029][0030]
其中,la(t-1)指示特征a在调整参数的第t-1步时的特征蒸馏损失;la(t-2)指示特
征a在调整参数的第t-2步时的特征蒸馏损失。
[0031]
在其中一个具体实施例中,所述第一特征信息和所述第二特征信息均包括:多个特征的特征位置信息;
[0032]
所述方法,还包括:
[0033]
通过预设的位置损失函数,根据所述第一特征信息中目标特征对应的特征位置信息与所述第二特征信息中目标特征对应的特征位置信息计算目标特征的位置损失;其中,所述目标特征为所述多个教师模型检测的特征中的任意一个;
[0034]
根据所有特征的位置损失调整所述学生模型的参数。
[0035]
在其中一个具体实施例中,所述位置损失函数为:
[0036][0037]
其中,i∈pos指示有物体的框,m∈{cx,cy,w,h}指示框的中心位置(cx,cy)、宽w、高h;指示第一特征信息中的特征位置信息与第二特征信息中目标特征对应的特征位置信息关于程度k是否匹配,匹配为1,不匹配为0;指示第一特征信息中的特征位置信息,指示第二特征信息中的特征位置信息。
[0038]
一种特征检测方法,所述方法包括:
[0039]
获取待检测人脸图像,将所述待检测人脸图像输入学生模型,以得到所述待检测人脸图像对应多个特征的第二特征信息;其中,所述学生模型通过上述模型合并方法训练得到。
[0040]
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述模型合并方法及特征检测方法的步骤。
[0041]
一种终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述模型合并方法及特征检测方法的步骤。
[0042]
本发明提供了特征检测方法、模型合并方法、设备和介质,首先获取多个未携带标签的人脸训练图像,分别将第一人脸图像输入多个教师模型,获取每个教师模型输出的第一特征信息,将所有教师模型输出的第一特征信息作为第一人脸图像的标签;再将携带有标签的第一人脸图像输入学生模型,获取学生模型输出的对应多个特征的第二特征信息;最后通过预设的蒸馏损失函数,根据第一特征信息和第二特征信息计算蒸馏损失,根据蒸馏损失调整学生模型的参数,返回执行分别将第一人脸图像输入多个教师模型的步骤,直至学生模型收敛。可见,本发明通过多个收敛的教师模型去指导一个学生模型,直至该学生模型收敛,从而让该学生模型具备所有教师模型的特征检测能力,达到模型合并,减少模型占用量的目的,便于进步一步实现边缘部署。
附图说明
[0043]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]
其中:
[0045]
图1为一个实施例中模型合并方法的流程示意图;
[0046]
图2为一个实施例中携带有特征信息的人脸图像的示意图;
[0047]
图3为一个实施例中终端设备的结构框图。
具体实施方式
[0048]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]
具体的来说,本发明中的“特征”是指人脸图像中需要进行检测的各种细节,该“特征”包含但不限于“黑头”、“皱纹”及“黑眼圈”等细节。为便于阐述方案,下面就主要以“黑头”和“皱纹”这两个特征为例进行说明。当然可以理解的是,以下方案中的“黑头”和“皱纹”同样可以替换为其他任意一个特征,或另外增加特征的数量。
[0050]
如图1所示,图1为一个实施例中模型合并方法的流程示意图。该模型合并方法应用于模型集合,模型集合包括网络结构相同的多个教师模型和一个学生模型,多个教师模型均已收敛,不同教师模型用于检测不同特征,学生模型未收敛。意在通过多个已经收敛的教师模型去训练该未收敛的学生模型,以使得该学生模型具备所有教师模型的特征检测能力,完成模型合并。
[0051]
本实施例中模型合并方法提供的步骤包括:
[0052]
步骤102,获取多个未携带标签的人脸训练图像,分别将第一人脸图像输入多个教师模型,获取每个教师模型输出的第一特征信息,将所有教师模型输出的第一特征信息作为第一人脸图像的标签。
[0053]
首先,通过拍照设备拍摄多个未携带标签的人脸训练图像,或从数据库中调取一些未携带标签的人脸训练图像,当然也可以是通过其他方式获取多个未携带标签的人脸训练图像,在此不做具体限定。
[0054]
可以理解的是,获得的人脸训练图像是有差异的,差异的原因包括人脸角度的差异,和/或图像大小的差异。因此还需对这些获得的人脸训练图像进行一定的预处理操作,该预处理操作包括:根据人脸关键点算法,例如使用dlib库的人脸68点landmark模型算法,来获取两个眼球的中心位置和鼻子的中心位置,再将这两个中心位置连线并结合垂直线计算出人脸左右旋转的角度θ,最后利用旋转变化矩阵以鼻子坐标信息为中心对人脸图像进行调整,具体计算公式如下:
[0055][0056]
其中x,y分别是原人脸训练图像中像素所在的二维坐标,x

和y

为人脸训练图像中像素调整后所在的二维坐标。这样就能对歪了的人脸训练图像进行角度校正。
[0057]
针对校正后的图像,还可以根据人脸关键点坐标,以鼻子中心坐标为中心,人脸关键点之间的最大距离作为长度,截取人脸有效区域,从而后续只对有效的人脸图像部分进行预测,以适当提高处理效率。再进行尺度归一化操作,得到大小一致的人脸训练图像,归一化后的大小统一为1024*1024。这样就能使得初始获得的人脸训练图像均达到一定的处理标准。
[0058]
进一步的,选取这多个未携带标签的人脸训练图像中的任意一个作为第一人脸图像,并分别输入到这多个已收敛的教师模型中。本实施例中,由于是应用到嵌入式设备中,因此这多个教师模型均可以选用轻量级的卷积神经网络识别特征信息,例如ssd-mobilenetv2。当然,也可以选用yolo,resnet等轻量化模型作为教师模型,不过前提是均需通过预先训练,使其达到收敛。其中,不同特征的参数不同,这样不同教师模型输出的第一特征信息不同。
[0059]
本实施例中,每个教师模型输出的第一特征信息包括特征位置信息、特征严重程度及置信度,以黑头和皱纹为例。其中,特征位置信息以方框的形式展示,用于标示特征的位置,例如黑头教师模型输出的特征位置信息用于指示黑头的位置,皱纹教师模型输出的特征位置信息用于指示皱纹的位置。特征严重程度用于指示特征的显著程度、数量程度等含义;例如,黑头教师模型输出的特征严重程度越高,则指示黑头数量越多、越明显。皱纹教师模型输出的特征严重程度越高,则指示皱纹越长、越明显。置信度用于指示特征严重程度的可信度,置信度越高,表示得到的特征严重程度越可信。
[0060]
将所有教师模型输出的第一特征信息作为第一人脸图像的标签,代替人工完成对第一人脸图像的标注工作,从而减少人工标注的工作量。此外,该方法也不同于之前的检测输出one-hot标注形式,引入了置信度作为标注,软化了学生模型学习的可能性。
[0061]
步骤104,将携带有标签的第一人脸图像输入学生模型,获取学生模型输出的对应多个特征的第二特征信息。
[0062]
本实施例中,由于构造的学生模型的网络结构与教师模型的网络结构一致,因此将携带有标签的第一人脸图像输入学生模型后,获取的第二特征信息同样包括特征位置信息、特征严重程度及置信度。但由于学生模型未收敛,因此在训练之初,实际的第一特征信息与第二特征信息存在明显的差异,需通过该步骤106来调整学生模型的参数,以使得该第一特征信息与第二特征信息的差异减小。
[0063]
步骤106,通过预设的蒸馏损失函数,根据第一特征信息和第二特征信息计算蒸馏损失,根据蒸馏损失调整学生模型的参数。
[0064]
本实施例中,蒸馏损失函数包括多个特征蒸馏损失函数,蒸馏损失函数kd_loss由多个特征蒸馏损失构成。例如为检测黑头及皱纹,预设的特征蒸馏损失函数包括黑头蒸馏损失函数和皱纹蒸馏损失函数,蒸馏损失则相应的由黑头蒸馏损失和皱纹蒸馏损失构成。进一步的,一个特征蒸馏损失函数对应一个特征,一个特征蒸馏损失函数包括一个软标签损失函数及一个硬标签损失函数。下面以黑头蒸馏损失函数计算黑头蒸馏损失kd_loss1为例进行说明。
[0065]
通过软标签损失函数,根据第一特征信息中目标特征(黑头)对应的特征严重程度和第二特征信息中目标特征(黑头)对应的特征严重程度计算目标特征的软标签损失。
[0066]
具体的,软标签损失函数的公式为:
[0067][0068]
其中,n为目标特征(黑头)对应的特征严重程度的总程度数,例如设定黑头的严重程度为5,则n=5。
[0069]
为第一特征信息中目标特征(黑头)对应的特征严重程度,指示在温度=t的情况下,第一特征信息中目标特征对应的特征严重程度在程度j上的值。
[0070][0071]
其中,vj指示教师模型中全连接层上目标特征(黑头)在程度j的输出。指示教师模型中全连接层上所有输出的和。
[0072]
为第二特征信息中目标特征对应的特征严重程度,指示在温度=t的情况下,第二特征信息中目标特征对应的特征严重程度在程度j上的值。
[0073][0074]
其中,zj指示目标特征(黑头)对应的学生模型中全连接层上在程度j的输出。指示学生模型中全连接层上所有输出的和。
[0075]
同时,通过硬标签损失函数,根据第一特征信息中目标特征(黑头)对应的置信度与第二特征信息中目标特征(黑头)对应的特征严重程度计算目标特征的硬标签损失l
out_label

[0076]
具体的,硬标签损失函数的公式为:
[0077][0078]
其中,mj为第一特征信息中目标特征对应的置信度。
[0079]
最后基于如下公式得到黑头蒸馏损失kd_loss1:
[0080]
kd_loss1=l
soft
*α+l
out_label
*(1-α)
[0081]
其中,α为第一权重,(1-α)为第二权重。
[0082]
根据经验调参设置,令上述公式中的t=20,α=0.8。当然其他特征蒸馏损失函数的计算也是同理,就不再赘述。
[0083]
进一步的,考虑到不同特征在人脸的分布及特点不同,例如皱纹和黑头在人脸的分布及特点就不同,因此不同特征学习的难易程度也会存在差异。所以,在构造kd_loss时,将不同特征的loss分开构造,并通过赋予不同权重,使得蒸馏损失函数对不同特征的学习都能够均衡,特征蒸馏损失函数之间的训练进度也就不会出现明显差异。
[0084]
具体的,为每一特征对应的特征蒸馏损失赋予一个对应的特征权重;其中,该特征权重基于不同特征蒸馏损失的减小速度确定。
[0085]
示例性的,特征a的特征权重表示为:
[0086][0087]
其中,la(t-1)指示特征a在调整参数的第t-1步时的特征蒸馏损失;la(t-2)指示特征a在调整参数的第t-2步时的特征蒸馏损失。从该公式可知,当特征a的特征蒸馏损失减小地越快,指示学习难度越简单,因此设置该βa越小。反之,当特征a的特征蒸馏损失减小地越慢,指示学习难度越困难,因此设置该βa越大。这样蒸馏损失函数在学习过程就会更偏向其更难的一方,各个特征蒸馏损失函数的训练进度就会基本保持一致。
[0088]
相应的,该蒸馏损失函数表示为:
[0089]
kd_loss=β1kd-loss1+β2kd_loss2…
+βmkd_lossm[0090]
其中,m指示特征的数量,例如检测的特征包括“黑头”、“皱纹”及“黑眼圈”,则m=3。
[0091]
此外,对于特征位置信息,还通过预设的位置损失函数,根据第一特征信息中目标特征(例如黑头)对应的特征位置信息与第二特征信息中目标特征(例如黑头)对应的特征位置信息计算目标特征(例如黑头)的位置损失。当然,目标特征也可以是这多个教师模型检测的特征中的其他任意一个,例如皱纹。
[0092]
具体的,位置损失函数为:
[0093][0094]
其中,i∈pos指示有物体的框,m∈{cx,cy,w,h}指示框的中心位置(cx,cy)、宽w、高h;指示第一特征信息中的特征位置信息与第二特征信息中目标特征对应的特征位置信息关于程度k是否匹配,匹配为1,不匹配为0;指示第一特征信息中的特征位置信息,指示第二特征信息中的特征位置信息。
[0095]
再根据所有特征的位置损失调整学生模型的参数,使得学生模型输出的每一特征的位置信息不断逼近样本标注的关于相同特征且相同程度k的位置信息,也即可让学生模型学习到教师模型关于所有特征的位置信息的检测能力。
[0096]
若学生模型经过步骤102-106的训练已收敛,则停止训练。若学生模型经过步骤102-106的训练未收敛,则返回执行步骤102,直至学生模型收敛。
[0097]
上述模型合并方法,首先获取多个未携带标签的人脸训练图像,分别将第一人脸图像输入多个教师模型,获取每个教师模型输出的第一特征信息,将所有教师模型输出的第一特征信息作为第一人脸图像的标签;再将携带有标签的第一人脸图像输入学生模型,获取学生模型输出的对应多个特征的第二特征信息;最后通过预设的蒸馏损失函数,根据第一特征信息和第二特征信息计算蒸馏损失,根据蒸馏损失调整学生模型的参数,返回执行分别将第一人脸图像输入多个教师模型的步骤,直至学生模型收敛。可见,本发明通过多个收敛的教师模型去指导一个学生模型,直至该学生模型收敛,从而让该学生模型具备所有教师模型的特征检测能力,达到模型合并,减少模型占用量的目的,便于进步一步实现边缘部署。
[0098]
进一步的,只需将这一个已训练完成的学生模型部署于嵌入式设备即可,当需要对待检测人脸图像进行特征检测时,便可基于该嵌入式设备获取待检测人脸图像,并将该待检测人脸图像输入到已收敛的学生模型,通过该已收敛的学生模型进行特征检测,最终在嵌入式设备中得到类似如图2所示的包含多个特征的第二特征信息的效果图。这样就能实现模型合并,减少模型占用量的目的,便于边缘部署。
[0099]
图3示出了一个实施例中终端设备的内部结构图。如图3所示,该终端设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该终端设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现模型合并方法及特征检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行模型合并方法及特征检测方法。本领域技术人员可以理解,图3中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0100]
一种终端设备,包括存储器、处理器以及存储在该存储器中并可在该处理器上执行的计算机程序,该处理器执行该计算机程序时实现如下步骤:获取多个未携带标签的人脸训练图像,分别将第一人脸图像输入多个教师模型,获取每个教师模型输出的第一特征信息,将所有教师模型输出的第一特征信息作为第一人脸图像的标签;其中,第一人脸图像为多个未携带标签的人脸训练图像中的任意一个,不同教师模型输出的第一特征信息不同;将携带有标签的第一人脸图像输入学生模型,获取学生模型输出的对应多个特征的第二特征信息;通过预设的蒸馏损失函数,根据第一特征信息和第二特征信息计算蒸馏损失,根据蒸馏损失调整学生模型的参数,返回执行分别将第一人脸图像输入多个教师模型的步骤,直至学生模型收敛。
[0101]
以及执行如下步骤:获取待检测人脸图像,将待检测人脸图像输入学生模型,以得到待检测人脸图像对应多个特征的第二特征信息。
[0102]
一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:获取多个未携带标签的人脸训练图像,分别将第一人脸图像输入多个教师模型,获取每个教师模型输出的第一特征信息,将所有教师模型输出的第一特征信息作为第一人脸图像的标签;其中,第一人脸图像为多个未携带标签的人脸训练图像中的任意一个,不同教师模型输出的第一特征信息不同;将携带有标签的第一人脸图像输入学生模型,获取学生模型输出的对应多个特征的第二特征信息;通过预设的蒸馏损失函数,根据第一特征信息和第二特征信息计算蒸馏损失,根据蒸馏损失调整学生模型的参数,返回执行分别将第一人脸图像输入多个教师模型的步骤,直至学生模型收敛。
[0103]
以及执行如下步骤:获取待检测人脸图像,将待检测人脸图像输入学生模型,以得到待检测人脸图像对应多个特征的第二特征信息。
[0104]
需要说明的是,上述特征检测方法、模型合并方法、设备及计算机可读存储介质属于一个总的发明构思,特征检测方法、模型合并方法、设备及计算机可读存储介质实施例中的内容可相互适用。
[0105]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性计算机可读取存储
介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0106]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0107]
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1