YOLOv8 多路识别
在 RK3588 NPU 上使用 YOLOv8 进行多路视频目标检测。

特性
- 多路处理: 同时支持 9+ 路视频流
- 3 核 NPU 加速: 充分利用 RK3588 的 3 个 NPU 核心
- Pipeline 架构: 解码 → NPU 推理 → 后处理 → 显示
- 实时显示: 网格显示,带帧率统计(视频帧率 + 推理帧率)
- Letterbox 预处理: 保持宽高比,保证检测精度
安装方法
克隆项目仓库
Device
git clone https://github.com/ZIFENG278/RK3588-Multi-Stream-YOLOv8-Detection.git
安装依赖
提示
请在 python 虚拟环境 中安装相关依赖
Device
pip3 install rknn-toolkit-lite2 opencv-python
使用方法
基本运行(9 路,3 核)
提示
--video-dir 请指定包含视频文件的文件夹
Device
python3 main_rknn_pipeline.py --video-dir ./video
无显示模式(适合测试)
Device
python3 main_rknn_pipeline.py --video-dir ./video --no-display --max-frames 100
自定义参数
Device
python3 main_rknn_pipeline.py \
--num-streams 6 \
--num-cores 3 \
--model yolov8n-i8-3588.rknn \
--video-dir video \
--conf-threshold 0.5 \
--iou-threshold 0.45
命令行参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--num-streams | 9 | 视频流数量 |
--num-cores | 3 | NPU 核心数 (1-3) |
--model | yolov8n-i8-3588.rknn | 模型文件路径 |
--video-dir | video | 视频目录 |
--conf-threshold | 0.4 | 置信度阈值 |
--iou-threshold | 0.45 | NMS IoU 阈值 |
--no-display | False | 禁用显示 |
--max-frames | None | 限制帧数 |
性能参考
测试条件
Device
python main_rknn_pipeline.py \
--num-streams 9 \
--num-cores 3 \
--model yolov8n-i8-3588.rknn \
--video-dir video \
--max-frames 1000
| 硬件 | 内存 | 视频数量 | NPU 核心 | 模型 | 量化方式 | 帧数 |
|---|---|---|---|---|---|---|
| ROCK5B+ | 8GB | 9 | 3 | yolov8n | INT8 | 1000 |
测试结果
| 阶段 | 耗时 (avg ms) |
|---|---|
| 解码 | 2.24 |
| 预处理 | 2.00 |
| NPU 推理 | 25.77 |
| 后处理 | 15.66 |
| 绘制 | 1.43 |
| 总计 | 47.10 |