几分钟让小孩的人物涂鸦「动起来」,metaai创建了一个奇妙的火柴人世界

Charmve Charmve     2023-03-02     210

关键词:

点击上方“迈微AI研习社”,选择“星标★”公众号

重磅干货,第一时间送达

Meta AI 让儿童手绘「活」了起来。

你有没有想过将一张儿童绘画制作成动画?就如下图,儿童能够绘制出独特和富有创造力的人物和动物:长着双脚的星星、腿超级长的鸟……

父母和老师可以很容易地理解孩子绘画想要表达什么,但 AI 很难完成这项任务,因为儿童绘画通常以抽象、奇特的方式构建,就以儿童绘画中的「人」来说,绘画中的「人」有许多不同的形式、颜色、大小和比例,在身体对称性、形态和视角方面几乎没有相似之处。对 AI 来说,识别儿童绘画还存在一定的困难。

目前,出现了许多 AI 工具和技术来处理逼真的绘图,但儿童绘画增加了一定程度的多样性和不可预测性,这使得识别所描绘的内容变得更加复杂。

许多 AI 研究人员正在试图克服这一挑战,以便 AI 系统能够更好地识别儿童创作的各种人物绘画。

近日,Meta 宣布首创了一种 AI 系统,该系统可以在没有任何人工指导的情况下,高成功率的自动为儿童手绘人物和类人角色(即有两条胳膊、两条腿、一个头等的角色)制作动画,几分钟就可以实现从一张静态图到动画的转变。

例如,儿童绘制的小猫咪和小蜜蜂,上传到 Meta AI,你就会看到绘画变成会跳舞的角色,动作非常逼真。

试玩地址:https://sketch.metademolab.com/

通过将绘画上传到 Meta 原型系统,用户就可以体验绘画变成会跳跃的角色。此外,用户还可以下载动画与朋友家人分享。如果用户愿意,他们也可以提交这些绘画以帮助改进 AI 模型。

Meta 通过四个步骤来完成从绘画到动画的转变:目标检测识别人形;使用角色 mask 从场景中提升人形;通过「rigging」为动画做准备;使用 3D 动作捕捉制作 3D 人形动画。

目标检测识别人形图

第一步是将绘画中的人物与背景以及绘画中的其他类型的角色区分开来。使用现有的目标检测方法在儿童绘画上识别效果较好,但分割掩码不够准确,无法用于动画。为了解决这个问题,Meta 改为使用从目标检测器获得的边界框(bounding boxes),并应用一系列形态学操作和图像处理步骤来获得掩码。

Meta AI 采用基于卷积神经网络的目标检测模型 Mask R-CNN 来提取儿童绘画中的人物。虽然 Mask R-CNN 是在最大的分割数据集上进行了预训练,但该数据集是由真实世界物体照片组成,而不是绘画。为了让模型能够处理绘图,需要对模型进行微调,Meta AI 使用 ResNet-50+FPN 进行了微调,以预测单个类别「人形图」。  Meta AI 在大约 1,000 幅绘画上微调了模型。

微调后,模型很好地检测到了测试数据集中的人形图。但是也有失败的案例,如下图可分为四类:检测到的人形图没有包含整个图像(例如图中尾巴没有包含);没有把人形图和背景分开;没有把几个凑在一起的人形图分开;错误地识别非人类人物(例如树)。

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

从画作中识别和提取人物后,生成动画的下一步是将其与场景的其他部分和背景分离,该过程被称为 masking。mask 必须准确映射人物的轮廓,因为它将被用于创建网格,然后变形以生成动画。一切妥当后,mask 将包含角色的所有组件,而消除任何背景内容。

尽管 Mask R-CNN 可以输出 mask,但 Meta AI 发现它们并不适合动画。当身体部位的外观变化很大时,预测的 mask 通常无法捕捉到整个人物。如下图下行图例所示,一个大的黄色三角形代表身体,一个铅笔笔画代表手臂,使用 Mask R-CNN 预测 mask 时,通常会漏掉连接双手的铅笔笔画部分。

基于此,Meta AI 开发了一种基于经典图像处理的方法,该方法对人物变化具有更强的稳健性。基于这种方法,Meta AI 使用预测到的人形边界框来裁剪图像。然后,使用自适应阈值和形态学 closing/dialating 操作,从边界框边缘填充,并假设 mask 是未被填充的最大多边形。

Mask R-CNN 与基于经典图像处理方法的效果比较。

然而,这种方法虽然对于提取适合动画的准确 mask 来说简单有效,但当背景杂乱、人物靠得太近或者纸张页面上有褶皱撕裂或阴影时,也有可能会失败。

