图像处理方法、装置、电子设备和存储介质与流程

文档序号:15832883发布日期:2018-11-07 07:31阅读:161来源:国知局
图像处理方法、装置、电子设备和存储介质与流程

本申请涉及图像处理技术领域,尤其涉及一种图像处理方法、装置、电子设备和计算机可读存储介质。

背景技术

现有的人脸图像整形技术通常是基于2d平面图像,对平面图像上的像素点进行移位。相关技术中,实现人脸图像整形所使用的主流方法有两种:一种是通过划定像素点位移范围,对该范围内的每个像素点设定位移权重,然后对每个像素点按照某个方向进行位移;另一种是通过将2d平面图像划分为多个三角形,并对每个三角形顶点按照需求方向进行位移,然后对变化后的三角形内部进行线性拉伸,便可得到形变后的图像。

但是目前存在的问题是:上述两种方式均是从2d平面图像中获取人脸2d关键点,依据2d关键点设定位移变量,该位移变量是平面图像上的关键点相对值,由于量化程度不高导致图像形变不够精准。



技术实现要素:

本申请的目的旨在至少在一定程度上解决上述的技术问题之一。

为此,本申请的第一个目的在于提出一种图像处理方法。该方法可以得到更为精准的人脸整形结果,提高了图像形变的精确度,提升了用户的使用体验。

本申请的第二个目的在于提出一种图像处理装置。

本申请的第三个目的在于提出一种电子设备。

本申请的第四个目的在于提出一种计算机可读存储介质。

为达到上述目的,本申请第一方面实施例提出的图像处理方法,包括:获取预先设定的目标对象人脸三维网格模型上的整形参数;基于所述人脸三维网格模型上的整形参数,计算所述人脸三维网格模型中的各个3d关键点在三维空间上的位移向量;针对每个关键点,将所述每个关键点的3d位移向量映射至二维平面上,得到所述每个关键点在所述二维平面上的位移向量;根据所述人脸三维网格模型和所述每个关键点在所述二维平面上的位移向量,生成所述目标对象的经过3d整形后的人脸图像。

为达到上述目的,本申请第二方面实施例提出的图像处理装置,包括:整形参数获取模块,用于获取预先设定的目标对象人脸三维网格模型上的整形参数;计算模块,用于基于所述人脸三维网格模型上的整形参数,计算所述人脸三维网格模型中的各个3d关键点在三维空间上的位移向量;位移向量映射模块,用于针对每个关键点,将所述每个关键点的3d位移向量映射至二维平面上,得到所述每个关键点在所述二维平面上的位移向量;整形图像生成模块,用于根据所述人脸三维网格模型和所述每个关键点在所述二维平面上的位移向量,生成所述目标对象的经过3d整形后的人脸图像。

为达到上述目的,本申请第三方面实施例提出的电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现本申请第一方面实施例所述的图像处理方法。

为达到上述目的,本申请第四方面实施例提出的非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请第一方面实施例所述的图像处理方法。

根据本申请实施例的图像处理方法、装置、电子设备和存储介质,可通过设定的人脸三维网格模型上的整形参数,得到人脸3d关键点的3d位移向量,并根据图像上人脸的朝向角度计算出3d关键点位移向量到2d平面的映射关系,从而得到2d平面上的位移向量并计算出新的人脸关键点,最后根据3d关键点的网格结构对图像进行线性拉伸即可得到人脸的整形结果。即基于人脸三维网格模型对人脸图像上的像素点位移进行量化,首先设定三维网格模型上的位移量,随后进行3d到2d方向的映射,得到量化后的2d图像上的像素位移量,从而得到更为精准的人脸整形结果,提高了图像形变的精确度,提升了用户的使用体验。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本申请一个实施例的图像处理方法的流程图;

图2是根据本申请实施例的人脸三维网格模型的建立方法的流程图;

图3是根据本申请一个具体实施例的图像处理方法的流程图;

图4是根据本申请一个实施例的图像处理装置的结构示意图;

图5是根据本申请一个具体实施例的图像处理装置的结构示意图;

图6是根据本申请另一个具体实施例的图像处理装置的结构示意图;

图7是根据本申请一个实施例的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的图像处理方法、装置、电子设备和计算机可读存储介质。

图1是根据本申请一个实施例的图像处理方法的流程图。需要说明的是,本申请实施例的图像处理方法可应用于本申请实施例的图像处理装置,该图像处理装置可被配置于本申请实施例的电子设备上。其中,该电子设备可以是移动终端,比如手机、平板电脑、个人数字助理等具有各种操作系统的硬件设备。

