# VisionEngine **Repository Path**: penghaotian1/VisionEngine ## Basic Information - **Project Name**: VisionEngine - **Description**: 本项目旨在实现一个高性能、低延迟的多路视频实时拼接系统。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://github.com/roy407/stitch - **GVP Project**: No ## Statistics - **Stars**: 20 - **Forks**: 2 - **Created**: 2025-05-18 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: ai, multimedia **Tags**: cuda, Cpp, 多线程, 生产-消费者模式 ## README # 🚀 基于异构平台的视频拼接项目

中文English

本项目旨在实现一个高性能、低延迟的**多路视频实时拼接系统**。
系统利用**CUDA GPU加速**与**多线程优化**技术,能够同时从多路相机采集视频流,进行解码、拼接、显示、编码、rtsp推流与性能监测。
目前已经在**普通家用电脑**与**jetson orinX**平台完成适配。
在未来,还会加入 **华为昇腾** 等异构平台。 --- ## 📢 News|项目进展 2026-02-01:(预计完成代码v2.0的编写)。
2025-12-02:在**2025年中国国际海事会展**完成展览。
2025-10-06:完成代码v1.0的编写。
2025-05-10:项目立项,目标是解决海面小目标识别问题,因此需要多相机和高分辨率。 --- ## 🧩 项目特点 - 🔹 **多摄像头实时拼接**:支持多路 RTSP、USB 或本地视频输入。 - 🔹 **GPU 加速**:基于 CUDA 实现高效视频处理与图像拼接。 - 🔹 **硬件编解码**:使用cuvid和nvenc对编解码进行加速(在orinX上使用nvmpi)。 - 🔹 **多线程架构**:采用生产者-消费者模型,保证数据流畅。 - 🔹 **性能监测模块(Timing Watcher)**: 自动记录每个处理阶段的耗时(如接收、解码、拼接、显示),并输出为 CSV 文件,方便后续性能分析与可视化。 - 🔹 **Qt 界面展示**:提供实时拼接结果显示与调试界面。 - 🔹 **模块化设计**:核心逻辑与界面层完全解耦,易于扩展与维护。 --- ## 🧱 前置条件 | 环境 | 最低要求 | |------|-----------| | NVIDIA 驱动 | ≥ 535 | | CUDA | ≥ 11.8 | | FFmpeg | 需要手动编译,要支持硬件编解码 | | openGL | 任意版本 | | Qt | ≥ 5.0 | | spdlog | 任意版本 | --- ## ⚙️ 编译及运行步骤 ```bash # 配置环境 bash set_env.sh # 编译并运行程序 bash start_camera.sh -c (相机配置) ``` 更多详细操作,请看[如何入门该项目](docs/入门该项目.md) --- ## 📁 目录结构 ``` stitch/ ├─start_camera.sh # 程序启动入口 ├─main.cpp ├─camera_manager # 摄像头与线程管理 ├─components # 部件模块 │ ├─qt # qt显示界面 │ └─shm # 共享内存模块(暂未开放) ├─core # 项目核心配置 │ ├─config # 读取json文件 │ ├─operator # 算子库 │ └─utils # 可用工具 ├─docs # 项目文档 ├─resource # 内含各种相机配置文件 └─scripts # 脚本仓库 ├─H_matrix # 用于计算多张图片之间的h矩阵 ├─mapping_table # 用于生成多张图片生成的map表 └─plot_timing.py # 用于显示图像拼接过程中,各阶段耗时 ``` --- ## 📚 模块说明导航 - 📷 [camera_manager|摄像头与线程管理](camera_manager/README.md) - 🧠 [core|算子库与核心功能](core/README.md) - 🧩 [components|功能组件(Qt / shm)](components/README.md) - 🗂️ [resource|相机与拼接配置文件](resource/README.md) --- ## 📊 各阶段耗时曲线 1️⃣ 视频解码耗时 ![Decoding Time](docs/images/Dec_2025_10_7.png) 2️⃣ 拼接阶段耗时 ![Stitching Time](docs/images/Stitch_2025_10_7.png) 3️⃣ 显示阶段耗时 ![Display Time](docs/images/Show_2025_10_7.png) 4️⃣ 全流程耗时 ![Total Time](docs/images/Total_2025_10_7.png) --- ## 🖼️ 最终效果图 图中是使用cam5.json文件,配置生成的五路拼接图像的效果,目前平均延时可以做到≤300ms ![最终效果图](docs/images/Photo_2025_10_7.png)