一种基于Dlib和OpenGL的视频人脸表情生成方法技术

技术编号:34790681 阅读:20 留言:0更新日期:2022-09-03 19:54
本发明专利技术涉及一种基于Dlib和OpenGL的视频人脸表情生成方法,该方法包括以下步骤:步骤S1、使用Dlib检测出人脸关键点;步骤S2、基于OpenCV的solvePnP从点对应中获取头部的6DOF姿势;步骤S3、基于人脸关键点,使用Blender建立3D人脸模型;步骤S4、动态修改3D人脸模型,实现图片和3D模型的人脸对齐。与现有技术相比,本发明专利技术生成的视频实时性较好、无延迟且可以替换成任意玩具的3D模型替换人脸。换成任意玩具的3D模型替换人脸。换成任意玩具的3D模型替换人脸。

【技术实现步骤摘要】
一种基于Dlib和OpenGL的视频人脸表情生成方法


[0001]本专利技术涉及人脸替换领域,尤其是涉及一种基于Dlib和OpenGL的视频人脸表情生成方法。

技术介绍

[0002]随着近年来深度学习技术的突破性迚展,人脸合成技术也经历着飞速的发展,在隐私保护、影视动画、娱乐商用等各个领域得到了广泛的应用。
[0003]目前,图像人脸合成任务的主要难点:
[0004]现有技术制作的细节丰富的高分辨率人脸图像已经具有比较理想的视觉效果。各类新颖的应用逐渐开始走迚人们的日常生活,但有些应用不仅对交换人脸的真实度与分辨率有要求,还要求交换人脸视频中的动作连贯平滑,或者对角度、动作以及环境光照变化具有高鲁棒性。虽然研究人员已经探索了各类方法来交换人脸视频,但这些方法大多基于图形学技术,需要大量的人工干预以及计算资源,而且过度依赖专业特效人员的预处理与后处理,导致人力成本巨大,价栺高昂。

技术实现思路

[0005]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供了一种实时性好、无延迟且可以替换成任意玩具的3D模型替换人脸的基于Dlib和OpenGL的视频人脸表情生成方法。
[0006]本专利技术的目的可以通过以下技术方案来实现:
[0007]根据本专利技术的第一方面,提供了一种基于Dlib和OpenGL的视频人脸表情生成方法,该方法包括以下步骤:
[0008]步骤S1、使用Dlib检测出人脸关键点;
[0009]步骤S2、基于OpenCV的solvePnP从点对应中获取头部姿态估计,并采用 OpenGL对头部姿态估计进行渲染;
[0010]步骤S3、基于人脸关键点,使用Blender建立3D人脸模型;
[0011]步骤S4、动态修改3D人脸模型,对齐图片和3D人脸模型中的人脸。
[0012]优选地,所述步骤S1包括以下子步骤:
[0013]步骤S11、计算已知图片中所有人脸对应的特征向量;
[0014]步骤S12、计算要识别的未知图片中所有人脸对应的特征向量;
[0015]步骤S13、计算人脸之间的欧式距离;
[0016]步骤S14、如果两张人脸之间的欧式距离小于设定的阈值,则认为是同一个人,否则认为不是同一个人。
[0017]优选地,所述人脸关键点数量为68。
[0018]优选地,所述步骤S2中基于OpenCV的solvePnP从点对应中获取头部姿态估计,包括以下子步骤:
[0019]步骤S21、基于对应关系,获取左眼、右眼、左耳、右耳、左嘴、右嘴和鼻子的2D位置;
[0020]步骤S22、基于头部的3D模型,使用MeshLab的“获取信息”选择器获得相同特征的3D点;
[0021]步骤S23、利用2D

