图像处理方法和装置、计算机可读存储介质、电子设备转让专利

申请号 : CN202111349936.1

文献号 : CN113920282B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 晋博

申请人 : 广州博冠信息科技有限公司

摘要 :

本公开是关于一种图像处理方法和装置、计算机可读存储介质、电子设备,涉及计算机技术领域,该方法包括:获取待处理脸部图像的检测关键点;获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。本公开降低了图像脸部形变的复杂度,提升了形变的立体度。

权利要求 :

1.一种图像处理方法,其特征在于,包括:

获取待处理脸部图像的检测关键点;

获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;

根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;

获取预设的待处理脸部图像的脸部网格以及所述待处理脸部图像的脸部网格中包括的网格数;

利用三次样条插值法对所述三维模型的最小外接立方体进行插值,将所述最小外接立方体划分为与所述脸部网格中包括的网格数相同的立体网格;

将所述脸部网格映射至所述立体网格,将所述立体网格的顶点输入至着色器中,得到所述待处理脸部图像的三维形变特效。

2.根据权利要求1所述的图像处理方法,其特征在于,获取待处理脸部图像的检测关键点,包括:将所述待处理脸部图像输入至多任务卷积神经网络中,通过所述多任务卷积神经网络得到所述待处理脸部图像的检测关键点。

3.根据权利要求2所述的图像处理方法,其特征在于,通过所述多任务卷积神经网络模型得到所述待处理脸部图像的检测关键点,包括:通过所述多任务卷积神经网络的脸部检测模型,得到所述待处理脸部图像的关键区域;

将所述关键区域输入至所述多任务卷积神经网络的关键点检测模型中,得到所述待处理脸部图像的检测关键点。

4.根据权利要求1所述的图像处理方法,其特征在于,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵,包括:获取所述三维模型的世界坐标,以及所述检测关键点的图像坐标;

根据相机参数以及所述检测关键点的图像坐标得到所述三维模型的相机坐标;

根据所述相机坐标以及所述世界坐标,得到旋转矩阵和平移矩阵,将所述旋转矩阵与所述平移矩阵组合为与所述待处理脸部图像对应的世界空间转换矩阵。

5.根据权利要求4所述的图像处理方法,其特征在于,在得到与所述待处理脸部图像对应的世界空间转换矩阵之后,所述图像处理方法还包括:获取所述旋转矩阵;

根据所述旋转矩阵计算得到所述待处理脸部图像的姿态角。

6.根据权利要求5所述的图像处理方法,其特征在于,根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体,包括:获取所述屏幕空间中包括的三维图像像素的坐标以及深度值;

根据所述三维图像像素的深度值中的最大深度值以及最小深度值,所述三维图像像素的坐标的在水平轴方向最大值、最小值以及在垂直轴方向上的最大值、最小值,得到所述三维模型的最小外接立方体。

7.根据权利要求6所述的图像处理方法,其特征在于,在得到所述待处理脸部图像的三维形变特效之后,所述图像处理方法还包括:根据所述姿态角调整所述三维形变特效中脸部的角度。

8.一种图像处理装置,其特征在于,包括:

检测关键点生成模块,用于获取待处理脸部图像的检测关键点;

世界空间转换矩阵生成模块,用于获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;

最小外接立方体确定模块,用于根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;

形变特效生成模块,用于获取预设的待处理脸部图像的脸部网格以及所述待处理脸部图像的脸部网格中包括的网格数;

利用三次样条插值法对所述三维模型的最小外接立方体进行插值,将所述最小外接立方体划分为与所述脸部网格中包括的网格数相同的立体网格;

将所述脸部网格映射至所述立体网格,将所述立体网格的顶点输入至着色器中,得到所述待处理脸部图像的三维形变特效。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑7任一项所述的图像处理方法。

10.一种电子设备,其特征在于,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1‑7任一项所述的图像处理方法。

说明书 :

图像处理方法和装置、计算机可读存储介质、电子设备

技术领域

[0001] 本公开实施例涉及计算机技术领域,具体而言,涉及一种图像处理方法、图像处理装置、计算机可读存储介质以及电子设备。

背景技术

