用Python让小朋友的手绘图跳起来(附源码)

今天给大家介绍一个非常有趣的项目,基于AI识别,制作儿童手绘图舞蹈图

只需几分钟,就能自动生成儿童手绘人物或类人角色(即具有双臂、两条腿等的角色)的动画,而且生成的动画还能做到栩栩如生。

不仅可以跳舞,还能打跆拳道、空中飞踢,模拟人的动作。

项目地址:

https://github.com/facebookresearch/AnimatedDrawings

不方便下载的小伙伴,可以直接去文末,已经帮你打包好了。

/ 01 /

项目介绍

这个项目目前在macOS和Ubuntu系统上测试过,但Windows系统可能会出问题。

大致就是通过一下几个流程进行实现的。

  • 通过物体检测识别人形

  • 使用角色mask从场景中提升人形

  • 通过「装配」为动画做准备

  • 三维运动捕捉制作2D人物动画

接下来看看如何去部署。

/ 02 /

项目部署-Python

首先需要安装Anaconda(版本4.11.0),方便创建Python环境。

Anaconda的安装方法,大家可以自行百度,还是比较容易的。

安装好以后,创建虚拟环境,下载项目,安装所需的依赖。



# 创建虚拟环境  
conda create --name animated\_drawings python=3.8.13  
  
# 激活环境  
conda activate animated\_drawings  
  
# 下载项目  
git clone https://github.com/facebookresearch/AnimatedDrawings.git  
  
# 打开目录文件  
cd AnimatedDrawings  
  
# 安装依赖  
pip install -e .  



如果没有安装git,无法下载项目,可以直接使用文末提供的打包文件。

/ 03 /

项目部署-运行

1. 快速开始

现在一切都已设置好,让我们为绘图制作动画吧!

在终端使用如下代码。



(animated\_drawings) AnimatedDrawings % python  
  
# 在Python终端里运行如下代码  
from animated\_drawings import render  
render.start('./examples/config/mvc/interactive\_window\_example.yaml')  



我们看一下这个yaml配置文件的内容。

包含了以下文件。

character_cfg——目标文件

motion_cfg——动作文件

retarget_cfg——识别目标文件

使用空格键暂停/取消暂停场景,箭头键可以控制前后移动,q键关闭屏幕。

原图是这样的。

是不是感觉非常有趣,将小朋友的杰作,变成一个个活蹦乱跳的目标。

如果你想修改角色、动作、场景的话,便可以按照上面的说明,替换interactive_window_example.yaml文件中的内容来实现。

**2. 导出MP4视频
**

如果你是想将动画保存为视频文件而不是直接在窗口中查看。

可以在Python解释器中使用如下代码。



from animated\_drawings import render  
  
# 导出MP4视频  
render.start('./examples/config/mvc/export\_mp4\_example.yaml')  



配置文件内容,相比上面的文件,多了几个参数。

结果如下。

3. 导出透明gif

也许你想要是透明的gif文件而不是mp4文件。

可以在Python解释器中复制运行如下代码。



from animated\_drawings import render  
  
# 导出GIF文件  
render.start('./examples/config/mvc/export\_gif\_example.yaml')  



同样看一下配置文件内容,和导出mp4的设置差不太多。

4. 无头渲染

如果你想无头生成视频(例如在通过 ssh 访问的远程服务器上),可以在配置文件中添加如下代码。



view:  
    USE\_MESA: True  



5. 绘制你自己的画

说了这么多示例,大家一定很想知道,如何把自己画的图,也给动起来。

下面就给大家介绍如何实现。

对于不同的目标我们需要生成目标文件,恰好作者也提供了便捷的生成方式。

作者训练了一个绘制的人形图形检测器和姿势估计器,并提供了脚本以根据模型预测自动生成注释文件。

至于动作文件和目标识别文件可以先用作者提供的。

首先需要运行TorchServe Docker容器,使得能够快速将提供的图像输送给我们的机器学习模型并得到预测结果

对于Docker大家可以自行去安装,使用到如下命令进行环境搭建。



(animated\_drawings) AnimatedDrawings % cd torchserve  
  
# 创建镜像  
(animated\_drawings) torchserve % docker build -t docker\_torchserve .  
  
# 运行容器  
(animated\_drawings) torchserve % docker run -d --name docker\_torchserve -p 8080:8080 -p 8081:8081 docker\_torchserve  



等待约10秒后,通过ping服务器来确保Docker和TorchServe正常工作。



(animated\_drawings) torchserve % curl http://localhost:8080/ping  
  
# should return:  
# {  
#   "status": "Healthy"  
# }  



服务搭建好以后,可以通过如下命令,使得图像生成动画。



(animated\_drawings) torchserve % cd ../examples  
(animated\_drawings) examples % python image\_to\_animation.py drawings/garlic.png garlic\_out


原图是这样子的,委托一位朋友画的,在绘制过程中还发现了不少问题。

来看看我们绘制的结果吧,开合跳,哈哈哈。

发现必需要用空白的纸绘图,否则目标分割会出问题。

而且绘图要保证一整个目标都是闭合的(其实着上了颜色就差不多),要不然容易报错,而且有空白。

比如上图的手部和脚部,颜色就不太一样,就是因为轮廓没有闭合。

6. 其它操作

此外还有修复错误的预测、向场景添加多个角色、添加背景图片、使用具有不同骨架的BVH文件、自定义BVH文件(动作文件)、添加额外的角色骨架等操作。

/ 04 /

总结

以上操作,就能通过AI实现儿童绘画跳舞。

感兴趣的小伙伴们,可以自行去尝试,给小朋友提供快乐。



🎁福利🎁 全网最全《Python学习资料》免费赠送🆓!

最近火热ChatGPT 等人工智能应用对 Python 编程语言产生了积极的影响,它推动了 Python 的普及和发展,在文本处理和 NLP 领域提升了 Python 的地位,促进了 Python 生态系统的成长

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python学习路线

python学习路线图1
在这里插入图片描述

二、Python基础学习
1. 开发工具

2. 学习笔记

在这里插入图片描述

3. 学习视频

在这里插入图片描述

三、Python小白必备手册

图片

四、数据分析全套资源

在这里插入图片描述

五、Python面试集锦
1. 面试资料

在这里插入图片描述

在这里插入图片描述

2. 简历模板

在这里插入图片描述

因篇幅有限,仅展示部分资料,添加上方即可获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值