一种图像处理的方法及装置与流程

文档序号:14796931发布日期:2018-06-29 19:28阅读:160来源:国知局

本发明涉及图像处理技术领域,特别涉及一种图像处理的方法及装置。



背景技术:

人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。

虽然随着人脸识别技术的发展,越来越多的应用到人们生活的方方面面,但是在某些领域的应用仍有待开发。



技术实现要素:

本发明实施例提供了一种图像处理的方法及装置,利用人脸识别算法实现拟人化三维模型面部表情跟随用户面部表情变化而变化,增强视频直播/视频录制过程中展示效果的趣味性,提升了用户体验。

第一方面,本申请提供一种图像处理的方法,该方法包括:

在视频直播或视频录制场景中,利用人脸识别算法获取用户面部表情数据;

获取所述视频直播场景中预设的拟人化三维模型的面部表情;

根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化。

优选的,所述利用人脸识别算法获取用户面部表情数据的步骤,具体包括:

利用人脸识别算法识别用户人脸后,标记用户人脸特定关键点位置;

根据所述特定关键点位置,检测所述特定关键点位置在预设时间的状态;

利用人脸识别算法获取用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向;

其中,所述用户面部表情数据包括所述特定关键点位置在预设时间内的状态、所述用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向。

优选的,所述特定关键点包括眼睛关键点、眉毛关键点和嘴巴关键点;

所述根据所述特定关键点位置,检测所述特定关键点位置在预设时间的状态的步骤,具体包括:

根据所述眼睛关键点计算用户眼睛睁开/闭合状态以及眼睛大小;

根据所述眉毛关键点计算用户眉毛挑动幅度;

根据所述嘴巴关键点计算用户嘴巴开合大小。

优选的,所述根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化的步骤,具体包括:

将所述拟人化三维模型的眼睛部分处理成透明;将所述拟人化三维模型嘴部的上下唇之间处理处一条透明的缝隙,以处理绘制牙齿;

利用欧拉角进行旋转所述用户人脸在三维空间中的朝向信息得到旋转变化矩阵;

获取预先制作的眼部纹理和嘴部纹理,并将所述眼部纹理和嘴部纹理贴合到所述拟人化三维模型面部;

根据所述用户眼睛睁开/闭合状态以及眼睛大小和所述用户眼睛的凝视方调整所述眼部纹理;根据所述嘴巴开合大小调整所述嘴部纹理;

将所述旋转变换矩阵应用到所述拟人化三维模型,用来改变所述拟人化三维模型的朝向,使得所述拟人化三维模型的面部表情跟随所述用户面部表情变化。

优选的,所述根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化的步骤,具体还包括:

在3D建模软件中,根据预设的预先制作好的骨骼动画随机套用生成小幅度的小动作和细微表情,并应用在所述拟人化三维模型的面部。

第二方面,本申请提供一种图像处理的装置,所述装置包括:

用户表情获取模块,用于在视频直播或视频录制场景中,利用人脸识别 算法获取用户面部表情数据;

模型表情获取模块,用于获取所述视频直播场景中预设的拟人化三维模型的面部表情;

调整模块,用于根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化。

优选的,所述用户表情获取模块具体包括:

标记单元,用于利用人脸识别算法识别用户人脸后,标记用户人脸特定关键点位置;

检测单元,用于根据所述特定关键点位置,检测所述特定关键点位置在预设时间的状态;

获取单元,用于利用人脸识别算法获取用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向;

其中,所述用户面部表情数据包括所述特定关键点位置在预设时间内的状态、所述用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向。

优选的,所述特定关键点包括眼睛关键点、眉毛关键点和嘴巴关键点;

所述检测单元具体用于:

根据所述眼睛关键点计算用户眼睛睁开/闭合状态以及眼睛大小;

根据所述眉毛关键点计算用户眉毛挑动幅度;

根据所述嘴巴关键点计算用户嘴巴开合大小。

优选的,所述调整模块具体用于:

将所述拟人化三维模型的眼睛部分处理成透明;将所述拟人化三维模型嘴部的上下唇之间处理处一条透明的缝隙,以处理绘制牙齿;

利用欧拉角进行旋转所述用户人脸在三维空间中的朝向信息得到旋转变化矩阵;

获取预先制作的眼部纹理和嘴部纹理,并将所述眼部纹理和嘴部纹理贴合到所述拟人化三维模型面部;

根据所述用户眼睛睁开/闭合状态以及眼睛大小和所述用户眼睛的凝视方调整所述眼部纹理;根据所述嘴巴开合大小调整所述嘴部纹理;

将所述旋转变换矩阵应用到所述拟人化三维模型,用来改变所述拟人化三维模型的朝向,使得所述拟人化三维模型的面部表情跟随所述用户面部表情变化。

