果然AIGC还是对动漫制作下手了,不过是从数据集AnimeRun开始

news2024/11/25 0:36:17

原文链接:https://www.techbeat.net/article-info?id=4327
作者:seven_

最近AIGC领域的新工作几乎呈现一种井喷式的发展,借助AI模型天马行空的想象力,研究者们开始在各种图像和视频内容领域发力,本文介绍一篇发表在NeurIPS 2022 Dataset and Benchmark Track上的新工作。该工作并非是像近期提出的扩散模型去生成一些图像和视频,而是瞄准了计算机动漫创作方向,作者指出现有的2D动画片数据集存在画面构成简单且角色动作单调的问题,这使得它们不足以模拟真实的动画。
在这里插入图片描述

论文链接:
https://arxiv.org/abs/2211.05709
项目主页:
https://lisiyao21.github.io/projects/AnimeRun
代码链接:
https://github.com/lisiyao21/AnimeRun

为了解决这一问题,作者团队提出了一种新的大规模2D视觉一致性动画数据集AnimeRun,将开源的3D电影转换为2D风格的完整画面,同时保留有原始画面中移动的背景和多个主体角色之间的交互动作。为了提高数据集质量,作者遵循视觉一致性,为每一帧提供了灰度轮廓和彩色图片,同时提供了像素级别和区域级别的ground-truth,其中像素级别标签为光流图像,区域级别标签为图像分割图,如下图所示:
Alt
Alt
随后作者进行了一系列的数据集分析,分析结果表明,与现有的数据集相比,AnimeRun不仅在图像构成方面更加接近真实的动画数据,而且包含有更丰富、更复杂的角色运动模式。在该数据集的基础上,作者进一步提出了一个较为完善的Benchmark,并与目前已有的光流和片段匹配方法进行了实验对比,丰富了整体的实验框架。

一、引言

本文的核心灵感来源于计算机视觉任务中天然存在的视觉一致性(Visual Correspondence),尤其对于二维动画来说,找到相邻帧的精确视觉对应关系对模型训练具有很大的帮助。例如我们可以通过区域轮廓的一致关系将参考帧中的颜色分布传播到目标帧中实现视频自动上色。也可以使用像素一致关系对图像进行细粒度编辑进而得到帧插值模型。这些视觉一致性范式在自然场景中的数据具有非常好的效果,但其仍无法很好的适用于2D动画数据上。本文作者认为,这是因为自然图像序列中包含具有不同阴影和模糊的复杂纹理,而动画数据通常由具有明确轮廓线的平面彩色块构成,二者有本质上的域差距。因此本文针对2D动画提出了一个大规模数据集来缓解这一问题。
在这里插入图片描述
目前制作收集动画数据集的常用方法是使用计算机图形软件(例如Blender)将3D模型渲染成2D风格,这种方法可以快速合成大量的数据,而不需要为每个场景进行专门的调整。但是由于渲染模型固定,其不可避免地导致构图单调,因此在模拟真实的动画方面存在不足。鉴于这些缺陷,作者在制作AnimeRun数据集时使用了上图所示的流程,作者选用的原数据是具有工业级3D电影的完整场景,首先对其生成彩色图像和轮廓图,随后对视频序列进行密集光流估计和图像分割来得到像素级别和区域级别的标注图。由于选用的原数据包含丰富的背景信息,例如室内、雪山、矿山和森林,还含有复杂的交互动作,直接将其转换为2D风格会带来很多误差。为了解决这一问题,作者在保留电影中的主要角色和动作的前提下,系统地对每个电影剪辑进行一系列调整,以提高与2D动画风格的兼容性,并确保对应标签的准确性。
在这里插入图片描述
与现有数据集相比,AnimeRun具有同步背景变化的全场景动画,同时提供多个对象/角色交互和遮挡示例,而且包含有更复杂的角色运动。上图展示了AnimeRun与其他数据集的对比。作者总结本文具有以下三个方面的贡献:

  1. 作者通过将开源的3D动漫电影转换为2D风格,制作了该领域第一个全场景视觉一致性动画数据集

  2. 本文分别在像素级和区域级层面上提供了细粒度的对应标签。

  3. 作者在所提AnimeRun数据集的基础上构建了该领域第一个2D动画视觉一致性实验基准

