Firefly AIO-3399ProC开发板安装RKNN Toolkit 1.6.0开发环境

本文详细介绍在Firefly AIO-3399ProC开发板上部署RKNN Toolkit 1.6.0的过程,包括环境搭建、依赖安装及常见问题解决。

前言

实验室的项目需要用到Firefly的AIO-3399 ProC开发板,该型号开发板集成了硬件加速芯片NPU(神经网络加速单元),经tensorflow、PyTorch等训练好的模型可用官方提供的RKNN Toolkit工具转换为.rknn格式的模型,运行在开发板上利用NPU进行对数据的后向推理加速处理。RKNN Toolkit开发套件安装繁琐,前前后后折腾了一周的时间才算部署成功,故记录下部署过程及遇到的问题,以供自己和各位参考。

一、开发部署环境

开发环境 软件版本/配置
开发板型号 Firefly AIO-3399 ProC开发板 (3+16GB)
开发板操作系统 Ubuntu 18.04LTS
开发板固件版本 AIO-RK3399PROC-UBUNTU18.04-GPT-20200525-1016.img
RKNN Toolkit版本 1.6.0 (rknn_toolkit-1.6.0-cp37-cp37m-linux_aarch64.whl)
Python版本 Python 3.7.10
电脑远程软件 Xshell 6&Xftpd 6

二、RKNN 三件套介绍

1、RKNN-Toolkit → 基于 Python 环境的模型转换推理开发工具
2、DRV → NPU 和上位机通信的服务
3、API → 调用NPU 硬件的 API 接口

三、安装过程

3.1 查看开发板中DRV的版本(1.3.1)

firefly@firefly:~$ dpkg -l | grep 3399pro
ii  firefly-3399pronpu-driver      1.3.1       arm64        <insert up to 60 chars description>

更新DRV的版本

sudo apt update
sudo apt install firefly-3399pronpu-driver

更新完后,检查DRV的版本已升级至1.6.0

firefly@firefly:~$ dpkg -l | grep 3399pro
ii  firefly-3399pronpu-driver      1.6.0       arm64        <insert up to 60 chars description>

3.2 关闭开发板当前系统的图形界面

使用Xshell 6 SSH登录开发板,进行下列操作,防止后续编译软件包时因系统内存不足导致编译失败
(谨慎使用,最新固件AIO-RK3399PROC-UBUNTU-20210304-1705.img关闭图形界面后会导致系统无法启动,串口显示如下报错信息:

4189 串口[    4.772713] 00000040: 000002a5 000002a5 00000000 00000000 00000000 00000000 00000000 00000000
4190 串口[    4.773490] 00000060: 00000004 00000004 00000753 00000753 00000000 00000000 00000000 00000000
4191 串口[    4.774254] 00000080: 00000000 00000000
4192 串口[    4.820522] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
4193 串口[    4.820522] 
4194 串口DDR Version 1.24 20191016

AIO-RK3399PROC-UBUNTU18.04-GPT-20200525-1016.img该版本可以正常操作)

sudo systemctl set-default multi-user.target
sudo reboot
#未关GUI界面时的系统占用
Memory usage:  12 % of 1893MB
 Usage of /:    24% of 15G    
#关闭GUI界面时的系统占用
Memory usage:  4 % of 1893MB 	
Usage of /:    24% of 15G  

(PS:待RKNN Toolkit安装完成后可再手动开启用户界面

sudo systemctl set-default graphical.target
sudo reboot

3.3 安装Python3.7

sudo apt update #检查可更新文件
sudo apt install software-properties-common  #安装可添加源的工具
sudo add-apt-repository ppa:deadsnakes/ppa #添加源,否则会无法找到python3.7-dev软件包
sudo apt install python3.7-dev #安装python3.7

3.4 用virtualenv管理python版本

(开发板系统中同时存在多个 Python(Python2.7&python3.6)版本,建议使用 virtualenv来管
理 Python环境)

#创建 virtualenv环境
sudo apt install virtualenv #安装virtualenv软件
virtualenv -p /usr/bin/python3.7 venv  #创建虚拟环境
source venv/bin/activate  #激活venv环境
(venv) firefly@firefly:~$  pip3 -V #查看当前pip3所在Python的路径
pip 21.0.1 from /home/firefly/venv/lib/python3.7/site-packages/pip (python 3.7)pip

修改python默认为python3.7:
为了因为C++调用python时,默认是调用python2.7,这导致很多python3.7的语法报错。所以需要更改python默认软连接

#查看路径python,python3.7路径
which python python3.7
/usr/bin/python
/usr/bin/python3.7
sudo rm /usr/bin/python
sudo rm /usr/bin/python3
#创建python3.软连接到python&Python3
sudo ln -s /usr/bin/python3.7 /usr/bin/python
sudo ln -s /usr/bin/python3.7 /usr/bin/python3

至此Python3.7环境配置完成。

3.5 安装相关依赖包(numpy、h5py &opencv)

3.5.1 安装并更新相关依赖包

sudo apt-get update
sudo apt-get install cmake gcc g++ libprotobuf-dev protobuf-compiler 
sudo apt-get install liblapack-dev libjpeg-dev zlib1g-dev 
pip3 install --upgrade pip #更新pip包的版本
pip3 install wheel setuptools #安装 Python 打包工具

3.5.2 安装并编译numpy、h5py

(PS:opencv-python和h5py同时依赖的numpy包的版本必须是1.16.3,故需先安装编译numpy包。较难编译和费时较长的whl包已上传至网盘,如有需要,可从文末的链接下载到PC端,通过Xftpd软件上传至开发板安装目录,离线安装即可

重要 :安装包的顺序不可调换,否则默认安装的依赖包版本与RKNN所要求的冲突
执行以下命令:

pip3 install numpy==1.16.3 #安装numpy包,编译完成即可进行下一步
#或将离线包下载后安装
#pip3 install numpy-1.16.3-cp37-cp37m-linux_aarch64.whl 
pip3 install h5py==2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple  #安装h5py包,编译完成即可进行下一步

这时编译h5py包报错

/tmp/pip-install-g8zeu2wp/h5py_e742916510854ca6b68f847f94f04c44/h5py/api_compat.h:27:10: fatal error: hdf5.h: No such file or directory
     #include "hdf5.h"
              ^~~~~~~~
     compilation terminated
 error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
   ----------------------------------------
ERROR: Command errored out with exit status 1: 

需执行以下操作,安装缺少的依赖包,重新编译h5py

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值