掌桥专利:专业的专利平台
掌桥专利
首页

基于图像的纹理填充方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:46:20


基于图像的纹理填充方法、装置、设备及存储介质

技术领域

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

背景技术

相关技术提供的应用程序能够为用户提供图像编辑功能,用户通过该功能能够在图像上添加有趣的纹理效果,但是,基于相关技术添加的纹理与原始图像的结合比较生硬,不够自然,真实感较差。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于图像的纹理填充方法、装置及终端设备。

本公开实施例的第一方面提供了一种基于图像的纹理填充方法,包括:对图像中的填充对象进行图像分割处理,得到所述填充对象的第一图像,以及所述填充对象在所述图像中的区域;根据所述第一图像,确定得到所述填充对象的三维网格模型,所述三维网格模型中的网格点具有法向信息和深度信息;根据所述三维网格模型,在所述图像的所述区域上填充纹理,得到填充图像,使得所述填充图像上相应位置的纹理的法向和深度与在所述填充对象的三维网格模型上相应位置的网格点的法向和深度一致。

本公开实施例的第二方面提供了一种纹理填充装置,包括:

分割处理模块,用于对图像中的填充对象进行图像分割处理,得到所述填充对象的第一图像,以及所述填充对象在所述图像中的区域;

确定模块,用于根据所述第一图像,确定得到所述填充对象的三维网格模型,所述三维网格模型中的网格点具有法向信息和深度信息;

纹理填充模块,用于根据所述三维网格模型,在所述图像的所述区域上填充纹理,得到填充图像,使得所述填充图像上相应位置的纹理的法向和深度与在所述填充对象的三维网格模型上相应位置的网格点的法向和深度一致。

本公开实施例的第三方面提供了一种终端设备,包括:存储器和处理器;其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,所述处理器执行上述的纹理填充方法。

本公开实施例的第四方面提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时,所述处理器执行上述的纹理填充方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:

本公开实施例,通过对图像中的填充对象进行图像分割处理,得到填充对象的第一图像以及填充对象在图像中的区域;然后根据第一图像,确定得到填充对象的三维网格模型,其中,填充对象的三维网格模型中的网格点具有法向信息和深度信息;进而根据填充对象的三维网格模型,在填充对象所在的区域上填充纹理,得到填充图像,使得填充图像上相应位置的纹理的法向和深度与在填充对象的三维网格模型上相应位置的网格点的法向和深度一致。在本公开实施例提供的纹理填充方式中,由于填充图像上相应位置的纹理的法向和深度与填充对象的三维网格模型上相应位置的网格点的法向和深度是一致的,因此,纹理的效果能够体现出纹理贴敷在物体表面的真实立体效果,有效提升了纹理效果的自然度和真实感。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例所述基于图像的纹理填充方法的流程图;

图2A为本公开实施例所述第一图像的示意图;

图2B为本公开实施例所述第二图像的示意图;

图3为本公开实施例所述以人物为例的第一图像的示意图;

图4为本公开实施例所述纹理贴图的示意图;

图5为本公开实施例所述添加纹理后图像的示意图;

图6为本公开实施例所述uv扭曲方式示意图;

图7为本公开实施例所述纹理填充装置的结构框图;

图8为本公开实施例所述终端设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

目前基于图像编辑功能添加的纹理,与原始图像的结合比较生硬,不够自然,真实感较差。为了提升纹理效果的自然度和真实感,本公开实施例提供了一种基于图像的纹理填充方法、装置及终端设备,以下对本公开实施例进行详细介绍。

实施例一:

参照图1所示的基于图像的纹理填充方法的流程图,该方法可应用于具有图像编辑功能的设备,设备诸如数码相机、手机、平板电脑等。基于图像的纹理填充方法包括如下步骤:

步骤110,对图像中的填充对象进行图像分割处理,得到所述填充对象的第一图像,以及所述填充对象在所述图像中的区域。

在本实施例中,获得的图像可以是图像采集装置拍摄的图像,也可以是由网络下载、本地存储或人工上传的图像。该图像可以包括至少一个填充对象,其中,填充对象可以为人、动物或者机械等其他任意待填充纹理的对象。

本实施例可以采用预设的分割方法,诸如基于区域的分割方法或基于边缘的分割方法,可以从图像中分割获得填充对象的第一图像,以及填充对象在图像中的区域。参照图2A所示的以人物衣服为例的填充对象,第一图像a为人物衣服的图像,参照图2B人物衣服所在的区域b为与人物衣服轮廓一致的区域,当然这里仅为示例说明而不是唯一限定。

步骤120,根据所述第一图像,确定得到所述填充对象的三维网格模型,所述三维网格模型中的网格点具有法向信息和深度信息。

