【CANN训练营】Atlas 200I DK A2开发板AlphaPose人体关键点检测

举报
JeffDing 发表于 2023/07/23 16:18:36 2023/07/23
【摘要】 环境华为Atlas 200I DK A2内存:4GNPU:昇腾310B 环境准备 安装MindXMindX下载地址:https://www.hiascend.com/zh/software/mindx-sdk/communityMindX SDK安装前准备可参考《用户指南》,安装教程:https://gitee.com/ascend/mindxsdk-referenceapps/blob/...

环境

华为Atlas 200I DK A2
内存:4G
NPU:昇腾310B

环境准备

安装MindX

MindX下载地址:https://www.hiascend.com/zh/software/mindx-sdk/community
MindX SDK安装前准备可参考《用户指南》,安装教程:https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1%E5%AE%89%E8%A3%85SDK%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6.md

Atlas 200I DK A2镜像烧录后系统里自带了mxVision-5.0-rc1,所以不需要安装新的
所在路径:/usr/local/Ascend/mxVision-5.0.RC1

环境依赖

在运行项目前,需要设置环境变量:
MindSDK 环境变量:

source /usr/local/Ascend/mxVision-5.0.RC1/setenv.sh

CANN环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh

克隆代码仓

git clone https://gitee.com/ascend/ascend_community_projects -b 310B

安装Live555离线视频转RTSP

下载安装包

http://www.live555.com/liveMedia/public/live555-latest.tar.gz
新版本的live555可以会报错,可以下载旧版本

wget http://download.videolan.org/pub/contrib/live555/live.2023.01.19.tar.gz --no-check-certificate

解压

tar -zxvf live.2023.01.19.tar.gz
cd live/

安装

./genMakefiles linux  #注意后面这个参数是根据当前文件夹下config.<后缀>获取得到的,与服务器架构等有关。
make

安装protobuf

apt-get install libprotobuf-dev protobuf-compiler

安装opencv

apt-get update
apt-get install libopencv-dev

可能头文件多了一个opencv4,执行如下命令映射

ln -s /usr/include/opencv4/opencv2 /usr/include/

视频文件格式转换

ffmpeg -i test.mp4 -vcodec h264 -bf 0 -g 25 -r 10 -s 1280*720 -an -f h264 test1.264
//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制 -an关闭音频, -r 指定帧率

ffmpeg安装参考
https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/参考资料/pc端ffmpeg安装教程.md

模型转换

下载模型及转换

YOLOV3

wget https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/ActionRecognition/ATC%20YOLOv3%28FP16%29%20from%20TensorFlow%20-%20Ascend310.zip --no-check-certificate

模型转换,步骤如下:

  1. 将上述 pb 模型下载至 AlphaPose/models 文件夹下,文件名为:yolov3_tf.pb 。
  2. 进入 AlphaPose/models 文件夹下执行命令:
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310B1 --insert_op_conf=./aipp_yolov3_416_416.aippconfig --input_shape="input:1,416,416,3" --out_nodes="yolov3/yolov3_head/Conv_22/BiasAdd:0;yolov3/yolov3_head/Conv_14/BiasAdd:0;yolov3/yolov3_head/Conv_6/BiasAdd:0"

AlphaPose

wget https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/ascend_community_projects/AlphaPose/model.zip --no-check-certificate

模型转换步骤
模型转换,步骤如下:

  1. 将上述 onnx 模型下载至 AlphaPose/models 文件夹下,文件名为:fast_res50_256x192_bs1.onnx 。
  2. 进入 AlphaPose/models 文件夹下执行命令:
atc --framework=5 --model=fast_res50_256x192_bs1.onnx --output=fast_res50_256x192_aipp_rgb --input_format=NCHW --input_shape="image:1,3,256,192" --soc_version=Ascend310B1 --insert_op_conf=aipp_192_256_rgb.cfg

注:在310B芯片上进行转换,修改参数–soc_version=Ascend310B1即可。

准备

安装 live555 和 ffmpeg,按照 Live555离线视频转RTSP说明文档 将 mp4 视频转换为 h264 格式。并将生成的 264 格式的视频上传到 live/mediaServer 目录下,然后修改 AlphaPose/pipeline 目录下的 video.pipeline 文件中 mxpi_rtspsrc0 的内容。

        "mxpi_rtspsrc0": {
            "props": {
                "rtspUrl":"rtsp://xxx.xxx.xxx.xxx:xxxx/xxx.264",      // 修改为自己开发板的地址和文件名
                "channelId": "0"
            },
            "factory": "mxpi_rtspsrc",
            "next": "mxpi_videodecoder0"
        },

运行live555

执行命令(所有的视频文件放在mediaServer文件夹同一目录下),产生的RTSP流的地址如下图所示,文件名为上一步放入mediaServer 文件夹的视频文件

cd mediaServer
./live555MediaServer

image.png

其中rtsp_Url的格式是 rtsp://host:port/Data,host:port/路径映射到mediaServer/目录下,Data为视频文件的路径。

编译

bash build.sh

运行视频流推理

bash run.sh video

命令执行成功后会在 AlphaPose/out 目录下生成 alphapose.avi 和 alphapose.json 文件,其中 alphapose.avi 为人体姿态可视化后的视频输出,alphapose.json 为每一帧图像中人物的关键点位置与置信度信息,查看文件验证人体关键点检测结果。

运行图片推理

运行图片推理。在 AlphaPose 目录下创建 data 目录,然后将需要推理的图片放在 AlphaPose/data 目录下。回到在 AlphaPose 目录下执行命令:

bash run.sh image
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。