QAI AppBuilder介绍系列(9):人体关键点检测应用实例

Saved Section

OpenPose模型主要用于实时检测和跟踪图像和视频中的人体关键点。它能够识别人体的多个部位,包括身体、面部、手和脚,并且可以同时处理多个人体。OpenPose的核心是其卷积神经网络架构,通过多阶段处理生成部位置信度图和部位亲和场,从而实现精确的姿态估计。该技术在体育分析、医疗保健、动画制作和增强现实等领域有着广泛的应用。例如,在体育分析中,OpenPose可以帮助教练和运动员分析动作细节,优化训练方案,预防运动损伤;在医疗保健中,它可以用于康复训练,帮助患者进行姿态矫正和运动功能恢复;在动画制作中,OpenPose可以捕捉演员的动作,生成高精度的动画角色;在增强现实中,它可以实现虚拟与现实的无缝融合,提供更加沉浸式的体验。OpenPose的实时处理能力使其在需要即时反馈的应用场景中表现出色,成为许多领域的关键工具。总之,OpenPose通过其强大的关键点检测和跟踪能力,为各行各业提供了创新的解决方案,推动了技术的进步和应用的发展。

本文章主要介绍使用 OpenPose 模型进行人体关键点检测,如何配置QAI AppBuilder工具及环境。包括了准备需要处理的图像数据,加载 OpenPose 模型,运行示例代码进行人体关键点检测,查看处理后的图像效果等步骤。通过这些步骤,可以更加熟悉地使用 OpenPose 模型并进行人体关键点检测工作

前置条件

  • 高通 Windows on Snapdragon
  • 各平台账号,包括:Github、高通 Software Center

操作方法及步骤

1. 快捷使用OpenPose人体关键点检测应用

  • 执行前准备

模型运行需要依赖PythonQNN环境,需要注意,最新版本的QNN SDK已经更名为Qualcomm® AI Runtime SDK,旧版本QNN SDK依旧可用。

确保在设备中已经搭建好对应的PythonQNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置

  • 打开Powershell终端,在Python虚拟环境中执行以下命令:

python openpose\openpose.py

输入图像:

输出结果:

  • 结果分析:

OpenPosedemo脚本运行后,输入的人体图片上会显示绿色圆点标记的关键点,其中脸部被标记为一个绿色圆点,而其他关键点则标记了身体的主要关节。这些关键点的检测和标记有助于理解和分析人体姿态。

首先,绿色圆点标记的脸部关键点代表了面部的整体位置,这种标记方式简化了面部的表示,使得姿态估计更加高效。通过将整个脸部标记为一个点,OpenPose能够快速识别和处理面部位置,从而集中资源于身体其他关节的精确检测。

其次,身体的主要关节,如肩膀、肘部、手腕、髋部、膝盖和脚踝等,都被绿色圆点标记出来。这些关键点通过卷积神经网络(CNN)进行检测,确保了高精度和高可靠性。每个关键点的位置通过坐标表示,并在图像中精确标记出来。这些标记点提供了人体的骨架结构信息,有助于进一步的姿态估计和行为分析。

最后,这些关键点的检测和标记在多个应用场景中具有重要意义。在体育分析中,关键点的检测可以帮助教练和运动员分析动作细节,优化训练方案,预防运动损伤。在医疗保健中,关键点的检测可以用于康复训练,帮助患者进行姿态矫正和运动功能恢复。在动画制作中,关键点的标记可以用于捕捉演员的动作,生成高精度的动画角色。

2. 手动配置运行unet_segmentation应用

  • 环境准备

确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置

  • 将安装好的QNN SDK 中的 QNN 库复制到qai_libs目录中

qai_libs\libQnnHtpV73Skel.so
qai_libs\QnnHtp.dll
qai_libs\QnnHtpV73Stub.dll
qai_libs\QnnSystem.dll
qai_libs\libqnnhtpv73.cat

  • 从以下链接下载示例代码

openpose.py

下载示例代码后,将其复制到工作目录根目录

  • 将输入数据复制到工作目录根目录下

input.png

  • 准备好所有目录文件后,整体目录结构如下:

  • 运行示例代码

python .\openpose.py

运行脚本下载的模型会存放在models

  • 运行结果

得到的输出图像最终保存为output.png

作者:

赵世朝(Shizhao Zhao),高通工程师