基于YOLOv8和DeepSORT的实时车辆检测与跟踪系统,用于交通流量分析。
- 实时车辆检测: 使用YOLOv8进行准确的车辆检测
- 车辆分类: 将车辆分为5类(汽车、公交车、摩托车、出租车、三轮车)
- 目标跟踪: 实现DeepSORT算法进行稳定的车辆跟踪
- 轨迹可视化: 显示车辆移动轨迹,带有渐变效果
- 方向计数: 统计上行和下行的车辆数量
- 统计图表: 生成交通统计数据的可视化图表
- 自定义模型: 支持自定义训练的YOLO模型
- Python 3.8+
- OpenCV
- PyTorch
- Ultralytics
- DeepSORT-Realtime
- Matplotlib
- NumPy
- 克隆仓库:
git clone <你的仓库地址>
cd TrafficFlowAnalysis- 创建conda环境:
conda create -p ./env python=3.8
conda activate ./env- 安装依赖:
pip install ultralytics opencv-python torch torchvision
pip install deep-sort-realtime matplotlib numpy
pip install lappython 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文件
- 控制台输出: 显示车辆计数和处理信息
系统检测和分类的车辆:
- 汽车: 普通载客车辆
- 公交车: 公共交通工具
- 摩托车: 摩托车和电动车
- 出租车: 出租车(通过黄绿色图案检测)
- 三轮车: 三轮车辆(通过深红黑色检测)
用于自定义模型训练的脚本:
extract_vehicles.py: 从视频中提取车辆图像classify_vehicles.py: 手动分类工具train_custom_model.py: 训练自定义YOLO模型
本项目采用MIT许可证。
欢迎贡献代码!请随时提交Pull Request。