二、AnimeRun数据集

AnimeRun的构建涉及多个方面,其中包含作者团队对于2D动画风格的定义和实际的渲染设置,以及对于视觉一致性标签的生成机制。除此之外,作者还在统计层面对AnimeRun与其他动画数据集进行了全方位多层次的数据分析和对比,下面我们将详细介绍其中的技术细节。

2.1 2D动画风格和渲染设置

对于色彩、线条艺术和纹理方面,作者观察到2D动画的一个典型的特点是,其中所有的主体都会被明确的勾勒出来,而轮廓线的闭合通常被着色为相同的颜色。根据这一观察,作者使用Blender的Workbench引擎将3D模型渲染成扁平化的颜色段,并通过启用轮廓和自由风格选项来合成轮廓线,如下图所示。
在这里插入图片描述
为了给单调的灰度线条增加艺术感,作者通过将所有材料设置为白色来渲染画面,并应用Image的伽玛校正来增强对比度。当电影涉及到头发、毛衣或喷雾等材料时,作者利用粒子效应来模拟大量微小而密集的实例,以获得更真实的外观。除了粒子效果之外,不可见的环境资源(例如雾块或发光板)通常被用来模拟自然的灯光,这些资源被渲染为实体对象,但是由于其在2D风格的引擎下会遮挡住主要人物,因此在最终的数据中这一部分会被移除。

作者还发现在渲染进程中启用景深虚化效果(DoF,depth of field)会导致物体和背景之间的边界模糊,如下图所示,因此在最终的渲染操作中取消了这一效果。
在这里插入图片描述
由于原有的动漫电影中都包含了丰富的专业的摄像机运动操作,包括平移、旋转和主体追踪。然而,在计算运动矢量时,Blender的默认设置会忽略相邻帧之间的焦距变化,从而导致光流估计错误。为了避免得到不准确的标签,作者将这种运动替换为沿固定焦距方向的位置移动

2.2 视觉一致性标签生成

对于视觉一致性标签生成,主要分为光流估计和图像区域分割两方面。对于前者,作者为了达到抗锯齿效果来获得清晰的运动边界,先是关闭了场景中所有的照明对象,例如灯和人物眼睛中的光点,以避免这些对象在合成光流中消失。在渲染完成后,还要对估计的光流执行质量检查,以检查帧与帧之间是否对齐。除此之外,作者还对光流估计过程进行了额外的遮挡建模。具体而言,给定一对相邻帧 I s I_{s} Is I t I_{t} It ,其具有正向流 f s → t f_{s \rightarrow t} fst 和后向流 f t → s f_{t \rightarrow s} fts 。对于点 x x x ,如果 ∥ f s → t ( x ) + w f s → t ( f t → s ) ( x ) ∥ > 0.5 \left\|f_{s \rightarrow t}(x)+w_{f_{s \rightarrow t}}\left(f_{t \rightarrow s}\right)(x)\right\|>0.5 fst(x)+wfst(fts)(x)>0.5 ,其中 w f s → t w_{f_{s \rightarrow t}} wfst 表示后向扭曲,那么将 x x x 标记为被遮挡。遮挡mask会被进一步用于光流基准中的区域标记生成和评估

