一种三维模型的纹理获取方法、装置、设备及介质转让专利

申请号 : CN202010027225.1

文献号 : CN110895823B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林祥凯

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例所提供的三维模型的纹理获取方法,包括:获取目标物基于多个角度生成的至少两个三维网络,至少两个三维网络中分别包括目标物的点云信息和色彩信息的第一对应关系,以及目标物的第一相机位姿;根据第一相机位姿获取至少两个三维网络中用于记录目标物同一位置的三维点之间的偏移量;根据偏移量更新第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;根据第二对应关系获取目标物的三维模型的表面色彩纹理。本申请还提供一种装置、设备及介质,通过对点云信息和色彩信息的对应关系进行更新,实现了三维模型中三维点和像素点之间更精确细微的对齐,提升了三维模型纹理贴图的效果。

权利要求 :

1.一种三维模型的纹理获取方法,其特征在于,包括:获取目标物基于多个角度生成的至少两个三维网络,所述至少两个三维网络中分别包括所述目标物的点云信息和色彩信息的第一对应关系,以及所述目标物的第一相机位姿,所述第一相机位姿用于表示生成所述至少两个三维网络时所述目标物相对参考位置的位移;

根据所述第一相机位姿将所述至少两个三维网络分别移动到同一角度;

获取距离第一点最近的第二点,所述第一点与所述第二点分别为两个不同三维网络中的三维点;

获取所述第一点与所述第二点之间的偏移作为偏移量;

根据所述偏移量更新所述第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;

根据所述第二对应关系获取所述目标物的三维模型的表面色彩纹理。

2.根据权利要求1所述的方法,其特征在于,所述获取距离第一点最近的第二点,包括:遍历第二网络中的所有点,所述第二网络为所述至少两个三维网络中的一个;

分别获取所述第二网络中所有点的三维坐标;

根据所述三维坐标分别计算所述第二网络中每个点距离所述第一点的距离,所述第一点所在的三维网络为第一网络;

确定所述第二网络中距离所述第一点最近的点为所述第二点。

3.根据权利要求1所述的方法,其特征在于,所述获取距离第一点最近的第二点,包括:通过邻近算法KNN获取与所述第一点距离最近的所述第二点。

4.根据权利要求1所述的方法,其特征在于,所述根据所述偏移量更新所述第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系,包括:根据所述第一对应关系获取与所述点云信息中的三维点对应的所述色彩信息中的像素点;

通过所述偏移量对所述点云信息中的三维点进行偏移;

获取所述点云信息中偏移后的三维点与所述像素点的对应关系为所述第二对应关系。

5.根据权利要求4所述的方法,其特征在于,所述偏移量包括用于表示旋转操作的旋转矩阵R和用于表示平移操作的平移矩阵T,则所述通过所述偏移量对所述点云信息中的三维点进行偏移,包括:执行以下公式:D1=(R|T)×D2;

其中,所述D1为一个三维网络中的点云信息,所述D2为另一个三维网络中的点云信息。

6.根据权利要求4所述的方法,其特征在于,所述根据所述第二对应关系获取所述目标物的三维模型的表面色彩纹理,包括:根据所述第二对应关系获取所述三维模型的所述三维点所分别对应的所述像素点;

将所述像素点覆盖在对应的所述三维点上,以在所述三维模型的表面实现纹理贴图。

7.根据权利要求1至6任一所述的方法,其特征在于,所述获取目标物基于多个角度生成的至少两个三维网络,包括:获取目标物在多个拍摄角度上的至少两个初始图像,所述至少两个初始图像分别记录有所述目标物的深度信息,所述深度信息用于记录所述目标物的各个点与所述参考位置之间的距离,所述参考位置为拍摄所述目标物的拍摄镜头所在的位置;

根据每个初始图像中的深度信息在三维空间内反投影,得到所述每个初始图像对应的第一点云信息,所述第一点云信息中的各个点为用于记录所述目标物的三维点;

获取所述三维点与所述色彩信息中的像素点的第一对应关系;

根据所述第一点云信息与所述第一对应关系生成所述三维网络。

8.一种三维模型的纹理获取装置,其特征在于,包括:第一获取单元,所述第一获取单元用于获取目标物基于多个角度生成的至少两个三维网络,所述至少两个三维网络中分别包括所述目标物的点云信息和色彩信息的第一对应关系,以及所述目标物的第一相机位姿,所述第一相机位姿用于表示生成所述至少两个三维网络时所述目标物相对参考位置的位移;

第二获取单元,所述第二获取单元用于:

根据所述第一相机位姿将所述第一获取单元获取的所述至少两个三维网络分别移动到同一角度;

获取距离第一点最近的第二点,所述第一点与所述第二点分别为两个不同三维网络中的三维点;

获取所述第一点与所述第二点之间的偏移作为偏移量;

更新单元,所述更新单元用于根据所述第二获取单元获取的所述偏移量更新所述第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;

第三获取单元,所述第三获取单元用于根据所述更新单元得到的所述第二对应关系获取所述目标物的三维模型的表面色彩纹理。

