关于算法:人脸识别对动画无效迪士尼打造动画专用人脸识别库

1次阅读

共计 2218 个字符,预计需要花费 6 分钟才能阅读完成。

内容导读

人脸识别也遇到坑了,辨认得了三次元,却对二次元有效。迪士尼的技术团队,正在开发这一算法,以帮忙动画制作者进行前期搜寻。团队利用 PyTorch,效率失去很大的进步。

本文由公众号 PyTorch 开发者社区 编译整顿公布

说到动画,不得不提起自 1923 年就成立的商业帝国迪士尼,以动画起家的迪士尼,至今引领着寰球动画电影的倒退。

每一部动画电影的背地,都凝固了数百人的心血与汗水。自第一部电脑 3D 动画《玩具总动员》的上映,迪士尼就开启了数字化动画创作的征程。随着 CGI、AI 技术的倒退,迪士尼动画电影的制作、存档等形式也产生了极大的变动。
火遍寰球的《疯狂动物城》历时五年制作实现

目前,迪士尼也排汇了一大批计算机科学家,他们正在用最前沿的技术,扭转内容创作的形式,加重电影幕后制作者的累赘。

百年电影巨头,如何进行数字化内容治理

据理解,在华特迪士尼动画工作室中,大概有来自 25 个不同国家的 800 多名员工,包含艺术家、导演、编剧、制片人以及技术团队。

制作一部电影,须要经验从灵感产生,到故事纲要撰写,再到剧本拟定,美术设计,人物设计,配音,动画成果,特效制作,剪辑,前期等诸多简单流程。

截至 2021 年 3 月,仅业余制作动画电影的华特迪士尼动画工作室已制作并上映了 59 部长篇动画,这些电影中的动画形象加起来就有成千盈百个。

历史动画角色的相干素材数据,会在续集、彩蛋、参考设计时被高频应用

动画师在进行续集制作、或想参考某一角色时,须要在海量的内容档案库中,寻找特定角色、场景或物体。为此,他们往往须要破费数小时来观看视频,纯靠肉眼从中筛选本人须要的片段。

为了解决这个问题,迪士尼从 2016 年起,就开始了一项叫做 「Content Genome」 的 AI 我的项目,旨在创立迪士尼数字内容档案,帮忙动画制作者疾速、精确地辨认动画中的面部(无论是人物或是什么物体)。

训练动画专用人脸识别算法

数字化内容库的第一步,是将过往作品中的内容进行检测与标记,不便制作者以及用户搜寻。

人脸识别技术曾经比拟成熟,然而,同一套办法,是否用于动画中的面部辨认呢?

Content Genome 技术团队进行试验之后,发现只在某些状况下可行。

他们选取《阿瓦勒公主埃琳娜》和《小狮王守护队》两部动画电影作品,手动正文了一些样本,用正方形标出数百帧影片中的脸孔。通过该手动正文数据集,团队验证了基于 HOG + SVM pipeline 的人脸识别技术,在动画脸孔(尤其是类人脸和动物脸孔)中的体现不佳。

手动标注出动画形象的面部

团队剖析后确认,像 HOG + SVM 这样的办法对于色彩,亮度或纹理变动具备鲁棒性,但所应用的模型只能匹配具备人类比例的动画角色(即两只眼睛,一只鼻子和一张嘴)。

此外,因为动画内容的背景通常具备平坦的区域和很少的细节,所以,Faster-RCNN 模型会谬误地把简略背景下怀才不遇的所有事物,都认作是动画脸孔。
《汽车总动员》中,两位「赛车」配角较为形象的面部,就无奈用传统的人脸识别技术进行检测与辨认

因而,团队认为他们须要一种可能学习更形象的人脸概念的技术。

团队抉择用 PyTorch 训练模型。团队介绍道,通过 PyTorch,他们能够拜访最先进的预训练模型,满足其训练需要,并使归档过程更高效。

训练过程中,团队发现,他们的数据集中,正样本是足够的,却没有短缺的负样本来训练模型。他们决定应用不蕴含动画脸孔、但具备动画特色的其余图像,来减少初始数据集。

在技术上为了做到这一点,他们扩大了 Torchvision 的 Faster-RCNN 实现,以容许在训练过程中加载负样本而无需正文。

这也是团队在 Torchvision 外围开发人员的疏导下,为 Torchvision 0.6 做出的一项新性能。在数据集中增加负样本示例,能够在推理时大大减少误报,从而失去杰出的后果。

用 PyTorch 解决视频,效率晋升 10 倍

实现动画形象的面部辨认之后,团队的下一个指标是放慢视频剖析流程,而利用 PyTorch 可能无效并行化并减速其余工作。

团队介绍道,读取和解码视频也很耗时,因而团队应用自定义的 PyTorch IterableDataset,与 PyTorch 的 DataLoader 联合应用,容许应用并行 CPU 读取视频的不同局部。
视频被提取的 I-frames,被宰割成不同的块(chunks),每个 CPU worker 读取不同的块

这样的读取视频形式曾经十分快了,不过团队还尝试只通过一次读取就实现所有计算。于是,他们在 PyTorch 中执行了大部分 pipeline,并思考了 GPU 的执行。每一帧只发送给 GPU 一次,而后将所有算法利用到每一个 batch 上,将 CPU 和 GPU 之间的通信缩小到最小。

团队还应用 PyTorch 来实现更传统的算法,如镜头检测器,它不应用神经网络,次要执行色彩空间变动、直方图和奇怪值合成 (SVD) 等操作。PyTorch 使得团队能以最小的老本将计算转移到 GPU,并轻松回收多个算法之间共享的两头后果。

通过应用 PyTorch,团队将 CPU 局部转移到 GPU 上,并应用 DataLoader 减速视频浏览,充分利用硬件,最终将解决工夫缩短了 10 倍。

团队的开发者总结道,PyTorch 的外围组件,如 IterableDataset,DataLoader 和 Torchvision,都让团队得以在生产环境中进步数据加载和算法效率,从推理到模型训练资源到残缺的 pipeline 优化工具集,团队都越来越多地抉择应用 PyTorch。

正文完
 0