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

一种化妆进度检测方法、装置、设备及存储介质

文献发布时间:2023-06-19 13:49:36


一种化妆进度检测方法、装置、设备及存储介质

技术领域

本申请属于图像处理技术领域,具体涉及一种化妆进度检测方法、装置、设备及存储介质。

背景技术

化妆已经成为很多人日常生活必不可少的环节,其中,遮瑕是通过遮瑕膏对脸部的痘痘、斑点、皱纹、黑眼圈等瑕疵进行遮盖的化妆手段,遮瑕能够使脸部呈现光滑细致的视觉效果。因此遮瑕是化妆过程中的重要步骤,如果能够将遮瑕的化妆进度实时反馈给用户,将可以极大减少化妆对用户精力的消耗,节省化妆时间。

目前,相关技术中存在一些使用深度学习模型提供虚拟试妆、肤色侦测、个性化产品推荐等功能,这些功能均需要预先收集大量的人脸图片对深度学习模型进行训练。

但人脸图片是用户的隐私数据,很难收集到庞大的人脸图片。且模型训练需耗费大量计算资源,成本高。模型的精度与实时性成反比,化妆进度检测需要实时捕获用户人脸面部信息来确定用户当前的化妆进度,实时性要求很高,能够满足实时性要求的深度学习模型,其检测的准确性不高。

发明内容

本申请提出一种化妆进度检测方法、装置、设备及存储介质,基于当前帧图像与初始帧图像各自的脸部瑕疵信息来确定出当前化妆进度,仅通过图像处理即可检测出化妆进度,运算量小,成本低,减少服务器的处理压力,提高了遮瑕化妆进度检测的效率,能够满足遮瑕化妆进度检测的实时性要求。

本申请第一方面实施例提出了一种化妆进度检测方法,包括:

获取用户化妆视频的初始帧图像和当前帧图像;

分别获取所述初始帧图像和所述当前帧图像各自对应的脸部瑕疵信息;

根据所述初始帧图像和所述当前帧图像及其各自对应的脸部瑕疵信息,确定所述当前帧图像对应的当前化妆进度。

在本申请的一些实施例中,所述根据所述初始帧图像和所述当前帧图像及其各自对应的脸部瑕疵信息,确定所述当前帧图像对应的当前化妆进度,包括:

根据所述初始帧图像对应的脸部瑕疵信息和所述当前帧图像对应的脸部瑕疵信息,计算所述当前帧图像与所述初始帧图像之间的脸部瑕疵差异值;

若所述脸部瑕疵差异值大于预设阈值,则根据所述脸部瑕疵差异值和所述初始帧图像对应的脸部瑕疵信息,计算所述当前帧图像对应的当前化妆进度;

若所述脸部瑕疵差异值小于或等于所述预设阈值,则获取所述用户完成遮瑕上妆后的结果图像,根据所述初始帧图像、所述结果图像和所述当前帧图像,确定所述当前帧图像对应的当前化妆进度。

在本申请的一些实施例中,所述脸部瑕疵信息包括瑕疵类别及对应的瑕疵数目;所述根据所述初始帧图像对应的脸部瑕疵信息和所述当前帧图像对应的脸部瑕疵信息,计算所述当前帧图像与所述初始帧图像之间的脸部瑕疵差异值,包括:

分别计算每种瑕疵类别下所述初始帧图像对应的瑕疵数目与所述当前帧图像对应的瑕疵数目之间的差值;

计算每种瑕疵类别对应的差值之和,将得到的和值作为所述当前帧图像与所述初始帧图像之间的脸部瑕疵差异值。

在本申请的一些实施例中,所述根据所述脸部瑕疵差异值和所述初始帧图像对应的脸部瑕疵信息,计算所述当前帧图像对应的当前化妆进度,包括:

计算所述初始帧图像对应的脸部瑕疵信息中各瑕疵类别对应的瑕疵数目之和,得到总瑕疵数;

计算所述脸部瑕疵差异值与所述总瑕疵数之间的比值,将所述比值作为所述当前帧图像对应的当前化妆进度。

在本申请的一些实施例中,所述获取所述用户完成遮瑕上妆后的结果图像,根据所述初始帧图像、所述结果图像和所述当前帧图像,确定所述当前帧图像对应的当前化妆进度,包括:

根据所述初始帧图像,模拟生成所述用户完成遮瑕上妆后的结果图像;

分别获取所述初始帧图像、所述结果图像和所述当前帧图像各自对应的人脸区域图像;

根据所述初始帧图像、所述结果图像和所述当前帧图像各自对应的人脸区域图像,确定所述当前帧图像对应的当前化妆进度。

在本申请的一些实施例中,所述根据所述初始帧图像、所述结果图像和所述当前帧图像各自对应的人脸区域图像,确定所述当前帧图像对应的当前化妆进度,包括:

分别将所述初始帧图像、所述结果图像和所述当前帧图像各自对应的人脸区域图像转换为HLS颜色空间下仅包含饱和度通道的图像;

通过预设滤波算法分别计算转换后所述初始帧图像、所述结果图像和所述当前帧图像各自的人脸区域图像对应的平滑因子;

根据所述初始帧图像、所述结果图像和所述当前帧图像各自对应的平滑因子,确定所述当前帧图像对应的当前化妆进度。