在一些可能的实现方式中,可以将第一图像输入三维重建模型中,该三维重建模型为预先训练好的,根据三维重建模型重建填充对象的三维网格模型,一般的填充对象的三维网格模型上的网格点具有法向信息和深度信息。在另一种实现方式中也可以通过图像分割技术得到填充对象上各位置的图像,即在这种方式中第一图像包括多个子图像,该些子图像分别为填充对象上各位置的图像,然后基于预设的三维重建模型分别构建各子图像的三维网格模型,并根据各子图像的三维网格模型确定得到各子图像的三维网格模型上的网格点的法向和深度,到这里通过图像分割得到的各子图像已知的是这些子图像是填充对象上各位置的图像,但是并不了解这些子图像具体对应的是填充对象上哪个位置的图像,要想获得填充对象的三维网格模型或者填充对象的三维网格模型上各网格点的法向和深度,必须确定各子图像对应在填充对象上的位置,而在实际场景中物体不同部位上的点的法向和深度具有一定的规律性,根据这些规律性可以实现对子图像位置的判断,因此,在本实施例的一种示例性的实施方式中可以预先训练得到的一个预测模型,该训练模型的输入可以是三维网格模型上的网格点的法向和深度,输出可以是对应图像在物体图像上的位置,从而本实施例中通过将各子图像的三维网格模型上的网格点的法向和深度输入预测模型,即可得到各子图像在填充对象上的位置,进而根据各子图像在填充对象上的位置,以及各子图像的三维网格模型即可重建获得填充对象的三维网格模型,获得填充对象的三维网格模型上的网格点的法向和深度。

步骤S130,根据所述三维网格模型,在所述图像的所述区域上填充纹理,得到填充图像,使得所述填充图像上相应位置的纹理的法向和深度与在所述填充对象的三维网格模型上相应位置的网格点的法向和深度一致。

本实施例在填充对象所在的区域上填充的纹理可以为纹理贴图和程序纹理中的至少一种。其中,纹理贴图是指具有特定纹理图案的二维图像。程序纹理是指基于噪声算法等数学描述的方式来生成的纹理。由于基于纹理贴图和/或程序纹理的方式填充的纹理,图像上各点的纹理的法向均是垂直于图像表面向上的,深度均为图像表面的深度,因此,为了使得填充后的纹理能够体现出与实际三维场景中的三维效果,需要在纹理填充后对纹理的坐标进行调整,以呈现出真实的三维效果,在本实施例的一种示例性的实施方式中可以采用图像扭曲的方法对填充后的纹理的坐标进行扭曲处理,得到填充对象,使得填充图像上相应位置的纹理的法向和深度与填充对象的三维网格模型上相应位置的网格点的法向和深度一致,这样就可以使最终得纹理填充效果呈现出真实的三维立体效果,提升了纹理效果的自然度和真实感。

具体的,本实施例根据填充对象的三维网格模型,在填充对象所在的区域上填充纹理得到填充图像的方法有多种,在一种示例性的方法中,可以先基于图像分割技术,可以根据填充对象在图像中的区域,将填充对象从该区域中切割出去,得到该区域的掩膜,然后再根据填充对象的三维网格模型上的网格点的深度和法向,在该区域的掩膜上进行纹理渲染,使得渲染得到的填充图像上相应位置的法向和深度与填充对象的三维网格模型上相应位置的网格点的法向和深度一致。在本实施例的另一种示例性的实施方式中,也可以在得到填充对象在图像上的区域,以及填充对象的三维网格模型后,直接在图像的所述区域上添加纹理,并对添加后的纹理进行扭曲处理,使得填充图像上相应位置的法向和深度与填充对象的三维网格模型上相应位置的网格点的法向和深度一致。当然上述两种填充方式仅为示例说明并不是本公开实施例的全部实施方式。

本公开实施例通过对图像中的填充对象进行图像分割处理,得到填充对象的第一图像以及填充对象在图像中的区域;然后根据第一图像,确定得到填充对象的三维网格模型,其中,填充对象的三维网格模型中的网格点具有法向信息和深度信息;进而根据填充对象的三维网格模型,在填充对象所在的区域上填充纹理,得到填充图像,使得填充图像上相应位置的纹理的法向和深度与在填充对象的三维网格模型上相应位置的网格点的法向和深度一致。在本公开实施例提供的纹理填充方式中,由于填充图像上相应位置的纹理的法向和深度与填充对象的三维网格模型上相应位置的网格点的法向和深度是一致的,因此,纹理的效果能够体现出纹理贴敷在物体表面的真实立体效果,有效提升了纹理效果的自然度和真实感。