优选的,所述调整模块具体还用于:

在3D建模软件中,根据预设的预先制作好的骨骼动画随机套用生成小幅度的小动作和细微表情,并应用在所述拟人化三维模型的面部。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例在视频直播或视频录制场景中,利用人脸识别算法获取用户面部表情数据;获取视频直播场景中预设的拟人化三维模型的面部表情;根据用户面部表情数据调整拟人化三维模型的面部表情,以使得拟人化三维模型的面部表情跟随所述用户面部表情而变化。本发明实施例中利用人脸识别算法实现拟人化三维模型面部表情跟随用户面部表情变化而变化,增强视频直播/视频录制过程中展示效果的趣味性,提升了用户体验。

附图说明

图1是本发明实施例中图像处理的方法的一个实施例示意图;

图2是图1所示实施例中步骤S102的一个实施例示意图;

图3是OpenFace人脸识别算法标记的68个脸部关键点示意图;

图4是本发明实施例中根据人脸在三维空间的朝向信息构建的虚拟三维方块的一个实施例示意图;

图5是本发明实施例中根据人脸识别算法识别用户眼睛的凝视方向的一个实施例示意图;

图6是图3所示实施例中步骤S1022的一个实施例示意图;

图7是图1所示实施例中步骤S103的一个实施例示意图;

图8是处理拟人化三维模型眼部纹理及嘴部纹理的一个实施例示意图;

图9是本发明实施例中图像处理的装置的一个实施例示意图;

图10是本发明实施例中图像处理的装置的另一个实施例示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面首先本发明实施例中图像处理的方法,该图像处理的方法应用于图像处理的装置中,该装置可以位于固定终端中,例如桌面电脑,服务器等,也可以位于移动终端中,例如手机、平板电脑等。

请参阅图1,本发明实施例中图像处理的方法一个实施例包括:

S101、在视频直播或视频录制场景中,利用人脸识别算法获取用户面部表情数据;

本发明实施例中,人脸识别算法可以是OpenFace人脸识别算法。OpenFace人脸识别算法是一种开源人脸识别及人脸关键点追踪算法,主要用来检测人脸区域,然后标记脸部特征关键点位置,OpenFace标记了脸部68个特征关键点,并且能够追踪眼球朝向和脸部朝向。

S102、获取所述视频直播场景中预设的拟人化三维模型的面部表情;

本发明实施例中,拟人化三维模型不限于虚拟动物、虚拟宠物,也可以是自然物件,如可以是一颗拟人化的白菜,也可以是一张拟人化的桌子,也可以是动漫中的虚拟三维人物或虚拟三维动物,具体此处不做限定。

获取所述视频直播场景中预设的拟人化三维模型的面部表情,可以是直接获取当前拟人化三维模型的面部表情的图像帧,该图像帧中包括拟人化三 维模型的面部表情。

S103、根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化。

需要说明的是,本发明实施例中获取用户表情数据及拟人化三维模型的表情数据可以是以帧为单位获取的,后续调整也可以是以帧为单位对应调整的。

本发明实施例在视频直播或视频录制场景中,利用人脸识别算法获取用户面部表情数据;获取视频直播场景中预设的拟人化三维模型的面部表情;根据用户面部表情数据调整拟人化三维模型的面部表情,以使得拟人化三维模型的面部表情跟随所述用户面部表情而变化。本发明实施例中利用人脸识别算法实现拟人化三维模型面部表情跟随用户面部表情变化而变化,增强视频直播/视频录制过程中展示效果的趣味性,提升了用户体验。

优选的,如图2所示,所述步骤S102具体可以包括:

S1021、利用人脸识别算法识别用户人脸后,标记用户人脸特定关键点位置;

本发明实施例中以OpenFace人脸识别算法为例说明,运用OpenFace人脸识别技术检测人脸之后,标记追踪人脸关键点位置。从这些点中记录下需要用到的特征点,以眼睛、眉毛、嘴巴三个五官特征举例说明。如图3是OpenFace标记的68个脸部关键点。

其中,图3中标记了脸部68个特征点,以1~68为编号说明,以眼睛、眉毛、嘴巴三个五官特征举例,需要用到的关键点编号如下:

眼睛(左):37、38、39、40、41、42

眼睛(右):43、44、45、46、47、48

眉毛(左):18、19、20、21、22

眉毛(右):23、24、25、26、27

嘴巴:49、55、61、62、63、64、65、66、67、68

本发明实施例中,利用OpenFace人脸识别算法能返回脸部68个关键点在像素坐标。

S1022、根据所述特定关键点位置,检测所述特定关键点位置在预设时间 的状态;