在本申请的一些实施例中,所述根据所述初始帧图像、所述结果图像和所述当前帧图像各自对应的平滑因子,确定所述当前帧图像对应的当前化妆进度,包括:

计算所述当前帧图像对应的平滑因子与所述初始帧图像对应的平滑因子之间的第一差值;

计算所述结果图像对应的平滑因子与所述初始帧图像对应的平滑因子之间的第二差值;

计算所述第一差值与所述第二差值之间的比值,将所述比值作为所述当前帧图像对应的当前化妆进度。

在本申请的一些实施例中,所述分别获取所述初始帧图像和所述当前帧图像各自对应的脸部瑕疵信息,包括:

分别获取所述初始帧图像和所述当前帧图像各自对应的人脸区域图像;

通过预设的皮肤检测模型分别检测所述初始帧图像和所述当前帧图像各自对应的人脸区域图像中各瑕疵类别对应的瑕疵数目,得到所述初始帧图像和所述当前帧图像各自对应的脸部瑕疵信息。

在本申请的一些实施例中,获取所述初始帧图像对应的人脸区域图像,包括:

检测所述初始帧图像对应的第一人脸关键点;

根据所述第一人脸关键点,对所述初始帧图像及所述第一人脸关键点进行旋转矫正;

根据矫正后的所述第一人脸关键点,从矫正后的所述初始帧图像中截取包含人脸区域的图像;

将所述包含人脸区域的图像缩放至预设尺寸,得到所述初始帧图像对应的人脸区域图像。

在本申请的一些实施例中,所述根据所述第一人脸关键点,对所述初始帧图像及所述第一人脸关键点进行旋转矫正,包括:

根据所述第一人脸关键点包括的左眼关键点和右眼关键点,分别确定左眼中心坐标和右眼中心坐标;

根据所述左眼中心坐标和所述右眼中心坐标,确定所述初始帧图像对应的旋转角度及旋转中心点坐标;

根据所述旋转角度和所述旋转中心点坐标,对所述初始帧图像及所述第一人脸关键点进行旋转矫正。

在本申请的一些实施例中,所述根据矫正后的所述第一人脸关键点,从矫正后的所述初始帧图像中截取包含人脸区域的图像,包括:

从矫正后的所述第一人脸关键点中确定最小横坐标值、最小纵坐标值、最大横坐标值和最大纵坐标值;

根据所述最小横坐标值、所述最小纵坐标值、所述最大横坐标值和所述最大纵坐标值,确定矫正后的所述初始帧图像中人脸区域对应的截取框;

根据所述截取框,从矫正后的所述初始帧图像中截取出包含所述人脸区域的图像。

在本申请的一些实施例中,所述方法还包括:

将所述截取框放大预设倍数;

根据放大后的所述截取框,从矫正后的所述初始帧图像中截取出包含所述人脸区域的图像。

在本申请的一些实施例中,所述获取用户化妆视频中的初始帧图像和当前帧图像之后,还包括:

检测所述初始帧图像和所述当前帧图像中是否均仅包含同一个用户的人脸图像;

如果是,则执行所述分别获取所述初始帧图像和所述当前帧图像各自对应的脸部瑕疵信息的操作;

如果否,则发送提示信息给所述用户的终端,所述提示信息用于提示所述用户保持所述化妆视频中仅出现同一个用户的人脸。

在本申请的一些实施例中,所述方法还包括:

发送所述当前化妆进度给所述用户的终端,以使所述用户的终端显示所述当前化妆进度。

本申请第二方面的实施例提供了一种化妆进度检测装置,包括:

视频帧获取模块,用于获取用户化妆视频的初始帧图像和当前帧图像;

瑕疵检测模块,用于分别获取所述初始帧图像和所述当前帧图像各自对应的脸部瑕疵信息;

化妆进度确定模块,用于根据所述初始帧图像和所述当前帧图像及其各自对应的脸部瑕疵信息,确定所述当前帧图像对应的当前化妆进度。

本申请第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。

本申请第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

在本申请实施例中,获取用户化妆过程的当前帧图像与初始帧图像,检测初始帧图像对应的脸部瑕疵信息和当前帧图像中的脸部瑕疵信息,根据初始帧图像和当前帧图像及其各自对应的脸部瑕疵信息,来确定当前化妆进度。基于当前帧图像与初始帧图像各自对应的脸部瑕疵信息,能够确定二者之间脸部瑕疵的变化,进而确定当前化妆进度。该方法通过图像处理即可准确地检测出遮瑕的化妆进度,运算量小,成本低,减少了服务器的处理压力,提高了遮瑕化妆进度检测的效率,能够满足遮瑕化妆进度检测的实时性要求。

进一步地,确定出从当前帧图像到初始帧图像的脸部瑕疵差异值,在脸部瑕疵差异值大于预设阈值时,计算该脸部瑕疵差异值与初始帧图像对应的总瑕疵数之间的比值,即得到了遮瑕上妆的当前化妆进度,确定过程简单,运算量小,能够快速确定出当前化妆进度,效率很高,能够满足遮瑕化妆进度检测的实时性要求。在脸部瑕疵差异值小于或等于预设阈值时,在初始帧图像的基础上模拟出完成遮瑕上妆的结果图像,引入滤波算法计算初始帧图像、当前帧图像及结果图像各自对应的平滑因子,依据平滑因子的变化情况来确定化妆进度,可以对更细微的变化进行更精确的计算,避免了化妆进度出现短时间突增的情况发生。

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

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本申请一实施例所提供的一种化妆进度检测方法的流程图;

