点击上方“3DCVer”,选择“星标”

干货第一时间送达

基于该方法的智能人脸画板,不需要用户拥有专业的绘画技巧,就能够从粗糙甚至不完整的草图生成高质量的人脸图像,并且同时支持对面部细节的编辑与控制。该算法降低了人脸肖像绘制的门槛,同时也减轻专业画家的工作难度,简单实用。

人脸图像的生成在各个行业有着重要应用,例如刑事调查、人物设计、教育培训等。然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来;对于从未接触过绘画的新手,就更是难如登天了。新手绘制出来的人脸草图往往非常简陋抽象,甚至有不匀称、不完整。但如果使用智能人脸画板,无疑是有如神助。

在 2009 年就有使用草图作为输入进行图像合成的研究工作 Sketch2Photo [1],CVPR 2018 上的工作 Mask-guided[2] 实现了基于参考图像和语义标签的人脸图像生成。2018 年 SIGGRAPH 上发表的工作 FaceShop[3] 利用草图交互实现人脸图像编辑。现有的从徒手草图快速生成的方法中,大部分都是基于深度学习的图像到图像转换技术,如 pix2pix,cycleGAN,pix2pixHD 等。然而,当前这些解决方案通常过拟合于草图,往往需要专业绘画的草图甚至边缘图作为输入,才能生成五官匀称合理的图像。对于线条粗犷、边缘不完整封闭的情况难以处理。这就意味着现有的解决方案对于输入草图的质量要求偏高,即无法满足新手或者手残党的需求。

为了解决这个问题,DeepFaceDrawing 工作另辟蹊径。其核心思路并非直接用输入草图作为网络生成条件,而是将人脸进行分块操作后利用数据驱动的思想对抽象的草图特征空间进行隐式建模,并在这个流形空间中找到输入草图特征的近邻组合来重构特征,进而合成人脸图像。

让我们先来看一下基于该方法使用简陋草图生成人脸的效果:

图一:DeepFaceDrawing 草图合成人脸结果

可以看到,即使草图是「歪瓜裂枣」、欠缺细节表达,或者线条粗犷甚至线条不完整,DeepFaceDrawing 都能为这些草图生成美观真实的人脸图像。与此同时,基于 DeepFaceDrawing 的方法,用户甚至无需进行绘画,可以直接拼凑,从而生成新的人脸:

图二. DeepFaceDrawing 实现的人脸拼接结果

下面让我们来具体看看这种高度逼真的人脸生成究竟是怎样做到的。

在已有的研究中,往往将输入的草图作为条件生成网络的硬约束,生成效果受草图质量影响较大。也有将草图投影到 3D 空间然后用 3D 模型作条件生成人脸图形的方法,但这种全局参数模型不够灵活,无法容纳丰富的图像细节,难以支持局部编辑。受作者之前 SDM-NET [4]工作启发,并且通过验证发现,全局 - 局部结构的网络对于细节的合成非常有效。因此,这篇论文也采取了对人脸进行分块,然后在特征空间隐式建模的思路。

在这篇论文中,作者一方面将人脸关键区域(双眼、鼻、嘴和其他区域)作为面元,学习其特征嵌入,将输入草图的对应部分送到由数据库样本中面元的特征向量构成的流形空间进行校准。另一方面,参考 pix2pixHD [5]的网络模型设计,使用 conditional GAN 来学习从编码的面元特征到真实图像的映射生成结果。该方法核心亮点之一,便是以多通道特征图作为中间结果来改善信息流。从本质上看,这是将输入草图作为软约束来替代传统方法中的硬约束,因此能够用粗糙甚至不完整的草图来生成高质量的完整人脸图像。

DeepFaceDrawing 模型什么样

正所谓大道至简,本论文效果好,框架其实也不复杂。如图三所示,DeepFaceDrawing 系统由三个模块组成:内容嵌入模块(Component Embedding)、特征映射模块(Feature Mapping)、图像合成模块(Image Synthesis),在下文它们分别被简称为 CE、FM、IS 模块。

图三:DeepFaceDrawing 网络构架。

CE 模块采用自编码器结构,将人脸草稿分为五部分(左眼、右眼、鼻、嘴、其他部位)作为五个特征描述符,投影到局部线性的流形空间。每个部位的流形空间由数据库中大量样本编码的特征向量构成。输入的手绘草图样本特征向量则作为点样本投影到这个空间中寻找近邻,通过线性组合重构成来进行优化草图输入,如图四所示。

图四:流形空间中的投影示意图

FM 和 IS 模块一起构成另一个用于条件图像生成的深度学习子网络,并将组件特征向量映射到现实图像。FM 模块与 CE 模块的解码部分类似,然而所不同的是,FM 模块将特征向量映射到 32 通道的特征映射空间并非 1 通道的草图。由于草图只有一个通道,因此通过草图到图像的网络很难解决重叠区域相邻组件的不兼容性问题。FM 模块中的映射方法改进了信息流,从而提供了更大的灵活性来融合单个人脸部位,以获得更高质量的合成结果。