如图1所示,该图像处理方法可以包括:

s110,获取预先设定的目标对象人脸三维网格模型上的整形参数。

具体地,可预先设定目标对象人脸三维网格模型上的整形参数。作为一种示例,所述人脸三维网格模型上的整形参数可通过以下方式设定:获取预先建立的目标对象的人脸三维网格模型,并接收目标对象针对该人脸三维网格模型的编辑操作,并根据所述编辑操作确定所述人脸三维网格模型上的整形参数。

可选地,在对目标对象的人脸图像进行整形之前,可先获取该目标对象的人脸三维网格模型。此时,目标对象可根据自己需求和喜好对该人脸三维网格模型进行编辑,例如,可对该人脸三维网格模型进行瘦脸、隆鼻、缩小颧骨、垫下巴等操作。当接收到目标对象针对自己的人脸三维网格模型的编辑操作时,可根据所述编辑操作确定所述人脸三维网格模型上的整形参数。其中,该整形参数可包括但不限于待处理的像素点、和所述待处理的像素点所要移动的位移变量。例如,以所述编辑操作为瘦脸操作为例,根据该瘦脸操作确定所述人脸三维网格模型上哪些像素点需要被处理,且这些像素点需要被移动到哪里等信息。

在本申请的一个实施例中,如图2所示,可通过以下步骤预先建立所述目标对象的人脸三维网格模型:

s210,获取目标对象的多帧图像;

s220,根据多帧图像构建目标对象的人脸三维模型;

s230,基于人脸三维模型的网格信息,从所述网格信息中提取人脸轮廓上的多个3d关键点;

例如,可基于人脸三维模型的网格信息,从所述网格信息中提取人脸轮廓上的296个3d关键点。

s240,基于插值算法,根据人脸轮廓上的多个3d关键点生成人脸内部的多个3d关键点和人脸轮廓外部的多个3d关键点;

s250,根据人脸轮廓上的多个3d关键点、人脸内部的多个3d关键点和人脸轮廓外部的多个3d关键点,建立目标对象的人脸三维网格模型。

例如,可根据人脸轮廓上的多个3d关键点,插值得到人脸内部3d关键点33个和人脸轮廓外部3d关键点8个,根据这些3d关键点构成新的3d网格模型,即所述目标对象的人脸三维网格模型。

由此,通过目标对象预先对自身的人脸三维网格模型进行编辑,根据该编辑操作即可确定所述人脸三维网格模型上的整形参数,这样,在对目标对象的平面图像进行整形时,可获取该预先设定的人脸三维网格模型上的整形参数,进而后续可基于所述整形参数实现对目标对象的平面图像的整形。

s120,基于人脸三维网格模型上的整形参数,计算人脸三维网格模型中的各个3d关键点在三维空间上的位移向量。

例如,以对所述人脸三维网格模型进行瘦脸操作为例,可确定针对所述瘦脸操作对应的整形参数,比如,该整形参数可为人脸三维网格模型上哪些像素点需要被处理,且这些像素点需要被移动到哪里等信息,这样,可基于该整形参数计算出所述人脸三维网格模型中的各个3d关键点在三维空间上的位移向量。

s130,针对每个关键点,将每个关键点的3d位移向量映射至二维平面上,得到每个关键点在二维平面上的位移向量。

可选地,确定二维平面上的人脸朝向角度,并根据所述二维平面上的人脸朝向角度计算所述每个关键点的3d位移向量到所述二维平面的映射关系,并根据所述映射关系确定所述每个关键点在所述二维平面上的位移向量。

也就是说,可根据二维平面图像上的人脸朝向角度,将各个3d关键点在三维空间上的位移向量投影到二维平面上,得到每个关键点的3d位移向量在二维平面上的投影向量,该投影向量即为关键点在二维平面上的位移向量。

s140,根据人脸三维网格模型和每个关键点在二维平面上的位移向量,生成目标对象的经过3d整形后的人脸图像。

作为一种示例,可根据所述每个关键点在所述二维平面上的位移向量,生成平面图像上变形后的3d关键点,并根据所述人脸三维网格模型和所述变形后的3d关键点对所述平面图像进行线性拉伸,得到所述目标对象经过3d整形后的人脸图像。

也就是说,可根据所述每个关键点在所述二维平面上的位移向量,计算得到平面图像上所述每个关键点将要变形后的关键点位置,并依据所述人脸三维网格模型和所述每个关键点将要变形后的关键点位置,对所述平面图像进行线性拉伸,得到所述目标对象经过3d整形后的人脸图像。

