CN115578393A - 关键点检测方法、训练方法、装置、设备、介质及产品 - Google Patents

关键点检测方法、训练方法、装置、设备、介质及产品 Download PDF

Info

Publication number
CN115578393A
CN115578393A CN202211576832.9A CN202211576832A CN115578393A CN 115578393 A CN115578393 A CN 115578393A CN 202211576832 A CN202211576832 A CN 202211576832A CN 115578393 A CN115578393 A CN 115578393A
Authority
CN
China
Prior art keywords
features
vertex
detected
feature extraction
dimensional
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
Application number
CN202211576832.9A
Other languages
English (en)
Other versions
CN115578393B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211576832.9A priority Critical patent/CN115578393B/zh
Publication of CN115578393A publication Critical patent/CN115578393A/zh
Application granted granted Critical
Publication of CN115578393B publication Critical patent/CN115578393B/zh
Priority to PCT/CN2023/129915 priority patent/WO2024120096A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

本申请提供了一种关键点检测方法、训练方法、装置、设备、介质及产品,应用于人工智能技术领域,包括:构建待检测对象的三维网格,并确定三维网格的顶点及顶点间的连接关系;通过第一特征提取层对三维网格的顶点进行特征提取,得到顶点特征;通过第二特征提取层,基于顶点特征对待检测对象进行全局特征提取得到全局特征,并通过第三特征提取层,基于顶点特征及顶点间的连接关系对待检测对象进行局部特征提取得到局部特征;通过第一特征拼接层,对顶点特征、全局特征及局部特征进行特征拼接得到拼接特征;通过输出层,基于拼接特征对关键点进行检测,得到关键点在待检测对象上的位置。如此,能提高通过三维网络模型进行关键点检测的准确率。

Description