9.根据权利要求8所述的装置,其特征在于,所述第二获取单元还用于:遍历第二网络中的所有点,所述第二网络为所述至少两个三维网络中的一个;

分别获取所述第二网络中所有点的三维坐标;

根据所述三维坐标分别计算所述第二网络中每个点距离所述第一点的距离,所述第一点所在的三维网络为第一网络;

确定所述第二网络中距离所述第一点最近的点为所述第二点。

10.根据权利要求8所述的装置,其特征在于,所述第二获取单元还用于:通过邻近算法KNN获取与所述第一点距离最近的所述第二点。

11.根据权利要求8所述的装置,其特征在于,所述更新单元还用于:根据所述第一对应关系获取与所述点云信息中的三维点对应的所述色彩信息中的像素点;

通过所述偏移量对所述点云信息中的三维点进行偏移;

获取所述点云信息中偏移后的三维点与所述像素点的对应关系为所述第二对应关系。

12.一种计算机设备,其特征在于,所述计算机设备包括:交互装置、输入/输出(I/O)接口、处理器和存储器,所述存储器中存储有程序指令;

所述交互装置用于获取用户输入的操作指令;

所述处理器用于执行存储器中存储的程序指令,执行如权利要求1-7中任意一项所述的方法。

13.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1-7中任意一项所述的方法。

说明书 :

一种三维模型的纹理获取方法、装置、设备及介质

技术领域

[0001] 本发明涉及电子技术领域,更具体地说,涉及一种三维模型的纹理获取方法、装置、设备及介质。

背景技术

[0002] 人脸重建技术,即通过一张或多张的2D人脸图像重建出人脸3D模型的技术。
[0003] 具体工作时,用户根据终端指示拍摄多张不同角度的2D图片,拍摄得到的2D人脸图像包括图片的色彩信息和深度信息,在三维重建的过程中,从深度信息反投影出三维点,所投影出的三维点与色彩信息中的像素点具有对应关系;对来自不同2D图像投影出的三维点进行融合后,即可得到重建出的人脸三维模型,最后,根据对应关系,将人脸三维模型中各个三维点所对应的像素点贴在三维模型上,即可实现三维模型的纹理贴图,使得三维模型变为彩色。
[0004] 在上述纹理贴图过程中,经过三维点融合的步骤后,三维点与像素点之间的对应关系不一定准确,其次,即使对应关系特别准,因为人脸不是一个刚体,在各个时刻拍摄的图像上不一定能保证完全静止(可能出现眨眼撇嘴),三维重建时会平滑掉这些误差,导致三维模型根据对应关系无法与像素点对齐。如果对应关系出现了偏差,比如三维模型中鼻尖上的点对应到了色彩信息中嘴巴上的像素点,在纹理贴图过程中,那就会把嘴巴上的颜色对应到三维模型的鼻尖上,导致三维模型中错误的纹理。

发明内容

