一种基于卷积神经网络的快速人脸交换方法

著录项
  • CN201911277784.1
  • 20191211
  • CN111160138A
  • 20200515
  • 杭州电子科技大学
  • 颜成钢;唐江平;孙垚棋;张继勇;张勇东;肖芒
  • G06K9/00
  • G06K9/00 G06N3/04 G06T3/00 G06T5/50 G06T7/194

  • 浙江省杭州市下沙高教园区2号大街
  • 浙江(33)
  • 杭州君度专利代理事务所(特殊普通合伙)
  • 杨舟涛
摘要
本发明提供一种基于卷积神经网络的快速人脸交换方法。本发明提出了一种前馈神经网络,该网络可以在人脸替换图像中实现高质量的逼真感。关键的部分在于,本发明实现的方法不同于以往风格转换的方法,使用多图像风格损失,从而近似于一种风格的多种描述,而不是使用单一的参考点。此外,进一步对损失函数进行扩展,以明确地匹配图像之间的光照条件。本发明可以实现全自动的实时人脸交换效果,可以处理特定类型的人脸替换,保持图像的姿势、脸部表情和光照强度等不发生改变。
权利要求

1.一种基于卷积神经网络的快速人脸交换方法,其特征在于,步骤如下:

步骤(1)、图像预处理

1、检测原图像和目标图像的脸部特征,使用dlib获取人脸的68个关键点;

2、通过仿射变换(旋转、缩放、平移)对目标图像的位置进行调整,使其与原图像相适应;

3、将原图像中的人脸与背景切分,方便后续仅对人脸区域进行操作;

原图像即输入图像x,目标图像即风格图像y;

步骤(2)、设计转换网络结构

转换网络本质上是前馈神经网络,用于将原人脸图像转换为目标人脸图像对应的风格化版本;转换网络是一个多尺寸结构,其多个分支对输入图像x的不同下采样版本分别进行操作;每个分支采用全零填充的卷积网络,进行线性矫正;分支通过最近邻向上采样的两倍和沿通道轴的连接组合而成的,转换网络的最后一个分支以1×1卷积和3个颜通道结束,该转换网络适用于128×128输入图像,对应有1M参数;对于更大的输入图像,如256×256或512×512,可以通过增加额外分支的方式推断出对应的转换网络结构;输出图像从具有最高分辨率的分支获取;训练128×128输入图像便于后续工作,可以将128×128分辨率训练网络作为用于更大输入图像网络的起始点;通过该方法,能够实现更高分辨率,而不需要重新训练整个模型;

本发明使用OpenCV中的无缝克隆技术将背景和生成的脸部交换图像进行融合;

步骤(3)、各个损失函数的设计

对于每一个输入图像x,本发明的目标是输出图像使得内容和风格的损失共同最小化;损失在19层VGG网络标准化版本的特征空间中有所定义;在传统卷积神经网络模型基础上进行改进的VGGNet,在图像分类问题上有着更加出的性能;本发明采用VGG19Net标准化版本特征空间中定义的损失函数,用以对输出图像质量进行评估,生成更加逼真的换脸结果;具体设计如下:

内容损失函数设计:

将输入图像x在第l层的VGG表达式定义为Φl(x);在该阶段输入图像x和风格图像y已完成图像预处理操作,图像维数均为3×H×W;

对于VGG网络的第l层,内容损失函数表达式如下:

式中,|Φl(x)|=ClHlWl,Φl(x)的维度为Cl×Hl×Wl,对应为输出图像在第l层的VGG表达式;

总内容损失函数表示式如下:

风格损失函数设计:

为了更加有效地保留图像的局部结构,本发明采用基于块的风格损失,其过程如下:通过循环中Hl×Wl可能位置生成的所有块的集合,记为在对应块中每个点周围抽取一个k×k的平方邻域,中包括M=(Hl-k+1)×(Wl-k+1)个神经块,其中第i个块的维数为Cl×k×k;对于来自的每一个块即块集合中的元素,需要从Y中抽取的块中到最佳匹配的块,并最小化它们之间的距离;所述的Y为风格图像集,本发明假设给定的条件不是单个风格图像而是一个风格图像集,该集合被定义为Y={y1,…yN};这些风格图像描述了本发明中想要匹配的特性,这些特性仅在网络模型训练期间被使用;采用余弦距离dc作为误差度量,余弦距离dc计算公式如下:

式中,u,v泛指任意两个矩阵;

风格损失函数计算公式如下:

式中,NN(i)为每个块对应的风格图像;本发明只搜索同一位置的块i,贯穿于多个风格图像中,表达式如下;