关键点检测方法、训练方法、装置、设备、介质及产品
技术领域
本申请涉及人工智能技术领域,尤其涉及一种关键点检测方法、训练方法、装置、设备、介质及产品。
背景技术
相关技术中,三维人脸角色的关键点检测一般分为两大类,第一个大类是基于传统几何分析的方法,第二大类是基于深度学习的方法,对于第一类方法,基于几何分析的关键点定位方法十分依赖于人工设定的规则,很难以适用于形态各异的头模,因此该方法的鲁棒性较差;而对于第二类方法,基本上会先把三维头模渲染成二维图像,然后再利用二维卷积神经网络提取特征,检测相应的关键点,这样,必然会损失三维几何信息。基于此,相关技术中对三维人脸角色的关键点进行检测的准确率较低。
发明内容
本申请实施例提供一种关键点检测方法、三维网络模型的训练方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,能够提高通过三维网络模型进行关键点检测的准确率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种关键点检测方法,基于三维网络模型,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述方法包括:
构建对应待检测对象的三维网格,并确定所述三维网格的顶点、以及顶点间的连接关系;
通过所述第一特征提取层,对所述三维网格的顶点进行特征提取,得到所述三维网格的顶点特征;
通过所述第二特征提取层,基于所述顶点特征,对所述待检测对象进行全局特征提取,得到所述待检测对象的全局特征,并通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,对所述待检测对象进行局部特征提取,得到所述待检测对象的局部特征;
通过所述第一特征拼接层,对所述顶点特征、所述全局特征以及所述局部特征进行特征拼接,得到所述待检测对象的拼接特征;
通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
本申请实施例提供一种关键点检测装置,基于三维网络模型,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述装置包括:
构建模块,用于构建对应待检测对象的三维网格,并确定所述三维网格的顶点、以及顶点间的连接关系;
第一特征提取模块,用于通过所述第一特征提取层,对所述三维网格的顶点进行特征提取,得到所述三维网格的顶点特征;
第二特征提取模块,用于通过所述第二特征提取层,基于所述顶点特征,对所述待检测对象进行全局特征提取,得到所述待检测对象的全局特征,并通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,对所述待检测对象进行局部特征提取,得到所述待检测对象的局部特征;
特征拼接模块,用于通过所述第一特征拼接层,对所述顶点特征、所述全局特征以及所述局部特征进行特征拼接,得到所述待检测对象的拼接特征;
输出模块,用于通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
在上述方案中,所述构建模块,还用于通过三维扫描装置对所述待检测对象进行扫描,得到所述待检测对象的几何表面的点云数据;基于所述点云数据,构建对应所述待检测对象的三维网格。
在上述方案中,所述第二特征提取模块,还用于通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,确定各所述顶点的局部特征;基于各所述顶点的局部特征,确定所述待检测对象的局部特征。
在上述方案中,所述第二特征提取模块,还用于针对各所述顶点执行以下处理:将所述顶点确定为参考顶点,并基于所述三维网格中各顶点的顶点特征,确定所述参考顶点的顶点特征、以及其它顶点的顶点特征;其中,所述其它顶点为除所述参考顶点以外的任一顶点;基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,确定所述参考顶点与所述其它顶点间的相关值;其中,所述相关值用于指示所述参考顶点与所述其它顶点间的相关性的大小;基于所述相关值、以及所述其它顶点的顶点特征,确定所述参考顶点的局部特征。
在上述方案中,所述第二特征提取模块,还用于基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,采用注意力机制确定所述参考顶点与所述其它顶点间的相关性;对所述相关性进行归一化处理,得到所述参考顶点与所述其它顶点间的相关值。
在上述方案中,当所述其它顶点的数量为一个时,所述第二特征提取模块,还用于将所述相关值与所述其它顶点的顶点特征进行求积处理,得到求积结果;基于所述求积结果,确定所述参考顶点对应的局部特征。
在上述方案中,当所述其它顶点的数量为多个时,所述第二特征提取模块,还用于针对各所述其它顶点,将所述相关值与相应所述其它顶点的顶点特征进行求积处理,得到所述其它顶点的求积结果;对各所述其它顶点的求积结果进行累计求和,得到求和结果;基于所述求和结果,确定所述参考顶点对应的局部特征。
在上述方案中,所述第二特征提取模块,还用于基于各所述顶点的局部特征,对各所述顶点的局部特征进行特征融合,得到融合特征;将所述融合特征作为所述待检测对象的局部特征。
在上述方案中,所述三维网络模型还包括第二特征拼接层、第四特征提取层,所述装置还包括特征处理模块,所述特征处理模块,用于通过所述第四特征提取层,基于所述拼接特征,对所述待检测对象进行局部特征提取,得到所述待检测对象的目标局部特征;通过所述第二特征拼接层,对所述拼接特征、所述全局特征以及所述目标局部特征进行特征拼接,得到所述待检测对象的目标拼接特征;所述输出模块,还用于通过所述输出层,基于所述目标拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
在上述方案中,所述输出模块,还用于通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述三维网格中各所述顶点的概率;基于所述概率,生成对应所述三维网格的三维热力图;基于所述三维热力图,确定所述关键点在所述待检测对象上的位置。
本申请实施例提供一种三维网络模型的训练方法,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述方法包括:
获取携带标签的对象训练样本,所述标签用于指示对象训练样本的关键点的真实位置;
构建对应所述对象训练样本的训练三维网格,并确定所述训练三维网格的顶点以及顶点间的连接关系;
通过所述第一特征提取层,对所述对象训练样本的顶点进行特征提取,得到所述训练三维网格的顶点特征;
通过所述第二特征提取层,基于所述训练三维网格的顶点特征,对所述对象训练样本进行全局特征提取,得到所述对象训练样本的全局特征,并通过所述第三特征提取层,基于所述训练三维网格的顶点以及顶点间的连接关系,对所述对象训练样本进行局部特征提取,得到所述对象训练样本的局部特征;
通过所述第一特征拼接层,对所述训练三维网格的顶点特征、所述对象训练样本的全局特征以及所述对象训练样本的局部特征进行特征拼接,得到所述对象训练样本的拼接特征;
通过所述输出层,基于所述对象训练样本的拼接特征,对所述对象训练样本的关键点进行检测,得到所述对象训练样本的关键点的位置;
获取所述对象训练样本的关键点的位置与所述标签的差异,并基于所述差异训练所述三维网络模型,以通过训练得到的三维网络模型,对待检测对象进行关键点检测,得到所述待检测对象的关键点的位置。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的关键点检测方法。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的三维网络模型的训练方法。
本申请实施例提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的关键点检测方法。
本申请实施例提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的三维网络模型的训练方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例提供的关键点检测方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例提供的三维网络模型的训练方法。
本申请实施例具有以下有益效果:
构建待检测对象对应的三维网格,再通过双路特征提取层的搭建,基于三维网格得到的顶点特征以及顶点间的连接关系,分别提取待检测对象全局特征以及局部特征,从而将基于三维网格得到的顶点特征,与提取得到的全局特征以及局部特征进行特征拼接,得到拼接特征,以基于拼接特征,得到待检测对象上关键点的位置。如此,通过多层特征提取层提取到待检测对象更丰富的特征信息,再依据丰富的特征信息对待检测对象的关键点进行检测,使得三维关键点检测的准确率得到显著提高。
附图说明
图1是本申请实施例提供的关键点检测***100的架构示意图;
图2是本申请实施例提供的电子设备的结构示意图;
图3是本申请实施例提供的关键点检测方法的流程示意图;
图4是本申请实施例提供的三维网络模型的结构示意图;
图5是本申请实施例提供的人的头部的三维网格的示意图;
图6是本申请实施例提供的确定各顶点的局部特征的流程示意图;
图7是本申请实施例提供的采用注意力机制确定参考顶点与其它顶点间的相关性的示意图;
图8是本申请实施例提供的第三特征提取层的结构示意图;
图9是本申请实施例提供的关键点在待检测对象上的位置的示意图;
图10是本申请实施例提供的三维网络模型的结构示意图;
图11是本申请实施例提供的三维网络模型的训练过程的流程示意图;
图12是本申请实施例提供的三维网格面片简化的示意图;
图13是本申请实施例提供的三维网格面片稠密化的示意图;
图14是本申请实施例提供的关键点检测方法的流程示意图;
图15是本申请实施例提供的图卷积神经网络结构示意图;
图16是本申请实施例提供的测地线距离和欧氏距离的对比图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)三维网格(Mesh),指具有拓扑结构的流形表面,比如一个球状的表面被划分为多个顶点与多条边的组合,本申请中可以是三维人脸网格,这里,三维网格是一个图(Graph)结构。
2)客户端(Client),又称用户端,是指与服务器相对应的为用户提供本地服务的程序,除了一些只能在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务器相互配合运行,即需要网络中有相应的服务器和服务程序来提供相应的服务,这样在客户端和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
3)三维人脸关键点检测,指的是给定任意一个三维人脸网格模型,检测预设语义的一系列人脸关键点的三维坐标。三维人脸模型的顶点数目和面片数目均没有任何限制,预设语义的关键点指的是包括眼角,嘴角,鼻尖,脸部轮廓等在内的位置信息,关键点的语义和数目由具体任务决定。
4)图神经网络(GNN,Graph Neural Networks),是一类人工神经网络,用于处理可以表示为图的数据。相比于传统的二维卷积神经网络作用于二维图片,图神经网络将作用对象扩展为可以表征三维网格形态的图数据。图神经网络的关键设计元素是使用成对消息传递,以便图节点通过与其邻居交换信息的方式来迭代更新。
5)损失,用于衡量模型的实际结果和目标结果之间的差距,以进行模型的训练和优化。
6)三维热力图回归(Heatmap),指的是图神经网络以热力图作为输出层,并与标准热力图形成回归损失,通过前向传递和梯度回传训练神经网络,使神经网络的输出与标签拟合,最终再从热力图中计算关键点坐标。
7)三维扫描仪(3D scanner),是一种科学仪器,用来侦测并分析现实世界中物体或环境的形状(几何构造)与外观数据(如颜色、表面反照率等性质)。搜集到的数据通常被用来进行三维重建计算,在虚拟世界中创建实际物体的数字模型。这些模型具有相当广泛的用途,如工业设计、瑕疵检测、逆向工程、机器人导引、地貌测量、医学信息、生物信息、刑事鉴定等。
8)多层感知器(MLP,Multi-Layer Perceptron),是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。
9)卷积神经网络(CNN,Convolutional Neural Network),一种前馈神经网络,一般由一个或者多个卷积层(采用卷积数学运算的网络层)和末端的全连接层组成,其网络内部的神经元可以响应输入图像的部分区域,一般在视觉图像处理领域有着较为出色的表现。
10)机器学习(ML,Machine Learning),是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
11)点云数据,是指目标表面特征的海量点集合,一般是通过激光测量或摄影测量获得的。对于激光测量得到的点云数据,包括三维坐标和激光反射强度,这类点云数据通常通过回波特性和反射强度判别物体的状态;对于摄影测量得到的点云数据,通常包括三维坐标和颜色信息。
12)图注意力网络(GAT,Graph Attention Network),一种基于图结构数据的新型神经网络架构。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及人工智能的三维网络模型等技术,也可以应用与云技术以及车联网等领域,具体通过以下实施例进行说明。
参见图1,图1是本申请实施例提供的关键点检测***100的架构示意图,为实现关键点检测的应用场景(例如,关键点检测的应用场景可以是在对人脸进行关键点检测时,首先通过三维扫描仪对人脸进行三维扫描,从而基于三维扫描数据,检测人脸上的关键点位置),终端(示例性示出了终端400)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,终端400用于供用户使用客户端401,在显示界面(示例性示出了显示界面401-1)显示,终端400和服务器200通过有线或者无线网络相互连接。
其中,终端400用于,获取对应待检测对象的三维扫描数据,并将三维扫描数据发送至服务器200;
服务器200用于,接收三维扫描数据;基于三维扫描数据,构建对应待检测对象的三维网格,并确定三维网格的顶点、以及顶点间的连接关系;通过第一特征提取层,对三维网格的顶点进行特征提取,得到三维网格的顶点特征;通过第二特征提取层,基于顶点特征,对待检测对象进行全局特征提取,得到待检测对象的全局特征,并通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,对待检测对象进行局部特征提取,得到待检测对象的局部特征;通过第一特征拼接层,对顶点特征、全局特征以及局部特征进行特征拼接,得到待检测对象的拼接特征;通过输出层,基于拼接特征,对待检测对象的关键点进行检测,得到关键点在待检测对象上的位置;并将关键点在待检测对象上的位置发送至终端400;
终端400还用于,基于显示界面,展示待检测对象上关键点的位置。
一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDeliver Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、机顶盒、智能语音交互设备、智能家电、车载终端、飞行器、以及移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,智能音箱及智能手表)等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的电子设备的结构示意图,在实际应用中,电子设备可以为图1示出的服务器200或终端400,参见图2,图2所示的电子设备包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线***440耦合在一起。可理解,总线***440用于实现这些组件之间的连接通信。总线***440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***451,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450的关键点检测装置455,其可以是程序和插件等形式的软件,包括以下软件模块:构建模块4551、第一特征提取模块4552、第二特征提取模块4553、特征拼接模块4554以及输出模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的关键点检测装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的关键点检测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-ProgrammableGate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的关键点检测方法。举例来说,计算机程序可以是操作***中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作***中安装才能运行的程序,如即时通信APP、网页浏览器APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
基于上述对本申请实施例提供的关键点检测***及电子设备的说明,下面说明本申请实施例提供的关键点检测方法。在实际实施时,本申请实施例提供的关键点检测方法可以由终端或服务器单独实现,或者由终端及服务器协同实现,以由图1中的服务器200单独执行本申请实施例提供的关键点检测方法为例进行说明。参见图3,图3是本申请实施例提供的关键点检测方法的流程示意图,需要说明的是,这里的关键点检测方法应用于三维网络模型,三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,参见图4,图4是本申请实施例提供的三维网络模型的结构示意图,下面,将结合图3和图4对示出的步骤进行说明。
步骤101,服务器构建对应待检测对象的三维网格,并确定三维网格的顶点、以及顶点间的连接关系。
在实际实施时,构建对应待检测对象的三维网格可以是通过待检测对象对应的点云数据(即三维扫描数据)来实现,这里,点云数据用于指示待检测对象的表面特征的海量点集合,一般可以通过激光测量或摄影测量获得。具体地,首先获取对应待检测对象的点云数据,从而基于点云数据,构建对应待检测对象的三维网格。这里,获取对应待检测对象的点云数据的方式存在多种,点云数据可以是预先存储于终端本地的,也可以是从外界(如互联网)中获取到的,还可以是实时采集的,例如通过三维扫描装置如三维扫描仪实时采集到的。
在一些实施例中,当点云数据为通过三维扫描装置如三维扫描仪实时采集到的时,构建对应待检测对象的三维网格的过程,具体包括,通过三维扫描装置对待检测对象进行扫描,得到待检测对象的几何表面的点云数据;基于点云数据,构建对应待检测对象的三维网格。示例性地,参见图5,图5是本申请实施例提供的人的头部的三维网格的示意图,基于图5,当待检测对象为人脸时,通过三维扫描仪对人的头部进行三维扫描,得到对应头部的点云数据,从而基于点云数据,构建对应头部的三维网格。
需要说明的是,在本申请实施例中,涉及到实时扫描等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
在实际实施时,三维网格的顶点间的连接关系可以是顶点间连接关系矩阵,大小为N*N,其值为0或1,这里的N为顶点数目,当顶点i与顶点j相连,则两顶点间连接关系Aij为1,否则为0。
步骤102,通过第一特征提取层,对三维网格的顶点进行特征提取,得到三维网格的顶点特征。
在实际实施时,通过第一特征提取层,对三维网格的顶点进行特征提取,得到三维网格的顶点特征,示例性地,这里的顶点特征可以是N*(6+X),其中,N表示三维网格对应的顶点数目,6则是顶点坐标与法向量所占据的维度即顶点坐标(x,y,z)三个坐标维度所对应的6个方向维度,X则包含了三维网格的顶点的其他特性,如曲率、纹理信息等。需要说明的是,这些其他特性随数据和任务的不同可加以调整,如此,在模型的训练阶段,通过增加这些其他特性,加快三维网络模型的学习效率。
步骤103,通过第二特征提取层,基于顶点特征,对待检测对象进行全局特征提取,得到待检测对象的全局特征,并通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,对待检测对象进行局部特征提取,得到待检测对象的局部特征。
需要说明的是,在确定三维网格的顶点间的连接关系以及三维网格的顶点特征后,分别通过第二特征提取层,对待检测对象进行全局特征提取,并通过第三特征提取层,对待检测对象进行局部特征提取,从而得到待检测对象的全局特征以及局部特征。
在一些实施例中,通过第二特征提取层,基于顶点特征,对待检测对象进行全局特征提取,得到待检测对象的全局特征的过程,可以是,首先通过第二特征提取层,基于顶点特征,对待检测对象进行特征提取,并对提取到的特征进行最大池化处理,得到最大池化特征,以使得所有顶点共享该最大池化特征,并将该最大池化特征作为待检测对象的全局特征。
在一些实施例中,通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,对待检测对象进行局部特征提取,得到待检测对象的局部特征的过程,可以是,通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,确定各顶点的局部特征;基于各顶点的局部特征,确定待检测对象的局部特征。
需要说明的是,这里的全局特征用于指示待检测对象的整体性特征,例如待检测对象的颜色特征、纹理特征和形状特征等,而局部特征用于指示待检测对象的细节性特征也即从待检测对象的局部区域中提取的特征,例如从待检测对象的边缘、角、点、线、曲线和特别属性的区域所提取的特征等。示例性地,当待检测对象而人脸时,全局特征可以是人脸上五官的大小、形状以及位置等,而局部特征可以是在不同表情下脸部肌肉的分布以及五官的形状变化等。这里,由于全局特征是像素级的低层可视特征,因此,全局特征具有良好的不变性、计算简单、表示直观等特点,但不适用于物体混叠和有遮挡的情况,而局部图像特征具有在图像中蕴含数量丰富、特征间相关度小的特点,在物体混叠和有遮挡时,不会因为部分特征的消失而影响其他特征的检测和匹配,如此,通过对待检测对象进行全局特征以及局部特征的提取,从而获取待检测对象更丰富且准确的特征,进而提高关键点检测结果的准确率。
接下来,分别对通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,确定各顶点的局部特征的过程,以及基于各顶点的局部特征,确定待检测对象的局部特征的过程进行说明。
对于通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,确定各顶点的局部特征的过程,这里,参见图6,图6是本申请实施例提供的确定各顶点的局部特征的流程示意图,基于图6,通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,确定各顶点的局部特征的过程通过步骤1031至步骤1033所实现,结合图6,针对各顶点执行以下处理:
步骤1031,将顶点确定为参考顶点,并基于三维网格中各顶点的顶点特征,确定参考顶点的顶点特征、以及其它顶点的顶点特征;其中,其它顶点为除参考顶点以外的任一顶点。
示例性地,三维网络中的顶点数目为N,每个顶点的特征为h,维度是F,即
Figure 150326DEST_PATH_IMAGE002
……公式(1);
其中,将顶点i作为参考节点,hi为大小为F的向量即参考节点i的特征,顶点j为其它顶点,hj为大小为F的向量即其它节点j的特征,顶点i与顶点j存在边连接关系。
步骤1032,基于参考顶点的顶点特征、其它顶点的顶点特征、以及顶点间的连接关系,确定参考顶点与其它顶点间的相关值;其中,相关值用于指示参考顶点与其它顶点间的相关性的大小。
在实际实施时,基于参考顶点的顶点特征、其它顶点的顶点特征、以及顶点间的连接关系,确定参考顶点与其它顶点间的相关值的过程,可以是,基于参考顶点的顶点特征、其它顶点的顶点特征、以及顶点间的连接关系,采用注意力机制确定参考顶点与其它顶点间的相关性,即
Figure 238105DEST_PATH_IMAGE004
……公式(2);
其中,W为一个大小为F×F的权重矩阵,hi为参考顶点i的顶点特征,hj为其它顶点j的顶点特征,attention指示采用注意力机制处理,
Figure 955526DEST_PATH_IMAGE005
指示参考顶点与其它顶点间的相关性。
然后,对相关性进行归一化处理,得到参考顶点与其它顶点间的相关值,即
Figure 819577DEST_PATH_IMAGE007
……公式(3);
其中,
Figure 368370DEST_PATH_IMAGE008
指示采用归一化处理,
Figure 659674DEST_PATH_IMAGE009
指示对节点i和j间的相关值,exp指示以自然常数e为底的指数函数,Ni指示与参考节点i存在连接关系的所有其它节点组成的域,q表示该域中任一顶点。
示例性地,参见图7,图7是本申请实施例提供的采用注意力机制确定参考顶点与其它顶点间的相关性的示意图,基于图7,
Figure 365855DEST_PATH_IMAGE011
指示对应参考顶点i的顶点特征,
Figure 236859DEST_PATH_IMAGE012
指示对应其它顶点j的顶点特征,a为权重向量,在基于
Figure 374579DEST_PATH_IMAGE014
Figure 102364DEST_PATH_IMAGE016
,确定参考顶点与其它顶点间的相关性后,对相关性进行
Figure 528797DEST_PATH_IMAGE017
处理即归一化处理,得到参考顶点与其它顶点间的相关值。
需要说明的是,这里采用注意力机制确定参考顶点与其它顶点间的相关性的过程,具体可以是,对顶点i、j的特征
Figure 734650DEST_PATH_IMAGE018
Figure 490992DEST_PATH_IMAGE019
进行拼接,然后将拼接得到的特征和一个维度为2F的权重向量a计算内积,从而再通过激活函数,得到参考顶点与其它顶点间的相关值,即
Figure 389677DEST_PATH_IMAGE021
……公式(4);
其中,Ni指示与参考节点i存在连接关系的所有其它节点组成的域,q表示该域中任一顶点,
Figure 303407DEST_PATH_IMAGE023
指示对顶点i、j的特征
Figure 312951DEST_PATH_IMAGE025
Figure 425264DEST_PATH_IMAGE027
进行拼接得到的拼接特征,exp指示以自然常数e为底的指数函数,LeakyReLU为非线性激活函数,a为一个大小为2F的权重向量。
步骤1033,基于相关值、以及其它顶点的顶点特征,确定参考顶点的局部特征。
在实际实施时,在得到相关值之后,当其它顶点的数量为一个时,基于相关值、以及其它顶点的顶点特征,确定参考顶点的局部特征的过程,可以是,将相关值与其它顶点的顶点特征进行求积处理,得到求积结果;基于求积结果,确定参考顶点对应的局部特征,即
Figure 432534DEST_PATH_IMAGE029
……公式(5);
其中,
Figure 391482DEST_PATH_IMAGE031
为激活函数,
Figure 939138DEST_PATH_IMAGE033
为参考顶点i与其它顶点j间的相关值,
Figure 109219DEST_PATH_IMAGE035
指示对应其它顶点j的顶点特征,
Figure 349707DEST_PATH_IMAGE036
为参考顶点对应的局部特征。
需要说明的是,当其它顶点的数量为多个时,基于相关值、以及其它顶点的顶点特征,确定参考顶点的局部特征的过程,可以是,针对各其它顶点,将相关值与相应其它顶点的顶点特征进行求积处理,得到其它顶点的求积结果;对各其它顶点的求积结果进行累计求和,得到求和结果;基于求和结果,确定参考顶点对应的局部特征,即
Figure 769188DEST_PATH_IMAGE038
……公式(6);
其中,
Figure 120534DEST_PATH_IMAGE039
为激活函数,
Figure DEST_PATH_IMAGE041
为参考顶点i与其它顶点j间的相关值,
Figure 174816DEST_PATH_IMAGE043
指示对应其它顶点j的顶点特征,Ni指示与参考节点i存在连接关系的所有其它节点组成的域。
在一些实施例中,这里的第三特征提取层可以包括至少两个第三特征提取子层以及特征拼接子层,示例性地,参见图8,图8是本申请实施例提供的第三特征提取层的结构示意图,基于图8,通过第三特征提取层,基于顶点特征、以及顶点间的连接关系,确定各顶点的局部特征的过程,可以是,通过各第三特征提取子层,针对各所述顶点执行以下处理:将顶点确定为参考顶点,并基于三维网格中各顶点的顶点特征,确定参考顶点的顶点特征、以及其它顶点的顶点特征;基于参考顶点的顶点特征、其它顶点的顶点特征、以及顶点间的连接关系,确定参考顶点与其它顶点间的相关值;基于相关值、以及其它顶点的顶点特征,确定参考顶点的局部子特征;通过特征提取子层,将通过各第三特征提取子层得到的局部子特征进行拼接,得到参考顶点的局部特征,即
Figure 586206DEST_PATH_IMAGE045
……公式(7);
其中,k为第三特征提取子层的层数,Ni指示与参考节点i存在连接关系的所有其它节点组成的域,
Figure 492982DEST_PATH_IMAGE047
为激活函数,
Figure 382440DEST_PATH_IMAGE049
为参考顶点i与其它顶点j间的相关值,
Figure DEST_PATH_IMAGE051
指示对应其它顶点j的顶点特征,concat表示采用拼接处理。
需要说明的是,这里基于参考顶点的顶点特征、其它顶点的顶点特征、以及顶点间的连接关系,确定参考顶点与所述其它顶点间的相关值的过程与前述过程相同,同时基于相关值、以及其它顶点的顶点特征,确定参考顶点的局部子特征的过程与前述基于相关值、以及其它顶点的顶点特征,确定参考顶点的局部特征的过程也相同,对此不做赘述。
对于基于各顶点的局部特征,确定待检测对象的局部特征的过程,具体地,基于各顶点的局部特征,对各顶点的局部特征进行特征融合,得到融合特征;将融合特征作为待检测对象的局部特征。
步骤104,通过第一特征拼接层,对顶点特征、全局特征以及局部特征进行特征拼接,得到待检测对象的拼接特征。
继续参见图4,基于图4,在基于第一特征提取层得到三维网格的顶点特征、基于第三特征提取得到待检测对象的局部特征、基于第二特征提取层得到待检测对象的全局特征后,通过第一特征拼接层,对顶点特征、全局特征以及局部特征进行特征拼接,得到待检测对象的拼接特征。如此,由于拼接特征包含了待检测对象的顶点特征、全局特征以及局部特征的特征信息,基于拼接特征对待检测对象的关键点进行检测,从而结合了顶点特征、全局特征以及局部特征的特征信息,也即通过更丰富的特征信息,对待检测对象的关键点进行检测,提高了关键点检测结果的准确率
步骤105,通过输出层,基于拼接特征,对待检测对象的关键点进行检测,得到关键点在待检测对象上的位置。
需要说明的是,关键点用于指示待检测对象上的目标检测位置,这里,基于待检测对象的差异,关键点也可以不同,示例性地,当检测对象为人的头部时,关键点可以是人脸的五官、发际线等;当待检测对象为人的手部时,关键点可以是指甲、关节、手掌等。
在实际实施时,通过输出层,基于拼接特征,对待检测对象的关键点进行检测,得到关键点在待检测对象上的位置的过程,具体包括,通过输出层,基于拼接特征,对待检测对象的关键点进行检测,得到关键点在三维网格中各顶点的概率;基于概率,生成对应三维网格的三维热力图;基于三维热力图,确定关键点在待检测对象上的位置。这里,基于三维热力图,确定关键点在待检测对象上的位置的过程可以是,基于三维热力图,将概率最大的顶点所处的坐标位置,确定为关键点在待检测对象上的坐标位置。
需要说明的是,由于在相关技术的基于三维坐标回归的方法中,关键点周围的点也可能与关键点相像,因此,很难准确地通过一个像素位置定义关键点,而本申请中的三维热力图是一种通过对色块着色来显示多个数据的统计图表,即依据指定的颜色映射规则来显示各数据,如较大的值由深色表示,较小的值由浅色表示;或较大的值由暖色调表示,较小的值由冷色调表示等,如此,通过输出三维热力图,同时显示关键点归属于各顶点的可能性,从而能够更好地确保检测结果的局部准确性。
示例性地,参见图9,图9是本申请实施例提供的关键点在待检测对象上的位置的示意图,基于图9,图9中黑色点为关键点,当待检测对象为人脸时,如图9所示的关键点的位置可以人脸中五官所在位置,这里,通过输出层,基于拼接特征,对待检测对象的五官所处位置进行检测,得到三维网格中各顶点为五官所处位置的概率,从而生成对应三维网格的三维热力图,进而从多个概率中选择概率最大的位置,作为五官所处位置。
在一些实施例中,三维网络模型还包括第二特征拼接层、第四特征提取层,示例性地,参见图10,图10是本申请实施例提供的三维网络模型的结构示意图,基于图10,在通过第一特征拼接层,对顶点特征、全局特征以及局部特征进行特征拼接,得到待检测对象的拼接特征之后,还可以,通过第四特征提取层,基于拼接特征,对待检测对象进行局部特征提取,得到待检测对象的目标局部特征;通过第二特征拼接层,对拼接特征、全局特征以及目标局部特征进行特征拼接,得到待检测对象的目标拼接特征;从而,通过输出层,基于拼接特征,对待检测对象的关键点进行检测,得到关键点在所述待检测对象上的位置的过程,具体包括,通过输出层,基于目标拼接特征,对待检测对象的关键点进行检测,得到关键点在待检测对象上的位置。
需要说明的是,三维网络模型中还可以包括第五特征提取层以及第三特征拼接层,从而通过第五特征提取层,基于目标拼接特征,对待检测对象进行局部特征提取,得到第二目标局部特征,然后再通过第三特征拼接层,对目标拼接特征、第二目标局部特征以及全局特征进行特征拼接,得到第二目标拼接特征,最后通过输出层,基于第二目标拼接特征,对待检测对象的关键点进行检测,得到关键点在待检测对象上的位置。这里,对于三维网络模型中确定待检测对象的局部特征以及相应拼接特征的过程,三维网络模型中的特征提取层以及特征拼接层的数量可以是多个,而通过多个特征提取层以及特征拼接层,得到最终拼接特征的过程与前文所述,对此本申请实施例不做赘述。
需要说明的是,第四特征提取层、第五特征提取层与第三特征提取层的层结构相同,对特征的处理过程也相同;而第二特征拼接层、第三特征拼接层与特征拼接层的层结构相同,对特征的处理过程也相同。通过第四特征提取层,对拼接特征进行进一步的特征处理,得到更精确的目标局部特征,同时基于第二特征拼接层,将拼接特征、全局特征以及所得到的目标局部特征进行特征拼接,以基于特征拼接得到的目标拼接特征,对待检测对象的关键点进行检测;相应的,通过第五特征提取层,对目标拼接特征进行进一步的特征处理,得到更精确的第二目标局部特征,同时基于第三特征拼接层,将目标拼接特征、全局特征以及所得到的第二目标局部特征进行特征拼接,以基于特征拼接得到的第二目标拼接特征,对待检测对象的关键点进行检测。
如此,通过设置相同结构的特征提取层以及相同结构的特征拼接层,进行重复多次对待检测对象的局部特征提取以及相应特征拼接的过程,提高了所提取到的特征的准确性,从而提高了关键点检测结果的准确率。
在一些实施例中,在基于三维网络模型对待检测对象的关键点进行检测之前,还需要对三维网络模型进行训练,从而基于训练完成的三维网络模型对待检测对象的关键点进行检测,具体地,参见图11,图11是本申请实施例提供的三维网络模型的训练过程的流程示意图,基于图11,三维网络模型的训练过程可以通过以下步骤实现。
步骤201,服务器获取携带标签的对象训练样本,标签用于指示对象训练样本的关键点的真实位置。
步骤202,构建对应对象训练样本的训练三维网格,并确定训练三维网格的顶点以及顶点间的连接关系。
需要说明的是,在构建对应对象训练样本的训练三维网格后,还可以对训练三维网格进行数据增强,从而通过增强后的训练三维网格,对三维网络模型进行训练。具体地,对训练三维网格进行数据增强的方法分为面片简化和稠密化。
在一些实施例中,当对训练三维网格进行面片简化时,可以依据边优化的方式,即每次查找各顶点间最小的边,并将相应两顶点合并为一个顶点,具体地,获取任意两个顶点间的边,并对各个边进行比较,从而基于比较结果,从各个边中选择最小的边,作为目标边,然后获取目标边对应的两个顶点,并将这两个顶点合并为一个顶点,从而得到增强后的训练三维网格。示例性地,参见图12,图12是本申请实施例提供的三维网格面片简化的示意图,基于图12,这里v1和v2间的边为最小的边,然后将这两个顶点合并为一个顶点v,从而得到增强后的训练三维网格。
在另一些实施例中,当对训练三维网格进行面片稠密化时,则是对面积较大的面片优先进行重心坐标的计算,然后基于该重心坐标,将原本的三面片一分为三。具体地,获取至少一个面片,然后对面片进行比较,基于比较结果,从多个面片中选择面积最大的面片,作为目标面片;确定目标面片的重心、以及对应目标面片的三个顶点,然后基于该重心坐标以及三个顶点,将原本的三面片一分为三。示例性地,参见图13,图13是本申请实施例提供的三维网格面片稠密化的示意图,基于图13,这里顶点A、B、C间的面片为面积最大的目标面片,确定目标面片的重心即P以及对应的顶点A、B、C,从而基于P、A、B、C将原本的三面片一分为三,进而得到增强后的训练三维网格。
需要说明的是,这里可以通过预先设定目标顶点数,来结束对训练三维网格的数据增强过程,具体地,在对训练三维网格的数据增强过程中,获取增强后的训练三维网格的顶点数,将该顶点数与预先设定的目标顶点数进行比对,基于比对结果,结束对训练三维网格的数据增强。这里,当对训练三维网格进行面片简化时,当比对结果表征顶点数小于目标顶点数时,结束对训练三维网格的数据增强;当对训练三维网格进行面片稠密化时,当比对结果表征顶点数大于目标顶点数时,结束对训练三维网格的数据增强。
步骤203,通过第一特征提取层,对对象训练样本的顶点进行特征提取,得到训练三维网格的顶点特征。
步骤204,通过第二特征提取层,基于训练三维网格的顶点特征,对对象训练样本进行全局特征提取,得到对象训练样本的全局特征,并通过第三特征提取层,基于训练三维网格的顶点以及顶点间的连接关系,对对象训练样本进行局部特征提取,得到对象训练样本的局部特征。
步骤205,通过第一特征拼接层,对训练三维网格的顶点特征、对象训练样本的全局特征以及对象训练样本的局部特征进行特征拼接,得到对象训练样本的拼接特征。
步骤206,通过输出层,基于对象训练样本的拼接特征,对对象训练样本的关键点进行检测,得到对象训练样本的关键点的位置。
步骤207,获取对象训练样本的关键点的位置与标签的差异,并基于差异训练三维网络模型,以通过训练得到的三维网络模型,对待检测对象进行关键点检测,得到待检测对象的关键点的位置。
下面,继续对本申请实施例提供的关键点检测方法进行介绍,参见图14,图14是本申请实施例提供的关键点检测方法的流程示意图,基于图14,本申请实施例提供的关键点检测方法由客户端、服务器协同实施。
步骤301,客户端响应于携带标签的对象训练样本的上传操作,获取携带标签的对象训练样本。
在实际实施时,客户端可以是设置于终端的关键点检测客户端,用户基于该客户端的人机交互界面,触发人机交互界面中的上传功能项使客户端在人机交互界面呈现对象选择界面,用户则基于该对象选择界面,从终端本地上传携带标签的对象训练样本,从而使得客户端获得上传的对象训练样本。
在一些实施例中,对象训练样本还可以是由与终端通信连接的摄像头拍摄得到,摄像头在拍摄得到对象训练样本后,对对象训练样本标注标签,再将携带标签的该对象训练样本传输给终端并由终端自动上传至客户端。
步骤302,客户端发送对象训练样本至服务器。
步骤303,服务器将接收到的对象训练样本输入至三维网络模型。
步骤304,基于三维网络模型,对对象训练样本的关键点进行检测,得到对象训练样本的关键点的位置。
步骤305,获取对象训练样本的关键点的位置与标签的差异,并基于差异训练三维网络模型。
在实际实施时,服务器通过迭代上述训练过程,直至损失函数达到收敛,完成对三维网络模型的训练。
步骤306,服务器生成三维网络模型训练完成的提示消息。
步骤307,发送提示消息至客户端。
步骤308,客户端响应于待检测对象对应的点云数据的上传操作,获取待检测对象对应的点云数据。
在实际实施时,待检测对象对应的点云数据可以是预先存储于终端本地的,也可以是从外界(如互联网)中获取到的,还可以是实时采集的,例如通过三维扫描装置如三维扫描仪实时采集到的。
步骤309,客户端响应于针对待检测对象的关键点检测指令,发送待检测对象对应的点云数据至服务器。
在实际实施时,针对待检测对象的关键点检测指令可以是由一定的触发条件由客户端自动生成,例如客户端获取到待检测对象对应的点云数据后则自动生成针对待检测对象的关键点检测指令,还可以是由与终端通信连接的其他设备发送给客户端,还可以是由用户基于客户端的人机交互界面,触发相应的确定功能项后生成。
步骤310,服务器将接收到的待检测对象对应的点云数据输入至三维网络模型,以使三维网络模型对待检测对象进行关键点检测,得到用于指示关键点在待检测对象上的位置的三维热力图。
步骤311,发送用于指示关键点在待检测对象上的位置的三维热力图至客户端。
步骤312,客户端展示用于指示关键点在待检测对象上的位置的三维热力图。
在实际实施时,客户端可以在该客户端的人机交互界面中展示三维热力图,还可以将三维热力图保存至终端本地,还可以将三维热力图发送至与终端通信连接的其他设备等。
应用本申请上述实施例,构建待检测对象对应的三维网格,再通过双路特征提取层的搭建,基于三维网格得到的顶点特征以及顶点间的连接关系,分别提取待检测对象全局特征以及局部特征,从而将基于三维网格得到的顶点特征,与提取得到的全局特征以及局部特征进行特征拼接,得到拼接特征,以基于拼接特征,得到待检测对象上关键点的位置。如此,通过多层特征提取层提取到待检测对象更丰富的特征信息,再依据丰富的特征信息对待检测对象的关键点进行检测,使得三维关键点检测的准确率得到显著提高。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
发明人发现,三维人脸角色的关键点检测一般分为两大类,第一个大类是基于传统几何分析的方法。一般是利用诸如锐利边检测、曲率计算、二面角计算、法向量计算以及一些特定的几何规则来直接定位三维头模的语义关键点。例如,可以假定三维坐标系中z方向最大的顶点是鼻尖关键点,在鼻尖下方检测锐利边,结合对称关系可以粗略定位到左右嘴角关键点大致的区域;第二大类是基于深度学习的方法,这一大类方法基本上会先把三维头模渲染成二维图像,然后再利用二维卷积神经网络提取特征,检测相应的关键点。值得注意的是,这类方法还可以根据是否多视角检测和是否直接回归三维关键点划分出不同的组合方法。比如,一种常见的组合方法是只渲染三维头模的正面视图,并记录下这个渲染投影关系,然后在二维的正面视图上检测二维的关键点坐标,最后基于已知的投影关系反向投影至三维空间,得到最终的三维关键点坐标。另一种组合方法则是,渲染多个视图(例如正面,侧面),然后分别输入到神经网络模型不同的分支中,使得神经网络模型结合二者的特征,去直接回归三维关键点的坐标。
然而,对于上述第一类方法,传统的基于几何分析的关键点定位方法十分依赖于人工设定的规则,例如在检测锐利边的时候,需要指定一个阈值,这是一个经验性的数值,很难以适用于形态各异的头模,因此该方法的鲁棒性较差;而对于上述第二类方法,基于二维卷积神经网络的方法在传统的二维图像关键点检测任务上取得了很大的成功,但是直接将二维卷积神经网络应用的三维关键点的检测却存在着多方面的制约和不足,具体地,第一,可获取的三维人脸模型数量远远少于人脸图片,也就是说数据集是较为匮乏的,因此难以使得神经网络发挥功效;第二,从三维人脸头模渲染为二维图片的方式,必然会损失三维几何信息,例如对于正视图,势必缺乏后脑勺的信息,如果有必要检测后脑勺的关键点,那么在信息缺失的情况下,检测自然无法谈起;第三,如果要采用多视图的方式尽量规避信息缺失的问题,此时会通过多分支的网络提取特征,最后神经网络再融合回归三维坐标,这样,不同视图之间的内在联系需要神经网络去学习,可能存在难以收敛的问题,从而增加了训练的难度。
基于此,本申请实施例提供一种关键点检测方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,能够有效地解决上述技术方法的多种缺点,具体地,首先,通过面片简化和稠密化将三维人脸模型数据集增强,解决了三维头模数据集相对缺乏的问题,使得监督式的深度学习有了训练数据保障。其次,基于图神经网络结构,直接在三维空间上应用神经卷积模块,规避了渲染视图二维空间下检测方法天然丢失三维几何信息的问题,同时也解决了不同视图带来的内在联系难以学习的问题。最后,将传统意义上的二维热力图扩展为三维热力图,相比于直接回归三维坐标的方式,三维热力图能够更好地确保检测结果的局部准确性。
接下来,从产品侧对本申请技术方案进行说明。这里,本申请提出了一种基于图神经网络结构和三维热力图的三维人脸关键点检测方法。本方法可整合至角色动画工具集中,配合非刚性包裹算法完成对不同头部模型之间的变形匹配流程,这里具体的产品形态可以是一个控件,通过响应于针对控件的触发操作,发送携带待检测三维头模的相关数据的关键点检测请求至部署了本申请技术方案的远端服务器,从而获取返回结果。这里,远端服务器部署的方式有利于迭代优化算法,不需要本地插件代码更新,从而节省了本地计算机资源。
接下来,从技术侧对本申请技术方案进行说明。
首先,对本申请技术方案中的图卷积神经网络结构进行说明,具体地,由于三维模型(三维网络模型)是天然存在图结构关系的,同时这种关系又不像二维图像像素点那样紧凑规律排布,因此直接采用传统卷积神经网络是不合时宜的,因此这里引入了一种经典的图注意力网络(GAT,Graph Attention Network)。这里,对于图卷积神经网络结构包括的GAT基础网络,如公式(1)所示,假设图结构(三维网格)包含N个节点(顶点),每个节点的特征向量(顶点特征)为h,维度是F,然后假定节点j是节点i的邻居(也就是i和j存在边连接关系),则可以使用注意力机制计算节点j对于节点i的重要性(相关值),如公式(2)和公式(3)所示。具体地,使用注意力机制计算节点j对于节点i的重要性的过程,可以是,对节点i、j的特征
Figure DEST_PATH_IMAGE052
Figure DEST_PATH_IMAGE053
进行拼接,然后将拼接得到的特征和一个维度为2F的权重向量a计算内积,如公式(4)所示。从而,基于节点j对于节点i的重要性,确定节点i的特征向量(局部特征),如公式(6)所示。
在实际应用中,还可以采用多层GAT拼接的方式即通过K个注意力机制得到对应节点i的K个特征向量(局部子特征),然后将K个特征向量进行拼接,得到最终对应节点i的特征向量(局部特征),如公式(7)所示。如此,基于GAT不依赖于完整的图结构,只依赖于边(顶点间的连接关系)的特点,提高关键点检测过程的灵活性。同时采用注意力机制,还可以为不同的邻居节点分配不同的权重,提高了关键点检测过程的准确性。
这里,在对图注意力网络(GAT,Graph Attention Network)说明之后,参见图15,图15是本申请实施例提供的图卷积神经网络结构示意图,这里以GAT为基础构造了如图15所示的三维头模关键点自动检测神经网络。基于图15,输入数据即顶点数据为N*(6+X)(三维网格的顶点),N表示三维模型(三维网格)顶点数目,6则是顶点坐标与法向量所占据的维度,X则包含了三维头模顶点(三维网格)的其他特性,包括曲率、纹理信息等。这些其他特性随数据和任务的不同可加以调整,一般来讲,输入特性越丰富,越有助于神经网络的学习。而Aij则是顶点连接关系矩阵(顶点间的连接关系),大小为N*N,其值为0或1,如i,j两个顶点相连则Aij为1,否则为0。
基于图15,多层感知器(Multilayer Perceptron,MLP)代表多层全连接感知层,顶点数据(三维网格的顶点)先经过一个隐藏层维度为[128,64]的MLP模块,得到初步的隐藏层特征X1(顶点特征),然后分为两路(全局特征提取以及局部特征提取),一路继续经过MLP模块([512,1024]),继而对输出的特征X2进行最大池化,从而获取全局特征信息X3,然后供所有N个顶点共享,进而确定全局特征N×X3。另一路则经过3组GAT模块,每个GAT模块包括了8层注意力基础网络(heads),这里,3组GAT模块的输出层拼接到一起,从而确定局部特征。最后两路特征拼接,输入最终的MLP模块([1024,512,K]),得到最终的N*K(K为关键点的数目)的三维热力图数据,将该数据在三维头模上可视化,即得到有N张三维热力图。
需要说明的是,由于GAT模块和MLP模块的特点,同一网络结构并不需要固定顶点数目N,这就使得无论是训练阶段,还是实际使用阶段,不同顶点数目的三维人脸模型都可以作为该神经网络模型的输入,从而提高了本申请的适用性。
其次,对本申请技术方案中的三维热力图进行说明。由于三维网格的热力图不再有二维图像坐标紧凑的结构,因此相较于二维热力图中利用欧氏距离,三维热力图这里则是利用测地线距离。如此,在三维网格层面上,基于两点之间的测地线距离验证网格图结构上的最短路径,相比两点之间的欧氏距离更能体现出三维表面的特性。示例性地,参见图16,图16是本申请实施例提供的测地线距离和欧氏距离的对比图,基于图16,两顶点间的直线为欧氏距离,而曲线则是对应的测地线距离。
需要说明的是,当图神经网络训练完毕并投入使用时,需要将神经网络输出的三维热力图进一步转化为最终的三维关键点坐标。这里,传统的二维热力图转化二维坐标的方式包括:首先获取概率最大值所在的顶点坐标(称为argmax方法);然后加权多个顶点坐标的softmax概率期望(也即soft-argmax方法),从而得到最终的三维关键点坐标。对本申请而言,考虑到利用soft-argmax方法将会加权多个三维坐标,其结果将未必落在三维网格平面上,因此这里直接采用argmax方法即获取概率最大值所在的顶点坐标,从而确定最终的三维关键点坐标。
最后,对本申请的数据增强方法进行说明。
需要说明的是,不同于二维人脸图像和二维关键点数据,三维人脸网格数据十分难以大量获取。数据的缺乏是困扰神经网络监督学习的一大问题。只有当数据集足够大,并且能够覆盖不同的人脸形态,才有可能使得图神经网络从中学习到足够的检测能力,但是三维人脸关键点数据集却较难获取,而三维人脸关键点数据集之所以难以获取,表现在以下几个方面。具体地,首先,三维网格人脸数据本身就是由美术人员制作的,这一制作过程相对麻烦。而二维图像的生成,则仅仅需要按一下相机快门,因此无论是互联网还是学术界公开的数据集中,二维人脸图像已经十分丰富,而对应的三维人脸数据则十分缺乏。其次,对于关键点检测任务来说,需要事先对关键点进行人工标注(或者是通过既有算法的初步自动检测以及人工后期的少量修正来实现标注),而二维关键点标注工作已有许多前人做过,标注工具也不复杂,本质上只需要标注图片上的某一个像素即可;而三维网格的关键点标记,难度将大增,例如标注者很难以对脸部轮廓进行确认。因此,在三维数据本身比较缺乏的情况下,无法基于已有的三维人脸头模,开发相应的标注工具,进行三维关键点人工标注。基于此,本申请的技术方案将基于面片简化和稠密化,对已有的三维人脸模型数据进行数据增强,从而为图神经网络提供标准化的合理的训练数据。
这里,数据增强方法分为面片简化和稠密化。对于面片简化而言,可以基于边优化的方式,即每次通过查找节点间最小的边,将之合并为一个顶点,如图12所示。对于面片稠密化而言,则是对面积较大的面片优先进行重心坐标的计算,然后基于该重心坐标,将原本的三面片一分为三,如图13所示。这里,稠密化和面片简化都可以用最终的目标顶点数来控制其操作的终止。
如此,本申请通过自动检测三维游戏头模的特定关键点,能够为后续的三维头模配准工作提供准确可靠的关键点依据。相比于传统的人工标注,再做头模配准的方式,本申请可以规避人工的过多参与,使得三维头模配准等依赖关键点的工作得以自动化完成。这将大大节省了美术人员的人力投入,从而加速整个模型角色动画相关的制作过程。
进一步地,本申请基于图神经网络深度监督学习,能够准确地预测出三维关键点的位置,具有较强的鲁棒性。同时深度学习模型的正向演算速度极快,算法整体上只需1秒就能完成自动标注,与之相对的人工方式则往往需要耗费数分钟,因此本申请在效率上具有较大的实际价值。此外,本申请不限定输入的三维人脸模型顶点的数目,当进行监督学习训练之后,产生的深度学习模型可以广泛运用于顶点稠密程度不一的三维头模关键点自动检测任务,适用性较强。
应用本申请上述实施例,构建待检测对象对应的三维网格,再通过双路特征提取层的搭建,基于三维网格得到的顶点特征以及顶点间的连接关系,分别提取待检测对象全局特征以及局部特征,从而将基于三维网格得到的顶点特征,与提取得到的全局特征以及局部特征进行特征拼接,得到拼接特征,以基于拼接特征,得到待检测对象上关键点的位置。如此,通过多层特征提取层提取到待检测对象更丰富的特征信息,再依据丰富的特征信息对待检测对象的关键点进行检测,使得三维关键点检测的准确率得到显著提高。
下面继续说明本申请实施例提供的关键点检测装置455的实施为软件模块的示例性结构,其中,关键点检测装置应用于三维网络模型,三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,在一些实施例中,如图2所示,存储在存储器450的关键点检测装置455中的软件模块可以包括:
构建模块4551,用于构建对应待检测对象的三维网格,并确定所述三维网格的顶点、以及顶点间的连接关系;
第一特征提取模块4552,用于通过所述第一特征提取层,对所述三维网格的顶点进行特征提取,得到所述三维网格的顶点特征;
第二特征提取模块4553,用于通过所述第二特征提取层,基于所述顶点特征,对所述待检测对象进行全局特征提取,得到所述待检测对象的全局特征,并通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,对所述待检测对象进行局部特征提取,得到所述待检测对象的局部特征;
特征拼接模块4554,用于通过所述第一特征拼接层,对所述顶点特征、所述全局特征以及所述局部特征进行特征拼接,得到所述待检测对象的拼接特征;
输出模块4555,用于通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
在一些实施例中,所述构建模块4551,还用于通过三维扫描装置对所述待检测对象进行扫描,得到所述待检测对象的几何表面的点云数据;基于所述点云数据,构建对应所述待检测对象的三维网格。
在一些实施例中,所述第二特征提取模块4553,还用于通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,确定各所述顶点的局部特征;基于各所述顶点的局部特征,确定所述待检测对象的局部特征。
在一些实施例中,所述第二特征提取模块4553,还用于针对各所述顶点执行以下处理:将所述顶点确定为参考顶点,并基于所述三维网格中各顶点的顶点特征,确定所述参考顶点的顶点特征、以及其它顶点的顶点特征;其中,所述其它顶点为除所述参考顶点以外的任一顶点;基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,确定所述参考顶点与所述其它顶点间的相关值;其中,所述相关值用于指示所述参考顶点与所述其它顶点间的相关性的大小;基于所述相关值、以及所述其它顶点的顶点特征,确定所述参考顶点的局部特征。
在一些实施例中,所述第二特征提取模块4553,还用于基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,采用注意力机制确定所述参考顶点与所述其它顶点间的相关性;对所述相关性进行归一化处理,得到所述参考顶点与所述其它顶点间的相关值。
在一些实施例中,当所述其它顶点的数量为一个时,所述第二特征提取模块4553,还用于将所述相关值与所述其它顶点的顶点特征进行求积处理,得到求积结果;基于所述求积结果,确定所述参考顶点对应的局部特征。
在一些实施例中,当所述其它顶点的数量为多个时,所述第二特征提取模块4553,还用于针对各所述其它顶点,将所述相关值与相应所述其它顶点的顶点特征进行求积处理,得到所述其它顶点的求积结果;对各所述其它顶点的求积结果进行累计求和,得到求和结果;基于所述求和结果,确定所述参考顶点对应的局部特征。
在一些实施例中,所述第二特征提取模块4553,还用于基于各所述顶点的局部特征,对各所述顶点的局部特征进行特征融合,得到融合特征;将所述融合特征作为所述待检测对象的局部特征。
在一些实施例中,所述三维网络模型还包括第二特征拼接层、第四特征提取层,所述装置还包括特征处理模块,所述特征处理模块,用于通过所述第四特征提取层,基于所述拼接特征,对所述待检测对象进行局部特征提取,得到所述待检测对象的目标局部特征;通过所述第二特征拼接层,对所述拼接特征、所述全局特征以及所述目标局部特征进行特征拼接,得到所述待检测对象的目标拼接特征;所述输出模块4555,还用于通过所述输出层,基于所述目标拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
在一些实施例中,所述输出模块4555,还用于通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述三维网格中各所述顶点的概率;基于所述概率,生成对应所述三维网格的三维热力图;基于所述三维热力图,确定所述关键点在所述待检测对象上的位置。
本申请实施例提供一种三维网络模型的训练装置,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述训练装置包括:
获取模块,用于获取携带标签的对象训练样本,所述标签用于指示对象训练样本的关键点的真实位置;
构建模块,用于构建对应所述对象训练样本的训练三维网格,并确定所述训练三维网格的顶点以及顶点间的连接关系;
第一特征提取模块,用于通过所述第一特征提取层,对所述对象训练样本的顶点进行特征提取,得到所述训练三维网格的顶点特征;
第二特征提取模块,用于通过所述第二特征提取层,基于所述训练三维网格的顶点特征,对所述对象训练样本进行全局特征提取,得到所述对象训练样本的全局特征,并通过所述第三特征提取层,基于所述训练三维网格的顶点以及顶点间的连接关系,对所述对象训练样本进行局部特征提取,得到所述对象训练样本的局部特征;
特征拼接模块,用于通过所述第一特征拼接层,对所述训练三维网格的顶点特征、所述对象训练样本的全局特征以及所述对象训练样本的局部特征进行特征拼接,得到所述对象训练样本的拼接特征;
输出模块,用于通过所述输出层,基于所述对象训练样本的拼接特征,对所述对象训练样本的关键点进行检测,得到所述对象训练样本的关键点的位置;
更新模块,用于获取所述对象训练样本的关键点的位置与所述标签的差异,并基于所述差异训练所述三维网络模型,以通过训练得到的三维网络模型,对待检测对象进行关键点检测,得到所述待检测对象的关键点的位置。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本申请实施例上述的关键点检测方法,或三维网络模型的训练方法,例如,如图3示出的关键点检测方法,或者如图11示出的三维网络模型的训练方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的关键点检测方法,或三维网络模型的训练方法,例如,如图3示出的关键点检测方法,或者如图11示出的三维网络模型的训练方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,通过本申请实施例具有以下有益效果:
(1)通过多层特征提取层提取到待检测对象更丰富的特征信息,再依据丰富的特征信息对待检测对象的关键点进行检测,使得三维关键点检测的准确率得到显著提高。
(2)通过GAT不依赖于完整的图结构,只依赖于边的特点,提高关键点检测过程的灵活性。同时采用注意力机制,还可以为不同的邻居节点分配不同的权重,提高了关键点检测过程的准确性。
(3)通过自动检测三维游戏头模的特定关键点,能够为后续的三维头模配准工作提供准确可靠的关键点依据。相比于传统的人工标注,再做头模配准的方式,本申请可以规避人工的过多参与,使得三维头模配准等依赖关键点的工作得以自动化完成。这将大大节省了美术人员的人力投入,从而加速整个模型角色动画相关的制作过程。
(4)基于图神经网络深度监督学习,能够准确地预测出三维关键点的位置,具有较强的鲁棒性。同时深度学习模型的正向演算速度极快,算法整体上只需1秒就能完成自动标注,与之相对的人工方式则往往需要耗费数分钟,因此本申请在效率上具有较大的实际价值。此外,本申请不限定输入的三维人脸模型顶点的数目,当进行监督学习训练之后,产生的深度学习模型可以广泛运用于顶点稠密程度不一的三维头模关键点自动检测任务,适用性较强。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种关键点检测方法,其特征在于,基于三维网络模型,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述方法包括:
构建对应待检测对象的三维网格,并确定所述三维网格的顶点、以及顶点间的连接关系;
通过所述第一特征提取层,对所述三维网格的顶点进行特征提取,得到所述三维网格的顶点特征;
通过所述第二特征提取层,基于所述顶点特征,对所述待检测对象进行全局特征提取,得到所述待检测对象的全局特征,并通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,对所述待检测对象进行局部特征提取,得到所述待检测对象的局部特征;
通过所述第一特征拼接层,对所述顶点特征、所述全局特征以及所述局部特征进行特征拼接,得到所述待检测对象的拼接特征;
通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
2.如权利要求1所述的方法,其特征在于,所述构建对应待检测对象的三维网格,包括:
通过三维扫描装置对所述待检测对象进行扫描,得到所述待检测对象的几何表面的点云数据;
基于所述点云数据,构建对应所述待检测对象的三维网格。
3.如权利要求1所述的方法,其特征在于,所述通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,对所述待检测对象进行局部特征提取,得到所述待检测对象的局部特征,包括:
通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,确定各所述顶点的局部特征;
基于各所述顶点的局部特征,确定所述待检测对象的局部特征。
4.如权利要求3所述的方法,其特征在于,所述基于所述顶点特征、以及所述顶点间的连接关系,确定各所述顶点的局部特征,包括:
针对各所述顶点执行以下处理:
将所述顶点确定为参考顶点,并基于所述三维网格中各顶点的顶点特征,确定所述参考顶点的顶点特征、以及其它顶点的顶点特征;
其中,所述其它顶点为除所述参考顶点以外的任一顶点;
基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,确定所述参考顶点与所述其它顶点间的相关值;其中,所述相关值用于指示所述参考顶点与所述其它顶点间的相关性的大小;
基于所述相关值、以及所述其它顶点的顶点特征,确定所述参考顶点的局部特征。
5.如权利要求4所述的方法,其特征在于,所述基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,确定所述参考顶点与所述其它顶点间的相关值,包括:
基于所述参考顶点的顶点特征、所述其它顶点的顶点特征、以及所述顶点间的连接关系,采用注意力机制确定所述参考顶点与所述其它顶点间的相关性;
对所述相关性进行归一化处理,得到所述参考顶点与所述其它顶点间的相关值。
6.如权利要求4所述的方法,其特征在于,当所述其它顶点的数量为一个时,所述基于所述相关值、以及所述其它顶点的顶点特征,确定所述参考顶点对应的局部特征,包括:
将所述相关值与所述其它顶点的顶点特征进行求积处理,得到求积结果;
基于所述求积结果,确定所述参考顶点对应的局部特征。
7.如权利要求4所述的方法,其特征在于,当所述其它顶点的数量为多个时,所述基于所述相关值、以及所述其它顶点的顶点特征,确定所述参考顶点对应的局部特征,包括:
针对各所述其它顶点,将所述相关值与相应所述其它顶点的顶点特征进行求积处理,得到所述其它顶点的求积结果;
对各所述其它顶点的求积结果进行累计求和,得到求和结果;
基于所述求和结果,确定所述参考顶点对应的局部特征。
8.如权利要求3所述的方法,其特征在于,所述基于各所述顶点的局部特征,确定所述待检测对象的局部特征,包括:
基于各所述顶点的局部特征,对各所述顶点的局部特征进行特征融合,得到融合特征;
将所述融合特征作为所述待检测对象的局部特征。
9.如权利要求1所述的方法,其特征在于,所述三维网络模型还包括第二特征拼接层、第四特征提取层,所述方法还包括:
通过所述第四特征提取层,基于所述拼接特征,对所述待检测对象进行局部特征提取,得到所述待检测对象的目标局部特征;
通过所述第二特征拼接层,对所述拼接特征、所述全局特征以及所述目标局部特征进行特征拼接,得到所述待检测对象的目标拼接特征;
所述通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置,包括:
通过所述输出层,基于所述目标拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
10.如权利要求1所述的方法,其特征在于,所述通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置,包括:
通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述三维网格中各所述顶点的概率;
基于所述概率,生成对应所述三维网格的三维热力图;
基于所述三维热力图,确定所述关键点在所述待检测对象上的位置。
11.一种三维网络模型的训练方法,其特征在于,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述方法包括:
获取携带标签的对象训练样本,所述标签用于指示对象训练样本的关键点的真实位置;
构建对应所述对象训练样本的训练三维网格,并确定所述训练三维网格的顶点以及顶点间的连接关系;
通过所述第一特征提取层,对所述对象训练样本的顶点进行特征提取,得到所述训练三维网格的顶点特征;
通过所述第二特征提取层,基于所述训练三维网格的顶点特征,对所述对象训练样本进行全局特征提取,得到所述对象训练样本的全局特征,并通过所述第三特征提取层,基于所述训练三维网格的顶点以及顶点间的连接关系,对所述对象训练样本进行局部特征提取,得到所述对象训练样本的局部特征;
通过所述第一特征拼接层,对所述训练三维网格的顶点特征、所述对象训练样本的全局特征以及所述对象训练样本的局部特征进行特征拼接,得到所述对象训练样本的拼接特征;
通过所述输出层,基于所述对象训练样本的拼接特征,对所述对象训练样本的关键点进行检测,得到所述对象训练样本的关键点的位置;
获取所述对象训练样本的关键点的位置与所述标签的差异,并基于所述差异训练所述三维网络模型,以通过训练得到的三维网络模型,对待检测对象进行关键点检测,得到所述待检测对象的关键点的位置。
12.一种关键点检测装置,其特征在于,基于三维网络模型,所述三维网络模型至少包括第一特征提取层、第二特征提取层、第三特征提取层、第一特征拼接层以及输出层,所述装置包括:
构建模块,用于构建对应待检测对象的三维网格,并确定所述三维网格的顶点、以及顶点间的连接关系;
第一特征提取模块,用于通过所述第一特征提取层,对所述三维网格的顶点进行特征提取,得到所述三维网格的顶点特征;
第二特征提取模块,用于通过所述第二特征提取层,基于所述顶点特征,对所述待检测对象进行全局特征提取,得到所述待检测对象的全局特征,并通过所述第三特征提取层,基于所述顶点特征、以及所述顶点间的连接关系,对所述待检测对象进行局部特征提取,得到所述待检测对象的局部特征;
特征拼接模块,用于通过所述第一特征拼接层,对所述顶点特征、所述全局特征以及所述局部特征进行特征拼接,得到所述待检测对象的拼接特征;
输出模块,用于通过所述输出层,基于所述拼接特征,对所述待检测对象的关键点进行检测,得到所述关键点在所述待检测对象上的位置。
13.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10任一项所述的关键点检测方法,或者权利要求11所述的三维网络模型的训练方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至10任一项所述的关键点检测方法,或者权利要求11所述的三维网络模型的训练方法。
15.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时,实现权利要求1至10任一项所述的关键点检测方法,或者权利要求11所述的三维网络模型的训练方法。
CN202211576832.9A 2022-12-09 2022-12-09 关键点检测方法、训练方法、装置、设备、介质及产品 Active CN115578393B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211576832.9A CN115578393B (zh) 2022-12-09 2022-12-09 关键点检测方法、训练方法、装置、设备、介质及产品
PCT/CN2023/129915 WO2024120096A1 (zh) 2022-12-09 2023-11-06 关键点检测方法、训练方法、装置、电子设备、计算机可读存储介质及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211576832.9A CN115578393B (zh) 2022-12-09 2022-12-09 关键点检测方法、训练方法、装置、设备、介质及产品

