CN113743157A - 关键点检测模型训练方法和装置、关键点检测方法和装置 - Google Patents

关键点检测模型训练方法和装置、关键点检测方法和装置 Download PDF

Info

Publication number
CN113743157A
CN113743157A CN202010468493.7A CN202010468493A CN113743157A CN 113743157 A CN113743157 A CN 113743157A CN 202010468493 A CN202010468493 A CN 202010468493A CN 113743157 A CN113743157 A CN 113743157A
Authority
CN
China
Prior art keywords
key point
data
point data
keypoint
weight
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.)
Pending
Application number
CN202010468493.7A
Other languages
English (en)
Inventor
陈建业
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010468493.7A priority Critical patent/CN113743157A/zh
Publication of CN113743157A publication Critical patent/CN113743157A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本公开提出一种关键点检测模型训练方法和装置、以及关键点检测方法和装置,涉及计算机技术领域。在本公开中,将第一关键点数据集合中的每条关键点数据输入到深度学习模型;确定每条关键点数据的权重;根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正;根据所有关键点数据对应的损失函数值之和,确定总损失;根据总损失对深度学习模型的参数进行训练,直到满足预设的终止条件,得到关键点检测模型。该方法无需额外收集和标注其他关键点数据,避免浪费额外较大的人工成本。使得在训练关键点检测模型时,通过为每条关键点数据设置权重,提高模型的稳定性和泛化性。

Description

