日前,Facebook 人工智能摄像团队(AI Camera Team)正在研发各种计算机视觉技术和创新工具,帮助人们更有创意地表达自我。比如,利用实时“风格转换”技术,你可以制作出“梵高风”的照片和视频。使用实时面部追踪技术,你可以实现“一键美妆”或者“换头术”,变化成各种卡通头像。那么,你有想过“换身术“吗?Facebook 团队的 AR 全身追踪技术或许可以帮你实现。雷锋网将该团队目前取得的成果编译如下。
为了实现“换身术”,我们需要实时并准确地检测和追踪身体动作。这其实是一个非常具有挑战性的问题,因为身体姿势和动作变化会很大,识别起来并不容易。一个人可以是坐着的,走着的或是跑动着的;人们可能穿着长外套或者短裤; 有时候人的身体还会被他人或物体阻挡。这些因素都大大增加了身体追踪系统保持稳健性的难度。
我们团队最近开发了一种新的技术,可以准确地检测到身体姿势,同时将人体从背景中分割出来。目前,我们的模型还处于研究阶段,但这个模型的好处在于,它只有几兆大小,可以在智能手机上实时运行。不久之后,它还可以衍生出许多新的应用程序,比如创建“全身面具”,使用手势来控制游戏,或者对人体进行“去识别化(de-identifying)”。
MaskR-CNN2Go的架构
我们的人体检测和分割模型基于一个叫做“Mask R-CNN”的框架。这是一个简单、灵活且十分通用的对象检测和分割框架。它可以高效地检测图像中的对象,同时预测关键点的运行轨迹,并为每个对象生成一个分割掩码(segmentation mask)。Mask R-CNN 框架研究获得了 ICCV 2017 年度最佳论文奖。为了在移动设备上实时运行 Mask R-CNN 模型,Facebook 的 Camera,FAIR 和 AML 团队的研究人员和工程师共同合作,构建了一个高效而轻量的框架模型:“Mask R-CNN2Go”。
Mask R-CNN2Go 模型由五个主要组件组成:
1、主干模型包含多个卷积层,并且生成输入图像的深层特征表征。
2、候选区域生成网络(RPN)以预定的比例和纵横比(锚点)生成候选对象。OI-Align 层从每个对象的边界框中提取其特征并将它们发送到探测端。
3、探测端口包含一组卷积层,池化层和全连接层。它能预测每个候选框中的对象有多大可能是一个人体。探测头还可以改进边界框的坐标,将非极大抑制值的相邻框候选框进行分组,并为图像中的每个人生成最终的边界框。
4、利用每个人的边界框,我们使用第二个 ROI-Align 层来提取特征,这些特征来自于关键点端口和分割端口的输入。
5、关键点端口与分割端口具有相似的结构。它为身体上的每个预定关键点预测出一个掩码。并使用单一最大扫描来生成最终坐标。
一个针对移动设备而优化的轻量级模型
与现代 GPU 服务器不同,手机的算力和存储空间都十分有限。Mask R-CNN 最初的模型是基于 ResNet的,它太大而且太慢,无法在手机上运行。为了解决这个问题,我们为移动设备开发了一个非常优化而高效的模型架构。
我们使用了几种方法来减小模型的大小。首先,我们优化了卷积层的数量和每层的宽度,这也是我们在处理中最耗时的部分。为了确保拥有足够大的感受野,我们使用了包括 1×1,3×3 和 5×5 的内核大小的组合。另外,我们还使用权重剪枝算法来缩减模型。我们的最终模型只有几兆字节,但是非常精准。
模块化设计提高了计算速度
为了能够实时运行深度学习算法,我们使用并优化了我们的核心框架: 载有 NNPack 的 Caffe2,SNPE和 Metal。通过使用移动 CPU 和包含 NNPack,SNPE 和 Metal 在内的 GPU 库,我们能够显着提高移动计算的速度。并且,所有这些都是通过模块化设计完成的,并不需要改变模型的一般定义。因此,我们既可以获得较小的模型,又可以获得较快的运行时间,同时避免了潜在的不兼容问题。
Facebook AI 研发团队(FAIR)最近发布了 Mask R-CNN 研究平台(Detectron)。我们开源了 Caffe2 运算符(GenerateProposalsOp,BBoxTransformOp,BoxWithNMSLimit 以及 RoIAlignOp)并提供了必要的模型转换代码,供研究社区使用。
下一步是什么
开发移动设备的计算机视觉模型是一项艰巨的任务。移动设备模型必须小巧,快速而准确,并且不需要大量内存。我们将继续探索新的模型架构,力求进一步提升模型效率。我们还将探索更适合移动 GPU 和 DSP 的模型,让它们更加节省电量和算力。