整体分5 大阶段:模型预处理→模型格式转换→盒子环境部署→推理程序开发→工程上线运维,主流国产 NPU 盒子(瑞芯微 RK、算能 BM、地平线、华为 Atlas)核心逻辑一致,仅模型后缀与 SDK 不同。

一、阶段 1:云端模型轻量化优化(PC 端完成)
训练产出pt/pth(PyTorch)/h5(TensorFlow)原始模型,先做压缩适配边缘算力,不优化直接跑极易 OOM、卡顿:
1. 轻量化选型:优先 MobileNet、YOLOv8-n/s、ShuffleNet 等轻量骨架;大模型做知识蒸馏,用大模型训小模型。
2. 模型压缩三手段
量化:FP32→FP16/INT8(最常用,模型缩 75%、提速 2~4 倍,工业首选 INT8);
剪枝:剔除冗余权重、无效卷积层;
算子融合:Conv+BN+ReLU 合并,减少内存读写。
3. 导出通用中间格式 ONNX(必做)
# PyTorch导出ONNX示例(YOLO)
model.eval()
torch.onnx.export(model,img,"best.onnx",opset=13,dynamic_axes={"input":{2:"H",3:"W"}})
ONNX 是跨硬件通用桥梁,所有边缘 NPU 都支持从 ONNX 转专属模型。
二、阶段 2:ONNX 转盒子专属 NPU 模型(PC 端对应 SDK 转换)
不同芯片专属模型后缀不同,必须用原厂工具链:
芯片方案 | 工具套件 | 输出模型格式 |
瑞芯微 RK3588/RK1828 | RKNN-Toolkit2 | .rknn |
算能 BM1684X/BM1688 | BMNN/ToolChain | .bmodel |
英伟达 Jetson | TensorRT | .engine |
x86 工控盒 | OpenVINO | .bin+.xml |
ARM 通用 CPU | ONNX Runtime/TFLite | .onnx/.tflite |
RK3588 转换示例:ONNX→RKNN
1. PC 安装 rknn-toolkit2;
2. 加载 onnx、配置 INT8 量化(提供校准图片集);
3. rknn.build(do_quantization=True)导出.rknn模型文件。
算能 BM1684X:ONNX→bmodel
使用bmnet工具量化编译,生成 bmodel 推理文件。
三、阶段 3:边缘盒子系统 & 环境部署
1. 盒子基础环境配置
1. 烧录系统:RK/BM 盒子预装 Ubuntu20.04/22.04 嵌入式系统(官方镜像自带 NPU/VPU 驱动);
2. 联网:固定静态 IP,SSH 远程连接开发;
3. 安装依赖:OpenCV、Python3、gcc、ffmpeg(视频解码);
sudo apt update
sudo apt install python3-opencv libopencv-dev ffmpeg
4. 安装硬件 SDK(核心,NPU 驱动 + 推理 API)
RK:拷贝rknpu2库文件到/usr/lib;
BM:部署 libsophon 运行时库;
SDK 是调用 NPU 硬件加速的底层依赖,缺库只能 CPU 慢速推理。
2. 模型上传盒子
方式 1:SCP/ftp 把.rknn/.bmodel传到盒子/opt/model目录;
方式 2:U 盘拷贝。
四、阶段 4:推理程序开发(3 种开发方案,按需选择)
方案 1:Python 快速部署(调试 / 小项目,FastDeploy 一键封装,推荐)
FastDeploy 适配 RK/BM/Jetson,3 行代码加载 NPU 模型,支持 YOLO、分类、OCR:
# RKNN+YOLO示例
import fastdeploy as fd
option=fd.RuntimeOption()
option.use_rknpu2()
model=fd.vision.detection.YOLOv8("best.rknn",runtime_option=option)
res=model.predict(img)
优势:不用手写底层 NPU 接口,兼容多硬件。
方案 2:C++ 高性能部署(工业 7×24 量产首选)
1. 调用原厂 SDK API(rknn_api/sophon_api);
2. 视频流:FFmpeg/OpenCV 拉 RTSP 摄像头→VPU 硬件解码→图像预处理→NPU 推理→解析框坐标;
3. 编译:交叉编译 / 本机 gcc 编译生成可执行程序ai_infer。
方案 3:容器 Docker 部署(批量多盒子统一运维)
1. 制作带 SDK、模型、推理程序的 Docker 镜像;
2. 盒子docker run拉起容器,隔离环境、一键批量部署多算法;适合园区批量 AI 盒子集群。
业务链路完整逻辑
IPC (RTSP)→盒子 VPU 硬解→图像缩放归一化→NPU 加载模型推理→结果 (框 / 类别)→本地报警 / HTTP/MQTT 上传云端。
五、阶段 5:上线运维 + 稳定性优化(量产必备)
1. 进程常驻开机自启
systemd/supervisor 托管推理进程,意外崩溃自动重启;
编写start.sh开机脚本,配置 /etc/rc.local。
2. 硬件防护
温控:读取芯片温度,>75℃降频防死机;
内存限制:ulimit 限制进程最大内存,防止内存溢出宕机。
3. 性能调优
多摄像头:多线程推理、NPU 多模型复用;
帧率不达标:再次 INT8 量化、调低输入分辨率。
4. 模型远程更新:云端下发新模型,盒子自动替换重载,不用现场拆机。
六、三种快捷落地模式(非从零开发)
1. 成品 SaaS 平台:盒子预装 AI 管理系统,Web 页面上传模型、添摄像头,零代码部署(安防项目常用);
2. 算法 SDK 集成:厂商现成算法包(人车 / 烟火 / 安全帽),直接调用 API 接入视频;
3. 边缘网关方案:盒子做网关,多路 IPC 接入,统一 AI 分析 + 云端对接。
附:常见故障
1. 推理跑 CPU 不跑 NPU:SDK 库缺失、模型未对应芯片版本;
2. 内存溢出:模型未量化、输入分辨率过大;
3. 识别精度暴跌:INT8 量化校准图片不足。
需求留言: