CN112712068A - 一种关键点检测方法、装置、电子设备及存储介质 - Google Patents
一种关键点检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112712068A CN112712068A CN202110293482.4A CN202110293482A CN112712068A CN 112712068 A CN112712068 A CN 112712068A CN 202110293482 A CN202110293482 A CN 202110293482A CN 112712068 A CN112712068 A CN 112712068A
- Authority
- CN
- China
- Prior art keywords
- key point
- point detection
- detection model
- target
- activation function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Human Computer Interaction (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及计算机技术领域,特别涉及人工智能技术领域,公开了一种关键点检测方法、装置、电子设备及存储介质,该方法为:获取待检测的多媒体信息,再将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,所述目标激活函数层是所述关键点检测模型中,激活函数的上界阈值允许调整的激活函数层;这样,能够在目标关键点检测模型的量化过程中,适应于模型内部的需要,降低由于量化训练造成的模型精度损失,提高目标关键点检测模型的稳定性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及人工智能技术领域,公开了一种关键点检测方法、装置、电子设备及存储介质。
背景技术
随着深度神经网络技术的发展,基于深度神经网络技术搭建的模型能够实现图像分类、分割检测等任务。
相关技术中,为保证深度神经网络能够在存储空间有限的边缘设备上运行,通常需要对基于深度神经网络训练的模型进行量化处理,从而在牺牲模型精度的前提下提升模型实际运行速度;如,边缘设备可以使用量化处理后的人脸关键点检测模型,在牺牲人脸关键点检测精度的前提下,检测图像中的人脸关键点。
然而,量化后的模型的检测精度下降,会对待检测对象的处理效果造成影响,不适用于对关键点进行准确识别。
发明内容
本申请实施例提供一种关键点检测方法、装置、电子设备及存储介质,用以提升量化后的关键点检测模型的模型精度,提高关键点检测准确率。
本申请实施例提供了一种关键点检测方法,所述方法包括:
获取待检测的多媒体信息;
将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果;
其中,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,所述第一损失值用于调整所述关键点检测模型中的权重参数,所述第二损失值用于调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,所述第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,所述目标激活函数层是所述关键点检测模型中,激活函数的上界阈值允许调整的激活函数层。
可选的,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,包括:
基于量化训练样本集合对待训练的关键点检测模型进行多轮第一迭代训练,直到满足预设的收敛条件为止,并将最后一轮输出的关键点检测模型作为目标关键点检测模型,其中,在一轮第一迭代训练过程中,执行以下操作:
确定所述关键点检测模型当前对应的学习率;
基于所述当前对应的学习率,采用量化训练样本集合对所述关键点检测模型进行多轮第二迭代训练,直到所述量化训练样本集合使用完毕,其中,在一轮第二迭代训练过程中,执行以下操作:
将从所述量化训练样本集合中获取的量化训练样本,输入所述关键点检测模型,得到对应所述量化训练样本输出的预测关键点检测结果;
基于所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值;
基于所述当前对应的学习率和所述第一损失值,调整所述关键点检测模型的模型参数,以及基于所述当前对应的学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值。
可选的,所述基于所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值,包括:
确定所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果;
基于所述比对结果和所述关键点检测模型当前的权重参数,确定第一损失值;
基于所述比对结果、所述当前的权重参数,以及所述关键点检测模型的目标激活函数层中激活函数当前的上界阈值,确定第二损失值,其中,在确定第二损失值时,针对所述当前的权重参数设置的第一影响因数小于针对所述当前的上界阈值设置的第二影响因数。
可选的,所述当前对应的学习率包括,用于调整权重参数的第一学习率,以及用于调整激活函数的上界阈值的第二学习率;
则所述基于所述当前对应的学习率和所述第一损失值,调整所述关键点检测模型的模型参数,以及基于所述当前对应的学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,包括:
基于所述第一学习率和所述第一损失值,调整所述关键点检测模型中的权重参数,以及基于所述第二学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值。
可选的,所述确定所述关键点检测模型当前对应的学习率,包括:
确定当前使用所述量化训练样本集合进行第一迭代训练的已训练轮数;
确定所述已训练轮数满足预设的学习率调整条件时,获取上一轮第一迭代训练对应的学习率,所述上一轮第一迭代训练对应的学习率中包括上一轮第一学习率和上一轮第二学习率;
将所述上一轮第二学习率与预设的调整因子的乘积作为调整后的第二学习率;
将所述上一轮第一学习率和所述调整后的第二学习率,确定为所述关键点检测模型当前对应的学习率。
可选的,所述基于量化训练样本集合对所述待训练的关键点检测模型进行多轮第一迭代训练之前,还包括:
获取初始关键点检测模型,并基于初始训练样本集合对所述初始关键点检测模型进行多轮预处理迭代训练,直至满足预设的收敛条件为止,获得已预处理的初始关键点检测模型;
确定所述已预处理的初始关键点检测模型中的待量化区域,并对应所述待量化区域添加预设的伪量化算子,以及将所述已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层;
将调整后的所述已预处理的初始关键点检测模型,确定为所述待训练的关键点检测模型。
可选的,所述对应所述待量化区域添加预设的伪量化算子,包括:
确定所述待量化区域的输入数据和输出数据,并针对所述输入数据添加预设的第一伪量化算子,以及针对所述输出数据添加预设的第二伪量化算子。
可选的,将所述已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层,具体包括:
确定所述已预处理的初始关键点检测模型中的初始激活函数层,其中,所述初始激活函数层中的激活函数是上界阈值为常量的线性整流函数;
将所述初始激活函数层替换为允许训练的目标激活函数层,其中,所述目标激活函数层中的激活函数是上界阈值允许调整的线性整流函数。
可选的,所述待训练的关键点检测模型中包括批归一化BN层,则对所述关键点检测模型进行多轮第一迭代训练时,还包括:
当确定第一迭代训练的已训练轮数达到第一设定阈值时,确定所述BN层当前的统计参数,其中,所述当前的统计参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,所述BN层针对输入数据确定的均值和方差;
将所述当前的统计参数设置为所述BN层的目标统计参数,所述目标统计参数在后续的第一迭代训练过程中,取值不变。
可选的,所述待训练的关键点检测模型中包括批归一化BN层,则对所述关键点检测模型进行多轮第一迭代训练时,还包括:
当确定第一迭代训练的已训练轮数达到第二设定阈值时,确定所述伪量化算子当前的量化参数,其中,所述当前的量化参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,基于经过所述伪量化算子处理的数据确定的拉伸比例和零点;
将所述当前的量化参数设置为所述伪量化算子的目标量化参数,所述目标量化参数在后续的第一迭代训练过程中,取值不变。
可选的,所述多媒体信息为待处理图像,则所述将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果,包括:
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到所述待处理图像对应的人脸关键点坐标信息;或者,
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到所述待处理图像中目标对象的关键点坐标信息。
可选的,包括:
采用所述目标关键点检测模型,对应N张原始图像,获得N个抖动评估结果,其中,获得一个抖动评估结果的过程中,执行以下操作:
采用所述目标关键点检测模型,对一张原始图像进行K次关键点检测,其中,在一次关键点检测过程中,基于前一次关键点检测得到的预测关键点检测结果,对所述一张原始图像进行裁剪,并将所述目标关键点检测模型基于裁剪后的所述一张原始图像输出的预测关键点检测结果,作为所述一次关键点检测的预测关键点检测结果;
获得所述K次关键点检测得到的K个预测关键点检测结果,并基于所述K个关键点检测结果,以及所述K个关键点检测结果的均值,确定对应所述一张原始图像的一个抖动评估结果;
将获得的N个抖动评估结果的均值,作为所述目标关键点检测模型的抖动指标。
本申请实施例提供一种关键点检测装置,所述装置包括:
获取单元,用于获取待检测的多媒体信息;
检测单元,用于将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果;
其中,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,所述第一损失值用于调整所述关键点检测模型中的权重参数,所述第二损失值用于调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,所述第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,所述目标激活函数层是所述关键点检测模型中,激活函数的上界阈值允许调整的激活函数层。
可选的,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的时,所述检测单元具体用于:
基于量化训练样本集合对待训练的关键点检测模型进行多轮第一迭代训练,直到满足预设的收敛条件为止,并将最后一轮输出的关键点检测模型作为目标关键点检测模型,其中,在一轮第一迭代训练过程中,执行以下操作:
确定所述关键点检测模型当前对应的学习率;
基于所述当前对应的学习率,采用量化训练样本集合对所述关键点检测模型进行多轮第二迭代训练,直到所述量化训练样本集合使用完毕,其中,在一轮第二迭代训练过程中,执行以下操作:
将从所述量化训练样本集合中获取的量化训练样本,输入所述关键点检测模型,得到对应所述量化训练样本输出的预测关键点检测结果;
基于所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值;
基于所述当前对应的学习率和所述第一损失值,调整所述关键点检测模型的模型参数,以及基于所述当前对应的学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值。
可选的,所述基于所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值时,所述检测单元具体用于:
确定所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果;
基于所述比对结果和所述关键点检测模型当前的权重参数,确定第一损失值;
基于所述比对结果、所述当前的权重参数,以及所述关键点检测模型的目标激活函数层中激活函数当前的上界阈值,确定第二损失值,其中,在确定第二损失值时,针对所述当前的权重参数设置的第一影响因数小于针对所述当前的上界阈值设置的第二影响因数。
可选的,所述当前对应的学习率包括,用于调整权重参数的第一学习率,以及用于调整激活函数的上界阈值的第二学习率;
则所述基于所述当前对应的学习率和所述第一损失值,调整所述关键点检测模型的模型参数,以及基于所述当前对应的学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值时,所述检测单元具体用于:
基于所述第一学习率和所述第一损失值,调整所述关键点检测模型中的权重参数,以及基于所述第二学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值。
可选的,所述确定所述关键点检测模型当前对应的学习率时,所述检测单元具体用于:
确定当前使用所述量化训练样本集合进行第一迭代训练的已训练轮数;
确定所述已训练轮数满足预设的学习率调整条件时,获取上一轮第一迭代训练对应的学习率,所述上一轮第一迭代训练对应的学习率中包括上一轮第一学习率和上一轮第二学习率;
将所述上一轮第二学习率与预设的调整因子的乘积作为调整后的第二学习率;
将所述上一轮第一学习率和所述调整后的第二学习率,确定为所述关键点检测模型当前对应的学习率。
可选的,所述基于量化训练样本集合对所述待训练的关键点检测模型进行多轮第一迭代训练之前,所述检测单元具体用于:
获取初始关键点检测模型,并基于初始训练样本集合对所述初始关键点检测模型进行多轮预处理迭代训练,直至满足预设的收敛条件为止,获得已预处理的初始关键点检测模型;
确定所述已预处理的初始关键点检测模型中的待量化区域,并对应所述待量化区域添加预设的伪量化算子,以及将所述已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层;
将调整后的所述已预处理的初始关键点检测模型,确定为所述待训练的关键点检测模型。
可选的,所述对应所述待量化区域添加预设的伪量化算子时,所述检测单元具体用于:
确定所述待量化区域的输入数据和输出数据,并针对所述输入数据添加预设的第一伪量化算子,以及针对所述输出数据添加预设的第二伪量化算子。
可选的,将所述已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层时,所述检测单元具体用于:
确定所述已预处理的初始关键点检测模型中的初始激活函数层,其中,所述初始激活函数层中的激活函数是上界阈值为常量的线性整流函数;
将所述初始激活函数层替换为允许训练的目标激活函数层,其中,所述目标激活函数层中的激活函数是上界阈值允许调整的线性整流函数。
可选的,所述待训练的关键点检测模型中包括批归一化BN层,则对所述关键点检测模型进行多轮第一迭代训练时,所述检测单元具体用于:
当确定第一迭代训练的已训练轮数达到第一设定阈值时,确定所述BN层当前的统计参数,其中,所述当前的统计参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,所述BN层针对输入数据确定的均值和方差;
将所述当前的统计参数设置为所述BN层的目标统计参数,所述目标统计参数在后续的第一迭代训练过程中,取值不变。
可选的,所述待训练的关键点检测模型中包括批归一化BN层,则对所述关键点检测模型进行多轮第一迭代训练时,所述检测单元具体用于:
当确定第一迭代训练的已训练轮数达到第二设定阈值时,确定所述伪量化算子当前的量化参数,其中,所述当前的量化参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,基于经过所述伪量化算子处理的数据确定的拉伸比例和零点;
将所述当前的量化参数设置为所述伪量化算子的目标量化参数,所述目标量化参数在后续的第一迭代训练过程中,取值不变。
可选的,所述多媒体信息为待处理图像,则所述将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果时,所述检测单元具体用于:
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到所述待处理图像对应的人脸关键点坐标信息;或者,
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到所述待处理图像中目标对象的关键点坐标信息。
可选的,所述检测单元进一步用于:
采用所述目标关键点检测模型,对应N张原始图像,获得N个抖动评估结果,其中,获得一个抖动评估结果的过程中,执行以下操作:
采用所述目标关键点检测模型,对一张原始图像进行K次关键点检测,其中,在一次关键点检测过程中,基于前一次关键点检测得到的预测关键点检测结果,对所述一张原始图像进行裁剪,并将所述目标关键点检测模型基于裁剪后的所述一张原始图像输出的预测关键点检测结果,作为所述一次关键点检测的预测关键点检测结果;
获得所述K次关键点检测得到的K个预测关键点检测结果,并基于所述K个关键点检测结果,以及所述K个关键点检测结果的均值,确定对应所述一张原始图像的一个抖动评估结果;
将获得的N个抖动评估结果的均值,作为所述目标关键点检测模型的抖动指标。
本申请实施例提供的一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任意一种关键点检测方法的步骤。
本申请实施例提供的一种计算机可读存储介质,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任意一种关键点检测方法的步骤。
本申请有益效果如下:
本申请实施例提供了一种关键点检测方法、装置、电子设备及存储介质。在本申请实施例中,获取待检测的多媒体信息,再将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果,其中,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,所述第一损失值用于调整所述关键点检测模型中的权重参数,所述第二损失值用于调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,所述第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,所述目标激活函数层是所述关键点检测模型中,激活函数的上界阈值允许调整的激活函数层,这样,借助于允许调整的上界阈值的激活函数,能够在目标关键点检测模型的量化过程中,适应于模型内部的需要,降低由于量化训练造成的模型精度损失,提高目标关键点检测模型的稳定性,保证对于多媒体信息的检测效果。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例中应用场景示意图;
图1b为本申请实施例中对人脸添加个性化特效的场景下的应用操作界面示意图;
图1c为本申请实施例中应用于公共场合人脸识别的应用操作界面示意图;
图2a为本申请实施例中初始关键点检测模型的训练过程示意图;
图2b为本申请实施例中翻转残差模块示意图;
图2c为本申请实施例中线性瓶颈模块示意图;
图3为本申请实施例中获得待训练的关键点检测模型的流程示意图;
图4a为本申请实施例中初始关键点检测模型的架构图;
图4b为本申请实施例中伪量化算子的添加示意图;
图5a为本申请实施例中包括初始激活函数层的结构示意图;
图5b为本申请实施例中将初始激活函数层替换为允许训练的目标激活函数层示意图;
图6a为本申请实施例中对待训练的关键点检测模型进行训练的流程示意图;
图6b为本申请实施例中确定学习率的流程示意图;
图6c为本申请实施例中第二迭代训练的流程示意图;
图6d为本申请实施例中确定第一损失值和第二损失值的流程示意图;
图7为本申请实施例中进行一轮第一迭代训练示意图;
图8为本申请实施例中提供的关键点检测方法的实施流程示意图;
图9a为申请实施例中计算抖动指标的流程示意图;
图9b为本申请实施例中计算一个抖动评估结果的流程示意图;
图10为本申请实施例中的一种关键点检测装置的结构示意图;
图11为应用本申请实施例的一种电子设备的一个硬件组成结构示意图;
图12为本申请实施例中的一个计算装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够在除了这里图示或描述的那些以外的顺序实施。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
量化:是提升模型实际运行速度并降低模型功耗的方法,可以通过减少基于深度神经网络搭建的模型中各参数所占用的比特数,实现对原始的模型的压缩,得到占用存储空间小、运行速度快的模型,例如,可以将模型中32位的浮点型参数压缩为8位的整型参数,本申请实施例中,可以根据实际的需求,划分出模型中的待量化区域,并针对待量化区域进行相应的量化处理。
伪量化算子(FakeQuantize):应用于量化感知训练过程中,用于统计获得的数据中的数据最大值和数据最小值,使得能够根据获得的数据最大值和数据最小值,确定模型中与伪量化算子获得的数据所对应的量化参数,量化参数具体可以是,拉伸比例scale和零点zero-point。
量化感知训练:是在量化过程中,对模型进行训练的训练方式。
激活函数:用于将深度神经网络中一个节点的输入信号转换为一个输出信号,为深度神经网络增加了非线性特征,常用的激活函数包括有S型函数Sigmoid、双曲正切函数(Hyperbolic tangent,Tanh),以及线性整流函数(Rectified Linear Unit, ReLU)等。
上界阈值:是指对激活函数ReLU输出的最大值的限制,如,对于激活函数ReLU6,其上界阈值为6,对于激活函数ReLU,其上界阈值为正无穷。
MobilenetV2:是针对移动端以及嵌入式视觉的应用提出的轻量化的模型,属于移动端神经网络Mobilenets类型的网络架构,能够检测出多媒体信息中的关键点。
精度:是指关键点检测模型输出的关键点检测结果的准确性。
本申请实施例涉及人工智能(ArtificialIntelligence,AI)和机器学习技术,基于人工智能中的计算机视觉技术和机器学习(MachineLearning,ML)而设计。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能是一门综合学科,涉及的领域广泛,既有硬件层面的技术,也有软件层面的技术。人工智能的基础技术一般包括传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作交互系统、机电一体化等技术;人工智能的软件技术一般包括计算机视觉技术、自然语言处理技术、以及机器学习/深度学习等几大方向。随着人工智能的发展与进步,人工智能在多个领域中进行研究和应用,如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人、智能医疗等,相信随着未来技术的进一步发展,人工智能将在更多的领域中得到应用,发挥出越来越重要的价值。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
机器学习是人工智能的核心,是使计算机具有智能的根本途径,那么深度学习则是机器学习的核心,是实现机器学习的一种技术。机器学习通常包括深度学习、强化学习、迁移学习、归纳学习等技术,深度学习则包括移动视觉神经网络Mobilenet、卷积神经网络(Convolutional Neural Networks,,CNN)、深度置信网络、递归神经网络、自动编码器、生成对抗网络等技术。
计算机视觉是一门集计算机科学、信号处理、物理学、应用数学、统计学、神经生理学等多学科于一身的综合性学科,也是科学领域中一个富有挑战性的重要研究方向。该学科使用各种成像系统代替视觉器官作为输入手段,由计算机代替大脑完成处理和解释,使得计算机可以具备像人类一样通过视觉的方式观察、理解世界的能力。
下面对本申请实施例的设计思想进行简要介绍:
本申请实施例提出了一种关键点检测方法、装置、电子设备及存储介质。由于本申请实施例在对关键点检测模型进行量化训练时,能够调整关键点检测模型中的权重参数,以及能够调整目标激活函数层中激活函数的上界阈值,使得激活函数的上界阈值能够适应于关键点检测模型中权重参数的变化,缓解了由于对关键点检测模型进行量化所造成的检测精度降低,提高了量化完成后的目标关键点检测模型的稳定性,使得能够基于目标关键点检测模型对多媒体信息中的关键点进行准确检测。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。
如图1a所示,其为本申请实施例中应用场景示意图。该应用场景示意图中包括两种终端设备110和一个服务器130,可通过终端设备110登录或打开应用操作界面120。终端设备110与服务器130之间可以通过通信网络进行通信。
在本申请实施例中,终端设备110为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器、智能家居、商场闸机等设备。各终端设备110可以通过通信网络与服务器130进行通信,在一种可选的实施方式中,通信网络可以是有线网络或无线网络,因此,终端设备110以及服务器130可通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做具体限制。
应用操作界面120对应本申请实施例中不同的应用场景,可能包括不同内容,在本申请实施例一些可能的场景中,参阅图1b所示,其为本申请实施例中对人脸添加个性化特效的场景下的应用操作界面示意图,在该应用操作界面中至少包括取景框、供用户采集多媒体信息的拍摄按钮、用于翻转摄像头方向的按钮,以及供用户选择个性化特效的功能栏,所示意的个性化特效可能包括,和平变脸、王者边框等。在拍摄时,用户可以通过在取景框界面进行不同的操作,实现定焦目标对象、调整画面亮度,以及进行摄像头的切换等操作。在本申请另一些可能的实施例中,参阅图1c所示,其为本申请实施例中应用于公共场合人脸识别的应用操作界面示意图,该应用操作界面示意图中至少包括有取景框,以及人脸识别框。
服务器130可以是独立的物理服务器130,也可以是云计算领域的边缘设备130,还可以是提供云服务、云数据库、云计算、云存储、云函数、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN),以及大数据和人工智能平台等基础云计算服务的云端服务器130,在本申请的一些实施例中,服务器130还可以是区块链中的一个节点。
其中,本申请实施例中的目标关键点检测模型可以部署在终端设备110上,也可以部署在服务器130上。当目标关键点检测模型部署在终端设备110上时,由终端设备110获取待检测的多媒体信息后,直接对待检测的多媒体信息进行关键点检测,将最终的目标关键点检测结果呈现给用户。当目标关键点检测模型部署在服务器130上时,由服务器130获取诸如终端设备110等其他设备发送的多媒体信息,并由服务器130对获得的多媒体信息进行关键点检测,并将最终得到的目标关键点检测结果发送至终端设备110上显示。
下面结合附图,对本申请实施例中对关键点检测模型进行量化训练的流程进行说明,本申请实施例中的量化训练流程可应用于图1a所示的终端设备110或者服务器130,具体的训练流程如下:
本申请实施例中,可以选择性地基于MobilenetV2架构搭建初始关键点检测模型,在对初始关键点检测模型进行预处理迭代训练后,对已预处理的初始关键点检测模型进行量化训练前的调整,获得待训练的关键点检测模型,并采用量化感知训练的训练方式,对待训练的关键点检测模型进行训练后得到目标关键点检测模型,其中,初始关键点检测模型可以基于任何能够实现关键点检测任务的架构搭建,本申请实施例以下的叙述中将仅以MobilenetV2架构为例进行示意性说明。
可选的,在得到目标关键点检测模型的过程中,可以采用以下三个阶段进行分别处理,依次是训练初始关键点检测模型,将初始关键点检测模型调整为待训练的关键点检测模型,以及将待训练的关键点检测模型训练为目标关键点检测模型。
需要说明的是,在本申请一些可能的实施例中,若当前获取的关键点检测模型已经具备可进行量化训练的条件时,可以不经过阶段一和阶段二的处理,直接执行阶段三的操作。在本申请另一些可能的实施例中,可以选择性的不执行阶段一的操作,并在阶段三对应的操作流程中,实现对待训练的关键点检测模型的量化训练。
下面对本申请实施例中三个阶段的处理过程进行说明。
阶段一、训练初始关键点检测模型。
参阅图2a所示,其为本申请实施例中初始关键点检测模型的训练过程示意图,下面结合附图2a,对本申请实施例中初始关键点检测模型的训练过程进行说明:
步骤201:获取初始关键点检测模型。
本申请实施例中,可以采用类似于MobilenetV2的模型结构搭建初始关键点检测模型,并在搭建初始关键点检测模型之后,建立初始训练样本集合,其中,可以通过叠放翻转残差(inverted residuals)模块和线性瓶颈(linear bottlenecks)模块组合得到初始关键点检测模型的模型结构,初始训练样本集合中的一个初始训练样本中包括一张图像,以及该图像的实际关键点检测结果。
参阅图2b和图2c所示,图2b为本申请实施例中翻转残差模块示意图,图2c为本申请实施例中线性瓶颈模块示意图,由于翻转残差模块和线性瓶颈模块是本领域公知的结构,在此不再赘述。
例如,假设关键点检测模型是人脸关键点检测模型,则对应建立的初始训练样本集合中,一个初始训练样本中包括一张人脸图像,以及与该人脸图像对齐标注的人脸关键点坐标真值。
步骤202:基于初始训练样本集合对初始关键点检测模型进行多轮预处理迭代训练。
本申请实施例中,在获得初始训练样本集合后,可以分批次的从初始训练样本集合中获取一定数目的初始训练样本,以实现对初始关键点检测模型的一次初始迭代训练,在基于初始训练样本集合中的全部初始训练样本完成多次初始迭代训练后,可判断一轮预处理迭代训练结束,同理基于初始训练样本集合对初始关键点检测模型进行多轮预处理迭代训练,直至满足预设的收敛条件,获得已训练的初始关键点检测模型,其中,采用初始训练样本集合中的全部初始训练样本对初始关键点检测模型进行的多次初始迭代训练,称为一轮预处理迭代训练。
需要说明的是,在一轮预处理迭代训练中的一次初始迭代训练过程中,确定一轮预处理迭代训练当前对应的学习率后,将初始训练样本集合中一定数目的初始训练样本输入初始关键点检测模型中,并根据初始关键点检测模型输出的预测结果与实际关键点检测结果之间的差异,计算损失值,进而根据损失值和当前对应的学习率,调整初始关键点检测模型中的权重参数;其中,不同轮次的预处理迭代训练过程中使用的学习率可以不相同,本申请实施例中,可以选择性地在预处理迭代训练轮数达到一定数值时,调整学习率,如,每进行150轮预处理迭代训练,调整一次学习率。
需要说明的是,用于计算损失值的损失函数形如以下公式:
例如,假设一次初始迭代训练过程中,将N1个初始训练样本中的图像输入初始关键点检测模型,那么对于初始关键点检测模型来说,输入的图像形状为(N1,C,H,W),其中,N1图像的数目,C表示通道数,H表示图像的高,W表示图像的宽。初始关键点检测模型针对输入的图像,得到输出的预测结果O,预测结果O的形状为(N1,K*2),其中,N1为图像的数目,K表示关键点的数目。那么,基于预测结果O与实际关键点检测结果gt之间的差异,计算模型的损失值,再基于确定的学习率以及损失值,调整初始关键点检测模型中的权重参数,其中,实际关键点检测结果gt的形状与预测结果O相同,也为(N1,K*2)。
步骤203:确定满足预设的收敛条件时,获得已预处理的初始关键点检测模型。
本申请实施例中,每完成一轮预处理迭代训练,确定得到的初始关键点检测模型的损失值变化情况,当确定损失值连续低于设定值的次数达到预设门限值时,可判定满足预设的收敛条件,进而获得已预处理的初始关键点检测模型。
阶段二、将初始关键点检测模型调整为待训练的关键点检测模型。
本申请实施例中,将完成预处理迭代训练的初始关键点检测模型作为已预处理的初始关键点检测模型,再对已预处理的初始关键点检测模型进行调整后,得到待训练的关键点检测模型。
参阅附图3所示,其为本申请实施例中获得待训练的关键点检测模型的流程示意图,下面结合附图3,对调整已预处理的初始关键点检测模型以得到待训练的关键点检测模型的流程进行说明:
步骤301:确定已预处理的初始关键点检测模型中的待量化区域,并对应待量化区域添加预设的伪量化算子。
本申请实施例中,在根据实际的处理需要,确定已预处理的初始关键点检测模型中的待量化区域后,确定待量化区域的输入数据和输出数据,并针对输入数据添加预设的第一伪量化算子,以及针对输出数据添加预设的第二伪量化算子,其中,第一伪量化算子和第二伪量化算子中的第一和第二,仅是为了区分添加伪量化算子不同的位置。
例如,参阅图4a所示,其为本申请实施例中初始关键点检测模型的架构图,图4a中示意的列出了初始关键点检测模型中的架构示意图,可以笼统的将初始关键点检测模型划分为输出层、隐藏层,以及输出层,其中,隐藏层是基于深度神经网络搭建的模型中,除输入层和输出层外的其他层级结构的总称。进而参阅图4b所示,其为本申请实施例中伪量化算子的添加示意图,确定隐藏层中的待量化区域后,针对待量化区域的输入数据添加预设的第一伪量化算子,以及针对待量化区域的输出数据添加预设的第二伪量化算子。
步骤302:将已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层。
本申请实施例中,在将已预处理的初始关键点检测模型中的初始激活函数层,替换为允许训练的目标激活函数层时,确定已预处理的初始关键点检测模型中的初始激活函数层,其中,初始激活函数层中的激活函数是上界阈值为常量的线性整流函数;再将初始激活函数层替换为允许训练的目标激活函数层,其中,目标激活函数层中的激活函数是上界阈值允许调整的线性整流函数。
例如,参阅图5a所示,其为本申请实施例中包括初始激活函数层的结构示意图,图5a中示意了当初始激活函数层使用ReLU6作为激活函数时,初始关键点检测模型中的初始激活函数层。结合图5b所示,其为本申请实施例中将初始激活函数层替换为允许训练的目标激活函数层示意图,实现了将原图5a中激活函数是线性整流函数的初始激活函数层替换为目标激活函数层:LearnableReLU,其中,目标激活函数层的激活函数为上界阈值允许调整的线性整流函数。
本申请实施例中,对于将初始激活函数层替换为目标激活函数层的过程,具体实现逻辑如下:
将初始函数层的激活函数的实现代码:
out1 = relu(x);//表示输出线性整流函数的图像。
修改为:
out1 = relu(x);//表示输出线性整流函数的图像。
out2 = where(out1 < thres, out1, thres);//表示当线性整流函数的输出值小于上界阈值thres时,按照out1所对应的结果输出,否则,输出上界阈值thres。
return out2//表示返回out2所对应的图像。
需要说明的是,本申请实施例中,在将已预处理的初始关键点检测模型中的初始激活函数层,替换为允许训练的目标激活函数层后,可以将目标激活函数中的线性整流函数赋予上界阈值的初始值,如,可以选择性的将线性整流函数上界阈值的初始值设置为6。
本申请实施例中,对于目标激活函数层中上界阈值允许调整的线性整流函数,对应的前向传播公式如下:
对应的反向传播公式如下:
步骤303:将调整后的已预处理的初始关键点检测模型,确定为待训练的关键点检测模型。
本申请实施例中,在将已预处理的初始关键点检测模型中对应的待量化区域添加伪量化算子,以及将已预处理的初始关键点检测模型中的初始激活函数层替换为目标激活函数层后,获得待训练的关键点检测模型。
需要说明的是,本申请实施例中,在获得待训练的关键点检测模型的过程中,对于步骤301和步骤302执行的先后顺序,本申请不做具体限制。
这样,能够适应性的根据实际的量化处理需要,确定初始关键点检测模型中的待量化区域,并为实现对待量化区域的量化训练而添加伪量化算子,保证了量化训练的有效进行,同时,将初始关键点检测模型中的初始激活函数替换为允许训练的目标激活函数层,使得目标激活函数层中激活函数的上界阈值具有可学习性。
阶段三、将待训练的关键点检测模型训练为目标关键点检测模型。
本申请实施例中,得到待训练的关键点检测模型后,采用量化训练样本集合对待训练的关键点检测模型进行训练,其中,量化训练样本集合与上述阶段一的训练过程中使用的初始训练样本集合可以是相同的训练样本集合,也可以是采用相同的处理方式对不同的图像进行处理后得到的训练样本集合。
参阅图6a所示,其为本申请实施例中对待训练的关键点检测模型进行训练的流程示意图,下面结合附图6a,对量化训练过程进行具体说明:
步骤601:获取量化训练样本集合。
其中,用于对待训练的关键点检测模型进行量化训练的量化训练样本集合,可以与阶段一中使用的初始训练样本集合相同,也可以根据实际的处理需要,重新生成训练样本,本申请实施例在此不做过多限定。
步骤602:基于量化训练样本集合对待训练的关键点检测模型进行多轮第一迭代训练,其中,在一轮第一迭代训练过程,执行以下操作:
需要说明的是,本申请实施例中,在对待训练的关键点检测模型进行训练时,采用量化训练样本集合中的全部量化训练样本对待训练的关键点检测模型进行的多次第二迭代训练,称为一轮第一迭代训练。
在执行步骤602时,通过执行步骤6021和步骤6022实现相关功能。
步骤6021:确定待训练的关键点检测模型当前对应的学习率。
其中,待训练的关键点检测模型当前对应的学习率包括用于调整权重参数的第一学习率,以及用于调整激活函数的上界阈值的第二学习率。
可选的,本申请在对待训练的关键点检测模型进行训练的过程中,可以根据实际的处理需要,调整待训练的关键点检测模型当前对应的学习率。
参阅图6b所示,其为本申请实施例中确定学习率的流程示意图,下面结合附图6b对确定学习率的过程进行说明:
S60211:确定当前使用量化训练样本集合进行第一迭代训练的已训练轮数。
本申请实施例中,在确定待训练的关键点检测模型当前对应的学习率时,根据当前使用量化训练样本集合对待训练的关键点检测模型进行第一迭代训练的轮数,判定是否对学习率进行调整,其中,将采用量化训练样本集合中的全部量化训练样本对待训练的关键点检测模型进行训练的过程,称为一轮第一迭代训练。
S60212:确定已训练轮数满足预设的学习率调整条件时,获取上一轮第一迭代训练对应的学习率,上一轮第一迭代训练对应的学习率中包括上一轮第一学习率和上一轮第二学习率。
本申请实施例中,获取当前对待训练的关键点检测模型进行第一迭代训练的已训练轮数后,当基于已训练轮数,确定满足预设的学习率调整条件时,获取上一轮迭代训练对应的学习率,其中,上一轮迭代训练对应的学习率中包括上一轮第一学习率和上一轮第二学习率,预设的学习率调整条件为已训练轮数为设定值的整数倍。
例如,假设定值为20,那么当对待训练的关键点检测模型进行学习率调整时,过程如下,首先基于设置的初始学习率对待训练的关键点检测模型进行第一迭代训练,并在确定训练至第21轮时,可以确定第一迭代训练的已训练轮数为20轮,则获取第20轮第一迭代训练时所使用的学习率,同理,在训练至41轮时,则获取第40轮第一迭代训练时所使用的学习率。
S60213:将第二学习率与预设的调整因子的乘积作为调整后的第二学习率。
本申请实施例中,基于当前第一迭代训练的已训练轮数,确定满足预设的学习率调整条件后,获取上一轮第一迭代训练对应的学习率,并确定上一轮第一迭代训练过程中所使用的第一学习率和第二学习率,进而将预设的调整因子与确定的第二学习率的乘积,作为调整后的第二学习率。
需要说明的是,本申请实施例中,通常按照预设的学习率调整条件,对用于调整激活函数的上界阈值的第二学习率进行调整,而对于调整权重参数的第一学习率,在对待训练的关键点检测模型进行训练的过程中,可以选择性地保持不变。需要说明的是,本申请实施例中,相比于调整权重参数的第一学习率,用于调整激活函数上界阈值的第二学习率通常取值较高,以保证对于激活函数的上界阈值进行充分学习。
例如,假设当前将对待训练的关键点检测模型进行第21轮第一迭代训练,且确定当前满足预设的学习率调整条件,预设的调整因子为0.1,则获取第20轮第一迭代训练时使用的第一学习率:e-5和第二学习率:e-2,则对应的,确定当前第21轮第一迭代训练中使用的第一学习率为e-5,第二学习率为0.1* e-2。
S60214:将第一学习率和调整后的第二学习率,确定为待训练的关键点检测模型当前对应的学习率。
例如,继续S60213中的示例进行说明,在确定第一学习率和调整后的第二学习率后,将确定的第一学习率和第二学习率,作为待训练的关键点检测模型当前对应的学习率,并在下一次满足预设的学习率调整条件之前的第一迭代训练过程中,保持学习率不变。
这样,将第一迭代训练的已训练轮数,作为判定是否进行第一迭代训练的依据,使得能够充分考虑到待训练的关键点检测模型在不同的训练阶段的学习率需要,保证对于激活函数的上界阈值的学习效果。
步骤6022:基于当前对应的学习率,采用量化训练样本集合对待训练的关键点检测模型进行多轮第二迭代训练,直到量化训练样本集合使用完毕。
本申请实施例中,在确定当前一轮第一迭代训练对应的学习率后,采用量化训练样本集合对待训练的关键点检测模型进行第一迭代训练,其中,在当前一轮的第一迭代训练过程中,进行多次第二迭代训练,直至量化训练样本集合使用完毕,一次第二迭代训练是指采用量化训练样本集合中的部分量化训练样本对待训练的关键点检测模型,执行一次量化训练的过程。
参阅图6c所示,其为本申请实施例中第二迭代训练的流程示意图,下面结合附图6c对一轮第二迭代训练的过程进行说明:
S60221:将从量化训练样本集合中获取的量化训练样本,输入待训练的关键点检测模型,得到对应量化训练样本输出的预测关键点检测结果。
本申请实施例中,在一次第二迭代训练过程中,将从量化训练样本集合中获取的量化训练样本,输入待训练的关键点检测模型中,得到对应量化训练样本输出的预测关键点检测结果。
其中,在一次第二迭代训练过程中,可以将指定数目的量化训练样本作为一次第二迭代训练的输入,进而得到与输入的量化训练样本对应的预测关键点检测结果。
例如,与阶段一的训练过程同理,可以将N1个量化训练样本中的图像输入待训练的关键点检测模型,那么对于待训练的关键点检测模型来说,输入的图像形状为(N1,C,H,W),其中,N1表示图像的数目,C表示通道数,H表示图像的高,W表示图像的宽。待训练的关键点检测模型针对输入的量化训练样本,输出对应的预测关键点检测结果O,预测关键点检测结果O的形状为(N1,K*2),其中,N1为图像的数目,K表示关键点的数目,gt为与输入的量化训练样本对应的实际关键点检测结果,且实际关键点检测结果gt的形状与预测关键点检测结果O的形状相同,也为(N1,K*2)。
S60222:基于预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值。
具体的,获取待训练的关键点检测模型基于输入的量化训练样本,对应输出的预测关键点检测结果后,基于预测关键点检测结果与量化训练样本对应的实际检测结果之间的比对结果,确定第一损失值和第二损失值。
本申请实施例中,通过执行以下步骤,确定第一损失值和第二损失值.
参阅图6d所示,其为本申请实施例中确定第一损失值和第二损失值的流程示意图,下面结合附图6d,对第一损失值和第二损失值的确定过程进行说明:
步骤a、确定预测关键点检测结果与对应的实际关键点检测结果之间的比对结果。
本申请实施例中,获取待训练的关键点检测模型输出的预测关键点检测结果后,确定预测关键点检测结果与对应的实际关键点检测结果之间的比对结果。
具体的,可以采用以下公式,示意预测关键点检测结果与对应的实际关键点检测结果之间的比对结果:
其中,O2为待训练的关键点检测模型针对输入的量化训练样本,输出的预测关键点检测结果,gt为与量化训练样本对应的实际关键点检测结果。
步骤b、基于比对结果和关键点检测模型当前的权重参数,确定第一损失值。
本申请实施例中,在确定第一损失值时,基于待训练的关键点检测模型对应量化训练样本输出的预测关键点检测结果,与量化训练样本对应的实际关键点检测结果之间的比对结果,以及待训练的关键点检测模型当前的权重参数,确定第一损失值。
具体的,可以采用如下公式,计算第一损失值:
其中,L2表征第一损失值,2表征对应待训练的关键点检测模型当前的权重参数
设置的第一影响因数,O2为待训练的关键点检测模型针对输入的量化训练样本,输出的预
测关键点检测结果,gt为与量化训练样本对应的实际关键点检测结果,w为待训练的关键点
检测模型当前的权重参数。
步骤c、基于比对结果、当前的权重参数,以及关键点检测模型的目标激活函数层中激活函数当前的上界阈值,确定第二损失值。
其中,在确定第二损失值时,针对当前的权重参数设置的第一影响因数小于针对当前的上界阈值设置的第二影响因数。
本申请实施例中,在确定第二损失值时,基于步骤a中确定的比对结果、待训练的关键点检测模型中当前的权重参数,以及待训练的关键点检测模型的目标激活函数层中激活函数当前的上界阈值,确定第二损失值。
具体的,可以采用如下公式,计算第二损失值:
需要说明的是,本申请实施例中,为避免激活函数的上界阈值在量化训练中学习到的数值过大,将第二影响因数的取值设置为大于第一影响因数的上界取值。
这样,为了限制激活函数的上界阈值在量化训练中学习到一个过大的值,使得量化训练前后激活函数层的输出范围差异过大,针对性地,在第二损失值的计算过程中配置一个取值较大的第二影响因数,使得待训练的关键点检测模型无法学习到一个过大的值,使得能够在量化训练过程中,减弱量化训练对模型精度造成的影响。
S60223:基于当前对应的学习率和第一损失值,调整关键点检测模型的模型参数,以及基于当前对应的学习率和第二损失值,调整关键点检测模型的目标激活函数层中激活函数的上界阈值。
本申请实施例中,得到第一损失值和第二损失值之后,基于当前对应的学习率和第一损失值,调整关键点检测模型的模型参数,以及基于当前对应的学习率和第二损失值,调整关键点检测模型的目标激活函数层中激活函数的上界阈值。
具体的,在当前对应的学习率中包括用于调整权重参数的第一学习率,以及用于调整激活函数的上界阈值的第二学习率时,基于第一学习率和第一损失值,调整关键点检测模型中的权重参数,以及基于第二学习率和第二损失值,调整关键点检测模型的目标激活函数层中激活函数的上界阈值。
需要说明的是,本申请一些可能的实施例中,基于当前对应的学习率和第一损失值,调整关键点检测模型中的模型参数时,能够调整的模型参数不仅包括关键点检测模型中的权重参数,还可能包括模型中其他层级中的可学习参数。
具体的,当待训练的关键点检测模型中包括批归一化(Batch Normalization,BN)层时,则在一轮第二迭代训练过程中,对关键点检测模型的模型参数进行调整时,还基于得到的第一损失值,调整BN层中可学习的参数。
需要说明的是,对于待训练的关键点检测模型中的BN层和伪量化算子来说,BN层中存在不可学习的统计参数,统计参数是指BN层针对输入数据确定的均值和方差,而伪量化算子中包括不可学习的量化参数,量化参数是基于经过伪量化算子处理的数据的最大值和最小值,确定的拉伸比例scale和零点zero-point,其中,由于统计参数和量化参数与各自的输入数据密切相关,故在一次第二迭代训练后,随着关键点检测模型中模型参数的改变,BN层的输入数据和伪量化算子的输入数据均会发生改变,进而造化量化参数和统计参数的改变。
进一步的,在确定已采用量化训练样本集合中的全部量化训练样本,对待训练的关键点检测模型进行多轮第二迭代训练后,则可确定完成一轮第一迭代训练。
例如,参阅图7所示,其为本申请实施例中进行一轮第一迭代训练示意图。在完成的一轮第一迭代训练过程中,需要经历的过程包括将待量化样本集合中的待量化样本,输入待训练的关键点检测模型中,进行第二迭代训练,并根据得到的预测关键点检测结果与实际关键点检测结果的差异,计算损失值,以及基于损失值迭代更新关键点检测模型中的权重参数和激活函数的上界阈值,得到第二迭代训练后的模型。进而判定量化训练样本中全部的量化训练样本是否均被输入至待训练的关键点检测模型,进行第二轮迭代训练,若是,则说明无法再从待量化样本集合中获取本轮第一迭代训练中未使用的量化训练样本,则可直接判定本轮第一迭代训练结束,否则,继续采用量化训练集合中的量化训练样本进行下一轮的第二迭代训练。
步骤603:确定满足收敛条件时,将最后一轮第一迭代训练输出的关键点检测模型作为目标关键点检测模型。
本申请实施例,按照上述步骤602所示意的第一迭代训练方式,进行多轮第一迭代训练,直至满足预设的收敛条件,将最后一轮第一迭代训练输出的关键点检测模型作为目标关键点检测模型,其中,预设的收敛条件为确定损失值连续低于设定值的次数达到预设门限值时。
需要说明的是,本申请实施例中,在进行多轮第一迭代训练的过程中,为保证针对性的学习允许训练的权重参数和激活函数的上界阈值,可以在第一迭代训练进展到一定轮数后,固定BN层的统计参数和伪量化算子中的量化参数,使得在后续的训练过程中统计参数和量化参数保持不变。
具体的,当确定第一迭代训练的已训练轮数达到第一设定阈值时,确定BN层当前的统计参数,其中,当前的统计参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,BN层针对输入数据确定的均值和方差,并将当前的统计参数设置为BN层的目标统计参数,目标统计参数在后续的第一迭代训练过程中,取值不变,以及当确定第一迭代训练的已训练轮数达到第二设定阈值时,确定伪量化算子当前的量化参数,其中,当前的量化参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,基于经过伪量化算子处理的数据确定的拉伸比例和零点,并将当前的量化参数设置为伪量化算子的目标量化参数,目标量化参数在后续的第一迭代训练过程中,取值不变。
例如,可以设置第一设定阈值为5,第二设定阈值为10,当第一迭代训练的已训练论述达到5轮时,将第5轮第一迭代训练中最后一次第二迭代训练后得到的统计参数,固定设置为待训练的关键点检测模型的目标统计参数,且后续的训练过程中保持目标统计参数的取值不变,以及当确定第一迭代训练的已训练论述达到10轮时,将第10轮第一迭代训练中最后一次第二迭代训练后得到的量化参数,固定设置为待训练的关键点检测模型的目标量化参数,且在后续的训练过程中保持目标量化参数的取值不变。使得第11轮开始的第一迭代训练过程中,仅迭代训练权重参数和激活函数的上界阈值。
基于同一发明构思,参阅图8所示,其为本申请实施例中提供的关键点检测方法的实施流程示意图,可应用于图1a所示的终端设备110或者服务器130,该方法的具体实施流程如下:
步骤801:获取待检测的多媒体信息。
本申请实施例中,在不同的应用场景中,获取的待检测的多媒体信息类型不同,多媒体信息具体可以是图像信息或者视频流信息。
其中,在本申请一些可能的实施例中,可以将实时获取的图像信息或者视频流信息,作为待检测的多媒体信息,以实现对于多媒体信息的实时检测。在本申请另一些可能的实施例中,可以将预先获取的图像信息或视频流信息,作为待检测的多媒体信息,以实现对多媒体信息的延时处理。
例如,在进行人脸关键点检测的场景中,接收到的多媒体信息可以是在各种场合采集到的人脸图像。
步骤802:将多媒体信息输入已量化训练的关键点检测模型中,得到多媒体信息对应的目标关键点检测结果。
其中,目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,第一损失值用于调整关键点检测模型中的权重参数,第二损失值用于调整关键点检测模型的目标激活函数层中激活函数的上界阈值,第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,目标激活函数层是关键点检测模型中,激活函数的上界阈值允许调整的激活函数层。
本申请实施例中,当获取的多媒体信息时待处理图像时,按照应用场景的不同,可以实现的操作包括:将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到待处理图像对应的人脸关键点坐标信息:或者,将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到待处理图像中目标对象的关键点坐标信息。
例如,已量化训练的目标关键点检测模型可以应用于诸如手机等终端设备上,识别待处理图像中的关键点坐标信息,在具体应用中,可以识别出人脸图像中的的人脸关键点,并根据实际处理需要,为人脸图像添加特效或贴纸,或者,可以根据实际处理需要,识别出图像中目标对象的关键点后,与保存的关键点特征库进行比对,以确定目标对象的身份。
这样,基于已量化训练的目标关键点检测模型,能够实现对待处理图像的有效检测,提升量化训练后目标关键点检测模型的量化精度和稳定性,保证关键点检测效率,为与关键点检测相关的后续操作的有效进行提供了依据,在应用于人脸识别场景中时,能够实现对人脸关键点的有效识别,提升后续为人脸添加贴纸或特效时的贴合度和自然度。
本申请实施例中,在完成待训练的关键点检测模型的量化训练后,针对得到的目标关键点检测模型,可以通过计算目标关键点检测模型的抖动指标,衡量量化前后关键点检测模型的模型精度,其中,抖动指标表征关键点检测模型在时序上的稳定性,抖动指标取值越低,表示关键点检测模型稳定性越好。
参阅图9a所示,其为申请实施例中计算抖动指标的流程示意图,下面结合附图9a对抖动指标的计算过程进行说明:
步骤901:采用目标关键点检测模型,对应N张原始图像,获得N个抖动评估结果。
其中,获得一个抖动评估结果的过程中,执行以下操作:
参阅图9b所示,其为本申请实施例中计算一个抖动评估结果的流程示意图,下面对计算一个抖动结果的过程进行说明:
S9011:采用目标关键点检测模型,对一张原始图像进行K次关键点检测。
其中,在一次关键点检测过程中,基于前一次关键点检测得到的预测关键点检测结果,对一张原始图像进行裁剪,并将目标关键点检测模型基于裁剪后的原始图像输出的预测关键点检测结果,作为一次关键点检测的预测关键点检测结果。
需要说明的是,在第一次采用目标关键点检测模型进行关键点检测时,对原始图像进行人工关键点标注,获得人为关键点标注结果,并按照人为关键点标注结对原始图像进行裁剪,以及将裁剪后的原始图像作为第一次进行关键点检测的输入,获得目标关键点检测模型对应输出的预测关键点检测结果。
S9012:获得K次关键点检测得到的K个预测关键点检测结果,并基于K个关键点检测结果,以及K个关键点检测结果的均值,确定对应一张原始图像的一个抖动评估结果。
具体的,确定K个关键点检测结果的均值后,分别计算每个关键点检测结果与确定的均值之间差值的范数,并将计算得到的K个范数的均值,作为对应一张原始图像的一个抖动评估结果。
步骤902:将获得的N个抖动评估结果的均值,作为目标关键点检测模型的抖动指标。
具体的,可以采用以下公式,计算目标关键点检测模型的抖动指标,其中,关键点检测结果对应下述公式中的关键点坐标,预测关键点检测结果对应下述公式中的预测关键点坐标:
其中,N表征获取的原始图像的数目,i表示获取的第i张原始图像,K表示对于当前
获取的原始图像i采用关键点检测模型进行识别的总次数,j表示采用关键点检测模型对裁
剪后的原始图像i进行识别的次数,表示K次获得的预测关键点坐标的坐标均值,标识
第j次获得的预测关键点坐标,其中,j取0时,表示对于原始图像i的人为坐标标注结果;
j取1时,表示基于人为坐标标注结果对原始图像i进行裁剪后,将裁剪后的图像i输入关
键点检测模型后得到的预测关键点坐标;j大于1时,表示基于第j-1次关键点检测模型输
出的预测关键点坐标完成对原始图像i的裁剪后,将裁剪后的原始图像i输入关键点检测模
型后得到的预测关键点坐标,如,表示基于对原始图像i进行裁剪后,将裁剪后的图像
i输入关键点检测模型后得到的预测关键点坐标。
本申请在基于上述计算抖动指标的公式,计算关键点检测模型量化前后的抖动指标后,可以得到如下表1所示意图的对比表。
其中,表1中以量化训练前关键点检测模型中初始激活层的激活函数为ReLU6为例,对量化前后抖动指标的变化情况进行示意,量化算力是模型输出的指标,用于表征模型中使用整型数据计算的部分的占整个模型算力的占比。基于表1可以直观的看出,对于激活函数为ReLU6的关键点检测模型来说,量化前后抖动指标存在明显的变化,而将激活函数由ReLU6替换为上界阈值允许调整的ReLU后,在量化算力相同的情况下,明显的降低了抖动指标,减弱了量化操作对关键点检测模型的抖动影响。
表1
这样,基于计算得到的评估指标,能够以数据的形式显示模型的量化效果,为本领域技术人员提供了模型评估的依据。
基于相同的发明构思,本申请实施例还提供一种关键点检测装置。参阅图10所示,其为本申请实施例中所列举的一种关键点检测的装置1000的结构示意图,可以包括:
获取单元1001,用于获取待检测的多媒体信息;
检测单元1002,用于将多媒体信息输入已量化训练的目标关键点检测模型中,得到多媒体信息对应的目标关键点检测结果;
其中,目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,第一损失值用于调整关键点检测模型中的权重参数,第二损失值用于调整关键点检测模型的目标激活函数层中激活函数的上界阈值,第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,目标激活函数层是关键点检测模型中,激活函数的上界阈值允许调整的激活函数层。
可选的,目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的时,检测单元1002具体用于:
基于量化训练样本集合对待训练的关键点检测模型进行多轮第一迭代训练,直到满足预设的收敛条件为止,并将最后一轮输出的关键点检测模型作为目标关键点检测模型,其中,在一轮第一迭代训练过程中,执行以下操作:
确定关键点检测模型当前对应的学习率;
基于当前对应的学习率,采用量化训练样本集合对关键点检测模型进行多轮第二迭代训练,直到量化训练样本集合使用完毕,其中,在一轮第二迭代训练过程中,执行以下操作:
将从量化训练样本集合中获取的量化训练样本,输入关键点检测模型,得到对应量化训练样本输出的预测关键点检测结果;
基于预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值;
基于当前对应的学习率和第一损失值,调整关键点检测模型的模型参数,以及基于当前对应的学习率和第二损失值,调整关键点检测模型的目标激活函数层中激活函数的上界阈值。
可选的,基于预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值时,检测单元1002具体用于:
确定预测关键点检测结果与对应的实际关键点检测结果之间的比对结果;
基于比对结果和关键点检测模型当前的权重参数,确定第一损失值;
基于比对结果、当前的权重参数,以及关键点检测模型的目标激活函数层中激活函数当前的上界阈值,确定第二损失值,其中,在确定第二损失值时,针对当前的权重参数设置的第一影响因数小于针对当前的上界阈值设置的第二影响因数。
可选的,当前对应的学习率包括,用于调整权重参数的第一学习率,以及用于调整激活函数的上界阈值的第二学习率;
则基于当前对应的学习率和第一损失值,调整关键点检测模型的模型参数,以及基于当前对应的学习率和第二损失值,调整关键点检测模型的目标激活函数层中激活函数的上界阈值时,检测单元1002具体用于:
基于第一学习率和第一损失值,调整关键点检测模型中的权重参数,以及基于第二学习率和第二损失值,调整关键点检测模型的目标激活函数层中激活函数的上界阈值。
可选的,确定关键点检测模型当前对应的学习率时,检测单元1002具体用于:
确定当前使用量化训练样本集合进行第一迭代训练的已训练轮数;
确定已训练轮数满足预设的学习率调整条件时,获取上一轮第一迭代训练对应的学习率,上一轮第一迭代训练对应的学习率中包括上一轮第一学习率和上一轮第二学习率;
将上一轮第二学习率与预设的调整因子的乘积作为调整后的第二学习率;
将上一轮第一学习率和调整后的第二学习率,确定为关键点检测模型当前对应的学习率。
可选的,基于量化训练样本集合对待训练的关键点检测模型进行多轮第一迭代训练之前,检测单元1002具体用于:
获取初始关键点检测模型,并基于初始训练样本集合对初始关键点检测模型进行多轮预处理迭代训练,直至满足预设的收敛条件为止,获得已预处理的初始关键点检测模型;
确定已预处理的初始关键点检测模型中的待量化区域,并对应待量化区域添加预设的伪量化算子,以及将已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层;
将调整后的已预处理的初始关键点检测模型,确定为待训练的关键点检测模型。
可选的,对应待量化区域添加预设的伪量化算子时,检测单元1002具体用于:
确定待量化区域的输入数据和输出数据,并针对输入数据添加预设的第一伪量化算子,以及针对输出数据添加预设的第二伪量化算子。
可选的,将已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层时,检测单元1002具体用于:
确定已预处理的初始关键点检测模型中的初始激活函数层,其中,初始激活函数层中的激活函数是上界阈值为常量的线性整流函数;
将初始激活函数层替换为允许训练的目标激活函数层,其中,目标激活函数层中的激活函数是上界阈值允许调整的线性整流函数。
可选的,待训练的关键点检测模型中包括批归一化BN层,则对关键点检测模型进行多轮第一迭代训练时,检测单元1002具体用于:
当确定第一迭代训练的已训练轮数达到第一设定阈值时,确定BN层当前的统计参数,其中,当前的统计参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的, BN层针对输入数据确定的均值和方差;
将当前的统计参数设置为BN层的目标统计参数,目标统计参数在后续的第一迭代训练过程中,取值不变。
可选的,待训练的关键点检测模型中包括批归一化BN层,则对关键点检测模型进行多轮第一迭代训练时,检测单元1002具体用于:
当确定第一迭代训练的已训练轮数达到第二设定阈值时,确定伪量化算子当前的量化参数,其中,当前的量化参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,基于经过伪量化算子处理的数据确定的拉伸比例和零点;
将当前的量化参数设置为伪量化算子的目标量化参数,目标量化参数在后续的第一迭代训练过程中,取值不变。
可选的,多媒体信息为待处理图像,则将多媒体信息输入已量化训练的目标关键点检测模型中,得到多媒体信息对应的目标关键点检测结果时,检测单元1002具体用于:
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到待处理图像对应的人脸关键点坐标信息;或者,
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到待处理图像中目标对象的关键点坐标信息。
可选的,检测单元1002进一步用于:
采用目标关键点检测模型,对应N张原始图像,获得N个抖动评估结果,其中,获得一个抖动评估结果的过程中,执行以下操作:
采用目标关键点检测模型,对一张原始图像进行K次关键点检测,其中,在一次关键点检测过程中,基于前一次关键点检测得到的预测关键点检测结果,对一张原始图像进行裁剪,并将目标关键点检测模型基于裁剪后的一张原始图像输出的预测关键点检测结果,作为一次关键点检测的预测关键点检测结果;
获得K次关键点检测得到的K个预测关键点检测结果,并基于K个关键点检测结果,以及K个关键点检测结果的均值,确定对应一张原始图像的一个抖动评估结果;
将获得的N个抖动评估结果的均值,作为目标关键点检测模型的抖动指标。
在介绍了本申请示例性实施方式的关键点检测方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备,参阅图11所示,其为应用本申请实施例的一种电子设备的一个硬件组成结构示意图,电子设备1100可以至少包括处理器1101、以及存储器1102。其中,存储器1102存储有程序代码,当程序代码被处理器1101执行时,使得处理器1101执行上述任意一种关键点检测方法的步骤。
在一些可能的实施方式中,根据本申请的计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的关键点检测的步骤。例如,处理器可以执行如图8中所示的步骤。
下面参照图12来描述根据本申请的这种实施方式的计算装置1200。如图12所示,计算装置1200以通用计算装置的形式表现。计算装置1200的组件可以包括但不限于:上述至少一个处理单元1201、上述至少一个存储单元1202、连接不同系统组件(包括存储单元1202和处理单元1201)的总线1203。
总线1203表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元1202可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)12021和/或高速缓存存储单元12022,还可以进一步包括只读存储器(ROM)12023。
存储单元1202还可以包括具有一组(至少一个)程序模块11024的程序/实用工具12025,这样的程序模块12024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置1200也可以与一个或多个外部设备1204(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置1200交互的设备通信,和/或与使得该计算装置1200能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1205进行。并且,计算装置1200还可以通过网络适配器1206与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1206通过总线1203与用于计算装置1200的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
与上述方法实施例基于同一发明构思,本申请提供的关键点检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的关键点检测方法中的步骤,例如,电子设备可以执行如图8中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种关键点检测方法,其特征在于,包括:
获取待检测的多媒体信息;
将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果;
其中,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,所述第一损失值用于调整所述关键点检测模型中的权重参数,所述第二损失值用于调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,所述第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,所述目标激活函数层是所述关键点检测模型中,激活函数的上界阈值允许调整的激活函数层。
2.如权利要求1所述的方法,其特征在于,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,包括:
基于量化训练样本集合对待训练的关键点检测模型进行多轮第一迭代训练,直到满足预设的收敛条件为止,并将最后一轮输出的关键点检测模型作为目标关键点检测模型,其中,在一轮第一迭代训练过程中,执行以下操作:
确定所述关键点检测模型当前对应的学习率;
基于所述当前对应的学习率,采用量化训练样本集合对所述关键点检测模型进行多轮第二迭代训练,直到所述量化训练样本集合使用完毕,其中,在一轮第二迭代训练过程中,执行以下操作:
将从所述量化训练样本集合中获取的量化训练样本,输入所述关键点检测模型,得到对应所述量化训练样本输出的预测关键点检测结果;
基于所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值;
基于所述当前对应的学习率和所述第一损失值,调整所述关键点检测模型的模型参数,以及基于所述当前对应的学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值。
3.如权利要求2所述的方法,其特征在于,所述基于所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果,确定第一损失值和第二损失值,包括:
确定所述预测关键点检测结果与对应的实际关键点检测结果之间的比对结果;
基于所述比对结果和所述关键点检测模型当前的权重参数,确定第一损失值;
基于所述比对结果、所述当前的权重参数,以及所述关键点检测模型的目标激活函数层中激活函数当前的上界阈值,确定第二损失值,其中,在确定第二损失值时,针对所述当前的权重参数设置的第一影响因数小于针对所述当前的上界阈值设置的第二影响因数。
4.如权利要求2所述的方法,其特征在于,所述当前对应的学习率包括,用于调整权重参数的第一学习率,以及用于调整激活函数的上界阈值的第二学习率;
则所述基于所述当前对应的学习率和所述第一损失值,调整所述关键点检测模型的模型参数,以及基于所述当前对应的学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,包括:
基于所述第一学习率和所述第一损失值,调整所述关键点检测模型中的权重参数,以及基于所述第二学习率和所述第二损失值,调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值。
5.如权利要求2-4任一项所述的方法,其特征在于,所述确定所述关键点检测模型当前对应的学习率,包括:
确定当前使用所述量化训练样本集合进行第一迭代训练的已训练轮数;
确定所述已训练轮数满足预设的学习率调整条件时,获取上一轮第一迭代训练对应的学习率,所述上一轮第一迭代训练对应的学习率中包括上一轮第一学习率和上一轮第二学习率;
将所述上一轮第二学习率与预设的调整因子的乘积作为调整后的第二学习率;
将所述上一轮第一学习率和所述调整后的第二学习率,确定为所述关键点检测模型当前对应的学习率。
6.如权利要求2-4任一项所述的方法,其特征在于,所述基于量化训练样本集合对所述待训练的关键点检测模型进行多轮第一迭代训练之前,还包括:
获取初始关键点检测模型,并基于初始训练样本集合对所述初始关键点检测模型进行多轮预处理迭代训练,直至满足预设的收敛条件为止,获得已预处理的初始关键点检测模型;
确定所述已预处理的初始关键点检测模型中的待量化区域,并对应所述待量化区域添加预设的伪量化算子,以及将所述已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层;
将调整后的所述已预处理的初始关键点检测模型,确定为所述待训练的关键点检测模型。
7.如权利要求6所述的方法,其特征在于,所述对应所述待量化区域添加预设的伪量化算子,包括:
确定所述待量化区域的输入数据和输出数据,并针对所述输入数据添加预设的第一伪量化算子,以及针对所述输出数据添加预设的第二伪量化算子。
8.如权利要求6所述的方法,其特征在于,将所述已预处理的初始关键点检测模型中的初始激活函数层替换为允许训练的目标激活函数层,具体包括:
确定所述已预处理的初始关键点检测模型中的初始激活函数层,其中,所述初始激活函数层中的激活函数是上界阈值为常量的线性整流函数;
将所述初始激活函数层替换为允许训练的目标激活函数层,其中,所述目标激活函数层中的激活函数是上界阈值允许调整的线性整流函数。
9.如权利要求6所述的方法,其特征在于,所述待训练的关键点检测模型中包括批归一化BN层,则对所述关键点检测模型进行多轮第一迭代训练时,还包括:
当确定第一迭代训练的已训练轮数达到第一设定阈值时,确定所述BN层当前的统计参数,其中,所述当前的统计参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,所述BN层针对输入数据确定的均值和方差;
将所述当前的统计参数设置为所述BN层的目标统计参数,所述目标统计参数在后续的第一迭代训练过程中,取值不变。
10.如权利要求9所述的方法,其特征在于,所述待训练的关键点检测模型中包括批归一化BN层,则对所述关键点检测模型进行多轮第一迭代训练时,还包括:
当确定第一迭代训练的已训练轮数达到第二设定阈值时,确定所述伪量化算子当前的量化参数,其中,所述当前的量化参数包括在上一轮第一迭代训练中的最后一轮第二迭代训练中获得的,基于经过所述伪量化算子处理的数据确定的拉伸比例和零点;
将所述当前的量化参数设置为所述伪量化算子的目标量化参数,所述目标量化参数在后续的第一迭代训练过程中,取值不变。
11.如权利要求1-4任一项所述的方法,其特征在于,所述多媒体信息为待处理图像,则所述将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果,包括:
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到所述待处理图像对应的人脸关键点坐标信息;或者,
将获取的待处理图像输入已量化训练的目标关键点检测模型中,得到所述待处理图像中目标对象的关键点坐标信息。
12.如权利要求1-4任一项所述的方法,其特征在于,包括:
采用所述目标关键点检测模型,对应N张原始图像,获得N个抖动评估结果,其中,获得一个抖动评估结果的过程中,执行以下操作:
采用所述目标关键点检测模型,对一张原始图像进行K次关键点检测,其中,在一次关键点检测过程中,基于前一次关键点检测得到的预测关键点检测结果,对所述一张原始图像进行裁剪,并将所述目标关键点检测模型基于裁剪后的所述一张原始图像输出的预测关键点检测结果,作为所述一次关键点检测的预测关键点检测结果;
获得所述K次关键点检测得到的K个预测关键点检测结果,并基于所述K个关键点检测结果,以及所述K个关键点检测结果的均值,确定对应所述一张原始图像的一个抖动评估结果;
将获得的N个抖动评估结果的均值,作为所述目标关键点检测模型的抖动指标。
13.一种关键点检测装置,其特征在于,包括:
获取单元,用于获取待检测的多媒体信息;
检测单元,用于将所述多媒体信息输入已量化训练的目标关键点检测模型中,得到所述多媒体信息对应的目标关键点检测结果;
其中,所述目标关键点检测模型是基于第一损失值和第二损失值对待训练的关键点检测模型进行参数调整后得到的,所述第一损失值用于调整所述关键点检测模型中的权重参数,所述第二损失值用于调整所述关键点检测模型的目标激活函数层中激活函数的上界阈值,所述第一损失值和第二损失值,均是基于样本数据对应的预测关键点检测结果和实际关键点检测结果获得的,所述目标激活函数层是所述关键点检测模型中,激活函数的上界阈值允许调整的激活函数层。
14.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~12中任一所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~12中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110293482.4A CN112712068B (zh) | 2021-03-19 | 2021-03-19 | 一种关键点检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110293482.4A CN112712068B (zh) | 2021-03-19 | 2021-03-19 | 一种关键点检测方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112712068A true CN112712068A (zh) | 2021-04-27 |
CN112712068B CN112712068B (zh) | 2021-07-06 |
Family
ID=75550250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110293482.4A Active CN112712068B (zh) | 2021-03-19 | 2021-03-19 | 一种关键点检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712068B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113569991A (zh) * | 2021-08-26 | 2021-10-29 | 深圳市捷顺科技实业股份有限公司 | 人证比对模型训练方法、计算机设备及计算机存储介质 |
CN113762503A (zh) * | 2021-05-27 | 2021-12-07 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN114091589A (zh) * | 2021-11-11 | 2022-02-25 | 北京百度网讯科技有限公司 | 模型训练方法、装置、电子设备及介质 |
CN113569991B (zh) * | 2021-08-26 | 2024-05-28 | 深圳市捷顺科技实业股份有限公司 | 人证比对模型训练方法、计算机设备及计算机存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154175A1 (en) * | 2002-02-13 | 2003-08-14 | Bingxue Shi | Back-propagation neural network with enhanced neuron characteristics |
CN101441728A (zh) * | 2007-11-21 | 2009-05-27 | 新乡市起重机厂有限公司 | 起重机优化设计的神经网络方法 |
CN106485230A (zh) * | 2016-10-18 | 2017-03-08 | 中国科学院重庆绿色智能技术研究院 | 基于神经网络的人脸检测模型的训练、人脸检测方法及系统 |
US20170357879A1 (en) * | 2017-08-01 | 2017-12-14 | Retina-Ai Llc | Systems and methods using weighted-ensemble supervised-learning for automatic detection of ophthalmic disease from images |
CN109389072A (zh) * | 2018-09-29 | 2019-02-26 | 北京字节跳动网络技术有限公司 | 数据处理方法和装置 |
CN110363137A (zh) * | 2019-07-12 | 2019-10-22 | 创新奇智(广州)科技有限公司 | 人脸检测优化模型、方法、系统及其电子设备 |
CN110739050A (zh) * | 2019-12-20 | 2020-01-31 | 深圳大学 | 一种左心室全参数及置信度的量化方法 |
CN111126220A (zh) * | 2019-12-16 | 2020-05-08 | 北京瞭望神州科技有限公司 | 一种视频监控目标实时定位方法 |
-
2021
- 2021-03-19 CN CN202110293482.4A patent/CN112712068B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154175A1 (en) * | 2002-02-13 | 2003-08-14 | Bingxue Shi | Back-propagation neural network with enhanced neuron characteristics |
CN101441728A (zh) * | 2007-11-21 | 2009-05-27 | 新乡市起重机厂有限公司 | 起重机优化设计的神经网络方法 |
CN106485230A (zh) * | 2016-10-18 | 2017-03-08 | 中国科学院重庆绿色智能技术研究院 | 基于神经网络的人脸检测模型的训练、人脸检测方法及系统 |
US20170357879A1 (en) * | 2017-08-01 | 2017-12-14 | Retina-Ai Llc | Systems and methods using weighted-ensemble supervised-learning for automatic detection of ophthalmic disease from images |
CN109389072A (zh) * | 2018-09-29 | 2019-02-26 | 北京字节跳动网络技术有限公司 | 数据处理方法和装置 |
CN110363137A (zh) * | 2019-07-12 | 2019-10-22 | 创新奇智(广州)科技有限公司 | 人脸检测优化模型、方法、系统及其电子设备 |
CN111126220A (zh) * | 2019-12-16 | 2020-05-08 | 北京瞭望神州科技有限公司 | 一种视频监控目标实时定位方法 |
CN110739050A (zh) * | 2019-12-20 | 2020-01-31 | 深圳大学 | 一种左心室全参数及置信度的量化方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113762503A (zh) * | 2021-05-27 | 2021-12-07 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113569991A (zh) * | 2021-08-26 | 2021-10-29 | 深圳市捷顺科技实业股份有限公司 | 人证比对模型训练方法、计算机设备及计算机存储介质 |
CN113569991B (zh) * | 2021-08-26 | 2024-05-28 | 深圳市捷顺科技实业股份有限公司 | 人证比对模型训练方法、计算机设备及计算机存储介质 |
CN114091589A (zh) * | 2021-11-11 | 2022-02-25 | 北京百度网讯科技有限公司 | 模型训练方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112712068B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558832B (zh) | 一种人体姿态检测方法、装置、设备及存储介质 | |
CN110533097B (zh) | 一种图像清晰度识别方法、装置、电子设备及存储介质 | |
CN111709409A (zh) | 人脸活体检测方法、装置、设备及介质 | |
CN109657533A (zh) | 行人重识别方法及相关产品 | |
CN110619319A (zh) | 一种基于改进的mtcnn模型人脸检测方法和系统 | |
CN113039555B (zh) | 在视频剪辑中进行动作分类的方法、系统及存储介质 | |
CN113902964A (zh) | 基于关键词感知的多模态注意力视频问答方法与系统 | |
CN112712068B (zh) | 一种关键点检测方法、装置、电子设备及存储介质 | |
CN111914782A (zh) | 人脸及其特征点的检测方法、装置、电子设备和存储介质 | |
Suresh et al. | Sign language recognition system using deep neural network | |
CN111126347B (zh) | 人眼状态识别方法、装置、终端及可读存储介质 | |
US20230162477A1 (en) | Method for training model based on knowledge distillation, and electronic device | |
CN115223020B (zh) | 图像处理方法、装置、设备、存储介质及计算机程序产品 | |
CN116051388A (zh) | 经由语言请求的自动照片编辑 | |
CN112446322A (zh) | 眼球特征检测方法、装置、设备及计算机可读存储介质 | |
CN115187772A (zh) | 目标检测网络的训练及目标检测方法、装置及设备 | |
CN113743426A (zh) | 一种训练方法、装置、设备以及计算机可读存储介质 | |
CN111242176A (zh) | 计算机视觉任务的处理方法、装置及电子系统 | |
CN114332524A (zh) | 图像处理装置、方法、设备以及计算机可读存储介质 | |
CN116975711A (zh) | 多视图数据分类方法以及相关设备 | |
CN111104911A (zh) | 一种基于大数据训练的行人重识别方法及装置 | |
CN114419514B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN114283460A (zh) | 一种特征提取方法、装置、计算机设备及存储介质 | |
CN113327212A (zh) | 人脸驱动、模型的训练方法、装置、电子设备及存储介质 | |
CN110765809A (zh) | 一种面部表情分类方法、装置和情感智能机器人 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40041972 Country of ref document: HK |