华北地区负责人:17340067106(毛经理)
华东地区负责人:17358670739(甘经理)
华南、华西地区负责人:19113907060(耿女士)
软件算法咨询:18982151213(刘先生)

联系我们
产品咨询

AI 边缘盒子自定义模型通用部署全流程(RK3588 / 算能 BM1684X/BM1688 通用

作者:万物纵横
发布时间:2026-06-04 10:08
阅读量:

通用链路:训练权重 (.pt/.pth)→导出 ONNX→PC 端工具转硬件专属模型→盒子端部署推理→集成视频 / API 服务


一、第一步:训练模型导出标准 ONNX(PC 训练机完成)


主流 YOLOv5/v8/v10、分类、分割模型统一先出 ONNX,固定输入尺寸,关闭动态 shape,方便量化


AI 边缘盒子自定义模型通用部署全流程(RK3588 / 算能 BM1684X/BM1688 通用(图1)


1.PyTorch (YOLO) 导出命令


# YOLOv8导出,imgsz和后续转换保持一致

yolo export model=自定义训练best.pt format=onnx imgsz=640,640 opset=12 simplify=True


参数:simplify=True简化 onnx 算子、去除冗余节点;opset11~12 适配绝大多数 NPU 转换工具


2. 避坑要点


1. 禁用torch.nn.Upsample(scale_factor=动态值),固定尺寸;


2. 预处理(归一化、resize)尽量写到推理代码,不要嵌入模型,减少转换失败概率。


二、第二步:PC 端模型量化 + 转为芯片专属格式(核心步骤)


方案 1:瑞芯微 RK3588/RK1828 盒子(生成.rknn)


工具:RKNN-Toolkit2(x86 电脑安装)


1. 安装环境


pip install rknn-toolkit2


2. 极简转换 Python 代码


from rknn.api import RKNN

rknn = RKNN()

# 加载onnx

rknn.load_onnx('best.onnx')

# 配置:RK3588、INT8量化

rknn.config(target_platform='rk3588',quantized_dtype='asymmetric_quantized-u8')

rknn.build(do_quantization=True,dataset='./calib.txt')#校准数据集(20~100张图片)

rknn.export_rknn('custom.rknn')

rknn.release()


输出:custom.rknn(NPU 加速模型,体积≈原浮点 1/4,提速 2~4 倍)


方案 2:算能 BM1684X/BM1688 盒子(生成.bmodel)


工具:TPU-MLIR + sophon-model(x86 Ubuntu)


# ONNX转INT8 bmodel

sophon-model --mode convert --model best.onnx --output custom.bmodel --target BM1684X --qtype INT8


输出custom.bmodel,为算能 TPU 原生推理格式


方案 3:英伟达 Jetson 盒子


ONNX→TensorRT(.engine):trtexec --onnx=best.onnx --fp16 --saveEngine=best.engine


三、第三步:模型 + 推理程序上传边缘盒子


1. 盒子环境准备(Linux 系统,ARM aarch64)


RK 盒子:预装librknnrt.soNPU 运行库;算能盒子预装sophon-sailSDK(默认路径/opt/sophon/)


上传方式:


①SSH scp 传输:scp custom.rknn root@盒子IP:/root/model/


②U 盘拷贝、samba 共享


2. 盒子端 2 种推理运行方式


方式 A:Python 快速调试(最快落地,验证模型)


RK3588 Python 示例


from rknn.api import RKNN

rknn=RKNN()

rknn.load_rknn('./custom.rknn')

rknn.init_runtime()#绑定NPU

# 读取图片预处理→推理→解析检测框


BM1684X Python 示例(sail 库)


import sophon.sail as sail

handle = sail.Handle(0)

engine = sail.Engine(handle,"custom.bmodel",0)

# 输入图像numpy数组推理

out = engine.process("images",[img_np])


方式 B:C++ 编译成品程序(量产商用)


1. PC 交叉编译 aarch64 可执行文件;


2. 编译产物 + 模型一起传到盒子,./detect ./custom.rknn直接运行。


四、第四步:业务集成(摄像头接入 + HTTP 接口)


1. 视频流接入:FFmpeg/OpenCV 读取 RTSP 摄像头→帧预处理→送入模型推理;


2. 对外 API:用 FastAPI/Flask 封装推理接口,盒子开启 http 服务,后端平台调用;


3. 容器部署(可选):打包 Docker 镜像,docker run一键启动算法服务,方便批量盒子统一部署。


五、常见优化 & 报错处理


1. 量化后精度暴跌:补充校准数据集、改用 FP16 量化、部分层强制浮点;


2. 转换 onnx 报错:用onnx-simplifier精简模型pip install onnx-simplifier && python -m onnxsim best.onnx sim_best.onnx;


3. 盒子 NPU 跑不满:固定输入分辨率、开启多 batch 推理、调整 NPU 内存分配(BM 系列专用内存修改工具)。


六、轻量化一键部署(无代码快速上线)


盒子预装推理管理平台(万物纵横 DA 系列边缘盒配套管理系统):


1. 后台上传 ONNX,平台自动云端转 rknn/bmodel;


2. 页面选择模型→绑定摄像头通道→一键启用智能识别。

家具维修培训

- END -
分享:
留言 留言 试用申请
产品咨询 产品咨询 硬件设备咨询
华北地区负责人:17340067106(毛经理)
华东地区负责人:17358670739(甘经理)
华南、华西地区负责人:19113907060(耿女士)
技术咨询 技术咨询 软件算法咨询
18982151213(刘先生)
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *