# cs-detect **Repository Path**: qinchun2000/cs-detect ## Basic Information - **Project Name**: cs-detect - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-26 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Detect — 双光光电 AI 检测系统 基于 Qt 6 + HVS SDK + ONNX Runtime 的双光(可见光 + 红外)并行推理与检测平台, 支持多路 RTSP 视频流的 GPU 加速渲染和 YOLO 目标检测。 #### 功能概述 - **多路双光视频流**:同时接入多台双光光电设备(可见光 + 红外),每个设备独立采集两路 RTSP 流 - **GPU 加速渲染**:基于 OpenGL 3.3 Core Profile 的 QOpenGLWidget 视频渲染,图像缩放和显示全由 GPU 完成,零 CPU 开销 - **线程隔离架构**:SDK 设备初始化、RTSP 连接、帧采集全部在独立 Worker Thread 执行,主线程事件循环不受影响,菜单操作即时响应 - **YOLO 目标检测**:集成 ONNX Runtime GPU 推理,支持鸟类等目标检测与告警 - **设备管理**:可视化设备配置(JSON 格式),支持设备启停、告警列表查看 - **深色主题 UI**:Qt Fusion 风格 + 自定义深色配色方案 #### 技术栈 | 层级 | 技术 | |------|------| | 框架 | Qt 6.11.1 (MinGW 64-bit) | | 语言 | C++17 | | 视频 SDK | HVS SDK (RTSP 推流、解码、抓帧) | | GPU 渲染 | OpenGL 3.3 Core Profile (QOpenGLWidget) | | AI 推理 | ONNX Runtime 1.26.0 GPU (YOLO 模型) | | 图像处理 | OpenCV 4.5.1 | | 编码/解码 | FFmpeg 5.1.9 | | 构建系统 | qmake + MinGW 13.1.0 | #### 工程结构 ``` qt-xian-detect/ ├── src/ # ★ 主生产应用 (detect) │ ├── main.cpp # 入口,OpenGL 格式初始化 │ ├── detect.pro # qmake 工程文件 │ ├── stream/ # 视频流层 │ │ └── VideoStream.h/cpp # RTSP 采集(CaptureMem 轮询 + worker thread) │ ├── app/ │ │ └── DualLightService.h/cpp # 设备管理服务(配对可见光+红外流) │ ├── ui/ │ │ ├── MainWindow.h/cpp # 主窗口(2×2网格布局) │ │ ├── DeviceWidget.h/cpp # 单设备组件(含 GpuVideoWidget) │ │ ├── GpuVideoWidget.h/cpp # GPU 视频渲染控件 (OpenGL) │ │ └── ... # 设备管理/告警对话框 │ ├── config/ # JSON 配置管理 │ ├── data/ # 设备配置/告警信息数据结构 │ └── logger/ # 日志系统 ├── demo/ │ ├── YoloDetect/ # YOLO 双光鸟类检测 Demo │ └── yolo-test/ # YOLO 双光识别系统 v2.0 ├── include/ # HVS SDK 头文件 ├── lib/ # HVS SDK 库文件 ├── thirdpart/ # 第三方库 │ ├── FFmpeg-n5.1.9/ # FFmpeg 源码 │ ├── opencv_mingw/ # OpenCV MinGW 预编译 │ └── onnxruntime/ # ONNX Runtime GPU 版 └── docs/ # 设计文档 ``` #### 线程架构 ``` Main Thread (Qt 事件循环,菜单即时响应) │ ├─ QTimer::pollFrames() ──> takeFrame() ──> GpuVideoWidget::setFrame() ──> GPU 渲染 │ └─ DeviceWidget 交互、状态栏更新、设备管理对话框 Worker Thread × N (每个 VideoStream 独立线程) │ └─ CreateDevice ──> PlayRTSPVideo ──> CaptureMem 轮询 ──> 写入共享缓冲区 ``` #### 构建 **环境要求:** - Qt 6.2+ (MinGW 64-bit) - MinGW 13.1.0+ - OpenCV 4.5 (MinGW 预编译) - ONNX Runtime 1.26.0 GPU - HVS SDK 库文件 ```bash cd src qmake detect.pro mingw32-make -j4 # 输出: bin/detect.exe ``` 部署运行时依赖: ```bash windeployqt bin/detect.exe --no-translations ``` #### 运行 ```bash cd src/bin detect.exe ``` 配置设备列表:编辑 `config.json`,添加 RTSP 地址即可。