将风格图像y的面部特征点和输入图像x的面部特征点按照欧几里得距离进行排序,采用最佳匹配Nbest

光照损失函数设计:

本发明通过光照变化惩罚解决输入图像x的光照条件无法保存在输出图像中的问题;为了定义光照惩罚,本发明以同样的方式对风格和内容使用预训练网络的特征空间,如同使用VGG一样,对现成的VGG19Net进行扩展,补充了光照惩罚的特征空间表达;当特征空间呈现光照条件差异性时,这种方法将起到较好的效果;因为VGG被训练用于对象分类,其中光照信息不是特别相关,导致该网络不是很适合该任务;

为获得理想的光照灵敏度,构建小型的孪生卷积神经网络,在VGG19Net上扩展的一部分,增加了光照损失的特征空间;该网络本质上是一个二分器,用于区分一对图像具有相同或者不同的光照条件;这对图像往往姿势上保持一致;本发明使用Exteded Yale FaceDatabase B,该数据集包含9种姿势和64种光照条件的灰度人脸图像;

在光照网络的最后一层,将x的特征表示记为Γ(x),并引入式(7)的损失函数,该函数试图防止输入图像x与生成图像具有不同的光照条件;和x都是单通道亮度图像;

对空间平滑进行正则化,公式如下;

最终损失函数是之前描述各个损失函数的加权组合,如式(9)所示;

步骤(4)、训练网络模型

将预处理后的输入图像x和风格图像集Y输入构建好的网络模型中进行网络模型的训练,通过训练后的网络模型完成快速人脸交换。

说明书
技术领域

本发明属于计算机多媒体技术领域,具体涉及一种基于卷积神经网络的快速人脸交换方法。

人脸交换在很多场景下都有着实际应用,其中包括隐私保护,肖像的外貌转换,视频合成以及其它具有创造性的应用程序。Bitouk等人基于相貌和姿势的相似程度,从一个大数据集中选取最接近的另一个人脸,从而实现自动代替输入图像中的人脸。该方法将脸部的眼睛、鼻子和嘴巴进行了替换,并进一步调整颜和光照,以更好的将两张人脸进行混合。这个设计存在两个主要的缺陷:没有对输出特性加以控制和输入人脸的表情将被改变。Dale等人的工作重点是在视频中的人脸替换,视频中可以获得两个扮演类似角受试者的镜头。与静态图像相比,序列数据将带来多方面的额外困难:时间对齐、跟踪面部表现和确保镜头的时间一致性。此外,该系统非常复杂并且仍然需要大量的时间和人工指导。Suwajanakorn等人提出了一种值得注意的方法,试图使用另一张脸控制一张脸的表情。其核心思想是对从大量图像中选取的替换人脸和输入图像的人脸建立3D模型。也就是说,它在几百张图像可利用的情况下表现较好,但不能应用于单个图像。上述方法基于复合多阶段系统,结合人脸重建、跟踪、对齐和图像合成等算法。这些系统取得了令人信服的结果,有时与真实照片难以区分。然而,它们仍然存在一些未解决的问题。

本发明考虑这样一种情况:给定任意一个人物A的单个输入图像,使用另一个人物B替换A的特性,同时保持输入图像的姿势、面部表情、凝视方向、发型和照明的完好无损。本发明提出一种新颖的解决方案,受启发于艺术方面风格转换的最近进展,其目标是将一个图像的语义内容呈现为另一个图像的风格。Gatys等人的基础工作将内容和风格的概念定义为用于目标识别的卷积神经网络中特征空间的函数。风格化通过使用一个相当慢并消耗内存严重的优化进程进行实施。它逐渐地改变一个图像的像素值,直到其内容和风格的统计值与给定内容图像和给定风格图像的像素值分别匹配为止。

Ulyanov等人和Johnson等人针对上述优化方法存在的缺陷,提出了一种替代方案。他们训练前馈神经网络将任何图像转换成对应风格化的版本,从而将开销巨大的计算转移到网络的训练阶段。在测试时,风格化需要通过网络进行一次向前传递,这可以实时完成。这种改进的代价是必须为每种样式训练单独的网络。

虽然神经网络用于风格转换在许多艺术作品上取得了显著的效果,但是该方法却不是特别适合照片级的风格转换。出现这种情形的原因在于,被用作表示风格的Gram矩阵无法捕获有关图像空间布局的足够信息,这将导致不自然的畸变,这种畸变通常在艺术图像上不太引起注意,但在真实的图像方面却不尽相同。Li和Wand通过将基于相关性的风格损失替换为基于块的损失来更好地保留局部结构,从而缓解了这个问题。他们的结果首次表明,使用风格转换技术可以实现照片中的人脸修改,并达到逼真自然的效果。然而,这个方向就像Gatys的工作一样,没有进一步进行探索,两者都依赖于昂贵的优化。后来基于块的损失应用于前馈神经网络仅仅只是用于探索纹理合成和艺术方面的风格转换。

