从0到1学习使用OAK——人体姿势跟踪检测示例

编辑:OAK中国
来源:oakchina.cn
版权说明:转载请注明出处

前言

Hello,大家好,这里是OAK中国,我是助手君。
本期内容我们将介绍使用depthai实现人体姿势跟踪,这个示例是由geaxgx实现。示例代码在GitHub上可以找到。超级容易上手,快来试试吧!

分析项目

此项目检测人体姿态并画出身体特征点。
在全身特征点下可以画出3D骨架模型。
通过测量手臂角度来读取信号显示字母。

模型介绍

此示例使用Google推出的MediaPipe中的Pose解决方案。
MediaPipe Pose是一种用于高保真身体姿势跟踪的ML解决方案,从RGB视频帧中推断出整个身体上的33个3D特征点(或25个上身特征点)。
MediaPipe Pose利用两步走策略-检测器加跟踪器,管道首先使用人体检测器在帧中定位人体位置(ROI),跟踪器随后使用ROI裁剪帧作为输入来预测ROI中的姿势特征点坐标。

人体姿态检测模型

此模型明确预测了两个虚拟关键点,这些关键点将人体的中心,旋转和缩放牢固地描述为一个圆圈。受莱昂纳多的维特鲁威人的启发,我们预测了人的臀部的中点,外接整个人的圆的半径以及连接肩部和臀部中点的直线的倾斜角度。
在这里插入图片描述

人体姿态特征点模型

MediaPipe Pose中的地标模型有两个版本:可以预测33个姿势特征点坐标的全身模型,以及仅预测前25个姿势特征点的上身模型。后者主要用于下半身不可见的场景。
在这里插入图片描述

模型剖析

我们使用Netron工具查看模型结构。

  1. pose_detection.blob
    输入:
    在这里插入图片描述

    输出:
    在这里插入图片描述

  2. pose_landmark_full_body.blob
    输入:
    在这里插入图片描述

    输出:
    在这里插入图片描述

  3. pose_landmark_upper_body.blob
    输入:
    在这里插入图片描述

    输出:
    在这里插入图片描述

转换模型

我们手中的神经网络模型千奇百怪,但我们depthai需要使用blob文件,不能直接使用各大神经网络框架生成的模型。因此可以先使用OpenVINO将各种模型转换为IR,再将IR转换为blob文件。

  1. 首先下载并安装OpenVINO
  2. 然后使用OpenVINO的模型下载脚本工具下载模型。
    例如:
python ~/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/downloader.py --name face-detection-retail-0004 --output_dir ~/open_model_zoo_downloads/

a. 此时得到的模型是OpenVINO IR,也就是.bin和.xml文件。我们还需要将IR转换为DepthAI所需要的blob文件。
将OpenVINO IR编译为blob文件:

export MYRIAD_COMPILE=$(find /opt/intel/ -iname myriad_compile)
$MYRIAD_COMPILE -m sbd_mask.xml -ip U8 -VPU_MYRIAD_PLATFORM VPU_MYRIAD_2480 -VPU_NUMBER_OF_SHAVES 4 -VPU_NUMBER_OF_CMX_SLICES 4

注:使用模型转换工具需要安装openvino,安装时要注意DepthAI对OpenVINO版本有要求。 详情请参照openvino安装。
另外:在此项目中作者贴心的为我们提供了模型转换脚本。
tflite模型转IR-convert_models.sh

cd resources/models
./convert_models.sh

IR转blob-gen_blob_shave.sh。

# Example: to generate blobs for 6 shaves
./gen_blob_shave.sh -m pd -n 6        # will generate pose_detection_sh6.blob
./gen_blob_shave.sh -m lm_full -n 6   # will generate pose_landmark_full_body_sh6.blob
./gen_blob_shave.sh -m lm_up -n 6     # will generate pose_landmark_upper_body_sh6.blob

最终效果

在这里插入图片描述

参考资料

https://docs.oakchina.cn/en/latest/
https://www.oakchina.cn/selection-guide/


OAK中国
| OpenCV AI Kit在中国区的官方代理商和技术服务商
| 追踪AI技术和产品新动态

戳「+关注」获取最新资讯↗↗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值