[0005] 有鉴于此,为解决上述问题,本发明提供的技术方案如下:
[0006] 一种三维模型的纹理获取方法,包括:
[0007] 获取目标物基于多个角度生成的至少两个三维网络,该至少两个三维网络中分别包括该目标物的点云信息和色彩信息的第一对应关系,以及该目标物的第一相机位姿,该第一相机位姿用于表示生成该至少两个三维网络时该目标物相对参考位置的位移;
[0008] 根据该第一相机位姿将该至少两个三维网络分别移动到同一角度;
[0009] 获取距离第一点最近的第二点,该第一点与该第二点分别为两个不同三维网络中的三维点;
[0010] 获取该第一点与该第二点之间的偏移作为偏移量;
[0011] 根据该偏移量更新该第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;
[0012] 根据该第二对应关系获取该目标物的三维模型的表面色彩纹理。
[0013] 一种三维模型的纹理获取装置,包括:
[0014] 第一获取单元,所述第一获取单元用于获取目标物基于多个角度生成的至少两个三维网络,所述至少两个三维网络中分别包括所述目标物的点云信息和色彩信息的第一对应关系,以及所述目标物的第一相机位姿,所述第一相机位姿用于表示生成所述至少两个三维网络时所述目标物相对参考位置的位移;
[0015] 第二获取单元,所述第二获取单元用于:
[0016] 根据所述第一相机位姿将所述至少两个三维网络分别移动到同一角度;
[0017] 获取距离第一点最近的第二点,所述第一点与所述第二点分别为两个不同三维网络中的三维点;
[0018] 获取所述第一点与所述第二点之间的偏移作为所述偏移量;
[0019] 更新单元,所述更新单元用于根据所述第二获取单元获取的所述偏移量更新所述第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;
[0020] 第三获取单元,所述第三获取单元用于根据所述更新单元得到的所述第二对应关系获取所述目标物的三维模型的表面色彩纹理。
[0021] 可选地,该第二获取单元还用于:
[0022] 遍历第二网络中的所有点,该第二网络为该至少两个三维网络中的一个;
[0023] 分别获取该第二网络中所有点的三维坐标;
[0024] 根据该三维坐标分别计算该第二网络中每个点距离该第一点的距离,该第一点所在的三维网络为第一网络;
[0025] 确定该第二网络中距离该第一点最近的点为该第二点。
[0026] 可选地,该第二获取单元还用于:
[0027] 通过邻近算法KNN获取与该第一点距离最近的该第二点。
[0028] 可选地,该更新单元还用于:
[0029] 根据该第一对应关系获取与该点云信息中的三维点对应的该色彩信息中的像素点;
[0030] 通过该偏移量对该点云信息中的三维点进行偏移;
[0031] 获取该点云信息中偏移后的三维点与该像素点的对应关系为该第二对应关系。
[0032] 可选地,该偏移量包括用于表示旋转操作的旋转矩阵R和用于表示平移操作的平移矩阵T,则该更新单元还用于:
[0033] 执行以下公式:D1=(R|T)×D2;
[0034] 其中,该D1为一个三维网络中的点云信息,该D2为另一个三维网络中的信息。
[0035] 可选地,该第三获取单元还用于:
[0036] 根据该第二对应关系获取该三维模型的该各个三维点所分别对应的该像素点;
[0037] 将该各个像素点覆盖在对应的该三维点上,以在该三维模型的表面实现纹理贴图。
[0038] 可选地,该第一获取单元还用于:
[0039] 获取目标物在不同拍摄角度上的至少两个初始图像,该至少两个初始图像分别记录有该目标物的深度信息,该深度信息用于记录该目标物的各个点与该参考位置之间的距离,该参考位置为拍摄该目标物的拍摄镜头所在的位置;
[0040] 根据每个初始图像中的深度信息在三维空间内反投影,得到该每个初始图像对应的第一点云信息,该第一点云信息中的各个点为用于记录该目标物的三维点;
[0041] 获取该三维点与该色彩信息中的像素点的第一对应关系;
[0042] 根据该第一点云信息与该第一对应关系生成该三维网络。
[0043] 一种计算机设备所述计算机设备包括:交互装置、输入/输出(I/O)接口、处理器和存储器,该存储器中存储有程序指令;该交互装置用于获取用户输入的操作指令;该处理器用于执行存储器中存储的程序指令,执行如上述任意一项所述的方法。
[0044] 一种计算机可读存储介质,包括指令,当该指令在计算机设备上运行时,使得该计算机设备执行如上述任意一项所述的方法。
[0045] 本申请实施例所提供的三维模型的纹理获取方法,包括:获取目标物基于多个角度生成的至少两个三维网络,至少两个三维网络中分别包括目标物的点云信息和色彩信息的第一对应关系,以及目标物的第一相机位姿,第一相机位姿用于表示生成至少两个三维网络时目标物相对参考位置的位移;根据第一相机位姿获取至少两个三维网络中用于记录目标物同一位置的三维点之间的偏移量;根据偏移量更新第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;根据第二对应关系获取目标物的三维模型的表面色彩纹理。通过对点云信息和色彩信息的对应关系进行更新,实现了三维模型中三维点和像素点之间更精确细微的对齐,提升了三维模型纹理贴图的效果。

附图说明

[0046] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0047] 图1为本申请实施例所提供的三维模型的纹理获取方法的一个实施例的流程图;
[0048] 图2为本申请实施例所提供的三维模型的纹理获取方法的另一个实施例的流程图;
[0049] 图3为本申请实施例所提供的三维模型的纹理获取方法的另一个实施例的示意图;
[0050] 图4为本申请实施例所提供的三维模型的纹理获取方法的另一个实施例的示意图;
[0051] 图5为本申请实施例所提供的三维模型的纹理获取方法的另一个实施例的流程图;
[0052] 图6为本申请实施例所提供的三维模型的纹理获取方法的另一个实施例的流程图;
[0053] 图7为本申请实施例所提供的三维模型的纹理获取方法中色彩图像和深度图像的示意图;
[0054] 图8为本申请实施例所提供的三维模型的纹理获取方法中第一点云信息的示意图;
[0055] 图9为现有技术中像素点网络覆盖用户面部的对齐效果图;
[0056] 图10为本申请实施例所提供的三维模型的纹理获取方法中像素点网络覆盖用户面部的对齐效果图;
[0057] 图11为本申请实施例所提供的计算机设备的示意图;
[0058] 图12为本申请实施例所提供的三维模型的纹理获取装置的示意图。

具体实施方式