本发明在Li和Wand工作的基础上又向前迈进了一步:提出了一种前馈神经网络,该网络可以在人脸替换图像中实现高质量的逼真感。关键的部分在于,本发明实现的方法不同于以往风格转换的方法,使用多图像风格损失,从而近似于一种风格的多种描述,而不是使用单一的参考点。此外,进一步对损失函数进行扩展,以明确地匹配图像之间的光照条件。本发明涉及方法的主要需求来源于目标图像的数据集合,通常公众人物的图像在网络上随处可见,能够非常容易地获取对应的数据集合。

由于本发明的人脸交换方法比较独特,结果看起来不同于那些使用传统计算机视觉技术或图像编辑软件获得的结果。虽然很难与专门从事这项工作的艺术家相比较,但本发明的结果表明,快速和自动化的方法,实现人为水平的表现能力完全是可能的。

针对现有技术中存在的问题,本发明提供一种基于卷积神经网络的快速人脸交换方法。

一种基于卷积神经网络的快速人脸交换方法,步骤如下:

步骤(1)、图像预处理

1、检测原图像和目标图像的脸部特征,使用dlib获取人脸的68个关键点。

2、通过仿射变换(旋转、缩放、平移)对目标图像的位置进行调整,使其与原图像相适应;

3、将原图像中的人脸与背景切分,方便后续仅对人脸区域进行操作。

原图像即输入图像x,目标图像即风格图像y。

步骤(2)、设计转换网络结构

转换网络本质上是前馈神经网络,用于将原人脸图像转换为目标人脸图像对应的风格化版本。转换网络是一个多尺寸结构,其多个分支对输入图像x的不同下采样版本分别进行操作。每个分支采用全零填充的卷积网络,进行线性矫正。分支通过最近邻向上采样的两倍和沿通道轴的连接组合而成的,转换网络的最后一个分支以1×1卷积和3个颜通道结束,该转换网络适用于128×128输入图像,对应有1M参数。对于更大的输入图像,如256×256或512×512,可以通过增加额外分支的方式推断出对应的转换网络结构。输出图像从具有最高分辨率的分支获取。训练128×128输入图像便于后续工作,可以将128×128分辨率训练网络作为用于更大输入图像网络的起始点。通过该方法,能够实现更高分辨率,而不需要重新训练整个模型。

本发明使用OpenCV中的无缝克隆技术将背景和生成的脸部交换图像进行融合。

步骤(3)、各个损失函数的设计

对于每一个输入图像x,本发明的目标是输出图像使得内容和风格的损失共同最小化。损失在19层VGG网络标准化版本的特征空间中有所定义。在传统卷积神经网络模型基础上进行改进的VGGNet,在图像分类问题上有着更加出的性能。本发明采用VGG19Net标准化版本特征空间中定义的损失函数,用以对输出图像质量进行评估,生成更加逼真的换脸结果。具体设计如下:

内容损失函数设计:

将输入图像x在第l层的VGG表达式定义为Φl(x)。在该阶段输入图像x和风格图像y已完成图像预处理操作,图像维数均为3×H×W。

对于VGG网络的第l层,内容损失函数表达式如下:

式中,|Φl(x)|=ClHlWl,Φl(x)的维度为Cl×Hl×Wl,对应为输出图像在第l层的VGG表达式。

总内容损失函数表示式如下:

风格损失函数设计:

为了更加有效地保留图像的局部结构,本发明采用基于块的风格损失,其过程如下:通过循环中Hl×Wl可能位置生成的所有块的集合,记为在对应块中每个点周围抽取一个k×k的平方邻域,中包括M=(Hl-k+1)×(Wl-k+1)个神经块,其中第i个块的维数为Cl×k×k。对于来自的每一个块即块集合中的元素,需要从Y中抽取的块中到最佳匹配的块,并最小化它们之间的距离。所述的Y为风格图像集,本发明假设给定的条件不是单个风格图像而是一个风格图像集,该集合被定义为Y={y1,…yN}。这些风格图像描述了本发明中想要匹配的特性,这些特性仅在网络模型训练期间被使用。采用余弦距离dc作为误差度量,余弦距离dc计算公式如下:

式中,u,v泛指任意两个矩阵。

风格损失函数计算公式如下:

