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)。 |
如何開始
- 複製儲存庫
git clone https://github.com/zju3dv/snake.git cd snake - 安裝依賴項 – 請參閱
INSTALL.md以獲取確切的套件列表(PyTorch、CUDA、OpenCV 等)。 - 下載預訓練模型 – 下載您想嘗試的資料集(Cityscapes、KITTI 或 SBD)模型,並放置在 README 指示的路徑下,例如:
$ROOT/data/model/rcnn_snake/long_rcnn/197.pth # Cityscapes - 執行快速演示 – 對影像資料夾執行:
腳本將輸出疊加了預測實例輪廓的原始影像。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) 模型。憑藉預訓練權重、清晰的評估/視覺化腳本以及訓練流程,它是任何從事現代分割任務的人員的實用資源。
相關
- 專案
- 專案
- 專案
- 專案