图2示出了本申请一实施例所提供的求解图像的旋转角度的示意图;

图3示出了本申请一实施例所提供的两次坐标系转换的示意图;

图4示出了本申请一实施例所提供的一种化妆进度检测方法的另一流程示意图;

图5示出了本申请一实施例所提供的一种化妆进度检测装置的结构示意图;

图6示出了本申请一实施例所提供的一种电子设备的结构示意图;

图7示出了本申请一实施例所提供的一种存储介质的示意图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。

下面结合附图来描述根据本申请实施例提出的一种化妆进度检测方法、装置、设备及存储介质。

目前相关技术中存在一些虚拟试妆功能,可以应用在销售柜台或者手机应用软件中,采用人脸识别技术对用户提供虚拟试妆服务,可以模拟遮瑕的化妆效果。此外还提供人脸皮肤检测服务,基于这些服务可以帮助用户挑选适合自己的遮瑕产品,但是无法对遮瑕上妆的进度进行显示,不能满足用户实时化妆的需求。相关技术中还存在一些使用深度学习模型提供虚拟试妆、肤色侦测、个性化产品推荐等功能,这些功能均需要预先收集大量的人脸图片对深度学习模型进行训练。但人脸图片是用户的隐私数据,很难收集到庞大的人脸图片。且模型训练需耗费大量计算资源,成本高。模型的精度与实时性成反比,化妆进度检测需要实时捕获用户人脸面部信息来确定用户当前的化妆进度,实时性要求很高,能够满足实时性要求的深度学习模型,其检测的准确性不高。

基于此,本申请实施例提供了一种化妆进度检测方法,该方法用于检测遮瑕的化妆进度,获取用户化妆过程的当前帧图像与初始帧图像(即第一帧图像),获取初始帧图像对应的脸部瑕疵信息和当前帧图像中的脸部瑕疵信息,根据初始帧图像和当前帧图像及其各自对应的脸部瑕疵信息,来确定当前化妆进度。随着遮瑕化妆,用户脸部的一些痘痘、斑点、皱纹等瑕疵逐渐被遮瑕膏遮盖,因此相对于初始帧图像,当前帧图像中脸部瑕疵会变少,所以基于当前帧图像与初始帧图像各自对应的脸部瑕疵信息,能够确定二者之间脸部瑕疵的变化,进而确定当前化妆进度。该方法通过图像处理即可准确地检测出遮瑕的化妆进度,运算量小,成本低,减少了服务器的处理压力,提高了遮瑕化妆进度检测的效率,能够满足遮瑕化妆进度检测的实时性要求。

参见图1,该方法具体包括以下步骤:

步骤101:获取用户化妆视频的初始帧图像和当前帧图像。

本申请实施例的执行主体为服务器。用户的手机或电脑等终端上安装有与服务器提供的化妆进度检测服务相适配的客户端。当用户需要使用化妆进度检测服务时,用户打开终端上的该客户端,该客户端的显示界面中设置有视频上传接口,当检测到用户点击该视频上传接口时,调用终端的摄像装置拍摄用户的化妆视频,在拍摄过程中用户在自己脸部进行遮瑕上妆操作。用户的终端将拍摄的化妆视频以视频流的形式传输给服务器。服务器接收用户的终端传输的该化妆视频的每一帧图像。

在本申请实施例中,服务器将接收到的第一帧图像作为初始帧图像,以该初始帧图像作为参考来比对后续接收到的每一帧图像对应的遮瑕化妆的当前化妆进度。由于对于后续每一帧图像的处理方式都相同,因此本申请实施例以当前时刻接收到的当前帧图像为例来阐述化妆进度检测的过程。

在本申请的另一些实施例中,服务器获得用户的化妆视频的初始帧图像和当前帧图像后,还检测初始帧图像和当前帧图像中是否均仅包含同一个用户的人脸图像。首先检测初始帧图像和当前帧图像中是否均仅包含一个人脸图像,若初始帧图像和/或当前帧图像中包含多个人脸图,或者,初始帧图像和/或当前帧图像中不包含人脸图像,则发送提示信息给用户的终端。用户的终端接收并显示该提示信息,以提示用户保持化妆视频中仅出现同一个用户的人脸。例如,提示信息可以为“请保持镜头内仅出现同一个人的人脸”。

若检测出初始帧图像和当前帧图像中均仅包含一个人脸图像,则进一步判断初始帧图像中的人脸图像与当前帧图像中的人脸图像是否属于同一个用户。具体地,可以通过人脸识别技术提取初始帧图像中人脸图像对应的人脸特征信息,以及提取当前帧图像中人脸图像对应的人脸特征信息,计算这两帧图像中提取的人脸特征信息的相似度,若计算的相似度大于或等于设定值,则确定初始帧图像和当前帧图像中的人脸属于同一用户。若计算的相似度小于设定值,则确定初始帧图像和当前帧图像中的人脸属于不同用户,则发送提示信息给用户的终端。用户的终端接收并显示该提示信息,以提示用户保持化妆视频中仅出现同一个用户的人脸。

