川普的退休生活,AI 宅舞很专业。

共 2440字,需浏览 5分钟

 ·

2020-12-12 23:38

点击上方“Jack Cui”,选择“设为星标

第一时间关注技术干货!


大家好,我是 Jack 。


最近看到了一个很好玩的算法,人体的动作迁移。


给定一张或者多张人物 A 的图像,和一段人物 B 的视频,就可以通过动作迁移算法自动合成一段人物 A 做任务 B 动作的视频


看看阿川老师模仿阿坤老师等人的舞姿(点击播放视频):



要不是马保国被封杀了,绝对给大家来一段“松果弹抖闪电鞭”。


准备好素材和电脑,今天继续手把手教学


算法原理、环境搭建、效果实现,一条龙服务,尽在下文!

1


Impersonator++

Impersonator++的前身是去年发表的Impersonator。这项工作,上海科技大学的 LiuWen 、Zhixin Piao 等人,探索了三年。

去年的 Impersonator 早已入选计算机视觉顶会 ICCV 2019。

又经过了一年多的努力,增强版 Impersonator++ 诞生了。


Impersonator++ 解决了去年算法的泛化性较差,尺度太较小(256 x 256), 以及自动化程度不够高等问题。

Impersonator++ 不仅可以做人体的动作迁移,人体图像合成的其它任务都可以 Cover,例如新视角合成、外观迁移。

它们在重演、角色动画、虚拟试装、电影以及游戏制作等领域具有巨大的应用潜力


动作迁移(模仿)的目标是把 source human image 的动作,变换成 reference human image 的动作。

新视角合成,就是对视角进行转换,比原图是一张正面图,去合成他的背面图。

外观迁移是交换两张图像中人物的外观(如衣服,裤子,鞋子等,但是不包含脸部)。

研究者针对上个版本的问题,探索提出了第二个版本 Liquid Warping GAN with Attention。


整个处理流程分为三个步骤:Body Mesh Recovery、Flow Composition、Liquid Warping GAN。

Body Mesh Recovery 阶段是对所有图片进行三维重建,生成每帧人物的 3D Mesh,然后进行渲染。

Flow Composition 阶段是分离前景和背景,并计算运动需要的一系列旋转矩阵,以备后动作渲染。

Liquid Warping GAN 阶段是生成结果的过程,利用到了背景修复 Inpainting 算法,同时利用 LWB 或 AttLWB 生成头发、衣服等细节纹理。

想要更好的修复效果,可以使用多帧图像作为 Source Image。

更详细的技术细节,可以直接看 paper:
https://arxiv.org/pdf/2011.09055.pdf

2


效果测试

Github 项目地址:
https://github.com/iPERDance/iPERCore

强烈建议使用 Linux 搭建环境,我自己在 Windows 上测试发现存在一些问题,与作者微信联系,他们表示近期会修复。



没有 GPU 的,也可以白嫖 Google Colab,环境都是配好的,直接挨个 cell 运行即可体验。


Google Colab 地址:

https://colab.research.google.com/drive/1bwUnj-9NnJA2EMr7eWO4I45UuBtKudg_?usp=sharing

 

如果没梯子,那只能用 Linux 服务器搭建开发环境了,或者等 Windows 修复。


Linux 环境配置,没啥问题,直接安装 CUDA 10.1 以上版本,并安装 gcc 7.5+ 和 ffmpeg。


然后下载代码,进入工程目录,使用如下指令安装依赖:


python setup.py develop


搞定后,下载算法需要的权重文件,项目的权重文件需要梯子才能下载,否则很慢。


为了方便大家,我将论文权重文件,上传到了百度网盘,需要的自取(提取码:jack):

https://pan.baidu.com/s/1932_Nyk8buXHd1bDUphygA


将权重文件解压到 assets 目录即可。


都配置好后,直接运行命令:


python demo/motion_imitate.py --gpu_ids 0 \   --image_size 512 \   --num_source 2   \   --output_dir "./results" \   --assets_dir "./assets"  \   --model_id   "donald_trump_2" \   --src_path   "path?=./assets/samples/sources/donald_trump_2/00000.PNG,name?=donald_trump_2" \   --ref_path   "path?=./assets/samples/references/akun_2.mp4,name?=akun_2,pose_fc?=300"


命令参数的详细说明,在 motion_imitate.py 文件里写的很详细,这里就不再累述。


运行命令,大功告成。

3


絮叨

我知道,看了这篇文章,你一定又有了很多大胆的想法。


这个算法会占领新一轮的鬼畜区吗?


我是 Jack ,我们下期见。
·················END·················



推荐阅读

•   「修炼开始」一文带你入门深度学习•   为艺术而生的惊艳算法•   我是如何成为算法工程师的,超详细的学习路线•   用中国特色社会主义的方式打开 CenterNet•   带你「周游世界」的 MODNet 算法



浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报