基于YOLOv5+DeepSORT的视频目标检测跟踪计数系统-YOLOv5+DeepSORT
## 项目描述 基于YOLOv5+DeepSORT的视频目标检测跟踪计数系统
基于 YOLOv5 + DeepSORT 的视频目标检测跟踪计数系统,对监控视频中的行人、自行车、小汽车、摩托车、公交车、卡车进行实时检测、多目标跟踪,并通过双区域撞线法按方向分别统计进入/离开数量。在原有命令行版本基础上,新增了 Web 界面,支持用户上传视频、查看处理进度、统计结果和历史记录。
## 项目功能
– 视频上传:支持 MP4/AVI/MOV/MKV 等格式,拖拽或点击上传
– 目标检测与跟踪:YOLOv5 检测 6 类目标,DeepSORT 分配轨迹 ID
– 双向计数:蓝/黄双多边形撞线,按穿越顺序判定进入(下行)与离开(上行),同一 ID 防重复计数
– 统计展示:进入/离开/合计计数卡片、分类别统计表、逐次撞线事件时间线
– 结果回放:输出带检测框、轨迹 ID、撞线区域标注的 H.264 视频,浏览器可直接播放
– 历史记录:SQLite 持久化,支持回看统计结果和删除记录,重启不丢失
– 处理进度:实时显示帧进度和当前计数,后台队列串行处理
## 运行环境
– 操作系统:Windows(亦兼容 Linux)
– Python 3.11
– CPU 模式运行(约 0.5 秒/帧),有 NVIDIA 显卡可装 CUDA 版 PyTorch 加速
– 服务启动:项目根目录执行`python app.py` ,浏览器访问`http://127.0.0.1:5000`
## 项目技术
– 检测模型:YOLOv5m(COCO 预训练权重)
– 跟踪算法:DeepSORT(卡尔曼滤波 + 匈牙利匹配 + ReID 外观特征)
– 计数算法:双多边形区域撞线法,轨迹点穿越顺序判定方向
– 后端:Flask + SQLite,后台线程任务队列,视频 Range 分段传输
– 前端:原生 HTML/CSS/JS 单页应用,XMLHttpRequest 上传进度、轮询任务状态
– 依赖:PyTorch、OpenCV、NumPy、SciPy
以上系统源码经过技术整理与调试,确保能正常运行