服务器通过本步骤获得用户化妆的初始帧图像及当前帧图像后,通过如下步骤102和103的操作来确定用户的当前化妆进度。

步骤102:分别获取初始帧图像和当前帧图像各自对应的脸部瑕疵信息。

首先分别获取初始帧图像和当前帧图像各自对应的人脸区域图像。然后通过预设的皮肤检测模型检测初始帧图像对应的人脸区域图像中各瑕疵类别对应的瑕疵数目,将检测出的每种瑕疵类别及其对应的瑕疵数目作为初始帧图像对应的脸部瑕疵信息。同样地,通过预设的皮肤检测模型检测出当前帧图像对应的人脸区域图像中各瑕疵类别对应的瑕疵数目,得到当前帧图像对应的脸部瑕疵信息。

其中,预设的皮肤检测模型是预先通过大量人脸图像对神经网络模型进行训练得到的,能够对人脸图像中脸部的痘痘、斑点、皱纹等瑕疵进行识别并分类。上述瑕疵类别包括痘痘、斑点、皱纹等瑕疵中的一种或多种。通过预设的皮肤检测模型识别出初始帧图像及当前帧图像各自对应的人脸区域图像中的痘痘数目、斑点数目、皱纹数目等等。

由于获取初始帧图像对应的人脸区域图像的过程,与获取当前帧图像对应的人脸区域图像的过程相同,因此本申请实施例以初始帧图像为例来详细描述获取人脸区域图像的具体过程。

首先检测初始帧图像对应的第一人脸关键点。服务器中配置了预先训练好的用于检测人脸关键点的检测模型,通过该检测模型提供人脸关键点检测的接口服务。服务器获取到用户化妆视频的初始帧图像后,调用人脸关键点检测的接口服务,通过检测模型识别出初始帧图像中用户脸部的所有人脸关键点。为了与当前帧图像对应的人脸关键点进行区分,本申请实施例将初始帧图像对应的所有人脸关键点称为第一人脸关键点。

其中,识别出的人脸关键点包括用户脸部轮廓上的关键点及嘴巴、鼻子、眼睛、眉毛等部位的关键点。识别出的人脸关键点的数目可以为106个。

然后根据第一人脸关键点,获取初始帧图像对应的人脸区域图像。服务器具体通过如下步骤S1-S3的操作来获取初始帧图像对应的人脸区域图像,包括:

S1:根据第一人脸关键点,对初始帧图像及第一人脸关键点进行旋转矫正。

由于用户在通过终端拍摄化妆视频时,不能保证每一帧图像中人脸的姿态角度均相同,为了将每一帧图像中人脸的姿态角度对齐,需要对每一帧图像中的人脸进行旋转矫正,以使矫正后每一帧图像中人脸眼睛的连线都处在同一水平线上,从而确保每一帧图像中人脸的姿态角度相同,避免因姿态角度不同导致化妆进度检测误差较大的问题。

具体地,根据第一人脸关键点包括的左眼关键点和右眼关键点,分别确定左眼中心坐标和右眼中心坐标。从第一人脸关键点确定出左眼区域的全部左眼关键点及右眼区域的全部右眼关键点。对确定出的全部左眼关键点的横坐标取均值,以及对全部左眼关键点的纵坐标取均值,将左眼对应的横坐标的均值和纵坐标的均值组成一个坐标,将该坐标确定为左眼中心坐标。按照同样的方式确定出右眼中心坐标。

然后根据左眼中心坐标和右眼中心坐标,确定初始帧图像对应的旋转角度及旋转中心点坐标。如图2所示,根据左眼中心坐标和右眼中心坐标计算出两个坐标的水平差值dx和竖直差值dy,以及计算出左眼中心坐标和右眼中心坐标的两眼连线长度d。依据两眼连线长度d、水平差值dx和竖直差值dy,计算出两眼连线与水平方向的夹角θ,该夹角θ即为初始帧图像对应的旋转角度。然后根据左眼中心坐标和右眼中心坐标计算出两眼连线的中心点坐标,该中点点坐标即为初始帧图像对应的旋转中心点坐标。

根据计算出的旋转角度和旋转中心点坐标,对初始帧图像及第一人脸关键点进行旋转矫正。具体将旋转角度和旋转中心点坐标输入用于计算图片的旋转矩阵的预设函数中,该预设函数可以为OpenCV中的函数cv2.getRotationMatrix2D()。通过调用该预设函数获得初始帧图像对应的旋转矩阵。然后计算初始帧图像和该旋转矩阵的乘积,得到矫正后的初始帧图像。利用旋转矩阵对初始帧图像进行矫正的操作,也可以通过调用OpenCV中的函数cv2.warpAffine()来完成。

对于第一人脸关键点,需要对每个第一人脸关键点逐一进行矫正,以与矫正后的初始帧图像相对应。在对第一人脸关键点逐一矫正时,需要进行两次坐标系的转换,第一次将以初始帧图像左上角为原点的坐标系转化为以左下角为原点的坐标系,第二次进一步将以左下角为原点的坐标系转化为以上述旋转中心点坐标为坐标原点的坐标系,如图3所示。经过两次坐标系转换后对每个第一人脸关键点进行如下公式(1)的转换,可完成对第一人脸关键点的旋转矫正。