关键点检测模型训练方法和装置、关键点检测方法和装置
技术领域
本公开涉及计算机技术领域,特别涉及一种关键点检测模型训练方法和装置、以及关键点检测方法和装置。
背景技术
关键点检测,也被称为关键点定位或关键点对齐,其任务是指,在给定一张待检测的图像数据以后,定位出该图像数据中的关键特征点。例如在人脸关键点检测中,关键特征点例如可以是眼睛、眉毛、嘴唇、鼻子等部位的特征点。在构建关键点检测模型时,需要预先收集一定量的预先标注了关键点的训练数据,利用这些训练数据来构建关键点检测模型。
目前主流的关键点数据集,通常是不均衡的数据集,即,正向无偏转的数据更多,而某些特殊角度、特殊光线或者部分遮挡的数据较少。利用不均衡数据集进行训练,来得到关键点检测模型,会导致关键点检测模型对正向无偏转的数据具有较好的定位的准确度,但是对某些特殊角度、特殊光线或者部分遮挡的数据的检测准确度较低。也就是说,利用不均衡数据集进行训练,会降低关键点检测模型的稳定性和泛化性能。
在一些相关技术中,通过额外收集这类特殊数据,并且需要人工根据特定关键点的顺序在图像数据上标注关键点,从而解决利用不均衡数据集来构建关键点检测模型而导致的模型准确率和泛化性能降低的问题。
发明内容
发明人发现,在相关技术中,通过额外收集特殊的关键点数据,并提供人工标注的方法,从而提高模型训练的稳定性和泛化性能,这种训练模型的方法需要预先收集额外数据并进行标注,会浪费额外较大的人工成本。
为此,本公开提供一种能够避免浪费额外较大的人工成本的关键点检测模型训练方法。
在本公开的实施例中,将第一关键点数据集合中的每条关键点数据输入到深度学习模型,以得到每条关键点数据对应的输出结果;根据预设标准确定每条关键点数据的权重;根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正;根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失;根据总损失对深度学习模型的参数进行训练,直到满足预设的终止条件,深度学习模型训练完成,训练完成的深度学习模型作为关键点检测模型。通过预设标准分别为第一关键点数据集合中的关键点数据设置不同的权重,为特殊的关键点数据设置较大的权重,从而使得利用关键点数据训练关键点检测模型时,根据每条关键点数据的权重对相应的损失函数进行修正,能够提高关键点检测模型的稳定性和泛化性。该方法无需额外收集和标注其他的关键点数据,避免了浪费额外较大的人工成本。
根据本公开的一些实施例,提供一种关键点检测模型训练方法,其中,包括:
将第一关键点数据集合中的每条关键点数据输入到深度学习模型,以得到每条关键点数据对应的输出结果;
根据预设标准确定第一关键点数据集合中的每条关键点数据的权重;
根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正;
根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失;
根据所述总损失对所述深度学习模型的参数进行训练,直到满足预设的终止条件,所述深度学习模型训练完成,训练完成的所述深度学习模型作为关键点检测模型。
在一些实施例中,所述根据预设标准确定第一关键点数据集合中的每条关键点数据的权重包括:利用第一关键点数据集合中的所有关键点数据的坐标信息,生成基准数据;计算所述第一关键点数据集合中的每条关键点数据与所述基准数据之间的差异度;根据所述第一关键点数据集合中的每条关键点数据与所述基准数据之间的差异度,将所述第一关键点数据集合进行分组;根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重。
在一些实施例中,所述利用第一关键点数据集合中的所有关键点数据的坐标信息,生成基准数据包括:计算第一关键点数据集合中的所有关键点数据对应的每个关键点的坐标平均值;将由所有关键点的坐标平均值所构成的数据作为所述基准数据。
在一些实施例中,所述根据所述第一关键点数据集合中的每条关键点数据与所述基准数据之间的差异度,将所述第一关键点数据集合进行分组包括:在所得到的差异度中选择最小值和最大值;将由所述最小值及所述最大值所构成的区间,划分为多个预定长度的子区间或者预设个数的等长子区间;将差异度属于同一子区间的所述关键点数据,划分到一个分组中。
在一些实施例中,所述根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重包括:确定所有分组中包含关键点数据的数量的最大值;根据所述关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的分组相应的权重。
在一些实施例中,所述根据所述关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的分组相应的权重包括:在所述权重小于预设门限的情况下,将所述权重作为所确定的权重;在所述权重不小于预设门限的情况下,将所述预设门限作为所确定的权重。
在一些实施例中,采用如下公式确定每个分组中的关键点数据对应的权重:
αm=min(αmax,[nmax/nm+a])
其中,αm表示分组m中的关键点数据的权重,αmax表示预设的权重的上限值,nmax表示所有分组中包含关键点数据的数量的最大值,nm表示分组m内的关键点数据的数量。a表示预设参数。另外,min表示求最小值,[]表示取整计算。
在一些实施例中,所述关键点数据包括人脸关键点数据。
根据本公开的另一些实施例,提供一种关键点检测模型训练装置,其中,包括:输入模块,被配置为将第一关键点数据集合中的每条关键点数据输入到深度学习模型,以得到每条关键点数据对应的输出结果;权重确定模块,被配置为根据预设标准确定第一关键点数据集合中的每条关键点数据的权重;损失函数确定模块,被配置为根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正;总损失确定模块,被配置为根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失;参数训练模块,被配置为根据所述总损失对所述深度学习模型的参数进行训练,直到满足预设的终止条件,所述深度学习模型训练完成,训练完成的所述深度学习模型作为关键点检测模型。
根据本公开的又一些实施例,提供一种关键点检测模型训练装置,其中,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行任一实施例所述的关键点检测模型训练方法。
根据本公开的又再一些实施例,提供一种关键点检测方法,包括:利用任一实施例所述的关键点检测模型训练方法,得到关键点检测模型;利用所述关键点检测模型,对待检测数据进行关键点检测。
根据本公开的又再一些实施例,提供一种关键点检测装置,其中,包括:模型训练模块,被配置为利用任一实施例所述的关键点检测模型训练方法,得到关键点检测模型;关键点检测模块,被配置为利用所述关键点检测模型,对待检测数据进行关键点检测。
根据本公开的又再一些实施例,提供一种关键点检测装置,其中,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行任一实施例所述的关键点检测方法。
根据本公开的又再一些实施例,提供一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的关键点检测模型训练方法,或者,该程序被处理器执行时实现任一实施例所述的关键点检测方法。
附图说明
下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍。根据下面参照附图的详细描述,可以更加清楚地理解本公开。
显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出根据本公开的一些实施例的关键点检测模型训练方法的流程示意图。
图2示出根据本公开的一些实施例的确定关键点数据的权重的方法的流程示意图。
图3示出根据本公开的一些实施例的第一关键点数据集合内关键点数据所对应的差异度的分布情况的示意图。
图4示出根据本公开的一些实施例的关键点检测模型训练装置的示意图。
图5示出根据本公开的另一些实施例的关键点检测模型训练装置的示意图。
图6示出根据本公开的一些实施例的关键点检测方法的流程示意图。
图7示出根据本公开的一些实施例的关键点检测装置的示意图。
图8示出根据本公开的另一些实施例的关键点检测装置的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
图1示出根据本公开的一些实施例的关键点检测模型训练方法的流程示意图。该方法例如可以由关键点检测模型训练装置执行。
本公开中的关键点数据(也称关键点图像数据)例如包括人脸关键点数据。
如图1所示,该实施例的方法包括步骤101-105。
在步骤101,将第一关键点数据集合中的每条关键点数据输入到深度学习模型。
其中,第一关键点数据集合中的关键点数据是经过标注的关键点数据,即,第一关键点数据集合中的关键点数据包含每个特征点在对应图像上的坐标值。
在步骤102,根据预设标准确定第一关键点数据集合中的每条关键点数据的权重。
根据预设标准确定第一关键点数据集合中的每条关键点数据的权重包括步骤1021-1024。如图2所示,图2示出根据本公开的一些实施例的确定关键点数据的权重的方法的流程示意图。
在步骤1021,利用第一关键点数据集合中的所有关键点数据的坐标信息,生成基准数据。
在一些实施例中,首先,计算第一关键点数据集合中的所有关键点数据对应的每个关键点(也称特征点)的坐标平均值;将由所有关键点的坐标平均值所构成的数据作为基准数据。例如,某个第一关键点数据集合中的每条关键点数据都具有68个特征点,根据第一关键点数据集合的坐标信息,经过计算可以得到一个具有68个特征点的基准数据。又例如,如果某个第一关键点数据集合中的每条关键点数据都具有106个特征点,根据第一关键点数据集合的坐标信息,经过计算可以得到一个具有106个特征点的基准数据。
在一些实施例中,利用所有关键点数据的坐标信息,生成基准数据之前还包括:对所有关键点数据进行归一化,例如,将所有关键点图像数据归一化到同一尺寸上,并更新每条关键点数据的所有特征点在新尺寸下的对应的新的坐标值,得到归一化后的第一关键点数据集合。将所有的关键点数据归一化到同一尺寸之后再计算基准数据,可以使得基准数据作为其他数据的基准的参考性更强,基准数据的表征也更加准确。
在步骤1022,计算第一关键点数据集合中的每条关键点数据与基准数据之间的差异度。
在一些实施例中,例如,可以通过分析算法(例如相似变换算法、普氏分析Procrustes Analysis算法等)计算第一关键点数据集合中的每条关键点数据与基准数据之间的差异度,也就是指,利用分析算法将每条关键点数据的坐标值变换到最为接近步骤101的基准数据的表示,从而得到每条关键点数据与基准数据之间的差异度。例如,与基准数据之间的差异度越高,表示该条关键点数据越特殊,数据量越小;而与基准数据之间的差异度越低,则表示该条关键点数据越常见,数据量越大。
在一些实施例中,计算差异度之前或者计算差异度之后还包括:对第一关键点数据集合中的关键点数据进行特征压缩。例如,可以通过主成分分析(Principal ComponentsAnalysis,PCA)算法对关键点数据进行特征压缩。对关键点数据进行特征压缩之后,可以保留较少的主成分特征。例如,进行压缩前的每条关键点数据例如包括了68个特征,通过特征压缩之后,每条关键点数据例如可以保留1个主成分特征、2个主成分特征等(其中,压缩后的特征个数不限于所举的示例)。此时,用压缩后的特征来表示关键点数据,可以提高后续计算(例如计算差异度)的效率。
在步骤1023,根据第一关键点数据集合中的每条关键点数据与基准数据之间的差异度,将第一关键点数据集合进行分组。
在一些实施例中,将第一关键点数据集合进行分组包括:在所得到的所有差异度中选择其中的差异度最小值和差异度最大值;将由最小值及最大值所构成的区间,划分为多个预定长度的子区间或者预设个数的等长子区间;将差异度属于同一子区间的关键点数据,划分到一个分组中。
例如,通过特征压缩将关键点数据压缩到了一个特征,则差异度表示为一组一维的数据,那么,假设某一第一关键点数据集合有6条关键点数据,计算其中的每条关键点数据与基准数据之间的差异度,得到对应的差异度分别为7,-4,5,-1,1.2,8。首先,确定差异度最小值为-4,差异度最大值为8。然后,得到由最小值及最大值所构成的区间为[-4,8]。接着,例如将每个子区间的预设长度设置为4,那么,可以将区间划分为[-4,0],[0,4],[4,8]这样的三个子区间;或者,例如设置等长子区间的预设个数为3,那么,可以将区间为[-4,8]划分为3个等长(即等长为4)的子区间[-4,0],[0,4],[4,8]。然后,将差异度属于子区间[-4,0]的所有关键点数据划分到一个分组中,例如标记为分组1,分组1包括差异度为-4和-1所对应的所有关键点数据;将差异度属于子区间[0,4]的所有关键点数据划分到一个分组中,例如标记为分组2,分组2包括差异度为1.2所对应的所有关键点数据;将差异度属于子区间[4,8]的所有关键点数据划分到一个分组中,例如标记为分组3,分组3包括差异度为5,7和8所对应的所有关键点数据。
又例如,通过特征压缩将关键点数据压缩到了多个特征,则差异度表示为多维数据,那么,需要在每个维度上进行区间的划分。例如可以用多维空间的一个局部区域对应于划分所得的一个子区间。
下面以差异度为二维数据为例说明区间划分的方法。
如果通过特征压缩将关键点数据压缩到了两个特征,则差异度表示为一组二维的数据,例如利用二维中的其中一维表示关键点数据的其中一个特征(例如确定的最小值Xmin和最大值Xmax),利用二维中的其中另一维表示关键点数据的其中另一个特征(例如确定的最小值Ymin和最大值Ymax),将Xmin和Xmax构成的区间[Xmin,Xmax]划分为多个预定长度的子区间或者预设个数的等长子区间,将Ymin和Ymax构成的区间[Ymin,Ymax]划分为多个预定长度的子区间或者预设个数的等长子区间,然后,将差异度属于同一子区间的关键点数据,划分到一个分组中。
在一些实施例中,将第一关键点数据集合进行分组之前还包括:删除差异度中的离群值。离群值例如可能是由于原始数据的标注错误而产生的,因此,删除离群值可以提高数据增强的准确性,从而提高后续训练出的关键点检测模型的稳定性。
在步骤1024,根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重。
根据每个分组内的关键点数据的数量,确定相应的分组中的每条关键点数据的权重。通过给每条关键点数据设置权重来均衡化用于模型训练的训练数据,可以提高训练所得的关键点检测模型的稳定性和泛化性。
其中,根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重包括:确定所有分组中包含关键点数据的数量的最大值;根据关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的分组相应的权重。
根据关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的组相应的权重包括:在权重小于预设门限(即表示权重的上限值)的情况下,将权重作为所确定的权重;在权重不小于预设门限的情况下,将预设门限作为所确定的权重。
在一些实施例中,采用如下公式确定每个分组中的关键点数据对应的权重:
αm=min(αmax,[nmax/nm+a])
其中,αm表示分组m中的关键点数据的权重,αmax表示预设门限,即预设的权重的上限值,nmax表示所有分组中包含关键点数据的数量的最大值,nm表示分组m内的关键点数据的数量。a表示预设参数。另外,min表示求最小值,[]表示取整计算。
假设分组1包括差异度的值属于子区间[-4,0]的所有关键点数据,有100条关键点数据,即可以表示为n1=100;分组2包括差异度的值属于子区间[0,4]的所有关键点数据,有1200条关键点数据,即可以表示为n2=1200;分组3包括差异度的值属于子区间[4,8]的所有关键点数据,有60条关键点数据,即可以表示为n3=60。假设预设参数a设置为0.5,预设门限αmax例如设置为20。那么,可以根据分组1、分组2、分组3所有分组中分别包含关键点数据的数量确定包含的关键点数据的数量最大值为即可以表示为nmax=1200。例如,计算分组1所对应的权重α1,可以表示为α1=min(αmax,[nmax/nm+a])=min(20,[1200/100+0.5])=min(20,12)=12,即表示分组1中的每条关键点数据对应的权重为12,即表示为α1=12。又例如,计算分组3所对应的权重α3,可以表示为α3=min(αmax,[nmax/nm+a])=min(20,[1200/60+0.5])=min(20,21)=20,根据[nmax/nm+a]=21计算的权重为21(21>20),21超过了预设的门限值20,因为权重不能大于预设门限值,即,表示分组3中的每条关键点数据对应的权重为预设门限值20,即表示为α3=20。
在步骤103,根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正。
假设用loss(m)表示关键点数据m的损失函数。N表示关键点的总个数,n表示关键点的序号。fmn和ymn分别表示关键点数据m的关键点的预测值(例如通过深度学习模型得到的预测值)和关键点的真实值。
根据每条关键点数据的输出结果确定相应的损失函数,例如可以是平方损失函数L2_loss(m)',表示为:
Figure BDA0002513487640000101
利用关键点数据进行训练时,根据关键点数据m的权重αm确定关键点数据m的损失函数loss(m)。利用关键点数据m的权重αm修正后的损失函数loss(m)例如可以是平方损失函数L2_loss(m),表示为:
Figure BDA0002513487640000111
根据每条关键点数据的输出结果确定相应的损失函数,例如可以是绝对值损失函数L1_loss(m)',表示为:
Figure BDA0002513487640000112
利用关键点数据m的权重αm修正后的损失函数loss(m)例如可以是绝对值损失函数L1_loss(m),表示为:
Figure BDA0002513487640000113
其中,αm表示关键点数据m的权重。
例如,关键点数据m1为“侧脸”的关键点数据,“侧脸”数据属于比较少见的特殊数据,因此根据步骤102中权重确定的步骤得到一个较大的权重,例如确定m1的权重为αm1=100;关键点数据m2为“正脸”的关键点数据,“正脸”数据属于比较多见的正常数据,例如确定m2的权重为αm2=5。由此,通过增大少见的关键点数据的权重,使得在训练深度学习模型时,“侧脸”关键点数据m1与“正脸”关键点数据m2具有同样的“地位”,从而增强训练好的关键点检测模型的稳定性和泛化性,即,关键点检测模型在面对一个新的特殊数据(例如“侧脸”数据)或者新的正常数据(例如“正脸”数据)都具有同样的检测效果。
当关键点数据的权重较大时,该条关键点数据在损失函数的计算结果中所占的比重也就越大,后续优化损失函数时,就会更重视该条数据的表现,进而泛化到该条关键点数据所代表的场景下的表现(例如在人脸关键点数据的应用场景下的那些侧脸、嘟嘴、强光情况下的关键点数据)。
在步骤104,根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失。
例如,假设用Loss表示总损失。M表示第一关键点数据集合中的关键点数据的条数,N表示关键点的总个数。m表示一条关键点数据,n表示关键点的序号。αm表示关键点数据m的权重。fmn和ymn分别表示关键点数据的关键点的预测值(例如通过深度学习模型得到的预测值)和关键点的真实值。利用关键点数据进行训练时,根据权重修正总损失函数Loss,修正的总损失函数Loss例如可以是平方总损失函数L2_Loss,表示为:
Figure BDA0002513487640000121
或者,修正的总损失函数Loss例如可以是绝对值总损失函数L1_Loss,表示为:
Figure BDA0002513487640000122
在步骤105,根据总损失对深度学习模型的参数进行训练,直到满足预设的终止条件,深度学习模型训练完成,训练完成的深度学习模型作为关键点检测模型。
根据总损失对深度学习模型的参数进行训练,即,根据每次计算的总损失更新深度学习模型的参数,直到满足预设的终止条件,深度学习模型训练完成,将训练完成的深度学习模型作为关键点检测模型。其中,预设的终止条件例如可以是总损失低于预设阈值,或者,更新深度学习模型的次数达到预设次数等。
上述实施例中,通过计算关键点数据与基准数据的差异度,区分出特殊的关键点数据和常见的关键点数据,根据差异度将这些关键点数据划分到不同的分组中,并根据预设规则为这些分组分别设置不同的权重,在训练时增大特殊的关键点数据的权重,以达到数据增强的目的。上述实施例直接根据已有的关键点数据集进行数据增强处理,无需额外收集和标注其他的关键点数据,避免浪费额外较大的人工成本,从而使得利用关键点数据训练关键点检测模型时,根据每条关键点数据的权重确定对应的损失函数,避免模型对常见数据的过拟合问题,以及对特殊数据的响应不足的问题,提高关键点检测模型的稳定性和泛化性。
图3示出根据本公开的一些实施例的第一关键点数据集合内关键点数据所对应的差异度的分布情况的示意图。
如图3所示,通过特征压缩例如可以将关键点数据的特征压缩到只保留一个特征点,那么计算得到的差异度为一维数据。由此可以利用二维坐标系的横向坐标轴表示关键点数据与基准数据之间的差异度的取值。差异度的取值范围例如为[-100,100],例如设置子区间的预设个数为40,那么,划分的子区间分别为[-100,-95],[-95,-90],……,[-5,-0],[-5,-0],……,[90,95],[95,100]。纵向坐标轴表示属于每个子区间的关键点数据的数量,取值范围为[0,25000]。
由图3可以看出,图示的第一关键点数据集合的关键点数据所对应的差异度普遍分布在区间[-75,75]内,例如可以设置预设门限αmax,和预设参数a,通过最高的一根柱子所对应的纵坐标值可以确定关键点数据的数量的最大值nmax,例如为nmax=22381。例如,根据步骤1024中计算权重的公式,计算每个分组内的关键点数据的权重。则分布在越靠两端的关键点数据的权重越大,但权重的最大值不超过预设门限αmax,避免权重相差太大而导致特殊的关键点数据的数量过多或者标注误差带来的偏移,提高了数据增强的质量。
如果通过特征压缩将关键点数据的特征压缩到了保留两个特征点,则关键点数据所对应的差异度为二维数据,此时,可以利用三维坐标系X-Y-Z中的X轴和Y轴分别表示关键点数据中的两个特征点(即关键点)与基准数据中的两个特征点之间的差异度,根据X轴和Y轴分别对应的差异度的取值范围划分多个子区间。利用Z轴表示每个子区间中包含的关键点数据的数量。根据每个分组中关键点数据的数量来计算权重,例如可以参考步骤102中计算权重的步骤。
当然,也可以通过特征压缩将关键点数据的特征压缩到了三个特征点,四个特征点,五个特征点等等,相应地,可以得到三维数据,四维数据,五维数据等等表示的差异度,那么,就可以分别利用四维坐标系、五维坐标系、六维坐标系等等来表示差异度与关键点数据集合分组之间的关系。
图4示出根据本公开的一些实施例的关键点检测模型训练装置的示意图。
如图4所示,该实施例的关键点检测模型训练装置400包括输入模块401,权重确定模块402,损失函数确定模块403,总损失确定模块404以及参数训练模块405。
其中,输入模块401,被配置为将第一关键点数据集合中的所有关键点数据输入到深度学习模型,以得到每条关键点数据的输出结果。其中,第一关键点数据集合中的关键点数据是经过标注的关键点数据,即,第一关键点数据集合中的关键点数据包含每个特征点在图像上对应的坐标值。
权重确定模块402,被配置为根据预设标准确定第一关键点数据集合中的每条关键点数据的权重。
其中,预设标准例如为:首先,利用第一关键点数据集合中的所有关键点数据的坐标信息,生成基准数据;然后,计算第一关键点数据集合中的每条关键点数据与基准数据之间的差异度;接着,根据第一关键点数据集合中的每条关键点数据与基准数据之间的差异度,将第一关键点数据集合进行分组;最后,根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重。
在一些实施例中,计算第一关键点数据集合中的所有关键点数据对应的每个关键点(也称每个特征点)的坐标平均值,将由所有关键点的坐标平均值所构成的数据作为基准数据。在一些实施例中,在生成基准数据之前,对所有关键点数据进行归一化,然后利用归一化后的所有关键点数据的坐标信息,生成基准数据。
在一些实施例中,通过分析算法(例如相似变换算法、普氏分析ProcrustesAnalysis算法等)计算第一关键点数据集合中的每条关键点数据与基准数据之间的差异度。在一些实施例中,权重确定模块402,还被配置为在计算差异度之前,首先对第一关键点数据集合中的关键点数据进行特征压缩,然后利用经过特征压缩处理的关键点数据计算差异度。在另一些实施例中,权重确定模块402,还被配置为计算差异度之后对第一关键点数据集合中的关键点数据进行特征压缩。
在一些实施例中,在所得到的所有差异度中选择其中的差异度最小值和差异度最大值;将由最小值及最大值所构成的区间,划分为多个预定长度的子区间或者预设个数的等长子区间;将差异度属于同一子区间的关键点数据,划分到一个分组中。在另一些实施例中,权重确定模块402,还被配置为将第一关键点数据集合进行分组之前,删除差异度中的离群值,将去除了离群值表示的差异度所对应的关键点数据之后的第一关键点数据集合进行分组。删除离群值可以提高数据增强的准确性,从而提高后续训练出的模型的稳定性。
在一些实施例中,确定所有分组中包含关键点数据的数量的最大值;然后,根据关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的组相应的权重。其中,根据关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的组相应的权重包括:在权重小于预设门限(即表示权重的上限值)的情况下,将计算所得的权重作为所确定的权重;在权重不小于预设门限的情况下,将预设门限作为所确定的权重。
在另一些实施例中,权重确定模块402,被配置为采用如下公式确定每个分组中的关键点数据对应的权重:
αm=min(αmax,[nmax/nm+a])
其中,αm表示分组m中的关键点数据的权重,αmax表示预设门限,即预设的权重的上限值,nmax表示所有分组中包含关键点数据的数量的最大值,nm表示分组m内的关键点数据的数量。a表示预设参数。另外,min表示求最小值,[]表示取整计算。
损失函数确定模块403,被配置为根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正。
假设用loss(m)表示关键点数据m的损失函数。N表示关键点的总个数,n表示关键点的序号。αm表示关键点数据m的权重。fmn和ymn分别表示关键点数据m的关键点的预测值(例如通过深度学习模型得到的预测值)和关键点的真实值。利用关键点数据进行训练时,根据权重修正关键点数据m的损失函数loss(m),修正后的损失函数loss(m)例如可以是平方损失函数L2_loss(m),表示为:
Figure BDA0002513487640000161
或者,修正后的损失函数loss(m)例如可以是绝对值损失函数L1_loss(m),表示为:
Figure BDA0002513487640000162
总损失确定模块404,被配置为根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失。
例如,假设用Loss表示总损失。M表示第一关键点数据集合中的关键点数据的条数,N表示关键点的总个数。m表示一条关键点数据,n表示关键点的序号。αm表示关键点数据m的权重。fmn和ymn分别表示关键点数据的关键点的预测值(例如通过深度学习模型得到的预测值)和关键点的真实值。利用关键点数据进行训练时,根据权重修正损失函数Loss,修正后的总损失函数Loss例如可以是平方总损失函数L2_Loss,表示为:
Figure BDA0002513487640000163
或者,修正后的总损失函数Loss例如可以是绝对值总损失函数L1_Loss,表示为:
Figure BDA0002513487640000164
参数训练模块405,被配置为根据总损失对深度学习模型的参数进行训练,直到满足预设的终止条件,深度学习模型训练完成,训练完成的深度学习模型作为关键点检测模型。
其中,预设的终止条件例如可以是总损失低于预设阈值,或者,更新深度学习模型的次数达到预设次数等。
上述实施例中,通过为特殊的关键点数据设置较多的权重,以增大特殊的关键点数据的数量,从而达到数据增强的目的,无需额外收集和标注其他的关键点数据,不仅避免浪费额外较大的人工成本,同时,也使得利用增强后的所有关键点数据训练关键点检测模型,避免模型对常见数据的过拟合,以及对特殊数据的响应不足的问题,提高了关键点检测模型的稳定性和泛化性。
图5示出根据本公开的另一些实施例的关键点检测模型训练装置的示意图。
如图5所示,该实施例的关键点检测模型训练装置500包括:存储器501以及耦接至该存储器501的处理器502,处理器502被配置为基于存储在存储器501中的指令,执行本公开任意一些实施例中的关键点检测模型训练方法。
其中,存储器501例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
关键点检测模型训练装置500还可以包括输入输出接口503、网络接口504、存储接口505等。这些接口503,504,505以及存储器501和处理器502之间例如可以通过总线506连接。其中,输入输出接口503为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口504为各种联网设备提供连接接口。存储接口505为SD卡、U盘等外置存储设备提供连接接口。
图6示出根据本公开的一些实施例的关键点检测方法的流程示意图。
如图6所示,该实施例的方法包括步骤601-602。
在步骤601,利用第一关键点数据集合对深度学习模型进行训练,得到关键点检测模型。这里采用图1中任一实施例的关键点检测模型训练方法,利用第一关键点数据集合进行训练。其中,第一关键点数据集合指的是原始的关键点数据集合。
其中,深度学习模型例如可以为深度信念网络(Deep Belief Network,DBN)模型、堆叠自动编码器(Stacked Auto-Encoders,SAE)模型、卷积神经网络(ConvolutionalNeural Networks,CNN)模型或者递归神经网络(Recurrent Neural Networks,RNN)模型中的任一种。
训练深度学习模型的方法,例如包括直接回归关键点坐标的方法,或者通过热力图输出关键点坐标的方法。在直接回归关键点坐标的方法中,将第一关键点数据集合中的关键点数据输入到深度学习模型中,通过深度学习模型输出关键点数据对应的关键点坐标值。在通过热力图输出关键点坐标的方法中,将第一关键点数据集合中的关键点数据输入到深度学习模型中,通过深度学习模型输出包含有所有关键点坐标的热力图,根据该热力图得到关键点数据对应的关键点坐标值。
在一些实施例中,例如,将第一关键点数据集合作为训练数据,输入到深度学习模型中,确定与关键点数据的权重相关的损失函数,通过优化该损失函数,最终得到构建好的关键点检测模型。
在一些实施例中,利用第一关键点数据集合中的关键点数据进行训练时,例如还可以对关键点数据做一些变换处理(例如对一条关键点数据进行翻转,旋转,裁剪,或者光照变换等),使得同一条数据可能在训练过程中会出现小幅差异,从而提高关键点检测模型的泛化能力。
在步骤602,利用关键点检测模型,对待检测数据进行关键点检测。
上述实施例中,利用第一关键点数据集合作为训练数据,在训练模型时确定与关键点数据的权重相关的损失函数,通过优化该损失函数来构建关键点检测模型,可以提高模型的稳定性和泛化性。
图7示出根据本公开的一些实施例的关键点检测装置的示意图。
如图7所示,该实施例的关键点检测装置700包括模型训练模块701,以及关键点检测模块702。
其中,模型训练模块701,被配置为利用第一关键点数据集合对深度学习模型进行训练,得到关键点检测模型,其中,根据每条关键点数据的权重确定相应的损失函数。其中,深度学习模型例如可以为深度信念网络(Deep Belief Network,DBN)模型、堆叠自动编码器(Stacked Auto-Encoders,SAE)模型、卷积神经网络(Convolutional Neural Networks,CNN)模型或者递归神经网络(Recurrent Neural Networks,RNN)模型中的任一种。
在一些实施例中,模型训练模块701,例如被配置为将第一关键点数据集合作为训练数据,输入到深度学习模型中,定义与关键点数据的权重相关的损失函数,通过优化该损失函数,最终得到构建好的关键点检测模型。
关键点检测模块702,被配置为利用关键点检测模型,对待检测数据进行关键点检测。
图8示出根据本公开的另一些实施例的关键点检测装置的示意图。
如图8所示,该实施例的关键点检测装置800包括:存储器801以及耦接至该存储器801的处理器802,处理器802被配置为基于存储在存储器801中的指令,执行本公开任意一些实施例中的关键点检测方法。
其中,存储器801例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
关键点检测装置800还可以包括输入输出接口803、网络接口804、存储接口805等。这些接口803,804,805以及存储器801和处理器802之间例如可以通过总线806连接。其中,输入输出接口803为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口804为各种联网设备提供连接接口。存储接口805为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机程序代码的计算机非瞬时性可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (13)

