0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

“3D实时换脸”PyTorch实现改进版,每张图的推理时间只需0.27毫秒!

智能感知与物联网技术研究所 来源:未知 2018-11-28 16:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

此前,中科院自动化所的一篇论文《所有姿态范围内的面部替换: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脚本呈现。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    30

    文章

    5884

    浏览量

    89137
  • 计算机视觉
    +关注

    关注

    9

    文章

    1714

    浏览量

    47445
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14680

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

文章出处:【微信号:tyutcsplab,微信公众号:智能感知与物联网技术研究所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    设计一个延时100毫秒的延时程序

    我是个初学者由于不是很懂得那些机器周期还有用法算法问题:设计一个延时100毫秒的延时程序。的简单延时程序,只写出延时部分就ok了,C和汇编都要
    发表于 06-09 15:05

    单片机延时3分88毫秒,用你的准确度向3·8妇女节致敬!

    ,那就是用单片机延时3分88毫秒,看谁的更准。用你的准确度向3·8妇女节致敬!采用51单片机,晶振12M,到时参赛者把自己的代码上传,鹰哥会用KEIL软仿测试
    发表于 03-06 17:24

    求arduino nano3.0改进版(换了u***芯片)的原理啊?

    哪位大神有arduino nano3.0改进版(换了u***芯片)的原理啊?
    发表于 04-22 22:27

    pwm输出控制直流电机。在软启动时占空比是变化的,每10毫秒输出一次?为什么pwm是每10毫秒输出一次?

    程序大概是这样的:motor_duty=2;sum_duty=1;if(timer_10ms++>=2)// 定时器中断时间为5毫秒 {motor_duty + = sum_duty
    发表于 09-17 09:26

    最快的定时器中断能实现毫秒

    最快的定时器中断能实现毫秒吗?我在运行默认时钟。系统时钟为403.2兆赫。 以上来自于百度翻译 以下为原文Is the fastest timer interrupt I can achieve
    发表于 04-23 06:49

    什么叫3D微波技术

    3D电影已成为影院观影的首选,当3D打印已普及到双耳无线蓝牙耳机,一种叫“3D微波”的技术也悄然而生。初次听到“3D微波”,你可能会一
    发表于 07-02 06:30

    3D TOF深度剖析

    这段时间以来,最热的话题莫过于iPhone X的Face ID,关于用它刷的段子更是满天飞。其实iPhone X 实现3D视觉刷是采用了
    发表于 07-25 07:05

    PYNQ框架下如何快速完成3D数据重建

    的。为了与下一节中实现的自定义方法进行比较,使用Mesh Lab可视化三维点云。从下图可以看出,渲染是准确的。使用PYNQ板生成3D点云耗时42.973997。这说明视差和点云生成
    发表于 01-07 17:25

    15芯片延时一毫秒软件实现

    )// 15芯片延时一毫秒软件实现 { uint a;for(;ms>0;ms--){for(a=845;a>0;a--); ...
    发表于 01-12 08:18

    微软自研触控技术 可实现延迟低于1毫秒

    微软的应用科学团队最近发布了一个自行研发的触控技术,并放出与当前技术相比较两者输入延迟时间长短的视频,微软自己的技术是希望在触摸输入延迟上可以实现低于1毫秒
    发表于 03-12 10:16 850次阅读

    HTC回应无线套件延迟问题:2毫秒以下无疑

    HTC Vive的无线套件公开后,其“延迟”究竟表现如何引发人们广泛关注。HTC日前作出官方回应,称之前网站上的15毫秒延迟是过时数据,低于2毫秒才是实际情况。
    发表于 11-16 09:40 888次阅读

    奥比中光3D人脸识别技术助力中国地铁首次实现乘车

    3D人脸识别闸机,依托3D技术,市民可直接刷乘车。 开辟特别通道,3D直接进站 据了解
    发表于 04-02 22:06 936次阅读

    AOC冠捷发布两款新游戏显示器 均为TN面板以及0.5毫秒超快响应时间

    AOC冠捷今天发布了两款新的游戏显示器,24.5英寸的AG251FZ2、27英寸的AG271FZ2,都具备0.5毫秒的超快响应时间
    的头像 发表于 07-04 09:15 6104次阅读

    奥比中光3D门锁解决方案亮相广州建博会

    近日,“亚洲建材第一展” 中国(广州)国际建筑装饰博览会在广州开幕。本届博览会中,3D门锁成为一大热点,众多知名厂商首次亮相的3D门锁均采用奥比中光
    的头像 发表于 07-11 08:56 4483次阅读

    Adobe提出DMV3D3D生成只需30!让文本、图像都动起来的新方法!

    因此,本文研究者的目标是实现快速、逼真和通用的 3D 生成。为此,他们提出了 DMV3D。DMV3D 是一种全新的单阶段的全类别扩散模型,能直接根据模型文字或单张图片的输入,生成
    的头像 发表于 01-30 16:20 2153次阅读
    Adobe提出DMV<b class='flag-5'>3D</b>:<b class='flag-5'>3D</b>生成<b class='flag-5'>只需</b>30<b class='flag-5'>秒</b>!让文本、图像都动起来的新方法!