# onnx2rknn-release **Repository Path**: spark_lab/onnx2rknn-release ## Basic Information - **Project Name**: onnx2rknn-release - **Description**: onnx模型 转 rknn模型自动化工具 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2024-10-15 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ONNX 转 RKNN 自动化工具使用说明及示例 ## 工具组成 - `bin.py` - ONNX 转 RKNN 自动化python脚本(单模型) - `sl_rknn_convert` - 并行化模型转换工具(支持单模型转换) - `config_template.yml` - 转换配置文件模板 (YAML 格式) ## 使用说明 本工具开发环境 + Python=3.12 + rknn_toolkit2=2.2.0 + glibc=2.34 + Ubuntu=24.04.1 LTS 经测试支持1.5.1版本的toolkit工具. ### 运行环境需求 本工具需要瑞芯微提供的`rknn-toolkit2`环境, https://github.com/airockchip/rknn-toolkit2. 环境安装参考 https://github.com/airockchip/rknn-toolkit2/blob/master/doc/02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.2.0_CN.pdf. ## 使用示例 ### 单文件转换 #### 示例步骤 1. 确定待转换模型 `mobilenetv2.onnx` 的路径,本例中为 `./examples/mobilenetv2.onnx`。 2. 准备转换时所需的数据集文件(txt 文件,每行一条数据),路径为 `./examples/ILSVRC2012_img_val_samples`。 3. 将 `config_template.yml` 重命名为 `mobilenetv2.yml`,并根据需求修改参数,本例中的配置文件存放在 `./examples`。 4. 执行以下命令进行转换: ```shell ./sl_rknn_convert -i examples/mobilenetv2.yml -o ./result ``` 转换成功后,工具将在脚本根目录下创建 `result` 文件夹,目录结构如下: ```shell result ├── mobilenetv2_accuracy_analysis ├── mobilenetv2_error_analysis.txt └── mobilenetv2.rknn ``` - `mobilenetv2_accuracy_analysis` 保存详细的精度分析报告。 - `mobilenetv2_error_analysis.txt` 保存精度对比分析报告。 - `mobilenetv2.rknn` 为转换生成的 RKNN 模型文件。 ### 多文件并行转换 #### 示例步骤 1. 确定待转换的模型路径,例如 `mobilenetv2.onnx` 和 `yolov5s_relu.onnx`,分别位于 `./examples/mobilenetv2.onnx` 和 `./examples/yolov5s_relu.onnx`。 2. 准备转换所需的数据集文件,路径为 `./examples/ILSVRC2012_img_val_samples`。 3. 将 `config_template.yml` 复制并分别重命名为 `mobilenetv2.yml` 和 `yolov5s_relu.yml`,根据需求修改参数,存放于 `./examples`。 4. 执行以下命令进行并行转换: ```shell ./sl_rknn_convert examples/mobilenetv2.yml examples/yolov5s_relu.yml -o ./result ``` 转换完成后,工具将在脚本根目录下创建 `result` 文件夹,目录结构如下: ```shell result ├── mobilenetv2_accuracy_analysis ├── mobilenetv2_error_analysis.txt ├── mobilenetv2.rknn ├── yolov5s_relu_accuracy_analysis ├── yolov5s_relu_error_analysis.txt └── yolov5s_relu.rknn ``` - `*_accuracy_analysis` 保存详细的精度分析报告。 - `*_error_analysis.txt` 保存精度对比分析报告。 - `*.rknn` 为转换生成的 RKNN 模型文件。 --- > 使用时如果遇到问题, 请与我们联系! > 联系邮箱: sparklab@qq.com