zju3dv/snake

Code for "Deep Snake for Real-Time Instance Segmentation" CVPR 2020 oral

什麼是 Deep Snake

Deep Snake 是 CVPR 2020 論文 “Deep Snake for Real‑Time Instance Segmentation” 中所述 Deep Snake 模型的開源實作。這是一個電腦視覺系統,能即時接收影像並輸出精確的實例遮罩(每個物體的精確輪廓)。該方法改進了傳統基於遮罩的方法,透過可學習的「snake」(主動輪廓)模組迭代細化物體輪廓,在 COCO、Cityscapes、KITTI 和 SBD 等基準測試中取得了最先進的成果。


主要功能(如 README 文件所述)

功能 詳細資訊
預訓練模型 提供連結至 Google‑Drive 資料夾,包含 Cityscapes、KITTI(稱為 Kins)和 SBD 資料集的權重。
評估腳本 run.py 可透過簡單的命令列旗標在 COCO 評估器、官方 Cityscapes 評估器或 KITTI/SBD 驗證集上進行評估。
速度測試 同一個 run.py 腳本可透過 --type network 呼叫,以報告給定配置下的推論速度。
視覺化 內建視覺化功能 (--type visualize) 可將預測的遮罩繪製在原始影像上;README 中展示了範例輸出。
演示模式 針對單張影像或影像資料夾的一行演示指令 (--type demo)。
訓練流程 Cityscapes 採用兩階段訓練(先訓練偵測器,再聯合訓練偵測器 + snake)。提供 KITTI 和 SBD 的單階段訓練腳本。
TensorBoard 支援 日誌寫入 data/record/*,可使用 TensorBoard 檢查以監控損失曲線和其他指標。
設定檔驅動 所有實驗均由 YAML 設定檔驅動(例如 configs/city_rcnn_snake.yaml)。

如何開始

  1. 複製儲存庫
    git clone https://github.com/zju3dv/snake.git
    cd snake
    
  2. 安裝依賴項 – 請參閱 INSTALL.md 以獲取確切的套件列表(PyTorch、CUDA、OpenCV 等)。
  3. 下載預訓練模型 – 下載您想嘗試的資料集(Cityscapes、KITTI 或 SBD)模型,並放置在 README 指示的路徑下,例如:
    $ROOT/data/model/rcnn_snake/long_rcnn/197.pth   # Cityscapes
    
  4. 執行快速演示 – 對影像資料夾執行:
    python run.py --type demo --cfg_file configs/sbd_snake.yaml \
                 demo_path demo_images ct_score 0.3
    
    腳本將輸出疊加了預測實例輪廓的原始影像。

典型工作流程

目標 指令(範例)
在 Cityscapes 上評估 (COCO 評估器) python run.py --type evaluate --cfg_file configs/city_rcnn_snake.yaml
在 Cityscapes 上評估 (官方評估器) python run.py --type evaluate --cfg_file configs/city_rcnn_snake.yaml test.dataset CityscapesVal
測量推論速度 python run.py --type network --cfg_file configs/city_rcnn_snake.yaml
視覺化結果 python run.py --type visualize --cfg_file configs/city_rcnn_snake.yaml test.dataset CityscapesVal ct_score 0.3
僅訓練偵測器 (Cityscapes) python train_net.py --cfg_file configs/city_ct_rcnn.yaml model rcnn_det
訓練偵測器 + snake (Cityscapes) python train_net.py --cfg_file configs/city_rcnn_snake.yaml model rcnn_snake det_model rcnn_det
TensorBoard tensorboard --logdir data/record/rcnn_snake (或 .../snake 用於僅 snake 的日誌)

誰適合使用?

  • 研究人員:探索基於輪廓的實例分割,或尋找強大的基準進行比較。
  • 從業者:需要為自動駕駛資料集(Cityscapes、KITTI)或一般物體分割(COCO、SBD)提供快速、準確的遮罩預測。
  • 學生:想要具體範例了解如何將自訂模組(snake)整合到偵測流程中。

引用

如果您在出版物中使用此程式碼,請引用原始論文:

@inproceedings{peng2020deep,
  title={Deep Snake for Real-Time Instance Segmentation},
  author={Peng, Sida and Jiang, Wen and Pi, Huaijin and Li, Xiuli and Bao, Hujun and Zhou, Xiaowei},
  booktitle={CVPR},
  year={2020}
}

總結: 該儲存庫提供了一個即用型的即時實例分割演算法實作,利用了可學習的主動輪廓 (snake) 模型。憑藉預訓練權重、清晰的評估/視覺化腳本以及訓練流程,它是任何從事現代分割任務的人員的實用資源。

相關

  • 專案
  • 專案
  • 專案
  • 專案