pier-lfb/tracking-project

GitHub: pier-lfb/tracking-project

一个模块化的实时视频分析Pipeline,集成目标检测、多目标跟踪与业务逻辑(零售分析、行李遗弃检测、交通测速),通过FastAPI提供完整的Web演示与API服务。

Stars: 0 | Forks: 0

# 作品集:实时检测、跟踪与视频分析 Pipeline :computer: 用于视频流分析的实时视觉 Pipeline: **检测**、**多目标跟踪 (MOT)** 与**业务应用** (人员计数与停留时间、遗弃行李检测、 车速测量与车辆计数)。所有功能均可通过 **Web API** (FastAPI + Uvicorn)或在本地(OpenCV)调用。 ## :mag: 概览 演示 Web 界面支持启动视频分析、实时查看标注后的视频流,并 查看针对每一帧计算的指标(JSON)。

Interface de l'API

| 应用场景 | 功能特性 | |-------------|-----------------| | **:shopping_cart: 零售** | 停留时间 (*dwell time*) 与客流量分析 | | **:briefcase: 遗弃行李** | 检测与主人分离的行李 | | **:vertical_traffic_light: 交通** | 车速估计与车辆计数 | ## :rocket: 演示 ### :shopping_cart: 零售

Démo du module retail analytics

- 在地面定义多边形感兴趣区域 (ROI) - 客户的检测与跟踪 - 计算停留时间,为每条 track/人员持久化保存 - 按降序排列停留时间最长的前 5 名 ### :briefcase: 遗留行李

Démo du module de détection de bagages abandonnés

- 跟踪人员与行李 - 状态逻辑:携带、静止、分离、遗弃 - 检测保持静止且与主人分离的行李 - 发生遗弃时触发视觉警报 ### :vertical_traffic_light: 交通

Démo du module trafic

- 车辆的检测与跟踪 - 通过图像 → 路面的单应性 (homography) 投影进行车速估计 - 使用 Savitzky-Golay 滤波器平滑速度 - 车辆穿过中心线时的双向计数 ### 喜欢热力图吗?我也喜欢 :sunglasses:

heatmap du usecase retail

## :file_folder: 仓库结构 ``` assets/ # images/gifs pour le README src/ detection/ # détecteurs ONNX + post-processing tracking/ # trackers MOT réimplémentés (ByteTrack, BoT-SORT, OC-SORT, SORT, C-BIoU) retail/ # comptage clients + temps de présence par zone luggage/ # détection de bagages abandonnés traffic/ # comptage + vitesses des véhicules api/ # FastAPI, démo web, registre de use cases tools/ # zone_drawer, calibration homographie tests/ # plusieurs tests unitaires par use case configs/ # configuration use case (YAML) + zones/homographies (JSON) ``` ## :floppy_disk: 安装 创建并激活 Conda 环境: ``` conda create -n vision python=3.10 conda activate tracking_env ``` 随后安装 Python 依赖项: ``` pip install -r requirements.txt ``` 或者直接根据文件创建 Conda 环境: ``` conda env create -f environment.yml conda activate tracking_env ``` ## :gear: 架构 采用三层模块化结构:您可以将任意 检测器连接到任意跟踪器,然后在上方接入任意业务逻辑 - 这提升了可扩展性与可维护性。 ``` ┌────────────────┐ flux vidéo ──► │ Détection │ YOLO / YOLOX (ONNX) └────────┬───────┘ │ détections (bbox + classes) ┌────────▼───────┐ │ Tracking │ ByteTrack · BoT-SORT · OC-SORT · SORT · C-BIoU └────────┬───────┘ │ tracks (identités persistantes) ┌────────▼────────┐ │ Logique métier │ retail · luggage · trafic ... └────────┬────────┘ │ frame annotée + métriques ┌────────▼───────┐ │ API │ FastAPI · stream MJPEG · dashboard └────────────────┘ ``` - **检测** - 优化用于 ONNX 推理的 YOLO / YOLOX 模型,以实现实时推理。 - **跟踪** - 重新实现的 MOT 跟踪器,用于对比鲁棒性、速度和身份标识的稳定性。 - **业务逻辑** - 将轨迹转化为可用的指标:停留时间、计数、车速、警报。 - **API** - 用于启动分析并查看标注视频流的 Web 界面。 主要 API 接口: | 接口 | 功能 | |---|---| | `GET /` | 演示 Web 界面 | | `POST /analyze` | 启动视频分析 | | `GET /stream` | MJPEG 格式的标注视频流 | | `GET /monitor` / `GET /stats` | 当前状态与指标 | ## :wrench: 使用方法 ### 启动 API(推荐) ``` uvicorn src.api.app:app --host 0.0.0.0 --port 8000 ``` 打开 **http://localhost:8000**,选择一个应用场景,然后启动分析。 ### 单独运行用例 ``` python tests/test_retail.py python tests/test_trafic.py python tests/test_luggage_monitor.py ``` ### 配置工具 **定义感兴趣区域 (零售)** ``` python tools/zone_drawer.py ``` **单应性校准 (交通 / 行李)** ``` python tools/homography_calibrator.py ``` ## :seedling: 发展方向 ### 综合方向 - API 的 Docker 容器化 - 在目标领域对检测器进行 fine-tuning 以提高召回率 - 添加基于 transformer 的检测器 (RT-DETR) ### 改进现有用例 - 零售:与商品的互动、客流量热力图、多区域分析 - 交通:按车辆类型分类、违规检测 ### 新增用例 - 安防:跌倒检测、佩戴安全设备检测、闯入禁區域检测 - 停车场:空闲/已占用车位检测、停车时间统计 - 足球:球队归属、控球率、球衣号码 OCR ## :open_book: 参考资料 ### 重新实现的 MOT 跟踪器 | 跟踪器 | 论文 | 代码 | |----------|---------|-------------------------------------------------| | **SORT** | [Bewley et al. (2016)](https://arxiv.org/abs/1602.00763) | [GitHub](https://github.com/abewley/sort) | | **ByteTrack** | [Zhang et al. (2022)](https://arxiv.org/abs/2110.06864) | [GitHub](https://github.com/ifzhang/ByteTrack) | | **BoT-SORT** | [Aharon et al. (2022)](https://arxiv.org/abs/2206.14651) | [GitHub](https://github.com/NirAharon/BoT-SORT) | | **OC-SORT** | [Cao et al. (2023)](https://arxiv.org/abs/2203.14360) | [GitHub](https://github.com/noahcao/OC_SORT) | | **C-BIoU** | [Yang et al. (2023)](https://arxiv.org/abs/2211.14317) | - | ### 检测器 - **YOLOX** - [文章](https://arxiv.org/abs/2107.08430) · [GitHub](https://github.com/Megvii-BaseDetection/YOLOX) - **Ultralytics YOLO** - [GitHub](https://github.com/ultralytics/ultralytics)
标签:AV绕过, CNCF毕业项目, FastAPI, 业务分析, 单应性矩阵, 多目标跟踪, 目标检测, 视频分析, 计算机视觉, 逆向工具