基于图像的光效处理方法、装置、设备及存储介质转让专利

申请号 : CN202011195006.0

文献号 : CN112270759B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 康其润曾光

申请人 : 北京字跳网络技术有限公司

摘要 :

本公开涉及基于图像的光效处理方法、装置、设备及存储介质,方法包括:获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中光效素材图上包括光照信息;根据图像中的物体图像,在物体图像的表面上生成物体的第一三维网格模型;根据模拟光源的第一位置、第一三维网格模型上的点距离图像表面的距离,以及光效素材图,确定第一三维网格模型上的点的光照信息;根据第一三维网格模型上的点的光照信息,对图像中的物体图像进行渲染,得到第一光效渲染图。其可以使得光照效果更加自然、逼真。

权利要求 :

1.一种基于图像的光效处理方法,其特征在于,包括:获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中所述光效素材图上包括光照信息;

根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型;

根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息;

根据所述第一三维网格模型上的点的光照信息,对所述图像中的物体图像进行渲染,得到所述图像的第一光效渲染图;

所述根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息,包括:根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,确定所述第一三维网格模型上的点受到所述模拟光源照射后,在所述光效素材图上的投影点;

确定所述第一三维网格模型上的点对应的投影点的光照信息为所述第一三维网格模型上的点的光照信息。

2.根据权利要求1所述的方法,其特征在于,所述根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息之前,所述方法还包括:根据所述光效素材图上的光照信息,对所述图像的背景部分进行渲染。

3.根据权利要求1所述的方法,其特征在于,所述根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息之前,所述方法还包括:根据所述模拟光源的第一位置,在所述图像上渲染得到所述物体的阴影。

4.根据权利要求1所述的方法,其特征在于,在得到所述光效渲染图之后,所述方法还包括:基于预设的漫反射光照模型对所述第一光效渲染图进行处理,得到所述图像的第二光效渲染图。

5.根据权利要求1‑4中任一项所述的方法,其特征在于,所述根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型,包括:基于预设的物体匹配算法,在所述物体的表面上生成所述物体的第二三维网格模型;

对所述第二三维网格模型上与所述图像交界的部分进行平滑处理,得到所述物体的第一三维网格模型。

6.根据权利要求5所述的方法,其特征在于,所述对所述第二三维网格模型上与所述图像交界的部分进行平滑处理,得到所述物体的第一三维网格模型,包括:在所述图像上围绕所述物体插入多个点;

将所述多个点与所述第二三维网格模型边缘上的点进行连接,生成新的网格;

基于新生成的网格和所述第二三维网格模型,生成所述物体的第一三维网格模型。

7.根据权利要求6所述的方法,其特征在于,所述基于新生成的网格和所述第二三维网格模型,生成所述物体的第一三维网格模型,包括:基于所述新生成的网格和所述第二三维网格模型,获得所述物体的第三三维网格模型;

对所述第三三维网格模型进行滤波处理,得到所述物体的第一三维网格模型。

8.根据权利要求7所述的方法,其特征在于,所述滤波处理包括均值滤波。

9.根据权利要求3所述的方法,其特征在于,所述根据所述模拟光源的第一位置,在所述图像上渲染得到所述物体的阴影,包括:根据所述模拟光源的所述第一位置,确定所述物体被所述模拟光源照射后形成的阴影在所述图像上的第二位置;

在所述图像的所述第二位置上渲染得到所述阴影。

10.根据权利要求9所述的方法,其特征在于,所述根据所述模拟光源的所述第一位置,确定所述物体被所述模拟光源照射后形成的阴影在所述图像上的第二位置,包括:从所述图像中分割剔除所述物体图像,得到所述物体图像所在区域的掩膜;

根据所述模拟光源的所述第一位置,确定所述掩膜相对于所述区域的偏移量,得到所述物体的阴影在所述图像上的第二位置。

11.一种光效处理装置,其特征在于,包括:

获取模块,用于获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中所述光效素材图上包括光照信息;

生成模块,用于根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型;

确定模块,用于根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息;

第一渲染模块,用于根据所述第一三维网格模型上的点的光照信息,对所述图像中的物体图像进行渲染,得到所述图像的第一光效渲染图;

