资讯详情

Real-time 2D Multi-Person Pose Estimation on CPU:Lightweight OpenPose 个人整理

CPU上的实时2D多人姿势估计:轻量级OpenPose

摘要

在这项工作中,我们调整了多人姿势估计架构,用于边缘设备。 我们遵循 COCO 2016 关键挑战赛的获胜者 OpenPose [3] 自下而上的方法,因为它具有良好的质量和对框架内人数的鲁棒性。 借助本文提到的网络设计和优化的后处理代码,完整的解决方案是 Intel ? NUC6i7KYB mini PC 上以每秒 28 帧 (fps) 在 Corei7-6850K CPU 上以 26fps 速度运行。 有网络模型 410 万个参数和 90 1亿浮点运算 (GFLOP) 复杂度只是质量几乎相同的基线 2 阶段 OpenPose 的 15%。 作为英特尔的代码和模型 ? OpenVINO TM 提供工具包的一部分。

1 简介

多人姿势估计是一项重要的任务,可用于动作识别、动作捕捉、运动等不同领域。任务是预测图像中每个人的姿态骨架。 骨骼由关键点(或关节)组成:脚踝、膝盖、臀部、肘部等。卷积神经网络 (CNN) [6],[4],[16] 在此帮助下,估计人体姿势的准确性大大提高。 然而,对体积小、精度高的姿势估计方法的研究却很少。在 [9] 作者在手机上展示了一个简化 Mask R-CNN 关键检测器演示 10 fps 但没有提供实现细节和准确性的特点。我们还发现了带有人体姿态估计网络的开源存储库 [10]。作者报告在 2.8GHz 四核 CPU 推理速度为 4.2 fps,在 Jetson TX2 板上为 10 fps。

在我们的工作中,我们优化了流行的方法 OpenPose,并展示了 CNN 如何使用现代设计技术进行姿势估计任务。 因此,我们的解决方案是:

28 fps 在mini PC 英特尔? NUC 上,这个板功耗低,功率为 45 瓦 CPU TDP.

26 fps 在普通 CPU 没有显卡。

优化版的准确性几乎与基线相匹配:平均精度(AP)下降小于 1%。

2 相关工作

通常可以通过两种方式解决多人姿态估计问题。 第一个称为自上而下,应用一个人检测器,然后对每个检测到的人运行一个姿势估计算法。 因此,位置估计问题被解耦为两个子问题,并且可以利用两个领域的最新结果。 这种方法的推理速度很大程度上取决于图像中检测到的人数。

第二种叫自下而上,对人数更稳定。 首先在给定的图像中检测到所有的关键点,然后根据人类实例分组。 这种方法通常比以前快,因为它只找到一个关键点,不会估计每个人都会重新运行姿势。

在 [11] 作者提出了迄今为止自下而上方法中质量最好、最快的方法,该方法是单一的 GTX 1080Ti 显卡上运行 23 fps,用于 3 个人形象。 他们指出,对 20 性能下降到人的图像 15 fps。 我们的工作是基于流行的自下而上的方法 OpenPose,它几乎不受人数推断时间的影响。

3 原始OpenPose分析

3.1 推理流程

类似于所有自下而上的方法,OpenPose 由两部分组成:

? 神经网络推理提供两个数量:关键点热图及其成对关系(部分相关区域,pafs)。输出采样 8 次。 ? 关键点按人的实例分割结果分组。 它包括将张量采样到原始图像大小,提取热图峰值的关键点,并按实例分组。

图一 OpenPose 流程

网络首先提取特征,然后执行热图和 pafs 初始估计,然后执行 5 细化阶段。它能够找到 18 类型的关键点。然后分组程序从列表中搜索每个关键点的最佳对(根据相关性),如左肘和左手腕、右臀和右膝、左眼和左耳等,共19对。流程如图 1 所示。在推理过程中,调整输入图像的大小,以匹配网络输入的高度,缩放宽度以保持图像的纵横比,然后填充 8 的倍数。

3.2 复杂度分析

最初的实现使用 VGG-19 主干 [14] 切到 conv4_2 层作为特征提取器。 然后加入两个额外的卷积层 conv4_3 和 conv4_4.之后是初始阶段和五个细化阶段。

每个阶段由两个并行分支组成:一个用于热图估计,另一个用于热图估计pafs。两个分支设计相同,如表1所示。我们将网络输入分辨率设置为368x368,使用与原始论文相同的论文 COCO 单尺度测试验证子集。测试 CPU 为 Intel ? Core TM i7-6850K, 3.6GHz。表2显示了精度和细化阶段数量之间的平衡。

可以看出,后期阶段对 GFLOP 因此,对于优化版本,我们只保留前两个阶段:初始阶段和单个细化阶段。

