- 创建基本项目结构和目录 - 添加CMake构建系统 - 实现基础的配置解析功能 - 添加YOLO推理框架支持 - 集成RTSP和视频流处理功能 - 添加性能监控和日志系统
152 lines
2.8 KiB
Markdown
152 lines
2.8 KiB
Markdown
# TensorRT Pipeline 架构设计
|
||
|
||
## 1. 整体架构
|
||
|
||
项目采用模块化设计,主要分为以下几个核心模块:
|
||
|
||
### 1.1 输入模块 (Input)
|
||
- 视频文件读取(已完成)
|
||
- 异步读取支持
|
||
- 帧率控制
|
||
- 帧队列管理
|
||
- RTSP流读取(开发中)
|
||
- 输入源管理(待开发)
|
||
|
||
### 1.2 推理模块 (Inference)
|
||
- TensorRT引擎管理(已完成)
|
||
- ONNX模型转换(已完成)
|
||
- GPU加速预处理(已完成)
|
||
- 批处理支持(已完成)
|
||
- CUDA内存优化(已完成)
|
||
|
||
### 1.3 渲染模块 (Render)
|
||
- 检测结果可视化(已完成)
|
||
- 性能指标显示(已完成)
|
||
- 自定义渲染样式(已完成)
|
||
- 测试模式支持(已完成)
|
||
|
||
### 1.4 输出模块 (Output)
|
||
- RTSP推流(待开发)
|
||
- 视频文件保存(待开发)
|
||
- 输出参数配置(待开发)
|
||
|
||
## 2. 核心类设计
|
||
|
||
```mermaid
|
||
classDiagram
|
||
Pipeline --> InputManager
|
||
Pipeline --> TrtInference
|
||
Pipeline --> FrameDrawer
|
||
Pipeline --> OutputManager
|
||
InputManager --> RtspReader
|
||
InputManager --> VideoReader
|
||
OutputManager --> RtspWriter
|
||
OutputManager --> VideoWriter
|
||
```
|
||
|
||
## 3. 数据流
|
||
|
||
```mermaid
|
||
graph LR
|
||
A[输入源] --> B[预处理]
|
||
B --> C[推理]
|
||
C --> D[后处理]
|
||
D --> E[渲染]
|
||
E --> F[输出]
|
||
|
||
subgraph GPU Memory
|
||
B
|
||
C
|
||
D
|
||
end
|
||
```
|
||
|
||
## 4. 性能优化
|
||
|
||
### 已实现优化
|
||
- CUDA流水线
|
||
- 异步读取
|
||
- 零拷贝传输
|
||
- 批处理基础支持
|
||
|
||
### 待实现优化
|
||
- 动态批处理
|
||
- 内存池优化
|
||
- 多流并行
|
||
- 跨模块流水线
|
||
|
||
## 5. 配置系统
|
||
|
||
### 已完成功能
|
||
- YAML配置解析
|
||
- 配置验证
|
||
- 运行时参数调整
|
||
- 渲染样式配置
|
||
|
||
### 待完成功能
|
||
- 多路输入配置
|
||
- 输出参数配置
|
||
- 动态参数调整
|
||
|
||
## 6. 开发进度
|
||
|
||
### 已完成模块
|
||
1. 配置系统 (100%)
|
||
- YAML解析器
|
||
- 配置验证
|
||
- 参数管理
|
||
|
||
2. 推理模块 (100%)
|
||
- TensorRT引擎
|
||
- 预处理器
|
||
- CUDA优化
|
||
- 批处理支持
|
||
|
||
3. 渲染模块 (100%)
|
||
- 基础渲染器
|
||
- 帧绘制器
|
||
- 性能显示
|
||
- 测试支持
|
||
|
||
4. 输入模块 (90%)
|
||
- 视频读取器
|
||
- 帧队列
|
||
- 异步支持
|
||
|
||
### 开发中模块
|
||
1. 输入模块扩展
|
||
- RTSP支持
|
||
- 多路输入
|
||
|
||
2. 输出模块
|
||
- 视频保存
|
||
- RTSP推流
|
||
|
||
### 待开发功能
|
||
1. 系统集成
|
||
- Pipeline实现
|
||
- 模块协调
|
||
- 性能优化
|
||
|
||
2. 测试完善
|
||
- 系统测试
|
||
- 性能测试
|
||
- 压力测试
|
||
|
||
## 7. 后续计划
|
||
|
||
### 短期目标
|
||
- 完成RTSP输入支持
|
||
- 实现基础输出功能
|
||
- 完善系统测试
|
||
|
||
### 中期目标
|
||
- 实现完整输出模块
|
||
- 优化性能
|
||
- 完善文档
|
||
|
||
### 长期目标
|
||
- 系统集成
|
||
- 性能调优
|
||
- 发布稳定版本
|