3D对应关系,采用solvePnP获得3D对象的6DOF头部姿态。
[0022]优选地,所述步骤S3具体为:
[0023]根据连线人脸关键点得到一个低面数的人脸模型,使用Blender建立3D人脸模型BaseModel。
[0024]优选地,所述BaseModel的格式为obj。
[0025]优选地,所述步骤S4具体为:
[0026]动态修改BaseModel;找到相关点与人脸关键点的对应关系,通过替换对应行的数据动态修改模型,实现图片和3D模型的人脸对齐。
[0027]优选地,所述相关点为BaseModel中,以“v”开头的行对应地模型顶点,以“vt”开头的行对应的模型的贴图坐标点。
[0028]根据本专利技术的第二方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现任一项所述的方法。
[0029]根据本专利技术的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现任一项所述的方法。
[0030]与现有技术相比,本专利技术具有以下优点:
[0031]1)本专利技术基于Dlib和OpenGL生成的实时视频人脸3D模型动画表情,通过 OpenGL引擎作用,视频实时性较好、无延迟,且可以替换成任意玩具的3D模型替换人脸。
[0032]2)本专利技术的方法无需过多人工干预,且节约了计算资源。
附图说明
[0033]图1为本专利技术的方法流程图;
[0034]图2为使用Dlib检测出人脸的68个关键点示意图。
具体实施方式
[0035]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。
[0036]实施例
[0037]如图1所示,本实施例提供了一种基于Dlib和OpenGL的视频人脸表情生成方法,该方法包括以下步骤:
[0038]步骤S1、如图2所示,使用Dlib检测出68个人脸关键点,具体过程为包括:
[0039]步骤S11、计算已知图片中所有人脸对应的特征向量;
[0040]1)采用人脸关键点(face landmark)实现人脸对齐(face landmark),具体做法是:
[0041]利用最小二乘法求解当前人脸图像的关键点与预定义的统计得到的标准人脸关
键点之间的空间变换矩阵(一般是相似变换矩阵),再在人脸图像上进行该空间变换矩阵对应的变换;其中,人脸对齐后的图像为标准尺寸,而且减小了人脸姿态、尺度和偏移(相似变换矩阵中包含了旋转、尺度和平移参数)对人脸识别的影响;
[0042]2)将对齐后的人脸图像送入学习网络,得到图片中所有人脸对应的特征向量;
[0043]人脸特征向量:在深度学习中,分类层前面一层(将人脸识别当成分类任务) 或最后一层(将人脸识别当成度量学习任务)的特征映射(feature map),其维度由网络结构决定;
[0044]步骤S12、计算要识别的未知图片中所有人脸对应的特征向量;
[0045]步骤S13、计算人脸之间的欧式距离;
[0046]步骤S14、如果两张人脸之间的欧式距离小于设定的阈值,则认为是同一个人,否则认为不是同一个人。
[0047]步骤S2、基于OpenCV的solvePnP从点对应中获取头部的6DOF姿势,具体过程为:
[0048]步骤S21、基于对应关系,获取左眼、右眼、左耳、右耳、左嘴、右嘴和鼻子的2D位置;
[0049]步骤S22、基于头部的3D模型,使用MeshLab的“获取信息”选择器获得相同特征的3D点;
[0050]步骤S23、利用2D

3D对应关系,采用solvePnP获得3D对象的6DOF姿势;
[0051]步骤S3、基于人脸关键点,使用Blender建立3D人脸模型,具体为:...

【技术保护点】

【技术特征摘要】
1.一种基于Dlib和OpenGL的视频人脸表情生成方法,其特征在于,该方法包括以下步骤:步骤S1、使用Dlib检测出人脸关键点;步骤S2、基于OpenCV的solvePnP从点对应中获取头部姿态估计,并采用OpenGL对头部姿态估计进行渲染;步骤S3、基于人脸关键点,使用Blender建立3D人脸模型;步骤S4、动态修改3D人脸模型,对齐图片和3D人脸模型中的人脸。2.根据权利要求1所述的一种基于Dlib和OpenGL的视频人脸表情生成方法,其特征在于,所述步骤S1包括以下子步骤:步骤S11、计算已知图片中所有人脸对应的特征向量;步骤S12、计算要识别的未知图片中所有人脸对应的特征向量;步骤S13、计算人脸之间的欧式距离;步骤S14、如果两张人脸之间的欧式距离小于设定的阈值,则认为是同一个人,否则认为不是同一个人。3.根据权利要求1所述的一种基于Dlib和OpenGL的视频人脸表情生成方法,其特征在于,所述人脸关键点数量为68。4.根据权利要求1所述的一种基于Dlib和OpenGL的视频人脸表情生成方法,其特征在于,所述步骤S2中基于OpenCV的solvePnP从点对应中获取头部姿态估计,包括以下子步骤:步骤S21、基于对应关系,获取左眼、右眼、左耳、右耳、左嘴、右嘴和鼻子的2D位置;步骤S22、基于头部的3D模型,使用MeshLab的“获取信息”选择器获得相...

【专利技术属性】
技术研发人员:吴强季晓枫
申请(专利权)人:上海幻维数码创意科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1