CN111243093B - 三维人脸网格的生成方法、装置、设备及存储介质 - Google Patents
三维人脸网格的生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111243093B CN111243093B CN202010015651.3A CN202010015651A CN111243093B CN 111243093 B CN111243093 B CN 111243093B CN 202010015651 A CN202010015651 A CN 202010015651A CN 111243093 B CN111243093 B CN 111243093B
- Authority
- CN
- China
- Prior art keywords
- face
- image
- dimensional
- image pair
- pairs
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了一种三维人脸网格的生成方法、装置、设备及存储介质,涉及人工智能的计算机视觉技术领域。所述方法包括:采集目标人脸的n个图像对,所述图像对包括彩色图像和深度图像;提取所述图像对中的人脸点云,所述人脸点云包括所述目标人脸的人脸关键点;根据所述目标人脸中的人脸关键点在所述图像对中的位置,确定所述图像对的相机姿态;根据所述相机姿态将所述图像对中的人脸点云融合至同一个三维空间中;根据所述三维空间中融合后的人脸点云生成所述目标人脸的三维人脸网格。针对移动端的三维人脸网格的重建,本申请提供了一整套完整的管线(pipeline)重建流程,能够实现在移动端对三维人脸网格的快速重建。
Description
技术领域
本申请实施例涉及人工智能的计算机视觉技术领域,特别涉及一种三维人脸网格的生成方法、装置、设备及存储介质。
背景技术
3D(3 Dimensions,三维)人脸网格(mesh)的重建是指从一张或多张2D(2Dimensions,二维)图像中重建出人脸的3D网格。
在一些相关技术中,通过拍摄获取目标人脸的一张或多张人脸图像,对这些人脸图像进行分析处理,提取一些关键信息,然后基于这些关键信息重建出目标人脸的三维人脸网格。
为了得到高质量的三维人脸网格,相关技术需要对大量的图像帧进行融合,属于稠密帧三维重建,重建效率较低,无法满足消费级移动终端上的快速重建需求。
发明内容
本申请实施例提供了一种三维人脸网格的生成方法、装置、设备及存储介质,提供了一整套完整的管线(pipeline)重建流程,能够实现在移动端对三维人脸网格的快速重建。所述技术方案如下:
根据本申请的一个方面,本申请提供了一种三维人脸网格的生成方法,所述方法包括:
采集目标人脸的n个图像对,所述图像对包括彩色图像和深度图像;
根据所述彩色图像和所述深度图像提取所述图像对中的人脸点云,所述人脸点云包括所述目标人脸的表面关键点;
根据所述目标人脸中的人脸关键点在所述图像对中的位置,确定所述图像对的相机姿态;
根据所述相机姿态将所述图像对中的人脸点云融合至同一个三维空间中的多个体素块;
根据所述三维空间中的多个体素块生成所述目标人脸的三维人脸网格。
根据本申请的一个方面,本申请提供了一种三维物体网格的生成方法,所述方法包括:
采集三维物体的n个图像对,所述图像对包括彩色图像和深度图像,n为正整数;
根据所述彩色图像和所述深度图像提取所述图像对中的表面点云,所述表面点云包括所述三维物体的表面关键点;
根据所述三维物体中的表面关键点在所述图像对中的位置,确定所述图像对的相机姿态;
根据所述相机姿态将所述图像对中的物体点云融合至同一个三维空间中的多个体素块中;
根据所述三维空间中的多个体素块生成所述三维物体的三维物体网格。
根据本申请的另一方面,本申请提供了一种三维人脸网格的生成装置,所述装置包括:
采集模块,用于采集目标人脸的n个图像对,所述图像对包括彩色图像和深度图像;
提取模块,用于根据所述彩色图像和所述深度图像提取所述图像对中的人脸点云,所述人脸点云包括所述目标人脸的表面关键点;
确定模块,用于根据所述目标人脸中的人脸关键点在所述图像对中的位置,确定所述图像对的相机姿态;
融合模块,用于根据所述相机姿态将所述图像对中的人脸点云融合至同一个三维空间中的多个体素块;
生成模块,用于根据所述三维空间中的多个体素块生成所述目标人脸的三维人脸网格。
根据本申请的另一方面,本申请提供了一种三维物体网格的生成装置,所述装置包括:
采集模块,用于采集三维物体的n个图像对,所述图像对包括彩色图像和深度图像;
提取模块,用于根据所述彩色图像和所述深度图像提取所述图像对中的表面点云,所述表面点云包括所述三维物体的表面关键点;
确定模块,用于根据所述三维物体中的表面关键点在所述图像对中的位置,确定所述图像对的相机姿态;
融合模块,用于根据所述相机姿态将所述图像对中的表面点云融合至同一个三维空间中;
生成模块,用于根据所述三维空间中的多个体素块生成所述三维物体的三维物体网格。
根据本申请的另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述生成方法。
可选地,所述计算机设备为终端或服务器。
根据本申请的另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述生成方法。
根据本申请的另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述生成方法。
本申请实施例提供的技术方案可以包括如下有益效果:
针对移动端的三维人脸网格的重建,本申请提供了一整套完整的管线(pipeline)重建流程,与传统采用ICP的方式计算相机姿态不同的是,本申请提供的整个管线重建流程中基于人脸关键点的相机姿态计算可以较大程度减少移动端的计算量,因此能够实现在移动端对三维人脸网格的快速重建,易于在移动终端中的应用程序中基于重建的三维人脸网格进行应用推广。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的三维人脸网格的生成方法的原理示意图;
图2是本申请一个实施例提供的三维人脸网格的生成方法的流程图;
图3是本申请一个实施例提供的多个图像对的示意图;
图4是本申请一个实施例提供的三维人脸网格的生成原理的示意图;
图5是本申请另一个实施例提供的三维人脸网格的生成方法的流程图;
图6是本申请一个实施例提供的人脸关键点的示意图;
图7是本申请一个实施例提供的欧拉角在平滑前和平滑后的对比视图;
图8是本申请一个实施例提供的将n个图像对筛选为m个图像对的原理示意图;
图9是本申请一个实施例提供的三维空间(立方体或体积模型)的示意图;
图10是本申请一个实施例提供的目标人脸的三维人脸网格的示意图;
图11是本申请一个实施例提供的目标人脸的三维人脸网格在去除漂浮点前后的对比视图;
图12是本申请一个实施例提供的三维人脸网格的生成方法的流程图;
图13是本申请一个实施例提供的三维表面网格的生成方法的流程图;
图14是本申请一个实施例提供的三维人脸网格(或三维表面网格)的生成装置的框图;
图15是本申请另一个实施例提供的三维人脸网格(或三维表面网格)的生成装置的框图;
图16是本申请一个实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
AI(Artificial Intelligence,人工智能):是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV):计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR(Optical Character Recognition,光学字符识别)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及三维人脸网格(mesh)的重建技术领域,利用计算机视觉技术对目标人脸的人脸图像进行分析处理,构建出目标人脸的三维人脸网格。
本申请实施例提供的方法流程,各步骤的执行主体可以是诸如手机、平板电脑、多媒体播放设备、可穿戴设备等终端,也可以是服务器。为了便于说明,在下述方法实施例中,仅以各步骤的执行主体为计算机设备为例,进行介绍说明,所述计算机设备可以是任何具备计算和存储能力的电子设备,如上文介绍的终端或服务器。
下面,将结合几个实施例对本申请技术方案进行详细的介绍说明。
图1是本申请一个示例性实施例提供的三维人脸网格的重建流程的示意图。用户使用消费级的移动终端120(比如智能手机、平板电脑、虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备等等)。该消费级的移动终端120中安装有应用程序,该应用程序提供与三维人脸网格有关的功能。用户打开该应用程序后,使用移动终端120上的三维摄像头(包括彩色摄像头和深度摄像头)围绕目标人脸140的脸部(或整个头部)一圈采集多个图像对,每个图像对包括彩色图像和深度图像。然后,应用程序根据多个图像对对目标人脸140的三维人脸网格160进行重建。其中,重建后的三维人脸网格160可以用于表情生成、虚拟社交、游戏人物个性化等应用场景。
图2是本申请一个示例性实施例提供的三维人脸网格的生成方法的流程图。本实施例以该方法应用于移动终端120中执行来举例说明。该移动终端120内设置有三维摄像头。该方法包括:
步骤201,采集目标人脸的n个图像对,每个图像对包括彩色图像和深度图像;
使用移动终端围绕目标人脸的脸部(或整个头部)进行连续拍摄。示例性的,该连续拍摄是拍摄视频,或者按照预设频率进行照片连拍。
在一个实施例中,保持目标人脸的头部不动,使用移动终端围绕目标人脸进行拍摄。比如,使用移动终端围绕目标人脸的头部进行扇形轨迹移动并进行拍摄,或者,使用移动终端围绕目标人脸的头部进行环形轨迹移动并进行拍摄。
在另一个实施例中,保持移动终端不动,由目标人脸自行改变头部相对于移动终端的相对位置进行拍摄。比如,由目标人脸自行在左、右、上、下方向上移动头部来进行拍摄。
每个拍摄时刻会同时拍摄彩色图像和深度图像。同一个拍摄时刻拍摄的彩色图像和深度图像,构成一个图像对。换句话说,每个图像对包括同一时刻拍摄的彩色图像和深度图像。图3示意性的示出了多个图像对32中的彩色图像,多个图像对32(彩色图像+深度图像)是从不同的拍摄角度对目标人脸进行拍摄后得到的。
示例性的,彩色图像是红绿蓝(Red Green Blue,RGB)格式的彩色图像。深度(Depth,D)图像中的每个像素点存储有深度摄像头到场景中各个真实点的距离(深度)值。
示例性的,彩色图像和深度图像存储为两张关联的图像,比如采用拍摄时刻进行关联。或者,彩色图像和深度图像存储为同一张图像,比如该图像同时包含R、G、B、D四个通道。本申请实施例对彩色图像和深度图像的具体存储方式不加以限定。
步骤202,根据彩色图像和深度图像提取图像对中的人脸点云,人脸点云包括目标人脸的人脸关键点;
对于每个图像对,通过对每个图像对中的彩色图像和深度图像中的人脸特征点进行提取,能够得到每个图像对中的人脸点云。图3中采用圆点来表示人脸关键点。
人脸点云是采用多个三维特征点来描述目标人脸的人脸的三维数据。每个三维特征点的x坐标和y坐标由彩色图像来确定,每个三维特征点的z坐标由深度图像来确定。人脸点云是在相机坐标系下的多个人脸特征点的数据集。在不同的实施例中,每个人脸特征点不仅包括x坐标、y坐标和z坐标,还可以包括其它信息,比如颜色值、分类值、强度值等等。人脸点云是一个稀疏的结构。
人脸点云中包括多个人脸特征点,多个人脸特征点中包括人脸关键点。
步骤203,根据目标人脸中的人脸关键点在图像对中的位置,确定图像对的相机姿态;
对于每个图像对(n个图像对中的全部或部分),可从人脸点云中提取出目标人脸在彩色图像中的人脸关键点。根据每个彩色图像中的人脸关键点,计算出移动终端在采集该彩色图像(或图像对)时的相机姿态。
示例性的,以参考图像对(比如第一个图像对)的相机姿态为起始姿态或基准姿态,第i个图像对的相机姿态是相对于参考图像对的相机姿态。
步骤204,根据相机姿态将图像对中的人脸点云融合至同一个三维空间中的多个体素块中;
示例性的,该三维空间是具有边界的立方体(volume)。立方体是采用体积元素(volumepixel,voxel)方式来描述目标人脸的人脸的三维数据。体积元素可简称为体素,是三维空间中的分割的最小单位。立方体中的体素可类比为二维空间中的像素。
移动终端将多个图像对(n个图像对的全部或子集)中的人脸点云均融合至同一个三维空间中的多个体素块,得到该目标人脸的立方体。
步骤205,根据三维空间中的多个体素块,生成目标人脸的三维人脸网格。
移动终端根据三维空间中的多个体素块,生成目标人脸的三维人脸网格。如图4所示,移动终端根据人脸点云计算得到三维空间中的多个体素块34,根据该体素立方体34重建目标人脸的三维人脸网格36。
三维人脸网格是采用多面体的顶点与多边形所形成的集合来描述目标人脸的人脸的三维数据。该多边形是三角形、四边形或者其它的简单凸多边形中的至少一种,以便简化渲染过程。可选地,三维人脸网格也可以包括带有空洞的普通多边形组成的三维数据。本申请对此不加以限定。
综上所述,本实施例提供的方法,针对移动端的三维人脸网格的重建,本申请提供了一整套完整的pipeline重建流程,与传统采用ICP的方式计算相机姿态不同的是,本申请提供的整个管线重建流程中基于人脸关键点的相机姿态计算可以较大程度减少移动端的计算量,因此能够实现在移动端对三维人脸网格的快速重建,易于在移动终端中的应用程序中基于重建的三维人脸网格进行应用推广。
图5示出了本申请一个示例性实施例提供的三维人脸网格的生成方法的流程图。本实施例以该方法应用于移动终端120中执行来举例说明。该移动终端120内设置有三维摄像头。该方法包括:
步骤201,采集目标人脸的n个图像对,每个图像对包括彩色图像和深度图像;
使用移动终端围绕目标人脸的脸部(或整个头部)进行连续拍摄。示例性的,该连续拍摄是拍摄视频,或者按照预设频率进行照片连拍。
在一个实施例中,保持目标人脸的头部不动,使用移动终端围绕目标人脸进行拍摄。比如,使用移动终端围绕目标人脸的头部进行扇形轨迹移动并进行拍摄,或者,使用移动终端围绕目标人脸的头部进行环形轨迹移动并进行拍摄。
在另一个实施例中,保持移动终端不动,由目标人脸自行改变头部相对于移动终端的相对位置进行拍摄。比如,由目标人脸自行在左、右、上、下方向上移动头部来进行拍摄。
每个拍摄时刻会同时拍摄彩色图像和深度图像。同一个拍摄时刻拍摄的彩色图像和深度图像,构成一个图像对。换句话说,每个图像对包括同一时刻拍摄的彩色图像和深度图像。
彩色图像是RGB格式的彩色图像。深度(Depth,D)图像中的每个像素点存储有深度摄像头到场景中各个真实点的距离(深度)值。
示例性的,图2中的步骤202包括如下步骤2021至步骤2023:
步骤2021,提取第i个图像对的彩色图像中的人脸关键点,第i个图像对是n个图像对中的一个图像对,i为不大于n的整数;
示例性的,移动终端调用人脸关键点检测器(landmark)提取第i个图像对的彩色图像中的人脸特征点,该人脸特征点中包括人脸关键点。
Landmark检测器是用于检测人脸关键点的一种工具。本实施例以Landmark检测器来进行举例说明,但不限定人脸关键点的具体检测方式。在不同的实施例中,还可以使用基于活动形状模型(Active Shape Model,ASM)的方法、基于级联形状回归的方法、基于深度学习的方法中的任意一种方法。
人脸关键点是指与人脸关键区域(比如五官)有关的特征点。人脸关键区域包括但不限于:眉毛、眼睛、鼻子、嘴巴和脸部轮廓中的至少一种。在图6的示意性例子中,示出了脸部轮廓关键点51、眉毛关键点52、上眼皮关键点53、下眼皮关键点54、鼻子关键点55、上嘴唇关键点56和下嘴唇关键点57。本申请实施例对人脸关键点的数量不加以限定,可以是5个、21个、27个、49个、68个、81个、85个、106个、240个或上千个。
对于n个图像对中的每个图像对,在该图像对中的彩色图像上提取到多个人脸关键点。
步骤2022,根据人脸关键点在彩色图像中的横纵坐标以及在第i个图像对的深度图像中的深度值,得到人脸关键点的三维坐标;
对于n个图像对中的每个图像对,获取人脸关键点在彩色图像中的横纵坐标(u,v)以及深度值depth,结合深度图像及相机内参(fx,fy,cx,cy),获取每张图的人脸landmark的三维坐标P(X,Y,Z):
X=(u-cx)/fx*Z
Y=(v-cy)/fy*Z
Z=depth。
步骤2023,根据人脸关键点的三维坐标,计算第i个图像对相对于基准图像对的相机姿态,基准图像对是n个图像对中作为参考基准的一个图像对;
不同的相机位置(即不同图像对)对应着不同的局部坐标系(Local Space/coordinate frame)。然后重建后的三维人脸网格需要落在同一个世界坐标系中(WorldSpace/coordination frame)。因此需要找到每一个图像对的相机的局部坐标系和世界坐标系之间的位置关系,也即相机姿态。
示例性的,以基准图像对是第一个图像对来举例说明。在其它实施例中,基准图像对也可以是n个图像对中的其它图像对,比如前x帧中最清晰的一个彩色图像所对应的图像对,前x帧中具有完整人脸的第一个彩色图像所对应的图像对等。
对于n个图像对中的第i(i>1)个图像对,根据第i个图像对的彩色图像中的人脸关键点的三维坐标,以及第一个图像对的彩色图像中的人脸关键点的三维坐标,计算得到第i个图像对相对于第一个图像对的相机姿态。也即,根据第i个图像对中的人脸关键点的三维坐标,以及基准图像对中的人脸关键点的三维坐标,计算出第i个图像对相对于基准图像对的初始相机姿态。
已知第i个图像对中的彩色图像上的每个人脸关键点的三维点坐标P(X,Y,Z)后,可以通过这些人脸关键点的三维坐标计算第i个图像对相对于第1个图像对的相机姿态(包括旋转R和平移T)。如下公式所示:
P1=R*Pi+T
其中,P1和P2分别指第1个图像对和第i张图像对中相对应的人脸关键点的三维坐标,R是待求的相机姿态中的旋转矩阵,T是待求的相机姿态中的平移参数。
示例性的,当计算出初始的相机姿态之后,通过迭代最近点(Iterative ClosestPoint,ICP)的方式初始的相机姿态进行优化,得到优化后的相机姿态。也即,将计算出的初始的相机姿态,作为ICP的第一次迭代时的相机姿态。该优化后的相机姿态更为准确。其中,第i个图像对的相机姿态是指移动终端中的相机在拍摄第i个图像对时在世界坐标系中的位置(含旋转矩阵和平移参数)。
理想情况下,三维人脸网格的重建只需要三个图像对即可。但是由于硬件的限制,采集的深度信息较为稀疏且存在噪声。如果融合采集到的所有图像对会非常耗时,而且因为融合的噪声较多,三维人脸网格的重建质量不可控。
因此本实施例中引入筛选帧机制,在保证三维人脸网格在重建时所需的重要信息不缺失的情况下,避免融入过多的噪声,提高三维人脸网格的重建效率和重建质量。示例性的,图2中的步骤203包括如下步骤2031至步骤2033:
步骤2031,将n个图像对中的每个图像对的相机姿态转换为欧拉角;
对于n个图像对中的每个图像对中的相机姿态,将用于表征相机姿态的相机旋转矩阵转换为欧拉角。可选地,欧拉角包括:俯仰角、偏航角和滚转角。
步骤2032,将相邻图像对的欧拉角进行平滑滤波,得到平滑处理后的欧拉角;
由于计算出的相机姿态会出现波动,移动终端还可以将相邻图像对的欧拉角进行平滑滤波,得到平滑处理后的欧拉角,以降低计算误差。
示例性的,采用中值滤波的方法对相邻图像对的欧拉角进行平滑滤波。中值滤波是指连续计算k个相邻图像对的欧拉角的平均值,将该平均值确定为当前图像对的欧拉角。连续的k个相邻图像对可以包括当前图像对之前的图像对,或者,当前图像对之后的图像对,或者,当前图像对之前和之后的图像对。
在图7中,x_angle_ori和x_angle_smooth分别表示表示绕X轴的欧拉角和中值滤波后的效果;y_angle_ori和y_angle_smooth分别表示表示绕Y轴的欧拉角和中值滤波后的效果。图7中的竖直坐标轴是角度坐标轴,水平坐标轴是帧数坐标轴。
步骤2033,按照设定的角度间隔或帧间隔,从n个图像对中筛选出m个图像对;
示例性的,根据每个图像对的欧拉角,按照设定的角度间隔均匀地筛选出m个图像对。比如,将相机姿态转换为采集场景中的欧拉角后,在n个图像对中每隔5度(或10度、15度、30度)采集一个图像对,添加至目标图像对集合中,如图8所示。
示例性的,根据每个图像对所在的帧数,按照设定的帧间隔均匀地筛选出m个图像对。比如,在n个图像对中每隔50帧采集一个图像对,添加至目标图像对集合中。
移动终端将目标图像对集合中的多个图像对,确定为筛选出的m个图像对。
步骤2041,根据n个图像对中的人脸特征点的三维坐标的取值范围,初始化三维空间的大小和体素块个数;
本实施例以该三维空间是立方体来举例说明,在基于立方体(Volume)的三维重建方式中,需要在世界坐标系中初始化立方体的大小,并将该立方体按照一定的分辨率切割成小的体素块(也称体素,voxel)。该立方体将作为三维人脸网格的容器,用于在世界坐标系中限制经过扫描重建的三维人脸网格的体积。
由于不同目标人脸的人脸大小不同,因此不能使用恒定大小的Volume。在本实施例中,移动终端根据n个图像对中的人脸特征点的三维坐标的取值范围,确定略大于该取值范围的大小,在世界坐标系中初始化立方体。比如,三维坐标的x坐标的取值范围为(a,b),则采用(b-a+△)来初始化立方体的x轴方向的大小。其中,△为预设尺寸值。
在一个示例中,考虑到立方体的精度,将立方体的分辨率设置为1,也即Volume由边长为1的体素块组成,如图9所示。
步骤2042,根据每个图像对的相机姿态,将m个图像对的人脸点云融合至位于世界坐标系的同一个三维空间中;
在本实施例中,采用截断有符号距离函数(Truncated Signed DistanceFunction,TSDF)的方法来更新立方体中的每个小体素块的一个数值。该数值代表了该体素块到三维人脸表面的最近距离,也称为TSDF值。
具体地,TSDF是将初始化的立方体划分为一个三维体素模型,每个体素块储存其代表的三维空间位置距离三维人脸表面的最近距离。正数代表该体素块在位于三维人脸表面的后面,负数代表该体素块在位于三维人脸表面的前面,零值代表该体素块位于三维人脸表面上,绝对值的大小表征距离三维人脸表面的远近,超过-1和1的部分被截断为截断值。基于TSDF的稠密建图,是不断地利用位于不同帧(图像对)的相机从不同视角获得的测量值,从该视角将该帧的人脸点云重投影到TSDF网格上,进而不断更新TSDF网格中各个体素块的指示值的过程。对于一个体素块而言,其指示值是从不同视角投影过来的测量值共同作用的结果(加权求和)。
TSDF的伪代码如下:
1、对于初始化的立方体中的每个体素块g,转换g为世界坐标下的三维位置点p;
2、由第i个图像对的相机姿态T(g,j),由T(g,i)-1p求得p在相机坐标下的映射点v,并由相机的内参矩阵,反投影v点求第i个图像对中的对应像素点x;g为旋转矩阵,j为平移矩阵。
3、计算点p沿投影光线到最近表面的距离fi(p)。首先计算距离符号函数SDF:
Sdfi(p)←||T(g,i)-1p||-Ri(x);其中,Ri(x)是第i个图像上对应x点的深度值;
如果Sdfi(p)大于0时,取:
fi(p)=min(1,Sdfi(p)/μ);
如果Sdfi(p)不大于0时,取:
fi(p)=max(-1,Sdfi(p)/μ);
其中,f是指TSDF,T是截断,μ是截断距离。也即,如果距离太远(超过μ)就没有更新的必要,直接截断。
4、计算fi(p)对应的权重系数wi(p);
其中,权重系数wi(p)可以是固定值,也可以根据角度动态设置。其中,根据角度动态设置的过程,如下:
Wi(p)∝cos(θ)Ri(x);其中,θ为投影光线与表面法向量的夹角;
5、fi=(Fi-1*Wi-1+Wi*fi)/(Wi-1+Wi)Wi=Wi-1+Wi;
进行融合求得截断符号距离函数fi(p)和权重系数wi(p);
6、将fi(p)和wi(p)存储于体素块g中;
7、实现所有图像对中的人脸点云的融合。利用光线投影法找到的所有fi(p)值为0的体素点g,可以映射到世界坐标中提取出融合后的三维人脸表面的稠密点云。
步骤2051,根据三维空间中每个体素块的数值,插值生成多个体素块中的等势面;
在上一步骤中,将立方体划分成边长为1的小体素块,并且在体素块内采用TSDF值来表示体素块在视线方向上到达三维人脸表面的距离。当把TSDF距离为0的体素块连接起来,就构成了三维人脸表面。但一方面,TSDF恰好为0的概率很小,得做取舍处理,损失一部分精度;另一方面,将这些体素块直接连接起来的做法也比较粗糙。因此,本步骤中采用移动立方体(Marching Cubes)算法根据立方体生成目标人脸的三维人脸网格。
Marching Cubes是一种用于在体素块中渲染(生成)等势面(表面)的算法。核心概念是在设定好的体素块以及TSDF值后,通过比较体素块中的顶点和用户指定阈值(如TSDF中的表面0)时,确定体素块的哪些边与等势面相交,创建三角贴片(等势面)。
步骤2052,连接多个体素块中的等势面,得到目标人脸的三维人脸网格;
连接等势面边界上所有体素体的等势面的面片,以此得到一个三维人脸表面的网格,也即三维人脸网格,如图10所示。
步骤206,寻找目标人脸的三维人脸网格上的最大连通区域,根据该最大连通区域清除漂浮点。
由于在点云融合阶段和构建网格阶段时,有可能会出现影响视觉效果的漂浮点。在本步骤中,根据三维人脸网格中的拓扑顺序,采用深度优先搜索(DFS)的方式,寻找目标人脸的三维人脸网格上的最大连通区域。根据该最大连通区域清除三维人脸网格上的漂浮点,能够得到更好的视觉效果,如图11所示。
在图11中,左侧是存在漂浮点的三维人脸网格,右侧是清除漂浮点后的三维人脸网格。
综上所述,本实施例提供的方法,针对移动端的三维人脸网格的重建,提供了一整套完整的管线(pipeline)重建流程,由于整个管线重建流程中基于人脸关键点的相机姿态计算,以及基于相机姿态进行的帧筛选均可以较大程度减少移动端的计算量,因此能够实现在移动端对三维人脸网格的快速重建,易于在移动终端中的应用程序中基于重建的三维人脸网格进行应用推广。
本实施例提供的方法,相比于传统的基于RGBD数据的三维人脸重建,由于本实施例只筛选了少数的几个图像对来进行三维人脸重建,这几张图像对之间的距离很大,没法直接使用传统的ICP算法进行计算。通过landmark检测出的人脸关键点计算出初始的相机姿态作为初值,进而采用ICP算法来优化得到最终的相机姿态可以解决这个问题。
本实施例提供的方法,还通过对重建后的三维人脸网格之外的漂浮点进行清除,能够得到视觉效果更优的三维人脸网格。
需要说明的是,上述步骤2051和步骤2052的网格重建过程也可以使用泊松重建过程。
图12示出了本申请一个示例性实施例提供的三维人脸网格的生成方法的流程图。该流程包括:
步骤1:被拍摄者保持不动,转动相机;或者,相机保持不动,被拍摄者转动头部
采用具有三维摄像头的移动终端围绕目标人脸的脸部进行图像采集。在不同位置(不同时刻)采集到多组彩色图像和深度图像。
步骤2:采集彩色(RGB)图像和深度(Depth)图像;
同一个时刻采集的彩色图像和深度图像属于同一组。在一个示例中,彩色图像和深度图像的分辨率大小分别为640*480。
步骤3:人脸关键点(Landmark)检测;
通过Landmark检测能够检测出彩色图像中的人脸关键点以及其它人脸特征点。人脸关键点包括但不限于:眼睛、鼻子、眉毛、嘴唇、耳朵中的至少一种。
对于n个图像对中的每个图像对,获取人脸关键点在彩色图像中的横纵坐标(u,v)以及深度值depth,结合深度图像及相机内参(fx,fy,cx,cy),获取每张图的人脸landmark的三维坐标P(X,Y,Z):
X=(u-cx)/fx*Z
Y=(v-cy)/fy*Z
Z=depth。
步骤4:相机位姿计算;
根据第i张彩色图像中的人脸关键点的三维坐标,和第1张彩色图像中的人脸关键点的三维坐标,能够计算得到第i张彩色图像相对于第1张彩色图像对应的相机位姿变化。
示例性的,在获取每张彩色图像中的人脸关键点的三维坐标后,采用ICP(Iterative Closest Point,迭代最近点)的方式获取每帧彩色图像相对于第一帧彩色图像的变换关系(pose)。
步骤5:筛选帧;
在理想情况下,重建三维人脸模型只需要三组图像对(彩色图像+深度图像)即可。但是由于移动终端的硬件限制,采集的深度信息较为稀疏且存在噪声。如果融合采集到的所有图像对会非常耗时,而且因为融合的噪声较多,三维人脸模型的重建质量也不可控。
本实施例中加入了筛选图像对的机制,目的在于保证信息不缺失的情况下,避免融入过多的噪声,提高三维人脸模型的重建效率和质量。
将步骤4计算得到相机位姿转换为欧拉角,并利用中值滤波的方法平滑角度,便于筛选出有效帧。通过限制转角范围和设定帧间距,来选取本申请所需要的帧。(图6中,x_angle_ori和x_angle_smooth分别表示表示绕X轴转角和滤波后的效果;y_angle_ori和y_angle_smooth同理)。
步骤6:初始化体素大小;
在基于体积元素(Volume Pixel,简称体素)的三维重建方式中,需要初始化体素的大小。传统的初始化方式是已知重建场景大小的情况下给定的,不同于传统的初始化方式,本申请是针对三维人脸模型的重建,不同人脸对应的数据具有多样性,场景大小未知,不能随意给定立方体(Volume)的大小。因此,本专利提出了一种对立方体的量化方式:充分利用人脸特征点的三维坐标,选取合适的范围,初始化立方体的大小。考虑到三维人脸模型的精度,将分辨率设为1,即立方体由边长为1的立方体组成。如图8所示,该立方体包括多个边长为1的立方体,分别按照x轴、y轴和z轴排列。
步骤7:点云融合;
点云信息融合方式采用的是TSDF(Truncated Signed Distance Function)模型,将立方体投影到待融合的当前帧坐标系下(world to camera),对点云和RGB信息进行融合。也即,每个图像帧所对应的相机坐标系不同,点云融合需要将不同图像帧中的点云融合至同一个世界坐标系中。
步骤8:插值生成三维人脸网格;
上一步融合后生成的是无序点云,很难对其进行渲染、补光等操作,因此需要构建具有拓扑机构的三维人脸网格。通过采用marching cube插值构建每个体素块中的等势面,得到三维人脸网格(mesh),示意性的如图9所示。
步骤9:后处理。
在进行点云融合和构建三维人脸网格时,三维人脸网格中存在着漂浮点,影响视觉效果。本申请充分利用三维人脸网格中的各个点的拓扑顺序,采用深度优先搜索(DFS)的方式寻找最大连通区域,将最大连通区域之外的漂浮点进行清除。如图11所示,左侧是存在漂浮点的三维人脸网格,右侧是清除漂浮点后的三维人脸网格。
上述实施例提供的方法也可以由服务器侧来执行,不一定限于移动终端来执行。比如,移动终端将采集到的n个图像对发送给服务器,由服务器来完成三维人脸网格的重建,本申请实施例对上述方法的执行主体不加以限定。
图13示出了本申请一个示例性实施例提供的三维物体网格的生成方法的流程图。该方法可以由移动终端来执行,该方法包括:
步骤1301,采集三维物体的n个图像对,图像对包括彩色图像和深度图像;
三维物体可以是生物或非生物,也可以是植物或动物,还可以是卡通人物或虚构人物等。比如,三维物体是大猩猩。三维物体在真实世界中具有一定的形状或体积。
使用移动终端围绕三维物体的外部进行连续拍摄。示例性的,该连续拍摄是拍摄视频,或者按照预设频率进行照片连拍。
在一个实施例中,保持三维物体不动,使用移动终端围绕三维物体进行拍摄。比如,使用移动终端围绕三维物体进行扇形轨迹移动并进行拍摄,或者,使用移动终端围绕三维物体进行环形轨迹移动并进行拍摄。
在另一个实施例中,保持移动终端不动,由三维物体自行改变物体表面相对于移动终端的相对位置进行拍摄。比如,由三维物体自行在左、右、上、下方向上进行移动来进行拍摄。
每个拍摄时刻会同时拍摄彩色图像和深度图像。同一个拍摄时刻拍摄的彩色图像和深度图像,构成一个图像对。换句话说,每个图像对包括同一时刻拍摄的彩色图像和深度图像。图3示意性的示出了多个图像对32中的彩色图像,多个图像对32(彩色图像+深度图像)是从不同的拍摄角度对三维物体进行拍摄后得到的。
示例性的,彩色图像是红绿蓝(Red Green Blue,RGB)格式的彩色图像。深度(Depth,D)图像中的每个像素点存储有深度摄像头到场景中各个真实点的距离(深度)值。
示例性的,彩色图像和深度图像存储为两张关联的图像,比如采用拍摄时刻进行关联。或者,彩色图像和深度图像存储为同一张图像,比如该图像同时包含R、G、B、D四个通道。本申请实施例对彩色图像和深度图像的具体存储方式不加以限定。
步骤1302,根据彩色图像和深度图像提取图像对中的表面点云,表面点云包括三维物体的表面关键点;
对于每个图像对,通过对每个图像对中的彩色图像和深度图像中的表面特征点进行提取,能够得到每个图像对中的表面点云。表面特征点是三维物体的物体表面在图像对中形成的特征点。
表面点云是采用多个三维特征点来描述三维物体的三维数据。每个三维特征点的x坐标和y坐标由彩色图像来确定,每个三维特征点的z坐标由深度图像来确定。表面点云是在相机坐标系下的多个表面特征点的数据集。在不同的实施例中,每个表面特征点不仅包括x坐标、y坐标和z坐标,还可以包括其它信息,比如颜色值、分类值、强度值等等。表面点云是一个稀疏的结构。
表面点云中包括多个表面特征点,多个表面特征点中包括表面关键点。表面关键点是在多个表面特征点具有显著差异(显著特征或显著指示性)的点。
步骤1303,根据三维物体中的表面关键点在图像对中的位置,确定图像对的相机姿态;
对于每个图像对(n个图像对中的全部或部分),可从表面点云中提取出三维物体在彩色图像中的表面关键点。根据每个彩色图像中的表面关键点,计算出移动终端在采集该彩色图像(或图像对)时的相机姿态。
示例性的,以参考图像对(比如第一个图像对)的相机姿态为起始姿态或基准姿态,第i个图像对的相机姿态是相对于参考图像对的相机姿态。
在一个示例中,移动终端提取第i个图像对的彩色图像中的表面关键点,第i个图像对是n个图像对中的一个图像对,i为不大于n的整数;根据表面关键点在彩色图像中的横纵坐标以及在第i个图像对的深度图像中的深度值,得到表面关键点的三维坐标;根据表面关键点的三维坐标,计算第i个图像对相对于基准图像对的相机姿态,基准图像对是n个图像对中作为参考基准的一个图像对。
在一个示例中,移动终端根据第i个图像对中的表面关键点的三维坐标,以及基准图像对中的表面关键点的三维坐标,计算出第i个图像对相对于基准图像对的初始相机姿态;通过迭代最近点对初始相机姿态进行优化,得到优化后的相机姿态。
步骤1304,根据相机姿态将图像对中的物体点云融合至同一个三维空间中的多个体素块中;
示例性的,该三维空间是具有边界的立方体(volume)。立方体是采用体积元素(volumepixel,voxel)方式来描述三维物体的表面的三维数据。体积元素可简称为体素,是三维空间中的分割的最小单位。立方体中的体素可类比为二维空间中的像素。
移动终端将多个图像对(n个图像对的全部或子集)中的表面点云均融合至同一个三维空间中的多个体素块,得到该三维物体的立方体。
在一个示例中,移动终端根据相机姿态,从n个图像对中筛选得到m个图像对,m为不大于n的正整数,根据相机姿态将m个图像对对应的表面点云融合至同一个三维空间中的多个体素块中。
在一个示例中,在从n个图像对中筛选出m个图像对时,将n个图像对中的每个图像对的相机姿态转换为欧拉角;按照设定的角度间隔或帧间隔,从n个图像对中筛选出m个图像对。
在一个示例中,在筛选前,移动终端将相邻图像对的欧拉角进行平滑滤波,得到平滑处理后的欧拉角。
步骤1305,根据三维空间中的多个体素块生成三维物体的三维物体网格。
移动终端根据三维空间中的多个体素块,生成三维物体的三维物体网格。
在一个示例中,移动终端根据三维空间中每个体素块的数值,插值生成多个体素块中的等势面;连接多个体素块中的等势面,得到三维物体的三维表面网格。
在一个示例中,移动终端寻找三维物体的三维表面网格上的最大连通区域;根据最大连通区域清除三维表面网格上的漂浮点。
三维表面网格是采用多面体的顶点与多边形所形成的集合来描述三维物体的表面的三维数据。该多边形是三角形、四边形或者其它的简单凸多边形中的至少一种,以便简化渲染过程。可选地,三维表面网格也可以包括带有空洞的普通多边形组成的三维数据。本申请对此不加以限定。
综上所述,本实施例提供的方法,针对移动端的三维表面网格的重建,提供了一整套完整的管线(pipeline)重建流程,由于整个管线重建流程中基于表面关键点的相机姿态计算,以及基于相机姿态进行的帧筛选均可以较大程度减少移动端的计算量,因此能够实现在移动端对三维表面网格的快速重建,易于在移动终端中的应用程序中基于重建的三维表面网格进行应用推广。
本实施例提供的方法,相比于传统的基于RGBD数据的三维表面重建,由于本实施例只筛选了少数的几个图像对来进行三维表面重建,这几张图像对之间的距离很大,没法直接使用传统的ICP算法进行计算。通过landmark检测出的表面关键点计算出初始的相机姿态作为初值,进而采用ICP算法来优化得到最终的相机姿态可以解决这个问题。
本实施例提供的方法,还通过对重建后的三维表面网格之外的漂浮点进行清除,能够得到视觉效果更优的三维表面网格。
需要说明的是,上述步骤2051和步骤2052的网格重建过程也可以使用泊松重建过程。
图14是本申请一个示例性实施例提供的三维人脸网格的生成装置的框图。
该装置包括:
采集模块1410,用于采集目标人脸的n个图像对,每个所述图像对包括彩色图像和深度图像;
提取模块1420,用于根据所述彩色图像和所述深度图像提取所述图像对中的人脸点云,所述人脸点云包括所述目标人脸的人脸关键点;
确定模块1430,用于基于人脸关键点确定每个所述图像对的相机姿态;
融合模块1440,用于根据所述相机姿态将所述图像对中的人脸点云融合至同一个三维空间中的多个体素块;
生成模块1450,用于根据所述三维空间中的多个体素块生成所述目标人脸的三维人脸网格。
在一个可选的实施例中,所述确定模块1430,用于提取第i个图像对的彩色图像中的人脸关键点,所述第i个图像对是所述n个图像对中的一个图像对,i为不大于n的整数;根据所述人脸关键点在所述彩色图像中的横纵坐标以及在所述第i个图像对的深度图像中的深度值,得到所述人脸关键点的三维坐标;根据所述人脸关键点的三维坐标,计算所述第i个图像对相对于基准图像对的相机姿态,所述基准图像对是所述n个图像对中作为参考基准的一个图像对。
在一个可选的实施例中,所述确定模块1430,用于根据所述第i个图像对中的人脸关键点的三维坐标,以及所述基准图像对中的人脸关键点的三维坐标,计算出所述第i个图像对相对于所述基准图像对的初始相机姿态;通过迭代最近点对所述初始相机姿态进行优化,得到优化后的相机姿态。
在一个可选的实施例中,所述确定模块1430,用于调用人脸关键点检测器landmark提取所述第i个图像对的彩色图像中的人脸关键点。
在一个可选的实施例中,所述装置还包括:筛选模块1460,如图15所示,所述筛选模块1460用于根据所述相机姿态,从n个图像对中筛选得到m个图像对,m为不大于n的正整数;所述融合模块1450用于根据所述相机姿态将所述m个图像对对应的人脸点云融合至同一个三维空间中的多个体素块中。
在一个可选的实施例中,所述筛选模块1460,用于将所述n个图像对中的每个图像对的相机姿态转换为欧拉角;按照设定的角度间隔或帧间隔,从所述n个图像对中筛选出m个图像对。
在一个可选的实施例中,所述装置还包括:平滑模块1470,如图15所示。所述平滑模块1460,用于将相邻图像对的所述欧拉角进行平滑滤波,得到平滑处理后的欧拉角。
在一个可选的实施例中,所述装置还包括:初始化模块1480,如图15所示。所述初始化模块1480,用于根据所述n个图像对中的人脸特征点的三维坐标的取值范围,初始化所述立方体的大小和体素块个数。
在一个可选的实施例中,所述融合模块1450,用于根据所述相机姿态将所述人脸点云,融合至位于世界坐标系的同一个三维空间中;
其中,所述三维空间包括多个体素块,所述体素块中的数值为正数时代表所述体素块位于三维人脸表面的后面,所述体素块中的数值为负数时代表所述体素块位于所述三维人脸表面的前面,所述体素块中的数值的绝对值大小表征距离所述三维人脸表面的远近,所述体素块中的数值为零值时代表所述体素块位于所述三维人脸表面上。
在一个可选的实施例中,所述生成模块1460,用于根据所述三维空间中每个体素块的数值,插值生成多个体素块中的等势面;连接所述多个体素块中的所述等势面,得到所述目标人脸的三维人脸网格。
在一个可选的实施例中,所述装置还包括:去噪模块1490,如图15所示。所述去噪模块1490,用于寻找所述目标人脸的所述三维人脸网格上的最大连通区域;根据所述最大连通区域清除所述三维人脸网格上的漂浮点。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图14还可以是本申请一个示例性实施例提供的三维表面网格的生成装置的框图。该装置包括:
采集模块1410,用于采集三维物体的n个图像对,每个所述图像对包括彩色图像和深度图像;
提取模块1420,用于根据所述彩色图像和所述深度图像提取所述图像对中的表面点云,所述表面点云包括所述三维物体的表面关键点;
确定模块1430,用于根据三维物体的表面关键点确定每个所述图像对的相机姿态;
融合模块1440,用于根据所述相机姿态将所述图像对中的表面点云融合至同一个三维空间中的多个体素块;
生成模块1450,用于根据所述三维空间中的多个体素块生成所述三维物体的三维表面网格。
在一个可选的实施例中,所述确定模块1430,用于提取第i个图像对的彩色图像中的表面关键点,所述第i个图像对是所述n个图像对中的一个图像对,i为不大于n的整数;根据所述表面关键点在所述彩色图像中的横纵坐标以及在所述第i个图像对的深度图像中的深度值,得到所述表面关键点的三维坐标;根据所述表面关键点的三维坐标,计算所述第i个图像对相对于基准图像对的相机姿态,所述基准图像对是所述n个图像对中作为参考基准的一个图像对。
在一个可选的实施例中,所述确定模块1430,用于根据所述第i个图像对中的表面关键点的三维坐标,以及所述基准图像对中的表面关键点的三维坐标,计算出所述第i个图像对相对于所述基准图像对的初始相机姿态;通过迭代最近点对所述初始相机姿态进行优化,得到优化后的相机姿态。
在一个可选的实施例中,所述确定模块1430,用于调用表面关键点检测器landmark提取所述第i个图像对的彩色图像中的表面关键点。
在一个可选的实施例中,所述装置还包括:筛选模块1460,如图15所示,所述筛选模块1460用于根据所述相机姿态,从n个图像对中筛选得到m个图像对,m为不大于n的正整数;所述融合模块1450用于根据所述相机姿态将所述m个图像对对应的表面点云融合至同一个三维空间中的多个体素块中。
在一个可选的实施例中,所述筛选模块1460,用于将所述n个图像对中的每个图像对的相机姿态转换为欧拉角;按照设定的角度间隔或帧间隔,从所述n个图像对中筛选出m个图像对。
在一个可选的实施例中,所述装置还包括:平滑模块1470,如图15所示。所述平滑模块1460,用于将相邻图像对的所述欧拉角进行平滑滤波,得到平滑处理后的欧拉角。
在一个可选的实施例中,所述装置还包括:初始化模块1480,如图15所示。所述初始化模块1480,用于根据所述n个图像对中的表面特征点的三维坐标的取值范围,初始化所述立方体的大小和体素块个数。
在一个可选的实施例中,所述融合模块1450,用于根据所述相机姿态将所述表面点云,融合至位于世界坐标系的同一个三维空间中;
其中,所述三维空间包括多个体素块,所述体素块中的数值为正数时代表所述体素块位于三维表面表面的后面,所述体素块中的数值为负数时代表所述体素块位于所述三维表面表面的前面,所述体素块中的数值的绝对值大小表征距离所述三维表面表面的远近,所述体素块中的数值为零值时代表所述体素块位于所述三维表面表面上。
在一个可选的实施例中,所述生成模块1460,用于根据所述三维空间中每个体素块的数值,插值生成多个体素块中的等势面;连接所述多个体素块中的所述等势面,得到所述三维物体的三维表面网格。
在一个可选的实施例中,所述装置还包括:去噪模块1490,如图15所示。所述去噪模块1490,用于寻找所述三维物体的所述三维表面网格上的最大连通区域;根据所述最大连通区域清除所述三维表面网格上的漂浮点。
图16示出了本申请一个实施例提供的计算机设备1600的结构框图。该计算机设备1600可以是手机、平板电脑、可穿戴设备、多媒体播放设备、相机等电子设备。
通常,计算机设备1600包括有:处理器1601和存储器1602。
处理器1601可以包括一个或多个处理核心,比如4核心处理器、16核心处理器等。处理器1601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1602中的非暂态的计算机可读存储介质用于存储至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集用于被处理器1601所执行以实现本申请中方法实施例提供的三维人脸网格的生成方法或者语音互动方法。
在一些实施例中,计算机设备1600还可选包括有:外围设备接口1603和至少一个外围设备。处理器1601、存储器1602和外围设备接口1603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1603相连。具体地,外围设备可以包括:射频电路1604、触摸显示屏1605、摄像头1606、音频电路1607、定位组件1608和电源1609中的至少一种。
其中,摄像头1606可以是彩色摄像头+深度摄像头形成的三维摄像头。
本领域技术人员可以理解,图16中示出的结构并不构成对计算机设备1600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时以实现上述三维人脸网格的生成方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时以实现上述三维人脸网格的生成方法。
可选地,该计算机可读存储介质可以包括:ROM、RAM、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random AccessMemory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品被计算机设备的处理器执行时,用于实现上述三维人脸网格的生成方法。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品被终端的处理器执行时,用于实现上述三维人脸网格的生成方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种三维人脸网格的生成方法,其特征在于,所述方法包括:
采集目标人脸的n个图像对,所述图像对包括彩色图像和深度图像,n为正整数;
根据所述彩色图像和所述深度图像提取所述图像对中的人脸点云,所述人脸点云包括所述目标人脸的人脸关键点;
提取第i个图像对的彩色图像中的人脸关键点,所述第i个图像对是所述n个图像对中的一个图像对,i为不大于n的整数;
根据所述人脸关键点在所述彩色图像中的横纵坐标以及在所述第i个图像对的深度图像中的深度值,得到所述第i个图像对中的人脸关键点的三维坐标;
根据所述第i个图像对中的人脸关键点的三维坐标,以及基准图像对中的人脸关键点的三维坐标,计算所述第i个图像对相对于所述基准图像对的相机姿态,所述基准图像对是所述n个图像对中作为参考基准的一个图像对,所述基准图像对为具有完整人脸的第一个彩色图像所对应的图像对;
根据每个图像对的相机姿态,从n个图像对中筛选得到m个图像对,m为不大于n的正整数;
根据所述n个图像对中的人脸特征点的三维坐标的取值范围,在世界坐标系中初始化三维空间的大小和体素块个数;
根据所述相机姿态,将所述m个图像对对应的人脸点云融合至同一个所述三维空间中的多个体素块中;
根据所述三维空间中的多个体素块生成所述目标人脸的三维人脸网格。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第i个图像对中的人脸关键点的三维坐标,以及所述基准图像对中的人脸关键点的三维坐标,计算出所述第i个图像对相对于所述基准图像对的初始相机姿态;
通过迭代最近点对所述初始相机姿态进行优化,得到优化后的相机姿态。
3.根据权利要求1所述的方法,其特征在于,所述根据每个图像对的相机姿态,从n个图像对中筛选得到m个图像对,包括:
将所述n个图像对中的每个图像对的相机姿态转换为欧拉角;
按照设定的角度间隔或帧间隔,从所述n个图像对中筛选出m个图像对。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将相邻图像对的所述欧拉角进行平滑滤波,得到平滑处理后的欧拉角。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述相机姿态将所述人脸点云,融合至位于世界坐标系的同一个三维空间中的多个体素块;
其中,所述体素块中的数值为正数时代表所述体素块位于三维人脸表面的后面,所述体素块中的数值为负数时代表所述体素块位于所述三维人脸表面的前面,所述体素块中的数值的绝对值大小表征距离所述三维人脸表面的远近,所述体素块中的数值为零值时代表所述体素块位于所述三维人脸表面上。
6.根据权利要求1所述的方法,其特征在于,所述根据所述三维空间中的多个体素块生成所述目标人脸的三维人脸网格,包括:
根据所述三维空间中每个体素块的数值,插值生成所述多个体素块中的等势面;
连接所述多个体素块中的所述等势面,得到所述目标人脸的三维人脸网格。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
寻找所述目标人脸的所述三维人脸网格上的最大连通区域;
根据所述最大连通区域清除所述三维人脸网格上的漂浮点。
8.一种三维人脸网格的生成装置,其特征在于,所述装置包括:
采集模块,用于采集目标人脸的n个图像对,所述图像对包括彩色图像和深度图像;
提取模块,用于根据所述彩色图像和所述深度图像提取所述图像对中的人脸点云,所述人脸点云包括所述目标人脸的人脸关键点;
确定模块,用于提取第i个图像对的彩色图像中的人脸关键点,所述第i个图像对是所述n个图像对中的一个图像对,i为不大于n的整数;根据所述人脸关键点在所述彩色图像中的横纵坐标以及在所述第i个图像对的深度图像中的深度值,得到所述第i个图像对中的人脸关键点的三维坐标;根据所述第i个图像对中的人脸关键点的三维坐标,以及基准图像对中的人脸关键点的三维坐标,计算所述第i个图像对相对于所述基准图像对的相机姿态,所述基准图像对是所述n个图像对中作为参考基准的一个图像对,所述基准图像对为具有完整人脸的第一个彩色图像所对应的图像对;
筛选模块,用于根据每个图像对的相机姿态,从n个图像对中筛选得到m个图像对,m为不大于n的正整数;
初始化模块,用于根据所述n个图像对中的人脸特征点的三维坐标的取值范围,在世界坐标系中初始化三维空间的大小和体素块个数;
融合模块,用于根据所述相机姿态,将所述m个图像对对应的人脸点云融合至同一个所述三维空间中的多个体素块;
生成模块,用于根据所述三维空间中的多个体素块生成所述目标人脸的三维人脸网格。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010015651.3A CN111243093B (zh) | 2020-01-07 | 2020-01-07 | 三维人脸网格的生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010015651.3A CN111243093B (zh) | 2020-01-07 | 2020-01-07 | 三维人脸网格的生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111243093A CN111243093A (zh) | 2020-06-05 |
CN111243093B true CN111243093B (zh) | 2023-05-12 |
Family
ID=70872456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010015651.3A Active CN111243093B (zh) | 2020-01-07 | 2020-01-07 | 三维人脸网格的生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111243093B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111710035B (zh) * | 2020-07-16 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 人脸重建方法、装置、计算机设备及存储介质 |
CN112749611B (zh) * | 2020-07-27 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 人脸点云模型生成方法及装置、存储介质、电子设备 |
CN111783748B (zh) * | 2020-08-12 | 2023-07-14 | 汉王科技股份有限公司 | 人脸识别方法、装置、电子设备及存储介质 |
CN112085835B (zh) * | 2020-08-31 | 2024-03-22 | 腾讯科技(深圳)有限公司 | 三维卡通人脸生成方法、装置、电子设备及存储介质 |
CN112037320B (zh) * | 2020-09-01 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 一种图像处理方法、装置、设备以及计算机可读存储介质 |
CN112132971B (zh) * | 2020-09-08 | 2024-04-23 | 合肥的卢深视科技有限公司 | 三维人体建模方法、装置、电子设备和存储介质 |
CN112232143B (zh) * | 2020-09-27 | 2021-09-28 | 广州云从人工智能技术有限公司 | 一种人脸点云优化方法、装置、机器可读介质及设备 |
CN112489102A (zh) * | 2020-11-30 | 2021-03-12 | 北京百度网讯科技有限公司 | 三维重建方法、装置、设备以及存储介质 |
CN112562083A (zh) * | 2020-12-10 | 2021-03-26 | 上海影创信息科技有限公司 | 基于深度相机的静态人像三维重建与动态人脸融合方法 |
CN113544744A (zh) * | 2021-06-01 | 2021-10-22 | 华为技术有限公司 | 一种头部姿态测量方法及装置 |
CN113516781A (zh) * | 2021-07-12 | 2021-10-19 | 先临三维科技股份有限公司 | 一种三维动态跟踪方法、装置、电子设备和存储介质 |
CN114639115B (zh) * | 2022-02-21 | 2024-07-05 | 北京航空航天大学 | 一种人体关键点与激光雷达融合的3d行人检测方法 |
CN114283195B (zh) * | 2022-03-03 | 2022-07-26 | 荣耀终端有限公司 | 生成动态图像的方法、电子设备及可读存储介质 |
CN115131507B (zh) * | 2022-07-27 | 2023-06-16 | 北京百度网讯科技有限公司 | 图像处理方法、图像处理设备和元宇宙三维重建方法 |
CN115984461A (zh) * | 2022-12-12 | 2023-04-18 | 广州紫为云科技有限公司 | 一种基于rgbd相机的人脸三维关键点检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109215117A (zh) * | 2018-09-12 | 2019-01-15 | 北京航空航天大学青岛研究院 | 基于ORB与U-net的花卉三维重建方法 |
WO2019101113A1 (zh) * | 2017-11-22 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 一种图像融合方法及其设备、存储介质、终端 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3179407B1 (en) * | 2015-12-07 | 2022-07-13 | Dassault Systèmes | Recognition of a 3d modeled object from a 2d image |
CN106803267B (zh) * | 2017-01-10 | 2020-04-14 | 西安电子科技大学 | 基于Kinect的室内场景三维重建方法 |
CN107833270B (zh) * | 2017-09-28 | 2020-07-03 | 浙江大学 | 基于深度相机的实时物体三维重建方法 |
CN108416840B (zh) * | 2018-03-14 | 2020-02-18 | 大连理工大学 | 一种基于单目相机的三维场景稠密重建方法 |
CN110060336A (zh) * | 2019-04-24 | 2019-07-26 | 北京华捷艾米科技有限公司 | 三维人脸重建方法、装置、介质以及设备 |
CN110363858B (zh) * | 2019-06-18 | 2022-07-01 | 新拓三维技术(深圳)有限公司 | 一种三维人脸重建方法及系统 |
CN110349152A (zh) * | 2019-07-16 | 2019-10-18 | 广州图普网络科技有限公司 | 人脸图像质量检测方法及装置 |
-
2020
- 2020-01-07 CN CN202010015651.3A patent/CN111243093B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019101113A1 (zh) * | 2017-11-22 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 一种图像融合方法及其设备、存储介质、终端 |
CN109215117A (zh) * | 2018-09-12 | 2019-01-15 | 北京航空航天大学青岛研究院 | 基于ORB与U-net的花卉三维重建方法 |
Non-Patent Citations (2)
Title |
---|
TSDF-based Change Detection for Consistent Long-Term Dense Reconstruction and Dynamic object Discovery;Marius Fehr 等;《2017 IEEE International Conference on Robotics and Automation(ICRA)》;20170724;第5237-5244页 * |
基于单个深度相机的带纹理人脸实时重建算法;朱新山等;《传感器与微系统》;20170820;第36卷(第08期);第126-129页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111243093A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111243093B (zh) | 三维人脸网格的生成方法、装置、设备及存储介质 | |
CN111325823B (zh) | 人脸纹理图像的获取方法、装置、设备及存储介质 | |
JP7250709B2 (ja) | 畳み込み画像変換を使用して同時位置特定およびマッピングを実施する方法およびシステム | |
WO2021093453A1 (zh) | 三维表情基的生成方法、语音互动方法、装置及介质 | |
CN109325437B (zh) | 图像处理方法、装置和系统 | |
CN111598998B (zh) | 三维虚拟模型重建方法、装置、计算机设备和存储介质 | |
CN111710036B (zh) | 三维人脸模型的构建方法、装置、设备及存储介质 | |
EP3992919B1 (en) | Three-dimensional facial model generation method and apparatus, device, and medium | |
CN109697688A (zh) | 一种用于图像处理的方法和装置 | |
US11928778B2 (en) | Method for human body model reconstruction and reconstruction system | |
WO2019196745A1 (zh) | 人脸建模方法及相关产品 | |
CN113012293A (zh) | 石刻模型构建方法、装置、设备及存储介质 | |
CN108921926A (zh) | 一种基于单张图像的端到端三维人脸重建方法 | |
JP2022550948A (ja) | 3次元顔モデル生成方法、装置、コンピュータデバイス及びコンピュータプログラム | |
WO2023093739A1 (zh) | 一种多视图三维重建的方法 | |
WO2023071790A1 (zh) | 目标对象的姿态检测方法、装置、设备及存储介质 | |
CN107194985A (zh) | 一种面向大场景的三维可视化方法及装置 | |
US20200057778A1 (en) | Depth image pose search with a bootstrapped-created database | |
CN115439607A (zh) | 一种三维重建方法、装置、电子设备及存储介质 | |
CN113593001A (zh) | 目标对象三维重建方法、装置、计算机设备和存储介质 | |
CN110751097A (zh) | 一种半监督的三维点云手势关键点检测方法 | |
CN111862278A (zh) | 一种动画获得方法、装置、电子设备及存储介质 | |
CN116452757B (zh) | 一种复杂场景下的人体表面重建方法和系统 | |
CN116342831A (zh) | 三维场景重建方法、装置、计算机设备及存储介质 | |
CN113570535B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024414 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |