CN113255551A - 一种人脸编辑器的训练、人脸编辑、直播方法及相关装置 - Google Patents
一种人脸编辑器的训练、人脸编辑、直播方法及相关装置 Download PDFInfo
- Publication number
- CN113255551A CN113255551A CN202110624499.3A CN202110624499A CN113255551A CN 113255551 A CN113255551 A CN 113255551A CN 202110624499 A CN202110624499 A CN 202110624499A CN 113255551 A CN113255551 A CN 113255551A
- Authority
- CN
- China
- Prior art keywords
- face
- vector
- data
- attribute
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000012549 training Methods 0.000 title claims abstract description 90
- 239000013598 vector Substances 0.000 claims abstract description 405
- 238000012545 processing Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 230000001815 facial effect Effects 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 8
- 230000008447 perception Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 208000025967 Dissociative Identity disease Diseases 0.000 claims description 3
- 238000012512 characterization method Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 25
- 238000010586 diagram Methods 0.000 description 24
- 238000001514 detection method Methods 0.000 description 13
- 239000011521 glass Substances 0.000 description 10
- 238000000605 extraction Methods 0.000 description 8
- 238000010494 dissociation reaction Methods 0.000 description 7
- 230000005593 dissociations Effects 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 210000000887 face Anatomy 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000032683 aging Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 210000001508 eye Anatomy 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000003679 aging effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 210000004709 eyebrow Anatomy 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012358 sourcing Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供了一种人脸编辑器的训练、人脸编辑、直播方法及相关装置,人脸编辑器的训练方法包括:以原始人脸数据作为样本,训练用于复原人脸的人脸重构器,对原始人脸数据训练隐向量,隐向量表征人脸属性,在隐向量所处的空间中,寻找用于法向量,法向量表示编辑每种所述人脸属性的方向,针对每种人脸属性,沿法向量调整隐向量,以在人脸重构器中生成目标人脸数据,针对每种人脸属性,在配对的原始人脸数据与目标人脸数据的监督下,将人脸重构器调整为用于编辑人脸属性的人脸编辑器,通过独立针对单一的人脸属性训练人脸编辑器,人脸编辑器在应用简单结构进行有监督学习的情况下,可保持较优的性能,编辑人脸属性的效果可控,可以大大简化人脸编辑器的结构。
Description
技术领域
本发明实施例涉及计算机视觉的技术领域,尤其涉及一种人脸编辑器的训练、人脸编辑、直播方法及相关装置。
背景技术
在拍照、录像、制作短视频、直播等场景中,使用定制化的工具,对人脸的属性进行编辑,例如,增强/减弱/改变性别、变老或变年轻、加强或减弱眼袋、大眼或小眼、变胖或变瘦、增强或减弱妆容,等等,从而增强娱乐、视频多样性、直播互动等业务效果。
由于人脸的属性比较多,为了兼顾对不同属性的调整,编辑人脸属性的工具的结构较为庞大,在训练时需求的样本量大,而且,运行结构庞大的工具消耗的资源较大、耗时较长,通常部署在性能更高的个人电脑或云端,用户在客户端采集图像数据或视频数据之后,上传至个人电脑或云端编辑人脸属性,再传回客户端显示,存在一定延时。
发明内容
本发明实施例提出了一种人脸编辑器的训练、人脸编辑、直播方法及相关装置,以解决编辑人脸属性的工具的结构较为庞大的问题。
第一方面,本发明实施例提供了一种人脸编辑器的训练方法,包括:
以原始人脸数据作为样本,训练用于复原人脸的人脸重构器;
对所述原始人脸数据训练隐向量,所述隐向量表征人脸属性;
在所述隐向量所处的空间中,寻找法向量,所述法向量表示编辑每种所述人脸属性的方向;
针对每种所述人脸属性,沿所述法向量调整所述隐向量,以在所述人脸重构器中生成目标人脸数据;
针对每种所述人脸属性,在配对的所述原始人脸数据与所述目标人脸数据的监督下,将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器。
第二方面,本发明实施例还提供了一种人脸编辑方法,包括:
接收原始图像数据,所述原始图像数据中具有人物形象;
从多种人脸属性中选定对所述人物形象编辑的人脸属性,作为目标属性,每种所述人脸属性均配置有编辑所述人脸属性的人脸编辑器;
加载用于编辑所述目标属性的人脸编辑器;
将所述原始图像数据输入至所述人脸编辑器中进行编辑,以编辑所述人物形象的所述目标属性、获得目标图像数据。
第三方面,本发明实施例还提供了一种直播方法,包括:
采集视频数据,所述视频数据中的多帧原始图像数据中具有主播用户;
从多种人脸属性中选定对所述主播用户编辑的人脸属性,作为目标属性,每种所述人脸属性均配置有编辑所述人脸属性的人脸编辑器;
加载用于编辑所述目标属性的人脸编辑器;
将所述原始图像数据输入至所述人脸编辑器中进行编辑,以编辑所述主播用户的所述目标属性、获得目标图像数据;
预览包含所述目标图像数据的所述视频数据,以及,将包含所述目标图像数据的所述视频数据推流至所述主播用户开设的直播间中进行发布。
第四方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的人脸编辑器的训练方法或者如第二方面所述的人脸编辑或者如第三方面所述的直播方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的人脸编辑器的训练方法或者如第二方面所述的人脸编辑或者如第三方面所述的直播方法。
在本实施例中,以原始人脸数据作为样本,训练用于复原人脸的人脸重构器,对原始人脸数据训练隐向量,隐向量表征人脸属性,在隐向量所处的空间中,寻找用于法向量,法向量表示编辑每种所述人脸属性的方向,针对每种人脸属性,沿法向量调整隐向量,以在人脸重构器中生成目标人脸数据,针对每种人脸属性,在配对的原始人脸数据与目标人脸数据的监督下,将人脸重构器调整为用于编辑人脸属性的人脸编辑器,通过独立针对单一的人脸属性训练人脸编辑器,人脸编辑器在应用简单结构进行有监督学习的情况下,可保持较优的性能,编辑人脸属性的效果可控,可以大大简化人脸编辑器的结构,降低在训练时使用的样本的数量,并且,运行结构较为简单的人脸编辑器消耗的资源较少、耗时较少,可部署在性能更高的个人电脑或云端,也可部署在性能较低的移动端,在移动端编辑人脸属性,无需上传至个人电脑或云端编辑人脸属性,耗时少,响应速度快。
此外,本实施例训练的流程简单,可以快速迭代新的人脸属性作为新特效,为新的特效快速上线提供了帮助,并且避免了很多冗长的预处理、后处理,对直播、短视频等业务场景的新特效提供了一个低成本、高效率的工业化的流程。
附图说明
图1为现有的编辑人脸属性的工具的架构示意图;
图2为本发明实施例一提供的一种人脸编辑器的训练方法的流程图;
图3A为本发明实施例一提供的一种人脸重构器的架构示意图;
图3B为本发明实施例一提供的一种解码器的架构示意图;
图3C为本发明实施例一提供的一种判别器的架构示意图;
图4为本发明实施例一提供的一种循环操作的示意图;
图5为本发明实施例一提供的一种编辑人脸属性的示例图;
图6为本发明实施例一提供的一种监督学习的样本的示例图;
图7为本发明实施例一提供的一种人脸编辑器的架构示意图;
图8是本发明实施例二提供的一种人脸编辑器的训练方法的流程图;
图9是本发明实施例二提供的一种人脸属性耦合及其解耦的示例图;
图10是本发明实施例二提供的一种解离法向量的示意图;
图11是本发明实施例三提供的一种人脸编辑的流程图;
图12是本发明实施例四提供的一种直播方法的流程图;
图13为本发明实施例五提供的一种人脸编辑器的训练装置的结构示意图;
图14为本发明实施例六提供的一种人脸编辑装置的结构示意图;
图15为本发明实施例七提供的一种直播装置的结构示意图;
图16为本发明实施例八提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
如图1所示,编辑人脸属性的工具一般包括解码器、编码器,除了解码器、编码器之外,还需要额外训练属性编辑模块,对众多的人脸属性提供统一编辑的方式,将图像数据输入编码器中编码为向量,属性编辑模块对该向量进行编辑,添加用户意图编辑的人脸属性的特征,编辑完成之后,将向量输入解码器中解码得到用户想要的效果图,例如,变老效果图,变男效果图,长胡子效果图,带眼镜效果图,等等。
为了兼顾不同的人脸属性,解码器、编码器的结构较为复杂,属性编辑模块的处理方式也较为复杂。
实施例一
图2为本发明实施例一提供的一种人脸编辑器的训练方法的流程图,本实施例可适用于针对每种人脸属性训练人脸编辑器的情况,该方法可以由人脸编辑器的训练装置来执行,该人脸编辑器的训练装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、工作站、个人电脑,等等,具体包括如下步骤:
步骤201、以原始人脸数据作为样本,训练用于复原人脸的人脸重构器。
为便于采集足够数量的数据集,可以在开源数据库(如FFHQ(Flickr Faces HighQuality))和/或开源项目中采集表示人脸的图像数据、作为原始人脸数据,当然,为提高人脸重构器、人脸编辑器在业务场景的精确度,也可以通过业务场景的渠道采集表示人脸的图像数据、作为原始人脸数据,本实施例对此不加以限制。
以直播作为业务场景的示例,可以采集主播用户在主持直播节目时,包含主播用户的人脸的图像数据,作为原始人脸数据。
此外,考虑到人脸编辑器在业务场景下面向的用户是具有地域性的,因此,可以采集在相应地域的原始人脸数据。
例如,假设人脸编辑器主要面向亚洲用户,则可以在开源数据库FFHQ中采集3万原始人脸数据,在开源项目-亚洲人生成器中采集3万原始人脸数据,对主播用户采集4万原始人脸数据,从而构成10万的数据集。
在本实施例中,可以以原始人脸数据作为训练的样本,训练人脸重构器,该人脸重构器用于复原人脸,即给定人脸数据,人脸重构器可在提取特征之后,使用特征重新生成人脸数据。
在本发明的一个实施例中,人脸重构器包括编码器Encoder、解码器Decoder,则在本实施例中,步骤201包括如下步骤:
步骤2011、在编码器中,将原始人脸数据编码为向量,作为人脸向量。
在本实施例中,可以将原始人脸数据输入至编码器Encoder中,编码器Encoder对原始人脸数据进行编码处理,提取原始人脸数据的向量、作为人脸的特征,该向量记为人脸向量。
在一个编码器Encoder中,如图3A所示,编码器Encoder包括n(n为正整数)个卷积层(Convolutional Layer)301与1个全连接层(Full Connected Layer,FC)302,其中,n个卷积层301依次连接,按照正向传播的顺序,排序在先的卷积层301输出向量的维度大于排序在后的卷积层301输出向量的维度。
那么,在编码器Encoder中,按照排序依次调用n个卷积层301对原始人脸数据进行卷积处理,获得候选向量,即,将原始人脸数据输入至第1个卷积层301进行卷积处理,输出原始人脸数据的向量,对于第2至n个卷积层301,接收上一卷积层输出的向量,并对该特征进行卷积处理,输出新的向量,对于第n个卷积层输出的向量,记为候选向量。
将候选向量输出至全连接层302,从而调用全连接层302对候选向量进行全连接操作,获得2n层的人脸向量303。
示例性地,设n=9,第1个卷积层输出的向量的维度为1024×1024×512,第2个卷积层输出的向量的维度为512×512×512,第3个卷积层输出的向量的维度为256×256×512,第4个卷积层输出的向量的维度为128×128×512,第5个卷积层输出的向量的维度为64×64×512,第6个卷积层输出的向量的维度为32×32×512,第7个卷积层输出的向量的维度为16×16×512,第8个卷积层输出的向量的维度为8×8×512,第9个卷积层输出的向量的维度为4×4×512,全连接层输出的向量的维度为18×512,使得人脸向量的维度为18×512。
步骤2012、在解码器中,对人脸向量解码为人脸数据,作为重构人脸数据。
在本实施例中,可以将人脸向量输入至解码器Decoder中,解码器Decoder对原始人脸数据进行解码处理,生成新的、表示人脸的图像数据,作为人脸数据数据,该人脸数据记为重构人脸数据。
在一个解码器Decoder中,如图3A所示,解码器Decoder为风格对抗生成网络StyleGAN2中的综合网络Synthesis network,综合网络Synthesis network包括n个块Block 304,n个块Block 304依次连接。
如图3B所示,每一个块Block 304可以分为上半部分和下半部分,而每部分又可以分为卷积层Conv(卷积核可为3×3)和风格变换器AdaIN(AdaIN为IN(Instance Norm,在图像像素上,对高H宽W做归一化,用在风格迁移)的变种)。
由于两部分的卷积层Conv有不同,所以上半部分叫做Conv0,下半部分叫Conv1,其中第一个块Block没有Conv0。
如图3A所示,在解码器Decoder中,按照排序依次调用n个块Block 304对2n层人脸向量303进行处理,获得重构人脸数据,其中,每2层人脸向量303为每个块Block 304的输入,尤其为每个人脸向量303依次为每个风格变换器AdaIN的输入。
具体而言,如图3B所示,针对首个块Block 304,对表示变量Const添加噪声Noise(标识B),在风格变换器AdaIN中,使用第0层的人脸变量(标识A)对该人脸数据进行风格迁移,在卷积层Conv中,对该人脸数据进行卷积处理,对该人脸数据添加噪声Noise(标识B),在风格变换器AdaIN中,使用第1层的人脸变量(标识A)对该人脸数据进行风格迁移,输出该人脸数据至下一个块Block 304。
针对第i(i>1)个块Block 304,在卷积层Conv中,对第i-1个块Block304输出的人脸数据(Upsample)进行卷积处理,对该人脸数据添加噪声Noise(标识B),在风格变换器AdaIN中,使用第2i-2层的人脸变量(标识A)对该人脸数据进行风格迁移,在卷积层Conv中,对该人脸数据进行卷积处理,对该人脸数据添加噪声Noise(标识B),在风格变换器AdaIN中,使用第2i-1层的人脸变量(标识A)对该人脸数据进行风格迁移,其中,从第0层开始设置人脸变脸的层数。
若第i个块Block 304并非最后一个块Block 304,则输出该人脸数据至下一个块Block304,若第i个块Block为最后一个块Block 304,则输出该人脸数据为重构人脸数据。
如图3A所示,解码器Decoder与编码器Encoder的结构是相反的,若在编码器Encoder中,按照正向传播的顺序,排序在先的卷积层输出向量的维度大于排序在后的卷积层输出向量的维度,那么,在解码器Decoder中,按照正向传播的顺序,排序在先的块Block304输出向量的维度小于排序在后的块Block 304输出向量的维度。
示例性地,设n=9,第1个块Block输入第0、1层的人脸向量,输出的向量的维度为4×4×512,第2个块Block输入第2、3层的人脸向量,输出的向量的维度为8×8×512,第3个块Block输入第4、5层的人脸向量,输出的向量的维度为16×16×512,第4个块Block输入第6、7层的人脸向量,输出的向量的维度为32×32×512,第5个块Block输入第8、9层的人脸向量,输出的向量的维度为64×64×512,第6个块Block输入第10、11层的人脸向量,输出的向量的维度为128×128×512,第7个块Block输入第12、13层的人脸向量,输出的向量的维度为256×256×512,第8个块Block输入第14、15层的人脸向量,输出的向量的维度为512×512×512,第9个块Block输入第16、17层的人脸向量,输出的向量的维度为1024×1024×512。
步骤2013、在通用判别器中,对原始人脸数据与重构人脸数据计算损失值,作为重构损失值。
在训练人脸重构器时,可设置判别器Discriminator,记为通用判别器Discriminator,将人脸数据(原始人脸数据、重构人脸数据)输入通用判别器Discriminator中,从原始人脸数据提取通用人脸特征,基于该通用人脸特征判断该人脸数据是真的人脸数据(原始人脸数据)还是虚假的人脸数据(重构人脸数据)。
为提高训练人脸重构器的效率,如图3C所示,通用判别器包括n个卷积层305,编码器的n个卷积层与判别器的n个卷积层结构相同,其中,n个卷积层依次连接,按照正向传播的顺序,排序在先的卷积层输出向量的维度大于排序在后的卷积层输出向量的维度。
示例性地,在通用判别器Discriminator中,从原始人脸数据提取第一通用人脸特征,从重构人脸数据提取第二通用人脸特征,基于第一通用人脸特征与第二通用人脸特征计算L2(Euclidean,欧式)距离,感知损失(Perceptual Losses)等损失值,作为重构损失值。
步骤2014、判断重构损失值是否收敛;若是,则执行步骤2015,若否,则执行步骤2016。
步骤2015、确定人脸重构器训练完成。
步骤2016、更新解码器、编码器,返回执行步骤2011。
在本实施例中,可预先对于重构损失值可以设置表示收敛的条件,例如,重构损失值小于第一通用阈值,相邻重构损失值之间的差异记为变化幅度、连续多个变化幅度均小于第二通用阈值,迭代的次数超过第三通用阈值,等等。
在每次迭代中,可以判断当前的重构损失值是否满足该条件。
如果满足该条件,则重构损失值收敛,此时,确认人脸重构器训练完成,存储该人脸重构器中编码器、解码器的结构及编码器、解码器的参数。
如果不满足该条件,则对人脸重构器中的编码器、解码器进行反向传播,通过以随机梯度下降(stochastic gradient descent,SGD)算法为代表的手动设定学习率的优化方式,或者,以自适应矩估计(Adaptive Moment Estimation,Adam)为代表的自适应设定学习率更新解码器、编码器的参数,进入下一次迭代。
步骤202、对原始人脸数据训练隐向量。
人脸重构器是用于复原人脸,其编码器Encoder输出的人脸向量并不一定表征人脸属性,为编辑人脸属性,通过基于迭代优化方法、基于训练人脸重构器等方法可对原始人脸数据隐向量latent,其中,隐向量latent表征人脸属性,例如,五官,脸型,肤色,等等。
在本发明的一个实施例中,结合基于迭代优化方法、基于训练人脸重构器等方法可对原始人脸数据表征人脸属性的隐向量,可以同时兼顾基于迭代优化方法保证重建隐向量的效果以及基于训练人脸重构器使得处理时间少的优点,则在本实施例中,步骤202可以包括如下步骤:
步骤2021、执行循环操作。
在本实施例中,如图4所示,设置循环操作,该循环操作指S1→S2→S3→S1→S2→S3→S1……其中,箭头表示执行的顺序,即,在一次循环操作中,先执行S1、然后执行S2、再执行S3,执行完S3可进入下一次循环操作。
S1、人脸重构器中的编码器将原始人脸数据编码为人脸向量。
S2、按照映射参数(如向量矩阵)将人脸向量映射为隐向量。
S3、人脸重构器中的解码器将隐向量解码为新的原始人脸数据。
在执行循环操作时,并不一定完整执行一次循环操作,可以在执行S1或S2完成时,即可停止循环操作。
步骤2022、基于循环操作生成损失值,作为属性损失值。
在本实施例中,可以执行至少一次的循环操作,使得使用隐向量解码重构新的原始人脸数据,后续基于新的原始人脸数据可以与真实的原始人脸数据在各个操作进行对齐,从而计算两者之间的差异,得到损失值,记为属性损失值。
在一个示例中,属性损失值包括如下三部分:
在第一部分中,计算原始人脸数据与新的原始人脸数据之间的第一距离。
在第二部分中,计算原始人脸数据与新的原始人脸数据之间表征感知损失的第三距离。
在具体实现中,可设置通用特征提取网络,如CNN(Convolutional NeuralNetworks,卷积神经网络)中的VGG(Visual Geometry Group)网络,提取更高维度的特征。
一方面,将原始人脸数据输入至通用特征提取网络中提取特征,获得第一通用图像特征,另一方面,将新的原始人脸数据输入至通用特征提取网络中提取特征,获得第二通用图像特征,从而计算第一通用图像特征与第二通用图像特征之间的第二距离。
在第三部分中,计算原始人脸数据对应的隐向量(即对原始人脸数据执行S1、S2之后的隐向量)与新的原始人脸数据对应的隐向量(即对新的原始人脸数据执行S1、S2之后的隐向量)之间的第三距离。
将第一距离、第二距离与第三距离线性融合为属性损失值,即对第一距离、第二距离与第三距离配置相应的权重之后求和,一般情况下,第一距离的权重均大于第二距离的权重、第三距离的权重。
示例性地,属性损失值表示如下:
LOSSattribute=||x-G(z)||2+λvgg||F(x)-F(G(z))||2+λdom||z-E(G(z))||2
其中,LOSSattribute为属性损失值,x为原始人脸数据,z为隐向量,E为编码器,G为解码器,F为通用特征提取网络(如VGG网络),λvgg为权重、属于超参数,λdom为权重、属于超参数。
||x-G(z)||2为第一距离,||F(x)-F(G(z))||2为第二距离,||z-E(G(z))||2为第三距离。
步骤2023、判断属性损失值是否收敛;若是,则执行步骤2024,若否,则执行步骤2025。
步骤2024、确定隐向量训练完成。
步骤2025、更新映射参数,返回执行步骤2021。
在本实施例中,以最小化属性损失值为目标,可预先对于属性损失值可以设置表示收敛的条件,例如,属性损失值小于第一属性阈值,相邻属性损失值之间的差异记为变化幅度、连续多个变化幅度均小于第二属性阈值,迭代的次数超过第三属性阈值,等等。
在每次迭代中,可以判断当前的属性损失值是否满足该条件。
如果满足该条件,则属性损失值收敛,此时,确认印象量训练完成,存储该隐向量。
此时,隐向量可表示为:
其中,arg min表示使得属性损失值LOSSattribute取最小值时的变量值(即隐向量)。
如果不满足该条件,则通过以随机梯度下降算法为代表的手动设定学习率的优化方式,或者,以自适应矩估计为代表的自适应设定学习率更新映射参数,进入下一次迭代。
步骤203、在隐向量所处的空间中,寻找法向量。
在隐向量所处的向量空间(即隐空间(latent space))中,针对每种人脸属性,可以使用操作隐向量的方法寻找该向量空间上可编辑人脸属性向量,记为法向量(normalvector),即每个法向量(normal vector)表示编辑每种人脸属性的方向。
在本发明的一个实施例中,步骤203可以包括如下步骤:
步骤2031、随机将隐向量输入人脸重构器中的解码器进行解码,得到多帧样本人脸数据。
在本实施例中,使用已训练好的人脸重构器中的解码器Decoder随机使用隐向量合成多帧样本人脸数据,如50万帧样本人脸数据,此时,记录样本人脸数据image与隐向量latent之间的关系(latent,image)。
步骤2032、针对每种人脸属性,对人脸数据进行人脸属性下的二分类,得到人脸数据的人脸属性及置信度。
在本实施例中,可以针对每种人脸属性预训练二分类器,如SVM(Support VectorMachine,支持向量机)、LR(Logistic Regression,逻辑回归)等。
针对多帧样本人脸数据,可使用该二分类器对样本人脸数据标注伪标签(是否具有该人脸属性)及相应的置信度,此时,记录隐向量latent、伪标签pseudo label与置信度confidence score之间的关系(1atent,pseudo label,confidence score)。
步骤2033、将部分样本人脸数据划分为正样本、将部分样本人脸数据划分为负样本。
按照置信度对样本人脸数据进行排序,从而选择部分样本人脸数据为正样本、选择部分样本人脸数据划分为负样本,正样本的置信度高于负样本的置信度,此时,可记录隐向量、伪标签pseudo label之间的关系(latent,pseudo label)。
一般情况下,为便于生成超平面、计算法向量,正样本的数量与负样本的数量相等。
示例性地,可以选择置信度最高的1万样本人脸数据作为正样本,选择置信度最低的1万样本人脸数据作为负样本。
步骤2034、在隐向量所处的空间中,确定超平面。
在隐向量所处的向量空间中寻找超平面,超平面将该向量空间划分为两个子空间,在超平面的一侧子空间中、包括正样本的隐向量,超平面的另一侧子空间中、包括负样本的隐向量。
步骤2035、将超平面的法向量设置用于编辑每种人脸属性的法向量。
针对每种人脸属性,分别计算超平面的法向量,记为编辑相应人脸属性的法向量,表征人脸属性编辑的方向。
步骤204、针对每种人脸属性,沿法向量调整隐向量,以在人脸重构器中生成目标人脸数据。
在本实施例中,可以根据业务的需求,在原始的人脸属性的基础上,沿法向量调整隐向量,将调整之后的隐向量输入人脸重构器中,人脸重构器使用调整之后的隐向量生成新的人脸数据,记为目标人脸数据,目标人脸数据相对于原始人脸数据,在该法向量表征的人脸属性下进行了调整。
如图5所示,针对同一帧原始人脸数据,可在生成多帧目标人脸数据,其中,第一行目标人脸数据编辑表示年纪的人脸属性,往左则是变老、往右则是变年轻,第二行目标人脸数据编辑表示性别的人脸属性,往左则是变男人、往右则是变女人,第三行目标人脸数据编辑表示心情的人脸属性,往左则是变生气、往右则是变笑容,第四行目标人脸数据编辑表示眼镜的人脸属性,往左则是不戴眼镜、往右则是戴眼镜,第五行目标人脸数据编辑表示装扮的人脸属性,往左则是梳妆、往右则是化妆。
在具体实现中,可确定编辑强度,该编辑强度用于调节沿法向量调整隐向量的强度,一般情况下,该编辑强度可由技术人员根据业务的需求、编辑的效果等因素进行设置,例如,业务的需求为老化20年,技术人员可以在表示老化的人脸属性的维度下,筛选实现老化20年的编辑强度。
针对每种人脸属性,使用编辑强度对人脸属性对应的法向量进行调整,若调整完成,则在隐向量的基础上添加法向量,获得编辑后的隐向量,即,在原始的隐向量的基础上,加上编辑强度与法向量之间的乘积,作为编辑后的隐向量,表示如下:
zedit=z+αn
其中,z为原始的隐向量,zedit为新的隐向量,α为编辑强度,α>0是正方向,α<0是负方向,n为法向量。
将调整后的隐向量输入至人脸重构器中的解码器进行解码,获得目标人脸数据,表示如下:
G(zedit)=G(z+αn)
其中,G为解码器。
步骤205、针对每种人脸属性,在配对的原始人脸数据与目标人脸数据的监督下,将人脸重构器调整为用于编辑人脸属性的人脸编辑器。
针对每种人脸属性,挑选配对的原始人脸数据与目标人脸数据,配对是指该目标人脸数据由该原始人脸数据沿该人脸属性法向量调整隐向量重构生成。
例如,如图6所示,依次对性别(女变男)、性别(男变女)、年纪(变老)、年纪(变年轻)的人脸属性挑选多对原始人脸数据(位于左侧)与目标人脸数据(位于右侧),作为监督学习的样本。
以配对的原始人脸数据与目标人脸数据作为监督的数据,对人脸重构器进行有监督学习,从而调整为用于编辑该人脸属性的人脸编辑器。
如图7所示,每种人脸属性对应训练一个人脸编辑器,假设存在m个人脸属性,则可以对应训练m个人脸编辑器,人脸编辑器包括解码器、编码器,除了解码器、编码器之外,还不依赖属性编辑模块,节省属性编辑的操作。
将图像数据输入待编辑的人脸属性的编码器中编码为向量,将向量输入该编码器对应的解码器中解码得到用户想要的效果图,例如,变老效果图,变男效果图,长胡子效果图,带眼镜效果图,等等。
在本发明的一个实施例中,步骤205可以包括如下步骤:
步骤2051、针对每种人脸属性,将原始人脸数据输入人脸重构器中生成人脸数据,作为参考人脸数据。
针对每种人脸属性,可以分别将原始人脸数据输入人脸重构器中,人脸重构器重新生成人脸数据,记为参考人脸数据,此时,该参考人脸数据为对人脸属性进行编辑之后预测的人脸数据。
在具体实现中,人脸重构器包括编码器Encoder、解码器Decoder,将原始人脸数据输入编码器Encoder中,将原始人脸数据编码为向量,作为人脸向量,将人脸向量输入解码器Decoder中,对人脸向量解码为人脸数据,作为参考人脸数据。
步骤2052、将多个分辨率的参考人脸数据与多个分辨率的目标人脸数据分别输入多个个性判别器中,以提取参考人脸数据的第一个性人脸特征、提取目标人脸数据的第二个性人脸特征,以及,输出真或假的判别结果。
在本实施例中,可以基于轻量化Pix2PixHD模型训练人脸编辑器,要在高分辨率下区分真实的目标人脸数据与合成的参考的人脸数据,一般会要求判别器Discriminator有很大的感受野,这依赖更深的网络或者更大的卷积核能实现,而这两种选择都会增加网络容量从而使网络更容易产生过拟合问题,并且训练所需的存储空间也会增大。
因此,在Pix2PixHD模型中,可以针对多个分辨率分别设置多个判别器Discriminator,多个判别器Discriminator具有相同的网络结构,可处理不同尺度的人脸数据,即,一个判别器Discriminator可处理一个分辨率的人脸数据的鉴别,为便于区分,记为个性判别器Discriminator。
示例性地,可以设置3个个性判别器Discriminator,各自负责256x256、128x128和64x64分辨率的人脸数据。
虽然个性判别器Discriminator的网络结构都相同,但是最粗糙的尺度的个性判别器Discriminator有最大的感受野,这有着更多的图像全局视角信息,能够引领人脸重构器生成全局一致的人脸数据,最精细尺度的个性判别器Discriminator鼓励人脸重构器能够生成更加精细的细节,这也使得训练由粗到细的人脸重构器更加容易,因此,将低分辨率的人脸重构器扩大到高分辨率的人脸重构器增加一个精细尺度的判别器即可,而不是从头重新训练。
对于参考人脸数据、目标人脸数据,均可通过缩放等操作,将单一分辨率的参考人脸数据扩展为多个分辨率的参考人脸数据,将单一分辨率的目标人脸数据扩展为多个分辨率的目标人脸数据,将同一分辨率下的参考人脸数据、目标人脸数据输入该分辨率对应的个性判别器Discriminator中,该个性判别器Discriminator分别提取参考人脸数据的第一个性人脸特征,提取目标人脸数据的第二个性人脸特征,根据该第一个性人脸特征输出参考人脸数据为真True或假Fake的判别结果,以及,根据该第二个性人脸特征输出目标人脸数据为真True或假Fake的判别结果。
步骤2053、基于判别结果计算人脸重构器编辑人脸属性的损失值,作为对抗损失值。
对于个性判别器Discriminator,对真实的目标人脸数据进行判别,希望它的判别结果越接近于真(1)越好,对合成的参考人脸数据进行判别,希望它的判别结果越接近于假(0)越好,对于人脸重构器,希望通过训练使得合成与真实的目标人脸数据相同的参考人脸数据,那么,对于希望它的判别结果越接近于真(1)越好。
示例性地,可以采用二进制交叉熵函数计算对抗损失值,表示如下:
LGAN(G,Dk)=E[logDk(y)]+E[log(1-Dk(G(x)))]
其中,LGAN为对抗损失值,G为人脸重构器,Dk为第k个个性判别器Discriminator,E为计算均值的操作,x为原始人脸数据,y为目标人脸数据,G(x)为参考人脸数据。
在Pix2PixHD模型中,可计算各个个性判别器Discriminator对应的对抗损失值之和,作为最终的对抗损失值。
轻量化Pix2PixHD模型通过使用OpenVINO的推理引擎,在单线程(处理器为i7-7700、频率为3.60GHz)的环境下一帧人脸数据的处理为15ms左右,可以部署到远端、个人电脑、移动端等三端的环境。
步骤2054、基于第一个性人脸特征与第二个性人脸特征计算特征匹配损失值。
人脸重构器的对抗损失值是建立在个性判别器Discriminator的输出的基础上的,即个性判别器Discriminator输出的交叉熵,由于给予人脸重构器的信息少,而人脸数据的空间又大,这可能导致人脸重构器训练不稳定。
为了让训练更稳定,可使用Feature Matching(特征匹配)的方法计算损失值,记为特征匹配损失值(Feature Matching LOSS)。所谓的Feature Matching,即是要求人脸重构器产生的参考人脸数据在经过个性判别器Discriminator时,提取的第一个性人脸特征尽可能地接近(匹配)目标人脸数据经过个性判别器Discriminator时提取的第二个性人脸特征。
示例性地,对抗损失值如下表示:
其中,LFM为特征匹配损失值,G为人脸重构器,Dk为第k个个性判别器Discriminator,E为计算均值的操作,x为原始人脸数据,y为目标人脸数据,G(x)为参考人脸数据,为个性判别器Dk提取的第i层的特征(第一个性人脸特征或第二个性人脸特征),Ni为第i层的特征的数量。
在Pix2PixHD模型中,可计算各个个性判别器Discriminator对应的特征匹配损失值之和,作为最终的特征匹配损失值。
步骤2055、基于目标人脸数据与参考人脸数据计算感知损失值。
在具体实现中,可设置个性特征提取网络,如中的VGG网络,提取更高维度的特征。
一方面,将目标人脸数据输入至个性特征提取网络中提取特征,获得第一个性图像特征,另一方面,将参考人脸数据输入至个性特征提取网络中提取特征,获得第二个性图像特征,从而计算第一个性图像特征与第二个性图像特征之间的距离,作为感知损失值(Perceptual Losses),表示如下:
LVGG(G,F)=‖F(y)-F(G(x))‖1
其中,LVGG为感知损失值,G为人脸重构器,F为个性特征提取网络,x为原始人脸数据,y为目标人脸数据,G(x)为参考人脸数据。
步骤2056、将对抗损失值、特征匹配损失值与感知损失值线性融合为总损失值。
在本实施例中,可将抗损失值、特征匹配损失值与感知损失值线性线性融合得到一个损失值,记为总损失值。
即,对抗损失值、特征匹配损失值与感知损失值配置相应的权重之后求和,一般情况下,对抗损失值的权重均大于特征匹配损失值的权重、感知损失值的权重。
示例性地,总损失值表示如下:
其中,LOSStotal为总损失值,LGAN为对抗损失值,LFM为特征匹配损失值,LVGG为感知损失值,λfm为权重、属于超参数,λvgg为权重、属于超参数。
步骤2057、在最大化对抗损失值的约束下,判断总损失值是否收敛;若是,则执行步骤2058,若否,则执行步骤2059。
步骤2058、确定已将人脸重构器调整为用于编辑人脸属性的人脸编辑器。
步骤2059、更新解码器、编码器,返回执行步骤2051。
在本实施例中,以最大化对抗损失值、最小化总损失值作为训练的目标,对人脸重构器进行迭代训练,在每次迭代训练的过程中,可以判断抗损失值、总损失值是否满足上述目标。
如果满足,则可以确认已将人脸重构器调整为用于编辑人脸属性的人脸编辑器,记录人脸属性与人脸编辑器之间的映射关系,以及,存储该人脸编辑器中编码器、解码器的结构及编码器、解码器的参数。
如果不满足,则对人脸重构器中的编码器、解码器进行反向传播,通过以随机梯度下降算法为代表的手动设定学习率的优化方式,或者,以自适应矩估计为代表的自适应设定学习率更新解码器、编码器的参数,进入下一次迭代。
在本实施例中,以原始人脸数据作为样本,训练用于复原人脸的人脸重构器,对原始人脸数据训练隐向量,隐向量表征人脸属性,在隐向量所处的空间中,寻找法向量,法向量表示编辑每种人脸属性的方向,针对每种人脸属性,沿法向量调整隐向量,以在人脸重构器中生成目标人脸数据,针对每种人脸属性,在配对的原始人脸数据与目标人脸数据的监督下,将人脸重构器调整为用于编辑人脸属性的人脸编辑器,通过独立针对单一的人脸属性训练人脸编辑器,人脸编辑器在应用简单结构进行有监督学习的情况下,可保持较优的性能,编辑人脸属性的效果可控,可以大大简化人脸编辑器的结构,降低在训练时使用的样本的数量,并且,运行结构较为简单的人脸编辑器消耗的资源较少、耗时较少,可部署在性能更高的个人电脑或云端,也可部署在性能较低的移动端,在移动端编辑人脸属性,无需上传至个人电脑或云端编辑人脸属性,耗时少,响应速度快。
此外,本实施例训练的流程简单,可以快速迭代新的人脸属性作为新特效,为新的特效快速上线提供了帮助,并且避免了很多冗长的预处理、后处理,对直播、短视频等业务场景的新特效提供了一个低成本、高效率的工业化的流程。
实施例二
图8为本发明实施例二提供的一种人脸编辑器的训练方法的流程图,本实施例以前述实施例为基础,进一步增加解离法向量的操作,该方法具体包括如下步骤:
步骤801、以原始人脸数据作为样本,训练用于复原人脸的人脸重构器。
步骤802、对原始人脸数据训练隐向量。
其中,隐向量表征人脸属性。
步骤803、在隐向量所处的空间中,寻找法向量。
其中,法向量表示编辑每种人脸属性的方向。
步骤804、针对当前法向量,设置其他法向量为参考向量。
步骤805、从当前法向量中解离参考向量,作为解离后的法向量。
在实际应用中,虽然人脸重构器中对人脸数据生成人脸向量能够在一定程度上解离人脸属性在法向量的耦合状态,但是,解离耦合状态是依赖作为样本的原始人脸数据的,样本的数据量大的情况下,人脸属性较难分离,对于视频数据尤为明显,也就是说,在原始人脸数据中,两个或两个以上的人脸属性存在耦合的情况,该人脸属性对应的法向量也是存在耦合状态的。
例如,如图9所示,对某一原始人脸数据(方框选中的人脸数据)编辑表示年纪的人脸属性,往左为变老,往右为变年轻,在第一行编辑后的人脸数据中,由于训练解码器的样本中老年人戴眼镜的比例比年轻人戴眼镜的比例高,因此,表示年纪的人脸属性与表示带眼镜的人脸属性存在耦合,在使用编辑表示年纪的人脸属性的法向量调整隐向量时,在变老同时会变成戴眼镜。
因此,在本实施例中,可以寻找存在耦合的人脸属性,对其法向量解离其他不相关的人脸属性,使得法向量编辑单一的人脸属性,保证人脸编辑器的性能,使得人脸属性的编辑效果可控,精确地编辑用户需求的人脸属性。
在具体实现中,针对当前存在耦合的人脸属性的法向量,可以查询其他人脸属性,作为参考向量,其中,当前法向量编辑的人脸属性中包含参考向量编辑的人脸属性,即当前法向量除了可以编辑本身的人脸属性之外,还可以编辑参考向量对应的人脸属性。
一般情况下,参考向量为最小单位的法向量,参考向量用于编辑单一的人脸属性,并不存在编辑其他耦合的人脸属性的情况。
从当前向量中解离参考向量,获得解离后的法向量。
在具体实现中,计算当前法向量的转置矩阵,计算当前法向量的转置矩阵与参考向量之间的乘积,作为第一候选向量,计算第一候选向量与参考向量之间的乘积,作为第二候选向量,将当前法向量向量减去第二候选向量,作为解离后的法向量。
如图10所示,解离法向量的过程表示如下:
步骤806、针对每种人脸属性,沿法向量调整隐向量,以在人脸重构器中生成目标人脸数据。
如图9所示,从编辑表示年纪的人脸属性的法向量中年解离了编辑表示带眼镜的人脸属性的法向量之后,对某一原始人脸数据(方框选中的人脸数据)编辑表示年纪的人脸属性,往左为变老,往右为变年轻,在第二行编辑后的目标人脸数据中,在变老同时并会变成戴眼镜。
步骤807、针对每种人脸属性,在配对的原始人脸数据与目标人脸数据的监督下,将人脸重构器调整为用于编辑人脸属性的人脸编辑器。
实施例三
图11为本发明实施例一提供的一种人脸编辑方法的流程图,本实施例可适用于针对每种情况,该方法可以由人脸编辑装置来执行,该人脸编辑装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、工作站、个人电脑、移动终端(如手机、平板电脑、智能穿戴设备等),等等,具体包括如下步骤:
步骤1101、接收原始图像数据。
若本实施例应用于移动终端、可穿戴设备等用户端的计算机设备,则可以在计算机设备中支行可进行图像处理的应用,如直播应用、图像编辑应用、相机应用、即时通讯工具、图库应用,等等。
诸如图像编辑应用、即时通讯工具、图库应用等应用,其UI(User Interface,用户界面)可提供导入的控件,用户可通过触控操作或鼠标操作等方式操作该导入的控件,选择本地存储的视频数据或图像数据(以缩略图或路径表示),也可以选择网络存储的视频数据或图像数据(以URL(Uniform Resource Locators,统一资源定位器)表示)。
诸如直播应用、图像编辑应用、相机应用、即时通讯工具等应用,其UI可提供拍照、录像的控件,用户可通过触控操作或鼠标操作等方式操作该拍照、录像的控件,通知应用调用摄像头采集视频数据或图像数据。
若本实施例应用于服务器、工作站等非用户端的计算机设备,可以接收用户端的设备发送的视频数据或图像数据。
其中,对于视频数据,可以从中抽取具有一帧或多帧图像数据。
针对这些图像数据,可进行人脸检测(Landmark),从而确定是否存在人物形象及其人脸数据所在的区域,如果存在人物形象,则可以在原始图像数据中标记、裁剪(crop)该区域,继续执行编辑人脸属性的操作,如果不存在人物形象,则可以生成提示信息,提示用户并不存在人脸数据,停止执行编辑人脸属性的操作。
为便于区分,这些图像数据可以记为原始图像数据,即原始图像数据中具有人物形象。
其中,人脸检测也称为人脸关键点检测、定位或者人脸对齐,是指给定人脸数据,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等等。
人脸检测通常使用如下方法:
1、利用人工提取特征,如haar特征,使用特征训练分类器,使用分类器进行人脸检测。
2、从通用的目标检测算法中继承人脸检测,例如,利用Faster R-CNN来检测人脸。
3、使用级联结构的卷积神经网络,例如,Cascade CNN(级联卷积神经网络),MTCNN(Multi-task Cascaded Convolutional Networks,多任务卷积神经网络)。
在具体实现中,这些实现人脸检测的方法可以集成在应用的模块中,应用可直接调用该模块检测图像数据中的人脸关键点,这些实现人脸检测的方法也可以集成在SDK(Software Development Kit,软件开发工具包),该SDK作为应用的组装数据,应用可请求SDK对图像数据进行人脸检测,SDK检测到图像数据中的人脸关键点,并将人脸关键点返回应用。
需要说明的是,人脸关键点的数量,可以根据实际情况设置,对于静态的图像处理,实时性要求较低,可以检测较为稠密的人脸关键点,如1000个,除了能定位人脸重要特征点之外,还能准确的描述出五官的轮廓;对于直播等,实时性要求较高,可以检测较为稀疏的人脸关键点,如68、81、106个,定位人脸上比较明显且重要的特征点(如眼睛关键点、眉毛关键点、鼻子关键点、嘴巴关键点、轮廓关键点等),以降低处理量、减少处理时间,等等,本发明实施例对此不加以限制。
需要说明的是,对于视频数据(如直播视频数据),各帧图像数据之间可能存在抖动,则在人脸检测时,可进行帧间平滑,对齐前后帧图像数据的人脸关键点,在裁剪(crop)人脸数据时,可进行帧间平滑,对齐前后图像数据帧的人脸关键点。
步骤1102、从多种人脸属性中选定对人物形象编辑的人脸属性,作为目标属性。
对于多种人脸属性,可以以滤镜、插件等形式封装为界面元素,用户端的设备中的应用在UI加载这些界面元素、供用户浏览,用户可通过触控操作或鼠标操作等方式选定其中一个界面元素,则该界面元素对应的人脸属性,为用户当前欲编辑人物形象的人脸属性,可记为目标属性。
步骤1103、加载用于编辑目标属性的人脸编辑器。
在本实施例中,可以预先针对多种人脸属性训练多个人脸编辑器,每种人脸编辑器均可编辑一种人脸属性,即,每种人脸属性均配置有编辑人脸属性的人脸编辑器。
需要说明的是,人脸编辑器的训练方法可参照上述任一人脸编辑器的训练方法的实施例,本实施例在此并不详述。
若用户选定了目标属性,则可以读取在训练人脸编辑器时记录的、人脸属性与人脸编辑器之间映射关系,在该映射关系中查询该目标属性映射的人脸编辑器。
若本实施例应用于移动终端、可穿戴设备等用户端的计算机设备,考虑到人脸属性的数量较多、使得人脸编辑器数量较多的情况,为降低对计算机设备的存储空间的占用,服务器可以通过一定的方式推送部分人脸编辑器至计算机设备,或者,服务器并不推送人脸编辑器至计算机设备,而是由用户主动请求从服务器下载人脸编辑器。
例如,服务器可以按照热度对人脸编辑器进行排序,将热度最高的多个人脸编辑器推送至计算机设备。
又例如,服务器可以计算负荷用户偏好的人脸编辑器,将该人脸编辑器推送至计算机设备。
该人脸编辑器配置有编号等标识信息,在计算机设备本地查询是否存储该标识信息对应的人脸编辑器。
如果在计算机本地已存储该标识信息对应的人脸编辑器,则将该人脸编辑器及其参数加载至内存运行。
如果在计算机本地未存储该标识信息对应的人脸编辑器,则可以从服务器请求该标识信息对应的人脸编辑器,服务器依据该请求、将人脸编辑器发送至计算机设备,计算机设备记录该标识信息对应的人脸编辑器已存储在本地,以及,将该人脸编辑器及其参数加载至内存运行。
当然,用户也可以指示计算机设备删除已存储在本地的人脸编辑器,此时,记录该标识信息对应的人脸编辑器未存储在本地。
若本实施例应用于服务器、工作站等非用户端的计算机设备,则可以查询该人脸编辑器配置的编号等标识信息,在计算机设备本地查询该标识信息对应的人脸编辑器,将该人脸编辑器及其参数加载至内存运行。
步骤1104、将原始图像数据输入至人脸编辑器中进行编辑,以编辑人物形象的目标属性、获得目标图像数据。
将原始图像数据中包含人物形象的区域输入至人脸编辑器中,人脸编辑器对该人物形象的目标属性进行编辑,编辑完成时,输出目标图像数据。
在具体实现中,人脸编辑器包括编码器Encoder、解码器Decoder,将原始图像数据中包含人物形象的区域输入编码器中,将原始图像数据编码为向量,作为人脸向量,将人脸向量输入解码器中,对人脸向量解码为人脸数据,作为目标图像数据。
进一步而言,该编码器Encoder、解码器Decoder在实现复原人脸数据的基础上,在配对的原始人脸数据与目标人脸数据的监督下训练,其中,在原始人脸数据表征人脸属性的隐向量所处的空间中,沿编辑目标属性对应的法向量调整该隐向量,调整之后的隐向量用于解码为目标人脸数据,因此,原始图像数据与目标图像数据之间满足如下关系:
在原始图像数据表征人脸属性的隐向量所处的空间中,沿编辑目标属性对应的法向量调整该隐向量,调整之后的隐向量用于解码为目标图像数据。
对于目标图像数据,可以对其调整大小(resize),获得新的目标图像数据,使其大小与人物形状的区域保持一致,使得目标图像数据可原始图像数据的背景数据(除人物形象之外的区域)。
此外,若原始图像数据为视频数据(如直播视频数据)中的图像数据,则在调整大小时,可进行人脸检测(Landmark),从而进行帧间平滑,对齐前后图像数据的人脸关键点。
由于重构之后的目标图像数据的内容与原始图像数据的背景数据(除人物形象之外的区域)的内容可能存在差异,因此,可将人物形状与目标图像数据进行人脸融合,生成新的人物形状,使得目标图像数据的内容与背景数据的内容相同或相似,再将新的人物形状贴入背景数据。
在本实施例中,接收原始图像数据,原始图像数据中具有人物形象,从多种人脸属性中选定对人物形象编辑的人脸属性,作为目标属性,每种人脸属性均配置有编辑人脸属性的人脸编辑器,加载用于编辑目标属性的人脸编辑器,将原始图像数据输入至人脸编辑器中进行编辑,以编辑人物形象的目标属性、获得目标图像数据,通过独立针对单一的人脸属性设置人脸编辑器,人脸编辑器在应用简单结构的情况下,可保持较优的性能,编辑人脸属性的效果可控,可以大大简化人脸编辑器的结构,降低在训练时使用的样本的数量,并且,运行结构较为简单的人脸编辑器消耗的资源较少、耗时较少,可部署在性能更高的个人电脑或云端,也可部署在性能较低的移动端,在移动端编辑人脸属性,无需上传至个人电脑或云端编辑人脸属性,耗时少,响应速度快。
实施例四
图12为本发明实施例一提供的一种直播方法的流程图,本实施例可适用于针对每种情况,该方法可以由直播装置来执行,该直播装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,个人电脑、移动终端(如手机、平板电脑、智能穿戴设备等),等等,具体包括如下步骤:
步骤1201、采集视频数据。
在计算机设备中安装具备直播、图像处理功能的应用,如独立的直播应用、即时通讯工具、短视频应用,等等。
对于这些应用,可以调用计算机设备的摄像头、麦克风,采集视频数据、音频数据,从而合成直播视频数据。
在视频数据中具有多帧图像数据,部分图像数据中具有主播用户,针对这些图像数据,可进行人脸检测,从而确定是否存在主播用户及其人脸数据所在的区域,如果存在人物形象,则可以在图像数据中标记、裁剪(crop)该区域,继续执行编辑人脸属性的操作。
为便于区分,这些图像数据记为原始图像数据,即视频数据中的多帧原始图像数据中具有主播用户。
步骤1202、从多种人脸属性中选定对主播用户编辑的人脸属性,作为目标属性。
对于多种人脸属性,可以以滤镜、插件等形式封装为界面元素,在应用的UI加载这些界面元素、供用户浏览,用户可通过触控操作或鼠标操作等方式选定其中一个界面元素,则该界面元素对应的人脸属性,表示主播用户当前欲编辑其人脸属性,可记为目标属性。
目标属性可以根据主播用户的业务需求、人脸编辑器的效果等因素预先进行设定,示例性地,目标属性可以包括,卡通化(二次元),女变男,变老,变年轻,变欧美风,等等。
步骤1203、加载用于编辑目标属性的人脸编辑器。
在本实施例中,可以预先针对多种人脸属性训练多个人脸编辑器,每种人脸编辑器均可编辑一种人脸属性,即,每种人脸属性均配置有编辑人脸属性的人脸编辑器。
需要说明的是,人脸编辑器的训练方法可参照上述任一人脸编辑器的训练方法的实施例,本实施例在此并不详述。
若用户选定了目标属性,则可以读取在训练人脸编辑器时记录的、人脸属性与人脸编辑器之间映射关系,在该映射关系中查询该目标属性映射的人脸编辑器。
若考虑到人脸属性的数量较多、使得人脸编辑器数量较多的情况,为降低对计算机设备的存储空间的占用,服务器可以通过一定的方式推送部分人脸编辑器至计算机设备,或者,服务器并不推送人脸编辑器至计算机设备,而是由用户主动请求从服务器下载人脸编辑器。
例如,服务器可以按照热度对人脸编辑器进行排序,将热度最高的多个人脸编辑器推送至计算机设备。
又例如,服务器可以计算负荷用户偏好的人脸编辑器,将该人脸编辑器推送至计算机设备。
该人脸编辑器配置有编号等标识信息,在计算机设备本地查询是否存储该标识信息对应的人脸编辑器。
如果在计算机本地已存储该标识信息对应的人脸编辑器,则将该人脸编辑器及其参数加载至内存运行。
如果在计算机本地未存储该标识信息对应的人脸编辑器,则可以从服务器请求该标识信息对应的人脸编辑器,服务器依据该请求、将人脸编辑器发送至计算机设备,计算机设备记录该标识信息对应的人脸编辑器已存储在本地,以及,将该人脸编辑器及其参数加载至内存运行。
当然,用户也可以指示计算机设备删除已存储在本地的人脸编辑器,此时,记录该标识信息对应的人脸编辑器未存储在本地。
步骤1204、将原始图像数据输入至人脸编辑器中进行编辑,以编辑主播用户的目标属性、获得目标图像数据。
将原始图像数据中包含主播用户的区域输入至人脸编辑器中,人脸编辑器对该主播用户的目标属性进行编辑,编辑完成时,输出目标图像数据。
在具体实现中,人脸编辑器包括编码器Encoder、解码器Decoder,将原始图像数据中包含人物形象的区域输入编码器中,将原始图像数据编码为向量,作为人脸向量,将人脸向量输入解码器中,对人脸向量解码为人脸数据,作为目标图像数据。
进一步而言,该编码器Encoder、解码器Decoder在实现复原人脸数据的基础上,在配对的原始人脸数据与目标人脸数据的监督下训练,其中,在原始人脸数据表征人脸属性的隐向量所处的空间中,沿编辑目标属性对应的法向量调整该隐向量,调整之后的隐向量用于解码为目标人脸数据,因此,原始图像数据与目标图像数据之间满足如下关系:
在原始图像数据表征人脸属性的隐向量所处的空间中,沿编辑目标属性对应的法向量调整该隐向量,调整之后的隐向量用于解码为目标图像数据。
对于目标图像数据,可以对其调整大小(resize),获得新的目标图像数据,使其大小与主播用户的区域保持一致,使得目标图像数据可原始图像数据的背景数据(除人物形象之外的区域)。
此外,若原始图像数据为视频数据(如直播视频数据)中的图像数据,则在调整大小时,可进行人脸检测(Landmark),从而进行帧间平滑,对齐前后图像数据的人脸关键点。
由于重构之后的目标图像数据的内容与原始图像数据的背景数据(除人物形象之外的区域)的内容可能存在差异,因此,可将主播用户与目标图像数据进行人脸融合,生成新的主播用户,使得目标图像数据的内容与背景数据的内容相同或相似,再将新的主播用户贴入背景数据。
步骤1205、预览包含目标图像数据的视频数据,以及,将包含目标图像数据的视频数据推流至主播用户开设的直播间中进行发布。
一方面,可以调用应用播放包含目标图像数据的视频数据,供主播用户浏览编辑目标属性的效果,由于在计算机设备中编辑视频数据中主播用户的目标属性,无需传输视频数据,因此,预览的耗时少、响应速度快。
另一方面,可以将包含目标图像数据的视频数据上传至直播平台,直播平台在该主播用户开设的直播间中发布具有目标图像数据的视频数据,观众用户所登录的客户端可进入该直播间,并播放该视频数据。
在本实施例中,采集视频数据,视频数据中的多帧原始图像数据中具有主播用户,从多种人脸属性中选定对主播用户编辑的人脸属性,作为目标属性,每种人脸属性均配置有编辑人脸属性的人脸编辑器,加载用于编辑目标属性的人脸编辑器,将原始图像数据输入至人脸编辑器中进行编辑,以编辑主播用户的目标属性、获得目标图像数据,预览包含目标图像数据的视频数据,以及,将包含目标图像数据的视频数据推流至主播用户开设的直播间中进行发布,通过独立针对单一的人脸属性设置人脸编辑器,人脸编辑器在应用简单结构的情况下,可保持较优的性能,编辑人脸属性的效果可控,可以大大简化人脸编辑器的结构,降低在训练时使用的样本的数量,并且,运行结构较为简单的人脸编辑器消耗的资源较少、耗时较少,可部署在性能较低的移动端,在移动端编辑人脸属性,无需上传至个人电脑或云端编辑人脸属性,耗时少,响应速度快。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例五
图13为本发明实施例五提供的一种人脸编辑器的训练装置的结构框图,具体可以包括如下模块:
人脸重构器训练模块1301,用于以原始人脸数据作为样本,训练用于复原人脸的人脸重构器;
隐向量训练模块1302,用于对所述原始人脸数据训练隐向量,所述隐向量表征人脸属性;
法向量寻找模块1303,用于在所述隐向量所处的空间中,寻找法向量,所述法向量表示编辑每种所述人脸属性的方向;
目标人脸数据生成模块1304,用于针对每种所述人脸属性,沿所述法向量调整所述隐向量,以在所述人脸重构器中生成目标人脸数据;
人脸重构器调整模块1305,用于针对每种所述人脸属性,在配对的所述原始人脸数据与所述目标人脸数据的监督下,将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器。
在本发明的一个实施例中,所述人脸重构器包括编码器、解码器;所述人脸重构器训练模块1301还用于:
在所述编码器中,将原始人脸数据编码为向量,作为人脸向量;
在所述解码器中,对所述人脸向量解码为人脸数据,作为重构人脸数据;
在通用判别器中,对所述原始人脸数据与所述重构人脸数据计算损失值,作为重构损失值;
判断所述重构损失值是否收敛;
若是,则确定所述人脸重构器训练完成;
若否,则更新所述解码器、所述编码器,返回所述将原始人脸数据输入至所述编码器进行编码,获得人脸向量。
在本发明实施例的一个示例中,所述编码器包括n个卷积层与1个全连接层,排序在先的所述卷积层输出向量的维度大于排序在后的所述卷积层输出向量的维度,所述解码器为风格对抗生成网络中的综合网络,所述综合网络包括n个块,排序在先的所述块输出向量的维度小于排序在后的所述块输出向量的维度,所述通用判别器包括n个卷积层,所述编码器的n个所述卷积层与所述判别器的n个所述卷积层结构相同;
所述人脸重构器训练模块1301还用于:
在所述编码器中,按照排序依次调用n个所述卷积层对原始人脸数据进行卷积处理,获得候选向量;
调用所述全连接层对所述候选向量进行全连接操作,获得2n层的人脸向量;
所述人脸重构器训练模块1301还用于:
在所述解码器中,按照排序依次调用n个所述块对2n层所述人脸向量进行处理,获得重构人脸数据,其中,每2层所述人脸向量为每个所述块的输入;
所述人脸重构器训练模块1301还用于:
在通用判别器中,从所述原始人脸数据提取第一通用人脸特征,从所述重构人脸数据提取第二通用人脸特征,基于所述第一通用人脸特征与所述第二通用人脸特征计算损失值,作为重构损失值。
在本发明的一个实施例中,所述隐向量训练模块1302还用于:
执行循环操作,所述循环操作指所述人脸重构器中的编码器将所述原始人脸数据编码为人脸向量,按照映射参数将所述人脸向量映射为隐向量,所述人脸重构器中的解码器将所述隐向量解码为新的原始人脸数据;
基于所述循环操作生成损失值,作为属性损失值;
判断所述属性损失值是否收敛;
若是,则确定所述隐向量训练完成;
若否,则更新所述映射参数,返回所述执行循环操作。
在本发明实施例的一个示例中,所述隐向量训练模块1302还用于:
计算所述原始人脸数据与所述新的原始人脸数据之间的第一距离;
计算所述原始人脸数据与所述新的原始人脸数据之间表征感知损失的第二距离;
计算所述原始人脸数据对应的隐向量与所述新的原始人脸数据对应的隐向量之间的第三距离;
将所述第一距离、所述第二距离与所述第三距离线性融合为属性损失值。
在本发明的一个实施例中,所述法向量寻找模块1303还用于:
随机将隐向量输入所述人脸重构器中的解码器进行解码,得到多帧样本人脸数据;
针对每种人脸属性,对所述人脸数据进行所述人脸属性下的二分类,得到所述人脸数据的人脸属性及置信度;
将部分所述样本人脸数据划分为正样本、将部分所述样本人脸数据划分为负样本,所述正样本的置信度高于所述负样本的置信度;
在所述隐向量所处的空间中,确定超平面,所述超平面的一侧包括所述正样本的隐向量,所述超平面的另一侧包括所述负样本的隐向量;
将所述超平面的法向量设置用于编辑每种所述人脸属性的法向量。
在本发明的一个实施例中,还包括:
参考向量设置模块,用于针对当前所述法向量,设置其他所述法向量为参考向量,当前所述法向量编辑的人脸属性中包含所述参考向量编辑的人脸属性;
法向量解离模块,用于从当前所述法向量中解离所述参考向量,作为解离后的法向量。
在本发明的一个实施例中,所述法向量解离模块还用于:
计算当前所述法向量的转置矩阵;
计算当前所述法向量的转置矩阵与所述参考向量之间的乘积,作为第一候选向量;
计算所述第一候选向量与所述参考向量之间的乘积,作为第二候选向量;
将当前所述法向量向量减去所述第二候选向量,作为解离后的法向量。
在本发明的一个实施例中,所述目标人脸数据生成模块1304还用于:
确定编辑强度;
针对每种所述人脸属性,使用所述编辑强度对所述人脸属性对应的所述法向量进行调整;
若调整完成,则在所述隐向量的基础上添加所述法向量,获得编辑后的所述隐向量;
将调整后的所述隐向量输入至所述人脸重构器中的解码器进行解码,获得目标人脸数据。
在本发明的一个实施例中,所述人脸重构器调整模块1305还用于:
针对每种所述人脸属性,将所述原始人脸数据输入所述人脸重构器中生成人脸数据,作为参考人脸数据;
将多个分辨率的所述参考人脸数据与多个分辨率的所述目标人脸数据分别输入多个个性判别器中,以提取所述参考人脸数据的第一个性人脸特征、提取所述目标人脸数据的第二个性人脸特征,以及,输出真或假的判别结果;
基于所述判别结果计算所述人脸重构器编辑所述人脸属性的损失值,作为对抗损失值;
基于所述第一个性人脸特征与所述第二个性人脸特征计算特征匹配损失值;
基于所述目标人脸数据与所述参考人脸数据计算感知损失值;
将所述对抗损失值、所述特征匹配损失值与所述感知损失值线性融合为总损失值;
在最大化所述对抗损失值的约束下,判断所述总损失值是否收敛;
若是,则确定已将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器;
若否,则更新所述解码器、所述编码器,返回执行所述针对每种所述人脸属性,将所述原始人脸数据输入所述人脸重构器中生成人脸数据,作为参考人脸数据。
本发明实施例所提供的人脸编辑器的训练装置可执行本发明任意实施例所提供的人脸编辑器的训练方法,具备执行方法相应的功能模块和有益效果。
实施例六
图14为本发明实施例六提供的一种人脸编辑装置的结构框图,具体可以包括如下模块:
原始图像数据接收模块1401,用于接收原始图像数据,所述原始图像数据中具有人物形象;
目标属性选定模块1402,用于从多种人脸属性中选定对所述人物形象编辑的人脸属性,作为目标属性,每种所述人脸属性均配置有编辑所述人脸属性的人脸编辑器;
人脸编辑器加载模块1403,用于加载用于编辑所述目标属性的人脸编辑器;
人脸属性编辑模块1404,用于将所述原始图像数据输入至所述人脸编辑器中进行编辑,以编辑所述人物形象的所述目标属性、获得目标图像数据。
在本发明的一个实施例中,所述人脸编辑器加载模块1403包括:
人脸重构器训练模块,用于以原始人脸数据作为样本,训练用于复原人脸的人脸重构器;
隐向量训练模块,用于对所述原始人脸数据训练用于表征人脸属性的隐向量;
法向量寻找模块,用于在所述隐向量所处的空间中,寻找用于编辑每种所述人脸属性的法向量;
目标人脸数据生成模块,用于针对每种所述人脸属性,沿所述法向量调整所述隐向量,以在所述人脸重构器中生成目标人脸数据;
人脸重构器调整模块,用于针对每种所述人脸属性,在配对的所述原始人脸数据与所述目标人脸数据的监督下,将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器。
在本发明的一个实施例中,所述人脸编辑器加载模块1403还包括:
参考向量设置模块,用于针对当前所述法向量,设置其他所述法向量为参考向量,当前所述法向量编辑的人脸属性中包含所述参考向量编辑的人脸属性;
法向量解离模块,用于从当前所述法向量中解离所述参考向量,作为解离后的法向量。
本发明实施例所提供的人脸编辑装置可执行本发明任意实施例所提供的人脸编辑方法,具备执行方法相应的功能模块和有益效果。
实施例七
图15为本发明实施例七提供的一种直播装置的结构框图,具体可以包括如下模块:
视频数据采集模块1501,用于采集视频数据,所述视频数据中的多帧原始图像数据中具有主播用户;
目标属性选定模块1502,用于从多种人脸属性中选定对所述主播用户编辑的人脸属性,作为目标属性,每种所述人脸属性均配置有编辑所述人脸属性的人脸编辑器;
人脸编辑器加载模块1503,用于加载用于编辑所述目标属性的人脸编辑器;
目标人脸数据生成模块1504,用于将所述原始图像数据输入至所述人脸编辑器中进行编辑,以编辑所述主播用户的所述目标属性、获得目标图像数据;
直播处理模块1505,用于预览包含所述目标图像数据的所述视频数据,以及,将包含所述目标图像数据的所述视频数据推流至所述主播用户开设的直播间中进行发布。
在本发明的一个实施例中,所述人脸编辑器加载模块1503包括:
人脸重构器训练模块,用于以原始人脸数据作为样本,训练用于复原人脸的人脸重构器;
隐向量训练模块,用于对所述原始人脸数据训练用于表征人脸属性的隐向量;
法向量寻找模块,用于在所述隐向量所处的空间中,寻找用于编辑每种所述人脸属性的法向量;
目标人脸数据生成模块,用于针对每种所述人脸属性,沿所述法向量调整所述隐向量,以在所述人脸重构器中生成目标人脸数据;
人脸重构器调整模块,用于针对每种所述人脸属性,在配对的所述原始人脸数据与所述目标人脸数据的监督下,将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器。
在本发明的一个实施例中,所述人脸编辑器加载模块1503还包括:
参考向量设置模块,用于针对当前所述法向量,设置其他所述法向量为参考向量,当前所述法向量编辑的人脸属性中包含所述参考向量编辑的人脸属性;
法向量解离模块,用于从当前所述法向量中解离所述参考向量,作为解离后的法向量。
本发明实施例所提供的直播装置可执行本发明任意实施例所提供的直播方法,具备执行方法相应的功能模块和有益效果。
实施例八
图16为本发明实施例八提供的一种计算机设备的结构示意图。图16示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图16显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图16所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图16未显示,通常称为“硬盘驱动器”)。尽管图16中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的人脸编辑器的训练方法或者人脸编辑方法或者直播方法。
实施例九
本发明实施例九还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述人脸编辑器的训练方法或者人脸编辑方法或者直播方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (14)
1.一种人脸编辑器的训练方法,其特征在于,包括:
以原始人脸数据作为样本,训练用于复原人脸的人脸重构器;
对所述原始人脸数据训练隐向量,所述隐向量表征人脸属性;
在所述隐向量所处的空间中,寻找法向量,所述法向量表示编辑每种所述人脸属性的方向;
针对每种所述人脸属性,沿所述法向量调整所述隐向量,以在所述人脸重构器中生成目标人脸数据;
针对每种所述人脸属性,在配对的所述原始人脸数据与所述目标人脸数据的监督下,将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器。
2.根据权利要求1所述的方法,其特征在于,所述人脸重构器包括编码器、解码器;
所述以原始人脸数据作为样本,训练用于复原人脸的人脸重构器,包括:
在所述编码器中,将原始人脸数据编码为向量,作为人脸向量;
在所述解码器中,对所述人脸向量解码为人脸数据,作为重构人脸数据;
在通用判别器中,对所述原始人脸数据与所述重构人脸数据计算损失值,作为重构损失值;
判断所述重构损失值是否收敛;
若是,则确定所述人脸重构器训练完成;
若否,则更新所述解码器、所述编码器,返回所述将原始人脸数据输入至所述编码器进行编码,获得人脸向量。
3.根据权利要求2所述的方法,其特征在于,所述编码器包括n个卷积层与1个全连接层,排序在先的所述卷积层输出向量的维度大于排序在后的所述卷积层输出向量的维度,所述解码器为风格对抗生成网络中的综合网络,所述综合网络包括n个块,排序在先的所述块输出向量的维度小于排序在后的所述块输出向量的维度,所述通用判别器包括n个卷积层,所述编码器的n个所述卷积层与所述判别器的n个所述卷积层结构相同;
所述在所述编码器中,将原始人脸数据编码为向量,作为人脸向量,包括:
在所述编码器中,按照排序依次调用n个所述卷积层对原始人脸数据进行卷积处理,获得候选向量;
调用所述全连接层对所述候选向量进行全连接操作,获得2n层的人脸向量;
所述在所述解码器中,对所述人脸向量解码为人脸数据,作为重构人脸数据,包括:
在所述解码器中,按照排序依次调用n个所述块对2n层所述人脸向量进行处理,获得重构人脸数据,其中,每2层所述人脸向量为每个所述块的输入;
所述在通用判别器中,对所述原始人脸数据与所述重构人脸数据计算损失值,作为重构损失值,包括:
在通用判别器中,从所述原始人脸数据提取第一通用人脸特征,从所述重构人脸数据提取第二通用人脸特征,基于所述第一通用人脸特征与所述第二通用人脸特征计算损失值,作为重构损失值。
4.根据权利要求1所述的方法,其特征在于,所述对所述原始人脸数据训练隐向量,包括:
执行循环操作,所述循环操作指所述人脸重构器中的编码器将所述原始人脸数据编码为人脸向量,按照映射参数将所述人脸向量映射为隐向量,所述人脸重构器中的解码器将所述隐向量解码为新的原始人脸数据;
基于所述循环操作生成损失值,作为属性损失值;
判断所述属性损失值是否收敛;
若是,则确定所述隐向量训练完成;
若否,则更新所述映射参数,返回所述执行循环操作。
5.根据权利要求4所述的方法,其特征在于,所述基于所述循环操作生成表征损失值,包括:
计算所述原始人脸数据与所述新的原始人脸数据之间的第一距离;计算所述原始人脸数据与所述新的原始人脸数据之间表征感知损失的第二距离;
计算所述原始人脸数据对应的隐向量与所述新的原始人脸数据对应的隐向量之间的第三距离;
将所述第一距离、所述第二距离与所述第三距离线性融合为属性损失值。
6.根据权利要求1所述的方法,其特征在于,所述在所述隐向量所处的空间中,寻找法向量,包括:
随机将隐向量输入所述人脸重构器中的解码器进行解码,得到多帧样本人脸数据;
针对每种人脸属性,对所述人脸数据进行所述人脸属性下的二分类,得到所述人脸数据的人脸属性及置信度;
将部分所述样本人脸数据划分为正样本、将部分所述样本人脸数据划分为负样本,所述正样本的置信度高于所述负样本的置信度;
在所述隐向量所处的空间中,确定超平面,所述超平面的一侧包括所述正样本的隐向量,所述超平面的另一侧包括所述负样本的隐向量;
将所述超平面的法向量设置用于编辑每种所述人脸属性的法向量。
7.根据权利要求1所述的方法,其特征在于,在所述隐向量所处的空间中,寻找法向量之后,还包括:
针对当前所述法向量,设置其他所述法向量为参考向量,当前所述法向量编辑的人脸属性中包含所述参考向量编辑的人脸属性;
从当前所述法向量中解离所述参考向量,作为解离后的法向量。
8.根据权利要求7所述的方法,其特征在于,所述从所述第一目标向量中解离所述第二目标向量,获得新的法向量,包括:
计算当前所述法向量的转置矩阵;
计算当前所述法向量的转置矩阵与所述参考向量之间的乘积,作为第一候选向量;
计算所述第一候选向量与所述参考向量之间的乘积,作为第二候选向量;
将当前所述法向量向量减去所述第二候选向量,作为解离后的法向量。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述针对每种所述人脸属性,沿所述法向量调整所述原始人脸数据中的所述人脸属性,以在所述人脸重构器中生成目标人脸数据,包括:
确定编辑强度;
针对每种所述人脸属性,使用所述编辑强度对所述人脸属性对应的所述法向量进行调整;
若调整完成,则在所述隐向量的基础上添加所述法向量,获得编辑后的所述隐向量;
将调整后的所述隐向量输入至所述人脸重构器中的解码器进行解码,获得目标人脸数据。
10.根据权利要求1-8中任一项所述的方法,其特征在于,所述针对每种所述人脸属性,在配对的所述原始人脸数据与所述目标人脸数据的监督下,将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器,包括:
针对每种所述人脸属性,将所述原始人脸数据输入所述人脸重构器中生成人脸数据,作为参考人脸数据;
将多个分辨率的所述参考人脸数据与多个分辨率的所述目标人脸数据分别输入多个个性判别器中,以提取所述参考人脸数据的第一个性人脸特征、提取所述目标人脸数据的第二个性人脸特征,以及,输出真或假的判别结果;
基于所述判别结果计算所述人脸重构器编辑所述人脸属性的损失值,作为对抗损失值;
基于所述第一个性人脸特征与所述第二个性人脸特征计算特征匹配损失值;
基于所述目标人脸数据与所述参考人脸数据计算感知损失值;
将所述对抗损失值、所述特征匹配损失值与所述感知损失值线性融合为总损失值;
在最大化所述对抗损失值的约束下,判断所述总损失值是否收敛;
若是,则确定已将所述人脸重构器调整为用于编辑所述人脸属性的人脸编辑器;
若否,则更新所述解码器、所述编码器,返回执行所述针对每种所述人脸属性,将所述原始人脸数据输入所述人脸重构器中生成人脸数据,作为参考人脸数据。
11.一种人脸编辑方法,其特征在于,包括:
接收原始图像数据,所述原始图像数据中具有人物形象;
从多种人脸属性中选定对所述人物形象编辑的人脸属性,作为目标属性,每种所述人脸属性均配置有编辑所述人脸属性的人脸编辑器;
加载用于编辑所述目标属性的人脸编辑器;
将所述原始图像数据输入至所述人脸编辑器中进行编辑,以编辑所述人物形象的所述目标属性、获得目标图像数据。
12.一种直播方法,其特征在于,包括:
采集视频数据,所述视频数据中的多帧原始图像数据中具有主播用户;
从多种人脸属性中选定对所述主播用户编辑的人脸属性,作为目标属性,每种所述人脸属性均配置有编辑所述人脸属性的人脸编辑器;
加载用于编辑所述目标属性的人脸编辑器;
将所述原始图像数据输入至所述人脸编辑器中进行编辑,以编辑所述主播用户的所述目标属性、获得目标图像数据;
预览包含所述目标图像数据的所述视频数据,以及,将包含所述目标图像数据的所述视频数据推流至所述主播用户开设的直播间中进行发布。
13.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一项所述的人脸编辑器的训练方法,或者,如权利要求11所述的人脸编辑方法,或者,如权利要求11所述的直播方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一项所述的人脸编辑器的训练方法,或者,如权利要求11所述的人脸编辑方法,或者,如权利要求11所述的直播方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110624499.3A CN113255551A (zh) | 2021-06-04 | 2021-06-04 | 一种人脸编辑器的训练、人脸编辑、直播方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110624499.3A CN113255551A (zh) | 2021-06-04 | 2021-06-04 | 一种人脸编辑器的训练、人脸编辑、直播方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113255551A true CN113255551A (zh) | 2021-08-13 |
Family
ID=77186696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110624499.3A Pending CN113255551A (zh) | 2021-06-04 | 2021-06-04 | 一种人脸编辑器的训练、人脸编辑、直播方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113255551A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113689327A (zh) * | 2021-08-18 | 2021-11-23 | 厦门美图之家科技有限公司 | 头发曲直处理方法、系统、终端设备及存储介质 |
CN114239717A (zh) * | 2021-12-15 | 2022-03-25 | 北京欧珀通信有限公司 | 模型训练方法、图像处理方法及装置、电子设备、介质 |
CN114373215A (zh) * | 2022-03-22 | 2022-04-19 | 北京大甜绵白糖科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN114418919A (zh) * | 2022-03-25 | 2022-04-29 | 北京大甜绵白糖科技有限公司 | 图像融合方法及装置、电子设备和存储介质 |
WO2023072067A1 (zh) * | 2021-10-25 | 2023-05-04 | 百果园技术(新加坡)有限公司 | 人脸属性编辑模型的训练以及人脸属性编辑方法 |
CN116630147A (zh) * | 2023-07-24 | 2023-08-22 | 北京隐算科技有限公司 | 一种基于强化学习的人脸图像编辑方法 |
TWI844284B (zh) * | 2023-02-24 | 2024-06-01 | 國立中山大學 | 跨域分類器的訓練方法與電子裝置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096557A (zh) * | 2016-06-15 | 2016-11-09 | 浙江大学 | 一种基于模糊训练样本的半监督学习人脸表情识别方法 |
US20180225812A1 (en) * | 2017-02-08 | 2018-08-09 | Adobe Systems Incorporated | Generating multimodal image edits for a digital image |
CN110889332A (zh) * | 2019-10-30 | 2020-03-17 | 中国科学院自动化研究所南京人工智能芯片创新研究院 | 一种基于面试中微表情的说谎检测方法 |
CN112560758A (zh) * | 2020-12-24 | 2021-03-26 | 百果园技术(新加坡)有限公司 | 一种人脸属性编辑方法、系统、电子设备及存储介质 |
-
2021
- 2021-06-04 CN CN202110624499.3A patent/CN113255551A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096557A (zh) * | 2016-06-15 | 2016-11-09 | 浙江大学 | 一种基于模糊训练样本的半监督学习人脸表情识别方法 |
US20180225812A1 (en) * | 2017-02-08 | 2018-08-09 | Adobe Systems Incorporated | Generating multimodal image edits for a digital image |
CN110889332A (zh) * | 2019-10-30 | 2020-03-17 | 中国科学院自动化研究所南京人工智能芯片创新研究院 | 一种基于面试中微表情的说谎检测方法 |
CN112560758A (zh) * | 2020-12-24 | 2021-03-26 | 百果园技术(新加坡)有限公司 | 一种人脸属性编辑方法、系统、电子设备及存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113689327A (zh) * | 2021-08-18 | 2021-11-23 | 厦门美图之家科技有限公司 | 头发曲直处理方法、系统、终端设备及存储介质 |
CN113689327B (zh) * | 2021-08-18 | 2024-08-27 | 厦门美图之家科技有限公司 | 头发曲直处理方法、系统、终端设备及存储介质 |
WO2023072067A1 (zh) * | 2021-10-25 | 2023-05-04 | 百果园技术(新加坡)有限公司 | 人脸属性编辑模型的训练以及人脸属性编辑方法 |
CN114239717A (zh) * | 2021-12-15 | 2022-03-25 | 北京欧珀通信有限公司 | 模型训练方法、图像处理方法及装置、电子设备、介质 |
CN114373215A (zh) * | 2022-03-22 | 2022-04-19 | 北京大甜绵白糖科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
WO2023179075A1 (zh) * | 2022-03-22 | 2023-09-28 | 上海商汤智能科技有限公司 | 图像处理方法及装置、电子设备、存储介质和程序产品 |
CN114418919A (zh) * | 2022-03-25 | 2022-04-29 | 北京大甜绵白糖科技有限公司 | 图像融合方法及装置、电子设备和存储介质 |
CN114418919B (zh) * | 2022-03-25 | 2022-07-26 | 北京大甜绵白糖科技有限公司 | 图像融合方法及装置、电子设备和存储介质 |
TWI844284B (zh) * | 2023-02-24 | 2024-06-01 | 國立中山大學 | 跨域分類器的訓練方法與電子裝置 |
CN116630147A (zh) * | 2023-07-24 | 2023-08-22 | 北京隐算科技有限公司 | 一种基于强化学习的人脸图像编辑方法 |
CN116630147B (zh) * | 2023-07-24 | 2024-02-06 | 北京隐算科技有限公司 | 一种基于强化学习的人脸图像编辑方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113255551A (zh) | 一种人脸编辑器的训练、人脸编辑、直播方法及相关装置 | |
Agnese et al. | A survey and taxonomy of adversarial neural networks for text‐to‐image synthesis | |
Tomei et al. | Art2real: Unfolding the reality of artworks via semantically-aware image-to-image translation | |
Xiong et al. | Learning to generate time-lapse videos using multi-stage dynamic generative adversarial networks | |
Han et al. | Adversarial training in affective computing and sentiment analysis: Recent advances and perspectives | |
CN102473280B (zh) | 图像处理装置和方法以及数据处理装置和方法 | |
Acharya et al. | Towards high resolution video generation with progressive growing of sliced wasserstein gans | |
CN111091045A (zh) | 一种基于时空注意力机制的手语识别方法 | |
US8605995B2 (en) | Image processing device and method, data processing device and method, program, and recording medium | |
Halit et al. | Multiscale motion saliency for keyframe extraction from motion capture sequences | |
CN109086697A (zh) | 一种人脸数据处理方法、装置及存储介质 | |
WO2023151529A1 (zh) | 人脸图像的处理方法及相关设备 | |
CN112468888A (zh) | 基于gru网络的视频摘要生成方法与系统 | |
CN112633234B (zh) | 人脸去眼镜模型训练、应用方法及其装置、设备和介质 | |
CN110175249A (zh) | 一种相似图片的检索方法及系统 | |
Khan et al. | Adversarial training of variational auto-encoders for high fidelity image generation | |
CN115862120B (zh) | 可分离变分自编码器解耦的面部动作单元识别方法及设备 | |
CN112597824A (zh) | 行为识别方法、装置、电子设备和存储介质 | |
Zheng et al. | A subspace learning approach to multishot person reidentification | |
WO2014186332A1 (en) | Generating photo animations | |
CN114360073B (zh) | 一种图像识别方法及相关装置 | |
CN115690276A (zh) | 虚拟形象的视频生成方法、装置、计算机设备和存储介质 | |
CN113407663A (zh) | 基于人工智能的图文内容质量识别方法和装置 | |
CN113850182B (zh) | 基于DAMR_3DNet的动作识别方法 | |
Zhang et al. | E-MobileNeXt: face expression recognition model based on improved MobileNeXt |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |