昇腾Atlas 200I DK A2实现安全帽识别


环境依赖

软件 版本 说明 获取方式
mxVision 5.0.RC2 mxVision软件包 获取方式
Ascend-CANN-toolkit 6.2.RC2 Ascend-cann-toolkit开发套件包 获取方式
Ubuntu 22.04

代码仓库地址:
https://gitee.com/ascend/ascend_community_projects/tree/310B/HelmetIdentification_V2

镜像版本:
在这里插入图片描述


编译

获取模型https://gitee.com/link?target=https%3A%2F%2Fmindx.sdk.obs.cn-north-4.myhuaweicloud.com%2Fmindxsdk-referenceapps%2520%2Fcontrib%2FHelmetIdentification%2Fmodel.zip

解压 model.zip 并将onnx文件移到项目的model目录下:
在这里插入图片描述

转换模型:注意,这里没有采用源码中的atc-env.sh转换脚本的方式。
配置环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/mxVision-5.0.RC2/set_env.sh

转模型:

cd ~/HelmetIdentification_V2/model
atc --model=./YOLOv5_s.onnx --framework=5 --output=YOLOv5_s --insert_op_conf=./aipp_YOLOv5.config --input_format=NCHW --log=info --soc_version=Ascend310B1 --input_shape="images:1,3,640,640"

执行完以上命令行,model目录下会出现om模型
在这里插入图片描述

修改CMakeList.txt

cd ~/HelmetIdentification_V2/src

24行和35行改为 /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux 目录下的includelib64目录,这里需要修改为自己的toolkit目录
在这里插入图片描述

编译准备

更新安装库文件

apt-get update 
apt-get install -y libavformat-dev

建立三个库的软软链接

ln -s /usr/lib/aarch64-linux-gnu/libavcodec.so.58 /usr/lib/aarch64-linux-gnu/libavcodec.so
ln -s /usr/lib/aarch64-linux-gnu/libavutil.so.56 /usr/lib/aarch64-linux-gnu/libavutil.so
ln -s /usr/lib/aarch64-linux-gnu/libavformat.so.58 /usr/lib/aarch64-linux-gnu/libavformat.so

由于代码提供了对videoimage的不同main.cpp,这里我们选用video的。将两个文件备份后,留下main.cpp

cd ~/HelmetIdentification_V2/src
rm main-image.cpp
cd ..
mkdir build_video
cd build_video
cmake ..

在这里插入图片描述

make -j4

在这里插入图片描述
至此,会在~/HelmetIdentification_V2目录下生成main可执行文件

测试

HelmetIdentification_V2文件夹下,需要新建result文件夹以及内部的one、two两个文件夹用于存放结果

cd ~/HelmetIdentification_V2
mkdir result
cd result
mkdir one
mkdir two

退回到HelmetIdentification_V2文件夹,运行如下命令

./main test_person.h264 1920 1080

1920 1080为输入视频的宽高
在这里插入图片描述
结果图片保存在HelmetIdentification_V2/result文件夹中,文件夹one保存第一路输入的结果,文件夹two保存第二路输入的结果。
在这里插入图片描述
输出样例为:在这里插入图片描述
红框标出的应该是未佩戴安全帽的信息。


总结

本篇文章可以算是昇腾系列的一个入门样例,跑通了应该就能知道大概的操作流程,接下来应该又是一段难忘的开发心路历程,希望自己挺住!!!

参考文档:
https://gitee.com/ascend/ascend_community_projects/tree/310B/HelmetIdentification_V2
https://zhuanlan.zhihu.com/p/652517700
如果阅读本文对你有用,欢迎点赞收藏呀!!!
2023年11月24日14:55:12
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/JulyLi2019/article/details/134585816