Publications (2)

Publication Number Publication Date
CN115578393A true CN115578393A (zh) 2023-01-06
CN115578393B CN115578393B (zh) 2023-03-10

Family

ID=84590570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211576832.9A Active CN115578393B (zh) 2022-12-09 2022-12-09 关键点检测方法、训练方法、装置、设备、介质及产品

Country Status (2)

Country Link
CN (1) CN115578393B (zh)
WO (1) WO2024120096A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115830642A (zh) * 2023-02-13 2023-03-21 粤港澳大湾区数字经济研究院(福田) 2d全身人体关键点标注方法及3d人体网格标注方法
CN116091570A (zh) * 2023-04-07 2023-05-09 腾讯科技(深圳)有限公司 三维模型的处理方法、装置、电子设备、及存储介质
CN117932607A (zh) * 2024-03-20 2024-04-26 山东省计算中心(国家超级计算济南中心) 一种勒索软件检测方法、***、介质及设备
WO2024120096A1 (zh) * 2022-12-09 2024-06-13 腾讯科技(深圳)有限公司 关键点检测方法、训练方法、装置、电子设备、计算机可读存储介质及计算机程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120281907A1 (en) * 2011-05-06 2012-11-08 Toyota Motor Engin. & Manufact. N.A.(TEMA) Real-time 3d point cloud obstacle discriminator apparatus and associated methodology for training a classifier via bootstrapping
CN111489358A (zh) * 2020-03-18 2020-08-04 华中科技大学 一种基于深度学习的三维点云语义分割方法
CN112215180A (zh) * 2020-10-20 2021-01-12 腾讯科技(深圳)有限公司 一种活体检测方法及装置
US20210150264A1 (en) * 2017-07-05 2021-05-20 Siemens Aktiengesellschaft Semi-supervised iterative keypoint and viewpoint invariant feature learning for visual recognition
CN112991502A (zh) * 2021-04-22 2021-06-18 腾讯科技(深圳)有限公司 一种模型训练方法、装置、设备及存储介质
CN113706480A (zh) * 2021-08-13 2021-11-26 重庆邮电大学 一种基于关键点多尺度特征融合的点云3d目标检测方法
CN114387445A (zh) * 2022-01-13 2022-04-22 深圳市商汤科技有限公司 对象关键点识别方法及装置、电子设备和存储介质
CN115082885A (zh) * 2022-06-27 2022-09-20 深圳见得空间科技有限公司 点云目标的检测方法、装置、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109993819B (zh) * 2019-04-09 2023-06-20 网易(杭州)网络有限公司 虚拟角色的蒙皮方法及装置、电子设备
CN111179419B (zh) * 2019-12-31 2023-09-05 北京奇艺世纪科技有限公司 三维关键点预测及深度学习模型训练方法、装置及设备
EP3901817A1 (en) * 2020-04-22 2021-10-27 Continental Automotive GmbH Method and system for keypoint detection based on neural networks
CN115238723A (zh) * 2022-06-29 2022-10-25 厦门华联电子股份有限公司 一种局部顶点检测方法及装置
CN115578393B (zh) * 2022-12-09 2023-03-10 腾讯科技(深圳)有限公司 关键点检测方法、训练方法、装置、设备、介质及产品

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120281907A1 (en) * 2011-05-06 2012-11-08 Toyota Motor Engin. & Manufact. N.A.(TEMA) Real-time 3d point cloud obstacle discriminator apparatus and associated methodology for training a classifier via bootstrapping
US20210150264A1 (en) * 2017-07-05 2021-05-20 Siemens Aktiengesellschaft Semi-supervised iterative keypoint and viewpoint invariant feature learning for visual recognition
CN111489358A (zh) * 2020-03-18 2020-08-04 华中科技大学 一种基于深度学习的三维点云语义分割方法
CN112215180A (zh) * 2020-10-20 2021-01-12 腾讯科技(深圳)有限公司 一种活体检测方法及装置
CN112991502A (zh) * 2021-04-22 2021-06-18 腾讯科技(深圳)有限公司 一种模型训练方法、装置、设备及存储介质
CN113706480A (zh) * 2021-08-13 2021-11-26 重庆邮电大学 一种基于关键点多尺度特征融合的点云3d目标检测方法
CN114387445A (zh) * 2022-01-13 2022-04-22 深圳市商汤科技有限公司 对象关键点识别方法及装置、电子设备和存储介质
CN115082885A (zh) * 2022-06-27 2022-09-20 深圳见得空间科技有限公司 点云目标的检测方法、装置、设备及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024120096A1 (zh) * 2022-12-09 2024-06-13 腾讯科技(深圳)有限公司 关键点检测方法、训练方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN115830642A (zh) * 2023-02-13 2023-03-21 粤港澳大湾区数字经济研究院(福田) 2d全身人体关键点标注方法及3d人体网格标注方法
CN115830642B (zh) * 2023-02-13 2024-01-12 粤港澳大湾区数字经济研究院(福田) 2d全身人体关键点标注方法及3d人体网格标注方法
CN116091570A (zh) * 2023-04-07 2023-05-09 腾讯科技(深圳)有限公司 三维模型的处理方法、装置、电子设备、及存储介质
CN116091570B (zh) * 2023-04-07 2023-07-07 腾讯科技(深圳)有限公司 三维模型的处理方法、装置、电子设备、及存储介质
CN117932607A (zh) * 2024-03-20 2024-04-26 山东省计算中心(国家超级计算济南中心) 一种勒索软件检测方法、***、介质及设备

