工作介绍
- RKNN工具环境配置
- 在ubuntu18.04上完成训练好的模型转化成rknn
- 将rknn文件进行交叉编译后将可执行demo文件上传到板卡
- 在板卡上进行模型推理,保存成图片查看推理效果。
安装ubuntu18.04
https://blog.csdn.net/weixin_44014740/article/details/114978872
sudo apt-get update
sudo apt-get upgrade
RKNN_Toolkit环境配置
按照Rockchip_Quick_Start_RKNN_Toolkit_V1.6.0_CN.pdf
RKNN Toolkit 快速上手指南的3.2节
(注意:文档中给的例子是python3.5,我的python是3.6,安装一些包的时候做相应的修改)
问题1:
安装opencv报错
ModuleNotFoundError: No module named ‘skbuild’
解决:
sudo apt install cmake
pip3 install scikit-build
问题2:
pip安装opencv时卡住
Running setup.py bdist_wheel for opencv-python … /
解决:
pip3 install --upgrade pip
最后能按照手册测试成功即环境配置完成
量化(生成.rknn文件)
用deploy.prototxt和caffemodel以及一些校准图片生成rknn
- 选择的prototxt和caffemodel要对应
- prototxt要修改input的格式和删除nms后处理部分
输入数据格式修改成caffe的layer格式
layer {
name: "data"
type: "Input"
top: "data"
input_param {
shape {
dim: 1
dim: 1
dim: 240
dim: 320
}
}
}
将后处理部分全部删除
layer {
name: "detection_out"
type: "DetectionOutput"
bottom: "mbox_loc"
bottom: "mbox_conf_flatten"
bottom: "mbox_priorbox"
top: "detection_out"
include {
phase: TEST
}
detection_output_param {
num_classes: 2
share_location: true
background_label_id: 0
nms_param {
nms_threshold: 0.449999988079
top_k: 400
}
code_type: CENTER_SIZE
keep_top_k: 200
confidence_threshold: 0.00999999977648
}
}
完成对prototxt的修改就可以在Ubuntu可视化环境下进行量化
python3 -m rknn.bin.visualization
- 由于模型输入是单通道的灰度图,Mean Value和Standard Value为单个值
- Whether To Enable Pre-Compile选择为True(后续要上板子)
交叉编译
将src里的c++文件的操作编译生成可执行文件(可在本地ubuntu或服务器上进行)
我使用的pelee修改的单通道灰度图网络,由于最后保存成彩色图片查看效果,输入使用使用gray_img,画检测框并保存在rgb_img上进行,所以要在main.cc中进行一定的修改
imread(imgpath,0)#opencv的读图函数0表示灰度图,1表示rgb,默认为1
最后会产生install文件夹,copy到板子上就可以进行推理
安装交叉编译器
包里有交叉编译的工具
解压后将gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf移动到/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
修改gcc编译路径
回到rv1126_rv1109/external/rknpu/rknn/rknn_api/examples/rknn_mobilenet_demo目录下,打开并修改build.sh文件,操作如下:
build编译模型./build.sh
./build.sh
会产生build和install文件夹
需要使用的可执行文件在install里
其他sdk例子
path:external/rknpu/rknn/rknn_api/examples/
ssd、yolov5等模型可进行编译后上板子测试
板卡推理
板卡连接
连接:网口或者串口
网口连接:
- 要先更改自己的电脑的ip与板卡对应(192.168.0.1)
2. MobaXterm 连接板卡ip:192.168.0.100
3. 账户:root,pwd:0801
板卡运行
- 将编译生成的install文件夹copy到自己的文件夹下
- 提高文件夹权限chmod -R 777 /wyh
- 修改run_rv1109_rv1126.sh文件的模型路径和测试图片路径
- 执行批处理操作:sh run_rv1109_rv1126.sh
cd ..
cd /wyh/rknn_pelee_demo/
chmod -R 777 /wyh
./run_rv1109_rv1126.sh