第一次写文章还把蒙娜丽莎名字写错了,原谅四川人我N、L不分,蒙娜丽莎表示有很多话要说。这不,三星莫斯科AI中心和Skolkovo 科学技术研究所(DeepWarp也是他们的作品)在19年5月份就发表了一篇论文,文章中提出的talking head模型,让蒙娜丽莎说上了话,让玛丽莲梦露笑开了眼。

(话痨式蒙娜丽莎)

像这类换脸的技术有很多,比如被玩坏了的deepfake,最新的FaceShifter(和Face X-Ray简直上演了换脸算法的矛与盾),以及只迁移表情的face2face和其升级版可以完成上身运动和头部运动迁移的HeadOn。但是这些方法都需要大量的数据(应该是A转B,A和B都需要一定量的数据),且对计算资源要求高。而该论文的模型只需要少量样本(few-shot),甚至只需要一张图像(one-shot),比如:蒙娜丽莎,就可以把她的脸、表情、头部动作按照你给的说话视频动起来了。

相关资源

论文:Few-Shot Adversarial Learning of Realistic Neural Talking Head Models

复现代码:https://github.com/vincent-thevenin/Realistic-Neural-Talking-Head-Models

论文笔记

作者首先采用了一个元学习(meta-learning)的架构,在大量不同外表、不同谈话表情的说话人视频数据上进行预训练(embedding)。在预训练过程中,同时利用少量的对应视频帧人头图像(同一个人)和视频的embedding信息完成关键点到真实图像的生成,元学习的主要目的是通过GAN实现人脸关键点(Landmarks)到人脸的生成过程;然后利用元学习得到的高质量生成器和判别器重新在新的人头数据集上(可以同一人像也可以不同人像)进行对抗学习,其实就是一个微调(fine-tuning)或者在线学习的过程。

(论文公开的视频)

01

元学习

元学习阶段包含三个网络:嵌入网络(embedder)、生成网络(generator)和判别网络(discriminator),首先,定义一些如下数学符号:






:视频视频序列数量;









:第i个视频序列;












:第i个视频的第t帧;












:第i个视频的第t帧










对应的关键点结果(通过《How far are we from solving the 2d & 3d face alignment problem》得到);

(模型结构)

嵌入网络

























:输入视频帧及对应的关键点结果,嵌入式网络的作用是将该输入映射为一个




维向量















。其中




是网络可训练参数,通过元学习过程进行优化,因此嵌入向量















就包含了特定的视频帧信息,通过求平均得到视频的嵌入向量












具体地,从视频数据集随机选取视频i,并从该视频随机选取第t帧,并在除第t帧外随机选取k(k=8)帧s1, s2, . . . , sK,通过对这K帧经过embedder得到的向量


















求平均,得到的平均向量












,作为该视频的嵌入向量。

问:那么第t帧是拿来干什么用的呢?

答:通过该帧的关键点让生成网络生成该帧人脸图像。

生成网络


























ψ






:输入视频帧关键点定位图像










,以及要转换的视频嵌入向量







,生成对应帧的重建结果















。生成器的作用是要使得生成的图像和视频帧视频帧图像相似度越大越好。生成网络的参数有两部分:共性参数 




ψ



和特性参数







ψ








,在元学习过程中,ψ可以直接训练得到,而







ψ








则需要通过嵌入向量 












经过MLP预测得到,即:







ψ



















那么,利用关键点和视频嵌入向量对第t帧进行重建:

嵌入网络和生成网络的参数通过以下损失函数进行优化:包含三个部分:内容损失、对抗损失和匹配损失。

其中,内容损失











和风格迁移的损失类似,通过对真实图像和预测图像在VGG19的Conv1,6,11,20,29的激活层特征,以及VGGFace的Conv1,6,11,18,25的激活层特征分别计算L1距离,并进一步加权求和而来。

对抗损失











:生成器生成的图像应该尽可能“骗”过判别器,使得判别器输出的真实性得分最大化。

对抗损失中,作者还借鉴了pix2pixHD的特征匹配损失,即从判别器的中间层提取特征,学习匹配真实图像和生成图像的这些中间表示,具有稳定训练的作用。

嵌入向量匹配损失











:对应视频嵌入向量的







