本发明涉及3d成像算法领域,尤其涉及一种基于2d图像进行3d人像重建的方法。
背景技术:
随着社会的发展,科技的进步,三维人脸重建技术逐渐成为计算机视觉领域的一热门技术。三维人脸重建技术的发展不仅可满足对自动身份鉴别的实际需求,同时,对于推动基于人脸识别的认知科学,生理学,心理学的相关领域的发展有着重要的意义。
目前,三维人脸重建技术主要为使用三维深度扫描仪来捕获人脸的三维位置信息,经拟合处理构造人脸三维模型。基于深度扫描仪的方法可以得到精确的结果,但需要特殊的硬件设备和高昂的费用,大大限制了三维人脸重建技术的应用。
技术实现要素:
本发明为解决现有的三维人脸重建技术所用设备昂贵不便推广使用的问题,所采用的技术方案是:一种3d人像重建方法,包括如下步骤:
采集2d图像上人像的人脸关键点;
计算人脸五官与脸宽之间的比例关系;
输入3d人脸点云数据,得到四边形关系的第一3d空间点云;
在第一3d空间点云中确认人脸关键点;
对第一3d空间点云分割,并进行局部拉伸或变形;
将第一3d空间点云转变为点位置更合理的第二3d空间点云;
计算第二3d空间点云中的点与2d点之间的uv坐标映射关系,输出人脸3d图像。
进一步改进为,所述采集二维图片上人像的人脸关键点,包括:
采用人脸关键点定位算法,标定出人脸19个特征点。
进一步改进为,所述计算人脸五官与脸宽之间的比例关系,包括:
以人脸宽度为基准,根据标定好的特征点计算人脸鼻尖到脸的垂直距离和脸宽的比例关系和鼻尖到耳朵的垂直距离和脸宽的比例关系;
以人脸脸宽为基准,计算出人脸左右眼睛宽度,鼻子长度,宽度,嘴巴长度,高度以及左右脸各个点到正脸图像中线的垂直距离和和脸宽的比例关系。
进一步改进为,所述输入3d人脸点云数据,得到四边形关系的第一3d空间点云,包括:
输入3d人脸点云数据,采用delauny三角剖分的方法计算出3d人脸点云中每个点之间的相对三角剖分关系,并生成三角面片的三维模型;
依据三角面片之间的关系把3d人脸点云重新转变为四边形关系生成空间若干个点的第一3d空间点云。
进一步改进为,所述在第一3d空间点云中确认人脸关键点,包括:
把第一3d空间点云的xy坐标进行对齐,形成正面人脸;
人为查找并手工标定的方法,确定已经转变为四边形关系的3d点云上的19个关键点,并以手工标定的鼻尖点为(0,0,0)。
进一步改进为,所述对第一3d空间点云分割,并进行局部拉伸或压缩,包括:
依托于手工标定的19个关键点把3d人脸点云数据分割为空间四边形形式的8个部分;
根据2d图像的人脸五官与脸宽之间的比例关系对第一3d空间点云人脸局部拉伸,并对第一3d空间点云的z方向进行尺度距离的变化。
进一步改进为,所述将第一3d空间点云转变为点更密集的第二3d空间点云,包括:
再次计算第一3d空间点云的delauny三角剖分关系,并生成三角面片的三维模型;
依据三角面片之间的关系把第一3d空间点云重新转变为四边形关系生成空间店位置更合理的第二3d空间点云。
进一步改进为,所述计算第二3d空间点云中的点与2d点之间的uv坐标映射关系,输出人脸3d图像,包括:
计算第二3d空间点云中的点与2d点之间的uv坐标映射关系;
uv贴图输出人脸3d图像。
本发明提供了一种电子设备,所述电子设备包括处理器和存储器,所述处理器与所述存储器相连接,所述处理器可运行所述存储器中存储的程序以执行上述任一项所述方法中的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一项所述方法中的步骤。
本发明的有益效果是:
本发明提供的3d人像重建方法,相较于常规繁冗的算法更加简单,而且使用常规计算机设备便能实现,大大降低了三维人脸重建所用设备的成本,便于三维人脸重建技术的推广使用。并且在计算中比目前的流行深度学习,大数据统计等建模方案降低了一到两个数量级,大大提高了建模速度和建模效果,可以实现实时三维人像建模。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的3d人像重建方法流程图;
图2是本发明的2d图像上人脸特征点示意图;
图3是本发明的第一3d空间点云示意图;
图4是本发明的第一3d空间点云示意图;
图5是本发明的第一3d空间点云上人脸关键点示意图;
图6是本发明的第一3d空间点云分割示意图;
图7是本发明的在x、y、z方向变化后点云示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
在发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述发明和简化描述,而不是指示或暗示所指的装置或组件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个组件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在发明中的具体含义。
如图1所示,本发明提供了一种3d人像重建方法,包括如下步骤:
a,采集2d图像上人像的人脸关键点;
b,计算人脸五官与脸宽之间的比例关系;
c,输入3d人脸点云数据,得到四边形关系的第一3d空间点云;
d,在第一3d空间点云中确认人脸关键点;
e,对第一3d空间点云分割,并进行局部拉伸或变形;
f,将第一3d空间点云转变为点位置更合理的第二3d空间点云;
g,计算第二3d空间点云中的点与2d点之间的uv坐标映射关系,输出人脸3d图像。
本发明提供的3d人像重建方法,能够快速逼真建模,生成速度快,有别于目前流行的gmm,是一种深度学习大数据训练的三维建模方案。
本发明提供的3d人像重建方法,相较于常规繁冗的算法更加简单,而且使用常规计算机设备便能实现,大大降低了三维人脸重建所用设备的成本,便于三维人脸重建技术的推广使用。并且在计算中比目前的流行深度学习,大数据统计等建模方案降低了一到两个数量级,大大提高了建模速度和建模效果,可以实现实时三维人像建模。
如图2所示,进一步改进为,所述采集二维图片上人像的人脸关键点,包括:
采用人脸关键点定位算法,标定出人脸19个特征点。
进一步改进为,所述计算人脸五官与脸宽之间的比例关系,包括:
以人脸宽度为基准,根据标定好的特征点计算人脸鼻尖到脸的垂直距离和脸宽的比例关系和鼻尖到耳朵的垂直距离和脸宽的比例关系;
以人脸脸宽为基准,计算出人脸左右眼睛宽度,鼻子长度,宽度,嘴巴长度,高度以及左右脸各个点到正脸图像中线的垂直距离和和脸宽的比例关系。
如图3所示,进一步改进为,所述输入3d人脸点云数据,得到四边形关系的第一3d空间点云,包括:
输入3d人脸点云数据,采用delauny三角剖分的方法计算出3d人脸点云中每个点之间的相对三角剖分关系,并生成三角面片的三维模型;
如图4所示,采用如下算法,依据三角面片之间的关系把3d人脸点云重新转变为四边形关系生成空间若干个点的第一3d空间点云,本实施例中第一3d空间点云由200*200个点构成;
①输入空间3d点云pointstri,和delauny三角关系描述f,正面看过去的话,xrow和ycol方向上要拟合出来的点数,则经过计算要输出的点数为xrow*ycol个3d点,每个点有[x,y,z,label]组成,其中x,y,z是空间坐标点,label是标志位。
②根据输出点云,求出在x轴方向和y轴方向上的最大外包围框。
③根据包围框和xrow和ycol在包围框里的x,y方向平均生成xrow*ycol个3d点,记作pointsxy,此时每个点都有了x,y坐标值。
④把输入的3d点云pointstri根据三角关系f直接投射在xy轴平面上。
⑤计算pointsxy是否都落在pointstri,和delauny三角关系描述f生成的三角面片中,如果在三角面片中pointsxy对应点标志位设置为true,如果没有落在三角面片中则标志位设置为false。此时pointsxy每个点都有了x,y值和标志位值,下面计算对应的z值。
⑥pointsxy中标志位为true的需要计算z值,false不需要计算z值。
⑦对于需要计算z值的点,首先确定它在哪个三角面片的投影三角形里,计算这个点与对应三角面片的三个定点的距离,记作l1,l2,l3,设三角面片三个顶点的z值分别为z1,z2,z3,则要求的这个定点的z值为:z=(z1*(l1) z2*(l2) z3*(l3))/(l1 l2 l3)。
如图5所示,进一步改进为,所述在第一3d空间点云中确认人脸关键点,包括:
把第一3d空间点云的xy坐标进行对齐,形成正面人脸;
人为查找并手工标定的方法,确定已经转变为四边形关系的3d点云上的19个关键点,并以手工标定的鼻尖点为(0,0,0)。
如图6所示,进一步改进为,对所述第一3d空间点云分割,并进行局部拉伸或压缩,包括:
依托于手工标定的19个关键点把3d人脸点云数据分割为空间四边形形式的8个部分;
如图7所示,根据2d图像的人脸五官与脸宽之间的比例关系对第一3d空间点云人脸局部拉伸(x,y方向上的形变),并对第一3d空间点云的z方向进行尺度距离的变化。
进一步改进为,所述将第一3d空间点云转变为点更密集的第二3d空间点云,包括:
再次计算第一3d空间点云的delauny三角剖分关系,并生成三角面片的三维模型;
依据三角面片之间的关系把第一3d空间点云重新转变为四边形关系生成空间点位置更合理的第二3d空间点云。本实施例中的第二3d空间点云由500*500个点构成。
进一步改进为,所述计算第二3d空间点云中的点与2d点之间的uv坐标映射关系,输出人脸3d图像,包括:
计算第二3d空间点云中的点与2d点之间的uv坐标映射关系;
uv贴图输出人脸3d图像。
本发明提供了一种电子设备,所述电子设备包括处理器和存储器,所述处理器与所述存储器相连接,所述处理器可运行所述存储器中存储的程序以执行上述任一项所述方法中的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一项所述方法中的步骤。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
1.一种3d人像重建方法,其特征在于,包括如下步骤:
采集2d图像上人像的人脸关键点;
计算人脸五官与脸宽之间的比例关系;
输入3d人脸点云数据,得到四边形关系的第一3d空间点云;
在第一3d空间点云中确认人脸关键点;
对第一3d空间点云分割,并进行局部拉伸或变形;
将第一3d空间点云转变为点位置更合理的第二3d空间点云;
计算第二3d空间点云中的点与2d点之间的uv坐标映射关系,输出人脸3d图像。
2.根据权利要求1所述的3d人像重建方法,其特征在于,所述采集二维图片上人像的人脸关键点,包括:
采用人脸关键点定位算法,标定出人脸19个特征点。
3.根据权利要求2所述的3d人像重建方法,其特征在于,所述计算人脸五官与脸宽之间的比例关系,包括:
以人脸宽度为基准,根据标定好的特征点计算人脸鼻尖到脸的垂直距离和脸宽的比例关系和鼻尖到耳朵的垂直距离和脸宽的比例关系;
以人脸脸宽为基准,计算出人脸左右眼睛宽度,鼻子长度,宽度,嘴巴长度,高度以及左右脸各个点到正脸图像中线的垂直距离和和脸宽的比例关系。
4.根据权利要求3所述的3d人像重建方法,其特征在于,所述输入3d人脸点云数据,得到四边形关系的第一3d空间点云,包括:
输入3d人脸点云数据,采用delauny三角剖分的方法计算出3d人脸点云中每个点之间的相对三角剖分关系,并生成三角面片的三维模型;
依据三角面片之间的关系把3d人脸点云重新转变为四边形关系生成空间若干个点的第一3d空间点云。
5.根据权利要求4所述的3d人像重建方法,其特征在于,所述在第一3d空间点云中确认人脸关键点,包括:
把第一3d空间点云的xy坐标进行对齐,形成正面人脸;
人为查找并手工标定的方法,确定已经转变为四边形关系的3d点云上的19个关键点,并以手工标定的鼻尖点为(0,0,0)。
6.根据权利要求5所述的3d人像重建方法,其特征在于,所述对第一3d空间点云分割,并进行局部拉伸或压缩,包括:
依托于手工标定的19个关键点把3d人脸点云数据分割为空间四边形形式的8个部分;
根据2d图像的人脸五官与脸宽之间的比例关系对第一3d空间点云人脸局部拉伸,并对第一3d空间点云的z方向进行尺度距离的变化。
7.根据权利要求6所述的3d人像重建方法,其特征在于,所述将第一3d空间点云转变为点更密集的第二3d空间点云,包括:
再次计算第一3d空间点云的delauny三角剖分关系,并生成三角面片的三维模型;
依据三角面片之间的关系把第一3d空间点云重新转变为四边形关系生成空间点位置更合理的第二3d空间点云。
8.根据权利要求7所述的3d人像重建方法,其特征在于,所述计算第二3d空间点云中的点与2d点之间的uv坐标映射关系,输出人脸3d图像,包括:
计算第二3d空间点云中的点与2d点之间的uv坐标映射关系;
uv贴图输出人脸3d图像。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器与所述存储器相连接,所述处理器可运行所述存储器中存储的程序以执行权利要求1-8任一项所述方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1-8任一项所述方法中的步骤。
技术总结