zodia8393/traffic-anomaly-detection
GitHub: zodia8393/traffic-anomaly-detection
基于4级分层架构的高速公路CCTV实时交通异常检测系统,通过规则引擎与多种机器学习模型集成,检测急减速、停车、逆行和事故等异常并预测事故概率。
Stars: 0 | Forks: 0
# 交通异常检测

## 概述
这是一个用于在高速公路 CCTV 视频中实时检测交通异常情况(急减速、停车、逆行、事故)的系统。它由 4 级分层集成架构组成,从基于规则的快速判定(Level 1)到基于 STGAE 的时空模式学习(Level 4),能够立即检测出明确的异常,并通过深度学习补充识别微妙的模式。系统使用 AI Hub 交通视频数据集进行训练,未来计划通过集成 MLLM (Qwen2.5-VL),进一步扩展以实现事故原因推理和自动生成报告。
## 技术栈
| 领域 | 技术 |
|------|------|
| 检测/追踪 | YOLO11n, ByteTrack |
| Level 1 | YAML 声明式规则引擎 |
| Level 2 | Isolation Forest (scikit-learn) |
| Level 3 | LSTM AutoEncoder (PyTorch) |
| Level 4 | STGAE - Spatio-Temporal Graph AutoEncoder (PyTorch) |
| 集成 | 分层评分器 (规则优先 + ML 投票) |
| 数据 | AI Hub #71566, DuckDB |
| 预测 | XGBoost (事故概率预测) |
## 架构
```
flowchart TB
subgraph Input["센서 데이터"]
CCTV[CCTV 영상]
META[차량 궤적 · 속도 · TTC]
end
subgraph Vision["Vision Layer"]
DET[YOLO 탐지 + ByteTrack 추적]
FEAT[FeatureStore
차량별 특성벡터 관리] end subgraph Engine["4-Level Anomaly Engine"] L1[Level 1: 규칙 엔진
YAML 선언적 · 즉시 판정
급감속 · 역주행 · TTC] L2[Level 2: Isolation Forest
클립 특성벡터 기반
정상 분포 외 탐지] L3[Level 3: LSTM-AE
시계열 재구성 오차
궤적 이상 패턴] L4[Level 4: STGAE
시공간 그래프 오토인코더
차량 간 상호작용 이상] ENS[앙상블 스코어러
규칙 CRITICAL → 즉시 트리거
ML 2/3 투표 → 트리거] end subgraph Output["출력"] ALERT[알림 · 등급 분류
CRITICAL / HIGH / MEDIUM / LOW] PRED[사고 확률 예측
XGBoost] end CCTV --> DET --> FEAT META --> FEAT FEAT --> L1 --> ENS FEAT --> L2 --> ENS FEAT --> L3 --> ENS FEAT --> L4 --> ENS ENS --> ALERT ENS --> PRED ``` ## 主要特性 - **4 级分层检测** -- 按规则(即时)-> IForest(统计)-> LSTM-AE(时间序列)-> STGAE(时空图)顺序进行精细化 - **YAML 声明式规则** -- 无需修改代码,通过 YAML 管理阈值/条件(包含 single/pair/group/special 4 种类型) - **STGAE 时空图** -- 将车辆间的距离/速度关系建模为图,通过正常模式的重构误差来检测异常 - **分层集成** -- 规则触发的 CRITICAL 状态无视 ML 结果立即触发,ML 则通过 2/3 的投票共识进行判定 - **AI Hub 数据集成** -- 包含 #71566 交通异常行为数据集解析器,自动分类正常/异常视频片段 - **事故概率预测** -- 利用积累的异常迹象时间序列 + 交通流指标构建 XGBoost 事故预测模型 ## 快速开始 ``` pip install torch scikit-learn xgboost duckdb numpy opencv-python python -m src.anomaly_engine.test_engine --camera cam001 --video /path/to/video.mp4 # Level 2 学习: python -m src.anomaly_engine.level2_iforest --data_dir /path/to/aihub/ ``` ## 项目结构 ``` traffic-anomaly-detection/ ├── src/ │ ├── anomaly_engine/ # 이상징후 탐지 엔진 │ │ ├── engine.py # 메인 오케스트레이터 │ │ ├── rule_engine.py # Level 1: YAML 규칙 엔진 │ │ ├── level2_iforest.py # Level 2: Isolation Forest │ │ ├── level3_lstm_ae.py # Level 3: LSTM AutoEncoder │ │ ├── level4_stgae.py # Level 4: STGAE 래퍼 │ │ ├── ensemble.py # 계층적 앙상블 스코어러 │ │ ├── feature_store.py # 차량 특성벡터 관리 │ │ └── alerter.py # 알림 생성/등급 분류 │ ├── layer4_prediction/ # 사고 예측 (XGBoost) │ └── config_new.py ├── external/stgae/ # STGAE 학습/평가 스크립트 ├── models/ # 학습된 가중치 (.pkl, .pt) ├── data/ # AI Hub 데이터, 캘리브레이션 └── docs/ # 설계 문서 ``` ## 技术决策 - **采用 4 级分层架构**:单一模型很难同时覆盖“急减速 + 停车”(明确)和“缓慢减速导致的拥堵”(微妙)等情况。采用规则机制立即捕捉明确案例,并用 ML 补充微妙模式的架构,在准确率和响应速度上都表现更优。 - **STGAE (Level 4)**:仅靠单个车辆轨迹无法检测到“多车连环急减速”等基于交互的异常。我们采用了 STGAE,将车辆间的关系建模为图边,从而实现时空同步学习。 - **集成中规则优先**:对于逆行/TTC 即将碰撞等 CRITICAL 情况,即便是毫秒级的 ML 推理时间也是不允许的。我们应用了非对称架构:由规则引擎以 O(N) 的复杂度进行即时判定,而 ML 则异步提供补充评分。
차량별 특성벡터 관리] end subgraph Engine["4-Level Anomaly Engine"] L1[Level 1: 규칙 엔진
YAML 선언적 · 즉시 판정
급감속 · 역주행 · TTC] L2[Level 2: Isolation Forest
클립 특성벡터 기반
정상 분포 외 탐지] L3[Level 3: LSTM-AE
시계열 재구성 오차
궤적 이상 패턴] L4[Level 4: STGAE
시공간 그래프 오토인코더
차량 간 상호작용 이상] ENS[앙상블 스코어러
규칙 CRITICAL → 즉시 트리거
ML 2/3 투표 → 트리거] end subgraph Output["출력"] ALERT[알림 · 등급 분류
CRITICAL / HIGH / MEDIUM / LOW] PRED[사고 확률 예측
XGBoost] end CCTV --> DET --> FEAT META --> FEAT FEAT --> L1 --> ENS FEAT --> L2 --> ENS FEAT --> L3 --> ENS FEAT --> L4 --> ENS ENS --> ALERT ENS --> PRED ``` ## 主要特性 - **4 级分层检测** -- 按规则(即时)-> IForest(统计)-> LSTM-AE(时间序列)-> STGAE(时空图)顺序进行精细化 - **YAML 声明式规则** -- 无需修改代码,通过 YAML 管理阈值/条件(包含 single/pair/group/special 4 种类型) - **STGAE 时空图** -- 将车辆间的距离/速度关系建模为图,通过正常模式的重构误差来检测异常 - **分层集成** -- 规则触发的 CRITICAL 状态无视 ML 结果立即触发,ML 则通过 2/3 的投票共识进行判定 - **AI Hub 数据集成** -- 包含 #71566 交通异常行为数据集解析器,自动分类正常/异常视频片段 - **事故概率预测** -- 利用积累的异常迹象时间序列 + 交通流指标构建 XGBoost 事故预测模型 ## 快速开始 ``` pip install torch scikit-learn xgboost duckdb numpy opencv-python python -m src.anomaly_engine.test_engine --camera cam001 --video /path/to/video.mp4 # Level 2 学习: python -m src.anomaly_engine.level2_iforest --data_dir /path/to/aihub/ ``` ## 项目结构 ``` traffic-anomaly-detection/ ├── src/ │ ├── anomaly_engine/ # 이상징후 탐지 엔진 │ │ ├── engine.py # 메인 오케스트레이터 │ │ ├── rule_engine.py # Level 1: YAML 규칙 엔진 │ │ ├── level2_iforest.py # Level 2: Isolation Forest │ │ ├── level3_lstm_ae.py # Level 3: LSTM AutoEncoder │ │ ├── level4_stgae.py # Level 4: STGAE 래퍼 │ │ ├── ensemble.py # 계층적 앙상블 스코어러 │ │ ├── feature_store.py # 차량 특성벡터 관리 │ │ └── alerter.py # 알림 생성/등급 분류 │ ├── layer4_prediction/ # 사고 예측 (XGBoost) │ └── config_new.py ├── external/stgae/ # STGAE 학습/평가 스크립트 ├── models/ # 학습된 가중치 (.pkl, .pt) ├── data/ # AI Hub 데이터, 캘리브레이션 └── docs/ # 설계 문서 ``` ## 技术决策 - **采用 4 级分层架构**:单一模型很难同时覆盖“急减速 + 停车”(明确)和“缓慢减速导致的拥堵”(微妙)等情况。采用规则机制立即捕捉明确案例,并用 ML 补充微妙模式的架构,在准确率和响应速度上都表现更优。 - **STGAE (Level 4)**:仅靠单个车辆轨迹无法检测到“多车连环急减速”等基于交互的异常。我们采用了 STGAE,将车辆间的关系建模为图边,从而实现时空同步学习。 - **集成中规则优先**:对于逆行/TTC 即将碰撞等 CRITICAL 情况,即便是毫秒级的 ML 推理时间也是不允许的。我们应用了非对称架构:由规则引擎以 O(N) 的复杂度进行即时判定,而 ML 则异步提供补充评分。
标签:PyTorch, 交通异常检测, 凭据扫描, 异常检测, 时空图自编码器, 智能交通, 视频分析, 计算机视觉, 逆向工具