Also Published As

Publication number Publication date
WO2024120096A1 (zh) 2024-06-13
CN115578393B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
CN115578393B (zh) 关键点检测方法、训练方法、装置、设备、介质及产品
US10679046B1 (en) Machine learning systems and methods of estimating body shape from images
WO2021175050A1 (zh) 三维重建方法和三维重建装置
CN112085840B (zh) 语义分割方法、装置、设备及计算机可读存储介质
Zhang et al. Image engineering
WO2021184933A1 (zh) 一种人体三维模型重建方法
CN109508678A (zh) 人脸检测模型的训练方法、人脸关键点的检测方法和装置
WO2022001236A1 (zh) 三维模型生成方法、装置、计算机设备及存储介质
WO2021253788A1 (zh) 一种人体三维模型构建方法及装置
CN112085835B (zh) 三维卡通人脸生成方法、装置、电子设备及存储介质
CN112102480B (zh) 图像数据处理方法、装置、设备以及介质
CN110458924B (zh) 一种三维脸部模型建立方法、装置和电子设备
CN115222896B (zh) 三维重建方法、装置、电子设备及计算机可读存储介质
CN113593001A (zh) 目标对象三维重建方法、装置、计算机设备和存储介质
CN112785712A (zh) 三维模型的生成方法、装置和电子设备
WO2022179603A1 (zh) 一种增强现实方法及其相关设备
CN117033609B (zh) 文本视觉问答方法、装置、计算机设备和存储介质
Rasoulzadeh et al. Strokes2Surface: Recovering Curve Networks From 4D Architectural Design Sketches
CN116012626B (zh) 建筑立面图像的素材匹配方法、装置、设备和存储介质
WO2023231793A9 (zh) 对物理场景进行虚拟化的方法、电子设备、计算机可读存储介质和计算机程序产品
Zhang 2D Computer Vision
CN115049764B (zh) Smpl参数预测模型的训练方法、装置、设备及介质
Li et al. Application of human body gesture recognition algorithm based on deep learning in non-contact human body measurement
CN113255530B (zh) 基于注意力的多通道数据融合网络架构及数据处理方法
CN116661940B (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: 40080387

Country of ref document: HK