This folder contains the implementation of DGMN2 for semantic segmentation.
Here, we take MMSegmentation as an example, applying DGMN2-Tiny to SETR-Naive, SETR-PUP head and SETR-MLA head.
Method | Backbone | Iters | mIoU | mIoU (ms + flip) | Config | Download |
---|---|---|---|---|---|---|
Semantic FPN | DGMN2-Tiny | 40K | 78.09 | 79.40 | config | model |
Semantic FPN | DGMN2-Small | 40K | 80.65 | 81.58 | config | model |
Semantic FPN | DGMN2-Medium | 40K | 80.60 | 81.79 | config | model |
Semantic FPN | DGMN2-Large | 40K | 81.75 | 82.64 | config | model |
SETR-Naive | DGMN2-Tiny | 40K | 77.23 | 78.23 | config | model |
SETR-Naive | DGMN2-Small | 40K | 80.31 | 81.04 | config | model |
SETR-Naive | DGMN2-Medium | 40K | 80.83 | 81.39 | config | model |
SETR-Naive | DGMN2-Large | 40K | 81.80 | 82.61 | config | model |
SETR-PUP | DGMN2-Tiny | 40K | 78.25 | 79.26 | config | model |
SETR-PUP | DGMN2-Small | 40K | 79.78 | 80.73 | config | model |
SETR-PUP | DGMN2-Medium | 40K | 80.97 | 81.80 | config | model |
SETR-PUP | DGMN2-Large | 40K | 81.58 | 82.27 | config | model |
SETR-MLA | DGMN2-Tiny | 40K | 78.25 | 79.32 | config | model |
SETR-MLA | DGMN2-Small | 40K | 80.79 | 81.62 | config | model |
SETR-MLA | DGMN2-Medium | 40K | 81.09 | 82.00 | config | model |
SETR-MLA | DGMN2-Large | 40K | 81.55 | 81.98 | config | model |
Clone the repository locally:
git clone https://github.com/fudan-zvg/DGMN2
a. Install MMSegmentation following the official instructions. Here we use MMSegmentation 0.16.0.
b. Install PyTorch Image Models. Here we use PyTorch Image Models 0.4.5.
pip install timm==0.4.5
c. Build the extension.
cd dcn
python setup.py build_ext --inplace
First, prepare Cityscapes dataset according to the guidelines in MMSegmentation.
Then, download the weights pretrained on ImageNet, and put them in a folder pretrained/
.
To train DGMN2-Tiny + SETR-PUP head on Cityscapes training set on a single node with 4 GPUs for 40K iterations run:
dist_train.sh configs/setr_pup_dgmn2_tiny_4x2_769x769_40k_cityscapes.py 4
To evaluate DGMN2-Tiny + SETR-PUP head on Cityscapes validation set on a single node with 4 GPUs run:
dist_test.sh configs/setr_pup_dgmn2_tiny_4x2_769x769_40k_cityscapes.py /path/to/checkpoint_file 4 --eval mIoU