式中,NN(i)为每个块对应的风格图像。本发明只搜索同一位置的块i,贯穿于多个风格图像中,表达式如下。

将风格图像y的面部特征点和输入图像x的面部特征点按照欧几里得距离进行排序,采用最佳匹配Nbest

光照损失函数设计:

本发明通过光照变化惩罚解决输入图像x的光照条件无法保存在输出图像中的问题。为了定义光照惩罚,本发明以同样的方式对风格和内容使用预训练网络的特征空间,如同使用VGG一样,对现成的VGG19Net进行扩展,补充了光照惩罚的特征空间表达。当特征空间呈现光照条件差异性时,这种方法将起到较好的效果。因为VGG被训练用于对象分类,其中光照信息不是特别相关,导致该网络不是很适合该任务。

为获得理想的光照灵敏度,构建小型的孪生卷积神经网络,在VGG19Net上扩展的一部分,增加了光照损失的特征空间。该网络本质上是一个二分器,用于区分一对图像具有相同或者不同的光照条件。这对图像往往姿势上保持一致。本发明使用Exteded Yale FaceDatabase B,该数据集包含9种姿势和64种光照条件的灰度人脸图像。

在光照网络的最后一层,将x的特征表示记为Γ(x),并引入式(7)的损失函数,该函数试图防止输入图像x与生成图像具有不同的光照条件。和x都是单通道亮度图像。

对空间平滑进行正则化,公式如下。

最终损失函数是之前描述各个损失函数的加权组合,如式(9)所示。

步骤(4)、训练网络模型

将预处理后的输入图像x和风格图像集Y输入构建好的网络模型中进行网络模型的训练,通过训练后的网络模型完成快速人脸交换。

本发明有益效果如下:

1、使用深度神经网络可以实现全自动的实时人脸交换效果

2、本发明使用神经网络的风格转换可以生成真实的人脸图像

3、该方法可以处理特定类型的人脸替换,保持图像的姿势、脸部表情和光照强度等不发生改变。

4、使用前置反馈神经网络有很多优点:易于实现,易于添加新的特性,控制效果强度的能力或实现看上去结果更加自然的的潜力。

图1为本发明方法的系统流程图;

图2为本发明128×128分辨率训练网络。

下面结合具体实施方式对本发明进行详细的说明。

一种基于卷积神经网络的快速人脸交换方法,步骤如下:

步骤(1)、图像预处理

1、检测原图像和目标图像的脸部特征,使用dlib获取人脸的68个关键点。

2、通过仿射变换(旋转、缩放、平移)对目标图像的位置进行调整,使其与原图像相适应;

3、将原图像中的人脸与背景切分,方便后续仅对人脸区域进行操作。

原图像即输入图像x,目标图像即风格图像y。

步骤(2)、设计转换网络结构

转换网络本质上是前馈神经网络,用于将原人脸图像转换为目标人脸图像对应的风格化版本。转换网络是一个多尺寸结构,其多个分支对输入图像x的不同下采样版本分别进行操作。每个分支采用全零填充的卷积网络,进行线性矫正。分支通过最近邻向上采样的两倍和沿通道轴的连接组合而成的,转换网络的最后一个分支以1×1卷积和3个颜通道结束,该转换网络适用于128×128输入图像,对应有1M参数。对于更大的输入图像,如256×256或512×512,可以通过增加额外分支的方式推断出对应的转换网络结构。输出图像从具有最高分辨率的分支获取。训练128×128输入图像便于后续工作,可以将128×128分辨率训练网络作为用于更大输入图像网络的起始点。通过该方法,能够实现更高分辨率,而不需要重新训练整个模型。

图2为本发明128×128分辨率训练网络。

本发明使用OpenCV中的无缝克隆技术将背景和生成的脸部交换图像进行融合。

步骤(3)、各个损失函数的设计

对于每一个输入图像x,本发明的目标是输出图像使得内容和风格的损失共同最小化。损失在19层VGG网络标准化版本的特征空间中有所定义。在传统卷积神经网络模型基础上进行改进的VGGNet,在图像分类问题上有着更加出的性能。本发明采用VGG19Net标准化版本特征空间中定义的损失函数,用以对输出图像质量进行评估,生成更加逼真的换脸结果。具体设计如下:

内容损失函数设计:

将输入图像x在第l层的VGG表达式定义为Φl(x)。在该阶段输入图像x和风格图像y已完成图像预处理操作,图像维数均为3×H×W。

对于VGG网络的第l层,内容损失函数表达式如下:

式中,|Φl(x)|=ClHlWl,Φl(x)的维度为Cl×Hl×Wl,对应为输出图像在第l层的VGG表达式。