对于图像区域分割,作者首先应用trapped-ball填充算法[1],将所有帧沿轮廓线划分为若干段,然后从生成的光流中推导出区域性标签。具体来说,对于原始帧和目标帧中的 { S i s } \left\{S_{i}^{s}\right\} {Sis} { S t j } \left\{S_{t}^{j}\right\} {Stj} 段,如果存在像素 x ∈ S i s  and  x + f s → t ( x ) ∈ S j t x \in S_{i}^{s} \text { and } x+f_{s \rightarrow t}(x) \in S_{j}^{t} xSis and x+fst(x)Sjt ,就将该像素进行区域标记 m s → t [ i ] = j m_{s \rightarrow t}[i]=j mst[i]=j此外作者还考虑到一个物体在原始帧中被分割成一块,但在目标帧中由于遮挡而变成多块的特殊情况。解决时首先记录所有符合上述条件的片段 { S t j } \left\{S_{t}^{j}\right\} {Stj} ,并根据它们在原视频中区域的百分比对其优先级进行排序,其中优先级最高的片段被标记为 { S i s } \left\{S_{i}^{s}\right\} {Sis} 的目标,以此来减少图像区域标签的误差。

2.3 AnimeRun与其他数据集的统计比较

为了更全面的评估AnimeRun的制作合理性和技术可行性,作者选取了另外两个动画数据集分别在图像层面、光流层面和区域性等多个层面与AnimeRun数据集进行了统计对比。另外两个数据集分别是ATD-12K[2]和CreativeFlow+[3],前者为真实动漫数据集,后者为生成数据集,对比结果如下图所示。
在这里插入图片描述
上图(a)展示了不同数据集的色彩分布情况,其中CreativeFlow+(绿色曲线)在高亮度中显示出较大的比例,这与原生动画产生了差异,相比之下,AnimeRun的颜色增强数据与ATD-12K的分布更接近。在图像导数方面,作者计算了水平一阶差,并在图(b)中展示了对数直方图。可以看到AnimeRun的对数分布相比其他数据集的求和绝对差值(SAD)更小。在评估像素级标签时,作者计算了每个像素与真实光流的位移幅度,并计算出对数直方图,如图(c)所示。
在这里插入图片描述
此外对于数据集区域性的统计也同样重要,因为颜色片段区域可以看作是2D动画的基本组成部分,一个真实的卡通帧可以由数百个颜色片段区域组成,与现有的数据集相比,由于AnimeRun完成了对完整场景的渲染,因而其由更丰富的片段组成。如下表所示,每一帧的平均段数达到237个,更加接近真实动画数据集ATD-12K中的数量。
在这里插入图片描述

三、实验基准

在实验基准设计方面,作者将渲染得到的片段分成训练集和测试集,其中训练集包含1760帧,测试集有1059帧。为了评估的公平性,作者将一部电影的连续运动分成不同的子集,这样做可以防止算法简单地复用前几帧的运动模式来得到更高的分数。实验基准包括像素级和区域级两部分,对于像素级测试,作者使用常用的光流方法PWC-Net、RAFT、GMA和GMFlow进行评估。对于区域性测试,作者使用分段匹配方法AnT作为基线。

像素级测试的对比结果如下表所示,使用平均端点误差(EPE,average end-point error)作为评价指标。
在这里插入图片描述
在区域级测试中,作者并没有去预测每个像素的运动矢量,而是将每个片段作为一个单元,目标是为原始帧中的每个片段找到目标帧中的对应片段。因此,区域性测试可以转换为一个离散匹配问题,作者通过计算预测对应关系的平均准确率(ACC)作为评价指标,实验结果如下表所示。
在这里插入图片描述

四、总结

本文可以看作是AI动画领域一个具有里程碑意义的工作,提出并制作了目前第一个全场景的二维动画视觉一致性数据集AnimeRun,该数据集从高质量的3D电影出发,由连续的二维动画帧和像素级以及区域级的对应标签组成,其不仅包含有丰富的图像场景内容,而且涵盖了复杂多变的角色运动,可以很好的模拟真实世界中的动画。基于该数据集,作者还建立了一个基准来完善这一新领域的研究路径。作者希望能够通过AnimeRun数据集来激发出更多AI模型进行动画创作的应用。