根据上述特定关键点位置,可以计算分别计算特定关键点位置在预设时间的状态,例如眼睛睁开/闭合状态、眼睛大小、眉毛挑动幅度、嘴巴开合大小等。

S1023、利用人脸识别算法获取用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向;

其中,所述用户面部表情数据包括所述特定关键点位置在预设时间内的状态、所述用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向。

本发明实施例中,使用OpenFace人脸识别算法获取用户人脸在三维空间中的朝向信息,朝向信息包括三个转向角信息:偏航角(Yaw)、俯仰角(Pitch)、侧偏角(Roll),根据三个转向角构建一个虚拟的三维方块来指示朝向信息,具体如图4所示的矩形三维方块。同时,如图5所示,通过OpenFace人脸识别算法可以直接识别获取用户眼睛的凝视方向,图5中眼睛上的白色线条表示识别的眼睛凝视方向。

优选的,本发明实施例中,所述特定关键点包括眼睛关键点、眉毛关键点和嘴巴关键点,其中,上述眼睛关键点、眉毛关键点和嘴巴关键点每项包括一个或多个关键点。

如图6所示,所述步骤S1022具体可以包括:

S10221、根据所述眼睛关键点计算用户眼睛睁开/闭合状态以及眼睛大小;

该计算中需要用到的距离计算公式如下:

a=(x1,y1)

b=(x2,y2)

公式含义:

a:关键点a,对应的像素坐标为(x1,y1);

b:关键点b,对应的像素坐标为(x2,y2);

d:表示关键点a到关键点b的距离长度;

具体计算眼睛睁开/闭合状态细节如下:

以左眼为例,计算如图3中关键点38与关键点42之间的像素距离a,计算39与41之间的像素距离b,取a、b的平均值c=(a+b)/2,c即为眼睛的高度;计算37与40之间的像素距离d,d即为眼睛的宽度。当a/d<0.15(0.15 为经验值)时判断眼睛为闭合状态。用同样的方法计算右眼的张开闭合状态。

计算眼睛大小具体细节如下:

使用步骤上述计算结果c(眼睛的高度)和d(眼睛的宽度),得到眼睛矩形区域的高度和宽度。眼睛矩形区域即用于表示眼睛大小。

S10222、根据所述眉毛关键点计算用户眉毛挑动幅度;

本发明实施例中,计算眉毛挑动幅度具体细节如下:

以左眼为例,计算眉弓最高处关键点20与眼睛关键点38之间的像素距离值e。由于抬头、俯视、左右摆动会影响此值,因此要以脸部宽度为基准计算,脸部宽度值计算关键点3至关键点15之间的距离f,眉毛挑动幅度的值为e/f。眉毛挑动时e/f的值会随之发生变化,因此以e/f的最小值为基准计算眉毛的挑动幅度值,以最小值为基准能迅速有效的判定挑眉动作。

S10223、根据所述嘴巴关键点计算用户嘴巴开合大小。

本发明实施例中,计算用户嘴巴开合大小具体细节如下:

计算关键点63与关键点67之间的像素距离g,计算关键点61到关键点65之间的像素距离h。用户嘴巴开合大小值为:g/h。

优选的,如图7所示,所述步骤S103具体可以包括:

S1031、将所述拟人化三维模型的眼睛部分处理成透明;将所述拟人化三维模型嘴部的上下唇之间处理处一条透明的缝隙,以处理绘制牙齿;

S1032、利用欧拉角进行旋转所述用户人脸在三维空间中的朝向信息得到旋转变化矩阵;

设之前获取的用户人脸三维空间中的朝向信息:航角(Yaw)、俯仰角(Pitch)、侧偏角(Roll)分别为:θ,ψ。那么利用欧拉角进行旋转对应的旋转变换矩阵M为:

通过将改旋转变换矩阵应用到三维物体上,可以改变三维物体的朝向。

S1033、获取预先制作的眼部纹理和嘴部纹理,并将所述眼部纹理和嘴部纹理贴合到所述拟人化三维模型面部;

其中,预设的眼部纹理和嘴部纹理可以是预设的所述拟人化三维模型的 基准眼部纹理和基准嘴部纹理。

所述眼部纹理和嘴部纹理贴合到所述拟人化三维模型面部可以是:将OpenFace人脸识别算法识别的面部关键点与拟人化三维模型的眼睛开何处和嘴巴的开合处对齐贴图处理,

S1034、根据所述用户眼睛睁开/闭合状态以及眼睛大小和所述用户眼睛的凝视方调整所述眼部纹理,根据所述嘴巴开合大小调整所述嘴部纹理;