通过「rigging」为动画做准备

儿童会画出千奇百怪的身体形状,远远超出了具有完整头部、手臂、腿和躯干的传统人形概念。一些儿童画出来的火柴人没有躯干,只有手臂和腿直接与头部相连。另一些儿童画下的人形更诡异,腿从头部延伸出来,手臂从大腿眼神出来。

因此,Meta AI 需要找到一种能够出来身形变化的 rigging 方法。

他们选择使用了人体姿态检测模型 AlphaPose,用来识别人画中作为臀部、肩膀、肘部、膝盖、手腕和脚踝的关键点。该模型是在真人图像上训练的,因此在将它调整以检测儿童画作中人形姿势之前,Meta AI 必须重新训练以处理儿童画作中存在的变化(variation)类型。

具体地,Meta AI 通过内部收集和注释儿童人形画面的小数据集实现了上述目标。然后,使用这些初始数据集上训练的姿态检测器创建了一个内部工具,使得父母可以上传并对他们孩子的画作进行动画处理。随着更多数据的加入,Meta AI 迭代地对模型进行再训练,直到达到较高的准确度。

使用 3D 动作捕捉制作 3D 人形动画

有了蒙版和联合预测,就有了制作动画所需要的一切。Meta AI 首先使用提取的蒙版生成网格,并使用原始画作进行纹理化处理。利用预测到的关节位置,他们为角色创建骨骼。之后,通过旋转骨骼并使用新的关节位置使网格变形,将角色移植到各种姿态中。通过将角色移植到一系列连续的姿态中,然后就可以创建动画了。

儿童作画时很常见的一种情况是从他们最容易辨认的角度来画身体部位,比如倾向于从侧面画腿和脚,从正面画头部和躯干。Meta AI 在动作重定位步骤中利用到了这一现象。对于下半身和生半身,他们会自动确定是从正面还是侧面来对动作进行识别。

具体地,他们将动作映射到单个 2D 平面并使用它来驱动角色,并使用 Mechanical Turk 运行的感知用户研究来对这种动作重定位的结果进行验证。分段检测流程如下图所示:

Meta AI 表示,将扭曲视角考虑在内是有帮助的,因为很多类型的动作并不会完成落在单个投影平面上。比如跳绳时,手臂和手腕主要在额平面内运动,弯曲的腿则倾向于在矢状平面内运动。因此,Meta AI 并没有为动作捕捉姿态确定单个动作平台,而是分别确定上半身和下半身的投影平面。

与此同时,有了 AR 眼睛,画作中的故事可以在现实世界中栩栩如生,画中的角色更可以与画出它的儿童一起跳舞或说话。

原文链接:https://ai.facebook.com/blog/using-ai-to-bring-childrens-drawings-to-life/

© THE END 

投稿或寻求报道微信:MaiweiE_com

更多细节可参考论文原文,更多精彩内容请关注迈微AI研习社,每天晚上七点不见不散!

GitHub中文开源项目《计算机视觉实战演练:算法与应用》,“免费”“全面“”前沿”,以实战为主,编写详细的文档、可在线运行的notebook和源代码。

  • 项目地址 https://github.com/Charmve/computer-vision-in-action

  • 项目主页 https://charmve.github.io/L0CV-web/

推荐阅读

(更多“抠图”最新成果)

迈微AI研习社

微信号: MaiweiE_com

GitHub: @Charmve

CSDN、知乎: @Charmve

投稿: yidazhang1@gmail.com

主页: github.com/Charmve

如果觉得有用,就请点赞、转发吧!

Cocos2d iPhone游戏触屏让人物动起来

】Cocos2diPhone游戏触屏让人物动起来【英文标题】:Cocos2diPhoneGametouchscreentomakeacharactermove【发布时间】:2011-06-0610:47:11【问题描述】:我使用cocos2d编写了一些游戏,但它们都是由加速度计控制的,并且只使用简单的触摸事件。我... 查看详情

unity2d横版游戏教程-1让人物动起来

...,MainCharacter存放的就是我们的角色,这里有四个人物,我们用第一个人物就行,Other是一些调色用的东西,Terrain就是我们的地形相关的素材,Traps里面有很多的陷阱,用来增加游戏性。素材包就介绍到... 查看详情

unity中人物为什么会自己动

...unity官网,因为脚本函数导致的运行变化,因此unity中的人物会自己动。Unity3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。 查看详情

产品经理:你能不能让词云动起来?(代码片段)