参考

[1] Song-Hai Zhang, Tao Chen, Yi-Fei Zhang, Shi-Min Hu, and Ralph R. Martin. Vectorizing cartoon animations. IEEE TVCG, 15(4):618–629, 2009.

[2] Li Siyao, Shiyu Zhao, Weijiang Yu, Wenxiu Sun, Dimitris Metaxas, Chen Change Loy, and Ziwei Liu. Deep animation video interpolation in the wild. In CVPR, 2021.

[3] Maria Shugrina, Ziheng Liang, Amlan Kar, Jiaman Li, Angad Singh, Karan Singh, and Sanja Fidler. Creative flow+ dataset. In CVPR, 2019.

Illustration by Manypixels Gallery from IconScout

-The End-

关于我“门”

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门-TechBeat技术社区以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MybatisPlus 处理保存实体对象时,对于枚举类型的数据库存储问题

MybatisPlus 处理保存实体对象时,对于枚举类型的数据库存储问题1. 前言1.1 先看问题代码1.2 存在的问题2. 解决前言问题2.1 自定义枚举2.2 附源码:3. 参考4. 推荐 Mybatis、MybatisPlus 其他相关问题的文章1. 前言 1.1 先看问题代码 如下:枚…

告别人工叫号!门诊排队叫号系统,这样配置,性价比高

很多人认为,那些大医院的叫号系统,确实既高效便捷、又能展现门诊综合服务实力。 但安装配置较为复杂,内部软件与硬件对接存在难度,价格也相对昂贵,对部分医院来讲,预算稍有不足,怎么办&#xff…

serverless-OpenWhisk安装

1.安装 默认我们已经有了一个k8s集群,采用helm方式安装。以下操作均在 Master 节点执行。 helm要求Helm v3.2.0或以上版本。 多节点worker打标签 如果要将OpenWhisk部署到具有多个工作节点的群集,我们建议使用节点关联将用于OpenWhisk控制平面的计算节点…

【论文阅读笔记】Pyramid Real Image Denoising Network

论文简介 本文是19年的论文,网络名为PRIDNet。代码地址为https://github.com/491506870/PRIDNet。在1080ti上,PRIDNet处理512x512图像需要大约50ms; 尽管深度卷积神经网络在特定噪声和去噪方面展示出非凡能力,但对于真实世界的噪声…

最好的天线基础知识!超实用 随时查询

天线作为无线电的发射和接收设备是影响信号强度和质量的重要设备,其在移动通信领域的重要性非常关键。通过对天线选型,天线安装,天线调整从而保障基站覆盖区域的信号强度与质量。对其的 掌握程度是网规与网优工程师的技能基本要求之一。下文重点说明天线要掌握哪些方面及其原理…

jenkins配置钉钉机器人推送job构建信息

文章目录一、注册钉钉,创建群聊二、创建钉钉机器人,获取webhook三、jenkins安装DingTalk插件四、jenkins系统配置—配置钉钉1、找到钉钉配置项,继续配置五、jenkins的job内配置钉钉六、构建job,并发送钉钉信息推送Q & A一、注…

[iOS]App Store Connect添加银行卡时的CNAPS代码查询

App Store Connect 协议、税务和银行业务中,给付费APP类型添加银行卡需要填写CNAPS代码CNAPS代码,其实就是联行号。 联行号又称大额行号、银联号、银行行号或CNAPS号。 银行联行号查询

JavaScript -- 06.函数知识汇总

文章目录函数1 函数介绍2 函数的创建方式2.1 函数声明2.2 函数表达式2.33 参数3.1 函数声明3.2.函数表达式3.3 箭头函数3.4 默认参数3.5 使用对象作为参数3.6 函数作为参数4 函数的返回值5 作用域5.1 函数作用域5.2 作用域链5.3 练习6 window对象7 提升7.1 变量的提升7.2 函数的…