本实施例还给出了一种构建填充对象的三维网格模型的方式。考虑到在实际应用中,填充对象一般具有多个感兴趣区域,以图3所示的人物为例,该人物可能具有头部、外套、胸腹部和腿部等多个感兴趣区域。相应的,第一图像可以包括多个子图像,多个子图像分别为填充对象上不同位置的图像,诸如:头部子图像、衣袖子图像、胸腹部子图和腿部子图像。

在第一图像包括多个子图像的情况下,根据第一图像,构建填充对象的三维网格模型的具体实现方式,可以参照如下步骤1至步骤3:

步骤1,基于预设的三维重建模型,构建得到各子图像的三维网格模型,各子图像的三维网格模型的网格点具有法向信息和深度信息。

其中,基于三维重建模型构建子图像的三维网格模型的方法仅为本实施例的一种示例性的方法并不是唯一方法,比如在其他实施例中还都可以基于预设的物体匹配算法,从子图像上,匹配得到物体的三维网格模型,例如,针对人脸,可以采用人脸匹配算法,根据人脸图像匹配出人脸的三维网格模型。当然这里仅为示例说明并不是对本实施例所称的物体匹配算法的唯一限定。

本实施例中,获取填充对象的三维网格模型上的网格点的法向和深度的方法有多种,比如在一种示例性的方法中可以将子图像输入预设的数据分析模型中,经由数据分析模型输出子图像的三维网格模型上的网格点的法向预测图和深度预测图。上述法向预测图用于表示该子图像的三维网格模型上的网格点垂直于该点与三维网格模型之间的切面的法向量的方向。深度预测图用于表示该子图像的三维网格模型上的网格点的Z轴坐标值。

此外,子图像的三维网格模型上的网格点的法向和深度除了可以利用三维重建模型来确定,在实际应用中还可以采用其他方式确定。例如,可以根据光度立体法确定子图像上的点的法向,根据子图像上的点的灰度值确定点的深度。

步骤2,根据各子图像的三维网格模型上的网格点的法向和深度,采用预设的预测模型确定得到各子图像在所述填充对象上的位置。

其中,预测模型为预先完成训练的模型,诸如PRN(Pose Residual Network,位姿残差网络),用于根据图像的三维网格模型上的网格点的法向和深度计算该点在图像上的位置。

在本实施例中,可以将子图像的三维网格模型上的网格点的法向和深度输入至预测模型,预测模型根据网格点的法向和深度,计算子图像的三维网格模型上的网格点在填充对象的三维网格模型上的位置坐标。根据子图像的三维网格模型上的网格点在填充对象的三维网格模型上的位置坐标,确定子图像的三维网格模型上的网格点在填充对象上的投影点的坐标,根据子图像的三维网格模型上的网格点在填充对象上的投影点的坐标确定子图像在填充对象上的包围框的参数。将子图像的包围框的参数,与填充对象上衣袖、胸腹部和腿部等各子区域的预设位置参数进行比较,根据比较结果确定子图像在填充对象上的位置。

步骤3,根据各子图像在所述填充对象上的位置以及各子图像的三维网格模型,确定得到所述填充对象的三维网格模型。

另外,本公开实施例在填充对象所在的区域上填充纹理的方式可以有多种,例如如下方式中的至少一种。

方式一:将预设的纹理贴图,添加到填充对象从图像中分割出去后形成的区域上。纹理贴图为预先存储的纹理数据,比如图4所展示的三种不同图形的纹理贴图示例。

方式二:根据预设的纹理参数,在填充对象从图像中分割出去后形成的区域上生成程序纹理;以及,在该区域上插入程序纹理的背景材质。

在具体实现时,通过计算机使用一组预设的纹理参数,生成与区域轮廓一致的程序纹理,将生成的程序纹理添加到区域上。在实际应用中,很多填充对象的表面具有个性化的材质,诸如车辆的不同漆面材质(如高光漆、哑光漆、珍珠漆)呈现的视觉效果是不同的,人物的不同衣服材质(如麻布、丝绸、皮革)呈现的视觉效果也是不同的。从而,为了进一步提升纹理的真实度,本实施例还可以在区域上继续插入程序纹理的背景材质,背景材质诸如木纹、金属、石材等材质。

当将上述两种方式相结合时,可以参照如图5所示的添加纹理后图像的示意图,首先将预设的纹理贴图添加到区域,比如在区域上添加横向条纹形状的纹理贴图,得到第一纹理图像。然后在第一纹理图像的基础上,根据预设的纹理参数,在区域上生成程序纹理,该程序纹理以圆形集合作为示例,得到第二纹理图像。最后在区域上继续插入程序纹理的背景材质并进行uv扭曲处理,得到第三纹理图像。