[0002] 在娱乐直播中,为了增加主播与观众的互动,活跃直播间气氛,在直播间中增加了多种脸部形变的特效。
[0003] 目前,脸部形变的特效都是基于二维空间的,首先,准备一张标准的模特图,对标准模特图的脸部区域进行拉伸,记录拉伸的偏移值,将偏移值应用到要进行形变的目标脸部来实现脸部形变特效。通常实现拉伸的技术方法有:移动最小二乘形变、液化形变、微分形变以及偏移图形变等,其中移动最小二乘形变和液化形变时最常用的图像形变技术。
[0004] 但是,移动最小二乘形变时通过拖拽控制点来控制图像,所以控制点的选取非常重要,并且一个控制点的变化影响范围一般很大,对于高精度的移动最小二乘形变来说,复杂度很高,不适合用于实时形变;液化形变,只需要控制圆圈的半径和形变的力度,适合于控制眼睛、嘴型等局部的形变效果,不适合用于调整脸型。在实际的应用场景中,都是由移动最小二乘形变和液化形变两个算法一起来控制图像的形变,增加了目标脸部形变的复杂度。
[0005] 因此,需要提供一种新的图像处理方法。
[0006] 需要说明的是,在上述背景技术部分发明的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0007] 本公开的目的在于提供一种图像处理方法、图像处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的脸部图像形变复杂度高的问题。
[0008] 根据本公开的一个方面,提供一种图像处理方法,包括:
[0009] 获取待处理脸部图像的检测关键点;
[0010] 获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;
[0011] 根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;
[0012] 获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。
[0013] 在本公开的一种示例性实施例中,对所述待处理脸部图像进行处理,得到所述待处理脸部图像的检测关键点,包括:
[0014] 将所述待处理脸部图像输入至多任务卷积神经网络中,通过所述多任务卷积神经网络得到所述待处理脸部图像的检测关键点。
[0015] 在本公开的一种示例性实施例中,通过所述多任务卷积神经网络模型得到所述待处理脸部图像的检测关键点,包括:
[0016] 通过所述多任务卷积神经网络的脸部检测模型,得到所述待处理脸部图像的关键区域;
[0017] 将所述关键区域输入至所述多任务卷积神经网络的关键点检测模型中,得到所述待处理脸部图像的检测关键点。
[0018] 在本公开的一种示例性实施例中,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵,包括:
[0019] 获取所述三维模型的世界坐标,以及所述检测关键点的图像坐标;
[0020] 根据相机参数以及所述检测关键点的图像坐标得到所述三维模型的相机坐标;
[0021] 根据所述相机坐标以及所述世界坐标,得到旋转矩阵和平移矩阵,将所述旋转矩阵与所述平移矩阵组合为与所述待处理脸部图像对应的世界空间转换矩阵。
[0022] 在本公开的一种示例性实施例中,在得到与所述待处理脸部图像对应的世界空间转换矩阵之后,所述图像处理方法还包括:
[0023] 获取所述旋转矩阵;
[0024] 根据所述旋转矩阵计算,得到所述待处理脸部图像的姿态角。
[0025] 在本公开的一种示例性实施例中,根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体,包括:
[0026] 获取所述屏幕空间中包括的三维图像像素的坐标以及深度值;
[0027] 根据所述三维图像像素的深度值中的最大深度值以及最小深度值,所述三维图像像素的坐标的在水平轴方向最大值、最小值以及在垂直轴方向上的最大值、最小值,得到所述三维模型的最小外接立方体。
[0028] 在本公开的一种示例性实施例中,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效,包括:
[0029] 获取所述待处理脸部图像的脸部网格中包括的网格数;
[0030] 利用三次样条插值法对所述三维模型的最小外接立方体进行差值,将所述最小外接立方体划分为与所述脸部网格中包括的网格数相同的立体网格;
[0031] 将所述脸部网格映射至所述立体网格,将所述立体网格的顶点输入至着色器中,得到所述待处理脸部图像的三维形变特效。
[0032] 在本公开的一种示例性实施例中,在得到所述待处理脸部图像的三维形变特效之后,所述图像处理方法还包括:
[0033] 根据所述姿态角调整所述三维形变特效中脸部的角度。
[0034] 根据本公开的一个方面,提供一种图像处理装置,包括:
[0035] 检测关键点生成模块,用于获取所述待处理脸部图像的检测关键点;
[0036] 世界空间转换矩阵生成模块,用于获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;
[0037] 最小外接立方体确定模块,用于根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;
[0038] 形变特效生成模块,用于获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。
[0039] 根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一示例性实施例所述的图像处理方法。
[0040] 根据本公开的一个方面,提供一种电子设备,包括:
[0041] 处理器;以及
[0042] 存储器,用于存储所述处理器的可执行指令;
[0043] 其中,所述处理器配置为经由执行所述可执行指令来执行上述任一示例性实施例所述的图像处理方法。
[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] 图13示意性示出根据本公开示例实施例的一种图像处理装置的框图。
[0060] 图14示意性示出根据本公开示例实施例的用于实现上述图像处理方法的电子设备。

