【CANN训练营】Atlas 200I DK A2开发板AlphaPose人体关键点检测
环境
华为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
模型转换,步骤如下:
- 将上述 pb 模型下载至 AlphaPose/models 文件夹下,文件名为:yolov3_tf.pb 。
- 进入 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
模型转换步骤
模型转换,步骤如下:
- 将上述 onnx 模型下载至 AlphaPose/models 文件夹下,文件名为:fast_res50_256x192_bs1.onnx 。
- 进入 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
其中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
- 点赞
- 收藏
- 关注作者
评论(0)