deep_sort_pytorch 项目介绍
项目概述
deep_sort_pytorch 是一个基于深度学习的多目标跟踪实现项目,利用卷积神经网络(CNN)对视频中的目标进行特征提取和跟踪管理。此项目在传统的 SORT(简单在线实时跟踪)算法基础上进行了改进,通过加入重识别(Re-ID)模型来增强跟踪能力。其最初实现基于论文“基于深度关联度量的简单在线和实时跟踪”(Simple Online and Realtime Tracking with a Deep Association Metric),并主要使用了 PyTorch 框架进行实现。
项目更新
2020年1月1日更新
- 修复了一些代码中的 bug,并重构了部分代码结构。
- 通过在 GPU 上增加非极大值抑制(NMS)功能,加速了检测过程。
2020年7月22日更新
- 修复了影响特征提取速度的 bug。
- 提出了一些未来的改进方向,包括基于特定数据集训练检测器、性能更佳的行人重识别模型以及使用更先进的检测器。
2024年5月23日更新
- 在 tracking 部分,加入了 resnet 网络来增强特征提取能力。
- 在 detecting 部分,新增了 YOLOv5 检测器并对相关接口和配置进行了调整。
- 在 deepsort 部分,增加了跟踪目标类别显示功能。
2024年5月28日更新
- 新增了基于 Mask RCNN 的实例分割模型。
- 加入了跟踪目标蒙版功能,提供类别、跟踪 ID 和目标蒙版的同时显示。
2024年6月9日最新更新
- 更新了特征提取网络,支持多 GPU 下的并行训练。
- 增加了用户指南文档,以便更好地使用 train.py 和 train_multiGPU.py。
核心功能
-
检测
- 支持 YOLOv3 及 YOLOv5 检测器,可以轻松切换。
- 使用 Mask RCNN 进行实例分割,丰富了检测类型。
-
跟踪
- 结合深度特征提取和卡尔曼滤波算法,进行多目标稳定跟踪。
- 增强了跟踪目标的类别和掩码显示功能。
-
特征提取
- 使用 CNN 提取视频框中目标的外观特征,并利用 Re-ID 模型进行身份重识别。
- 支持多 GPU 训练以提升训练效率。
快速开始
要使用此项目,请确保计算机安装了 Python 3 及相关依赖包。您可以通过以下步骤快速启动项目:
-
克隆项目到本地:
git clone git@github.com:ZQPei/deep_sort_pytorch.git
-
安装所需的依赖:
pip install -r requirements.txt
-
下载检测器的权重参数:
- YOLOv3、YOLOv5 和 Mask RCNN 均有预训练模型可选,下载后放入指定目录。
-
运行 demo 演示: 通过以下命令可启动带有视频输入的跟踪演示:
python deepsort.py [VIDEO_PATH] --config_detection ./configs/yolov3.yaml
训练模型
项目支持自定义数据集和标准基准数据集进行 Re-ID 模型的训练,详细步骤可在 GETTING_STARTED.md 文档中找到。
项目依赖
- Python 3及以上
- 常用的科学计算库如 numpy、scipy
- 深度学习库 PyTorch 及其扩展 torchvision
- 计算机视觉库 opencv-python 和目标检测工具 pycocotools
参考资料
该项目的实现参考了多项学术论文和开源代码资源,包括 YOLOv3、YOLOv5、Mask R-CNN 等,确保了检测与跟踪算法的先进性和准确性。综合这些资源,deep_sort_pytorch 项目为多目标跟踪提供了一套完整且高效的解决方案。