跳到主要内容

CIX 多路视频识别

这是一个基于 Radxa O6/O6N 的多路视频流 YOLO 目标检测推理系统。

环境配置

需要提前配置好相关环境。

功能特性

  • 支持多路视频流并行处理
  • 线程/进程双模式推理
  • NPU 硬件加速
  • 实时 FPS 显示
  • 多流合并显示,全屏切换

项目结构

cix-multistream-yolo/
├── main.py # 程序入口
├── src/
│ ├── capture/ # 视频读取
│ │ ├── video_reader.py # 视频帧读取
│ │ └── video_reader_pipeline.py # 读取流水线
│ ├── processing/ # 推理处理
│ │ ├── inference.py # NPU 推理引擎
│ │ ├── inference_pipeline.py # 推理流水线
│ │ └── post_processing.py # 后处理(NMS)
│ └── utils/
│ ├── manager.py # 主协调器
│ ├── tools.py # 工具函数
│ ├── displaying.py # 显示模块
│ └── download_model.sh # 模型下载脚本
├── models/ # 模型文件
├── data/ # 测试视频
│ ├── test_videos_360P/
│ └── test_videos_720P/
└── test/ # 测试代码

依赖

  • Python 3.11+
  • OpenCV
  • FFmpeg
  • NumPy
  • libnoe (NPU 库)

使用方法

环境依赖

O6 / O6N
pip install opencv-python numpy

下载项目

O6 / O6N
git clone https://github.com/Ronin-1124/cix-multistream-yolo.git
cd cix-multistream-yolo

基本用法

python main.py

指定参数

# 指定视频源
python main.py -i video.mp4
python main.py -i video1.mp4 video2.mp4
python main.py -i data/test_videos_360P/

# 指定模型
python main.py -m models/yolov8s.cix

# 选择推理模式 (thread 或 process)
python main.py -t process

运行效果

8路YOLOv8n推理效果

可以看到,8路推理时,最高可以达到 173FPS 的实时吞吐率,平均每路 20FPS 左右。

参数说明

参数说明默认值
-i, --input视频文件、目录或多个路径data/test_videos_360P
-m, --model模型文件路径models/yolov8n.cix
-t, --type推理模式: thread/tprocess/pthread

快捷键

按键功能
q退出程序
f切换全屏模式

支持的模型

  • yolov8n - YOLOv8 Nano
  • yolov8s - YOLOv8 Small

模型文件不存在时会自动从 ModelScope 下载。

架构设计

视频读取 (VideoReader)

帧队列 (Queue)

预处理 (pre_processing)

NPU 推理 (InferenceEngine)

后处理 (NMS)

结果队列

显示模块 (Display)

测试

pytest test/

    您需要登录 GitHub 才能发表评论。如果您已登录,请忽略此消息。

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0