1. RK3588开发环境搭建全记录
最近在调试一块RK3588的开发板,需要搭建rknn-toolkit2的开发环境来跑一些AI模型。整个过程踩了不少坑,这里把完整的搭建过程和解决方案记录下来,希望能帮到有同样需求的朋友。
我的宿主机环境是Ubuntu 18.04 Server版,这个版本比较稳定,但有些库的版本需要特别注意。下面就从最基础的conda环境安装开始,一步步记录整个搭建过程。
1.1 Conda环境配置
首先需要安装Anaconda来管理Python环境。我选择了清华镜像站的Anaconda3-2021.11-Linux-x86_64.sh版本:
bash复制wget --user-agent="Mozilla" https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
下载完成后直接执行安装脚本。安装过程中有几个关键点需要注意:
- 安装路径建议选择默认的/home/用户名/anaconda3
- 安装完成后要执行
source ~/.bashrc让环境变量生效 - 建议不要将conda init到shell中,这样可以保持环境干净
安装完成后,我创建了一个Python3.8的虚拟环境:
bash复制conda create -n python38 python=3.8
conda activate python38
选择Python3.8是因为rknn-toolkit2对这个版本的支持最好。如果需要退出当前环境,使用conda deactivate命令。
1.2 rknn-toolkit2依赖安装
进入python38环境后,需要安装rknn-toolkit2的依赖。这里有个坑需要注意:直接使用pip安装可能会报找不到numpy1.17.3的错误。
正确的做法是使用官方提供的requirements文件:
bash复制pip3 install -r requirements_cp38-1.3.0.txt
这个文件包含了所有必要的依赖和正确的版本号。安装过程中如果遇到网络问题,可以考虑使用国内镜像源:
bash复制pip3 install -r requirements_cp38-1.3.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
2. rknn-toolkit2安装与验证
2.1 安装rknn-toolkit2
依赖安装完成后,进入RK3588 SDK的external/rknn-toolkit2/packages目录,执行安装:
bash复制pip3 install rknn_toolkit2-1.3.0-cp38-cp38-linux_x86_64.whl
这里我遇到了一个常见问题:直接使用pip3 install rknn-toolkit2会报错,必须使用whl文件安装。如果遇到类似问题,建议:
- 确认Python版本是3.8
- 确认已经安装了所有依赖
- 使用完整的whl文件路径
安装完成后,可以简单验证一下:
python复制from rknn.api import RKNN
print("RKNN toolkit imported successfully")
如果没有报错,说明安装成功了。
2.2 运行官方示例
为了验证环境是否正常工作,我运行了官方提供的示例。进入examples目录,执行:
bash复制python3 test.py
运行成功后会在当前目录生成两个新文件:
- test.rknn:转换后的RKNN模型
- test.jpg:处理后的输出图像
这个简单的测试可以确认rknn-toolkit2的基本功能是正常的。
3. 高级功能测试
3.1 QAT量化测试
接下来我测试了量化感知训练(QAT)的功能。这个功能对于在RK3588上部署高效模型非常重要。
bash复制python3 qat_test.py
QAT测试需要注意几点:
- 输入图像尺寸必须符合模型要求
- 量化参数需要根据实际场景调整
- 测试前确保模型已经正确转换为RKNN格式
测试结果显示量化后的模型精度损失在可接受范围内,说明QAT功能工作正常。
3.2 YOLOv5目标检测测试
最后我测试了YOLOv5目标检测模型,这是实际项目中常用的功能。
bash复制python3 yolov5_test.py
运行后模型能正确识别出图像中的目标,并标注出边界框和类别。这里有几个实用技巧:
- 对于不同的应用场景,需要调整置信度阈值
- 输入图像的长宽比最好与训练时一致
- 后处理代码可能需要根据实际需求修改
4. 常见问题与解决方案
4.1 安装问题排查
在环境搭建过程中,我遇到了几个典型问题:
-
numpy版本冲突:
- 现象:提示找不到numpy1.17.3
- 解决:使用官方requirements文件安装
-
pip安装失败:
- 现象:直接pip install rknn-toolkit2报错
- 解决:使用whl文件安装
-
环境混乱:
- 现象:多个Python版本冲突
- 解决:使用conda创建干净的Python3.8环境
4.2 磁盘空间管理
整个环境安装完成后,磁盘空间消耗很大。我的系统从90GB可用降到了79GB。建议:
- 定期清理conda缓存:
conda clean -a - 删除不必要的测试模型和中间文件
- 考虑使用更大的磁盘或者外接存储
5. 性能优化建议
在实际使用中,我发现几个可以提升效率的方法:
- 模型量化:使用QAT可以显著减小模型大小并提升推理速度
- 多线程处理:RK3588有强大的多核CPU,合理使用多线程可以提高吞吐量
- 内存管理:大模型可能会占用很多内存,需要注意及时释放不再使用的模型
经过这一系列测试,rknn-toolkit2环境已经可以正常工作,能够满足后续的开发需求。整个过程中最重要的是保持环境干净,严格按照官方文档操作,遇到问题时耐心排查。