3D实时换脸又有新进展!中科院博士生提出改进版本,每张图推理只需0.27毫秒


新智元报道

来源:GitHub 作者:cleardusk

编辑:木青

【新智元导读】此前,中科院自动化所的一篇论文《所有姿态范围内的面部替换:3D解决方案》引起广泛关注。近日,中科院的一位博士生对“3D实时换脸”论文PyTorch实现改进版,使得每张图的推理时间只需0.27毫秒,同时还增加了实时培训等功能。

2018年4月,针对如何解决所有姿势范围内的面部替换,中科院自动化所的研究人员发表了一篇论文,提出了3D实时解决方法。

近日,Github一位作者cleardusk(主页:https://github.com/cleardusk,目前是中科院自动化所的在读博士生)将“3D实时换脸”PyTorch实现改进版,每张图的推理时间只需0.27毫秒!

这一改进版本帮助Pytorch改进了论文《所有姿态范围内的面部替换:3D解决方案》中提到的方法。该论文的作者之一是来自中科院自动化所的Xiangyu Zhu,根据其个人主页上的信息,他和cleardusk博士期间的导师均是李子青教授,二人可以说是同门师兄弟。

面部对齐使面部模型适合图像并提取面部像素点的语义,已成为计算机视觉领域中的一个重要主题。此前,大多数算法都是针对中小姿态(偏角小于45度)的面部而设计的,缺乏在高达90度的大幅度姿态中对齐面部的能力,这一论文就是针对所有姿态范围内的面部替换所提出来的方法。

而此次这位博士生提出的改进版本还增加了一些额外的工作,包括实时培训、培训策略等,而不仅仅是重新实现“3D实时换脸”。更详细的内容未来将会发布在相关博客中,包括一些重要的技术细节。到目前为止,这个改进版本发布了预训练第一阶段的pytorch模型,其中包括MobileNet-V1结构、训练数据集和代码。在GeForce GTX TITAN X上,每张图像的推理时间约为0.27毫秒(输入批量为128 的情况下)。

以下是关于ALFW-2000数据集的几个训练结果(根据模型phase1_wpdc_vdc.pth.tar进行推断):

那么,改进版能实现哪些应用呢?

首先,它能够实现面部对齐

其次是面部重塑,实现“变脸”!

如何入门:要求与用法

如果要着手尝试改进版,那么你需要:

  • PyTorch >= 0.4.1
  • Python >= 3.6 (Numpy, Scipy, Matplotlib)
  • Dlib (Dlib用于检测面部和标志。如果你可以提供面部边框线和标志,则无需使用Dlib。可选择性地,你可以使用两步推理策略而无需初始化这些数据。)
  • OpenCV(Python版,用于图像IO操作。)

# 安装顺序: sudo pip3 安装torch torchvision。更多选择点击:https://pytorch.org sudo pip3 安装numpy,scipy,matplotlib sudo pip3 安装dlib==19.5.0 # 19.15+ 版本,这可能会导致与pytorch冲突,大概需要几分钟 sudo pip3 安装opencv-python版

此外,强烈建议使用Python3.6 +而不是旧版,这样可以实现更好的设计。

接下来具体用法如下:

1、复制下面这个改进版(这可能需要一些时间,因为它有点大)

https://github.com/cleardusk/3DDFA.git或者git@github.com:cleardusk/3DDFA.gitcd 3DDFA

2、使用任意图像作为输入,运行main.py:python3 main.py -f samples/test1.jpg

如果你可以在终端中看到这些输出记录,就可以成功运行它:

Dump tp samples/test1_0.ply Dump tp samples/test1_0.mat Save 68 3d landmarks to samples/test1_0.txt Dump tp samples/test1_1.ply Dump tp samples/test1_1.mat Save 68 3d landmarks to samples/test1_1.txt Save visualization result to samples/test1_3DDFA.jpg

因为test1.jpg有两张人脸,因此有两个mat(存储密集面顶点,可以通过Matlab渲染)和ply文件(可以由Meshlab或Microsoft 3D Builder渲染)预测。

结果samples/test1_3DDFA.jpg如下所示:

附加示例:

python3 ./main.py -f samples/emma_input.jpg --box_init=two --dlib_bbox=false

当输入批量为128 的情况下,MobileNet-V1的推理时间约为34.7毫秒,平均每张图像的推理时间约为0.27毫秒。

评估与训练资源

首先,你需要下载压缩的测试集ALFW和ALFW-2000-3D(下载链接:https://pan.baidu.com/s/1DTVGCG5k0jjjhOc8GcSLOw) ,下载后解压并将其放在根目录中。接下来,通过提供训练的模型路径来运行基准代码。我已经在models目录中提供了四个预先训练的模型。这些模型在第一阶段使用不同的损失进行训练。由于MobileNet-V1结构的高效率,模型大小约为13M。

在第一阶段,不同损失的有效性依次为:WPDC> VDC> PDC,使用VDC来微调WPDC的方法取得了最好的结果,预训练模型的性能如下所示:

训练脚本位于training目录中,相关资源如下:

1、train.configs(217M),链接:

https://pan.baidu.com/s/1ozZVs26-xE49sF7nystrKQ#list/path=%2F,该目录与3DMM参数和训练数据集的文件列表相对应;

2、train_aug_120x120.zip(2.15G),链接:

https://pan.baidu.com/s/19QNGst2E1pRKL7Dtx_L1MA,增强训练数据集的裁剪图像;

3、test.data.zip(151M),链接:

https://pan.baidu.com/s/1DTVGCG5k0jjjhOc8GcSLOw,AFLW和ALFW-2000-3D测试集的裁剪图像;

4、model_refine.mat(160M),链接:

https://pan.baidu.com/s/1VhWYLpnxNBrlBg5_OKTojA,BFM模型

准备好训练数据集和配置文件后,进入training目录并运行bash脚本进行训练。训练参数都以bash脚本呈现。

参考链接:

https://github.com/cleardusk/3DDFA

https://arxiv.org/abs/1804.01005

本文分享自微信公众号 - 新智元(AI_era)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能算法

网页排序算法之PageRank

1. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 是Google创始人拉里·佩奇和谢尔盖·布林于...

59490
来自专栏机器之心

资源 | 一张速查表实现Apache MXNet深度学习框架五大特征的开发利用

选自AWS blog 机器之心编译 参与:Smith Apache MXNet 是一个功能全面,且具有高度可扩展性的深度学习框架,可支持创建和训练最新型的深度学...

34260
来自专栏人工智能头条

如何用OpenCV、Python和深度学习实现面部识别?

这篇文章首先将简单介绍下基于深度学习的面部识别的工作原理,以及“深度度量学习”(deep metric learning)的概念。接下来我会帮你安装好面部识别需...

35580
来自专栏企鹅号快讯

外国网友如何使用机器学习将邮件分类?其实很简单

AiTechYun 编辑:Yining 背景:一名叫做Anthony Dm.的外国网友试图利用机器学习将一堆未标记的电子邮件进行分类,以下是他对这次操作发表的文...

24680
来自专栏大数据文摘

R的基本绘图功能

19350
来自专栏智能算法

网页排序算法之PageRank

1. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 是Google创始人拉里·佩奇和谢尔盖·布林于...

48580
来自专栏新智元

【Science】破解密码“AlphaGo”诞生,训练Gan破解27%LinkedIn测试集密码

【新智元导读】一项新的研究旨在使用生成对抗网络(GAN) 来加快密码破解的速度。斯蒂文斯理工学院的研究人员用类似“AlphaGo”的方法,利用超过 4300 万...

37060
来自专栏新智元

谷歌开源JPEG压缩算法,比同类方法性能优越35%

【新智元导读】 谷歌最近开源了一个JPEG图像压缩编码器,比同类方法压缩要小35%。 在互联网上,速度意味着一切。一个通用的规则是:文件越小,载入的速度会越快...

50150
来自专栏机器之心

深度 | 基于TensorFlow打造强化学习API:TensorForce是怎样炼成的?

选自reinforce.io 机器之心编译 作者:Michael Schaarschmidt、Alexander Kuhnle、Kai Fricke 参与:Pa...

64090
来自专栏AI科技大本营的专栏

干货 | 谷歌BERT模型fine-tune终极实践教程

从11月初开始,Google Research就陆续开源了BERT的各个版本。Google此次开源的BERT是通过TensorFlow高级API—— tf.es...

63410

扫码关注云+社区

领取腾讯云代金券