1.一种关键点检测模型训练方法,其中,包括:
将第一关键点数据集合中的每条关键点数据输入到深度学习模型,以得到每条关键点数据对应的输出结果;
根据预设标准确定第一关键点数据集合中的每条关键点数据的权重;
根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正;
根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失;
根据所述总损失对所述深度学习模型的参数进行训练,直到满足预设的终止条件,所述深度学习模型训练完成,训练完成的所述深度学习模型作为关键点检测模型。
2.根据权利要求1所述的关键点检测模型训练方法,其中,所述根据预设标准确定第一关键点数据集合中的每条关键点数据的权重包括:
利用第一关键点数据集合中的所有关键点数据的坐标信息,生成基准数据;
计算所述第一关键点数据集合中的每条关键点数据与所述基准数据之间的差异度;
根据所述第一关键点数据集合中的每条关键点数据与所述基准数据之间的差异度,将所述第一关键点数据集合进行分组;
根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重。
3.根据权利要求2所述的关键点检测模型训练方法,其中,所述利用第一关键点数据集合中的所有关键点数据的坐标信息,生成基准数据包括:
计算第一关键点数据集合中的所有关键点数据对应的每个关键点的坐标平均值;
将由所有关键点的坐标平均值所构成的数据作为所述基准数据。
4.根据权利要求2所述的关键点检测模型训练方法,其中,所述根据所述第一关键点数据集合中的每条关键点数据与所述基准数据之间的差异度,将所述第一关键点数据集合进行分组包括:
在所得到的差异度中选择最小值和最大值;
将由所述最小值及所述最大值所构成的区间,划分为多个预定长度的子区间或者预设个数的等长子区间;
将差异度属于同一子区间的所述关键点数据,划分到一个分组中。
5.根据权利要求2所述的关键点检测模型训练方法,其中,所述根据每个分组内的关键点数据的数量,确定每个分组中的关键点数据的权重包括:
确定所有分组中包含关键点数据的数量的最大值;
根据所述关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的分组相应的权重。
6.根据权利要求5所述的关键点检测模型训练方法,其中,所述根据所述关键点数据的数量最大值与每个分组内的关键点数据的数量的比值,确定所对应的分组相应的权重包括:
在所述权重小于预设门限的情况下,将所述权重作为所确定的权重;
在所述权重不小于预设门限的情况下,将所述预设门限作为所确定的权重。
7.根据权利要求1-6任一项所述的关键点检测模型训练方法,其中,所述关键点数据包括人脸关键点数据。
8.一种关键点检测模型训练装置,其中,包括:
输入模块,被配置为将第一关键点数据集合中的每条关键点数据输入到深度学习模型,以得到每条关键点数据对应的输出结果;
权重确定模块,被配置为根据预设标准确定第一关键点数据集合中的每条关键点数据的权重;
损失函数确定模块,被配置为根据每条关键点数据的输出结果确定相应的损失函数,利用每条关键点数据的权重对相应的损失函数进行修正;
总损失确定模块,被配置为根据第一关键点数据集合中的所有关键点数据对应的损失函数值之和,确定总损失;
参数训练模块,被配置为根据所述总损失对所述深度学习模型的参数进行训练,直到满足预设的终止条件,所述深度学习模型训练完成,训练完成的所述深度学习模型作为关键点检测模型。
9.一种关键点检测模型训练装置,其中,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行权利要求1-7中任一项所述的关键点检测模型训练方法。
10.一种关键点检测方法,包括:
利用权利要求1-7任一项所述的关键点检测模型训练方法,得到关键点检测模型;
利用所述关键点检测模型,对待检测数据进行关键点检测。
11.一种关键点检测装置,其中,包括:
模型训练模块,被配置为利用权利要求1-7任一项所述的关键点检测模型训练方法,得到关键点检测模型;
关键点检测模块,被配置为利用所述关键点检测模型,对待检测数据进行关键点检测。
12.一种关键点检测装置,其中,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行权利要求10所述的关键点检测方法。
13.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7中任一项所述的关键点检测模型训练方法,或者,该程序被处理器执行时实现权利要求10所述的关键点检测方法。
CN202010468493.7A 2020-05-28 2020-05-28 关键点检测模型训练方法和装置、关键点检测方法和装置 Pending CN113743157A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010468493.7A CN113743157A (zh) 2020-05-28 2020-05-28 关键点检测模型训练方法和装置、关键点检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010468493.7A CN113743157A (zh) 2020-05-28 2020-05-28 关键点检测模型训练方法和装置、关键点检测方法和装置