距离,其中一个嵌入向量







来自于嵌入网络,另一个嵌入向量







,是判别网络权重的一部分,借鉴自《cGANs with Projection Discriminat》的思想。

判别网络

:判别网络的输入包括:第t帧的图像或者生成图像、对应的关键点结果,以及视频序列的索引i,




为卷积神经网络参数,




视频嵌入矩阵,第i列表示第i个视频嵌入向量,以及












都是判别网络的可训练参数。通过卷积网络























,判别器将图像和关键点结果映射为一个N维向量,基于这个结果和

















线性运算,得到一个得分




,表示输入










是否为第t帧的真实图像以及是否和输入的关键点结果相匹配 。

在更新嵌入网络和生成网络时,判别网络通过如下的hinge loss更新其权重,损失函数形式:

02

少样本微调

在元学习已收敛的模型基础上,通过少量样本进行微调,即只有一个视频序列(要模仿的视频)和少量帧(需要转换的图像)的简单版元学习,选取T张同一视频的图像帧x(1), x(2), . . . , x(T),以及对应的关键点结果图像 y(1), y(2), . . . , y(T),T大小不同于元学习的K,T=1时为one-shot 学习。

通过嵌入网络得到输入T帧图像的嵌入向量:

继而完全可以通过生成器对关键点图像生成类似于这T帧的图像,但是存在个体差异:看起来像但是真实度不够,这个差异可以通过接下来的微调有效地解决。

微调生成网络
















ψ






ψ






:同预训练一致,生成器对输入的关键点图像







重建人脸图像












,训练参数也包含两部分:ψ和ψ',ψ'通过
















和预训练的投影矩阵P进行初始化,后续直接更新ψ',然后更新ψ′,使得G更快适应于另一个域(测试集),初始化:







ψ























损失函数:

微调判别网络





























:卷积层参数




以及偏置




均由预训练参数初始化,所以微调后的判别器形式如下:

那么







该如何初始化呢,并不能像预训练那样采用












,因为







表示训练集第i个视频的嵌入向量。这时候











就体现出它的作用了,因为











可以使







y与












更相似,所以







可以初始化为:




























损失函数:

03

实验结果

作者在两个数据集:VoxCeleb1和VoxCeleb2进行训练和验证,并通过FID(Frechet Inception Distance)、SSIM(结构相似度)、CSIM(余弦相似度)以及用户调研进行定量和定性地评估。

左边的T表表示测试所用图像数量,可以看出T=1也可以生成比较逼真的图像;T越大时,生成效果越好。

(T为不同值时在两个数据集的生成结果以及不同方法的对比)

作者还在静态画数据上通过one-shot学习,生成动态的视频结果,其中输入的的关键点数据来自于VoxCeleb2。不过作者使用了余弦相似度对视频进行了排序,找出了相似的脸型的视频作为被模仿的输入。(但是这怎么微调呢,没有ground truth啊?)

(单张静态画的预测结果)

拿code搞事情

搞不了事情了,以后添置台设备再玩儿吧

长按二维码关注我们

有趣的灵魂在等你

留言请摁