【深度学习】详解 ViLT

目录 摘要 一、引言 二、背景 2.1 视觉和语言模型的分类法 2.2 模态交互模式 2.3 视觉嵌入方案 2.3.1 区域特征 2.3.2 网格特征 2.3.3 图像块投影 三、视觉和语言 Transformer 3.1 模型概述 3.2 预训练目标 3.2.1 图像文本匹配 3.2.2 掩码语言建模 3.2.3 全…

文件包含漏洞详解

文件包含漏洞详解1.文件包含漏洞介绍1.1.文件包含漏洞解释1.2.文件包含漏洞原理1.3.文件包含的函数1.3.1.常见的文件包含函数1.3.2.PHP函数区别:1.4.文件包含漏洞特征1.5.文件包含漏洞分类1.5.1.本地文件包含漏洞  1.5.1.1.本地文件包含漏洞案例1.5.2.远程文件包含…

echarts-wordcloud ——文字云制作企业标签——基础积累

最近看到同事在写文字云的效果,最终效果图如下: 使用的是echarts-wordcloud插件: 下面介绍一下使用步骤: 1.npm安装echarts-wordcloud——npm install echarts-wordcloud --save 安装echarts-wordcloud的前提是也要安装echart…

谷粒学院——Day09【整合阿里云视频点播】

❤ 作者主页:Java技术一点通的博客 ❀ 个人介绍:大家好,我是Java技术一点通!( ̄▽ ̄)~* 🍊 记得关注、点赞、收藏、评论⭐️⭐️⭐️ 📣 认真学习,共同进步!&am…

YOLOv5使用方法记录

YOLOv5使用方法记录 本次主要是记录使用yolov5检测图片和视频的过程 下载源码 地址为:https://github.com/ultralytics/yolov5 配置环境 有两种方法 按照requirements 通过下述命令安装源码中给出的配置环境文件 pip install -r requirements.txt选择自己需…

诠释韧性增长,知乎Q3财报里的社区优势和商业化价值

当内容平台开始做生意,往往意味着它要扮演一个大包大揽的角色:从内容的可持续性到最终变现,设计一套完整的生态系统是必需的。 但并非所有平台都对此感到棘手,或者说在某些平台,生态已经不是困难,而是优势…

linux内核源码分析 - nvme设备的初始化

驱动的加载 驱动加载实际就是module的加载,而module加载时会对整个module进行初始化,nvme驱动的module初始化函数为nvme_init(),如下: static struct pci_driver nvme_driver {.name "nvme",.id_table nvme_id_table,.probe nvme_probe,.remo…

leetcode 746. 使用最小花费爬楼梯

文章目录题目思考代码和注释总结题目 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到…

Charles抓取接口报文并修改各种参数信息调试

1.首先介绍Charles面板 图上顶部工具栏常用介绍: 1是清除按钮:点击后将清空左侧抓取的接口列表,如果接口太多,可以点击该按钮清空列表,重新发起请求,一目了然; 2.是停止按钮:点击该按…

玩转redis(一)——基础数据结构

文章目录前言安装一、String1.常用命令和操作2.应用场景3.对应业务场景举例二、Hash1.常用命令和操作2.应用场景3.对应业务场景举例优缺点三、List1.常用命令和操作2.应用场景3.对应的业务场景举例四、Set1.常用的命令和操作2.应用场景3.对应的业务场景举例五、Zset1.常用的命令…

总结:SpringBoot内嵌Tomcat原理

一、介绍 一般我们启动web服务都需要单独的去安装tomcat,而Springboot自身却直接整合了Tomcat,什么原理呢? 二、原理 SpringBoot应用只需要引入spring-boot-starter-web中这个依赖,应用程序就默认引入了tomcat依赖,其…

[附源码]SSM计算机毕业设计疫情环境下的酒店管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…