在公式(1)中,x

经过矫正后的初始帧图像和第一人脸关键点是基于整张图像的,整张图像不仅包含用户的人脸信息,还包括其他多余的图像信息,因此需要通过如下步骤S2对矫正后的图像进行人脸区域的裁剪。

S2:根据矫正后的第一人脸关键点,从矫正后的初始帧图像中截取包含人脸区域的图像。

首先从矫正后的第一人脸关键点中确定最小横坐标值、最小纵坐标值、最大横坐标值和最大纵坐标值。然后根据最小横坐标值、最小纵坐标值、最大横坐标值和最大纵坐标值,确定矫正后的初始帧图像中人脸区域对应的截取框。具体地,将最小横坐标值和最小纵坐标值组成一个坐标点,将该坐标点作为人脸区域对应的截取框的左上角顶点。将最大横坐标值和最大纵坐标值组成另一个坐标点,将该坐标点作为人脸区域对应的截取框的右下角顶点。根据上述左上角顶点和右下角顶点在矫正后的初始帧图像中确定截取框的位置,从矫正后的初始帧图像中截取出位于该截取框内的图像,即截取出包含人脸区域的图像。

在本申请的另一些实施例中,为了确保将用户的全部的人脸区域截取出来,避免截取不完整导致后续化妆进度检测误差很大的情况发生,还可以将上述截取框放大预设倍数,该预设倍数可以为1.15或1.25等。本申请实施例并不限制预设倍数的具体取值,实际应用中可根据需求来设定该预设倍数。将上述截取框向周围放大预设倍数之后,从矫正后的初始帧图像中截取出位于放大后的截取框中的图像,从而截取出包含用户的完整人脸区域的图像。

S3:将包含人脸区域的图像缩放至预设尺寸,得到初始帧图像对应的人脸区域图像。

通过上述方式从初始帧图像中截取出包含用户的人脸区域的图像后,将包含人脸区域的图像缩放至预设尺寸,得到初始帧图像对应的人脸区域图像。该预设尺寸可以为390×390或400×400等。本申请实施例并不限制预设尺寸的具体取值,实际应用中可根据需求进行设定。

为了使第一人脸关键点与缩放后的人脸区域图像相适应,将截取的包含人脸区域的图像缩放至预设尺寸后,还需根据缩放前包含人脸区域的图像的尺寸及该预设尺寸,对上述矫正后的第一人脸关键点进行缩放平移处理。具体地,依据缩放前包含人脸区域的图像的尺寸及图像所需缩放至的预设尺寸,确定每个第一人脸关键点的平移方向及平移距离,进而根据每个第一人脸关键点对应的平移方向和平移距离,分别对每个第一人脸关键点进行平移操作,并记录平移后的每个第一人脸关键点的坐标。

通过上述方式从初始帧图像中获得人脸区域图像,并通过旋转矫正和平移缩放等操作使第一人脸关键点与获得的人脸区域图像相适应。对于当前帧图像,采取与上述初始帧图像相同的方式,检测当前帧图像对应的第二人脸关键点,根据第二人脸关键点,对当前帧图像及第二人脸关键点进行旋转矫正。根据矫正后的第二人脸关键点,从矫正后的当前帧图像中截取包含人脸区域的图像,将包含人脸区域的图像缩放至预设尺寸,得到当前帧图像对应的人脸区域图像。

通过上述方式获得初始帧图像对应的人脸区域图像和当前帧图像对应的人脸区域图像后,通过预设的皮肤检测模型从获得的两个人脸区域图像中分别检测出初始帧图像对应的脸部瑕疵信息以及当前帧图像对应的脸部瑕疵信息。

步骤103:根据初始帧图像和当前帧图像及其各自对应的脸部瑕疵信息,确定当前帧图像对应的当前化妆进度。

服务器具体通过如下步骤A1-A3的操作来确定当前化妆进度,包括:

A1:根据初始帧图像对应的脸部瑕疵信息和当前帧图像对应的脸部瑕疵信息,计算当前帧图像与初始帧图像之间的脸部瑕疵差异值。

由步骤102中获取脸部瑕疵信息的过程可知,脸部瑕疵信息中包括瑕疵类别及其对应的瑕疵数目,瑕疵类别包括痘痘、斑点、皱纹等瑕疵中的一种或多种。分别计算每种瑕疵类别下初始帧图像对应的瑕疵数目与当前帧图像对应的瑕疵数目之间的差值,然后计算每种瑕疵类别对应的差值之和,将得到的和值作为当前帧图像与初始帧图像之间的脸部瑕疵差异值。

例如,假设瑕疵类别包括痘痘和斑点两种类别,初始帧图像对应的脸部瑕疵信息中包括痘痘的数目为5,斑点的数目为4。当前帧图像对应的脸部瑕疵信息中包括的痘痘的数目为3,斑点的数目为1。则初始帧图像与当前帧图像之间的痘痘的差值为2,斑点的差值为3。计算痘痘的差值与斑点的差值之间的和值为5,则当前帧图像与初始帧图像之间的脸部瑕疵差异值即为5。

