rtsp_tensorrt/docs/architecture.md

4.3 KiB
Raw Permalink Blame History

TensorRT Pipeline 架构设计

1. 整体架构

项目采用模块化设计,主要分为以下几个核心模块:

1.1 输入模块 (Input)

  • 视频文件读取(已完成)
    • 异步读取支持
    • 帧率控制
    • 帧队列管理
  • RTSP流读取已完成
    • 自动重连机制
    • 缓冲区管理
    • 超时处理
  • 输入源管理(已完成)
    • 多路输入支持
    • 输出目标映射
    • 资源管理

1.2 推理模块 (Inference)

  • TensorRT引擎管理已完成
  • ONNX模型转换已完成
  • GPU加速预处理已完成
  • 批处理支持(已完成)
  • CUDA内存优化已完成

1.3 渲染模块 (Render)

  • 检测结果可视化(已完成)
  • 性能指标显示(已完成)
  • 自定义渲染样式(已完成)
  • 测试模式支持(已完成)

1.4 输出模块 (Output)

  • RTSP推流已完成
    • H264/H265编码支持
    • 可配置推流参数
    • 自动重连机制
  • 视频文件保存(已完成)
    • 多格式支持
    • 可配置编码参数
    • 自动目录管理
  • 输出管理(已完成)
    • 多路输出支持
    • 输入源映射
    • 资源管理

2. 核心类设计

classDiagram
    Pipeline --> InputManager
    Pipeline --> TrtInference
    Pipeline --> FrameDrawer
    Pipeline --> OutputManager
    InputManager --> RtspReader
    InputManager --> VideoReader
    InputManager --> SourceTargetMapper
    OutputManager --> RtspWriter
    OutputManager --> VideoWriter
    OutputManager --> TargetSourceMapper
    SourceTargetMapper --> TargetSourceMapper

3. 数据流

graph LR
    A[输入源] --> B[预处理]
    B --> C[推理]
    C --> D[后处理]
    D --> E[渲染]
    E --> F[输出映射]
    F --> G1[输出1]
    F --> G2[输出2]
    F --> G3[输出3]
    
    subgraph GPU Memory
        B
        C
        D
    end
    
    subgraph Output Mapping
        F
        G1
        G2
        G3
    end

4. 输入输出映射设计

4.1 映射关系

  • 一对一映射:一个输入源对应一个输出目标
  • 一对多映射:一个输入源对应多个输出目标
  • 多对一映射:多个输入源对应同一个输出目标
  • 默认映射:未指定映射时使用所有输出目标

4.2 配置管理

  • YAML配置文件定义映射关系
  • 运行时动态更新映射
  • 支持热重载配置

4.3 资源管理

  • 智能指针管理资源生命周期
  • 线程安全的资源访问
  • 自动清理无效映射

4.4 性能优化

  • 哈希表实现快速查找
  • 读写锁分离
  • 缓存常用映射关系

4.5 错误处理

  • 配置验证
  • 运行时错误恢复
  • 详细的错误日志

5. 性能优化

已实现优化

  • CUDA流水线
  • 异步读取
  • 零拷贝传输
  • 批处理基础支持
  • 输入输出映射优化
    • 哈希表实现
    • 读写锁分离
    • 映射关系缓存

待实现优化

  • 动态批处理
  • 内存池优化
  • 多流并行
  • 跨模块流水线

6. 配置系统

已完成功能

  • YAML配置解析
  • 配置验证
  • 运行时参数调整
  • 渲染样式配置
  • 输入输出映射配置
    • 映射关系定义
    • 动态更新支持
    • 配置验证

待完成功能

  • 动态参数调整
  • 配置热重载

7. 开发进度

已完成模块

  1. 配置系统 (100%)

    • YAML解析器
    • 配置验证
    • 参数管理
    • 映射配置支持
  2. 推理模块 (100%)

    • TensorRT引擎
    • 预处理器
    • CUDA优化
    • 批处理支持
  3. 渲染模块 (100%)

    • 基础渲染器
    • 帧绘制器
    • 性能显示
    • 测试支持
  4. 输入模块 (100%)

    • 视频读取器
    • RTSP读取器
    • 输入源管理
    • 输出目标映射
  5. 输出模块 (100%)

    • 视频写入器
    • RTSP推流器
    • 输出管理器
    • 输入源映射

开发中模块

  1. 系统集成
    • Pipeline实现
    • 模块协调
    • 性能优化

待开发功能

  1. 测试完善
    • 系统测试
    • 性能测试
    • 压力测试

8. 后续计划

短期目标

  • 完善系统测试
  • 优化性能指标
  • 完善错误处理

中期目标

  • 实现配置热重载
  • 优化内存使用
  • 完善监控系统

长期目标

  • 系统集成
  • 性能调优
  • 发布稳定版本