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
  • 專案