1

DeepFaceDrawing: 使用草图生成人脸图像

 2 years ago
source link: https://segmentfault.com/a/1190000041368100
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在本文中,介绍了使用人脸设计或草图来制作人脸照片的想法。该技术的应用包括角色设计、教育培训、面部变形和嫌疑人画像等。

有兴趣的可以先看看视频介绍:

要解决的问题

这篇文章的想法是设计一个应用程序来使用该面部草图来绘制一张真实的面部图像,该应用程序在警察、电影拍摄和面部彩绘中具有各种应用。这个想法的主要标准之一是它简单明了,非常易于使用,即使你不是一个好的画家,你也可以使用这个应用程序创建真实的面孔。

过去有解决这个问题的方法,在某些情况下使用了深度学习,但大多数时候他们以固定的绘图作为输入,并试图通过添加细节使其更完整,并生成真实的面孔。

从左至右:真实图像——HED——APDrawingGAN

从左至右:Canny Edges — Photoshop 中的影印滤镜 — PS 中影印滤镜的简化

问题是如何解决的?(架构和思想)

使用 CelebAMask-HQ 数据集的人脸图像创建了一个新的数据集,并用于训练(Train)和测试模型。

在这个数据库中只收集了面对面的图像,没有任何其他添加,例如眼镜、口罩等。

边缘检测过程采用了整体嵌套的边缘检测方法,下一步使用Photoshop中的Photocopy Filter来提高设计的质量,消除图像噪声。该数据库包括 17,000 对真实图像及其设计,其中男性图像 6,247 对,女性图像 11,456 对。但是,这个数据集不是很大,需要新的数据来改进算法。在这个想法中,训练集与测试集的比例是 1 比 20。

该系统的网络结构包括三个主要模块:组件嵌入(CE)、特征映射(FM)和图像合成(IS)。

  1. CE(组件嵌入)模块是一个自动编码器,它具有定义面部的5个特征或主要组件,即左眼、右眼、鼻子和嘴。(嘴)通过其他组件进行学习。
  2. FM (Feature Mapping)和IS (Image Synthesis)模块一起形成了一个深度学习子网,用来放置和组合面部组件,以创建一个真实的脸。其中FM是CE模块中编码的特征解码器,它将特征向量转换为32通道的特征图,而不是1通道的原型,这样提高了模型的性能。

这个模型使用了shadow-guided的思想,这是用来帮助那些不太精通绘画和绘画的人。在背景中就会有一个脸部设计的模糊图像,用户可以使用它来使设计更加完整,画出一个细节更多的更好的设计。

该网络的输入为512 × 512。在第一阶段,这些图像进入第一个子网或CE,分别学习与每个人脸分量相关的每个编码器,在第二阶段,每个人脸分量根据相似度在其特定的类中使用K近邻算法,并被放置到图中。在FM的下一步中,每个组件被插入到它的解码器和真实的组件中进行制作。然后将新组件组合在一起以创建一个真正的新面孔。这一步在SI中使用条件GAN体系结构技术执行,这样可以保证所有的面组件都在它们的原始位置。

样例如下:

在该模型中,可以改变对人脸每个特征的注意量和准确性,可以调整每个特征的拟真程度,例如鼻子比较像而嘴不太像。还有一种功能就是可以单独设计每只眼睛,保证眼睛可能不一定是相同的。

在这个想法中,我们尝试绘制一张脸,并将其主要成分(例如左右眼睛、鼻子、嘴巴)和其余成分分开,并教一个深度学习网络在真实图像中找到它们的等价物,并将它们转化为真实的样子。 这个方向有很多挑战,DeepFaceDrawing试图用新的想法和以前的知识来解决,但是这个想法仍然存在问题,我们希望在下一个版本中得到解决,这个应用程序的质量和准确性会提高。

官网,论文和DEMO代码都在这里:

https://www.overfit.cn/post/cf48c77252ad43928cea5c581b90a88e

作者:Ehsan Mrh


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK