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

联系我们
产品咨询

从 0 到 1 部署 AI:3TOPS 算力盒子跑通 YOLOv8 / 目标检测全流程

作者:万物纵横
发布时间:2026-05-11 10:28
阅读量:

3TOPS 级边缘盒子,RK3588 类 NPU,Linux,从环境准备→训练 / 微调→模型转换→NPU 部署→摄像头实时推理,全程命令可复制。


从 0 到 1 部署 AI:3TOPS 算力盒子跑通 YOLOv8 / 目标检测全流程(图1)


一、硬件与环境准备(盒子端)


硬件:3TOPS 算力盒(如 RK3588,NPU≈3–6TOPS),Ubuntu 20.04/22.04,≥4GB 内存,eMMC/SSD ≥32GB。


1.1 基础依赖


sudo apt update && sudo apt install -y python3 python3-pip python3-venv git cmake gcc g++


1.2 创建虚拟环境


python3 -m venv yolov8-env

source yolov8-env/bin/activate

pip install --upgrade pip


1.3 安装 Ultralytics(YOLOv8)


pip install ultralytics opencv-python numpy


验证:


yolo --version


二、模型获取与训练 / 微调(PC 或盒子)


2.1 直接用预训练模型(推荐新手)


# 下载并测试

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # nano 轻量版,适合3TOPS

model.predict("bus.jpg", save=True, show=True)


2.2 自定义数据集(YOLO 格式)


目录结构:


my_data/

├── images/

│   ├── train/

│   └── val/

└── labels/

    ├── train/

    └── val/


my_data.yaml


path: ./my_data

train: images/train

val: images/val

nc: 3

names: ["person", "car", "dog"]


2.3 训练(轻量配置,适合边缘)


from ultralytics import YOLO

model = YOLO("yolov8n.yaml")  # 从头训,或用 yolov8n.pt 微调

model.train(

  data="my_data.yaml",

  epochs=50,

  imgsz=640,

  batch=8,

  device="cpu"  # 盒子无GPU时用CPU,或NPU加速

)


训练完成得到 runs/detect/train/weights/best.pt。


三、模型转换(.pt → ONNX → RKNN/INT8)


3.1 导出 ONNX


from ultralytics import YOLO

model = YOLO("runs/detect/train/weights/best.pt")

model.export(format="onnx", imgsz=640, opset=12, simplify=True)

# 输出 best.onnx


3.2 RK3588 NPU 量化转换(INT8,关键提速)


使用 rknn-toolkit2(PC 端转换):


# 安装(PC Ubuntu)

pip install rknn-toolkit2


转换脚本 convert2rknn.py:


from rknn.api import RKNN


rknn = RKNN(verbose=True)

rknn.config(mean_values=[[0,0,0]], std_values=[[255,255,255]], quant_level=3)

rknn.load_onnx(model="best.onnx")

rknn.build(do_quantization=True, dataset="./calib.txt")  # 校准集

rknn.export_rknn("yolov8n_3tops.rknn")

rknn.release()


得到 yolov8n_3tops.rknn(约 6MB,NPU 专用)。


四、盒子端 NPU 部署推理(RK3588)


4.1 上传模型到盒子


scp yolov8n_3tops.rknn user@box-ip:/home/user/


4.2 安装盒子端 RKNN 依赖


# RK3588 Ubuntu 示例

sudo apt install -y librockchip-rknn2

pip install rknn-toolkit2


4.3 图片推理(Python)


import cv2

import numpy as np

from rknn.api import RKNN


rknn = RKNN()

rknn.load_rknn("yolov8n_3tops.rknn")

rknn.init_runtime(target="rk3588")


img = cv2.imread("bus.jpg")

img = cv2.resize(img, (640,640))

img = img.astype(np.float32) / 255.0

img = np.expand_dims(img, axis=0)


outputs = rknn.infer(inputs=[img])

# 后处理 + 画框(省略,可用 ultralytics 后处理)

rknn.release()


五、摄像头实时检测(RTSP/USB)


5.1 USB 摄像头


import cv2

from ultralytics import YOLO


model = YOLO("yolov8n.pt")  # 或用 rknn 版本

cap = cv2.VideoCapture(0)


while cap.isOpened():

    ret, frame = cap.read()

    if not ret: break

    results = model(frame)

    cv2.imshow("YOLOv8-3TOPS", results[0].plot())

    if cv2.waitKey(1) & 0xFF == ord('q'): break

cap.release()

cv2.destroyAllWindows()


5.2 RTSP 摄像头


cap = cv2.VideoCapture("rtsp://user:pass@camera-ip:554/stream")


六、性能参考(3TOPS 盒子)


YOLOv8n + RK3588 INT8:25–35 FPS@640×640


YOLOv8s + RK3588 INT8:15–20 FPS


功耗:5–8W,适合 7×24 小时边缘部署


七、常见坑


1. NPU 推理慢:必须做 INT8 量化,用 .rknn 而非 ONNX。


2. 内存不足:用 yolov8n,batch=1–8,关闭不必要服务。


3. 模型不生效:检查 imgsz=640 一致,校准集与任务匹配。

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

  • *

  • *

  • *

  • *