Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(模型转换)

YOLOv26 ONNX → RKNN 转换实践(RK3588)

在上一篇文章中,我们已经成功获取并验证了 YOLOv26 特调版 ONNX 模型 在 RK3588 上的推理流程参考:《Yolov26 在 RK3588 上的 RKNN ONNX 部署实践(C++)》

本文将重点介绍 如何将 ONNX 模型转换为 RKNN 模型,包含量化数据集的准备、ONNX→RKNN 转换脚本以及实际调用示例。


一、量化数据集的创建

RKNN 在进行 INT8 / UINT8 量化时,需要提供一份 代表性数据集(Calibration Dataset)。该数据集用于统计激活分布,对最终精度影响较大。

本文采用从原始图片数据集中 随机抽取最多 400 张 JPG 图片 的方式,生成 RKNN 所需的数据集目录与 dataset.txt 文件。

1. 脚本说明

  • 随机抽取图片,避免数据分布过于集中
  • 自动创建 datasets/xxx/ 目录
  • 生成与 RKNN 要求一致的相对路径 txt 文件

2. 创建量化数据集脚本(create_rk_dataset.py)

#!/usr/bin/env python
# coding=utf-8
"""
Create calibration dataset for RKNN quantization
"""
import os
import random
import shutil
from pathlib import Path

# 原始图片路径
data_path = "/data/DATA/images"
# RKNN 数据集输出路径
rk_data_path = f"datasets/{
     
     Path(data_path).parent.stem}"

# 清理旧文件
if os.path.exists(f"{
     
     rk_data_path}.txt"):
    os.remove(f"{
     
     rk_data_path}.txt")

if os.path.exists(rk_data_path):
    shutil.rmtree(rk_data_path)

os.makedirs(rk_data_path, exist_ok=True)

# 获取 JPG 文件列表
image_files = [f for f in os.listdir(data_path) if f.endswith('.jpg')]
print(f"找到 {
     
     len(image_files)} 张 JPG 图片")

# 最多抽取 400 张
num_files = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值