摘要
我们提出了BlazePose,一种轻量级卷积神经网络架构,用于人体姿态估计,可用于移动设备上的实时推断。在推理过程中,网络为一个人产生33个身体关键点,在Pixel 2手机上以每秒30帧以上的速度运行。这使得它特别适合姿态跟踪和手语识别等实时用例。我们的主要贡献包括一个新的身体姿态跟踪解决方案和一个轻量级的身体姿态估计神经网络,使用热图和回归到关键点坐标。
1.引言
从图像或视频中估计人体姿态在健康跟踪、手语识别和手势控制等各种应用中起着核心作用。这个任务是具有挑战性的,由于各种姿态,无数的自由度,和遮挡。最近的研究[10][7]在姿态估计方面取得了显著进展。常见的方法是为每个关节生成热图,同时细化每个坐标的偏移。虽然这种热图的选择可以以最小的开销适用于多人,但它使一个人的模型比适用于移动电话上的实时推断要大得多(换句话说就是模型太大了,不适合用于移动设备)在本文中,我们讨论了这个特别的使用情况(指用于移动电话上),并演示了模型的加速效果,质量几乎没有下降。
与基于热图的技术相比,基于回归的方法虽然对计算的要求更少,可扩展性更高,但试图预测平均坐标值,往往无法解决潜在的模糊性。Newell等人的[9]研究表明,堆叠沙漏结构显著提高了预测的质量,即使使用了更少的参数。我们在我们的工作中扩展了这一想法,并使用一个编码-解码网络架构来预测所有关节的热图,然后使用另一个编码器直接回归到所有关节坐标的。我们工作的关键理解是,可以在推理过程中丢弃热图分支,使其足够轻,可以在移动电话上运行。
2. 模型体系结构和通道设计
2.1 推理通道
在推理过程中,我们采用了一个检测-跟踪设置(见图1),该设置在各种任务上显示了出色的实时性,例如手部地标预测[3]和密集人脸地标预测[6]。我们的通道由一个轻便的身体姿势检测器和一个姿势跟踪网络组成。跟踪器预测关键点坐标、当前帧上的人的存在,以及当前帧的感兴趣区域。当跟踪器指示没有人存在时,我们在下一帧上重新运行检测器网络。
图一:推理通道。见文本
2.2 人检测器
大多数现代目标检测解决方案都依赖于非最大抑制(NMS)算法进行最后的后处理步骤。这对于自由度很少的刚性物体很有效。然而,这种算法对于包括像人类那样的高度关节化(链接)姿势的场景是不适用的,例如人们挥手或拥抱。这是因为多个不明确的框满足NMS算法的交并集(IoU)阈值。
为了克服这个限制,我们着重于检测相对刚性的身体部分的边界框,如人脸或躯干。我们观察到,在许多情况下,神经网络关于躯干位置的最强信号是人的脸(因为它具有高对比度的特征,并且外观变化较少)。为了使这样一个人检测器快速和轻量级,我们做了一个强有力的,但对于增强现实应用有效的假设,即人的头部对于我们的单人用例应该总是可见的。因此,我们使用一个快速的设备上的人脸检测器[2]作为一个人检测器的代理。这个面部检测器预测额外的特定于个人的对齐参数:人臀部之间的中点,环绕整个人的圆的大小,以及倾斜度(连接两个中间肩点和中间臀点的线之间的角度)。
(本段大致意思是后处理NMS对应一些高度依赖关节节点的场景不适合,例如挥手,拥抱,使用NMS可能会保留很多个框。因此,采用检测人脸和躯干,因为脸部和躯干通常具有很高的对比度,在一些具体算法中的现象就是人的面部关键点会很容易检测出来。)
图2。维特鲁威人通过我们的检测器和人脸检测边界框对齐。详情请参见文本。
2.3 拓扑
我们采用BlazeFace[2]、BlazePalm[3]和Coco[8]使用的数据集,提出了一种新的拓扑结构,在人体上使用33个点。这使我们能够与各自的数据集和推理网络保持一致。
与OpenPose[4]和Kinect[1]拓扑相比,我们只在面部、手和脚上使用了最少数量的关键点来估计后续模型感兴趣区域的旋转、大小和位置。我们使用的拓扑如图3所示。如需更多信息,请参见附录A。
图3. 33个关键点
2.4 数据集
与大多数现有的使用热图检测关键点的姿态估计解决方案相比,我们的基于跟踪的解决方案需要一个初始姿态对齐。我们将数据集限制在可以看到整个人的情况下,或者臀部和肩膀关键点可以被自信地标注的情况下。为了确保模型支持数据集中不存在的严重遮挡,我们使用了大量的遮挡模拟增强。我们的训练数据集由60K图像和25K图像组成,60K图像是场景中一个人或几个人以共同的姿势出现,25K图像是场景中一个人进行健身锻炼。所有这些图像都是由人类注释的。
2.5.神经网络体系结构
我们系统的姿态估计组件预测了所有33人关键点的位置,并使用了通道第一阶段(2.1节)提供的人员对齐建议。
图4。网络体系结构。详情见正文
我们采用热图、偏移量和回归相结合的方法,如图4所示。我们只在训练阶段使用热图和偏移损失,并在运行推理之前从模型中删除相应的输出层。因此,我们有效地使用热图来监督轻量级嵌入,然后由回归编码器网络来利用。这种方法部分受到Newell等人[9]的堆叠沙漏方法的启发,但在我们的例子中,我们堆叠了一个小型的基于编码器-解码器热图的网络和随后的回归编码器网络。
我们积极利用网络各阶段之间的跳跃连接,以实现高、低级特征之间的平衡。但是,来自回归编码器的梯度并没有传播回经过热图训练的特性(请注意图4中的梯度停止连接)。我们发现这不仅改善了热图的预测,而且大大提高了坐标回归的精度。
2.6 对齐和遮挡增强
相关姿态先验是提出的解决方案的重要部分。在训练时的增强和数据准备期间,我们有意地限制了角度、比例和转换的支持范围。这允许我们降低网络容量,使网络更快,同时需要更少的计算和主机设备上的能源。
基于检测阶段或之前的帧关键点,我们对齐人物,使臀部之间的点位于作为神经网络输入的正方形图像的中心。我们估计旋转为臀部中部和肩膀中部之间的直线L,并旋转图像,使L平行于y轴。缩放的估计,使所有的身体点适合于一个方形包围框的周围,如图2所示。最重要的是,我们应用10%的比例和移位增强,以确保跟踪器处理帧和扭曲对齐之间的身体运动。
为了支持不可见点的预测,我们在训练过程中模拟了遮挡(填充各种颜色的随机矩形),并引入了逐点可见分类器,该分类器可以指示特定点是否被遮挡,以及位置预测是否被认为不准确。这允许持续跟踪一个人,即使是在严重遮挡的情况下,如只上半身或当人的大部分身体不在场景中,如图5所示。
图5 上身的BlazePose结果
3.实验
为了评估模型的质量,我们选择了OpenPose[4]作为基线。为此,我们手动标注了两个包含1000幅图像的内部数据集,每个场景中有1-2人。第一个数据集,称为AR数据集,包括各种各样的人类姿势在野外,而第二个仅是由瑜伽/健身姿势组成。为了一致性,我们只使用MS Coco[8]拓扑,它有17个点,是OpenPose和BlazePose的一个公共子集。作为一个评估指标,我们使用20%公差的正确点百分比([email protected])(我们假设二维欧氏误差小于相应人躯干尺寸的20%,该点将被正确检测)。为了验证人类基线,我们要求两个注释者独立地重新注释AR数据集,获得平均[email protected]为97.2。
我们训练了两个具有不同能力的模型:BlazePose Full (6.9 mflops, 3.5M Params)和BlazePose Lite (2.7 mflops, 1.3M Params)。尽管我们的模型在AR数据集上的性能略低于OpenPose模型,但BlazePose Full在 瑜伽/健身用例上的性能优于OpenPose。与此同时,根据要求的质量,BlazePose在单个中层手机CPU上的执行速度要比OpenPose在20核桌面CPU[5]上快25-75倍。
4.应用
我们开发了这种新的、设备上的、针对单个人的人体姿态估计模型,以实现各种性能要求的用例,如手语、瑜伽/健身跟踪和增强现实。这个模型在移动CPU上近乎实时地工作,在移动GPU上可以加速到超实时延迟。因为它的33关键点拓扑与BlazeFace[2]和BlazePalm[3]一致,所以它可以作为后续的手部姿态[3]和面部几何估计[6]模型的主干。
我们的方法本身可扩展到更多的关键点、3D支持和附加关键点属性,因为它不基于热图/偏移图,因此不需要每个新要素类型都有额外的全分辨率图层。
Appendix A. BlazePose keypoint names
0. Nose
1. Left eye inner
2. Left eye
3. Left eye outer
4. Right eye inner
5. Right eye
6. Right eye outer
7. Left ear
8. Right ear
9. Mouth left
10. Mouth right
11. Left shoulder
12. Right shoulder
13. Left elbow
14. Right elbow
15. Left wrist
16. Right wrist
17. Left pinky #1 knuckle
18. Right pinky #1 knuckle
19. Left index #1 knuckle
20. Right index #1 knuckle
21. Left thumb #2 knuckle
22. Right thumb #2 knuckle
23. Left hip
24. Right hip
25. Left knee
26. Right knee
27. Left ankle
28. Right ankle
29. Left heel
30. Right heel
31. Left foot index
32. Right foot index