...看,就是一个3840*1840的大屏然后几个列表几个图例看起来也没有多复杂。唰!很快啊加了一会班把整个页面调整好了信心十足拿给产品经理看。产品经理皱了皱眉头:你这词云不会动啊??🌤️之前的效... 查看详情

有没有一些类似让网页上的图片动起来的东西?

...的是闪图吗?可以用可牛图像,美图秀秀,不仅让图片动起来,还可以装饰和美容呢! 查看详情

安卓怎么让壁纸动起来

参考技术A问题一:什么软件可以让安卓手机壁纸动起来啊?...直接设置动态壁场就可以啦..就是在屏幕主界面设置的。长按一下选择动态壁纸就可以了。不过相对耗电量会高点点问题二:怎样才能使手机壁纸动起来下载动态图片... 查看详情

unity基于响应式编程(reactiveprogramming)入门

...来③—UGUIDoTween&UnityNative2D实现时光煮雨Unity3D实现2D人物动画①UGUI&Native2D序列帧动画时光煮雨Unity3D实现2D人物动画②Unity2D动画系统&a 查看详情

如何制作动态显示图表,让图表随数据动起来

...果使用图表后再为它设置一下序列动画,让数据演示也动起来,则通常能达到吸引听众注意力,强化演示说服力的良好效果。ppt动态显示数据图表的方法技巧  第一步:创建PowerPoint图表  在PowerPoint中,新建一张幻灯片,在... 查看详情

让网页的title动起来

 <!DOCTYPEhtml><html><head><metacharset="utf-8"/><title>Hello,World!</title></head><body><scripttype="text/javascript">functionscroll(){varti 查看详情

css+js可以让图片动起来吗

...p;$('img').zoom = 1(), 5);可知js即可让图片动起来(刚才的实例为放大缩小)参考技术A可以,这个网上有很多例子 参考技术BCSS就可以让图片动起来,不过具体看你的需求,要什么样子 参考技术C不可以 参考技术D肯... 查看详情

时光煮雨unity3d序列目标点的移动①

...来③—UGUIDoTween&UnityNative2D实现时光煮雨Unity3D实现2D人物动画①UGUI&Native2D序列帧动画时光煮雨Unity3D实现2D人物动画②Unity2D动画系统&a 查看详情

如何让照片中的人物笑起来?hmscore视频编辑服务一键微笑功能,让人物笑容更自然(代码片段)

最近一键“露齿笑”席卷全网,无论是短视频用户还是社交App用户都在使用这项黑科技。当三两好友聚会拍集体照留念时,为了处理个别人的表情“瑕疵”,让大家都尽量保持微笑,总要进行表情微调,但如... 查看详情

如何只用5分钟完成数据列表创建页面

前言我们当然希望能够更快的完成我们的工作,这样我们才能有更多的时间做其他的事情,比如说测试、学习、放松。背景软件一般也就这么几个方面的工作要做,增、删、改、查。如果归结到页面上来说,那么无非也就这么几... 查看详情

three.js案例从0到1创建组合对象并让它们动起来(代码片段)

1.创建对象,创建材质,并建立几何形状//首先定义一个大海对象Sea=function()//创建一个圆柱几何体//参数为:顶面半径,底面半径,高度,半径分段,高度分段vargeom=newTHREE.CylinderGeometry(600,600,800,40,... 查看详情

几小时和几分钟的 jQuery 输入掩码

】几小时和几分钟的jQuery输入掩码【英文标题】:jQueryinputmaskforhoursandminutes【发布时间】:2014-07-1414:01:41【问题描述】:我正在使用RobinHerbots出色的jQuery输入掩码。如何创建掩码以允许用户以99hrs99mins格式输入小时和分钟。我希... 查看详情

怎么让电脑上的gif图像在图标显示的时候就动起来

就是不打开能看到图,但GIF动不起来,我是VISTA??我想让略缩图动起来用图形管理软件,ACDsee之类的。对于图片多的电脑用些这种软件去管理图片可以方便很多。参考技术A不可以的 参考技术B你在电脑里看到的图片只是缩微图,... 查看详情

js+css让背景图片动起来

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>css+js让背景图片动起来</title><style>*{margin:0;padding:0;}#section{width:800px;height:300px;margin:0au 查看详情

d3.js入门系列---6如何让图表动起来

 [5.1]节中制作了一个比较完善的图表,但它是静态的,想做出它的动态效果吗?在D3中只需要短短的几行代码即可。  这一节将涉及4个函数的使用。1.transition()  启动转变效果只需要添加这个即可。把它加到两... 查看详情