Publications (1)

Publication Number Publication Date
CN113743157A true CN113743157A (zh) 2021-12-03

Family

ID=78724186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010468493.7A Pending CN113743157A (zh) 2020-05-28 2020-05-28 关键点检测模型训练方法和装置、关键点检测方法和装置

Country Status (1)

Country Link
CN (1) CN113743157A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692287A (zh) * 2009-09-25 2010-04-07 南京大学 一种基于Mean Shift的三维网格模型关键点检测方法
WO2018028546A1 (zh) * 2016-08-10 2018-02-15 腾讯科技(深圳)有限公司 一种关键点的定位方法及终端、计算机存储介质
CN108898087A (zh) * 2018-06-22 2018-11-27 腾讯科技(深圳)有限公司 人脸关键点定位模型的训练方法、装置、设备及存储介质
CN109344806A (zh) * 2018-10-31 2019-02-15 第四范式(北京)技术有限公司 利用多任务目标检测模型执行目标检测的方法和系统
CN109508678A (zh) * 2018-11-16 2019-03-22 广州市百果园信息技术有限公司 人脸检测模型的训练方法、人脸关键点的检测方法和装置
CN111126268A (zh) * 2019-12-24 2020-05-08 北京奇艺世纪科技有限公司 关键点检测模型训练方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692287A (zh) * 2009-09-25 2010-04-07 南京大学 一种基于Mean Shift的三维网格模型关键点检测方法
WO2018028546A1 (zh) * 2016-08-10 2018-02-15 腾讯科技(深圳)有限公司 一种关键点的定位方法及终端、计算机存储介质
CN108898087A (zh) * 2018-06-22 2018-11-27 腾讯科技(深圳)有限公司 人脸关键点定位模型的训练方法、装置、设备及存储介质
CN109344806A (zh) * 2018-10-31 2019-02-15 第四范式(北京)技术有限公司 利用多任务目标检测模型执行目标检测的方法和系统
CN109508678A (zh) * 2018-11-16 2019-03-22 广州市百果园信息技术有限公司 人脸检测模型的训练方法、人脸关键点的检测方法和装置
CN111126268A (zh) * 2019-12-24 2020-05-08 北京奇艺世纪科技有限公司 关键点检测模型训练方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孟令军;王静波;: "基于Pytorch和Opencv的人脸关键点检测", 电视技术, no. 14, 25 July 2019 (2019-07-25) *
李锵;姚麟倩;关欣;: "基于级联卷积神经网络的服饰关键点定位算法", 天津大学学报(自然科学与工程技术版), no. 03, 22 January 2020 (2020-01-22) *

