眺望T536核心板NPU开发入门指南

描述

 

前言:
 

眺望电子T536 核心板集成高性能2TOPS  NPU(神经网络处理器),支持ONNX、TensorFlow 等主流框架模型(需转换为 NBG 格式)。本文基于 Tina SDK Linux 系统,介绍 T536 NPU 的开发环境搭建、模型部署流程及入门示例,帮助开发工程师快速上手。

 

一、背景概述

 

T536处理器集成VeriSilicon(芯原微电子)VIPNano系列NPU IP,型号为 :VIP9000NANODI_PLUS_PID0X1000003B。

 

VeriSilicon的Vivante VIP9000系列为需要实时和低功耗AI设备的市场提供可编程、可扩展和可扩展的解决方案,具有行业领先的能效(TOPS/W)和面积效率(mm2/W)。

 

VIP9000系列IP支持所有流行的深度学习框架,并通过量化、修剪和模型压缩等优化技术原生加速神经网络模型。AI应用程序可以通过Vivante的ACUITYTM Tools SDK进行离线转换,轻松完成移植。

 

NPU

 

二、开发环境部署

 2.1  环境要求

操作系统:Ubuntu 20.04 LTS虚拟机

环境依赖:Python3.6+、Docker、交叉编译工具链

工具链:Acuity Toolkit(模型转换)、VivanteIDE(仿真调试)

硬件平台:眺望对照T536开发板(预装Tina Linux系统)

 2.2  工具安装

2.2.1 手动安装Acuity Toolkit模型转换工具

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

# 解压工具包(以Ubuntu 20.04为例)tar xvf Vivante_acuity_toolkit_binary_6.6.1_20220329_ubuntu20.04.tgzmv acuity-toolkit-binary-6.6.1 /opt/VeriSilicon/
# 安装依赖cd /opt/VeriSilicon/acuity-toolkit-binary-6.6.1pip3 install -r requirements.txt
# 配置环境变量echo 'export ACUITY_PATH=/opt/VeriSilicon/acuity-toolkit-binary-6.6.1/bin' >> ~/.bashrcsource ~/.bashrc

注:Acuity Toolkit适配配置需根据T536的NPU型号选择目标架构参数

 

 

2.2.2 Docker镜像快速部署(推荐)

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

# 加载镜像sudo docker load -i npu_Tool_docker_voxx.tar
# 启动容器(映射工作目录)sudo docker run -it --privileged \ -v /host/workspace:/container/workspace \ --name npu_t536_dev \ ubuntu-npu:v2.1 /bin/bash

 

三、模型部署流程(以YOLOV5为例)

 3.1  模型转换与量化

①准备模型文件

提供固定输入尺寸的ONNX模型(如yolov5s-sim.onnx,输入尺寸1x3x640x640)。

配置文件:

定义通道均值与缩放系数(例:0.0 0.0 0.0 0.00392157)。

指定输入输出节点名称。

②执行转换脚本

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

# 进入模型目录cd ai-sdk/models/yolov5s-sim
# 导入ONNX模型./pegasus_import.sh yolov5s-sim --input-size 640x640 --outputs 350 498 646
# 量化(uint8)./pegasus_quantize.sh yolov5s-sim uint8 --dataset ./images/dataset.txt
# 导出NBG模型(T536平台需指定型号 VIP9000NANODI_PLUS_PID0X1000003B)./pegasus_export_ovx_nbg.sh yolov5s-sim uint8 VIP9000NANODI_PLUS_PID0X1000003B ${VIV_SDK}

 

 3.2  编译示例程序

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

#在SDK根目录执行以下命令make menuconfigAllwinner ‑‑‑>Vision ‑‑‑><*> ai‑sdk‑viplite........................... allwinner npu viplite framework ‑‑‑>make ‑j32
# 输出路径out/xxx/compile_dir/target/ai-sdk/yolov5/yolov5

 

 3.3  运行示例程序

把二进制文件 yolov5、测试图片 dog_640_640.jpg 和模型文件yolov5s‑sim_uint8.nb(整个 test目录)推到板端,执行以下命令:

NPU
  •  
  •  
  •  
  •  
  •  
  •  
  •  

./yolov5 yolov5s‑sim_uint8.nb dog_640_640.jpg
VIPLite driver version=0x00010d00...detection num: 316: 82%, [111, 243, 256, 601], dog7: 69%, [390, 83, 576, 194], truck1: 45%, [83, 143, 468, 467], bicycl

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分