脸部瑕疵差异值能够体现当前帧图像与初始帧图像之间在光滑细致方面的差异,这种差异是由遮瑕化妆、光线变化、拍摄角度变化等多种因素造成的。本申请实施例通过大量试验测得当脸部瑕疵差异值大于一定值时可以确定该差异主要是由遮瑕化妆引起的,将该一定值作为预设阈值配置在服务器中,该预设阈值可以为4或5等。

通过上述方式计算出脸部瑕疵差异值之后,将该脸部瑕疵差异值与预设阈值进行比较,若脸部瑕疵差异值大于预设阈值,则表明当前由遮瑕化妆引起的面部变化比较明显,后续通过步骤A2的操作来确定当前化妆进度。若脸部瑕疵差异值小于或等于预设阈值,则表明当前由遮瑕化妆引起的面部变化很小,后续通过步骤A3的操作来确定当前化妆进度。

A2:若脸部瑕疵差异值大于预设阈值,则根据脸部瑕疵差异值和初始帧图像对应的脸部瑕疵信息,计算当前帧图像对应的当前化妆进度。

计算初始帧图像对应的脸部瑕疵信息中各瑕疵类别对应的瑕疵数目之和,得到总瑕疵数。计算上述脸部瑕疵差异值与总瑕疵数之间的比值,将该比值作为当前帧图像对应的当前化妆进度。

例如,假设初始帧图像对应的脸部瑕疵信息中包括痘痘的数目为5,斑点的数目为4。当前帧图像对应的脸部瑕疵信息中包括的痘痘的数目为3,斑点的数目为1。则当前帧图像与初始帧图像之间的脸部瑕疵差异值为5,初始帧图像对应的总瑕疵数为9,则当前帧图像对应的当前化妆进度即为5/9。

在当前帧图像与初始帧图像之间的脸部现场差异值大于预设阈值,即脸部差异主要由遮瑕化妆引起时,直接将脸部瑕疵差异值与初始帧图像对应的总瑕疵数之间的比值作为当前化妆进度,化妆进度确定过程简单,计算量小,能够快速确定出当前化妆进度,效率很高,能够满足遮瑕化妆进度检测的实时性要求。

通过上述方式确定出当前化妆进度后,服务器发送该当前化妆进度给用户的终端。用户的终端接收到当前化妆进度后,显示该当前化妆进度。当前化妆进度可以为比值或百分数。终端可以通过进度条的形式来显示当前化妆进度。

A3:若脸部瑕疵差异值小于或等于预设阈值,则获取用户完成遮瑕上妆后的结果图像,根据初始帧图像、结果图像和当前帧图像,确定当前帧图像对应的当前化妆进度。

当判断出上述脸部瑕疵差异值小于或等于预设阈值时,认为当前帧图像与初始帧图像之间的差异较小,若直接利用脸部瑕疵差异值与初始帧图像的总瑕疵数来确定当前化妆进度,则会误差很大。因此本申请实施例在这种情况下不采用脸部瑕疵差异值与初始帧图像的总瑕疵数来确定当前化妆进度,而是先获取用户完成遮瑕上妆后的结果图像,然后根据初始帧图像、结果图像和当前帧图像,确定当前帧图像对应的当前化妆进度。

首先利用3D渲染技术在初始帧图像上渲染完成遮瑕上妆的效果,得到结果图像。在本申请实施例中生成结果图像之前,可以先通过步骤102中S1的操作对初始帧图像进行旋转矫正,使图像中两眼连线与水平线平行之后,再在旋转矫正后的初始帧图像的基础上渲染出完成遮瑕上妆后的结果图像,从而使结果图像中人脸两眼连线也与水平线平行,如此无需再对结果图像进行旋转矫正,节省运算量。

获得完成遮瑕上妆后的结果图像后,通过用于检测人脸关键点的检测模型检测出结果图像对应的第三人脸关键点,根据第三人脸关键点,通过步骤102中的方式从结果图像中截取出人脸区域图像,具体截取过程在此不再赘述。

通过步骤102中提供的方式分别获得初始帧图像对应的人脸区域图像、当前帧图像对应的人脸区域图像以及结果图像对应的人脸区域图像,之后依据三者各自对应的人脸区域图像来确定当前化妆进度。

上述获得的初始帧图像对应的人脸区域图像、当前帧图像对应的人脸区域图像以及结果图像对应的人脸区域图像,这些图像的颜色空间均为RGB颜色空间。本申请实施例预先通过大量试验确定了遮瑕上妆对颜色空间的各通道分量的影响,发现对RGB颜色空间中各颜色通道的影响差别不大。而HLS颜色空间是由Hue(色调)、Saturation(饱和度)和Light(亮度)三个分量组成,通过试验发现遮瑕上妆能够引起HLS颜色空间的饱和度分量发生明显的变化。因此首先分别将初始帧图像、结果图像和当前帧图像各自对应的人脸区域图像均由RGB颜色空间转换至HLS颜色空间下。然后从转换后的图像的HLS颜色空间中分离出饱和度通道,分别得到初始帧图像、结果图像和当前帧图像各自对应的人脸区域图像在HLS颜色空间下仅包含饱和度通道的图像。

通过上述转换之后,通过预设滤波算法分别计算转换后初始帧图像、结果图像和当前帧图像各自的人脸区域图像对应的平滑因子。其中,预设滤波算法可以为拉普拉斯算法或高斯滤波算法等。以高斯滤波算法为例,可以根据预设尺寸的高斯核,来计算各人脸区域图像对应的平滑因子。预设尺寸可以为7*7,预设尺寸也可以为其他值,本申请实施例并不限定预设尺寸的具体取值。

