技术领域
[0001] 本
发明涉及人脸图像超分技术领域,特别是涉及基于注意力机制的人脸图像超分辨率方法。
背景技术
[0002] 人脸图像超分任务,指的是从给定的一张低分辨人脸图像中推理恢复出对应的高分辨人脸图像。人脸图像超分辨率是
计算机视觉和
图像处理中一个重要的任务,并且受到了AI公司和研究社区的广泛关注。在现实世界的很多场景下都能够看到广泛的应用,比如高
铁安全检查、
门禁系统和实验室打卡系统等等。
[0003] 除了提高人脸图像的视觉
质量外,人脸图像超分任务还为其他的计算机视觉和图像处理任务提供帮助,比如
人脸识别、上妆和转脸等。所以人脸图像超分任务具有重要的研究意义。
[0004] 但是这个问题仍然具有挑战性,因为这是个典型的病态问题,即给定一张低分辨率的人脸图像,可能存在多张对应的高分辨率人脸图像。
[0005] 因此,现有人脸图像超分技术在还待进一步的提升。
发明内容
[0006] 本发明的目的是针对
现有技术中存在的技术
缺陷,而提供一种基于注意力机制的人脸图像超分辨率方法,可以生成具有丰富纹理细节的人脸图像。
[0007] 为实现本发明的目的所采用的技术方案是:
[0008] 一种基于注意力机制的人脸图像超分辨率方法,包括步骤:
[0009] S1.将人脸图像数据集的图像数据预处理,得到
训练数据集与测试数据集:
[0010] S2.使用训练数据集训练模型,得到能对低分辨率人脸图像进行超分到高分辨人脸图像的人脸图像超分模型;包括:
[0011] 模型中生成网络包括16个稠密残差
块,每个稠密残差块与一个注意力模块并行连接,每个稠密残差块里包含5个卷积层,卷积层以稠密连接和残差连接的方式结合;
[0012] 利用低分辨率人脸图像和对应的目标高分辨率人脸图像作为模型的输入,结合注意力模块的输出,训练模型中的生成网络;
[0013] 将目标高分辨率人脸图像和生成网络所生成的高分辨率人脸图像输入到判别网络中,由判别网络判断出输入图像的真假,模型
迭代多次达到稳定后完成模型的训练;
[0014] S3.使用训练好的人脸图像超分模型,对测试数据集中的低分辨率图像超分处理,测试训练好的人脸图像超分模型的超分性能。
[0015] 其中,注意力模块的处理步骤如下:
[0016] 首先将从之前
隐藏层中得到的图像特征图x映射到两个隐空间f、g中,然后计算注意力得分,其中f(x)=Wfx,g(x)=Wgx,Wf和Wg均为可学习的参数,
[0017] 注意力得分计算如下:
[0018]
[0019] 其中sij=f(xi)Tg(xj),βj,i表示模型在生成第j个区域时对第i个
位置的注意力程度,N表示特征图上的总区域数量,
[0020] 注意力层的输出o=(o1,o2,…,oj,…,oN),其中,oj可以表示为:
[0021]
[0022] 其中,h(xi)=Whxi,ν(xi)=Wvxi,Wh和Wv均为可学习的参数,Wf,Wg,Wh和Wv均以卷积核为1×1的卷积层实现,
[0023] 将注意力层的输出乘以一个缩放参数,并与输入的特征图相加,可得到:
[0024] yi=γoi+xi
[0025] 其中,yi表示生成的第i个位置,oi表示注意力层的输出,xi表示输入的特征图,γ为平衡因子。
[0026] 其中,所述的注意力模块的输出与稠密残差块的输出相加,即为结合注意力机制的稠密残差模块的输出,即生成网络的输出。
[0027] 进一步的,步骤S2包括:
[0028] S21.使用标准高斯分布随机初始化生成网络和判别网络的权重参数,其中生成网络的损失函数为L2,对抗损失函数为 判别网络的损失函数为
[0029] S22.将低分辨率人脸图像输入到生成网络中,生成网络输出与目标高分辨率人脸图像大小一致的生成图像,将生成图像作为判别网络的输入,依次迭代使对抗损失函数和损失函数L2均降低至趋于稳定,
[0030] S23.判别网络输入为生成网络生成的高分辨率人脸图像和目标高分辨率人脸图像,判别网络判断输入图像真假,计算损失函数 该损失函数 只用于更新判别网络参数,
[0031] S24.交替训练生成网络和判别网络,直到所有损失函数不再降低,得到最终人脸图像超分模型。
[0032] 其中,所述生成网络的目标函数如下:
[0033]
[0034] 其中,λ1,λ2为平衡因子,用于调整各个损失函数所占的权重;
[0035] 所述判别网络的目标函数为
[0036]
[0037] 其中,
[0038]
[0039] 其中x,y分别为从低分辨图像集X和高分辨率图像集Y中
采样出来的低分辨率人脸图像和对应的高分辨率人脸图像,E(*)表示取平均操作, 表示L2范数,Fgenerator为生成网络对应的映射函数。
[0040] 其中,
[0041]
[0042] 其中,E(*)表示取平均操作,x~P(X)表示低分辨率图像从P(X)中采样取得,D(*)表示判别网络的映射函数,G(x)表示生成网络生成的高分辨率人脸图像。
[0043] 其中,
[0044]
[0045] 其中,E(*)表示取平均操作,y~P(Y)表示目标高分辨率图像从分布P(Y)中采样得到,D(*)表示判别网络的映射函数,x~P(X)表示低分辨率图像从分布P(X)中采样得到,G(x)表示生成网络生成的高分辨率图像。
[0046] 其中,所述训练数据集中的图像对为[x,y],其中,x为低分辨率人脸图像,y为目标高分辨率人脸图像,且生成网络的输出为
[0047] 其中,步骤S1包括以下步骤:
[0048] 以统一对齐裁剪方式裁剪原始的高分辨率人脸图像,只保留人脸区域;使用双线性
下采样方法下采样对齐裁剪后的高分辨率人脸图像,得到对应的低分辨人脸图像;对生成的低分-高分人脸图像对进行数据增广,以增加训练数据集中的图像数量;第四,划分人脸数据集,将80%作为训练数据集,20%作为测试数据集,用于测试模型的泛化性能。
[0049] 其中,步骤S1中,所述人脸图像超分模型的超分辨倍数为8×。
[0050] 本发明基于注意力机制的人脸图像超分辨率方法,使用稠密残差块作为构建网络的
基础,结合多种损失函数,使得模型收敛更快,效果更好,泛化能力更强;可生成具有丰富纹理细节的人脸图像。
[0051] 本发明使用生成网络,提高了模型容量和加快训练速度,提高模型的泛化能力和加快训练速度;引入了判别网络,使生成的高分辨率人脸图像更加接近真实的高分辨率人脸图像,显著的提高生成的高分辨率图像的视觉质量。
[0052] 所采用的注意力机制可以使得模型学习到图像的长远依赖关系。
附图说明
[0053] 图1是本发明在测试数据集中的一张人脸图像上的测试结果,左边是GroundTruth真实高分辨率人脸图像,中间是降采样插值后的低分辨人脸图像,右边是模型生成的高分辨率图像。
[0054] 图2是本发明基于注意力机制的人脸图像超分辨率方法的
流程图;
[0055] 图中:LR表示输入的低分辨率图像,Conv表示
卷积神经网络,Pixelshuffle表示上采样模块,H_rec表示生成的高分辨率图像,HR_tar表示目标高分辨率图像,D表示判别网络,RDBA代表结合注意力机制的稠密残差块,ATT表示注意力机制,attentionmap指注意力特征图,注意力机制ATT的最终输出称为自监督特征图self-attentionfeaturemaps。
具体实施方式
[0056] 以下结合附图和具体
实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0057] 本发明通过一种基于注意力机制的人脸图像超分辨率方法来学习一组高度复杂的非线性的变换,用来把低分辨率的人脸图像映射到高分辨的图像,同时保持很好的纹理和身份特征。
[0058] 如图2所示,基于注意力机制的人脸图像超分辨率方法,包括以下步骤:
[0059] 步骤S1,先对CelebA人脸数据集中的人脸图像进行预处理。
[0060] 第一,以一种统一的对齐裁剪方式裁剪原始的高分辨率人脸图像,且只保留人脸区域;
[0061] 第二,使用双线性下采样方法下采样对齐裁剪后的高分辨率人脸图像,得到对应的低分辨人脸图像;
[0062] 第三,对生成的低分-高分人脸图像对进行数据增广,以增加训练数据集中的图像数量,包括随机
水平翻转,随机
颜色变换;
[0063] 第四,划分对齐裁剪后的人脸数据集,将80%作为训练数据集,20%作为测试数据集,用于测试模型的泛化性能。
[0064] 步骤S2,利用步骤S1输入训练数据,训练基于基于注意力机制的人脸图像超分辨率方法模型,以用来完成人脸图像的超分辨率任务。
[0065] 在模型的生成网络中利用卷积神经网络结构先进行浅层的特征提取,然后通过16个稠密残差块,每个稠密残差块与一个注意力机制并行,进行深层特征提取,其次通过pixelshuffle层上采样操作保持生成的人脸图像的大小和GroundTruth真实高分辨率人脸图像的大小一致,最后通过一份卷积层以将通道数缩放到3。
[0066] 其中,稠密残差神经网络的第一个卷积层的输入通道数,输出通道数,
滤波器大小,步长和填充分别是3,64,3,1,1。稠密残差块中包含5个卷积层,其连接方式为稠密连接和残差连接的结合。稠密残差块中的5个卷积层的输出通道均为32,输入通道数分别为64,64+32,64+2*32,64+3*32,64+4*32,滤波器大小,步长和填充分别是3,1,1。最后一个卷积层输入通道数,输出通道数,滤波器大小,步长和填充分别是64,3,3,1,1。注意力机制中包含4个1×1的卷积层。pixelshuffle层中包含一个卷积层、pixelshuffle和relu层。
[0067] 本发明中包含3个pixelshuffle层。稠密残差块中的每一层卷积层的输入均为前面所有卷积层输出之合。稠密残差块的输入与最终输出之间通过注意力机制连接。稠密残差神经网络中的卷积层,除了最后一个卷积层外,均连接有rule激活层。稠密残差块的个数可根据实际情况进行选择设置。
[0068] 判别网络结构为由卷积层,BN层和激活层堆叠而成的,其中卷积层滤波器大小,步长,填充分别为3,1,1,在本发明中卷积层个数为7,这一部分作为图像的特征提取,然后在加上两个全连接层来分类,该判别网络的输入为稠密残差神经网络生成的高分辨率人脸图像 和真实的目标高分辨率人脸图像y,同样判别器的网络结构可根据需求自由设置。
[0069] 该步骤中,利用低分辨率人脸图像作为模型的输入,真实的高分辨率人脸图像作为生成目标,交替训练模型中的生成网络和判别网络完成人脸图像超分辨率任务。
[0070] 具体地,通过模型中的生成网路对低分辨比率人脸图像进行超分处理,得到生成的高分辨率人脸图像,与真实的高分辨率人脸图像进行L2损失的计算,并将其作为判别网络的输入,判别网络计算对抗损失 通过判别网络对输入的生成的高分辨率人脸图像和目标高分辨率人脸图像判断真假,并计算对抗损失函数 该损失函数只用于更新判别网络的参数。模型迭代多次达到稳定后完成模型的训练。
[0071] 本发明中,利用所述卷积神经网络的高度非线性拟合能力,针对人脸图像超分任务,构造以低分辨人脸图像作为输入的神经网络模型。
[0072] 特别的,模型中生成网络以稠密残差块为基础,具有更好的模型容量,且不易出现梯度消失和爆炸的问题。稠密残差块结合注意力机制可以更好地学习图像的长远依赖。这样,通过如图2所示的网络,利用对抗生成网络可以训练一个,具有良好
感知效果的人脸图像超分模型。在测试阶段,使用测试集中的低分辨人脸图像作为模型的输入,且只通过模型中的生成网络,判别网络不参与测试,得到生成的效果图,如图1所示。
[0073] 具体的,基于稠密残差神经网络的人脸图像超分辨率模型包含两个网络,分别是生成网络和判别网络。特别的,模型的生成网络目标函数如下:
[0074]
[0075] 其中,λ1,λ2为平衡因子,用于调整各个损失函数所占的权重。
[0076] 上述的生成网络模型,主要完成人脸图像超分任务,所述模型的最终目标为L2,两个损失函数降低至最低且保持稳定。
[0077] 所述基于注意力机制的人脸图像超分辨率模型的两个网络如下训练:
[0078] 步骤S21:初始化模型中的稠密残差神经网络,λ1,λ2分别设置为0.1,0.7,批处理大小设为32,学习率设为10-4;
[0079] 步骤S22:对于人脸图像超分任务,具体地,通过生成网络对低分辨图像进行超分辨处理,得到生成的高分辨率人脸图像,与真实的高分辨率人脸图像进行L2损失的计算,通过判别网络对输入的目标高分辨人脸图像和模型中生成网络输出的高分辨率图像做损失函数的计算,模型迭代多次达到稳定后完成模型的训练。
[0080] 步骤S23:判别网络的输入为模型中生成网络生成的高分辨率人脸图像和目标高分辨率人脸图像。判别网络判断输入人脸图像的真假,并计算 损失函数。该损失函数只用于更新判别网络的参数。
[0081] 步骤S24:模型中的生成网络和判别网络同时交替训练,更新其网络权重。
[0082] 步骤S3:使用训练好的模型中的稠密残差神经网络,对测试数据集中的低分辨率人脸图像进行超分处理。
[0083] 为了详细说明本发明的具体实施方式及验证本发明的有效性,将本发明提出的方法应用于一个公开的数据集中训练(CelebA),该人脸图像大概有2万多张人脸图像。
[0084] 选择该数据集的80%作为训练数据集,剩余的20%作为测试数据集,用于测试模型的泛化性能。先对CelebA人脸数据集中的人脸图像进行预处理。第一,以一种统一的对齐裁剪方式裁剪原始的高分辨率人脸图像,且只保留人脸区域;第二,使用双线性下采样方法下采样对齐裁剪后的高分辨率人脸图像,得到对应的低分辨人脸图像;第三,对生成的低分-高分人脸图像对进行数据增广,以增加训练数据集中的图像数量,包括随机水平翻转,随机颜色变换。使用训练数据集训练模型,利用梯度反传技术优化模型参数,得到用来人脸图像超分的模型。
[0085] 为了测试该模型的有效性,使用剩余的20%人脸图像作为训练好的模型的测试集,
可视化的结果如图1所示。在实验中,与GroundTruth真实图像进行了对比,实验的结果如图1所示。该实施例有效证明了本发明所提出方法对人脸图像超分辨率的有效性。
[0086] 所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。