所述确定模块,用于:

根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,确定所述第一三维网格模型上的点受到所述模拟光源照射后,在所述光效素材图上的投影点;

确定所述第一三维网格模型上的点对应的投影点的光照信息为所述第一三维网格模型上的点的光照信息。

12.根据权利要求11所述的装置,其特征在于,所述装置还包括:第二渲染模块,用于根据所述光效素材图上的光照信息,对所述图像的背景部分进行渲染。

13.根据权利要求11所述的装置,其特征在于,所述装置还包括:第三渲染模块,用于根据所述模拟光源的第一位置,在所述图像上渲染得到所述物体的阴影。

14.根据权利要求11所述的装置,其特征在于,所述装置还包括:漫反射处理模块,用于基于预设的漫反射光照模型对所述第一光效渲染图进行处理,得到所述图像的第二光效渲染图。

15.根据权利要求11‑14中任一项所述的装置,其特征在于,所述生成模块,包括:第一生成子模块,用于基于预设的物体匹配算法,在所述物体的表面上生成所述物体的第二三维网格模型;

平滑处理子模块,用于对所述第二三维网格模型上与所述图像交界的部分进行平滑处理,得到所述物体的第一三维网格模型。

16.根据权利要求15所述的装置,其特征在于,所述平滑处理子模块,包括:插入子单元,用于在所述图像上围绕所述物体插入多个点;

第一生成子单元,用于将所述多个点与所述第二三维网格模型边缘上的点进行连接,生成新的网格;

第二生成子单元,用于基于新生成的网格和所述第二三维网格模型,生成所述物体的第一三维网格模型。

17.根据权利要求16所述的装置,其特征在于,所述第二生成子单元,用于:基于所述新生成的网格和所述第二三维网格模型,获得所述物体的第三三维网格模型;以及对所述第三三维网格模型进行滤波处理,得到所述物体的第一三维网格模型。

18.根据权利要求17所述的装置,其特征在于,所述滤波处理包括均值滤波。

19.根据权利要求13所述的装置,其特征在于,所述第三渲染模块,包括:确定子模块,用于根据所述模拟光源的所述第一位置,确定所述物体被所述模拟光源照射后形成的阴影在所述图像上的第二位置;

渲染子模块,用于在所述图像的所述第二位置上渲染得到所述阴影。

20.根据权利要求19所述的装置,其特征在于,所述确定子模块,包括:分割子单元,用于从所述图像中分割剔除所述物体图像,得到所述物体图像所在区域的掩膜;

确定子单元,用于根据所述模拟光源的所述第一位置,确定所述掩膜相对于所述区域的偏移量,得到所述物体的阴影在所述图像上的第二位置。

21.一种终端设备,其特征在于,包括:

存储器和处理器;

其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,所述处理器执行如权利要求1‑10中任一项所述的方法。

22.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时,所述处理器执行如权利要求1‑10中任一项所述的方法。

说明书 :

基于图像的光效处理方法、装置、设备及存储介质

技术领域

[0001] 本公开涉及图像处理技术领域,尤其涉及一种基于图像的光效处理方法、装置、设备及存储介质。

背景技术

[0002] 相关技术能够为用户提供拍摄功能,随着越来越多的用户使用拍摄功能拍摄图像,如何能够在图像中添加特定的光照效果,并且使得光照效果更加自然、逼真,也存在很大的需求。

发明内容

