就是GAN-萌新使用PaddlePaddle论文复现初探索之First-Order
先来科普一下
- 萌新
自然就是我啦-只看过机器学习入门课程的菜鸟。如果你也是这样,那就可以放心的向下看了
欢迎大家一起交流~~~
- PaddlePaddle
国货之光–类似Tensorflow,pytorch的机器学习框架。没听过?不要疑惑,这里有免费Tesla V100显卡可以撸,对于没算力的小白真的香,大可一试,框架一通百通,提升实战能力!!!
传送门>>撸算力请入
- “GAN”
人工智能领域内,当下机器学习中热门的深度学习中的艺术家算法鼻祖。
G >> generative 生成! 它可以像人类艺术家一样,创造出新的图片,视频,而不仅仅是分猫狗。
创造才是智能,这一点是最吸引我的地方(✪ω✪)
First-Order
大佬们在GAN算法的思想下提出的新算法–来自2019NIPS顶会的一篇论文
本次就让我带大家来感受一下大佬的思想吧(σ゚∀゚)σ…:*☆哎哟不错哦
paper原文分享:
链接: https://pan.baidu.com/s/1ie7dLLvOJgBOzIlbowGBCw 提取码: kckg
论文带读
任务与功能–万物皆可动
举个例子:
给一个源图像,给一个驱动视频,就可以让图像动起来啦
主要功能:表情迁移,虚拟换衣,动作迁移,虚拟头像等
前置知识
算法知识–生成对抗网络
- GAN : Generative Adversarial Nets cGAN : Conditional Generative
- Adversarial Nets Pixel2pixel : Image-to-lmage Translation with
- Conditional Adversarial Net-works
数学知识–微积分,泰勒展开公式
对于小白,我们今天的任务就是总体感受一下该算法的功能,算法知识没有可以后续补,掌握这些能更好的理解算法,不知道的话有GAN基础认知也可以读,只不过体验有点差/(ㄒoㄒ)/~~
优势对比
以前的工作:
- 是为特定领域设计的(人脸,人体轮廓,手势)
- 需要冗长的语义标签与标签检测器
- 需要大量的图片对象的先验知识
总结一下,就是设计的模型只能用在特定领域,对于新场景又需要训练新的模型。
同时对训练所需的数据集数量要求很大,同时需要语义标注,这大大增加了获取数据集的难度。
本算法的优化点:
- 该模型使用与多个领域
- 不需要源图片的先验信息和标签信息
- 相较于Monkey-net 对于无法通过图像扭曲的到的采用image inpainting得到。
对于第一点:一次训练,就可以在多个相似场景下使用。
传统算法:以上虚拟试衣场景需要训练7个模型 NO
本论文算法:只需训练一个模型即可 YES
对于第二点:First-Order会自己提取信息,降低了对训练集的要求。
对于第三点:Monkey-net是和First-Order模型相近的一种模型
实现方法
评判标准Metrics
- L1距离。计算了生成图片和ground-truth的1距离。
Average Keypoint Distance (AKD)平均关键点距离。
对于Tai-Chi-HD, VoxCeleb and Nemo数据集,采用了 第三方预训练的关键点检测器来进行评估。
AKD是通过计算ground truth检测关键点与生成视频的平均距离得到的。 - Missing Keypoint Rate (MKR)关键点缺失率。
在Tai-Chi-HD数据集中,姿态估计器为每个关键点返回一个额外的二进制标签,以指示是否成功地检测到关键点。这个度量评估每个生成帧的外观质量。 - Average Euclidean Distance (AED)平均欧式距离。
计算了ground truth和生成的帧表示之间的平均欧式距离。
代码整体把握
代码框架
- demo.py为测试的入口文件
- run.py为训练的入口文件 (训练的基础配置 和模型定义)
- train.py为训练的入口文件 (配置训练/更新策略 )
- frames_ _dataset.py完成对数据读入的定义
- generator.py中完成对生成模块中的生成器的定义
- discriminator.py中完成对生 成模块中判别器的定义
- keypoint_ detector.py中完成对动作运动估计模 块中的骨骼关键点提取的定义
- dense_ motion.py将关键点转换为D到S的映射,在生成器种使用
- model.py是为了将所以与生成器/判别器有关的更新合并到同一个模型中,方便多机训练。
详细代码可以查看GitHub哦~
总结
是不是有点晕,正常,我也是晕晕的,哈哈!
本次是对First-Order的初体验,大家只需要知道这个论文能干啥,自己对这个方向感不感兴趣即可,毕竟兴趣是最好的老师。对于小白,没有什么论文是必读不可,关键是我们先选择感兴趣的读下去!!!
下次让我们聚焦代码,完成复现吧,下次见~
*✧⁺˚⁺ପ(๑・ω・)੭ु⁾⁾ 好好学习天天向上