一种人脸图像清晰度提升方法及装置
技术领域
本发明涉及图像处理技术,特别地,涉及一种人脸图像清晰度提升方法及装置。
背景技术
当前市场上的提升照片清晰度的图片编辑类应用中,用户可以输入照片对照片进行清晰度的提升。但是,在对照片进行清晰度提升的时候,使用的方法在人脸图像上的效果会比较一般。传统方法对人脸图像做针对性优化,也只能进行简单的降噪操作,但降噪的同时会让人脸有很重的涂抹感,脸部细节会大量丢失,清晰度的提升效果较差。
发明内容
为了克服现有技术的不足,本发明提供一种人脸图像清晰度提升方法及装置,以解决传统提升人脸照片清晰度方法让人脸有很重的涂抹感,脸部细节会大量丢失,清晰度的提升效果较差的问题。
本发明解决其技术问题所采用的技术方案是:
一方面,
一种人脸图像清晰度提升方法,包括以下步骤:
获取待提升清晰度的人脸图像;
将所述人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像。
进一步地,所述经退化操作训练的模型的训练步骤包括:
获取训练人脸图像的高清图片;
将所述训练人脸图像进行退化操作得到低清图片;
将所述低清图片输入到预构建的卷积神经网络模型中得到生成图片;
计算所述生成图片与所述高清图片之间的损失;
判断所述损失是否收敛;
若不收敛,则采用自适应矩估计算法优化所述卷积神经网络模型的参数;
重复上述步骤直至所述损失收敛且所述生成图片清晰度达到要求时,保存所述卷积神经网络模型的参数得到经退化操作训练的模型。
进一步地,所述退化操作包含以下步骤:
以50%的概率进行模糊操作;
以20%的概率进行加噪操作;
以70%的概率进行JPEG压缩操作;
进行缩放操作,缩放至图片长宽分别是所述高清图片的长宽的1/4大小。
进一步地,还包括:
将所述高清图片输入到预构建的多层判别模型中得到所述高清图片为真的第一概率;
将所述生成图片输入到所述多层判别模型中得到所述生成图片为假的第二概率;
用Hinge损失函数分别计算所述第一概率和第二概率与1的损失,并将计算得到的两个损失求和得到损失和;
判断所述损失和是否收敛;
若不收敛,则采用自适应矩估计算法优化所述多层判别模型的参数;
重复上述步骤直至所述损失和收敛,保存此时的多层判别模型。
进一步地,将所述人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像包括:
对所述人脸图像进行预处理得到只包含人脸的原始降噪人脸图像;
将原始降噪人脸图像输入到所述模型中。
进一步地,所述对所述人脸图像进行预处理得到只包含人脸的原始降噪人脸图像包括:
将所述人脸图像输入到预构建的人脸识别模型中得到人脸数据,所述人脸数据包括人脸框、左眼、右眼、鼻尖、左嘴角和右嘴角的位置;
根据所述人脸数据在所述人脸图像上进行剪裁操作得到原始人脸图像;
对所述原始人脸图像进行人脸选择对齐操作得到原始对齐人脸图像;
对所述原始对齐图像使用三次插值算法进行缩放操作,得到大小为128*128的原始缩放人脸图像;
对所述原始缩放人脸图像进行降噪操作,得到原始降噪人脸图像。
进一步地,所述将原始降噪人脸图像输入到所述模型后得到高清降噪人脸图像;
对所述高清降噪人脸图像进行预处理得到高清人脸图像;
将所述高清人脸图像融合到所述人脸图像中得到最终图像。
进一步地,所述对所述高清降噪人脸图像进行预处理得到高清人脸图像包括:
对所述高清降噪人脸图像使用三次插值算法进行缩放操作,得到大小与原始人脸图像大小一致的高清缩放人脸图像;
将所述高清人脸图像进行旋转还原操作,得到高清人脸图像,所述高清人脸图像中人脸的位置与原始人脸图像中人脸的位置一致。
进一步地,所述将所述高清人脸图像融合到所述人脸图像中得到最终图像包括:
将所述高清人脸图像输入到预构建的人像分割模型,得到高清人脸掩膜图像;
对所述高清人脸掩膜图像进行腐蚀、膨胀和模糊操作,得到高清人脸羽化掩膜图像;
以高清人脸羽化掩膜图像中的像素值为权重,将所述高清人脸图像融合到人脸图像中得到最终图像。
另一方面,
一种人脸图像清晰度提升装置,包括:
人脸图像获取模块,用于获取待提升清晰度的人脸图像;
人脸图像输入模块,用于将所述人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像。
本申请采用以上技术方案,至少具备以下有益效果:
本申请技术方案提供的一种人脸图像清晰度提升方法及装置,在获取待提升清晰度的人脸图像后,将人脸图像输入到经退化操作训练的模型中得到清晰度提升后的人脸图像。由于模型经过退化操作训练,即原本清晰的图像处理为清晰度不高的图像,然后以清晰度不高的图像为训练样本使其得到清晰的图像,这样待提升清晰度的人脸图像输入到模型中后能够大大提升人脸图像的清晰度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种人脸图像清晰度提升方法流程图;
图2是本发明实施例提供的一种经退化操作训练的模型训练示意图;
图3是本发明实施例提供的一种高清图片退化操作后得到低清图片的示意图;
图4是本发明实施例提供的一种人脸图像清晰度提升的具体实施的方式;
图5是本发明实施例提供的一种人脸图像清晰度提升装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明的技术方案进行详细的描述说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
参照图1,本发明实施例提供一种人脸图像清晰度提升方法,包括以下步骤:
获取待提升清晰度的人脸图像;
将人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像。
本发明实施例提供的一种人脸图像清晰度提升方法,在获取待提升清晰度的人脸图像后,将人脸图像输入到经退化操作训练的模型中得到清晰度提升后的人脸图像。由于模型经过退化操作训练,即原本清晰的图像处理为清晰度不高的图像,然后以清晰度不高的图像为训练样本使其得到清晰的图像,这样待提升清晰度的人脸图像输入到模型中后能够大大提升人脸图像的清晰度。
作为对上述实施例的一种补充说明,经退化操作训练的模型的训练步骤包括:
获取训练人脸图像的高清图片;具体地,从FFHQ数据集中随机选择一张人脸图片,缩放至大小为512x512,并以30%的概率对人脸图片进行灰度操作,得到高清图片。其中,FFHQ全称Flickr-Faces-High-Quality(Flickr-Faces-HQ),最初是作为生成式对抗网络(GAN)的基准创建的,也用于StyleGAN的训练数据集中,并由英伟达于2019年开源。FFHQ是一个高质量的人脸数据集,包含1024×1024分辨率的70000张PNG格式高清人脸图像,在年龄、种族和图像背景上丰富多样且差异明显,在人脸属性上也拥有非常多的变化,拥有不同的年龄、性别、种族、肤色、表情、脸型、发型、人脸姿态等,囊盖普通眼镜、太阳镜、帽子、发饰及围巾等多种人脸周边配件,因此该数据集也是可以用于开发一些人脸属性分类或者人脸语义分割模型的。
将训练人脸图像进行退化操作得到低清图片;其中退化操作包含以下步骤:
(1)以50%的概率进行模糊操作;
(2)以20%的概率进行加噪操作;
(3)以70%的概率进行JPEG压缩操作;
(4)进行缩放操作,缩放至图片长宽分别是高清图片的长宽的1/4大小。
将低清图片输入到预构建的卷积神经网络模型中得到生成图片;需要说明的是,预构建的卷积神经网络模型的参数使用kaiming初始化方法初始化生成模型的参数。kaiming初始化是一种在卷积神经网络的训练中常用的权重初始化方法,在此不再详述。
计算生成图片与高清图片之间的损失;具体地,用交叉熵损失函数计算生成图片与高清图片之间的损失。
判断损失是否收敛;
若不收敛,则采用自适应矩估计算法优化卷积神经网络模型的参数;
重复上述步骤直至损失收敛且生成图片清晰度达到要求时,保存卷积神经网络模型的参数得到经退化操作训练的模型。可以理解的是,损失不是完全递减的,是一个抖动下降的过程,训练到后面会趋于一个上下波动的状态,同时效果不一定会符合要求,这个时候需要不定时人为观察模型产出效果。
作为本发明实施例一种可选的实现方式,还包括:
将高清图片输入到预构建的多层判别模型中得到高清图片为真的第一概率;
将生成图片输入到多层判别模型中得到生成图片为假的第二概率;
用Hinge损失函数分别计算第一概率和第二概率与1的损失,并将计算得到的两个损失求和得到损失和;
判断损失和是否收敛;
若不收敛,则采用自适应矩估计算法优化多层判别模型的参数;
重复上述步骤直至损失和收敛,保存此时的多层判别模型。
多层判别模型用于判断生成图片是否与高清图片相同,在机器学习领域,判别模型是一种对未知数据y与已知数据x之间关系进行建模的方法。判别模型是一种基于概率理论的方法。已知输入变量x,判别模型通过构建条件概率分布P(y|x)预测y。本申请中高清图片为真是已知数据,而生成图片为假是未知数据。由于最开始构建的多层次判别模型参数并不准确,因此需要经过多次更新调整。
在实际操作过程中,将人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像包括:
对人脸图像进行预处理得到只包含人脸的原始降噪人脸图像;具体地,将人脸图像输入到预构建的人脸识别模型中得到人脸数据,人脸数据包括人脸框、左眼、右眼、鼻尖、左嘴角和右嘴角的位置;
根据人脸数据在人脸图像上进行剪裁操作得到原始人脸图像;
对原始人脸图像进行人脸选择对齐操作得到原始对齐人脸图像;中原始对齐人脸图像中的人脸左眼与右眼处于水平位置,左眼与右眼的中间位置处于原始对齐人脸图像的中心。
对原始对齐图像使用三次插值算法进行缩放操作,得到大小为128*128的原始缩放人脸图像;三次插值法是在1959年由Davidon首先提出来的,它是用三次插值多项式逼近函数,而求函数的近似最小点的一种迭代算法。
使用基于离散余弦变换的降噪算法对原始缩放人脸图像进行降噪操作,得到原始降噪人脸图像。
将原始降噪人脸图像输入到模型中得到高清降噪人脸图像,其中高清降噪人脸图像大小为512x512,高清降噪人脸图像中人脸肤质改善和脸部细节清晰度提升。
对高清降噪人脸图像进行预处理得到高清人脸图像;具体地,对高清降噪人脸图像使用三次插值算法进行缩放操作,得到大小与原始人脸图像大小一致的高清缩放人脸图像;
将高清人脸图像进行旋转还原操作,得到高清人脸图像,高清人脸图像中人脸的位置与原始人脸图像中人脸的位置一致
将高清人脸图像融合到人脸图像中得到最终图像。具体地,将高清人脸图像输入到预构建的人像分割模型,得到高清人脸掩膜图像;其中,人像分割模型可接收输入图像,输出人像掩膜图像,人像掩膜图像的像素值范围为0~1,其中像素值表示该像素属于人像的置信度。具体的人像分割模型实现方式可根据需要采用合适的实现方案。
对高清人脸掩膜图像进行腐蚀、膨胀和模糊操作,得到高清人脸羽化掩膜图像;膨胀操作、腐蚀操作、模糊操作均为图像处理方面的经典算法,在OpenCV上都有其具体的实现方法。在此不再详述。
以高清人脸羽化掩膜图像中的像素值为权重,将高清人脸图像融合到人脸图像中得到最终图像。具体计算如下:记高清人脸羽化掩膜图像中的像素值为a,记原始图像中的像素值为B,记高清人脸图像的像素值为S,记最终图像的像素值为R,则可以通过公式R=S*a+B*(1-a)计算得到最终人脸肤质改善和脸部细节清晰度提升的图像。
为了更清楚的说明本发明实施例,以下提供一种具体实施的方式,如图4所示,
S1.模型训练模块(如图2所示)
1.使用卷积神经网络构建一个生成模型G,使用kaiming初始化方法初始化生成模型G的参数。
2.使用卷积神经网络构建一个多层判别模型D。
3.从FFHQ数据集中随机选择一张人脸图片,缩放至大小为512x512,并以30%的概率对人脸图片进行灰度操作,得到高清图片HR。
4.对高清图片HR,进行退化操作,得到低清图片LR,其中退化操作包含以下步骤(如图3所示):
(1)以50%的概率进行模糊操作;
(2)以20%的概率进行加噪操作;
(3)以70%的概率进行JPEG压缩操作;
(4)进行缩放操作,缩放至图片长宽分别是HR的长宽的1/4大小。
5.将低清图片LR输入到生成模型G,根据生成模型G的参数计算,得到生成图片SR。
6.用交叉熵损失函数计算生成图片SR与原始高清图片HR之间的损失LG,用自适应矩估计算法更新生成模型G的参数。
7.将高清图片HR输入到多层判别模型D,根据多层判别模型D的参数计算,得到高清图片HR为真的概率DH。
8.将生成图片SR输入到多层判别模型D,根据多层判别模型D的参数计算,得到生成图片SR为假的概率DS。
9.用Hinge损失函数计算(DH与1的损失)+(DS与1的损失)的损失和,用自适应矩估计算法更新生成模型D的参数。
10.重复以上3~9的步骤,直到损失LG收敛并且生成模型G生成的生成图片SR达到人脸肤质改善和脸部细节清晰度提升的效果的时候,存储生成模型G,完成模型训练。
S2.人脸预处理模块
1.利用移动客户端获取原始图像。
2.载入人脸识别模型到移动客户端,人脸识别模型可接收输入图像,输出为输入图像中的人脸数据,其中人脸数据包含人脸框、左眼、右眼、鼻尖、左嘴角和右嘴角的位置。具体的人脸识别模型实现方式可根据需要采用合适的实现方案。
3.将原始图像输入到人脸识别模型,进行识别操作,得到图像中的人脸数据。
4.根据人脸数据,在原始图像上进行裁剪操作,得到原始人脸图像。
5.将原始人脸图像进行人脸旋转对齐操作,得到原始对齐人脸图像,其中原始对齐人脸图像中的人脸左眼与右眼处于水平位置,左眼与右眼的中间位置处于原始对齐人脸图像的中心。
6.对原始对齐人脸图像使用三次插值算法进行缩放操作,得到大小为128x128的原始缩放人脸图像。
7.使用基于离散余弦变换的降噪算法,将原始缩放人脸图像进行降噪操作,得到原始降噪人脸图像。
S3.模型推算模块
1.将原始降噪人脸图像输入至存储的生成模型G,得到人脸肤质改善和脸部细节清晰度提升的高清降噪人脸图像,其中高清降噪人脸图像大小为512x512。
2.对高清降噪人脸图像使用三次插值算法进行缩放操作,得到大小与原始人脸图像大小一致的高清缩放人脸图像。
3.将高清缩放人脸图像进行旋转还原操作,得到高清人脸图像,高清人脸图像中人脸的位置与原始人脸图像中人脸的位置一致。
S4.融合模块
1.载入人像分割模型到移动客户端,人像分割模型可接收输入图像,输出人像掩膜图像,人像掩膜图像的像素值范围为0~1,其中像素值表示该像素属于人像的置信度。具体的人像分割模型实现方式可根据需要采用合适的实现方案。
2.将高清人脸图像输入到人像分割模型,得到高清人脸掩膜图像。
3.将高清人脸掩膜图像进行腐蚀、膨胀和模糊操作,得到高清人脸羽化掩膜图像。
4.以高清人脸羽化掩膜图像中的像素值为权重,将高清人脸图像融合到原始图像中,得到最终人脸肤质改善和脸部细节清晰度提升的图像。具体计算如下:记高清人脸羽化掩膜图像中的像素值为a,记原始图像中的像素值为B,记高清人脸图像的像素值为S,记最终人脸肤质改善和脸部细节清晰度提升的图像的像素值为R,则可以通过公式R=S*a+B*(1-a)计算得到最终人脸肤质改善和脸部细节清晰度提升的图像。
一个实施例中本发明还提供一种人脸图像清晰度提升装置,如图5所示,包括:
人脸图像获取模块51,用于获取待提升清晰度的人脸图像;
人脸图像输入模块52,用于将人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像。
其中,经退化操作训练的模型的训练步骤包括:
获取训练人脸图像的高清图片;将训练人脸图像进行退化操作得到低清图片;所退化操作包含以下步骤:以50%的概率进行模糊操作;以20%的概率进行加噪操作;以70%的概率进行JPEG压缩操作;进行缩放操作,缩放至图片长宽分别是高清图片的长宽的1/4大小。将低清图片输入到预构建的卷积神经网络模型中得到生成图片;计算生成图片与高清图片之间的损失;判断损失是否收敛;若不收敛,则采用自适应矩估计算法优化卷积神经网络模型的参数;重复上述步骤直至损失收敛且生成图片清晰度达到要求时,保存卷积神经网络模型的参数得到经退化操作训练的模型。
还包括,将高清图片输入到预构建的多层判别模型中得到高清图片为真的第一概率;将生成图片输入到多层判别模型中得到生成图片为假的第二概率;用Hinge损失函数分别计算第一概率和第二概率与1的损失,并将计算得到的两个损失求和得到损失和;判断损失和是否收敛;若不收敛,则采用自适应矩估计算法优化多层判别模型的参数;重复上述步骤直至损失和收敛,保存此时的多层判别模型。
作为本发明实施例一种可选的方式,将人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像包括:
对人脸图像进行预处理得到只包含人脸的原始降噪人脸图像;将原始降噪人脸图像输入到模型中。
对人脸图像进行预处理得到只包含人脸的原始降噪人脸图像包括:将人脸图像输入到预构建的人脸识别模型中得到人脸数据,人脸数据包括人脸框、左眼、右眼、鼻尖、左嘴角和右嘴角的位置;根据人脸数据在人脸图像上进行剪裁操作得到原始人脸图像;对原始人脸图像进行人脸选择对齐操作得到原始对齐人脸图像;对原始对齐图像使用三次插值算法进行缩放操作,得到大小为128*128的原始缩放人脸图像;对原始缩放人脸图像进行降噪操作,得到原始降噪人脸图像。
还包括:将原始降噪人脸图像输入到模型后得到高清降噪人脸图像;对高清降噪人脸图像进行预处理得到高清人脸图像;将高清人脸图像融合到人脸图像中得到最终图像。
其中,对高清降噪人脸图像进行预处理得到高清人脸图像包括:对高清降噪人脸图像使用三次插值算法进行缩放操作,得到大小与原始人脸图像大小一致的高清缩放人脸图像;将高清人脸图像进行旋转还原操作,得到高清人脸图像,高清人脸图像中人脸的位置与原始人脸图像中人脸的位置一致。
进一步地,将高清人脸图像融合到人脸图像中得到最终图像包括:将高清人脸图像输入到预构建的人像分割模型,得到高清人脸掩膜图像;对高清人脸掩膜图像进行腐蚀、膨胀和模糊操作,得到高清人脸羽化掩膜图像;以高清人脸羽化掩膜图像中的像素值为权重,将高清人脸图像融合到人脸图像中得到最终图像。
本发明实施例提供的一种人脸图像清晰度提升装置,人脸图像获取模块获取待提升清晰度的人脸图像;人脸图像输入模块将人脸图像输入经退化操作训练的模型中得到清晰度提升后的人脸图像。设计一种数据退化的方式和一种训练方式,让模型学习到如何生成质量高的人脸肤质改善和脸部细节清晰度提升的图片,再使用该模型来生成人脸图片,即可得到人脸肤质改善和脸部细节清晰度提升的效果。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:图像处理方法、装置、设备及存储介质