眨眼算什么,让蒙娜丽莎像你一样唠上嗑才算硬核相关推荐

  1. 第十六届全国大学生智能车竞赛技术报告 | 单车拉力组- 上海海事大学-骑摩托的蒙娜丽莎

    简 介: 本文设计的智能车系统以 STC16F40K128微控制器为核心控制单元,通过车体前方的电感检测赛道电磁信息,通过编码器检测智能车的实时速度,利用陀螺仪检测小车姿态,使用PID 控制算法调节电 ...

  2. 你动、蒙娜丽莎跟着一起动,OpenCV这么用,表情口型造假更难防了

    梅宁航 发自 凹非寺 量子位 报道 | 公众号 QbitAI 有没有想过让蒙娜丽莎跟着你的表情动,来一番亲切的交流? Aliaksandr的一阶运动模型(First Order Motion Mode ...

  3. 用 AI 分析蒙娜丽莎的微笑,情绪分析认为她没那么高兴

    作者:孙晓 编辑:麦芽杨 凝音 来源:我是科学家iScientist 本文约2800字,建议阅读6分钟 本文为你介绍用算法洞察真实情绪. 合肥工业大学情感计算研究所一直致力于情绪分析的研究,本文为孙晓 ...

  4. 让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

    作者 | Jack Cui 来源 | Jack Cui(ID:JackCui-AI) 前言 让一张图片,动起来,应该怎么做? DeepFake 一阶运动模型,让万物皆可动. 利用这项技术,用特朗普和蒙 ...

  5. 骑摩托的蒙娜丽莎 - 曼妙风骚的花式慢跑算法

    简 介: 你没有想到吧,在第十六届全国大学生智能车竞赛单车拉力组获得单车比赛全国冠军的队伍的单车控制算法居然是PID参数调整不当造成的振荡现象!没错,出乎所有人的意料.下面让我们看看来自上海海事大学单 ...

  6. 英伟达验证图片加载不出来_让大卫雕塑跳舞、蒙娜丽莎说话,英伟达视频合成有如此多「骚操作」...

    用视频到视频的合成技术生成会跳舞的小哥哥(小姐姐) 或自己本人已经不是什么无法解决的问题,但这些方法通常需要大量目标人物的数据,而且学到的模型泛化能力相对不足.为了解决这个问题,来自英伟达的研究者提出 ...

  7. AI用50个三角形画出抽象版蒙娜丽莎,有股后现代的感觉了 | 谷歌大脑出品

    明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 现在,给AI一个短语和50个三角形,它就能创作一副极简风格的抽象画了. 只需输入"a drawing of cat(一张猫的画像) ...

  8. 蒙娜丽莎,品牌创新的探索者

    在只要能生产出类似的产品就能赚到钱,大家都把精力放在捕捉现有市场机会的2000年左右,蒙娜丽莎试水品牌高度的产品创新,从无差异的品牌战略转向有限的差异化多品牌战略,这一成功转型无疑是蒙娜丽莎十年品牌路 ...

  9. Silverlight 解谜游戏 之十六 消失的蒙娜丽莎

    在<Silverlight 解谜游戏 之三 消除名单>中我们通过在物品轮廓画出Path 来达到消除物品的效果,由于游戏中的物品都是Office 图片的一部分所以无法使其真正消失,本篇我们将 ...

最新文章

  1. golang mysql 错误 sql: unknown driver “mysql“ (forgotten import?) 解决方法
  2. Windows 软件推荐2020
  3. 解决IE8下载停留在99%的脚本
  4. 如何使用原生的 JavaScript 代码,触发 SAP UI5 按钮控件的点击事件处理函数
  5. 篇三:访问JSON静态文件
  6. Verification Mind Games---how to think like a verifier像验证工程师一样思考
  7. LwIP应用开发笔记之一:LwIP无操作系统基本移植
  8. 2.3 快速搭建你的第一个系统,并进行迭代
  9. Android 软键盘弹出,界面整体上移的问题
  10. 英文书信开头结尾模板
  11. 税收学考试可以带计算机吗,税务师考试能带计算器和草纸吗?简答题需要用笔吗?...
  12. 壹基金,李连杰的长尾理论
  13. AndroidAPP用邮件收集用户上报日志
  14. @ds实现多数据源切换及解决事务失效问题
  15. canvas实现图片压缩和缩放
  16. 以计算为中心的下一代数据中心交换网络
  17. Nervos 双周报第 8 期:用爱发电的 RustCon Asia
  18. 计算机控制总线应用,基金会现场总线FF技术在焦炉计算机控制系统的应用
  19. 【verilog学习12】HDLBits:Procedures (Always block/case+Avoiding latches)
  20. 【区块链】区块链技术在商业领域的应用案例

热门文章

  1. 类.接口.多态.向上转型.向下转型
  2. ida 反编译 linux bin,使用IDA pro逆向ARM M系核心的Bin固件
  3. mysql入门操作_对MySQL的几个入门操作
  4. 从民宅到独栋大厦 我们搬家啦!
  5. go语言基础到提高(10)- 包及方法
  6. vb.net2019-下载文件
  7. 中国大学单身 (民间)排行榜!你上榜了没
  8. 【Python】pandas一行代码绘制26种美图
  9. 【NLP】BERT大魔王为何在商业环境下碰壁?
  10. Python入门练习题目