具体实施方式

[0061] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。
[0062] 此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0063] 相关技术中,图像形变算法有很多,可以包括:移动最小二乘形变、液化形变、微分形变以及偏移图形变等,其中比较主流的为移动最小二乘形变以及液化形变。
[0064] 在移动最小二乘形变中,通过控制点的变化来计算待处理图像中每个像素点的移动,具体包括:首先,在待处理图像中设置控制点,有人工拖动控制点,得到控制点的新位置,然后,遍历待处理图像中的每个像素点,计算待处理图像中每个像素点到所有控制点的新位置的距离,并根据距离计算权重,最后,根据权重以及控制点位置的变化来计算待处理图像中每个像素点的变化。参考图1所示,在图1中从坐到右分别是待处理图像、在待处理图像中设置控制点,拖动控制点以及得到的形变图像。其适用于对二维图像进行整体形变,当通过移动最小二乘进行高精度的形变时,需要对待处理图像中的所有像素点进行加权计算,导致较高的复杂度,不适合用于实时形变。
[0065] 液化形变,一般是指利用圆圈来控制的形变,也可以通过椭圆来控制形变,液化形变一般分为中心液化和向前液化。中心液化是利用向着圆心发散或者收敛的形变函数来控制形变,其中,圆中心以及圆上的形变量为0;向前液化是利用圆心向着某个方向形变的函数来控制形变,其中,圆心形变量最大,圆上的形变量为0。液化形变合适用于控制待处理图像中人物的眼睛、嘴型等局部的形变,不适合用于整体形变。
[0066] 基于上述一个或者多个问题,本示例实施方式中首先提供了一种图像0处理方法,该方法可以运行于设备终端,该设备终端可以包括台式计算机、便携式计算机、智能手机和平板电脑等等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图2所示,该图像处理方法可以包括以下步骤:
[0067] 步骤S210.获取待处理脸部图像的检测关键点;
[0068] 步骤S220.获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;
[0069] 步骤S230.根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;
[0070] 步骤S240.获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。
[0071] 上述图像处理方法,获取待处理脸部图像的检测关键点;获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效;一方面,由于在进行脸部图像形变时,获取预设的三维模型,将三维的模型和待处理脸部图像进行求解,得到待处理脸部图像的世界空间转换矩阵,根据该世界空间转换矩阵将该三维模型投影至屏幕空间并得到三维模型的最小外接立方体,将待处理脸部图像的脸部网格映射至最小外接立方体中,得到待处理脸部图像的三维形变效果,解决了现有技术中都是由移动最小二乘形变和液化形变两个算法一起控制的图像的形变,降低了图像形变的复杂度;另一方面,将待处理脸部图像的脸部网格映射至三维模型的最小外接立方体中,实现了对待处理脸部图像的三维形变特效,增加了图像形变的立体感。
[0072] 以下,对本公开示例实施例的图像处理方法中涉及的各步骤进行详细的解释以及说明。
[0073] 首先,对本公开示例实施例的应用场景以及发明目的进行解释以及说明。具体的,本公开示例实施例可以用于生成待处理图像的三维形变效果,主要研究如何提高生成待处理图像的形变效果的效率以及如何提高形变效果的立体感。在本公开中,以获取到的视频或者直播视频中的待处理脸部图像为基础,首先,对获取到的待处理脸部图像进行处理,得到待处理脸部图像的检测关键点;然后,通过预设的三维模型与检测关键点进行PNP求解,得到待处理脸部图像的世界空间转换矩阵以及姿态角;接着,通过世界空间转换矩阵得到预设的三维模型的最小外接立方体,将待处理脸部图像映射至最小外接立方体中,得到待处理脸部图像的三维形变效果,降低了脸部图像形变的复杂度,增加了脸部图像形变的立体感。
[0074] 其次,对本公开示例实施例中涉及到的图像处理系统进行解释以及说明。参考图3所示,该图像处理系统可以包括脸部检测模块310,PnP求解模块320,三维模型投影模块330以及脸部特效生成模块340。其中,脸部检测模块310,用于获取视频或者直播中的待处理脸部图像,通过MTCNN(Multi‑task convolutional neural network,多任务卷积神经网络)对待处理脸部图像进行检测,得到待处理脸部图像的检测关键点;PnP求解模块320,与脸部检测模块310网络连接,用于获取预设的三维模型,获取该三维模型的世界坐标,基于该世界坐标对该三维模型与待处理脸部图像的检测关键点进行PnP求解,得到待处理脸部图像的世界空间转换矩阵以及该待处理脸部图像的姿态角;三维模型投影模块330,与PnP求解模块320网络连接,用于根据世界空间转换矩阵将三维模型投影至屏幕空间,获取屏幕空间中投影的模型的像素的坐标值以及每个像素的深度值,得到该三维模型的最小外接立方体;脸部特效生成模块340,与三维模型投影模块330网络连接,用于获取待处理脸部图像的检测关键点,根据检测关键点的坐标以及通过插值法,生成与待处理脸部图像对应的脸部网格;获取脸部网格中包括的网格数,根据脸部网格中包括的网格数,将最小外接立方体划分为包含与脸部网格中的网格数相等的立体网格,将待处理脸部图像映射至立体网格中,并将立体网格的顶点作为着色器的输入,得到待处理脸部图像的三维形变效果。
[0075] 以下,将结合图3对步骤S210‑步骤S240进行详细的解释以及说明。
[0076] 在步骤S210中,获取待处理脸部图像的检测关键点。
[0077] 其中,待处理脸部图像可以为包含脸部的二维图像,也可以为包含脸部的直播视频或者视频,脸部可以是人或动物的脸部,在本示例实施例中对待处理脸部图像不做具体限定。可以通过MTCNN对待处理脸部图像进行检测,其中,MTCNN中可以包括脸部检测模型以及关键点检测模型,脸部检测模型可以为LFFD(LFFD:A Light and Fast Face Detector for Edge Devices,一种用于边缘设备的轻型和快速面部检测器),也可以为其他脸部检测算法,在本示例实施例中对脸部检测模型不做具体限定。
[0078] 在本示例实施例中,对所述待处理脸部图像进行处理,得到所述待处理脸部图像的检测关键点,可以包括:
[0079] 将所述待处理脸部图像输入至多任务卷积神经网络中,通过所述多任务卷积神经网络得到所述待处理脸部图像的检测关键点。
[0080] 具体的,可以将获取到的待处理脸部图像输入至多任务卷积神经网络中,通过多任务卷积神经网络得到待处理脸部图像的检测关键点。参考图4所示,通过所述多任务卷积神经网络模型得到所述待处理脸部图像的检测关键点,可以包括步骤S410以及步骤S420:
[0081] 步骤S410.通过所述多任务卷积神经网络的脸部检测模型,得到所述待处理脸部图像的关键区域;
[0082] 步骤S420.将所述关键区域输入至所述多任务卷积神经网络的关键点检测模型中,得到所述待处理脸部图像的检测关键点。
[0083] 以下,将对步骤S410、步骤S420进行解释以及说明。具体的,首先,将待处理脸部图像输入至多任务卷积神经网络的脸部检测模型中,得到待处理脸部图像的关键区域,该关键区域可以是通过统计用户的视觉焦点数据得出的感兴趣区域;然后,将待处理脸部图像的关键区域输入至关键点检测模型中,得到待处理脸部图像的检测关键点。其中,通过多任务卷积神经网络得到的待处理脸部图像中包括的检测关键点的数量为106。生成的待处理图像的检测关键点可以参考图5所示。
[0084] 在步骤S220中,获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵。
[0085] 其中,预设的三维模型为标准三维模型,其中,标准的三维模型可以参考图6所示。可以通过PnP(Pespective‑n‑Point,是求解三维点到二维点对的运动的方法)求解得到待处理脸部图像的世界空间转换矩阵,其中,PnP问题求解的方式有很多种,可以为直接线性变换,也可以为EPnP,还可以为SDP(SemiDefinite Programing,半定规划),在本示例实施例中对PnP问题求解的方式不做具体限定。
[0086] 在本示例实施例中,参考图7所示,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵,可以包括步骤S710‑步骤S730:
[0087] 步骤S710.获取所述三维模型的世界坐标,以及所述检测关键点的图像坐标;
[0088] 步骤S720.根据相机参数以及所述检测关键点的图像坐标得到所述三维模型的相机坐标;
[0089] 步骤S730.根据所述相机坐标以及所述世界坐标,得到旋转矩阵和平移矩阵,将所述旋转矩阵与所述平移矩阵组合为与所述待处理脸部图像对应的世界空间转换矩阵。
[0090] 以下,将对步骤S710‑步骤S730进行解释以及说明。具体的,当PnP问题求解的方式为直接线性变换时,首先,获取预设的三维的世界坐标(U,V,W),以及待处理脸部图像中检测关键点的图像坐标(x,y);然后,获取相机参数fx,fy,cx,cy,其中,fx,fy为焦距,cx,cy为相对于成像平面的主点坐标,并根据相机参数以及图像坐标得到三维模型的相机坐标(X,Y,Z),其中,计算等式为等式(1)所示,
[0091]
[0092] 其中,s为缩放常数,当通过等式(1)得到相机坐标(X,Y,Z)之后,可以通过等式(2),得到待处理脸部图像的世界空间转换矩阵
[0093]
[0094] 在等式(2)中,R为旋转矩阵,t为平移矩阵,还可以将等式(2)转换为等式(3)进行求解,得到世界空间旋转矩阵
[0095]
[0096] 其中,[R|t]为世界空间转换矩阵,在本示例实施例中,可以通过对等式(2)中得到旋转矩阵以及平移矩阵进行组合得到世界空间旋转矩阵,也可以通过等式(3)得到世界空间转换矩阵。
[0097] 当得到世界空间矩阵之后,图像处理方法还可以包括:
[0098] 获取所述旋转矩阵;
[0099] 根据所述旋转矩阵计算,得到所述待处理脸部图像的姿态角。
[0100] 具体的,在包含有脸部的视频中,脸部以各种姿态变换,因而产生姿态角,包括:俯仰角、偏航角以及滚转角,其中,俯仰角为围绕X轴旋转,偏航角为围绕Y轴旋转,滚转角为围绕Z轴旋转,当得到旋转矩阵 之后,可以根据旋转矩阵R生成待处理脸部图像的姿态角,其中,俯仰角θx的计算方式参考等式(4),偏航角θy的计算方式参考等式(5),滚转角θz的计算方式参考等式(6):
[0101] θx=a tan 2(r32,r33)                   等式(4)
[0102]
[0103] θz=a tan 2(r21,r11)                     等式(6)
[0104] 其中,atan2用于根据不同的参数计算脸部图像的姿态角。
[0105] 在步骤S230中,根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体。
[0106] 其中,三维模型所在的空间为三维空间,屏幕空间为二维空间。将三维模型变换到屏幕空间后,屏幕空间中的三维图像的每个像素的还包括深度值。
[0107] 在本示例实施例中,参考图8所示,根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体,可以包括步骤S810以及步骤S820:
[0108] 步骤S810.获取所述屏幕空间中包括的三维图像像素的坐标以及深度值;
[0109] 步骤S820.根据所述三维图像像素的深度值中的最大深度值以及最小深度值,所述三维图像像素的坐标的在水平轴方向最大值、最小值以及在垂直轴方向上的最大值、最小值,得到所述三维模型的最小外接立方体。
[0110] 以下,将对步骤S810、步骤S820进行解释以及说明。具体的,当得到世界空间转换矩阵之后,通过世界空间转换矩阵,将三维模型变换到裁剪空间,其中,视锥体可以决定图渲染图元的裁剪,视椎体指的是空间中的一块区域,这块区域决定了摄像机可以看到的空间;当裁剪之后,需要进行真正的投影,可以将视锥体投影至屏幕空间,得到屏幕空间中包括的三维图像像素。当将三维模型投影至屏幕空间之后,可以获取屏幕空间中包括的三维图像像素的坐标值以及深度值;然后根据获取到的像素的坐标值以及深度值确定三维模型的最小外接立方体,其中,可以根据像素的坐标值在水平轴上的最大值即最小值,即x轴方向上的最大值以及最小值,根据像素的坐标值在垂直轴方向上的最大值以及最小值,即y轴方向上的最大值以及最小值,以及像素的深度值的最大值以及最小值,确定三维模型的最小外接矩形,其中,生成的最小外接矩形可以参考图9所示。
[0111] 在步骤S240中,获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。
[0112] 其中,预设的待处理脸部图像的脸部网格为预先设计好的脸部网格,可以基于待处理脸部图像建立坐标轴,确定检测关键点的坐标,基于检测关键点的坐标采用插值法生成脸部网格,参考图10所示,可以将待处理脸部图像中的脸部区域被划分成36个三角形网格,在本示例实施例中对脸部区域被划分成三角形网格的数量不做具体限定。
[0113] 在本示例实施例中,参考图11所示,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效,可以包括步骤S1110‑步骤S1130:
[0114] 步骤S1110.获取所述待处理脸部图像的脸部网格中包括的网格数;
[0115] 步骤S1120.利用三次样条插值法对所述三维模型的最小外接立方体进行插值,将所述最小外接立方体划分为与所述脸部网格中包括的网格数相同的立体网格;
[0116] 步骤S1130.将所述脸部网格映射至所述立体网格,将所述立体网格的顶点输入至着色器中,得到所述待处理脸部图像的三维形变特效。
[0117] 以下,将对步骤S1110‑步骤S1130进行解释以及说明。具体的,首先获取待处理脸部图像中脸部区域的脸部网格数,然后,对三维模型的最小外接立方体进行插值,将最小外接立方体划分为与脸部网格中包括的网格数相等的立体网格。在进行插值时,可以采用三3 2
次样条插值法,三次样条插值法利用函数aX+bX+cX+d进行插值。在进行插值时也可以利用线性插值法,但是,通过线性插值法会导致划分出来的点不平滑,当将待处理图像映射至立体网格之后,会出现严重的纹理拉伸。当得到立体网格之后,可以将脸部网格映射至立体网格中,并将立体网格的顶点作为着色器的输入,输入至着色器中,渲染得到待处理脸部图像的三维形变效果。
[0118] 在将脸部网格映射至立体网格中时,可以将脸部网格中的顶点映射至立体网格中对应的顶点,当映射脸部网格中最左上方的顶点时,可以将该顶点映射至立体网格中左后方的顶点上。
[0119] 在本示例实施例中,当得到待处理脸部图像的三维形变效果之后,图像处理方法还包括:
[0120] 根据姿态角调整三维形变特效中脸部的角度。
[0121] 具体的,当生成三维形变特效之后,为了保证三维形变特效中脸部的角度与实际视频中脸部角度保持一致,即当视频中脸部向左转时,也需要将三维形变特效中脸部的朝向显示为向左转,具体在实现时,可以利用带处理脸部图像的姿态角对三维形变特效中的脸部的角度进行调整。生成的三维形变特效可以参考图12所示。
[0122] 本公开示例实施例提供的图像处理方法至少具有以下优点:一方面,生成待处理图像的检测关键点,获取预设的三维模型,将三维模型与检测关键点进行PnP求解,得到世界空间转换矩阵,根据该世界空间转换矩阵将三维模型投影至屏幕空间,并得到三维模型的最小外接立方体,将待处理脸部图像的脸部网格映射至最小外接立方体中,得到三维形变特效,降低了图像中脸部形变的复杂度;另一方面,将待处理脸部图像的脸部网格映射至三维模型的最小外接立方体中,实现了对待处理脸部图像的三维形变特效,增加了图像形变的立体感;再一方面,采用三次样条插值法将最小外接立方体划分为与脸部网格的网格数相等的立体网格,避免了待处理脸部图形映射至最小外接立方体之后,对脸部的过度拉伸。
[0123] 本公开示例实施例还提供了一种图像处理装置,参考图13所示,可以包括:检测关键点生成模块1310、世界空间转换矩阵生成模块1320、最小外接立方体确定模块1330以及形变特效生成模块1040。其中:
[0124] 检测关键点生成模块1310,用于获取待处理脸部图像的检测关键点;
[0125] 世界空间转换矩阵生成模块1320,用于获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;
[0126] 最小外接立方体确定模块1330,用于根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;
[0127] 形变特效生成模块1340,用于获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。
[0128] 上述图像处理装置中各模块的具体细节已经在对应的图像处理方法中进行了详细的描述,因此此处不再赘述。
[0129] 在本公开的一种示例性实施例中,对所述待处理脸部图像进行处理,得到所述待处理脸部图像的检测关键点,包括:
[0130] 将所述待处理脸部图像输入至多任务卷积神经网络中,通过所述多任务卷积神经网络得到所述待处理脸部图像的检测关键点。
[0131] 在本公开的一种示例性实施例中,通过所述多任务卷积神经网络模型得到所述待处理脸部图像的检测关键点,包括:
[0132] 通过所述多任务卷积神经网络的脸部检测模型,得到所述待处理脸部图像的关键区域;
[0133] 将所述关键区域输入至所述多任务卷积神经网络的关键点检测模型中,得到所述待处理脸部图像的检测关键点。
[0134] 在本公开的一种示例性实施例中,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵,包括:
[0135] 获取所述三维模型的世界坐标,以及所述检测关键点的图像坐标;
[0136] 根据相机参数以及所述检测关键点的图像坐标得到所述三维模型的相机坐标;
[0137] 根据所述相机坐标以及所述世界坐标,得到旋转矩阵和平移矩阵,将所述旋转矩阵与所述平移矩阵组合为与所述待处理脸部图像对应的世界空间转换矩阵。
[0138] 在本公开的一种示例性实施例中,在得到与所述待处理脸部图像对应的世界空间转换矩阵之后,所述图像处理方法还包括:
[0139] 获取所述旋转矩阵;
[0140] 根据所述旋转矩阵计算,得到所述待处理脸部图像的姿态角。
[0141] 在本公开的一种示例性实施例中,根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体,包括:
[0142] 获取所述屏幕空间中包括的三维图像像素的坐标以及深度值;
[0143] 根据所述三维图像像素的深度值中的最大深度值以及最小深度值,所述三维图像像素的坐标的在水平轴方向最大值、最小值以及在垂直轴方向上的最大值、最小值,得到所述三维模型的最小外接立方体。
[0144] 在本公开的一种示例性实施例中,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效,包括:
[0145] 获取所述待处理脸部图像的脸部网格中包括的网格数;
[0146] 利用三次样条插值法对所述三维模型的最小外接立方体进行差值,将所述最小外接立方体划分为与所述脸部网格中包括的网格数相同的立体网格;
[0147] 将所述脸部网格映射至所述立体网格,将所述立体网格的顶点输入至着色器中,得到所述待处理脸部图像的三维形变特效。
[0148] 在本公开的一种示例性实施例中,在得到所述待处理脸部图像的三维形变特效之后,所述图像处理方法还包括:
[0149] 根据所述姿态角调整所述三维形变特效中脸部的角度。
[0150] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0151] 此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0152] 在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0153] 所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0154] 下面参照图14来描述根据本发明的这种实施方式的电子设备1400。图14显示的电子设备1400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0155] 如图14所示,电子设备1400以通用计算设备的形式表现。电子设备1400的组件可以包括但不限于:上述至少一个处理单元1410、上述至少一个存储单元1420、连接不同系统组件(包括存储单元1420和处理单元1410)的总线1430以及显示单元1440。
[0156] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1410执行,使得所述处理单元1410执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1410可以执行如图2中所示的步骤S210:获取待处理脸部图像的检测关键点;S220:获取预设的三维模型,通过所述三维模型与所述检测关键点,得到与所述待处理脸部图像对应的世界空间转换矩阵;S230:根据所述世界空间转换矩阵将所述三维模型变换到屏幕空间,基于所述屏幕空间中的坐标得到所述三维模型的最小外接立方体;S240:获取预设的待处理脸部图像的脸部网格,将所述脸部网格映射至所述最小外接立方体中,得到所述待处理脸部图像的三维形变特效。
[0157] 存储单元1420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)14201和/或高速缓存存储单元14202,还可以进一步包括只读存储单元(ROM)14203。
[0158] 存储单元1420还可以包括具有一组(至少一个)程序模块14205的程序/实用工具14204,这样的程序模块14205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0159] 总线1430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0160] 电子设备1400也可以与一个或多个外部设备1500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1400交互的设备通信,和/或与使得该电子设备1400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1450进行。并且,电子设备1400还可以通过网络适配器1460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1460通过总线1430与电子设备1400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0161] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
[0162] 在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0163] 根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD‑ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0164] 所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0165] 计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0166] 可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0167] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0168] 此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0169] 本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。