根据本申请实施例的图像处理方法,可通过设定的人脸三维网格模型上的整形参数,得到人脸3d关键点的3d位移向量,并根据图像上人脸的朝向角度计算出3d关键点位移向量到2d平面的映射关系,从而得到2d平面上的位移向量并计算出新的人脸关键点,最后根据3d关键点的网格结构对图像进行线性拉伸即可得到人脸的整形结果。即基于人脸三维网格模型对人脸图像上的像素点位移进行量化,首先设定三维网格模型上的位移量,随后进行3d到2d方向的映射,得到量化后的2d图像上的像素位移量,从而得到更为精准的人脸整形结果,提高了图像形变的精确度,提升了用户的使用体验。

图3是根据本申请一个具体实施例的图像处理方法的流程图。

为了提升用户体验,本申请实施例的图像处理方法可应用于用户自拍场景下,比如当检测到用户使用自拍模式时,可自动对预览界面上显示的图像进行整形处理,这样,当检测到用户点击确认拍摄按钮时,可直接得到已整形处理后的人脸图像。具体地,如图3所示,该图像处理方法可以包括:

s310,在检测到用户使用自拍模式时,获取预先设定的用户人脸三维网格模型上的整形参数。

具体地,可预先设定用户人脸三维网格模型上的整形参数。作为一种示例,所述人脸三维网格模型上的整形参数可通过以下方式设定:获取预先建立的用户的人脸三维网格模型,并接收用户针对该人脸三维网格模型的编辑操作,并根据所述编辑操作确定所述人脸三维网格模型上的整形参数。

可选地,在对用户的人脸图像进行整形之前,可先获取该用户的人脸三维网格模型。此时,用户可根据自己需求和喜好对该人脸三维网格模型进行编辑,例如,可对该人脸三维网格模型进行瘦脸、隆鼻、缩小颧骨、垫下巴等操作。当接收到用户针对自己的人脸三维网格模型的编辑操作时,可根据所述编辑操作确定所述人脸三维网格模型上的整形参数。其中,该整形参数可包括但不限于待处理的像素点、和所述待处理的像素点所要移动的位移变量。例如,以所述编辑操作为瘦脸操作为例,根据该瘦脸操作确定所述人脸三维网格模型上哪些像素点需要被处理,且这些像素点需要被移动到哪里等信息。

s320,基于人脸三维网格模型上的整形参数,计算人脸三维网格模型中的各个3d关键点在三维空间上的位移向量。

s330,针对每个关键点,将每个关键点的3d位移向量映射至二维平面上,得到每个关键点在二维平面上的位移向量。

s340,根据人脸三维网格模型和每个关键点在二维平面上的位移向量,生成用户的经过3d整形后的人脸图像。

作为一种示例,可根据所述每个关键点在所述二维平面上的位移向量,生成拍摄预览界面中的平面图像上变形后的3d关键点,并根据所述人脸三维网格模型和所述变形后的3d关键点对所述平面图像进行线性拉伸,得到所述用户经过3d整形后的人脸图像。

s350,将所述用户经过3d整形后的人脸图像显示在拍摄预览界面上。

可选地,在得到所述用户经过3d整形后的人脸图像之后,可将该人脸图像显示在拍摄预览界面上,这样,在检测到用户点击确认拍摄按钮时,可直接得到已整形处理后的人脸图像。

根据本申请实施例的图像处理方法,在检测到用户使用自拍模式时,可自动对预览界面上显示的图像进行整形处理,这样,当检测到用户点击确认拍摄按钮时,可直接得到已整形处理后的人脸图像,提升了用户的拍照体验。

需要说明的是,在本申请的一个实施例中,本申请实施例的图像处理方法还可应用于对已拍摄得到的平面图像进行整形处理的场景中,例如,可利用本申请实施例的图像处理方法对用户已拍摄过的自拍图像进行整形处理,得到经过3d整形后的自拍图像。

与上述几种实施例提供的图像处理方法相对应,本申请的一种实施例还提供一种图像处理装置,由于本申请实施例提供的图像处理装置与上述几种实施例提供的图像处理方法相对应,因此在前述图像处理方法的实施方式也适用于本实施例提供的图像处理装置,在本实施例中不再详细描述。图4是根据本申请一个实施例的图像处理装置的结构示意图。如图4所示,该图像处理装置400可以包括:整形参数获取模块410、计算模块420、位移向量映射模块430和整形图像生成模块440。

