本帖最后由 aramy 于 2024-5-10 09:39 编辑
RKNN模型介绍:
RKNN模型,全称Rockchip Neural Network,是由瑞芯微电子公司推出的一种深度学习模型的开发和运行框架。它主要用于优化和压缩深度学习模型,使其能够在低功耗设备上高效运行。
RKNN模型的核心技术包括量化和剪枝。量化是通过减少模型中的数值精度来减少模型大小,而剪枝则是移除模型中不重要的参数或层,以进一步减少模型的复杂性和提高计算效率。此外,RKNN还采用了局部连接层替换传统神经网络中的全连接层,这样每个神经元只与输入数据的一个局部区域相连,从而大幅减少了模型的参数数量并提高了处理速度。
确实是第一次接触RKNN模型,还处于懵懂状态,不过没关系,论坛的优势体现出来了,跟着大佬们做,边做边学。
搭建环境:
看帖子,RKNN模型需要的Python的环境版本很低,不太明白为啥,是好久没更新了吗?先不管了,按着步骤操作,先用acconda创建一个新的python环境,python版本为3.6.13。然后激活环境。
conda create --name=RKNN python=3.6.13
activate RKNN
接下来安装需要的包
pip install scikit-build
pip install opencv-python==4.3.0.38
pip install tensorflow==1.15.5
pip install matplotlib
还有两个包比较大,直接安装我这里是出问题了,所以下载下来,采用离线的方式进行安装。我将安装包通过百度云的方式共享出来了。
pip install torch-1.10.1-cp36-cp36m-win_amd64.whl
pip install rknn_toolkit-1.7.5-cp36-cp36m-win_amd64.whl
链接:https://pan.baidu.com/s/1_JPv6onChlj1IrqQ2eD-tw
提取码:jpln
在安装rknn包时,很有意思。其中有个依赖包"onnxoptimizer",系统会自动地去匹配版本,当前版本不匹配,会安装报错,但是会自动地降低版本去下载安装。所以保证网络畅通,直到安装成功。
最后一定要等到所有的包都成功安装完成。
转换模型:
来到最后一步,将上次“手写识别”生成的onnx模型文件,转换为rknn模型文件。
from rknn.api import RKNN
# 创建 RKNN 对象
rknn = RKNN()
# 加载 ONNX 模型
ret = rknn.load_onnx(model='best_model.onnx')
# 模型配置
rknn.config(mean_values=[[128]], std_values=[[128]]) #图片归一化到【-1,1】
# 模型转换
ret = rknn.build(do_quantization=False) # 这里设置是否量化
# 保存 RKNN 模型
ret = rknn.export_rknn('best_model.rknn')
# 释放 RKNN 对象
rknn.release()