自学内容网 自学内容网

海思3519dv500目标识别之yolov5环境搭建

1. 简介

1.1 功能框架

在这里插入图片描述

1.2 SVP_NNN_PC组件包

SVP_NNN_PC组件包中,提供如下的工具链:
● AMCT:模型压缩工具(Advanced Model Compression Toolkit)对原始网络模
型进行量化,量化是指对模型的权重(weight)和数据(activation)进行低比特
处理,让最终生成的网络模型更加轻量化,从而达到节省网络模型存储空间、降
低传输时延、提高计算效率,达到性能提升与优化的目标;
● Picovision:提供亲和SVP_NPU硬件的backbone或者算子实现。
● MindStudio: 基于IntelliJ框架的开发工具链平台,提供了应用开发、调试、模型
转换功能,同时还提供了网络移植、优化和分析功能,为用户开发应用程序带来
了极大的便利;
● MindCmd:Python命令行工具,依赖CANN、AMCT(可选),支持网络模型端到
端运行数据预处理、Ground Truth、AMCT、ATC、Simulate、板端推理、
Dump、精度比对、性能分析,旨在提升网络模型移植、分析和优化的效率;
● Docker:提供docker环境
● PC Sample:提供sample示例
● Ascend-cann-toolkit:开发套件包,简称CANN。为开发者提供基于模式识别处
理器SoC的相关算法开发工具包,旨在帮助开发者进行快速、高效的模型、算子和
应用的开发。CANN主要提供如下工具:
– ATC:将开源框架网络模型通过ATC(Advanced Tensor Compiler)工具转换成
适配图像分析引擎的离线模型;
– Simulate:提供功能、指令PC端模拟器,能够完整运行离线模型,加快网络
模型的调试部署
– Acllib:开发板SVP_NPU提供的库
– Tools:提供Proffling性能分析工具和精度比对工具。Proffling性能分析工具
用于采集和分析运行在SoC上的推理业务(应用或算子)各个运行阶段的关键
性能指标,用户可根据输出的性能数据针对关键性能瓶颈做出优化以实现产
品的极致性能;精度比对工具的定位是解决模型的精度问题,提供比对自有
模型算子的运算结果与Caffe等标准算子的运算结果,以便确认误差发生的算
子。
● SDK:提供的C语言API库开发图像分析工具应用,用于实现目标识别、图像分类
等功能。

2. 开发环境准备

2.1 环境要求

在这里插入图片描述

2.2 获取软件包

在这里插入图片描述
需要准备以上除Hi3519DV500R001C01SPC011.rar之外的软件包

2.3 软件包安装

2.3.1 安装CANN

CANN安装包在/home/wyw/work/SVP_PC/SVP_NNN_PC_V3.0.2.1/MindStudio目录下

cd /home/wyw/work/SVP_PC/SVP_NNN_PC_V3.0.2.1/MindStudio
#分配执行权限
chmod +x *.run
#安装
./*.run --install
#设置环境变量
source /home/wyw/Ascend/ascend-toolkit/svp_latest/x86_64-linux/script/setenv.sh

安装完成后显示[INFO] xxx install success表示安装成功

2.3.2 安装Cmake

sudo apt install cmake

2.3.3 安装aarch64-v01c01-linux-musl-g++交叉编译器

#解压gcc-20231123-aarch64-v01c01-linux-musl.zip
unzip gcc-20231123-aarch64-v01c01-linux-musl.zip
cd gcc-20231123-aarch64-v01c01-linux-musl
#安装
sudo ./install_gcc_toolchain.sh
#添加环境变量
export $PATH:/opt/linux/x86-arm/aarch64-v01c01-linux-musl-gcc/bin

2.3.4 安装aarch64-v01c01-linux-gnu-g++交叉编译器

#解压gcc-20231123-aarch64-v01c01-linux-gnu.zip
unzip gcc-20231123-aarch64-v01c01-linux-gnu.zip
cd gcc-20231123-aarch64-v01c01-linux-gnu
#安装
sudo ./install_gcc_toolchain.sh
#添加环境变量
export $PATH:/opt/linux/x86-arm/aarch64-v01c01-linux-gnu-gcc/bin

3. 模型编译

3.1 运行前准备

SVP_NNN_PC软件包中找到samples.tar.gz

tar -zxf samples.tar.gz
cd samples/2_object_detection/yolo/

3.2 模型编译

atc --output="./model/yolov5" --insert_op_conf=./insert_op.cfg --framework=5 --save_original_model=true --
model="./onnx_model/yolov5s.onnx" --image_list="images:./data/image_ref_list.txt"

提示:end binary code generating表示转换成功
在model目录下可以看到离线模型yolov5_original.om

4. 仿真运行

4.1 编译sample

cd samples/2_object_detection/yolo/
./build.sh

4.2 准备数据

执行transferPic.py脚本,将*.jpg转换为*.bin,同时将图片分辨率缩放为模型输入所需的640*640,“5”表示生成yolov5

cd samples/2_object_detection/data/
python3.7.5 ../script/transferPic.py 5

4.3 运行

cd out
chmod +x *_main

功能仿运行

./func_main 5

指令仿运行

./inst_main 5

若提示如下信息,则说明运行成功
model execute success


原文地址:https://blog.csdn.net/wyw0000/article/details/145105081

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!