据Facebook Research消息,Facebook的AI Camera团队在发表的一篇博客中介绍了其最新研究成果。目前,他们正在研究AR全身追踪技术,该技术可以准确地检测到身体姿势,同时可将人体从背景中分割出来。
其模型还处于研究阶段,但这个模型的好处在于,它只有几兆大小,可以在智能手机上实时运行。并且在不久之后,它还可以衍生出许多新的应用程序,并使这些应用程序产生新的功能,比如创建“全身面具”,使用手势来控制游戏,或者对人体进行“去识别化(de-identifying)”等。对此,AI Camera团队在文章中进行了详细的阐述。
人体检测和分割模型是基于Mask R-CNN框架建立的,该框架的概念简单灵活,并且它是对目标进行检测和分割的通用框架。它可以有效地检测图像中的对象,同时检测关键点并为每个对象生成一个分割掩码。而为了在移动设备上实时运行Mask R-CNN模型,Camera,FAIR和AML团队的研究人员和工程师共同合作,构建了一个高效轻量的框架:Mask R-CNN2Go,它是由五个主要组件构成:
1、其主干模型中包含多个卷积层,并能够表现出图像的深层特征。
2、候选区域生成网络(RPN)以预定的比例和纵横比(锚点)生成候选对象,ROI对齐层可从边界框内的每个对象上提取特征并将它们发送到探测端。
3、该探测端口包含一组卷积层、池化层和全连接层(fully-connected layers)。在每个候选框内,它预测的对象可能是一个人。探测端还可以细化边界框的坐标,将非极大抑制值(non-max suppression)的相邻候选框进行分组,并为图像中的每一个人生成最终的边界框。
4、在每个人的边界框内,都会使用第二个ROI对齐层提取特征,而这些特征来自于关键点端口和分割端口的输入。
5、关键点端口与分割端口具有相似的结构。它为身体上的每个预定关键点预测出一个掩码。并使用一个最大扫描来生成最终坐标。
与现代GPU服务器不同,移动电话的计算和存储能力十分有限。原始的Mask R-CNN 是基于 ResNet(残差网络)运行,但是它太大,并且运行的很慢,因此无法在手机上使用。为了解决这个问题,我们为移动设备开发了一个非常有效的模型体系结构。
我们使用了几种方法来减轻模型的大小。我们优化卷积层的数量和每层的大小,这也是在处理过程中最耗时的一部分。为了保证拥有足够大的感受野(receptive field),我们使用了包括 1×1、3×3 和 5×5 的内核大小的组合。另外,我们还使用权重剪枝算法(weight pruning)来缩减模型。我们的最终模型只有几兆字节,但是非常精准。
为了实时运行深度学习算法,我们使用并优化我们的核心框架:载有NNPack的Caffe2,SNPE和Metal。通过使用移动 CPU 和包含 NNPack、SNPE 和 Metal 在内的 GPU 库,我们能够显着提高移动计算速度。所有这些都是通过模块化设计完成的,不需要改变一般的模型定义。因此,我们既可以获得较小的模型大小,又可以获得较快的运行时间,同时避免了潜在的不兼容问题。
Facebook AI 研发团队(FAIR)最近发布了 Mask R-CNN 研究平台(Detectron)。我们开源了 Caffe2 运算符(GenerateProposalsOp、BBoxTransformOp、BoxWithNMSLimit 以及 RoIAlignOp)并提供了必要的模型转换代码,以供研究社区使用。
开发移动设备的计算机视觉模型是一项艰巨的任务。移动模式必须小巧、快速、准确,而且不需要大量内存。我们将继续探索新的模型架构,力求进一步提高模型的效率。我们还将探索更适合移动GPU和DSP的模型,使其更加节省电量和计算能力。
(原文来自:Facebook Research;智东西编译)