搭建好整体的框架之后,要想训练出好的生成结果自然需要大量的人脸与草图图片对。为了实现用稀疏线条便能抽象表示人脸,该论文基于 CelebAMask-HQ[6]人脸图像数据库,筛选无遮挡的面部图像后,利用 Photoshop 加草图简化的方法提取草图,构建了一个新的含有 17K 对人脸图像和相应草图的数据集。

数据集构建完毕之后,则开始对网络进行训练。在这里,训练分为两个阶段,如图三所示,阶段一先训练内容嵌入模块,将编码的草图重建后的 MSE loss 做为损失函数训练。阶段二则是固定好内容嵌入模块参数后,再以端到端方式对特征映射模块和图像合成模块网络进行训练。

用户怎么画

为了更方便用户轻松画好,DeepFaceDrawing 提供了数据驱动下预测的草图供用户参考。每次用户画下一笔后,系统就会根据更新的草图匹配出最接近 “真实人脸” 的草图作为背景阴影,供用户参考。

同时为了方便用户调整细节,DeepFaceDrawing 也提供了对细节的调整,如下图五所示,包括针对脸部五部分的五个参数(eyeL、eyeR、Nose、Mouth、Others)的控制滑条。每个滑条的值代表着原始草图特征和系统优化特征的混合权重,滑条值越高代表混合特征越接近原始草图特征。

图五:界面展示

不止画脸,更多应用

由于 DeepFaceDrawing 实现了将草图各部位编码为对应特征空间中的特征向量,并在流形空间上进行投影,因而可以对相应分量的源特征向量与目标特征向量进行线性插值,再将插值后的特征向量送入网络模块生成中间人脸图像结果,实现人脸变换(Face Morphing)。

同样,因为采用特征向量解析,也可以将来自不同人不同部位的图像提取草图编码成特征向量,将其整合看作一张脸送入网络生成人脸图像,实现人脸拼接(Face Copy-Paste),结果如图二所示。

结语

DeepFaceDrawing 采用局部到全局的方法,将用户输入的草图分块投影到特征空间进行重构优化,避免了不合理草图的影响,能生成完整优美的人脸图像,行之有效,十分巧妙。

有关论文的更多细节,及论文、视频、代码的下载,请浏览项目主页。

抓紧来画出你心中的那个他 / 她!

  • 智能人脸画板系统和论文见项目主页:http://www.geometrylearning.com/DeepFaceDrawing/

  • Jittor 实现代码:https://github.com/IGLICT/DeepFaceDrawing-Jittor

论文:DeepFaceDrawing: Deep Generation of Face Images from Sketches

目前智能人脸画板开源代码将提供 Pytorch 版本和 Jittor 两个版本。计图(Jittor)是清华大学计算机系胡事民教授带领团队研发的一个全新的国产深度学习框架。对比 Jittor 版本和 Pytorch 版本运行时间,网络模型在模型训练上 Jittor 相对于 Pytorch 平均加速比为 168%,在图像生成上平均加速比为 300%。

Jittor 网址:https://cg.cs.tsinghua.edu.cn/jittor/

参考内容:

[1] Tao Chen,  Ming-Ming Cheng, Ping Tan, Ariel Shamir, and Shi-Min Hu. Sketch2Photo: Internet Image Montage.ACM Transactions on Graphics (Siggraph Asia 2009), 2009, Vol 28, No. 5, 124:1-124:10.

[2] Shuyang Gu, Jianmin Bao, Hao Yang, Dong Chen, Fang Wen, and Lu Yuan. MaskGuided Portrait Editing with Conditional GANs, CVPR 2019.

[3] Tiziano Portenier, Qiyang Hu, Attila Szabo, Siavash Arjomand Bigdeli, Paolo Favaro, and Matthias Zwicker. Faceshop: Deep sketch-based face image editing. ACM Transactions on Graphics, 2018, Vol. 37, No. 4, 99:1-99:13.

[4] Lin Gao, Jie Yang, Tong Wu, Yu-Jie Yuan, Hongbo Fu, Yu-Kun Lai, and Hao (Richard) Zhang. SDM-NET: Deep Generative Network for Structured Deformable Mesh. ACM Transactions on Graphics (Siggraph Asia 2019), 2019, Vol 38, No. 6, 243:1–243:15. 

[5] Ting-Chun Wang, Ming-Yu Liu, Jun-Yan Zhu, Andrew Tao, Jan Kautz, and Bryan Catanzaro. High-resolution image synthesis and semantic manipulation with conditional gans, CVPR 2018. 

[6] Cheng-Han Lee, Ziwei Liu, Lingyun Wu, and Ping Luo. MaskGAN: Towards Diverse and Interactive Facial Image Manipulation, CVPR 2020.

本文转载自公众号@机器之心。

仅做学术分享,如有侵权,请联系删文。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加群或投稿

▲长按关注我们

