fastiuk/traffic-violation-detection-edge
GitHub: fastiuk/traffic-violation-detection-edge
一项博士研究项目,在树莓派5搭配Hailo-8L加速器的边缘硬件上,利用YOLOv5实现低延迟实时交通违章检测的原型与性能基准验证。
Stars: 0 | Forks: 0
# 边缘设备上的交通违章检测
**代码仓库:** `traffic-violation-detection-edge`
**平台:** Raspberry Pi 5 + Hailo-8L AI 加速器
**作者:** Yevhen Fastiuk
**背景:** 博士论文研究
## 概述
本代码仓库托管了一项专注于**使用边缘计算进行实时交通规则执法**的博士研究项目的源代码、基准测试和实验数据。
该项目研究了在低功耗、高性价比的边缘硬件 (Raspberry Pi 5) 上部署先进计算机视觉模型(如 YOLOv5)并结合专用 AI 加速 (Hailo-8L) 的可行性与效率。主要目标是在边缘本地检测交通违章行为——例如违章停车、逆行和闯红灯——从而降低延迟和带宽需求,相比以云为中心的解决方案更具优势。
## 新手入门
### 1. 硬件与操作系统要求
* **设备:** Raspberry Pi 5(推荐 8GB 版本)

* **加速器:** Hailo-8L M.2 模块 + Raspberry Pi M.2 HAT+ (Hailo AI Kit)

* **操作系统:** 适用于 Raspberry Pi 的 **Ubuntu 24.04 LTS (Noble Numbat)** 64位版本。
* *注意:* 由于 ABI 版本控制冲突,此自动化设置不完全支持 Raspberry Pi OS。
### 2. 安装说明
1. **克隆仓库:**
git clone https://github.com/fastiuk/traffic-violation-detection-edge.git
cd traffic-violation-detection-edge
2. **下载所需的二进制文件:**
由于许可限制,此处无法托管 Hailo 二进制文件。请从 [Hailo 开发者专区](https://hailo.ai/developer-zone/) 下载以下文件并将其放置在 `setup/installers/` 目录中:
* `hailort_4.23.0_arm64.deb`
**MD5:** `212575df93456a40befd9238ac92b4e1`
* `hailort-pcie-driver_4.23.0_all.deb`
**MD5:** `a734d7c865e5489f855ddd01bcbfc7e6`
* `hailort-4.23.0-cp312-cp312-linux_aarch64.whl`
**MD5:** `a66552e308c1123616cbdb4fd69e5485`
3. **下载基准测试数据集:**
./setup/download_coco_val2017.sh
./setup/download_video_footage_dataset.py
COCO 存储在 `dataset/coco` 目录下;交通视频存储在
`dataset/traffic-vids` 目录下。
4. **运行设置第 1 部分(系统):**
更新操作系统并启用 PCIe。**系统将自动重启。**
./setup/setup_part1_system.sh
5. **运行设置第 2 部分(Hailo):**
重启后,登录并运行:
cd traffic-violation-detection-edge
./setup/setup_part2_hailo.sh
### 3. 运行基准测试
重启后,执行性能基准测试:
```
# 激活环境
source /opt/hailo_env/bin/activate
# 运行 benchmark (Web Streaming)
python3 performance-benchmark/src/hailo_inference_web.py
```
通过 `http://:5001` 访问视频流。
## 仓库结构
* **`performance-benchmark/`**
包含比较主机 CPU 与 Hailo-8L 加速器推理能力的初步基线研究。
* `src/`:用于对 FPS(每秒帧数)和延迟进行基准测试的 Python 脚本。包含用于可视化的网络流媒体实现。
* `docs/`:详细的性能报告和方法论(例如,`Hailo_vs_RPi5_CPU_Benchmark_Report.md`)。
* **`setup/`**
用于配置边缘环境的基础设施即代码 和设置脚本。
* `setup_part1_system.sh` 和 `setup_part2_hailo.sh`:使用手动提供的 Hailo 安装程序的 Ubuntu 24.04 设置路径。
* `setup_raspberry_pi_os_hailo.sh`:使用 Raspberry Pi apt 软件包的 Raspberry Pi OS/Debian 设置路径。
* `download_coco_val2017.sh` 和 `download_video_footage_dataset.py`:数据集下载辅助脚本。
* `installers/`:将下载的专有二进制文件放置在此处。
* **`performance-benchmark/results/`**
测试期间捕获的实验数据、屏幕截图和日志。
## 主要发现(初步)
使用 YOLOv5s (640x640) 进行的初步基准测试证明了专用硬件在此应用中的关键必要性:
| 硬件 | 吞吐量 (应用) | 吞吐量 (原始硬件) | 延迟 | 系统负载 | 适用性 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **RPi 5 CPU** | ~1.7 FPS | 不适用 | ~570ms | 100% | 不适用于实时场景 |
| **Hailo-8L** | **~15 FPS** | **29.34 FPS** | **~32ms** | <20% | **具备实时处理能力** |
* **应用吞吐量:** 在 Python 应用程序中端到端测量(帧捕获 -> 预处理 -> 推理 -> 流传输)。
* **原始硬件吞吐量:** 直接在加速器上使用 `hailortcli` 基准测试工具测量得出。
## 未来工作
* **违章逻辑:** 实施跟踪算法(例如 ByteTrack)和规则引擎,以定义和检测特定的交通违章行为。
* **数据集收集:** 用于在交通路口进行自主数据收集的脚本。
* **模型优化:** 在特定领域的数据集(交通监控)上对 YOLO 模型进行微调。
## 许可证
本项目基于 **MIT License** 授权。有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
* 视频数据集归属:Free Stock Footage by Vecteezy.com
标签:AI加速器, Arm64, Hailo-8L, Ubuntu 24.04, YOLOv5, 交通违规检测, 低延迟, 博士研究, 实时视频处理, 嵌入式系统, 智能交通, 树莓派5, 深度学习, 目标检测, 硬件加速, 视频监控, 计算机视觉, 边缘AI, 边缘推理, 边缘计算, 违章停车检测, 逆向工具, 逆行检测, 闯红灯检测