具体,根据所述用户眼睛睁开/闭合状态以及眼睛大小拉伸眼睛开合口、嘴巴开合口附近的贴图纹理,然后根据眼睛大小和嘴巴开合大小分别限制眼睛开合处、嘴巴开合处矩形的长宽比。如图8所示,根据所述用户眼睛凝视方向计算眼部纹理贴图位置来处理拟人化三维模型眼球的转动和朝向信息,眼球朝向只改变眼部纹理的位置,不影响眼部纹理的大小。

S1035、将所述旋转变换矩阵应用到所述拟人化三维模型,用来改变所述拟人化三维模型的朝向,使得所述拟人化三维模型的面部表情跟随所述用户面部表情变化。

以OpenGL 2.0GPU编程为例,此变换矩阵M应用到三维模型的代码如下:

顶点着色器代码:

其中,posion为3DS MAX三维建模软件创建的三维模型的顶点的坐标;inputTextureCoordinate为3DS MAX三维建模软件创建的三维模型顶点坐标对 应的贴图纹理坐标;textureCoordinate为将要传递给片元着色器的坐标;matrixM为变换矩阵M,用来处理模型的旋转;gl_Position为输出给OpenGL处理的顶点坐标。matrixM*postion的作用是对顶点坐标做旋转变换。再将matrixM*postion赋值给gl_Position得到最终模型转动之后的坐标,最终gl_Position交给OpenGL内部自动处理,得到模型头部转动的画面。

优选的,为了使三维动物模拟的动作自然,需要随机产生小幅度的小动作和细微表情,此处的动作使用3DS MAX等3D建模软件预先制作好的几组骨骼动画,在这里随机套用这几组动画。如:耳朵自然摆动、头部轻微幅度自然摇动。因此,所述根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化的步骤,具体还可以包括:

在3D建模软件(例如3DS MAX)中,根据预设的预先制作好的骨骼动画随机套用生成小幅度的小动作和细微表情,并应用在所述拟人化三维模型的面部。

在本发明方法应用在视频直播场景中时,在主播或者视频录制者露脸时,在直播或视频录制画面的一个角落开一个小窗口画面,用来展示虚拟的拟人化三维模型,主播或者视频录制者不愿露脸时,仅在小窗口画面展示拟人化三维模型来模拟主播、视频录制者的表情动作,做到音画同步。

下面介绍本发明实施例中图像处理的装置的实施例。

请参阅图9,为本发明实施例中图像处理的装置的一个实施例示意图,该装置包括:

用户表情获取模块901,用于在视频直播或视频录制场景中,获取用户面部表情数据;

模型表情获取模块902,用于利用人脸识别算法获取所述视频直播场景中预设的拟人化三维模型的面部表情;

调整模块903,用于根据所述用户面部表情数据调整所述拟人化三维模型的面部表情,以使得所述拟人化三维模型的面部表情跟随所述用户面部表情而变化。

优选的,如图10所示,所述用户表情获取模块901具体可以包括:

标记单元9011,用于利用人脸识别算法识别用户人脸后,标记用户人脸特定关键点位置;

检测单元9012,用于根据所述特定关键点位置,检测所述特定关键点位置在预设时间的状态;

获取单元9013,用于利用人脸识别算法获取用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向;

其中,所述用户面部表情数据包括所述特定关键点位置在预设时间内的状态、所述用户人脸在三维空间中的朝向信息以及用户眼睛的凝视方向。

优选的,所述特定关键点包括眼睛关键点、眉毛关键点和嘴巴关键点;

所述检测单元9012具体用于:

根据所述眼睛关键点计算用户眼睛睁开/闭合状态以及眼睛大小;

根据所述眉毛关键点计算用户眉毛挑动幅度;

根据所述嘴巴关键点计算用户嘴巴开合大小。

优选的,所述调整模块903具体用于:

将所述拟人化三维模型的眼睛部分处理成透明;将所述拟人化三维模型嘴部的上下唇之间处理处一条透明的缝隙,以处理绘制牙齿;

利用欧拉角进行旋转所述用户人脸在三维空间中的朝向信息得到旋转变化矩阵;

获取预先制作的眼部纹理和嘴部纹理,并将所述眼部纹理和嘴部纹理贴合到所述拟人化三维模型面部;

根据所述用户眼睛睁开/闭合状态以及眼睛大小和所述用户眼睛的凝视方调整所述眼部纹理;根据所述嘴巴开合大小调整所述嘴部纹理;

将所述旋转变换矩阵应用到所述拟人化三维模型,用来改变所述拟人化三维模型的朝向,使得所述拟人化三维模型的面部表情跟随所述用户面部表情变化。

优选的,所述调整模块903具体还用于:

在3D建模软件中,根据预设的预先制作好的骨骼动画随机套用生成小幅度的小动作和细微表情,并应用在所述拟人化三维模型的面部。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描 述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其 中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1