总内容损失函数表示式如下:

风格损失函数设计:

为了更加有效地保留图像的局部结构,本发明采用基于块的风格损失,其过程如下:通过循环中Hl×Wl可能位置生成的所有块的集合,记为在对应块中每个点周围抽取一个k×k的平方邻域,中包括M=(Hl-k+1)×(Wl-k+1)个神经块,其中第i个块的维数为Cl×k×k。对于来自的每一个块即块集合中的元素,需要从Y中抽取的块中到最佳匹配的块,并最小化它们之间的距离。所述的Y为风格图像集,本发明假设给定的条件不是单个风格图像而是一个风格图像集,该集合被定义为Y={y1,…yN}。这些风格图像描述了本发明中想要匹配的特性,这些特性仅在网络模型训练期间被使用。采用余弦距离dc作为误差度量,余弦距离dc计算公式如下:

式中,u,v泛指任意两个矩阵。

风格损失函数计算公式如下:

式中,NN(i)为每个块对应的风格图像。本发明只搜索同一位置的块i,贯穿于多个风格图像中,表达式如下。

将风格图像y的面部特征点和输入图像x的面部特征点按照欧几里得距离进行排序,采用最佳匹配Nbest

光照损失函数设计:

本发明通过光照变化惩罚解决输入图像x的光照条件无法保存在输出图像中的问题。为了定义光照惩罚,本发明以同样的方式对风格和内容使用预训练网络的特征空间,如同使用VGG一样,对现成的VGG19Net进行扩展,补充了光照惩罚的特征空间表达。当特征空间呈现光照条件差异性时,这种方法将起到较好的效果。因为VGG被训练用于对象分类,其中光照信息不是特别相关,导致该网络不是很适合该任务。

为获得理想的光照灵敏度,构建小型的孪生卷积神经网络,在VGG19Net上扩展的一部分,增加了光照损失的特征空间。该网络本质上是一个二分器,用于区分一对图像具有相同或者不同的光照条件。这对图像往往姿势上保持一致。本发明使用Exteded Yale FaceDatabase B,该数据集包含9种姿势和64种光照条件的灰度人脸图像。

在光照网络的最后一层,将x的特征表示记为Γ(x),并引入式(7)的损失函数,该函数试图防止输入图像x与生成图像具有不同的光照条件。和x都是单通道亮度图像。

对空间平滑进行正则化,公式如下。

最终损失函数是之前描述各个损失函数的加权组合,如式(9)所示。

步骤(4)、训练网络模型

将预处理后的输入图像x和风格图像Y输入构建好的网络模型中进行网络模型的训练,通过训练后的网络模型完成快速人脸交换。

图1为本发明方法的系统流程图。

实施例

本发明训练通过训练转换网络,用以表现与刘德华交换人脸的效果,在网络上收集了共计256张不同姿势和面部表情的照片。为了进一步增加风格图像的数量,每个图像经过水平翻转。使用CelebA数据集作为训练的内容图像来源,其中包含了200000张名人的照片。

网络的训练分两个阶段进行。首先,通过训练多尺寸结构网络,来处理128×128图像。最小化式(9)给出的目标函数,其中使用光照网络进行计算,光照网络同样在128×128输入图像上训练。在式(9)中,令β=10-22使得与内容和风格损失具有可比较性。对于总变化损失,选择γ=0.3。

使用Adam训练转换网络,进行一万次迭代,16为一个批次,在Tesla M40 GPU上花费的时间为2.5小时(由Theano和Lasagne实现得出的数据)。权重进行正交初始化。按照手动学习率计划进行训练的过程中,学习率从0.001降低至0.0001。

关于风格转换具体细节,本发明使用下列设置。风格损失和内容损失分别使用VGG的{relu3_1,relu4_1}层和{relu4_2}层进行计算。对于风格损失,设置批次大小k=1。在训练过程中,将每一个输入图像与Nbest风格图像的集合进行匹配,其中Nbest的大小等于16。风格权重α在总目标函数中是最关键的调优参数,将α=0逐步调整到α=25直至在后面的实验中产生最好的结果。

在训练完一个128×128输入和输出模型的基础上,本发明增加一个额外分支用以处理256×256图像。在保持网络其它部分不变的情况下,对额外分支进行了优化处理。该网络的训练准则与上述网络相同,除了风格权重增加到了α=100且使用256×256输入图像对光照网络进行训练。转换网络训练花费时间为11.5小时,参数个数为2M,其中有一半以上参数用于第二阶段的训练。

本文发布于:2024-09-25 00:29:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/72796.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议