━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
从数据治理、模型训练、实时推理、深度感知、风险预警到桌面交互的完整闭环
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ODPlatform 是一台智能行车记录仪的原型系统,也是一个可复用的目标检测工程平台。
接上摄像头,它能实时看懂路面发生了什么——识别车辆、行人、路牌,判断距离,在危险时给出预警,同时录像留证。底层是一套完整的 AI 工程管线:从原始数据转换、质量检查、模型训练,到推理引擎、深度估计、预警规则、桌面交互,每一步都有对应的命令行工具。
🎯 一句话:摄像头 → 看懂路面 → 判断危险 → 录像留证
# 1. 安装平台包
pip install -e apps/platform
# 2. 初始化项目目录
odp-init
# 3. 转换数据集 (以 Cityscape 分割数据集为例)
odp-transform --dataset cityscape --format cityscape --task segment
# 4. 质检
odp-validate --dataset cityscape
# 5. 下载模型 + 训练
python scripts/download_yolomodel.py yolo26n-seg.pt
odp-train --data cityscape.yaml --model yolo26n-seg.pt --task segment --device mps
# 6. 启动行车记录仪
python apps/desktop/main.py| 能力 | 说明 |
|---|---|
| 🔍 实例分割 | YOLO-Seg 实时识别 40 类道路目标,输出 bbox + polygon mask |
| 📏 深度估计 | Depth Anything V2 单目测距,每个像素离摄像头多远 |
| 🏷️ 目标追踪 | 跨帧 IoU 匹配,同一物体保持一致的 track_id |
| 视觉尺度增长率 + 梯形前方走廊 + 状态机消抖 | |
| 🚶 行人侵入 | 检测行人/两轮车是否进入车辆前方危险区域 |
| 📏 车距提醒 | 深度门控 + bbox 面积联合判断安全距离 |
| 📹 循环录像 | 60 秒分段 MP4,磁盘超限自动删旧,预警时锁定保护 |
| 🖥️ 桌面 GUI | PySide6 界面,摄像头/视频/图片文件夹三种输入源 |
┌─────────────────────┐
│ apps/desktop/ │ ← 桌面 GUI
│ PySide6 · 5-Stage │
└──────────┬──────────┘
│ import
┌────────────────────────────────────┼────────────────────────────────────┐
│ apps/platform/ │
│ (odp_platform 可安装包) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ pipeline │ │validation│ │ training │ │inference │ │ depth │ │
│ │ 4格式转换 │ │ 5项质检 │ │ YOLO编排 │ │ YOLO+追踪│ │ 深度+点云│ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ alert │ │visualize │ │ frame │ │ recorder │ │ config │ │
│ │ 驾驶预警 │ │ 渲染叠加 │ │ 统一取帧 │ │ 循环录像 │ │ Pydantic │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└────────────────────────────────────────────────────────────────────────┘
6 个 CLI 命令: odp-init · odp-reset · odp-transform · odp-validate · odp-gen-config · odp-train
ODPlatform/
├── apps/
│ ├── platform/ ← AI 工程平台 (核心)
│ │ └── src/odp_platform/
│ │ ├── data_pipeline/ ← 数据管道 (4 种标注格式)
│ │ │ ├── core/ ← VOC / COCO / YOLO / Cityscape 转换器
│ │ │ ├── split/ ← 数据集划分 (random / stratified)
│ │ │ └── registry.py ← @register 注册表
│ │ ├── data_validation/ ← 数据质检
│ │ │ ├── checks/ ← 5 项 check (yaml/label/format/split/stats)
│ │ │ ├── snapshot.py ← 一次扫描 · 多次复用
│ │ │ └── registry.py ← @check 注册表
│ │ ├── inference/ ← 推理引擎
│ │ │ ├── engine.py ← YOLO 加载 · 预热 · 推理
│ │ │ ├── tracker.py ← 跨帧 IoU 追踪
│ │ │ └── types.py ← DetectedObject / InferenceResult
│ │ ├── depth/ ← 深度估计
│ │ │ ├── engine.py ← Depth Anything V2 (离线可用)
│ │ │ ├── calibration.py ← 地面平面校准
│ │ │ ├── pointcloud.py ← RGB-D → 3D 点云
│ │ │ └── visualization.py ← 深度热力图
│ │ ├── alert/ ← 驾驶预警
│ │ │ ├── rules.py ← 碰撞 · 侵入 · 车距
│ │ │ ├── state.py ← 状态机消抖
│ │ │ ├── history.py ← 时序历史
│ │ │ ├── roi.py ← 梯形前方走廊
│ │ │ └── recorder.py ← 预警截图 + JSON
│ │ ├── visualization/ ← 可视化渲染
│ │ │ └── overlay.py ← mask 后处理管线 (5 级)
│ │ ├── frame_source/ ← 统一取帧抽象
│ │ ├── recorder/ ← 循环录像 + Session
│ │ ├── training/ ← 训练编排 + 权重归档
│ │ └── cli/ ← 6 个 CLI 命令
│ │
│ └── desktop/ ← 桌面 GUI (PySide6)
│ ├── pipeline/ ← 5 阶段并发流水线
│ ├── ui/ ← QMainWindow
│ └── depth_trt/ ← TensorRT 加速
│
├── scripts/ ← CLI 快捷入口
├── docs/architecture/ ← 7 份 ADR 架构决策记录
├── models/ ← 预训练权重 + 检查点
└── data/ ← 数据集 (gitignored)
| 命令 | 功能 |
|---|---|
odp-init |
初始化项目目录结构 |
odp-reset |
重置到初始状态 (保护源码和文档) |
odp-transform |
标注格式转换 + 数据集划分 |
odp-validate |
5 项数据质检 + 统计报告 |
odp-gen-config |
生成训练/验证/推理 YAML 模板 |
odp-train |
YOLO 训练 + 质检 + 权重归档 |
- 注册表模式 — 3 个模块使用,新增 Converter/Check/Strategy 只加文件不改框架
- DatasetSnapshot — 一次扫描全量数据,5 个 check 共享,10 万图只需 1 次 I/O
- FrameSource 抽象 — 摄像头/视频/图片文件夹统一接口,推理引擎不感知帧来源
- 5 级 mask 后处理 — 双核形态学 → 碎片过滤 → 高斯平滑 → 凸包补全 → EMA 时稳
- 预警状态机 — 连续多帧确认才报警,连续多帧 clear 才解除,消除闪烁
- Session 统一管理 — 一次运行 = 一个目录,录像+预警+元数据全部关联
- 离线可用 — Depth Anything V2 纯本地加载,不依赖 GitHub / HuggingFace 网络
| 领域 | 技术 |
|---|---|
| 目标检测 / 分割 | YOLO-Seg (Ultralytics) |
| 单目深度估计 | Depth Anything V2 Small (24.8M) |
| 桌面 GUI | PySide6 |
| 数值计算 | NumPy · PyTorch · OpenCV |
| 配置管理 | Pydantic v2 |
| 可视化 | OpenCV · Matplotlib · Pillow |
| 注册表模式 | pkgutil.iter_modules 自动发现 |
| 构建系统 | Hatchling (PEP 621) |
| 文档 | 路径 |
|---|---|
| 架构决策记录 (ADR) | docs/architecture/ |
| 路演展示 | docs/ODPlatform_路演展示.html |
| 答辩演讲稿 | docs/ODPlatform_答辩演讲稿.md |
| 项目介绍书 | docs/ODPlatform_项目介绍书.html |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Made with ❤️ by ODPlatform Team · XDU 生产实习 · 2026