AI动画:让手绘动漫人设图动起来!项目已开源

2023-10-27 11:41:09
浏览次数:
返回列表

  AI动画:让手绘动漫人设图动起来!项目已开源:代码|论文|B站。项目有双语colab/readme。此前在推上已经获得1.3k赞,上榜7月最火的AI研究项目;欢迎大家来试玩,求点赞和星星~

  你只需要:输入任意张手绘的某个人物的图片,找一个和该人物类似的3d模型,再输入一个动作序列,就可以得到我们的生成效果(当然,后两个我们有提供示例)。在示例视频中,仅使用了四张人物图片。

  简要解释:我们将一个已绑骨的3d模型导入某个动作后,AI会并将手绘图片贴到该姿势下的3D模型上,渲染得到图片。

  首先,需要将姿势和3D模型输入到3D软件内必一体育官方app下载,并得到超密集姿势表示 Ultra-Dense Pose(UDP)。什么是超密集姿势表示?如图所示,对于UDP上的每一个点,其rgb值为,当人物处于A-pose形态时,该点对应的坐标值。

  在这种表示下,可以看到UDP人物身体各个部位的颜色,在人物摆出不同的姿势时,都是一致的,比如右手的颜色一直是蓝色。

  我们可以非常轻松地通过对mesh的转换得到UDP,你只需要记录模型在A-pose下的时候,身体上每个点的坐标,转换为RGB值记录下来固定在该位置,并让这个五颜六色的模型摆出各种姿势即可。

  暂不提供官方的转换,但是可以在GitHub上找到mikumikudance软件的UDP生成接口:MMD2UDP,仅需要输入模型和动作数据就可以得到UDP。在此感谢社区作者的付出。

  首先,让我们假设只有一张图片输入。模型将预测这张人物图片的UDP。在第一部分的介绍中,我们已经知道,右手部分的UDP一直是蓝色,因此,如果输入图像的UDP中,某个点的颜色和姿势UDP的某点相同,比如都是蓝色,那么就可以将输入图像的该点颜色直接移动到姿势图像中。对每个UDP上的点做该操作,就可以得到生成结果。如果您熟悉光流相关领域,这里的操作和光流的backward warpping是一致的。

  但是,设想图片输入只有一张,且只有正面,当我们要生成背面的人物时,模型就没有了相应的参考。为此,我们加入了更多手绘图片,设计了一种联合推理策略:

  CoNR的backbone是一个UNet,我们在此基础上做了一系列修改,以接收多头输入。每一张输入图片都有一个单独的推理路径,在UNet的中,各个路径发生信息的交流(图中的cross-view message passing)。

  具体而言,每一个路径都估计与目标姿势的光流和掩码,在每一个层推理结束后,把该路径的输入图片进行warpping操作,得到一个目标姿势下的该路径结果,再将各个路径的结果通过掩码进行加权平均,作为该层的最终输出。

  最后,每个路径共享同一个最终头,即图中的D4,在这里对所有路径的图片做最后的融合,并输出最终渲染结果。

  我们的代码已经开源,并提供了三种基本的使用方法:colab / web demo / 终端运行。访问GitHub页面,您可以看到这三种方法的文字介绍。

  CoNR是一个战线很长的工作,我们非常热爱动画和AI技术,初衷是希望可以通过CoNR降低3D内容的门槛,让更多人可以体会到笔下的孩子“动起来”的乐趣,然而人微力薄,仅仅在这方面做了一些微小的尝试。CoNR仍在迭代中,我们非常期待有更多开源社区作者可以参与该项目的后续工作;也期待有更多人可以尝试我们的demo,关注CoNR,和我们交流并提出建议。

搜索