RV1109_RV1126 EVB板使用总结

RV1109_RV1126型号EVB板使用说明

由于最近在做有关开发板的相关工作,苦于网络上关于RV1126型号的相关资料太少,且之前从来没有接触过嵌入式等相关内容,故在踩了无数坑之后总结如下,希望能够帮助到有需要的新手朋友们(高手大可不必!!!)。

一、Windows系统安装adb串口调试

首先,对于RV1126型号开发板来说,最首先的任务是能够进入到开发板内部的系统之内,才能更好的方便之后的算法部署等开发工作。
基于上述原因,具体步骤如下:

# 下载安装adb相关文件,并将开发板与PC主机通过USB相连
# 进入cmd命令
# 进入adb所在目录,执行下述命令
cd adb
adb shell

通过上述,即可顺利进入RV1126开发板系统内部(也可通过linux终端进入),之后可根据需求利用linux命令在开发板内部快乐的遨游!!!

二、RV1126开发板SDK编译

2.1 在PC端安装ubuntu16.04

其他版本的ubuntu系统应该也可以,由于相关文档推荐,故采用了ubuntu16.04系统,大家也可以尝试其他更新的系统进行测试。

2.2 解压SDK源码

关于SDK的获取这里不再介绍,大家可以从官方渠道获取。当获取到SDK包后,可打开ubuntu的终端,按步骤进行如下操作。

# 解压RV1126开发板SDK源码
mkdir rv_1126_rv1109
tar xjf rv1126_rv1109_linux_sdk_v1.0.0_20200616.tar.bz2 -C rv1126_rv1109
cd rv1126_rv1109
.repo/repo/repo sync -l
.repo/repo/repo sync -c

2.3 安装相关依赖

在解压完成后,需要进行编译环境的搭建,并进行相关依赖库的安装。

sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools 
device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev 
python-linaro-image-tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 
intltool libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip gawk 
bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev
libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client subversion asciidoc 
w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev expect fakeroot cmake

2.4 编译RV1126开发板SDK

方式1:进行全自动编译(包括U-BOOT、Kernal、Buildroot、Recovery编译)
sudo ./build.sh all
注:第一次编译会花费很多时间,尽可能保持网络畅通

方式2:分别进行编译
sudo ./build.sh uboot  # U-BOOT编译
sudo ./build.sh kernel   # Kernal编译
sudo ./build.sh buildroot   # Buildroot编译
sudo ./build.sh recovery   # Recovery编译

注:在编译完成后可进行板子的固件烧录,由于我拿到的开发板是已经烧录好的,故没有进行具体的烧录工作。

三、安装RKNN-Toolkit工具包

由于这块板子后续需要进行相关算法的部署,在查阅了相关资料以及开发文档后,选择安装RKNN-Toolkit安装包,为后续的算法部署打好基础。

3.1 在ubuntu16.04上操作

3.2 创建rk_env环境

# 通过anaconda3创建rk_env环境,方便管理该python版本下的环境
conda create -n rk_env python=3.6.6
source activate rk_env

3.3 安装pip3

# 由于在创建环境时anaconda默认安装了pip,直接使用也可以
sudo apt-get install python3-pip

3.4 获取RKNN-Toolkit安装包

# 进入SDK包内external/rknn-toolkit/packages
cd packages/

# 安装python相关依赖
pip3 install tensorflow-gpu==1.11.0   # tensorflow GPU版本
pip3 install tensorflow==1.11.0   # tensorflow CPU版本
pip3 install mxnet==1.5.0
pip3 install torch==1.2.0 torchvision==0.4.0
pip3 install opencv-python
pip3 install gluoncv

# 安装RKNN-Toolkit
pip install rknn_toolkit-1.4.0-cp36-cp36m-linux_x86_64.whl

# 检查RKNN-Toolkit是否安装成功
python3
from rknn.api import RKNN
# 如果导入模块没有失败,说明安装成功

四、在PC上仿真运行实例

在安装完rknn工具包后,可通过SDK中的相关demo进行测试,此部分主要是利用PC的CPU 以及rknn环境进行测试。

# 进入examples/tflite/mobilenet_v1目录
cd ..
cd /examples/tflite/mobilenet_v1

# 执行test.py脚本
python3 test.py

demo运行结果

图1 mobilenet_v1结果图

在这里插入图片描述

图2 mobilenet_v1网络层运行时间

