Home

Awesome

Deformable Mamba for Wide Field of View Segmentation

<p> <a href="https://arxiv.org/pdf/2411.16481"> <img src="https://img.shields.io/badge/PDF-arXiv-brightgreen" /></a> </p>

Updates

Prerequisites

Please make sure that your CUDA version is >= 12.1.

Enviroments

conda create -n DMamba python=3.10.13
conda activate DMamba
cd DeformableMamba
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
pip install mmcv==2.1.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.1/index.html
pip install mmsegmentation==1.2.2
cd mmseg/models/utils/kernels/selective_scan && pip install .

Getting start

  1. Prepare datasets
  1. Prepare checkpoints of pretrained backbone
DeformableMamba
├── ckpts
│   ├── pretrained
│   │   ├── vssm-small.pt
│   │   ├── vssm-tiny.pt
│   ├── trained
├── configs
├── data
│   ├── coco_stuff10k
│   │   ├── imageLists
│   │   │   ├── train2014
│   │   │   ├── val2014
│   │   ├── annotations
│   │   │   ├── train2014
│   │   │   ├── val2014
│   ├── MP3DPANO
│   │   ├── rgb
│   │   │   ├── train
│   │   │   ├── val
│   │   ├── semantic
│   │   │   ├── train
│   │   │   ├── val
│   ├── Stanford2D3D
│   │   ├── area1_3_6
│   │   │   ├── rgb
│   │   │   ├── semantic
│   │   ├── area2_4
│   │   │   ├── rgb
│   │   │   ├── semantic
│   │   ├── area5
│   │   │   ├── rgb
│   │   │   ├── semantic
│   ├── SynPASS
│   │   ├── img
│   │   │   ├── cloud
│   │   │   ├── fog
│   │   │   ├── rain
│   │   │   ├── sun
│   │   ├── semantic
│   │   │   ├── cloud
│   │   │   ├── fog
│   │   │   ├── rain
│   │   │   ├── sun
│   ├── SynWoodScape
│   │   ├── rgb
│   │   │   ├── train
│   │   │   ├── val
│   │   ├── semantic
│   │   │   ├── train
│   │   │   ├── val
│   ├── WoodScape
│   │   ├── rgb
│   │   │   ├── train
│   │   │   ├── val
│   │   ├── semantic
│   │   │   ├── train
│   │   │   ├── val
├── mmseg
├── tools
├── requirements.txt
├── README.md

Train

Please follow this command:

bash tools/dist_train.sh <CONFIG PATH> <GPU NUM>

For example, train the model on SynPASS dataset with 4 GPUs:

bash tools/dist_train.sh configs/deformableMamba-mini/deformableMamba-m_synpass_160k.py 4

Test

Download the trained models from GoogleDrive and save in ./ckpts as:

├── trained
│   ├── coco_stuff10k
│   │   ├── deformableMamba-mini_coco.pth
│   │   ├── deformableMamba-tiny_coco.pth
│   ├── mp3d_pano
│   │   ├── deformableMamba-mini_mp3d.pth
│   │   ├── deformableMamba-tiny_mp3d.pth
│   ├── s2d3d
│   │   ├── deformableMamba-mini_s2d3d.pth
│   │   ├── deformableMamba-tiny_s2d3d.pth
│   ├── synpass
│   │   ├── deformableMamba-mini_synpass.pth
│   │   ├── deformableMamba-tiny_synpass.pth
│   ├── synwoodscape
│   │   ├── deformableMamba-mini_synws.pth
│   │   ├── deformableMamba-tiny_synws.pth
│   ├── woodscape
│   │   ├── deformableMamba-mini_ws.pth
│   │   ├── deformableMamba-tiny_ws.pth

Please follow this command:

bash tools/dist_test.sh <CONFIG PATH> <CHECKPOINT PATH> <GPU NUM>

For example, test the model on SynPASS dataset with 4 GPUs:

bash tools/dist_test.sh configs/deformableMamba-mini/deformableMamba-m_synpass_160k.py ckpts/trained/synpass/deformableMamba-mini_synpass_160k.pth 4

References

We appreciate the previous open-source works.

License

This repository is under the Apache-2.0 license. For commercial use, please contact with the authors.