Similar Documents

Publication Publication Date Title
US11842438B2 (en) Method and terminal device for determining occluded area of virtual object
CN109858476B (zh) 标签的扩充方法和电子设备
CN111612841A (zh) 目标定位方法及装置、移动机器人及可读存储介质
TW202217662A (zh) 視覺定位方法及相關模型的訓練方法、電子設備和電腦可讀儲存介質
CN116229007B (zh) 利用bim建模的四维数字图像构建方法、装置、设备及介质
WO2022037232A1 (zh) 三维重建中的图像分组方法及装置、电子设备和计算机可读存储介质
EP4209959A1 (en) Target identification method and apparatus, and electronic device
CN110910433A (zh) 一种基于深度学习的点云匹配方法
CN111667005A (zh) 一种采用rgbd视觉传感的人体交互系统
CN112364881B (zh) 一种进阶采样一致性图像匹配方法
CN110930503A (zh) 一种服装三维模型建立方法、系统、存储介质及电子设备
CN111460910A (zh) 人脸脸型的分类方法、装置、终端设备及存储介质
CN105447869A (zh) 基于粒子群优化算法的摄像机自标定方法及装置
CN108629315B (zh) 一种针对三维点云的多平面识别方法
CN116958267B (zh) 位姿处理方法、装置、电子设备及存储介质
CN111611935B (zh) 一种cad图纸中相似矢量图的自动识别方法
CN112084855A (zh) 一种基于改进ransac方法对视频流的外点剔除方法
CN113743157A (zh) 关键点检测模型训练方法和装置、关键点检测方法和装置
CN109919828B (zh) 一种判断3d模型之间差异的方法
CN111368674B (zh) 图像识别方法及装置
CN115661218A (zh) 一种基于虚拟超点的激光点云配准方法和系统
CN111783535A (zh) 关键点数据增强方法和装置、以及关键点检测方法和装置
CN111260723B (zh) 棒材的质心定位方法及终端设备
CN117252993B (zh) 特征点提取算法的验证方法、装置、电子设备及存储介质
CN111860625B (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