QAI AppBuilder介绍系列(9):人体关键点检测应用实例
OpenPose模型主要用于实时检测和跟踪图像和视频中的人体关键点。它能够识别人体的多个部位,包括身体、面部、手和脚,并且可以同时处理多个人体。OpenPose的核心是其卷积神经网络架构,通过多阶段处理生成部位置信度图和部位亲和场,从而实现精确的姿态估计。该技术在体育分析、医疗保健、动画制作和增强现实等领域有着广泛的应用。例如,在体育分析中,OpenPose可以帮助教练和运动员分析动作细节,优化训练方案,预防运动损伤;在医疗保健中,它可以用于康复训练,帮助患者进行姿态矫正和运动功能恢复;在动画制作中,OpenPose可以捕捉演员的动作,生成高精度的动画角色;在增强现实中,它可以实现虚拟与现实的无缝融合,提供更加沉浸式的体验。OpenPose的实时处理能力使其在需要即时反馈的应用场景中表现出色,成为许多领域的关键工具。总之,OpenPose通过其强大的关键点检测和跟踪能力,为各行各业提供了创新的解决方案,推动了技术的进步和应用的发展。
本文章主要介绍使用 OpenPose 模型进行人体关键点检测,如何配置QAI AppBuilder工具及环境。包括了准备需要处理的图像数据,加载 OpenPose 模型,运行示例代码进行人体关键点检测,查看处理后的图像效果等步骤。通过这些步骤,可以更加熟悉地使用 OpenPose 模型并进行人体关键点检测工作。
前置条件
- 高通 Windows on Snapdragon
- 各平台账号,包括:Github、高通 Software Center
操作方法及步骤
1. 快捷使用OpenPose人体关键点检测应用
- 执行前准备
模型运行需要依赖Python及QNN环境,需要注意,最新版本的QNN SDK已经更名为Qualcomm® AI Runtime SDK,旧版本QNN SDK依旧可用。
确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置
- 打开Powershell终端,在Python虚拟环境中执行以下命令:
python openpose\openpose.py
输入图像:
输出结果:
- 结果分析:
在OpenPose的demo脚本运行后,输入的人体图片上会显示绿色圆点标记的关键点,其中脸部被标记为一个绿色圆点,而其他关键点则标记了身体的主要关节。这些关键点的检测和标记有助于理解和分析人体姿态。
首先,绿色圆点标记的脸部关键点代表了面部的整体位置,这种标记方式简化了面部的表示,使得姿态估计更加高效。通过将整个脸部标记为一个点,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
- 从以下链接下载示例代码
下载示例代码后,将其复制到工作目录根目录
- 将输入数据复制到工作目录根目录下
- 准备好所有目录文件后,整体目录结构如下:
- 运行示例代码
python .\openpose.py
运行脚本下载的模型会存放在models中
- 运行结果
得到的输出图像最终保存为output.png
作者:
赵世朝(Shizhao Zhao),高通工程师