RKNN开发环境搭建(ubuntu22.04)
以下情况在RV1106G3的平台上验证正常。
1、conda安装
1)conda --version//确认是否安装
2)创建一个安装目录,进行下一步
3)wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh
4)安装miniconda
chmod 777 Miniconda3-4.6.14-Linux-x86_64.sh
bash Miniconda3-4.6.14-Linux-x86_64.sh
5)source ~/miniconda3/bin/activate
conda的一些指令:
conda create -n RKNN-Toolkit2 python=3.8 //新建环境
conda activate RKNN-Toolkit2 //激活环境
conda deactivate //退出环境
conda info --envs //查看已经创建的环境
6)创建环境
conda create -n RKNN-Toolkit2 python=3.8//新建环境
conda activate RKNN-Toolkit2//激活环境
python --version//确认python的版本
以下都在conda环境进行,基于python3.8
git clone https://github.com/rockchip-linux/rknn-toolkit2.git
cd rknn-toolkit2
pip install tf-estimator-nightly==2.8.0.dev2021122109
pip install -r rknn-toolkit2/packages/requirements_cp38-1.6.0.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install rknn-toolkit2/packages/rknn_toolkit2-1.6.0+81f21f4d-cp38-cp38-linux_x86_64.whl
python
>>> from rknn.api import RKNN
运行成功。
2、模型训练
git clone https://github.com/airockchip/yolov5.git
cd yolov5
创建conda环境yolov5:conda create -n yolov5 python=3.9
conda activate yolov5
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -r requirements.txt
#测试模型检测是否正常
python detect.py --source ./data/images/ --weights yolov5s.pt
#转为onnx
#####这里的pt文件可以从别的地方训练好,在这边来转为onnx
python export.py --rknpu --weight yolov5s.pt --img-size 320 320
3、rknpu2驱动确认
dmesg | grep -i rknpu
//版本需要是v0.9.2以上
[root@luckfox root]# dmesg | grep -i rknpu
[ 2.807065] RKNPU ff660000.npu: RKNPU: rknpu iommu device-tree entry not found!, using non-iommu mode
[ 2.810135] RKNPU ff660000.npu: RKNPU: Initialized RKNPU driver: v0.9.2 for 20230825
[ 2.810244] RKNPU ff660000.npu: dev_pm_opp_set_regulators: no regulator (rknpu) found: -19
驱动所在目录:/oem/usr/lib,文件为librknnmrt.so,替换即可。
4、转模
conda activate RKNN-Toolkit2
cd rk/luckfox_pico_rknn_example/scripts/luckfox_onnx_to_rknn/convert
python convert.py ../model/yolov5.onnx ../dataset/yolov5_dataset.txt ../model/yolov5_fzk.rknn Yolov5
python convert.py ../model/yolov5s_320x320.onnx ../dataset/yolov5_dataset.txt ../model/yolov5s_320x320.rknn Yolov5
5、luckfox_pico_rknn_example
git clone https://github.com/LuckfoxTECH/luckfox_pico_rknn_example.git
cd luckfox_pico_rknn_example/scripts/luckfox_onnx_to_rknn
cd luckfox_pico_rknn_example
export LUCKFOX_SDK_PATH=/home/f/Desktop/rk/luckfox_rv1106g3/luckfox-pico
./build.sh
install的目录复制到板卡 :
cd /0_fzk
./luckfox_pico_yolov5 ./model/yolov5.rknn
6、luckfox_pico_rkmpi_example
git clone https://github.com/LuckfoxTECH/luckfox_pico_rkmpi_example.git
cd luckfox_pico_rkmpi_example
export LUCKFOX_SDK_PATH=/home/f/Desktop/rk/luckfox_rv1106g3/luckfox-pico
./build.sh
install的目录复制到板卡 :
cd /0_fzk
./luckfox_pico_rtsp_yolov5
vlc:
ffplay -fflags nobuffer -flags low_delay -rtsp_transport tcp rtsp://192.168.1.168/live/0
7、npu的负载查看
cat /proc/rknpu/load