Toybrick

中文 / EN
Toybrick Wiki教程 TB-RK1808S0 Linux上位机环境安装
Linux上位机环境安装

本章节主要描述RK1808 AI计算棒如何在Ubuntu18.04的PC上,基于python3.6使用RKNN-Toolkit快速运行深度神经网络模型mobilenet_v1的例子。

环境准备

装有 ubuntu 18.04 操作系统的 intel 酷睿 i3 以上的 x86 的 64 位 PC。

• RK1808 人工智能计算棒

• 将 RK1808 AI计算棒插入PC的USB接口上,使用lsusb命令查看,如下(其中红色字体部分 2207:0018即为我们的RK1808 人工智能计算棒):

1、输入命令如下:

lsusb

2、执行结果如下:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 009: ID 2207:0018

RKNN-Toolkit安装

RKNN-Toolkit是瑞芯微为用户提供的基于python接口编程的模型转换、推理和性能评估的NPU开发套件,本节以装有ubuntu 18.04 操作系统的x86的64位PC为例,说明当Python版本为 3.6时如何安装 RKNN-Toolkit, 以下是在终端下执行的命令:

• 安装 Python3.6

sudo apt-get install python3.6

• 安装 OpenCV

 sudo apt-get install -y  python3-opencv

• 安装 pip3

sudo apt-get install python3-pip

• 插入TB-RK1808人工智能计算棒,PC上会显示U盘设备,U盘设备的目录结构如下:


QQ图片20190729182016.png


• 执行以下步骤:

1. 在当前用户目录创建rknn目录, 并进入rknn目录:

mkdir ~/rknn
cd ~/rknn

2. 安装 wget:

sudo apt-get install -y wget

3.  从官方FTP文件服务器下载RKNN-Toolkit:

wget http://repo.rock-chips.com/python/rknn_toolkit-1.1.0-cp36-cp36m-linux_x86_64.whl

4.  安装 Python 依赖,tensorflow最低版本要求1.11.0,这里以安装1.13.1为例:

pip3 install --user tensorflow==1.13.1

5. 安 RKNN-Toolkit:

pip3 install --user rknn_toolkit-1.1.0-cp36-cp36m-linux_x86_64.whl

注:RKNN-Toolkit包必须与python版本一致, ubuntu18.04缺省默认是python3.6。

6.检查 RKNN-Toolkit 是否安装成功。

    1)  在终端下输入以下命令:

python3

    2)在python3运行环境下输入以下代码, 导入RKNN模块:

from rknn.api import RKNN

       (a)RKNN模块导入成功的情况如下:

$ python3
>>> from rknn.api import RKNN
>>>

       (b) 如果导入RKNN 模块没有报错,然后输入quit()退出Python3(跳过以下第(3)步骤)。

       (c)如果导入RKNN模块报以下错误,这是由于RKNN依赖的Tensorflow的安装包使用的是SSE4.2指令集,这些指令无法在旧版的CPU上运行,请检查并更换一台支持SSE4.2指令集的PC。

$ python3
>>> from rknn.api import RKNN
2019-06-25 20:10:25.255397: F tensorflow/core/platform/cpu_feature_guard.cc:37] The TensorFlow library was compiled to use SSE4.2 instructions, but these aren't available on your machine.

设备访问权限修改

1.   插入RK1808 人工智能计算棒,需要修改其USB设备访问权限,操作步骤如下:

1)返回至U盘根目录, 拷贝tool/update_rk1808_ai_cs_rule.sh到当前HOME目录的rknn目录下, 修改update_rk1808_ai_cs_rule.sh为可执行权限。

cp tool/update_rk1808_ai_cs_rule.sh  ~/rknn -f
chmod +x ~/rknn/update_rk1808_ai_cs_rule.sh

2)返回至rknn目录,update_rk1808_ai_cs_rule.sh必须以root权限执行。

cd  ~/rknn
sudo ./update_rk1808_ai_cs_rule.sh

注:这一步只有在安装的时候需要执行一次,以后都不需要执行。

2.   执行完脚本后,查看RK1808 人工智能计算棒的USB设备编号。

   1)输入以下命令:

lsusb

      2)执行结果如下:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 009: ID 2207:0018

注:其中Bus 003 Device 009是计算棒的设备编号。

3.   根据计算棒的USB设备编号, 确认RK1808 人工智能计算棒设备的读写权限

     1)输入以下命令:

ls -l /dev/bus/usb/003/009

注:以上的003/009,不同的PC得到编号可能不一样,视具体情况而定。

    2)   执行结果如下(正确的读写权限如红色字体部分所示):

crw-rw-rw- 1 root root 189, 264 6 月 14 16:02 /dev/bus/usb/003/009 

运行示例

这里以mobilenet_v1为例,mobilenet_v1示例实现的功能是对一张图片进行特征提取,并识别这张图片所属分类。

以下是mobilenet_v1示例的目录结构及说明如下:

1.png

• dataset.txt: 包含测试图片路径的文本文件。

• dog_224x224.jpg: 作为mobilenet_v1示例的测试图片。

• mobilenet_v1.tflite: TensorFlow Lite模型文件。

• mobilenet_v1.rknn: rknn模型文件。由非rknn模型文件(这里是TensorFlow Lite模型)经过RKNN-Toolkit模型转换生成的该rknn模型文件。

• test.py: 示例运行脚本(包含rknn模型转换部分)。

• test_inference.py: 示例运行脚本(仅加载rknn模型进行推理)。

示例运行步骤如下:

1、从官方FTP文件服务器下载mobilenet_v1压缩包,并解压出来

wget http://repo.rock-chips.com/rk1808/mobilenet_v1.tar.gz
tar xvf mobilenet_v1.tar.gz

2、进入mobilenet_v1目录, 并执行test.py 脚本:

cd mobilenet_v1/
python3 test.py

3、得到如下结果

--> config model
done
--> Loading model
done
--> Building model
done
--> Export RKNN model
done
--> Init runtime environment
done
--> Running model
mobilenet_v1
-----TOP 5-----
[156]: 0.8837890625
[155]: 0.0677490234375
[188 205]: 0.00867462158203125
[188 205]: 0.00867462158203125
[263]: 0.0057525634765625
 
done
--> Begin evaluate model performance
========================================================================
                               Performance                              
========================================================================
Total Time(us): 7140
FPS: 140.06
========================================================================
 
done

4、根据以上执行结果可知,TOP5表示模型预测出来的排名前5的分类的结果,其中[156]表示狗的标签,0.8837890625表示预测为该标签的概率,可以看出预测结果为狗的可能性最大,从测试图片(dog_224x224.jpg)可以看出预测结果是准确的。


有关RKNN-Toolkit更详细的用法和接口说明,请参考《Rockchip_RK1808_AI_Compute_Stick_User_manual_CN.pdf》手册。










产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


返回顶部