编程人 cdmana.com

川普的退休生活?不,是AI算法的宅舞演绎。

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

一、前言

大家好,我是 Jack 。

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

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

看看阿川老师模仿阿坤老师等人的舞姿:

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

 

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

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

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

二、Impersonator++

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

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

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

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

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

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

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

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

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

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

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

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

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

整个处理流程分为三个步骤: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

三、效果测试

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/1E0hcRotocz85I2Oua0wiew

将权重文件解压到 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 文件里写的很详细,这里就不再累述。

运行命令,大功告成。

四、絮叨

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

这个算法会占领新一轮的鬼畜区吗?拭目以待。

我是 Jack ,我们下期见。

文章持续更新,可以微信公众号搜索【JackCui-AI】第一时间阅读,本文 GitHub https://github.com/Jack-Cherish/PythonPark 已经收录,有大厂面试完整考点,欢迎 Star。

Scroll to Top