[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060] 本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0061] 人脸重建技术,即通过一张或多张的2D人脸图像重建出人脸3D模型的技术。
[0062] 具体工作时,用户根据终端指示拍摄多张不同角度的2D图片,拍摄得到的2D人脸图像包括图片的色彩信息和深度信息,在三维重建的过程中,从深度信息反投影出三维点,所投影出的三维点与色彩信息中的像素点具有对应关系;对来自不同2D图像投影出的三维点进行融合后,即可得到重建出的人脸三维模型,最后,根据对应关系,将人脸三维模型中各个三维点所对应的像素点贴在三维模型上,即可实现三维模型的纹理贴图,使得三维模型变为彩色。
[0063] 在上述纹理贴图过程中,经过三维点融合的步骤后,三维点与像素点之间的对应关系不一定准确,其次,即使对应关系特别准,因为人脸不是一个刚体,在各个时刻拍摄的图像上不一定能保证完全静止(可能出现眨眼撇嘴),三维重建时会平滑掉这些误差,导致三维模型根据对应关系无法与像素点对齐。如果对应关系出现了偏差,比如三维模型中鼻尖上的点对应到了色彩信息中嘴巴上的像素点,在纹理贴图过程中,那就会把嘴巴上的颜色对应到三维模型的鼻尖上,导致三维模型中错误的纹理。
[0064] 因此,为了解决上述问题,本申请实施例提供一种三维模型的纹理获取方法,能够对点云信息和色彩信息的对应关系进行更新,从而实现纹理信息与三维模型之间更精细的对齐。为便于理解,以下结合附图,对本申请实施例所提供的方法进行详细说明。
[0065] 需要说明的是,本申请实施例所提供的方法可以应用于各种不同的目标物,例如人脸、玩具或汽车等,本申请实施例并不进行限定,为便于理解,本申请实施例以目标物为人脸为例进行说明。
[0066] 请参阅图1,如图1所示,本申请实施例所提供的三维模型的纹理获取方法的实施例一包括以下步骤。
[0067] 101、获取目标物基于多个角度生成的至少两个三维网络。
[0068] 本实施例中,三维网络的具体生成方式如下:
[0069] 1、获取目标物在多个拍摄角度上的至少两个初始图像。
[0070] 本实施例中,初始图像从不同角度拍摄的目标物的图像,例如用户在终端的指导下拍摄的不同角度的人脸图像。该拍摄静态包括深度镜头,从而使得至少两个初始图像分别记录有人脸的深度信息,深度信息用于记录目标物的各个点与拍摄镜头之间的距离。
[0071] 可选地,初始图像还可以是通过扫描等其他方式获得,对此本申请实施例并不进行限定。
[0072] 2、根据每个初始图像中的深度信息在三维空间内反投影,得到每个初始图像对应的第一点云信息。
[0073] 本实施例中,第一点云信息中的各个点为用于记录目标物的三维点,例如,目标物为人脸时,第一点云信息记录了人脸表面上的多个三维点。
[0074] 3、获取三维点与色彩信息中的像素点的第一对应关系。
[0075] 本实施例中,当生成初始图像时,记录有深度信息的点与像素点是一一对应的,当深度信息投影为三维点后,即记录有深度信息的点在三维空间内被投影为三维点,因此,三维点既然保持着与像素点的对应关系,即第一对应关系。
[0076] 4、根据第一点云信息与第一对应关系生成三维网络。
[0077] 本实施例中,生成的三维网络中,包括第一点云信息,以及第一点云信息中的三维点与像素点之间的第一对应关系。
[0078] 因此,在步骤101中,所获取的至少两个三维网络中分别包括目标物的点云信息和色彩信息的第一对应关系(即三维点与像素点的对应关系),以及目标物的第一相机位姿,第一相机位姿用于表示生成不同的三维网络时目标物相对拍摄镜头的移动。
[0079] 102、根据第一相机位姿将至少两个三维网络分别移动到同一角度。
[0080] 本实施例中,每个三维网络都是基于一个初始图像生成的三维点云集合,因此能够支持360度转动,根据三维网络中所记录的相机位姿,能够知道每个三维网络的角度情况,因此,根据第一相机位姿,将多个三维网络移动到同一角度下,以执行后续步骤。具体地,可以先设置一个三维网络为第一帧,例如,将用户正脸图像所生成的三维网络作为第一帧,之后将其他三维网络统一移动到第一帧所在的角度,该移动的具体操作方式可以是旋转或平移中的至少一种。
[0081] 103、获取距离第一点最近的第二点。
[0082] 本实施例中,第一点与第二点分别为两个不同三维网络中的三维点,例如,第一点为第一网络中的点,第二点为第二网络中的点,第一网络与第二网络为两个不同的三维网络。由于所有三维网络都处于一个角度,那么距离一个点最近的属于另一个三维网络的点,就大概率可能是用于记录目标物同一位置的三维点。
[0083] 104、获取第一点与第二点之间的偏移作为偏移量。
[0084] 本实施例中,当第二点为距离第一点最近的点,且二者不重叠时,获取两个点之间的偏移,该偏移可以是第一点与第二点之间发生相对旋转或平移中的至少一种,获取第一点与第二点之间的偏移即可获得该偏移量。
[0085] 本实施例中,由于生成三维网络时,初始图像的拍摄角度不同,因此,对于记录目标物同一位置的三维点,可能会具有一定的偏差。例如,正脸图片生成的三维网络中记录用户鼻尖的点A,和侧脸图片生成的三维网络中记录用户鼻尖的点B,当旋转到同一角度时,点A与点B之间由于偏差,可能不会完全重合,此时,点A和点B之间的偏差即为两个点之间的偏移量。
[0086] 105、根据偏移量更新第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系。
[0087] 本实施例中,由于记录同一位置的两个点之间存在偏移量,导致在后续点云融合的过程中,该点的位置会发生改变,例如,如上述例子所述,在正脸图片和侧脸图片所生成的三维网络中,分别用于记录用户鼻尖的点A和点B之间具有偏移量,则点云融合后,正脸图片所生成的三维网络中点A会因偏移量而发生改变,此时点A可能不再位于用户鼻尖的位置上,而根据原有的第一对应关系,点A仍然对应用户鼻尖的像素点,因此,需要根据偏移量,对点A所对应的像素点进行更新,得到第二对应关系。
[0088] 106、根据第二对应关系获取目标物的三维模型的表面色彩纹理。
[0089] 本实施例中,第二对应关系是根据不同三维网络之间三维点的偏移量,所生成的更新后的对应关系,更贴近三维模型和像素点的实际对应情况,此时,根据第二对应关系来获取三维模型的表面的像素点,以得到三维模型的表面色彩纹理。具体过程可以为:
[0090] 1、根据第二对应关系,获取三维模型的各个三维点所分别对应的像素点。
[0091] 本实施例中,在第二对应关系中,三维点与像素点是意义对应的,因此根据第二对应关系,即可获得三维网络中每个三维点所对应的像素点。
[0092] 2、将各个像素点覆盖在对应的三维点上,以在三维模型的表面实现纹理贴图。
[0093] 将所获取到的像素点贴在对应的三维点上,即可实现三维模型表面的纹理贴图,使得三维模型具备色彩。
[0094] 本申请实施例所提供的三维模型的纹理获取方法,包括:获取目标物基于不同拍摄角度生成的至少两个三维网络,至少两个三维网络中分别包括目标物的点云信息和色彩信息的第一对应关系,以及目标物的第一相机位姿,第一相机位姿用于表示生成不同的三维网络时目标物相对拍摄镜头的移动;根据第一相机位姿获取不同三维网络中用于记录目标物同一位置的三维点之间的偏移量;根据偏移量更新第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;根据第二对应关系获取目标物的三维模型的表面色彩纹理。通过对点云信息和色彩信息的对应关系进行更新,实现了三维模型中三维点和像素点之间更精确细微的对齐,提升了三维模型纹理贴图的效果。
[0095] 需要说明的是,由于不同拍摄角度下生成的三维网络之间有所偏差,因此才需要获取上述偏移量,上述通过找最近点的方式获取偏移量,对于找最近点的具体获取方式,本申请实施例提供一种更具体的实施方式,以下结合附图进行详细说明。
[0096] 请参阅图2,如图2所示,本申请实施例所提供的三维模型的纹理获取方法的实施例二包括以下步骤。
[0097] 201、获取目标物基于多个角度生成的至少两个三维网络。
[0098] 本实施例中,本步骤可参阅上述步骤101,此处不再赘述。
[0099] 202、根据第一相机位姿将至少两个三维网络分别移动到同一角度。
[0100] 本实施例中,本步骤可参阅上述步骤102,此处不再赘述,在完成步骤202后,用户可根据需要,执行下述步骤203或204中的任意一个。
[0101] 203、遍历所有坐标点,通过三维坐标计算距离后排序找到距离第一点最近的第二点。
[0102] 204、通过邻近算法KNN找到距离第一点最近的第二点。
[0103] 步骤205至207可参阅上述步骤104至106,此处不再赘述。
[0104] 本实施例所提供的方法,通过寻找最近点的方式来获取不同三维网络之间记录目标物同一位置的点,从而精确地得到不同三维网络之间的偏移量,为后续基于该偏移量更新对应关系提供了精确的基础。从而能够提供点云信息和色彩信息对应关系的精确性。
[0105] 需要说明的是,在上述实施例二中,对于获取距离第一点最近的第二点的具体实现方式,可以通过多种方法,包括但不限于:一、遍历所有坐标点,通过三维坐标计算距离后排序实现;二、通过邻近算法KNN实现,为便于,以下对此两种情况进行详细说明。
[0106] 一、遍历所有坐标点,通过三维坐标计算距离后排序实现。
[0107] 请参阅图3,如图3所示,本申请实施例所提供的三维模型的纹理获取方法的实施例三包括以下步骤。
[0108] 步骤301至302可参阅上述步骤201至202,此处不再赘述。
[0109] 303、遍历第二网络中的所有点。
[0110] 本实施例中,第二网络为至少两个三维网络中的一个,逐个获取第二网络中的三维点,以实现对第二网络中所有点的遍历。
[0111] 304、分别获取第二网络中所有点的三维坐标。
[0112] 本实施例中,对于所获取到的第二网络中的坐标点,分别获取每个坐标点的三维坐标值(x,y,z)。
[0113] 305、根据三维坐标分别计算第二网络中每个点距离第一点的距离。
[0114] 本实施例中,第一点所在的三维网络为第一网络,即第二点与第一点属于两个不同的三维网络中的点,根据三维坐标的坐标值,可以分别计算出第二网络中的每个点距离与第一网络中的第一点之间的距离。
[0115] 306、确定第二网络中距离第一点最近的点为第二点。
[0116] 本实施例中,根据距离计算结果进行排序,即可根据排序结果,获得第二网络中距离第一点最近的一个点作为第二点,从而通过遍历的方式找到了第一网络中距离第一点最近的点,循环以上方式,对第一网络中的每个点进行相同操作,即可获得第二网络中距离第一网络中每个点最近的点。
[0117] 需要说明的是,上述步骤也可以针对多个三维网络进行,上述实施例只是以其中一个三维网络为例子来进行说明。
[0118] 后续步骤307至309可参阅上述步骤204至206,此处不再赘述。
[0119] 本实施例中,通过遍历坐标点之后根据坐标值来获取最近点的方式,能够非常准确地找到距离一个点最近的另一个点,同时,由于坐标值能够提供准确的精度,后续步骤中,还可以根据坐标值准确地计算偏移量,从而实现了点云信息和色彩信息之间对应关系的准确更新。
[0120] 需要说明的是,上述实施例三所提供的方式虽然精度较高,但是遍历三维点的方式对算力有较高要求,同时也会需要较高的计算时间,因此,为了解决此问题,本申请实施例提供另一种实现方式。
[0121] 二、通过邻近算法KNN实现,为便于,以下对此两种情况进行详细说明。
[0122] 请参阅图4,如图4所示,本申请实施例所提供的三维模型的纹理获取方法的实施例四包括以下步骤。
[0123] 步骤401至402可参阅上述步骤201至202,此处不再赘述。
[0124] 403、通过邻近算法KNN获取与第一点距离最近的第二点。
[0125] 本实施例中,KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该算法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于本申请实施例所涉及的点云信息处理这样的类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
[0126] 后续步骤404至406可参阅上述步骤204至206,此处不再赘述。
[0127] 本实施例中,通过KNN算法来执行最近点的查找,能够快速地在第二网络中找到与第一网络中第一点距离最近的第二点。从而节省了算力资源,提高了三维模型的纹理获取方法的实现效率。
[0128] 需要说明的是,在本申请实施例所提供的方法中,在初始状态下,主要涉及以下两组对应关系。
[0129] 一、第一对应关系。初始图像中,深度图与彩色图有对应关系,具体为深度图中记录有深度信息的点与彩色图中的像素点之间的对应关系,深度图中记录有深度信息的点在三维空间中投影为点云信息后,点云信息中的三维点与彩色图中的像素点之间的关系即为第一对应关系。
[0130] 二、偏移量对应关系。对于目标物从不同角度拍摄的初始图像,最终得到的三维网络之间具有一定的偏差,不同三维网络之间记录目标物同一位置的三维点之间会具有一定的偏移量,例如第一网络与第二网络之间,点A与点B为记录用户鼻尖的点,但二者之间具有一定的偏移量,因此,点A和点B之间具有一个基于偏移量的对应关系。
[0131] 本申请实施例所提供的方法的核心思路在于,通过偏移量对应关系去更新第一对应关系,从而提升了像素点与三维点的对齐,在三维模型中实现更精准的纹理贴图。为便于理解,以下结合附图,对通过偏移量对应关系更新第一对应关系的过程,进行详细说明。
[0132] 请参阅图5,如图5所示,本申请实施例所提供的三维模型的纹理获取方法的实施例五包括以下步骤。
[0133] 步骤501至504可参阅上述201至204,可选地步骤501至504还可以是通过上述实施例三或实施例四种的方法实现的,对此本申请实施例并不进行限定。
[0134] 505、根据第一对应关系获取与点云信息中的三维点对应的色彩信息中的像素点。
[0135] 本实施例中,在获得初始的三维网络时,三维点与像素点之间就具备第一对应关系,此处直接获取即可。
[0136] 506、通过偏移量对点云信息中的三维点进行偏移。
[0137] 本实施例中,步骤506具体可以通过以下方式实现。
[0138] 1、获取偏移量中的旋转矩阵R和平移矩阵T。
[0139] 本实施例中,R用于表示三维网络之间的旋转操作,T用于表示三维网络之间的平移操作,从而可以通过该两个矩阵来量化 三维点之间的偏移量。
[0140] 2、通过执行公式D1=(R|T)×D2对三维点进行偏移。
[0141] 本实施例中,D1为一个三维网络中的点云信息,D2为另一个三维网络中的信息,通过偏移量,实现两个三维网络之间点云信息的偏移。
[0142] 507、获取点云信息中偏移后的三维点与像素点的对应关系为第二对应关系。
[0143] 本实施例中,经过偏移后的点,就是三维网络融合为三维模型后,三维点实际处于的位置,此时基于偏移后的三维点重新确认在该位置下该三维点与像素点之间的对应关系,从而将第一对应关系更新为第二对应关系,从而实现了三维点与像素点的对齐。
[0144] 需要说明的是,上述步骤503至507,可以不仅执行一次,还可以通过多次执行,反复迭代,其中,每迭代一次,对应关系就会更加准确,具体的迭代次数取决于用于所期望得到的精度。
[0145] 508、根据第二对应关系获取三维模型的各个三维点所分别对应的像素点。
[0146] 本实施例中,根据更新后的第二对应关系,即可获取三维模型中每个三维点所对应的像素点。
[0147] 509、将各个像素点覆盖在对应的三维点上。
[0148] 本实施例中,将像素点贴在对应的三维点上,即可在三维模型的表面实现纹理贴图,具体地,在实现纹理贴图过程中的具体技术细节,属于现有技术中技术方案,基于上述第二对应关系,本领域技术人员可以自主地选择纹理贴图的具体实现方式,对此本申请实施例并不进行限定。
[0149] 更进一步地,本申请实施例还提供一种三维模型的纹理获取方法在实际工作中的具体实现方式,为便于理解,以下结合附图进行详细说明。
[0150] 请参阅图6,如图6所示,本申请实施例所提供的三维模型的纹理获取方法的实施例六包括以下步骤。
[0151] 601、获取目标物在不同拍摄角度上的至少两个初始图像。
[0152] 本实施例中,请参阅图7,如图7展示的是获取的至少两个初始图像中用户侧脸的图像,分别包括彩色图701和深度图702,其中,彩色图701中记录有用于表现色彩纹理的像素点,深度图702中记录有用于表示深度信息的点,即图中的每个点距离拍摄镜头的距离。
[0153] 602、根据每个初始图像中的深度信息在三维空间内反投影,得到每个初始图像对应的第一点云信息。
[0154] 本实施例中,基于上述图7中的深度图702,在三维空间内投影得到第一点云信息801如图8所示。
[0155] 603、获取三维点与色彩信息中的像素点的第一对应关系。
[0156] 本实施例中,第一点云信息801与深度图702中的点是一一对应的,而深度图702中的点与彩色图701中的像素点又是一一对应的,因此根据该对应关系,即可获得三维点与色彩信息中的像素点的第一对应关系。
[0157] 604、根据第一点云信息与第一对应关系生成三维网络。
[0158] 本实施例中,所生成的三维网络即图8所示的网络,只不过该三维网络中还记录有第一对应关系和目标物的相机位姿信息。
[0159] 605、根据第一相机位姿获取不同三维网络中用于记录目标物同一位置的三维点之间的偏移量。
[0160] 本实施例中,偏移量的具体获取方式可参阅上述任意一种实施方式,此处不再赘述。
[0161] 606、根据偏移量更新第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系。
[0162] 本实施例中,基于第一对应关系进行更新得到第二更新关心的方式可参阅上述任意一种实施方式,此处不再赘述。
[0163] 607、根据第二对应关系获取目标物的三维模型的表面色彩纹理。
[0164] 本实施例中,本步骤可参阅上述任意一种实施方式,此处不再赘述。如图9所示,图9示出了在现有技术中,点云信息与彩色图中像素点所组成的像素点网络901的对应情况,如图9可见,由于没有对点云信息和色彩信息的对应关系进行更新,在鼻尖902等位置,由于三维模型在建模过程中进行了平滑处理,产生了一定的偏移,导致像素点网络901无法与这些区域对齐。经过本申请实施例所提供的方法处理后,如图10所示,可见,对于鼻尖区域
1002,像素点网络1001能够完整地覆盖,本申请实施例所提供的方法经过对应关系的更新后,像素点网络1001能够更准确地覆盖人脸的范围。
[0165] 本申请实施例所提供的三维模型的纹理获取方法,包括:获取目标物基于不同拍摄角度生成的至少两个三维网络,至少两个三维网络中分别包括目标物的点云信息和色彩信息的第一对应关系,以及目标物的第一相机位姿,第一相机位姿用于表示生成不同的三维网络时目标物相对拍摄镜头的移动;根据第一相机位姿获取不同三维网络中用于记录目标物同一位置的三维点之间的偏移量;根据偏移量更新第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;根据第二对应关系获取目标物的三维模型的表面色彩纹理。通过对点云信息和色彩信息的对应关系进行更新,实现了三维模型中三维点和像素点之间更精确细微的对齐,提升了三维模型纹理贴图的效果。
[0166] 上述对本申请实施例提供的方案进行了介绍。可以理解的是,计算机设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0167] 从硬件结构上来描述,上述方法可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。
[0168] 例如,上述方法均可以通过图11中的计算机设备来实现。图11为本申请实施例提供的计算机设备的硬件结构示意图。该计算机设备包括至少一个处理器1101,通信线路1102,存储器1103以及至少一个通信接口1104。
[0169] 处理器1101可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,服务器IC),或一个或多个用于控制本申请方案程序执行的集成电路。
[0170] 通信线路1102可包括一通路,在上述组件之间传送信息。
[0171] 通信接口1104,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。
[0172] 存储器1103可以是只读存储器(read-only memory,ROM) 或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM) 或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1102与处理器相连接。存储器也可以和处理器集成在一起。
[0173] 其中,存储器1103用于存储执行本申请方案的计算机执行指令,并由处理器1101来控制执行。处理器1101用于执行存储器1103中存储的计算机执行指令,从而实现本申请上述实施例提供的方法。
[0174] 可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
[0175] 在具体实现中,作为一种实施例,处理器1101可以包括一个或多个CPU,例如图11中的CPU0和CPU1。
[0176] 在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,例如图11中的处理器1101和处理器1107。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
[0177] 在具体实现中,作为一种实施例,计算机设备还可以包括输出设备1105和输入设备1106。输出设备1105和处理器1101通信,可以以多种方式来显示信息。例如,输出设备1105可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT) 显示设备,或投影仪(projector)等。输入设备1106和处理器1101通信,可以以多种方式接收用户的输入。例如,输入设备1106可以是鼠标、键盘、触摸屏设备或传感设备等。
[0178] 上述的计算机设备可以是一个通用设备或者是一个专用设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备或有图11中类似结构的设备。本申请实施例不限定计算机设备的类型。
[0179] 本申请实施例可以根据上述方法示例对存储设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0180] 比如,以采用集成的方式划分各个功能单元的情况下,图12示出了一种三维模型的纹理获取装置的示意图。
[0181] 如图12所示,本申请实施例提供的三维模型的纹理获取装置,包括:
[0182] 第一获取单元1201,该第一获取单元1201用于获取目标物基于多个角度生成的至少两个三维网络,该至少两个三维网络中分别包括该目标物的点云信息和色彩信息的第一对应关系,以及该目标物的第一相机位姿,该第一相机位姿用于表示生成该至少两个三维网络时该目标物相对参考位置的位移;
[0183] 第二获取单元1202,该第二获取单元1202用于:
[0184] 根据该第一相机位姿将该第一获取单元1201获取的该至少两个三维网络分别移动到同一角度;
[0185] 获取距离第一点最近的第二点,该第一点与该第二点分别为两个不同三维网络中的三维点;
[0186] 获取该第一点与该第二点之间的偏移作为该偏移量;
[0187] 更新单元1203,该更新单元1203用于根据该第二获取单元1202获取的该偏移量更新该第一对应关系,得到目标物的点云信息和色彩信息的第二对应关系;
[0188] 第三获取单元1204,该第三获取单元1204用于根据该更新单元1203得到的该第二对应关系获取该目标物的三维模型的表面色彩纹理。
[0189] 可选地,该第二获取单元1202还用于:
[0190] 遍历第二网络中的所有点,该第二网络为该至少两个三维网络中的一个;
[0191] 分别获取该第二网络中所有点的三维坐标;
[0192] 根据该三维坐标分别计算该第二网络中每个点距离该第一点的距离,该第一点所在的三维网络为第一网络;
[0193] 确定该第二网络中距离该第一点最近的点为该第二点。
[0194] 可选地,该第二获取单元1202还用于:
[0195] 通过邻近算法KNN获取与该第一点距离最近的该第二点。
[0196] 可选地,该更新单元1203还用于:
[0197] 根据该第一对应关系获取与该点云信息中的三维点对应的该色彩信息中的像素点;
[0198] 通过该偏移量对该点云信息中的三维点进行偏移;
[0199] 获取该点云信息中偏移后的三维点与该像素点的对应关系为该第二对应关系。
[0200] 可选地,该偏移量包括用于表示旋转操作的旋转矩阵R和用于表示平移操作的平移矩阵T,则该更新单元1203还用于:
[0201] 执行以下公式:D1=(R|T)×D2;
[0202] 其中,该D1为一个三维网络中的点云信息,该D2为另一个三维网络中的信息。
[0203] 可选地,该第三获取单元1204还用于:
[0204] 根据该第二对应关系获取该三维模型的该各个三维点所分别对应的该像素点;
[0205] 将该各个像素点覆盖在对应的该三维点上,以在该三维模型的表面实现纹理贴图。
[0206] 可选地,该第一获取单元1201还用于:
[0207] 获取目标物在不同拍摄角度上的至少两个初始图像,该至少两个初始图像分别记录有该目标物的深度信息,该深度信息用于记录该目标物的各个点与该参考位置之间的距离,该参考位置为拍摄该目标物的拍摄镜头所在的位置;
[0208] 根据每个初始图像中的深度信息在三维空间内反投影,得到该每个初始图像对应的第一点云信息,该第一点云信息中的各个点为用于记录该目标物的三维点;
[0209] 获取该三维点与该色彩信息中的像素点的第一对应关系;
[0210] 根据该第一点云信息与该第一对应关系生成该三维网络。
[0211] 进一步的,本发明实施例还提供一种计算机存储介质,包括指令,当该指令在计算机设备上运行时,使得该计算机设备执行上述方法。
[0212] 有关本申请实施例提供的计算机存储介质中存储的程序的详细描述可参照上述实施例,在此不做赘述。
[0213] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0214] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0215] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0216] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。