表 3 总结了后处理部分的配置文件。它是通过运行代码获得的,该代码是使用的 C 和 OpenCV [2] 编写的。 虽然分组本身是轻量级的,但其他部分需要优化。

表1:OpenPose 阶段设计。每个阶段有2个平行分支

表 2:COCO 验证集上 OpenPose 准确性和复杂性

表 3:后处理和分组的初始性能

4 优化

4.1 网络设计

所有实验均采用原始论文的默认训练参数,我们采用 COCO 数据集 [12] 进行训练。 如上所述,我们只保留初始和第一个细化阶段。 然而,其他阶段可以提供正则化效果,因此网络最终通过额外阶段重新训练,但使用了前两个阶段。这样的程序提供了 1% 的 AP 改进。

4.1.1 轻量级骨干网

自从提出 VGG 自网络以来,几乎没有设计出具有类似甚至更好分类精度的轻量级网络拓扑 [7],[8],[13]。 我们评估了 MobileNet 替换系列网络 VGG 并从 MobileNet v1开始。

以一种天真的方式,如果我们将所有层保持到最深,以匹配输出张分辨率,精度就会显著下降。 这可能是由于浅层和弱特征的表现。为了节省空间分辨率,重用主体权重,我们使用空洞卷积[17]。conv4_2/dw 层的步长被移除,dilation 设置为参数值 2.以便后续 conv5_1/dw 层层保留感觉野。 所以我们使用所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所以我们使用所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有层直到所有 conv5_5 块。 添加 conv5_6 块以性能为代价,提高了准确性。 我们还尝试了更轻量级的主干 MobileNet v2.但不好,见表 4。

表4 轻量级骨干选择研究(原始和细化阶段) OpenPose 设计)

4.1.2 轻量化细化阶段

为了产生对关键点热图和 pafs新估计,细化阶段从主干中获取特征,与之前的关键点热图和 pafs 估计连接。 受此事实的启发,我们决定在热图和 pafs 共享大部分计算,在初始和细化阶段使用单个预测分支。 除了最后两层,我们共享所有的层,它们直接产生关键点热图和 pafs,见图 2。

图二 初始阶段的两个预测分支和建议的单个预测分支。 本方案也应用于细化阶段。

然后每个都有 7x7 为了捕捉远程空间依赖关系[15],内核大小的卷积被具有相同感觉的卷积块所取代。我们用这个块设计进行了一系列实验,并观察到了1x1、3x3和3x三个连续大小的连续卷积就足够了,后者的膨胀参数等于2,以保留初始感觉。由于网络变得更深,我们为每个这样的块添加了残差连接 [5]。

图三 在细化阶段设计用于替代卷积的卷积块 7x7 内核大小

图 3 可视化的最终设计比使用更复杂 7x7 内核卷积低 2.5 倍。 我们还将 conv4_3 替换为 3 一个深度可以分离卷积,通道数从 256 减少到 128.网络设计的复杂性和准确性如表 5 所示。

表5 COCO 验证集中提出的网络的准确性和复杂性。

4.2 快速后处理

我们分析了代码,删除了额外的内存分配,并使用它 OpenCV 例程并行提取关键点。 这使得代码明显更快,最后一个瓶颈是调整特征映射到输入图像大小。

我们决定跳过调整大小的步骤,直接在网络输出上分组,但精度显著降低。 因此,特征图采样步骤是不可避免的,但没有必要输入图像大小。 我们的实验表明,使用采样因子 8 准确性相同,就像调整大小以适应输入图像大小一样。 为了演示,我们使用了上采样因子 4。

4.3 推理

我们使用英特尔进行网络推理 OpenVINO TM Toolkit R4 它提供跨不同的硬件(如 CPU、GPU、FPGA 等)优化推理。最终性能数字如表 6 据报道,它们是为挑战性视频测量的,估计有20多个姿势。

我们使用了两种设备:Intel NUC6i7KYB,它在集成 GPU Iris Pro Graphics P580 上半精度浮点格式 (FP16) 执行推理,以及 6 核 Core i7-6850K CPU,它采用单精度浮点格式 (FP32 )。 网络输入大小设置为 456x256,类似于 368x但宽高比为368 16:9,适合处理视频流。

表6 具有超过 20 估计姿势视频的最终推理 fps。 大括号中的数字是网络推理和后处理 fps

相关总结

论文下载地址:

https://arxiv.org/pdf/1811.12004.pdf

pytorch复现:

https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch

论文讲解:

轻量级OpenPose, Lightweight OpenPose - 知乎

论文中16个关键点

网络结构

标签: kyb18d微差压变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台