获得初始帧图像、结果图像和当前帧图像各自对应的平滑因子之后,据此确定当前帧图像对应的当前化妆进度。具体地,计算当前帧图像对应的平滑因子与初始帧图像对应的平滑因子之间的第一差值,计算结果图像对应的平滑因子与初始帧图像对应的平滑因子之间的第二差值。计算第一差值与第二差值之间的比值,将该比值作为当前帧图像对应的当前化妆进度。

通过上述方式确定出当前化妆进度后,服务器发送该当前化妆进度给用户的终端。用户的终端接收到当前化妆进度后,显示该当前化妆进度。当前化妆进度可以为比值或百分数。终端可以通过进度条的形式来显示当前化妆进度。

在用户化妆的过程中,通过本申请实施例提供的化妆进度检测方法,实时检测初始帧图像之后的每帧图像相对于初始帧图像的化妆进度,并将检测的化妆进度显示给用户,使用户能够直观地看到自己的遮瑕化妆进度,提高化妆效率。

为了便于理解本申请实施例提供的方法,下面结合附图进行说明。如图4所示,根据初始帧图像及其对应的第一人脸关键点,当前帧图像及其对应的第二人脸关键点,分别对初始帧图像和当前帧图像中的人脸进行矫正和裁剪,然后调用皮肤检测模型分别检测初始帧图像和当前帧图像各自对应的脸部瑕疵信息。基于二者的脸部瑕疵信息计算当前帧图像与初始帧图像之间的脸部瑕疵差异值。若该脸部瑕疵差异值大于预设阈值,则计算脸部瑕疵差异值与初始帧图像对应的瑕疵总数之间的比值,得到当前化妆进度。若该脸部瑕疵差异值小于或等于预设阈值,则在初始帧图像上渲染生成遮瑕上妆后的结果图像,检测该结果图像对应的第三人脸关键点,根据第三人脸关键点对结果图像中的人脸进行矫正和裁剪。将初始帧图像、当前帧图像和结果图像各自对应的人脸区域图像转换为HLS颜色空间下仅包含饱和度通道的图像。通过预设滤波算法分别计算转换后的三个人脸区域图像各自对应的平滑因子。计算当前帧图像对应的平滑因子与初始帧图像对应的平滑因子之间的第一差值。计算结果图像对应的平滑因子与初始帧图像对应的平滑因子之间的第二差值。计算第一差值与第二差值之间的比值,将该比值作为当前帧图像对应的当前化妆进度。

在本申请实施例中,获取用户化妆过程的当前帧图像与初始帧图像,确定出从当前帧图像到初始帧图像的脸部瑕疵差异值,在脸部瑕疵差异值大于预设阈值时,计算该脸部瑕疵差异值与初始帧图像对应的总瑕疵数之间的比值,即得到了遮瑕上妆的当前化妆进度。在脸部瑕疵差异值小于或等于预设阈值时,在初始帧图像的基础上模拟出完成遮瑕上妆的结果图像,分别确定出初始帧图像、结果图像和当前帧图像各自对应的平滑因子,计算当前帧图像与初始帧图像之间的平滑因子的差值,以及计算出结果图像与初始帧图像之间的平滑因子的差值,两个差值之间的比值即为当前化妆进度。

如此在当前帧图像与初始帧图像之间的脸部瑕疵差异值大于预设阈值时,化妆进度的确定过程简单,运算量小,能够快速确定出当前化妆进度,效率很高,能够满足遮瑕化妆进度检测的实时性要求。而在脸部瑕疵差异值小于或等于预设阈值时,引入滤波算法计算各图像对应的平滑因子,依据平滑因子的变化情况来确定化妆进度,可以对更细微的变化进行更精确的计算,避免了化妆进度出现短时间突增的情况发生。

进一步地,本申请实施例利用人脸关键点,对视频帧中用户的人脸区域进行矫正和裁剪,提高了识别人脸区域的准确性。

本申请实施例仅通过图像处理即可准确地检测出遮瑕的化妆进度,运算量小,成本低,减少了服务器的处理压力,提高了遮瑕化妆进度检测的效率,能够满足遮瑕化妆进度检测的实时性要求,减少了算法对硬件资源的依赖以及人力的投入成本。

本申请实施例还提供一种化妆进度检测装置,该用于执行上述任一实施例提供的化妆进度检测方法。如图5所示,该装置包括:

视频帧获取模块201,用于获取用户化妆视频的初始帧图像和当前帧图像;

瑕疵检测模块202,用于分别获取初始帧图像和当前帧图像各自对应的脸部瑕疵信息;

化妆进度确定模块203,用于根据初始帧图像和当前帧图像及其各自对应的脸部瑕疵信息,确定当前帧图像对应的当前化妆进度。

化妆进度确定模块203,用于根据初始帧图像对应的脸部瑕疵信息和当前帧图像对应的脸部瑕疵信息,计算当前帧图像与初始帧图像之间的脸部瑕疵差异值;若脸部瑕疵差异值大于预设阈值,则根据脸部瑕疵差异值和初始帧图像对应的脸部瑕疵信息,计算当前帧图像对应的当前化妆进度;若脸部瑕疵差异值小于或等于预设阈值,则获取用户完成遮瑕上妆后的结果图像,根据初始帧图像、结果图像和当前帧图像,确定当前帧图像对应的当前化妆进度。