然而,对于上述纹理贴图,它无法真实反映填充对象表面的动态变化,比如无法体现人物因动作而导致衣服表面出现的褶皱变化。对于程序纹理,虽然是根据纹理参数创建的,在尺度、方向上满足用户一定要求的纹理,且没有失真的概念,但是它依然无法与填充对象的真实表面完全匹配。同时,在上述步骤2中确定的各子图像在填充对象上的位置,无需要求较高的准确性,位置较为模糊会无法体现一些细节。因此,将上述纹理添加到上述区域上时,无论是纹理贴图还程序纹理,在细节的丰富性上均无法达到与填充对象表面的真实动态变化完全一致。

为了改善上述纹理与填充物体存在差异的问题,本实施例可以对填充对象上的纹理进行扭曲处理,使得填充对象上的点的纹理在填充对象的三维网格模型上的法向和深度与填充对象上的点在填充对象的三维网格模型上的法向和深度一致。

在具体实现时,可以通过诸如uv扭曲等图象扭曲算法对纹理进行扭曲,使纹理产生符合现实逻辑的方向性变化,以模拟填充对象上对应点的真实立体效果。根据图6所示的uv扭曲算法,将规则形状的纹理,扭曲成不规则形状的纹理,以使纹理效果更加贴近真实效果。

综上,上述实施例提供的纹理填充方法,根据填充对象的三维网格上的点的法向和深度,在填充对象所在的区域上填充纹理,以及对纹理进行扭曲处理,使得该区域上的点的纹理在填充对象的三维网格模型上的法向和深度与该区域上的点在填充对象的三维网格模型上的法向和深度一致;因此,纹理的效果能够更接近填充对象的真实表面,有效提升了纹理效果的自然度和真实感。

实施例二:

对于实施例一中所提供的纹理填充方法,本公开实施例提供了一种纹理填充装置,参见如图7所示的一种纹理填充装置的结构框图,该装置包括:

分割处理模块702,用于对图像中的填充对象进行图像分割处理,得到所述填充对象的第一图像,以及所述填充对象在所述图像中的区域;

确定模块704,用于根据所述第一图像,确定得到所述填充对象的三维网格模型,所述三维网格模型中的网格点具有法向信息和深度信息;

纹理填充模块706,用于根据所述三维网格模型,在所述图像的所述区域上填充纹理,得到填充图像,使得所述填充图像上相应位置的纹理的法向和深度与在所述填充对象的三维网格模型上相应位置的网格点的法向和深度一致。

在一实施方式中,确定模块704,用于:

根据所述第一图像,采用预设的三维重建模型构建得到所述填充对象的三维网格模型。

在一实施方式中,第一图像包括多个子图像,多个子图像分别为填充对象上不同位置的图像;确定模块704包括:

模型构建子模块,用于基于预设的三维重建模型,构建得到各子图像的三维网格模型,各子图像的三维网格模型的网格点具有法向信息和深度信息;

第一确定子模块,用于根据各子图像的三维网格模型上的网格点的法向和深度,采用预设的预测模型确定得到各子图像在所述填充对象上的位置;

第二确定子模块,用于根据各子图像在所述填充对象上的位置以及各子图像的三维网格模型,确定得到所述填充对象的三维网格模型。

在一实施方式中,纹理填充模块706,包括:

图像切割子模块,用于将所述填充对象从所述图像的所述区域中切割出去;

填充子模块,用于根据所述填充对象的三维网格模型,在所述图像的所述区域上填充纹理,得到填充图像。

在一实施方式中,所述填充子模块,包括:

填充子单元,用于在所述区域上填充纹理;

纹理扭曲子单元,用于根据所述填充对象的三维网格模型上的网格点的法向和深度,对所述区域上的纹理进行扭曲处理,得到填充图像。

在一实施方式中,填充子单元,用于:将预设的纹理贴图,添加到所述区域上。

在一实施方式中,填充子单元,用于:根据预设的纹理参数,在所述区域上生成程序纹理;以及在所述区域上插入所述程序纹理的背景材质。

基于前述实施例,本实施例给出了一种终端设备,包括:存储器和处理器;其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,处理器执行上述方法。

参见图8所示,终端设备可以包括:

处理器801、存储器802、输入装置803和输出装置804。图集打包设备中的处理器801的数量可以一个或多个,图8中以一个处理器为例。在本发明的一些实施例中,处理器801、存储器802、输入装置803和输出装置804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。

存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行图集打包设备的各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置803可用于接收输入的数字或字符信息,以及产生与图集打包设备的用户设置以及功能控制有关的信号输入。

具体在本实施例中,处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现上述图集打包设备的各种功能。

本实施例还给出了一种计算机可读存储介质,存储介质中存储有计算机程序,当计算机程序被处理器执行时,处理器执行上述方法。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 基于图像的纹理填充方法、装置、设备及存储介质
  • 纹理贴图的生成方法、渲染方法、装置、设备及存储介质
技术分类

06120112296533