[0003] 为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于图像的光效处理方法、装置、设备及存储介质。
[0004] 本公开实施例的第一方面提供了一种基于图像的光效处理方法,方法包括:获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中所述光效素材图上包括光照信息;根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型;根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息;根据所述第一三维网格模型上的点的光照信息,对所述图像中的物体图像进行渲染,得到所述图像的第一光效渲染图。
[0005] 本公开实施例的第二方面提供了一种光效处理装置,装置包括:获取模块,用于获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中所述光效素材图上包括光照信息;生成模块,用于根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型;确定模块,用于根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息;第一渲染模块,用于根据所述第一三维网格模型上的点的光照信息,对所述图像中的物体图像进行渲染,得到所述图像的第一光效渲染图。
[0006] 本公开实施例的第三方面提供了一种终端设备,该终端设备包括存储器和处理器,其中,存储器中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述第一方面的方法。
[0007] 本公开实施例的第四方面提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述第一方面的方法。
[0008] 本公开实施例提供的技术方案与现有技术相比具有如下优点:
[0009] 本公开实施例提供的技术方案的实质是将物体表面在实际三维空间中的深度信息作为图像光照渲染的考虑因素之一,因而能够使得图像的光照渲染效果更加真实、自然。
[0010] 本公开实施例提供的技术方案采用分层渲染的策略,先绘制背景图像的打光和阴影效果,再绘制图像中物体图像的打光效果,其可以使得图像整体的光照效果更加自然、逼真。
[0011] 本公开实施例提供的技术方案中所使用的投影点的确定方法,较为简单,计算量低,计算速度快,对终端性能的要求低。
[0012] 本公开实施例提供的技术方案通过对第二三维网格模型上与图像交界的部分进行平滑处理,可以进一步提高所形成的光照效果的自然度,其中,第二三维网格模型是基于预设的物体匹配算法,在图像中的物体上方生成的所述物体的三维网格模型。

附图说明

[0013] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0014] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0015] 图1是本公开实施例提供的一种基于图像的光效处理方法的流程图;
[0016] 图2为本公开实施例提供的一种真实世界中光照的示意图;
[0017] 图3为本公开实施例提供的一种光效素材图的示意图;
[0018] 图4为本公开实施例提供的一种确定物体被模拟光源照射后形成的阴影在图像上的第二位置的示意图;
[0019] 图5为本公开实施例提供的另一种确定物体被模拟光源照射后形成的阴影在图像上的第二位置的示意图;
[0020] 图6为本公开实施例提供的一种确定第一三维网格模型上的点的光照信息的示意图;
[0021] 图7为本公开实施例提供的一种在实际中可能出现的情况的示意图;
[0022] 图8为本公开实施例提供的另一种基于图像的光效处理方法的流程图;
[0023] 图9为本公开实施例提供的一种执行步骤230之后的示意图;
[0024] 图10为本公开实施例提供的另一种执行步骤230之后的示意图;
[0025] 图11为本公开实施例提供的一种光效处理装置的结构框图;
[0026] 图12是本公开实施例中的一种终端设备的结构示意图。

具体实施方式