脸部瑕疵信息包括瑕疵类别及对应的瑕疵数目;化妆进度确定模块203,用于分别计算每种瑕疵类别下初始帧图像对应的瑕疵数目与当前帧图像对应的瑕疵数目之间的差值;计算每种瑕疵类别对应的差值之和,将得到的和值作为当前帧图像与初始帧图像之间的脸部瑕疵差异值。

化妆进度确定模块203,用于计算初始帧图像对应的脸部瑕疵信息中各瑕疵类别对应的瑕疵数目之和,得到总瑕疵数;计算脸部瑕疵差异值与总瑕疵数之间的比值,将比值作为当前帧图像对应的当前化妆进度。

化妆进度确定模块203,用于根据初始帧图像,模拟生成用户完成遮瑕上妆后的结果图像;分别获取初始帧图像、结果图像和当前帧图像各自对应的人脸区域图像;根据初始帧图像、结果图像和当前帧图像各自对应的人脸区域图像,确定当前帧图像对应的当前化妆进度。

化妆进度确定模块203,用于分别将初始帧图像、结果图像和当前帧图像各自对应的人脸区域图像转换为HLS颜色空间下仅包含饱和度通道的图像;通过预设滤波算法分别计算转换后初始帧图像、结果图像和当前帧图像各自的人脸区域图像对应的平滑因子;根据初始帧图像、结果图像和当前帧图像各自对应的平滑因子,确定当前帧图像对应的当前化妆进度。

化妆进度确定模块203,用于计算当前帧图像对应的平滑因子与初始帧图像对应的平滑因子之间的第一差值;计算结果图像对应的平滑因子与初始帧图像对应的平滑因子之间的第二差值;计算第一差值与第二差值之间的比值,将比值作为当前帧图像对应的当前化妆进度。

瑕疵检测模块202,用于分别获取初始帧图像和当前帧图像各自对应的人脸区域图像;通过预设的皮肤检测模型分别检测初始帧图像和当前帧图像各自对应的人脸区域图像中各瑕疵类别对应的瑕疵数目,得到初始帧图像和当前帧图像各自对应的脸部瑕疵信息。

化妆进度确定模块203,用于检测初始帧图像对应的第一人脸关键点;根据第一人脸关键点,对初始帧图像及第一人脸关键点进行旋转矫正;根据矫正后的第一人脸关键点,从矫正后的初始帧图像中截取包含人脸区域的图像;将包含人脸区域的图像缩放至预设尺寸,得到初始帧图像对应的人脸区域图像。

化妆进度确定模块203,用于根据第一人脸关键点包括的左眼关键点和右眼关键点,分别确定左眼中心坐标和右眼中心坐标;根据左眼中心坐标和右眼中心坐标,确定初始帧图像对应的旋转角度及旋转中心点坐标;根据旋转角度和旋转中心点坐标,对初始帧图像及第一人脸关键点进行旋转矫正。

化妆进度确定模块203,用于从矫正后的第一人脸关键点中确定最小横坐标值、最小纵坐标值、最大横坐标值和最大纵坐标值;根据最小横坐标值、最小纵坐标值、最大横坐标值和最大纵坐标值,确定矫正后的初始帧图像中人脸区域对应的截取框;根据截取框,从矫正后的初始帧图像中截取出包含人脸区域的图像。

化妆进度确定模块203,用于将截取框放大预设倍数;根据放大后的截取框,从矫正后的初始帧图像中截取出包含人脸区域的图像。

该装置还包括:人脸检测模块,用于检测初始帧图像和当前帧图像中是否均仅包含同一个用户的人脸图像;如果是,则执行分别获取初始帧图像和当前帧图像各自对应的脸部瑕疵信息的操作;如果否,则发送提示信息给用户的终端,提示信息用于提示用户保持化妆视频中仅出现同一个用户的人脸。

该装置还包括:发送模块,用于发送当前化妆进度给用户的终端,以使用户的终端显示当前化妆进度。

本申请的上述实施例提供的化妆进度检测装置与本申请实施例提供的化妆进度检测方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。

本申请实施方式还提供一种电子设备,以执行上述化妆进度检测方法。请参考图6,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图6所示,电子设备8包括:处理器800,存储器801,总线802和通信接口803,所述处理器800、通信接口803和存储器801通过总线802连接;所述存储器801中存储有可在所述处理器800上运行的计算机程序,所述处理器800运行所述计算机程序时执行本申请前述任一实施方式所提供的化妆进度检测方法。

其中,存储器801可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。

总线802可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器801用于存储程序,所述处理器800在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述化妆进度检测方法可以应用于处理器800中,或者由处理器800实现。

处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步骤。

本申请实施例提供的电子设备与本申请实施例提供的化妆进度检测方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。

本申请实施方式还提供一种与前述实施方式所提供的化妆进度检测方法对应的计算机可读存储介质,请参考图7,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的化妆进度检测方法。

需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。

本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的化妆进度检测方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。

需要说明的是:

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120113821670