Skip to content

Repository files navigation

交通流量分析工具

基于YOLOv8和DeepSORT的实时车辆检测与跟踪系统,用于交通流量分析。

功能特点

  • 实时车辆检测: 使用YOLOv8进行准确的车辆检测
  • 车辆分类: 将车辆分为5类(汽车、公交车、摩托车、出租车、三轮车)
  • 目标跟踪: 实现DeepSORT算法进行稳定的车辆跟踪
  • 轨迹可视化: 显示车辆移动轨迹,带有渐变效果
  • 方向计数: 统计上行和下行的车辆数量
  • 统计图表: 生成交通统计数据的可视化图表
  • 自定义模型: 支持自定义训练的YOLO模型

系统要求

  • Python 3.8+
  • OpenCV
  • PyTorch
  • Ultralytics
  • DeepSORT-Realtime
  • Matplotlib
  • NumPy

安装步骤

  1. 克隆仓库:
git clone <你的仓库地址>
cd TrafficFlowAnalysis
  1. 创建conda环境:
conda create -p ./env python=3.8
conda activate ./env
  1. 安装依赖:
pip install ultralytics opencv-python torch torchvision
pip install deep-sort-realtime matplotlib numpy
pip install lap

使用方法

基本使用

python traffic_flow_analysis.py --video TrafficFlow.mp4

高级选项

# 自定义置信度阈值
python traffic_flow_analysis.py --video TrafficFlow.mp4 --conf 0.5

# 不显示视频窗口
python traffic_flow_analysis.py --video TrafficFlow.mp4 --no-show

# 调试模式
python traffic_flow_analysis.py --video TrafficFlow.mp4 --debug

参数说明

  • --video: 输入视频文件路径(默认: TrafficFlow.mp4)
  • --conf: 检测置信度阈值(默认: 0.4)
  • --no-show: 禁用实时视频显示
  • --debug: 启用调试模式

模型文件

系统支持不同的YOLO模型:

  • yolov8n.pt: YOLOv8 nano(最快,文件最小)
  • yolov8m.pt: YOLOv8 medium(平衡性能)
  • best.pt: 自定义训练模型(将你的训练模型重命名为这个)

输出结果

  • 实时显示: 显示带有边界框、标签和轨迹的视频
  • 统计图表: 保存交通统计数据为PNG文件
  • 控制台输出: 显示车辆计数和处理信息

车辆类别

系统检测和分类的车辆:

  1. 汽车: 普通载客车辆
  2. 公交车: 公共交通工具
  3. 摩托车: 摩托车和电动车
  4. 出租车: 出租车(通过黄绿色图案检测)
  5. 三轮车: 三轮车辆(通过深红黑色检测)

自定义模型训练

用于自定义模型训练的脚本:

  • extract_vehicles.py: 从视频中提取车辆图像
  • classify_vehicles.py: 手动分类工具
  • train_custom_model.py: 训练自定义YOLO模型

许可证

本项目采用MIT许可证。

贡献

欢迎贡献代码!请随时提交Pull Request。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages