layumi/Person_reID_baseline_pytorch

:bouncing_ball_person: Pytorch ReID: A tiny, friendly, strong pytorch implement of person re-id / vehicle re-id baseline. Tutorial 👉https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/tutorial

这是什么仓库?

Person ReID Baseline (PyTorch) 是一个用于 对象再识别(在不同摄像头视角之间匹配同一人物(或其他对象)的图像)的开源代码库。它提供了一个紧凑、开箱即用的实现,包含了自2017年以来研究文献中已成为标准的多种技巧,全部基于 PyTorch 构建。


主要亮点(来自 README)

方面 详情
目标 提供一个 强大(达到最先进性能)、小巧(使用 bf16/fp16 时约占用 2 GB GPU 内存)、友好(轻松开启/关闭技巧)的人体再识别基线。
性能 仅使用 softmax 损失,该基线在 Market‑1501 基准上达到 Rank@1 ≈ 88 %mAP ≈ 71 %
支持模型 ResNet、ResNet‑IBN、DenseNet、HRNet、EfficientNet、Swin Transformer、Swin‑V2、ConvNeXt、DinoV3 等。
损失函数 交叉熵、Circle、三元组、对比、Sphere、Lifted、ArcFace、CosFace、实例等。
训练技巧 bf16/fp16、随机擦除、线性预热、torch.compile、DDP(多 GPU)、合成 DG‑Market 数据集、对抗训练等。
推理 / 测试 TensorRT、PyTorch JIT、Conv‑BN 融合、多查询评估、GPU 加速重排序、排名和热力图可视化。
资源 8 分钟教程、中文视频、免费 GPU 训练用 Colab 笔记本、预训练模型下载。
许可 MIT 许可证。
社区 超过 2,500 次引用,数千个 GitHub 星标,更新历史可追溯至 2026 年(例如支持 DinoV3)。

如何快速上手(快速开始)

  1. 安装 – 克隆仓库并安装所需的 Python 包(PyTorch ≥ 1.8,以及列出的依赖项)。
  2. 准备数据 – 按照 Dataset Preparation 部分下载并格式化一个再识别数据集,例如 Market‑1501。
  3. 训练 – 运行单条命令,例如:
    python train.py --train_all               # 原生 ResNet‑50
    python train.py --use_swin --name swin   # Swin‑Transformer 模型
    
    添加 --fp16--circle--DG--usam 等标志以启用特定技巧。
  4. 测试 / 评估 – 训练完成后,使用以下命令评估:
    python test.py --name <model_name>
    python evaluate_gpu.py               # 快速 GPU 重排序
    
  5. 可视化 – 使用提供的演示脚本查看排名结果或热力图。

谁会用到这个?

  • 需要可靠基线来对比新再识别想法的研究人员。
  • 希望获得即用型、内存高效模型用于部署(例如在边缘 GPU 上)的实践者。
  • 寻找教程式代码库以学习常见计算机视觉训练技巧的学生。

为什么重要?

人物再识别是许多监控、零售分析和自动驾驶感知流水线的核心组件。通过将广泛的现代架构、损失函数和性能优化技巧整合到一个文档齐全的仓库中,该项目降低了入门门槛,加速了实验进程。


引用

如果在出版物中使用代码或预训练模型,请按照 README 中的指示引用该仓库(作者提供了可直接复制的 BibTeX 条目)。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目