[0027] 为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0028] 在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
[0029] 图1是本公开实施例提供的一种基于图像的光效处理方法的流程图,该方法可以由一种终端设备来执行。该终端设备可以示例性的理解为诸如手机、平板电脑、笔记本电脑、台式机、智能电视等具有图像处理能力的设备。在一些实施例中,本实施例所称的终端设备上可以搭载图像显示设备(比如显示屏,但不局限于显示屏),终端设备可以通过显示屏进行图像显示,并通过本实施例的方法在图像上添加一个或多个光效,其中本实施例所称的光效是指能够叠加到图像上,使得图像能够反映光影效果的一种光效形式。在另一些实施例中,本实施例所称的终端设备上还可以同时搭载拍摄设备,拍摄设备采集图像后,终端设备可以采用本实施例的方法在图像上添加一个或多个光效。如图1所示,本实施例提供的方法包括如下步骤:
[0030] 步骤110、获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中光效素材图上包括光照信息。
[0031] 其中,图像是指需要添加光照效果的具有视觉效果的画面。在图像中包括至少一个物体。物体具体可以是人、动物或物品等。在本公开中,对图像的来源不作限制。其具体可以为终端拍摄所得,或者终端通过蓝牙等数据传输方式从其他终端处获取得到,或从服务器下载得到。
[0032] 模拟光源是指真实世界光源的模拟物,模拟光源具体可以为太阳模拟物、舞台灯模拟物、射灯模拟物等,本申请对此不作限制。需要说明的是,在本公开中,模拟光源决定后续所形成的光效,但是模拟光源本身并不一定出现在经过光效处理后的图像中。
[0033] 在真实世界中,对于同一物体,光源的位置不同,其在物体周围形成的阴影的位置、形状以及面积不同。为了使得对图像进行光效处理后其所呈现的效果与真实世界一致,需要获取模拟光源在三维空间中的位置,为了方便区分,本实施例将模拟光源在三维空间中的位置称为第一位置。此处,“三维空间”是对真实世界空间的模拟结果。获取模拟光源在三维空间中的第一位置的目的是便于明确图像中物体与模拟光源的位置关系。
[0034] 由于在真实世界中,在某些场景下,光源出射的光需要穿过某些遮挡物才能投射到物体上,形成斑驳的光影。图2为本公开实施例提供的一种真实世界中光照的示意图。示例性地,参见图2,遮挡物M包括透光区B和遮光区A。太阳N的光线穿过遮挡物M的透光区B(如树叶之间的缝隙),照射到地面上,在地面上呈现一个又一个大小不一,形状不同的光斑C。为了对此种情景进行模拟,设置光效素材图。因此,光效素材图是一种用于模拟因遮挡物M的存在,形成的特定图案的光斑C的素材。可选地,光效素材图可以视作为对图2中地面形成的光斑的集合的模拟结果。
[0035] 光照信息是指亮暗信息,其具体可以用亮度值或灰度值等去表征。“光效素材图上包括光照信息”是指光效素材图包括能够反映其上不同位置的亮暗信息的数据。示例性地,图3为本公开实施例提供的一种光效素材图的示意图。在图3中,白色区域模拟光源出射的光穿过遮挡物的透光区域形成的光斑,黑色区域模拟光源出射的光因被遮挡物遮挡,无法照射到的地方。
[0036] 本步骤的具体实现方法有多种,示例性地,用户可以通过人机交互设备,输入用户指令,用户指令包括需要进行光效处理的图像、所选择的光效素材图,以及指定的模拟光源在三维空间中的第一位置;通过对用户指令进行分析,得到需要进行光效处理的图像、所选择的光效素材图,以及指定的模拟光源在三维空间中的第一位置。
[0037] 步骤120、根据图像中的物体图像,在物体图像的表面上生成物体的第一三维网格模型。
[0038] 由于在真实世界中,物体是立体的,本步骤的实质是,基于光效处理前的图像本身,对图像中物体的立体性进行还原。
[0039] 在数字化图像中,每个像素是用一组二进制数进行描述,其中包含表示图像颜色的位,图中每个像素颜色所占的二进制位位数,称为图像深度。图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数。它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级。
[0040] 本步骤的具体实现方法有多种,示例性地,可以根据图像中的物体图像的深度信息,在物体图像的表面上生成物体的第一三维网格模型。
[0041] 进一步地,在实际中,还可以先识别图像中的物体的类别,然后根据图像中物体的类别,选择恰当的算法,基于根据图像中的物体图像的深度信息,在物体图像的表面上生成物体的第一三维网格模型。由于不同类型的物体,其具有不同的特征,根据物体的类型进行算法的选择,可以使得所形成的第一三维网格模型与物体的表面的吻合度更高,有利于后续添加光效后所形成的效果更加自然。
[0042] 示例性地,若图像中的物体为人脸,可以利用人脸匹配算法(如facefitting算法)在人脸表面上生成人脸的第一三维网格模型。
[0043] 步骤130、根据模拟光源的第一位置、第一三维网格模型上的点距离图像表面的距离,以及光效素材图,确定第一三维网格模型上的点的光照信息。
[0044] 本步骤的具体实现方式有多种,示例性地,根据模拟光源的第一位置、第一三维网格模型上的点距离图像表面的距离,确定第一三维网格模型上的点受到模拟光源照射后,在第一光照效果图上的投影点;确定第一三维网格模型上的点对应的投影点的光照信息为第一三维网格模型上的点的光照信息。
[0045] 图4为本公开实施例提供的一种确定第一三维网格模型上的点的光照信息的示意图。具体地,继续参见图4,第一三维网格模型上的点D1受到模拟光源N照射后,在光效素材图P1上的投影点为D2。这里的光效素材图可以理解为与步骤110中获取到的图像重合,此时,将光效素材图P1上的点D2的光照信息确定为点D1的光照信息。
[0046] 其中,确定点D1在光效素材图P1上的投影点D2的方法有多种,示例性地,以图像所在平面为基准平面,在其上建立正交的X轴和Y轴。以垂直于基准平面,且指向模拟光源所在侧的方向为Z轴正方向,如此建立直角坐标系。假设模拟光源的坐标为(xl,yl,zl),点D1的坐标为(x0,y0,z0),投影点D2的坐标为(u,v,0),则根据下式可以求得u和v:
[0047] u=x0‑(x0‑xl)·z0/(z0‑zl)
[0048] v=y0‑(y0‑yl)·z0/(z0‑zl)。
[0049] 这种投影点的确定方法较为简单,计算量低,计算速度快,对终端性能的要求低。
[0050] 步骤140、根据第一三维网格模型上的点的光照信息,对图像中的物体图像进行渲染,得到图像的第一光效渲染图。
[0051] 本领域技术人员可以理解,真实世界中,针对于同一平面确定的照射范围(如某一桌子的桌面),保持光源位置不变,第一次令光源经过图2中示例的某一遮挡物照射该范围,所呈现的光斑效果为第一光效。在该照射范围内放置某一物体(如茶壶),再次令同一光源经过同一遮挡物照射在该范围,所呈现的光斑效果为第二光效。对比第一光效和第二光效可以发现,相对于第一光效,第二光效中光斑的边线发生了错位。这是因为物体是立体的,其立体的特性使得光斑的形状、尺寸发生了变化。
[0052] 步骤130和步骤140的实质是根据第一三维网格模型上的点在Z轴方向的坐标值,确定第一三维网格模型上的点的光照信息,以模拟因物体的立体性而使得光斑的边线错位的情况,以提高该物体所呈现的光效与真实世界的光效的一致性,使得光效更加自然。
[0053] 如果将图像上除物体图像的其他部分称之为背景图像,上述技术方案还可以采用分层渲染的策略,先绘制背景图像的打光和阴影效果,再绘制物体三维模型上的打光效果,其可以使得光照效果更加自然、逼真。
[0054] 本公开实施例对图像背景和物体阴影的渲染方法有多种,比如在一种示例性的方法中可以根据光效素材图上的光照信息,对图像的背景部分进行渲染,根据模拟光源的第一位置,在图像上渲染得到物体的阴影。
[0055] 其中,“根据光效素材图上的光照信息,对图像的背景部分进行渲染”的具体实现方法有多种,示例性地,利用融合算法,将光效素材图与待添加光效的图像进行融合处理。具体地,先确定光效素材图中各位置与待添加光效的图像中各位置的对应关系;然后,基于光效素材图的光照效果以及该对应关系,确定待添加光效的图像中各位置的光照信息;基于待添加光效的图像中各位置的光照信息,对待添加光效的图像进行渲染。
[0056] 进一步地,可以在融合之前,调整光效素材图的尺寸,使得光照素材图与待添加光效的图像的尺寸一致,以便于确定待添加光效的图像中各位置的光照信息。
[0057] 在具体进行融合处理时,可以结合二者对应位置处像素值平均值、熵值、标准偏差、平均梯度等对二者进行融合处理。
[0058] 需要强调的是,如果将图像上除物体图像的其他部分称之为背景图像,在执行背景光效渲染时,物体图像和背景图像均需要与光效素材图融合。
[0059] “根据模拟光源的第一位置,在图像上渲染得到物体的阴影”的具体实现方法有多种,示例性地,可以根据模拟光源的第一位置,确定物体被模拟光源照射后形成的阴影在图像上的第二位置;在图像的第二位置上渲染得到阴影。
[0060] 进一步地,“根据模拟光源的第一位置,确定物体被模拟光源照射后形成的阴影在图像上的第二位置”的具体实现方法有多种,示例性地,可以从图像中分割剔除物体图像,得到物体图像所在区域的掩膜;根据模拟光源的第一位置,确定掩膜相对于区域的偏移量,得到物体的阴影在图像上的第二位置。
[0061] 图5为本公开实施例提供的一种确定物体被模拟光源照射后形成的阴影在图像上的第二位置的示意图。可选地,参见图5,Y2为被模拟光源N照射之前,物体Q所在区域的掩膜。Y2相对于整个图像P的位置为掩膜初始位置。可以根据模拟光源N的第一位置以及物体Q的位置,得到从模拟光源N出射的光的照射方向。基于照射方向,可以计算掩膜相对于掩膜初始位置的偏移量。后续基于掩膜初始位置和掩膜相对于掩膜初始位置的偏移量,可以得到物体的阴影在图像上的第二位置。
[0062] 可选地,“根据模拟光源的第一位置,确定物体被模拟光源照射后形成的阴影在图像上的第二位置”还可以为,首先,根据模拟光源的第一位置,确定第一三维网格模型上的点受到模拟光源照射后,在图像上的投影点。然后,基于所有投影点,确定由所有投影点组成的轮廓图形。图6为本公开实施例提供的另一种确定物体被模拟光源照射后形成的阴影在图像上的第二位置的示意图。图6中各点均为同一第一三维网格模型上的点受到模拟光源照射后,在图像上的投影点。图6中的圆F1为由所有投影点组成的轮廓图形。从图6可以看出,轮廓图形F1是指对所有投影点中位于最外侧的多个点进行拟合得到图形。除位于轮廓图形上的投影点外,其他投影点均位于该轮廓图形之内。最后,对从轮廓图形中剔除物体图像,得到的物体被模拟光源照射后形成的阴影在图像上的第二位置。继续参见图6,圆F2为物体图像,从轮廓图形F1中剔除物体图像(即圆F2),得到填充有斜划线的区域。该填充有斜划线的区域的位置即物体被模拟光源照射后形成的阴影在图像上的第二位置。此外,上述技术方案中还提供了一种投影点的确定方法,该方法较为简单,计算量低,计算速度快,对终端性能的要求低。
[0063] 在上述技术方案的基础上,可选地,在得到上述的第一光效渲染图之后,方法还包括:基于预设的漫反射光照模型对第一光效渲染图进行处理,得到第二图像的光效渲染图。这样设置可以使得所形成的光照效果更加自然、逼真。可选地,在实际中,可以采用冯氏光照模型,基于深度和法线信息对第一光照效果图进行处理,得到第二光效渲染图。
[0064] 由于在真实世界中,以照度(Luminosity)表示物体被照亮的程度。对应于同一个光源来说,光源离光照面越远,光照面上的照度越小,光照面越暗;光源离光照面越近,光照面上的照度越大,光照面越亮。基于此,理论上,在虚拟世界中,第一三维网格模型上的点在Z轴方向的坐标值越大,越靠近模拟光源,该点的亮度应该越高。第一三维网格模型上的点在Z轴方向的坐标值越小,越远离模拟光源,该点的亮度应该越低。因此,在上述各技术方案的基础上,可以进一步基于第一三维网格模型上的点在Z轴方向的坐标值,对第一三维网格模型上的点的光照信息进行修正,以进一步提高该物体所呈现的光效与真实世界的光效的一致性。
[0065] 具体地,假设以灰度值表征光照信息。此时,第一三维网格模型上的点在Z轴方向的坐标值越大,灰度值越大。可选地,预先确定Z轴方向的坐标值与光照信息修正参数的转化关系。如设置预设权值,通过令坐标值与预设权值相乘,并使得乘积结果(即光照信息修正参数)在0‑255范围内。后续基于步骤140得到的第一三维网格模型上的点的光照信息和同一点的光照信息修正参数,确定该点最终的光照信息。在执行步骤140时,基于修正后的第一三维网格模型上的点的光照信息,对物体图像进行渲染,得到第一光效渲染图。
[0066] 进一步地,在实际中有可能出现在执行步骤120之后,所形成的第一三维网格模型中部分靠近边界的区域与背景的交界处因为深度过渡不平滑而产生的不自然断面。示例性地,图7为本公开实施例提供的一种在实际中可能出现的情况的示意图。假设图像中的物体指代人脸,除人脸部分外,其他部分视为背景。若直接在人脸的表面上生成人脸的第一三维网格模型。并设置图像所在平面(即标准平面,也可以理解为背景图像所在平面)的灰度为0,表现为黑色(图7中未示出),将第一三维网格模型Z轴坐标转化为灰度值绘制出来,其结果如图7所示。在图7中,人脸三维网格模型高出平面的高度越高颜色越白,由于额头位置明显高于标准平面,会使得该处颜色过渡不平滑,颜色突变,形成断层。如果直接以此三维网格模型为基础,进行光效处理,会在人脸和背景的交界处产生不自然断面。
[0067] 图8为本公开实施例提供的另一种基于图像的光效处理方法的流程图。图8为图7中的一个具体示例。参见图8,该基于图像的光效处理方法包括:
[0068] 步骤210、获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中光效素材图上包括光照信息。
[0069] 步骤220、基于预设的物体匹配算法,在物体的表面上生成物体的第二三维网格模型。
[0070] 此处,第二三维网格模型是指仅基于图像中的物体图像的深度信息,生成的三维网格模型,该三维模型可能存在因深度过渡不平滑而产生不自然断面的问题。
[0071] 步骤230、对第二三维网格模型上与图像交界的部分进行平滑处理,得到物体的第一三维网格模型。
[0072] 本步骤的具体实现方法有多种,可选地,其可以包括:在图像上围绕物体插入多个点;将多个点与第二三维网格模型边缘上的点进行连接,生成新的网格;基于新生成的网格和第二三维网格模型,生成物体的第一三维网格模型。
[0073] 其中,所插入的点的具体插入位置只要位于图像中的背景图像部分即可。其具体位置本公开不作限制。其可以在图像的四周边线处,也可以不在图像的四周边线处。并且在插入点时,可以仅在可能存在自然断面的区域附近插入点,也可以设置无论是否存在自然断面,在物体外围的所有区域都插入点。
[0074] 如果将背景图像所在平面视作为标准平面,第二三维网格模型则相当于位于标准平面上的凸起,而通过将多个点与第二三维网格模型边缘上的点进行连接,生成的新的网格相当于将凸起的边缘与标准平面连接的斜坡。
[0075] 图9为本公开实施例提供的一种执行步骤230之后的示意图。令插入的点的深度值设置为0,将新插入的点与原人脸三维模型的最外层顶点相连接,整体绘制后结果如图9所示。从图9可以看出额头到图像上边缘出现了一个渐变的效果。不过由于插入的点比较稀疏,有一些网格的伪像。在实际中,插入的点越密集,所形成的渐变的效果越好。从上述内容可知,采用上述方法可以解决因物体边缘与背景交界处深度过渡不平滑而产生的不自然断面的问题。
[0076] 进一步地,为了进一步使得光照效果更加自然、逼真,可以设置将“基于新生成的网格和第二三维网格模型,生成物体的第一三维网格模型”,替换为“基于新生成的网格和第二三维网格模型,获得物体的第三三维网格模型;对第三三维网格模型进行滤波处理,得到物体的第一三维网格模型”。图10为本公开实施例提供的另一种执行步骤230之后的示意图。图10为对图9进行滤波处理后的结果。显然,相较于图9,图10的光照效果更加自然、逼真。
[0077] 可选地,滤波处理包括均值滤波。
[0078] 步骤240、根据光效素材图上的光照信息,对图像的背景部分进行渲染,以及根据模拟光源的第一位置,在图像上渲染得到物体的阴影。
[0079] 步骤250、根据模拟光源的第一位置、第一三维网格模型上的点距离图像表面的距离,以及光效素材图,确定第一三维网格模型上的点的光照信息。
[0080] 步骤260、根据第一三维网格模型上的点的光照信息,对图像中的物体图像进行渲染,得到图像的第一光效渲染图。
[0081] 上述技术方案通过对第二三维网格模型上与图像交界的部分进行平滑处理,可以使得所形成的光照效果更加自然、逼真。
[0082] 本公开实施例还提供一种光效处理装置。图11为本公开实施例提供的一种光效处理装置的结构框图。参见图11,该光效处理装置包括:
[0083] 获取模块310,用于获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中所述光效素材图上包括光照信息;
[0084] 生成模块320,用于根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型;
[0085] 确定模块330,用于根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息;
[0086] 第一渲染模块340,用于根据所述第一三维网格模型上的点的光照信息,对所述图像中的物体图像进行渲染,得到所述图像的第一光照效果图。
[0087] 可选地,所述装置还包括:
[0088] 第二渲染模块,用于根据所述光效素材图上的光照信息,对所述图像的背景部分进行渲染。
[0089] 可选地,所述装置还包括:
[0090] 第三渲染模块,用于根据所述模拟光源的第一位置,在所述图像上渲染得到所述物体的阴影。
[0091] 可选地,所述装置还包括:
[0092] 漫反射处理模块,用于基于预设的漫反射光照模型对所述第一光效渲染图进行处理,得到所述图像的第二光效渲染图。
[0093] 可选地,所述生成模块,包括:
[0094] 第一生成子模块,用于基于预设的物体匹配算法,在所述物体的表面上生成所述物体的第二三维网格模型;
[0095] 平滑处理子模块,用于对所述第二三维网格模型上与所述图像交界的部分进行平滑处理,得到所述物体的第一三维网格模型。
[0096] 可选地,所述平滑处理子模块,包括:
[0097] 插入子单元,用于在所述图像上围绕所述物体插入多个点;
[0098] 第一生成子单元,用于将所述多个点与所述第二三维网格模型边缘上的点进行连接,生成新的网格;
[0099] 第二生成子单元,用于基于新生成的网格和所述第二三维网格模型,生成所述物体的第一三维网格模型。
[0100] 可选地,所述第二生成子单元,用于:
[0101] 基于所述新生成的网格和所述第二三维网格模型,获得所述物体的第三三维网格模型;以及
[0102] 对所述第三三维网格模型进行滤波处理,得到所述物体的第一三维网格模型。
[0103] 可选地,所述滤波处理包括均值滤波。
[0104] 可选地,所述第三渲染模块,包括:
[0105] 确定子模块,用于根据所述模拟光源的所述第一位置,确定所述物体被所述模拟光源照射后形成的阴影在所述图像上的第二位置;
[0106] 渲染子模块,用于在所述图像的所述第二位置上渲染得到所述阴影。
[0107] 可选地,所述确定子模块,包括:
[0108] 分割子单元,用于从所述图像中分割剔除所述物体图像,得到所述物体图像所在区域的掩膜;
[0109] 确定子单元,用于根据所述模拟光源的所述第一位置,确定所述掩膜相对于所述区域的偏移量,得到所述物体的阴影在所述图像上的第二位置。
[0110] 可选地,所述确定模块,用于:
[0111] 根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,确定所述第一三维网格模型上的点受到所述模拟光源照射后,在所述光效素材图上的投影点;
[0112] 确定所述第一三维网格模型上的点对应的投影点的光照信息为所述第一三维网格模型上的点的光照信息。
[0113] 由于本公开实施例提供的光效处理装置,可以用于执行本公开实施例提供的任意一种光效处理方法,其具有其可执行的光效处理方法相同或相应的有益效果,此处不再赘述。
[0114] 本公开实施例还提供一种终端设备,该终端设备包括处理器和存储器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时可以实现上述图1‑图10中任一实施例的方法。
[0115] 示例的,图12是本公开实施例中的一种终端设备的结构示意图。下面具体参考图12,其示出了适于用来实现本公开实施例中的终端设备1000的结构示意图。本公开实施例中的终端设备1000可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图12示出的终端设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0116] 如图12所示,终端设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有终端设备1000操作所需的各种程序和数据。处理装置1001、ROM 1002以及RAM 1003通过总线
1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
[0117] 通常,以下装置可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许终端设备1000与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的终端设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0118] 特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从ROM 1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
[0119] 需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
[0120] 在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText Transfer Protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0121] 上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。
[0122] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备:获取图像、光效素材图,以及模拟光源在三维空间中的第一位置,其中所述光效素材图上包括光照信息;根据所述图像中的物体图像,在所述物体图像的表面上生成所述物体的第一三维网格模型;根据所述模拟光源的第一位置、所述第一三维网格模型上的点距离所述图像表面的距离,以及所述光效素材图,确定所述第一三维网格模型上的点的光照信息;根据所述第一三维网格模型上的点的光照信息,对所述图像中的物体图像进行渲染,得到所述图像的第一光效渲染图。
[0123] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0124] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0125] 描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
[0126] 本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
[0127] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0128] 本公开实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时可以实现上述图1‑图10任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
[0129] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0130] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。