五、在RV1126开发板上运行实例

此部分将RV1126开发板连接至PC端,利用PC平台进行开发板的模型算法测试,此处利用的是开发板上的NPU。

# 查询RV1126开发板的设备编号
# 将RV1126通过USB连接到PC上,查看设备编号
adb devices

# 进入examples/tflite/mobilenet_v1目录
cd examples/tflite/mobilenet_v1

# 修改test.py脚本里的config参数和init_runtime参数
vim test.py
# 找到脚本里调用模型配置接口 config 的地方,如下:
rknn.config(channel_mean_value='128 128 128 128', reorder_channel='0 1 2')
# 注意,channel_mean_value的值默认初始值,不需要修改
# 修改该接口的参数
rknn.config(channel_mean_value='128 128 128 128', reorder_channel='0 1 2', target_platform=['rv1126'])
# 找到脚本里初始化环境变量的方法 init_runtime,如下:
ret = rknn.init_runtime()
# 修改该方法的参数
ret = rknn.init_runtime(target='rv1126', device_id='xxx')  # 这里的xxx填之前找到的设备编号
# 保存修改并退出

# 执行test.py脚本
python3 test.py

在这里插入图片描述

图3 mobilenet_v1结果图

六、将模型文件上传至板子上运行

此处是将写好的模型算法push到开发板上,通过adb调试进入板子系统内部进行算法的运行,与上述两种测试有本质上的不同。

6.1 安装交叉编译器

# 下载gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
# 移动安装包至/home/xxx
# 解压安装包至/home/xxx/gcc目录中(此处xxx指用户名,请根据自身情况修改)
sudo tar -xvf /home/xxx/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C /home/xxx/gcc
# 解压完成后,执行下述命令,添加环境变量
vim ~/.bashrc
# 在最后添加路径
export PATH="/home/xxx/gcc/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin:$PATH"
# 使用source命令重新加载生效该配置文件
source ~/.bashrc
# 查看安装是否成功
arm-linux-gnueabihf-gcc -v

6.2 修改gcc编译路径

回到rv1126_rv1109/external/rknpu/rknn/rknn_api/examples/rknn_mobilenet_demo目录下,打开并修改build.sh文件,操作如下:
注释 # for rk1808 aarch64 下面的GCC_COMPILER=~/opts/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu# for rv1109/rv1126 armhf下面路径修改如下

在这里插入图片描述

图4 修改路径图片

6.3 build编译模型

在rv1126_rv1109/external/rknpu/rknn/rknn_api/examples/rknn_mobilenet_demo目录下,执行如下命令:
./build.sh

6.4 将模型push到RV1126开发板上

adb shell
cd userdata
mkdir -p examples/rknn_mobilenet_demo
adb push install/rknn_mobilenet_demo /userdata/examples/rknn_mobilenet_demo/

6.5 在RV1126上运行模型

adb shell
cd userdata/examples/rknn_mobilenet_demo
./rknn_mobilenet_demo model/mobilenet_v1_rv1109_rv1126.rknn model/dog_224x224.jpg

在这里插入图片描述

图5 运行结果

七、yolo3测试

7.1 基于PC测试

# 激活环境
source activate rk_env
# 打开yolov3根目录
cd rv1126_rv1109/external/rknn-toolkit/examples/darknet/yolov3/
# 安装matplotlib库(已有则忽略)
pip install matplotlib
# 运行yolo3测试文件
python3 test.py

在这里插入图片描述

图6 运行结果

7.2 基于PC-RV1126测试

# 激活环境
source activate rk_env
# 打开yolov3根目录
cd rv1126_rv1109/external/rknn-toolkit/examples/darknet/yolov3/

# 修改test.py文件参数
# 找到脚本里调用模型配置接口 config 的地方,如下:
rknn.config(channel_mean_value='128 128 128 128', reorder_channel='0 1 2')
# 修改该接口的参数
rknn.config(channel_mean_value='128 128 128 128', reorder_channel='0 1 2', target_platform=['rv1126'])
# 找到脚本里初始化环境变量的方法 init_runtime,如下:
ret = rknn.init_runtime()
# 修改该方法的参数
ret = rknn.init_runtime(target='rv1126', device_id='xxx')   # xxx为设备编号
# 保存修改并退出

# 运行yolo3测试文件
python3 test.py

在这里插入图片描述

图7 运行结果

在这里插入图片描述

图8 图片测试结果
  • 17
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值