具体地,整形参数获取模块410用于获取预先设定的目标对象人脸三维网格模型上的整形参数。

计算模块420用于基于人脸三维网格模型上的整形参数,计算人脸三维网格模型中的各个3d关键点在三维空间上的位移向量。

位移向量映射模块430用于针对每个关键点,将每个关键点的3d位移向量映射至二维平面上,得到每个关键点在二维平面上的位移向量。作为一种示例,位移向量映射模块430可确定所述二维平面上的人脸朝向角度,并根据所述二维平面上的人脸朝向角度计算所述每个关键点的3d位移向量到所述二维平面的映射关系,并根据所述映射关系确定所述每个关键点在所述二维平面上的位移向量。

整形图像生成模块440用于根据人脸三维网格模型和每个关键点在二维平面上的位移向量,生成目标对象的经过3d整形后的人脸图像。作为一种示例,整形图像生成模块440可根据所述每个关键点在所述二维平面上的位移向量,生成平面图像上变形后的3d关键点,并根据所述人脸三维网格模型和所述变形后的3d关键点对所述平面图像进行线性拉伸,得到所述目标对象经过3d整形后的人脸图像。

需要说明的是,可预先设定目标对象人脸三维网格模型上的整形参数。可选地,在本申请的一个实施例中,如图5所示,该图像处理装置400还可包括:整形参数预先设定模块450,用于预先设定所述目标对象人脸三维网格模型上的整形参数。其中,在本申请的实施例中,如图5所示,整形参数预先设定模块450可包括:获取单元451、接收单元452和确定单元453。其中,获取单元451用于获取预先建立的所述目标对象的人脸三维网格模型;接收单元452用于接收所述目标对象针对所述人脸三维网格模型的编辑操作;确定单元453用于根据所述编辑操作,确定所述人脸三维网格模型上的整形参数。

还需要说明的是,在对目标对象的人脸图像进行整形之前,可先获取该目标对象的人脸三维网格模型。此时,目标对象可根据自己需求和喜好对该人脸三维网格模型进行编辑,例如,可对该人脸三维网格模型进行瘦脸、隆鼻、缩小颧骨、垫下巴等操作。当接收到目标对象针对自己的人脸三维网格模型的编辑操作时,可根据所述编辑操作确定所述人脸三维网格模型上的整形参数。其中,该整形参数可包括但不限于待处理的像素点、和所述待处理的像素点所要移动的位移变量。例如,以所述编辑操作为瘦脸操作为例,根据该瘦脸操作确定所述人脸三维网格模型上哪些像素点需要被处理,且这些像素点需要被移动到哪里等信息。

可选地,在本申请的一个实施例中,如图6所示,该图像处理装置400还可包括:模型预先建立模块460,用于预先建立所述目标对象的人脸三维网格模型。其中,在本申请的实施例中,如图6所示,该模型预先建立模块460可以包括:获取单元461、第一建立单元462、提取单元463、生成单元464和第二建立单元465。

其中,获取单元461用于获取所述目标对象的多帧图像;第一建立单元462用于根据所述多帧图像构建所述目标对象的人脸三维模型;提取单元463用于基于所述人脸三维模型的网格信息,从所述网格信息中提取人脸轮廓上的多个3d关键点;生成单元464用于基于插值算法,根据所述人脸轮廓上的多个3d关键点生成人脸内部的多个3d关键点和人脸轮廓外部的多个3d关键点;第二建立单元465用于根据所述人脸轮廓上的多个3d关键点、所述人脸内部的多个3d关键点和所述人脸轮廓外部的多个3d关键点,建立所述目标对象的人脸三维网格模型。

根据本申请实施例的图像处理装置,可基于人脸三维网格模型对人脸图像上的像素点位移进行量化,首先设定三维网格模型上的位移量,随后进行3d到2d方向的映射,得到量化后的2d图像上的像素位移量,从而得到更为精准的人脸整形结果,提高了图像形变的精确度,提升了用户的使用体验。

为了实现上述实施例,本申请还提出了一种电子设备。

图7是根据本申请一个实施例的电子设备的结构示意图。如图7所示,该电子设备700可以包括:存储器710、处理器720及存储在存储器710上并可在处理器720上运行的计算机程序730,处理器720执行所述程序730时,实现本申请上述任一个实施例所述的图像处理方法。

为了实现上述实施例,本申请还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请上述任一个实施例所述的图像处理方法。

在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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