本文旨在为已购买IVP02E盒子的用户提供设备端的部署指南,使用此指南的前提:在开发系统上已安装搭建好相应的框架;已完成模型的处理,包括:模型量化、模型转换等;且已完成代码工程的编译,并通过相应框架生成设备端适配的可执行程序,具体的操作流程请参考相应的《开发环境搭建指南》完成系统环境搭建。
开发环境:
- 操作系统及架构:Ubuntu 18.04 x86_64
- 内存:大于4G
- 储存空间:大于10G
- 系统语言:en_US.UTF-8(MindStudio)
- 编译器:g++或aarch64-linux-gnu-g++
- python及依赖的库:python3.7.5
- 边缘计算盒子型号:IVP02E
声明——IVP02E内包含NNN以及SVP_NNN两个算力核,适配昇腾以及SVP架构,架构图如下:
现在开始进行设备端环境部署!Follow me~
环境部署步骤
步骤1:安装CH340驱动;
步骤2:设备端插入网线、电源线、且通过Type-C线连接电脑;
步骤3:连接后,要在设备管理器查看是否连接成功,并记录端口号
步骤4:通过串口工具连接设备端,可使用MobaXterm、Xshell等工具,选择端口号,bps为115200;
步骤5:连接设备端后,执行命令加载设备端驱动及ko文件,./insmod.sh以及./init.sh;
步骤6:根据连接的网口配置ip地址以及网关地址
ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.255.0 up // ip地址,请自行填入
执行route命令,进行网关配置
route add default gw xxx.xxx.xxx.xxx // 网关地址,请自行填入
配置完毕后,需要ping通本机的ip;
步骤7:yolov5网络模型需要开发者自行准备,因昇腾框架暂不支持pt模型的转换,所以需要开发者下载yolov5-master并通过脚本把pt模型转换为onnx模型;
参考命令:python3.7.5 models/export.py --weights yolov5ts.pt --img 640 --batch 1
步骤8:通过MindStudio工具启动ATC功能进行模型转换,把yolov5的onnx模型文件转换为SoC设备端识别的离线模型(.om模型),把转换后的模型放入工程文件中,并进行编译生成可执行程序;
步骤9:需要在虚拟机以及设备端上安装nfs,并且把编译后的工程文件及所需的动态库放在nfs文件夹下,之后在设备端通过nfs挂载到虚拟机的文件夹;
参考命令:
mount -t nfs ip地址:/xxx/xxx/xxx /mnt -o nolock
ip地址为您虚拟机的IP地址
/xxx/xxx/xxx为您虚拟机内nfs文件夹挂载路径
步骤10:声明SDK包内动态库;
参考命令:
export LD_LIBRARY_PATH=/mnt/mpp/out/lib/npu
export ASCEND_AICPU_KERNEL_PATH=/mnt/mpp/out/lib/npu
声明路径为sdk包内mpp文件夹下动态库的路径
步骤11:Yolov5样例共有3个功能
- 0.识别输入数据并打印相关信息
- 1.多线程识别输入数据并打印相关信息
- 2.使用MMZ内存进行动态批次识别输入数据并打印相关信息
步骤12:执行命令进行推理后会打印相关数据;
./sample_npu_main 0
以下为输出示例
步骤13:配置了profiling相关参数的代码后,模型推理完成时会在工程目录下生成一个JOB文件夹,该文件夹内记录了模型推理的性能指标;
步骤14:采集完成后需要执行脚本进行解析性能指标,需要进入到msprof下执行脚本,解析后会在JOB文件夹下生成sqlite文件夹,里面包含了各性能指标的db文件;
参考命令:
python3.7.5 msprof.py import -dir /home/hyq/rootfs/npu2 /src
步骤15:得到解析坐标后,执行相应命令即可导出指标为可视化表格;
参考命令:
python3.7.5 msprof.py export summary -dir /home/hyq/rootfs/npu2/src --format csv
步骤16:以下为op_summary的表格示例,该表格内记录了每一层算子的时间、推理耗时、调用接口耗时等性能指标。
至此,IVP02E智能视频分析边缘计算盒子的设备端环境部署成功!