docs: 加了两个计划书,后续做实现
This commit is contained in:
2232
docs/event-judgment-algorithm-architecture.md
Normal file
2232
docs/event-judgment-algorithm-architecture.md
Normal file
File diff suppressed because it is too large
Load Diff
522
docs/project-integration-plan.md
Normal file
522
docs/project-integration-plan.md
Normal file
@@ -0,0 +1,522 @@
|
|||||||
|
# 项目整合计划书:视频检测平台功能扩展
|
||||||
|
|
||||||
|
## 文档信息
|
||||||
|
|
||||||
|
- **项目名称**: jc-video-recognize 视频模型检测平台
|
||||||
|
- **模块路径**: `/Users/wwh/project/jc-video-recognize/apps/server`
|
||||||
|
- **制定日期**: 2026-06-02
|
||||||
|
- **文档版本**: v1.0
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 目录
|
||||||
|
|
||||||
|
1. [项目概述](#1-项目概述)
|
||||||
|
2. [视频流接入方案](#2-视频流接入方案)
|
||||||
|
3. [MQTT预警事件消息系统](#3-mqtt预警事件消息系统)
|
||||||
|
4. [AI分析辅助功能集成](#4-ai分析辅助功能集成)
|
||||||
|
5. [大模型二次判断架构](#5-大模型二次判断架构)
|
||||||
|
6. [项目管理与实施计划](#6-项目管理与实施计划)
|
||||||
|
7. [交付成果清单](#7-交付成果清单)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 项目概述
|
||||||
|
|
||||||
|
### 1.1 现有系统架构
|
||||||
|
|
||||||
|
当前系统是一个基于 **FastAPI + YOLO/PaddlePaddle** 的实时视频检测平台:
|
||||||
|
|
||||||
|
| 层级 | 技术栈 | 说明 |
|
||||||
|
|------|--------|------|
|
||||||
|
| **前端** | Vue 3 + Vite + Element Plus | 用户界面与可视化 |
|
||||||
|
| **后端** | FastAPI + Uvicorn | REST API + WebSocket |
|
||||||
|
| **AI推理** | YOLOv8/v10 + PaddlePaddle | 多模型检测服务 |
|
||||||
|
| **实时通信** | WebSocket | 摄像头视频流传输 |
|
||||||
|
| **检测模型** | 火灾/安全帽/人群/抽烟/徘徊检测 | 已集成的AI能力 |
|
||||||
|
|
||||||
|
### 1.2 核心需求确认
|
||||||
|
|
||||||
|
| 需求 | 确认内容 |
|
||||||
|
|------|----------|
|
||||||
|
| **视频流接入** | 局域网环境,RTSP协议直接接入 |
|
||||||
|
| **消息系统** | 复用现有MQTT Broker |
|
||||||
|
| **AI扩展** | 大模型(GPT-4V/Claude等)进行二次深度判断 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 视频流接入方案
|
||||||
|
|
||||||
|
### 2.1 系统架构图
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────────┐
|
||||||
|
│ 局域网环境 │
|
||||||
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||||
|
│ │ 摄像头-1 │ │ 摄像头-2 │ │ 摄像头-N │ │
|
||||||
|
│ │ RTSP流 │ │ RTSP流 │ │ RTSP流 │ │
|
||||||
|
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
|
||||||
|
│ │ │ │ │
|
||||||
|
│ └───────────────┼───────────────┘ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────────────┐ │
|
||||||
|
│ │ Stream Manager │ │
|
||||||
|
│ │ (多路流管理调度) │ │
|
||||||
|
│ └──────────┬──────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌───────────────┼───────────────┐ │
|
||||||
|
│ ▼ ▼ ▼ │
|
||||||
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||||
|
│ │ 解码线程-1 │ │ 解码线程-2 │ │ 解码线程-N │ │
|
||||||
|
│ │(FFmpeg/CV2)│ │(FFmpeg/CV2)│ │(FFmpeg/CV2)│ │
|
||||||
|
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
|
||||||
|
│ │ │ │ │
|
||||||
|
│ └──────────────┼──────────────┘ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌──────────────────┐ │
|
||||||
|
│ │ AI检测引擎 │ │
|
||||||
|
│ │ YOLO/Paddle+大模型 │ │
|
||||||
|
│ └────────┬─────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌──────────────────┐ │
|
||||||
|
│ │ MQTT Publisher │ │
|
||||||
|
│ │ 预警事件发布 │ │
|
||||||
|
│ └──────────────────┘ │
|
||||||
|
└─────────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 技术方案选型
|
||||||
|
|
||||||
|
| 组件 | 技术选型 | 说明 |
|
||||||
|
|------|----------|------|
|
||||||
|
| **RTSP客户端** | `opencv-python` + `ffmpeg` | 支持硬件加速解码 |
|
||||||
|
| **流管理** | 异步线程池 | 每路流独立解码线程 |
|
||||||
|
| **帧缓冲** | 环形缓冲区 (Ring Buffer) | 防止内存溢出,支持丢帧策略 |
|
||||||
|
| **解码优化** | FFmpeg硬解码 (可选) | NVIDIA/Intel GPU加速 |
|
||||||
|
|
||||||
|
### 2.3 关键设计决策
|
||||||
|
|
||||||
|
**1. 解码方案选择**
|
||||||
|
- **方案A**: OpenCV VideoCapture (简单,已验证)
|
||||||
|
- **方案B**: FFmpeg子进程 (更稳定,支持更多格式)
|
||||||
|
- **推荐**: 方案A为主,方案B作为备选
|
||||||
|
|
||||||
|
**2. 多路并发策略**
|
||||||
|
|
||||||
|
```python
|
||||||
|
# 每路摄像头配置
|
||||||
|
{
|
||||||
|
"camera_id": "cam_001",
|
||||||
|
"rtsp_url": "rtsp://192.168.1.100:554/stream",
|
||||||
|
"decode_fps": 5, # 解码帧率(降低AI负载)
|
||||||
|
"buffer_size": 30, # 缓冲区大小
|
||||||
|
"reconnect_interval": 5 # 断线重连间隔(秒)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**3. 性能预估**
|
||||||
|
|
||||||
|
| 指标 | 目标值 | 说明 |
|
||||||
|
|------|--------|------|
|
||||||
|
| 单路延迟 | < 300ms | 解码+AI推理 |
|
||||||
|
| 并发路数 | 16路+ | CPU推理 |
|
||||||
|
| CPU占用 | < 70% | 16路@720p |
|
||||||
|
|
||||||
|
### 2.4 开发与集成任务
|
||||||
|
|
||||||
|
- [ ] 设计视频流接收、解码、存储及转发的系统架构
|
||||||
|
- [ ] 开发RTSP协议解析模块
|
||||||
|
- [ ] 实现视频流数据处理管道,确保低延迟与高稳定性
|
||||||
|
- [ ] 编写视频流接入模块的单元测试与集成测试用例
|
||||||
|
|
||||||
|
### 2.5 质量保障与验收标准
|
||||||
|
|
||||||
|
| 指标 | 目标值 |
|
||||||
|
|------|--------|
|
||||||
|
| 视频流传输延迟 | < 500ms |
|
||||||
|
| 异常恢复时间 | < 5秒 |
|
||||||
|
| 并发视频流支持 | ≥ 16路 |
|
||||||
|
| 系统可用性 | 7×24小时 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. MQTT预警事件消息系统
|
||||||
|
|
||||||
|
### 3.1 系统架构设计
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||||||
|
│ AI检测服务 │────▶│ 事件处理器 │────▶│ MQTT Broker │
|
||||||
|
└─────────────┘ └─────────────┘ └──────┬──────┘
|
||||||
|
│
|
||||||
|
┌──────────────────────┼──────────┐
|
||||||
|
▼ ▼ ▼
|
||||||
|
┌─────────┐ ┌─────────┐ ┌─────────┐
|
||||||
|
│ Web前端 │ │ 移动端 │ │ 第三方 │
|
||||||
|
└─────────┘ └─────────┘ └─────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 消息主题设计
|
||||||
|
|
||||||
|
```
|
||||||
|
# 主题层级结构
|
||||||
|
jc-video/
|
||||||
|
├── alerts/
|
||||||
|
│ ├── fire/ # 火灾预警
|
||||||
|
│ │ └── {camera_id} # 具体摄像头
|
||||||
|
│ ├── smoking/ # 抽烟预警
|
||||||
|
│ ├── loitering/ # 徘徊预警
|
||||||
|
│ └── illegal_parking/ # 违停预警
|
||||||
|
├── status/
|
||||||
|
│ ├── camera/ # 摄像头状态
|
||||||
|
│ └── system/ # 系统状态
|
||||||
|
└── commands/
|
||||||
|
└── camera/ # 摄像头控制指令
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.3 预警事件消息格式
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event_id": "evt_550e8400-e29b-41d4-a716-446655440000",
|
||||||
|
"event_type": "fire",
|
||||||
|
"event_level": "critical",
|
||||||
|
"timestamp": "2026-06-02T10:30:00.123Z",
|
||||||
|
"camera_id": "cam_001",
|
||||||
|
"camera_name": "大厅摄像头",
|
||||||
|
"location": {
|
||||||
|
"building": "A栋",
|
||||||
|
"floor": "1F",
|
||||||
|
"area": "大厅"
|
||||||
|
},
|
||||||
|
"detection": {
|
||||||
|
"class": "Fire",
|
||||||
|
"confidence": 0.95,
|
||||||
|
"bbox": [100, 200, 150, 180],
|
||||||
|
"snapshot_url": "/static/alerts/evt_550e8400.jpg"
|
||||||
|
},
|
||||||
|
"ai_analysis": {
|
||||||
|
"llm_verified": true,
|
||||||
|
"llm_confidence": 0.92,
|
||||||
|
"llm_reasoning": "检测到明显火焰特征,伴随烟雾..."
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
"model_id": "fire_detection",
|
||||||
|
"processing_time_ms": 150
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.4 QoS策略
|
||||||
|
|
||||||
|
| 消息类型 | QoS等级 | 说明 |
|
||||||
|
|----------|---------|------|
|
||||||
|
| 预警事件 | QoS 2 | 确保只送达一次 |
|
||||||
|
| 状态上报 | QoS 1 | 至少送达一次 |
|
||||||
|
| 控制指令 | QoS 1 | 至少送达一次 |
|
||||||
|
|
||||||
|
### 3.5 开发与集成任务
|
||||||
|
|
||||||
|
- [ ] 设计预警事件消息的结构格式与传输协议
|
||||||
|
- [ ] 配置MQTT服务器安全认证机制
|
||||||
|
- [ ] 开发MQTT客户端模块,实现消息发布与订阅功能
|
||||||
|
- [ ] 设计预警事件触发机制与消息路由策略
|
||||||
|
- [ ] 实现消息持久化存储与消费确认机制
|
||||||
|
- [ ] 开发预警消息管理后台,支持消息查询与统计分析
|
||||||
|
|
||||||
|
### 3.6 质量保障与验收标准
|
||||||
|
|
||||||
|
| 指标 | 目标值 |
|
||||||
|
|------|--------|
|
||||||
|
| 消息传输成功率 | 100% |
|
||||||
|
| 消息丢失率 | 0 |
|
||||||
|
| 预警消息延迟 | < 1秒 |
|
||||||
|
| 并发客户端连接 | ≥ 100个 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. AI分析辅助功能集成
|
||||||
|
|
||||||
|
### 4.1 当前已支持的检测能力
|
||||||
|
|
||||||
|
- ✅ 火灾检测 (YOLOv10)
|
||||||
|
- ✅ 安全帽检测 (YOLOv8)
|
||||||
|
- ✅ 人群检测 (YOLOv8)
|
||||||
|
- ✅ 抽烟检测 (YOLOv8 + PaddlePaddle)
|
||||||
|
- ✅ 徘徊检测 (YOLOv8 + 行为分析)
|
||||||
|
|
||||||
|
### 4.2 建议扩展的AI能力
|
||||||
|
|
||||||
|
| 功能 | 技术方案 | 优先级 |
|
||||||
|
|------|----------|--------|
|
||||||
|
| 人脸识别/属性分析 | InsightFace / PaddleFace | 中 |
|
||||||
|
| 车辆识别/车牌检测 | PP-Vehicle (已有基础) | 高 |
|
||||||
|
| 异常行为检测 | 自定义行为分析算法 | 中 |
|
||||||
|
| 越界/入侵检测 | 虚拟围栏算法 | 高 |
|
||||||
|
|
||||||
|
### 4.3 开发与集成任务
|
||||||
|
|
||||||
|
- [ ] 根据业务需求评估并选择合适的AI模型
|
||||||
|
- [ ] 搭建AI模型训练与推理环境,配置必要的GPU资源
|
||||||
|
- [ ] 制定AI模型性能评估指标与优化策略
|
||||||
|
- [ ] 设计AI分析接口,实现与视频流数据的对接
|
||||||
|
- [ ] 开发AI模型推理服务,支持实时分析与批量处理两种模式
|
||||||
|
- [ ] 实现AI分析结果与预警系统的联动机制
|
||||||
|
- [ ] 开发AI模型效果监控与反馈优化模块
|
||||||
|
|
||||||
|
### 4.4 质量保障与验收标准
|
||||||
|
|
||||||
|
| 指标 | 目标值 |
|
||||||
|
|------|--------|
|
||||||
|
| AI分析准确率 | ≥ 90% |
|
||||||
|
| 单帧视频分析处理时间 | < 200ms |
|
||||||
|
| 模型更新支持 | 定期更新与持续优化 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 大模型二次判断架构
|
||||||
|
|
||||||
|
### 5.1 架构设计
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ AI分析流程 │
|
||||||
|
│ │
|
||||||
|
│ 视频帧 → YOLO初检 → 触发条件? ──否──→ 丢弃 │
|
||||||
|
│ │ │
|
||||||
|
│ 是 │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────────┐ │
|
||||||
|
│ │ 截取ROI区域 │ │
|
||||||
|
│ │ (目标区域放大) │ │
|
||||||
|
│ └────────┬────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────────┐ │
|
||||||
|
│ │ 大模型视觉分析 │ │
|
||||||
|
│ │ (GPT-4V/Claude) │ │
|
||||||
|
│ │ │ │
|
||||||
|
│ │ Prompt: │ │
|
||||||
|
│ │ "分析图片中是否 │ │
|
||||||
|
│ │ 存在火灾/抽烟 │ │
|
||||||
|
│ │ 等危险行为" │ │
|
||||||
|
│ └────────┬────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────────┐ │
|
||||||
|
│ │ 结果融合决策 │ │
|
||||||
|
│ │ │ │
|
||||||
|
│ │ YOLO置信度 × │ │
|
||||||
|
│ │ LLM置信度 = │ │
|
||||||
|
│ │ 最终预警等级 │ │
|
||||||
|
│ └────────┬────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────────┐ │
|
||||||
|
│ │ 生成预警事件 │ │
|
||||||
|
│ │ 发布MQTT │ │
|
||||||
|
│ └─────────────────┘ │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 大模型选型对比
|
||||||
|
|
||||||
|
| 模型 | 优点 | 缺点 | 成本 | 适用场景 |
|
||||||
|
|------|------|------|------|----------|
|
||||||
|
| **GPT-4o** | 视觉能力强,响应快 | 需翻墙,成本较高 | $$$ | 高精度场景 |
|
||||||
|
| **Claude 3.5 Sonnet** | 推理能力强,中文好 | 国内访问不稳定 | $$ | 复杂场景分析 |
|
||||||
|
| **Qwen-VL (通义千问)** | 国内可用,成本低 | 精度略低 | $ | 成本敏感场景 |
|
||||||
|
| **GLM-4V (智谱)** | 国内可用,中文优化 | 生态较小 | $ | 本地化部署 |
|
||||||
|
|
||||||
|
### 5.3 推荐方案:多模型策略
|
||||||
|
|
||||||
|
```python
|
||||||
|
# 大模型配置
|
||||||
|
LLM_CONFIGS = {
|
||||||
|
"primary": {
|
||||||
|
"provider": "openai",
|
||||||
|
"model": "gpt-4o",
|
||||||
|
"api_key_env": "OPENAI_API_KEY",
|
||||||
|
"max_tokens": 500,
|
||||||
|
"temperature": 0.3
|
||||||
|
},
|
||||||
|
"fallback": {
|
||||||
|
"provider": "dashscope", # 阿里通义千问
|
||||||
|
"model": "qwen-vl-max",
|
||||||
|
"api_key_env": "DASHSCOPE_API_KEY",
|
||||||
|
"max_tokens": 500,
|
||||||
|
"temperature": 0.3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.4 Prompt设计模板
|
||||||
|
|
||||||
|
#### 火灾检测Prompt
|
||||||
|
|
||||||
|
```
|
||||||
|
你是一位专业的消防安全分析师。请仔细分析这张图片,判断是否存在以下情况:
|
||||||
|
|
||||||
|
1. **真实火焰** - 明火、燃烧现象
|
||||||
|
2. **烟雾** - 可见烟雾
|
||||||
|
3. **误报可能** - 红色物体、灯光、反光等非火灾情况
|
||||||
|
|
||||||
|
请按以下格式回复:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"has_fire": true/false,
|
||||||
|
"has_smoke": true/false,
|
||||||
|
"confidence": 0-1,
|
||||||
|
"reasoning": "详细分析说明",
|
||||||
|
"risk_level": "low/medium/high/critical"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
注意:必须严格区分真实火灾和视觉相似物(如红色衣服、灯光)。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 5.5 触发大模型的条件
|
||||||
|
|
||||||
|
```python
|
||||||
|
# 触发策略配置
|
||||||
|
TRIGGER_CONFIG = {
|
||||||
|
# 条件1: YOLO置信度在模糊区间
|
||||||
|
"confidence_range": [0.5, 0.85],
|
||||||
|
|
||||||
|
# 条件2: 特定场景强制触发
|
||||||
|
"force_trigger_scenes": ["indoor_no_smoking_area"],
|
||||||
|
|
||||||
|
# 条件3: 时间窗口去重(避免重复调用)
|
||||||
|
"dedup_window_seconds": 30,
|
||||||
|
|
||||||
|
# 条件4: 并发限制
|
||||||
|
"max_concurrent_llm_calls": 5
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 项目管理与实施计划
|
||||||
|
|
||||||
|
### 6.1 项目时间轴
|
||||||
|
|
||||||
|
| 阶段 | 时间范围 | 主要任务 | 交付物 |
|
||||||
|
|------|----------|----------|--------|
|
||||||
|
| **阶段一** | 第1周 | 需求分析与技术方案确定 | 技术方案文档 |
|
||||||
|
| **阶段二** | 第2-3周 | RTSP接入开发 | RTSP服务模块 |
|
||||||
|
| **阶段三** | 第4周 | MQTT预警系统开发 | MQTT服务模块 |
|
||||||
|
| **阶段四** | 第5-6周 | 大模型集成 | AI分析服务 |
|
||||||
|
| **阶段五** | 第7周 | 系统集成与联调 | 集成测试报告 |
|
||||||
|
| **阶段六** | 第8周 | 系统测试与性能优化 | 性能测试报告 |
|
||||||
|
| **阶段七** | 第9周 | 部署上线与运维支持 | 生产版本 |
|
||||||
|
|
||||||
|
### 6.2 资源需求
|
||||||
|
|
||||||
|
#### 6.2.1 人员配置
|
||||||
|
|
||||||
|
| 角色 | 人数 | 职责 |
|
||||||
|
|------|------|------|
|
||||||
|
| 后端开发 | 2人 | FastAPI服务、MQTT、视频流 |
|
||||||
|
| AI算法 | 1人 | 模型优化、大模型集成 |
|
||||||
|
| 测试 | 1人 | 功能测试、性能测试 |
|
||||||
|
|
||||||
|
#### 6.2.2 硬件资源
|
||||||
|
|
||||||
|
| 资源 | 数量 | 用途 |
|
||||||
|
|------|------|------|
|
||||||
|
| 服务器 | 2台 | 主备部署 |
|
||||||
|
| GPU (可选) | 1块 | AI推理加速 |
|
||||||
|
| 摄像头 | 若干 | 测试验证 |
|
||||||
|
|
||||||
|
#### 6.2.3 软件资源
|
||||||
|
|
||||||
|
- 开发工具:VS Code、PyCharm
|
||||||
|
- 测试环境:Docker、Postman
|
||||||
|
- 部署平台:Linux服务器
|
||||||
|
|
||||||
|
### 6.3 风险管理
|
||||||
|
|
||||||
|
| 风险点 | 影响 | 应对策略 |
|
||||||
|
|--------|------|----------|
|
||||||
|
| RTSP延迟过高 | 高 | 采用硬件解码、优化缓冲策略 |
|
||||||
|
| MQTT消息丢失 | 高 | 实现QoS等级、消息持久化 |
|
||||||
|
| AI模型性能不足 | 中 | 模型量化、批处理优化 |
|
||||||
|
| 大模型API不稳定 | 中 | 多模型降级策略、本地缓存 |
|
||||||
|
| 并发处理能力 | 中 | 异步架构、服务拆分 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 交付成果清单
|
||||||
|
|
||||||
|
### 7.1 文档交付物
|
||||||
|
|
||||||
|
- [ ] 系统设计文档与技术方案说明书
|
||||||
|
- [ ] 用户操作手册与开发文档
|
||||||
|
- [ ] 系统部署包与环境配置说明
|
||||||
|
|
||||||
|
### 7.2 代码交付物
|
||||||
|
|
||||||
|
| 文件路径 | 功能 |
|
||||||
|
|----------|------|
|
||||||
|
| `services/rtsp_service.py` | RTSP流接收与解码 |
|
||||||
|
| `services/stream_manager.py` | 多路流管理调度 |
|
||||||
|
| `services/mqtt_service.py` | MQTT客户端连接 |
|
||||||
|
| `services/alert_service.py` | 预警事件生成 |
|
||||||
|
| `services/llm_analysis_service.py` | 大模型视觉分析 |
|
||||||
|
| `models/stream_schemas.py` | 流数据模型 |
|
||||||
|
| `models/alert_schemas.py` | 预警数据模型 |
|
||||||
|
| `api/streaming.py` | 流管理API |
|
||||||
|
| `api/alerts.py` | 预警查询API |
|
||||||
|
|
||||||
|
### 7.3 测试交付物
|
||||||
|
|
||||||
|
- [ ] 测试报告与性能评估报告
|
||||||
|
- [ ] 单元测试用例与覆盖率报告
|
||||||
|
- [ ] 集成测试报告
|
||||||
|
|
||||||
|
### 7.4 部署交付物
|
||||||
|
|
||||||
|
- [ ] 源代码与构建部署脚本
|
||||||
|
- [ ] Docker镜像与编排文件
|
||||||
|
- [ ] 环境变量配置模板
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 附录
|
||||||
|
|
||||||
|
### A. 技术依赖清单
|
||||||
|
|
||||||
|
```
|
||||||
|
# 新增Python依赖
|
||||||
|
paho-mqtt>=1.6.0 # MQTT客户端
|
||||||
|
openai>=1.0.0 # OpenAI API
|
||||||
|
httpx>=0.24.0 # 异步HTTP客户端
|
||||||
|
aioredis>=2.0.0 # Redis缓存(可选)
|
||||||
|
pydantic-settings>=2.0.0 # 配置管理
|
||||||
|
```
|
||||||
|
|
||||||
|
### B. 环境变量配置
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# MQTT配置
|
||||||
|
MQTT_BROKER_HOST=localhost
|
||||||
|
MQTT_BROKER_PORT=1883
|
||||||
|
MQTT_USERNAME=admin
|
||||||
|
MQTT_PASSWORD=password
|
||||||
|
|
||||||
|
# 大模型API配置
|
||||||
|
OPENAI_API_KEY=sk-xxx
|
||||||
|
DASHSCOPE_API_KEY=sk-xxx
|
||||||
|
|
||||||
|
# RTSP配置
|
||||||
|
RTSP_DEFAULT_FPS=5
|
||||||
|
RTSP_BUFFER_SIZE=30
|
||||||
|
RTSP_RECONNECT_INTERVAL=5
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*文档结束*
|
||||||
Reference in New Issue
Block a user