从草图到人脸:这篇SIGGRAPH2020论文帮你轻松画出心中的「林妹妹」,开源「计图」实现代码...相关推荐

  1. 【论文写作】如何画出好看的图表

    文章目录 前言 图表的作用 什么时候需要图表? 表格的技巧 技巧1 图的技巧 技巧1 技巧2 基于论文中的优秀图表案例,总结出一些规律 方法 规律总结 结论 参考文献 前言 创作开始时间:2021年1 ...

  2. 你看的每一篇Nature论文,都是这样出炉的!

    本文转载自"Sheldon",已获授权 这是Sheldon的第113篇漫画,所有图片大约 2.8 MB. 哈喽!大家好! 我是不定期更新的美编牛猫(*^__^*) , 感谢后台提催 ...

  3. 漫画 | 你看的每一篇Nature论文,都是这样出炉的!

    本文转载自"Sheldon",已获授权 这是Sheldon的第113篇漫画,所有图片大约 2.8 MB. 哈喽!大家好! 我是不定期更新的美编牛猫(*^__^*) , 感谢后台提催 ...

  4. 使用Python处理教育领域的数据——以一篇期刊论文为例

    Python是数据处理的常用语言,当然也可以用在教育学领域.下面以一篇期刊论文:程哲 卢兴富 李福林|世界一流大学建设成效评价分析--基于科研论文的视角为例,阐述使用Python处理教育领域数据的思路 ...

  5. 如何在论文中画出漂亮的插图?

    GITHUB, 开源包d3.数据可视化利器.http://ghv.artzub.com/#repo=d3&climit=100&user=mbostock&run 知乎精选: ...

  6. python 论文插图_如何在python论文中画出漂亮的插图?-from知乎

    如何在论文中画出漂亮的插图? 经常看到别人论文中画出各种绚烂的插图,我想知道这些图都是用一些什么样的软件画出来的.比如下面给出的几张,好吧,我承认有的并不那么绚烂,但用什么样的软件比较合适呢?具体答案 ...

  7. 面部识别必看!5篇顶级论文了解如何实现人脸反欺诈、跨姿势识别等(附链接)...

    来源:新智元 本文约1800字,建议阅读5分钟. 本文筛选了5篇非常重量级的有关人脸识别的机器学习论文,并提炼出论文最关键的信息. [ 导读 ]面部识别是计算机视觉中最大的研究领域之一.许多公司都投资 ...

  8. 人脸识别最新进展——几篇相关论文总结

    本文转载自知乎,已获作者授权转载,请勿二次转载. 链接:https://zhuanlan.zhihu.com/p/234369216 在前文 人脸识别中Softmax-based Loss的演化史 旷 ...

  9. 深度篇——人脸识别(一)  ArcFace 论文 翻译

    返回主目录 返回 人脸识别 目录 下一章:深度篇--人脸识别(二) 人脸识别代码 insight_face_pro 项目讲解 目录内容: 深度篇--人脸识别(一) ArcFace 论文 翻译 深度篇- ...

  10. 超赞!2021年最惊艳的38篇AI论文!

    转载于 :新智元 1.Zero-Shot Text-to-Image Generation https://arxiv.org/pdf/2102.12092.pdf 文本到图像的生成传统上侧重于为固定 ...

最新文章

  1. Nature子刊:宏基因组组装基因组实现谱系解析
  2. ng-options渲染的第一项为空的解决办法
  3. 序列信号产生器的verilog HDL 设计
  4. 23种基本设计模式简介
  5. struts2中拦截器和过滤器的比较
  6. as3.0-----计时器的使用实例
  7. SAP Spartacus的double maintenance -使用Cherrypick进行维护工作
  8. 【BZOJ1831】[AHOI2008]逆序对(动态规划)
  9. CSS 状态管理,玩出花样了!
  10. itchat python_itchat-python搭建微信机器人(附示例)
  11. 数据结构基础学习之(串与数组)
  12. web界面设计工具_您应该了解的14个Web设计工具
  13. 在华为服务器 RH 2288H V2上装 windows 2008
  14. CodeBlocks 20.03 开发基于FLTK 1.4.X 的应用
  15. 编译LibreELEC.tv,报错: ld -lz can not find -lz,原来是zlib-1.2.11没有交叉编译
  16. 慕课网上socket课程的学习
  17. APP推广什么是cpa,cps,cpm
  18. 阿里云:从“亚洲巨象”到“全球航母”
  19. keyshot渲染图文教程_keyshot渲染图文教程,教你如何渲染冰的效果
  20. 福特锐界2021plus保险盒保险丝说明

热门文章

  1. 洛谷P3749 [六省联考2017]寿司餐厅
  2. VMware开启虚拟化实现CentOS创建KVM
  3. ubuntu linux 1604 编译安装tesseract-ocr 4.0
  4. 乱谈B2C系统-算是今年的总结吧
  5. [原]批量删除VSS产生的scc文件
  6. 介绍一个基于SpringBoot2的脚手架项目
  7. 使用Git将项目上传到GitHub(Windows+Linux双教程)
  8. 排序算法之四 归并排序(C++版本)
  9. 浅谈C++中类的const成员变量,static成员变量和const static成员变量的区别
  10. 微服务学习之Gateway服务网关【Hoxton.SR1版】