This is an official release of the paper Dense Siamese Network for Dense Unsupervised Learning.
Dense Siamese Network for Dense Unsupervised Learning,
Wenwei Zhang, Jiangmiao Pang, Kai Chen, Chen Change Loy
In: Proc. European Conference on Computer Vision (ECCV), 2022
[arXiv][project page][Bibetex]
The results of DenseSiam and their corresponding configs on unsupervised semantic segmentation task are shown as below. We also re-implemented PiCIE based on the official code release.
Backbone | Method | Lr Schd | mIoU | Config | Download |
---|---|---|---|---|---|
R-18 | PiCIE | 10e | 14.4 | config | model | log |
R-18 | DenseSiam | 10e | 16.4 | config | model | log |
Backbone | Method | Lr Schd | COCO Mask mAP | Config | Pre-train Download |
---|---|---|---|---|---|
R-50 | DenseSiam | 1x | 36.8 | config | model | log |
It requires the following OpenMMLab packages:
- MIM >= 0.1.5
- MMCV-full >= v1.3.14
- MMDetection
- MMSegmentation
- MMSelfSup
pip install openmim mmdet mmsegmentation mmselfsup
mim install mmcv-full
- Download the training set and the validdation set of COCO dataset as well as the stuffthing map.
- Unzip these data and place them as the following structure
- The
curated
directory copies the data split for unsupervised segmentation from PiCIE.
data/
├── curated
│ ├── train2017
│ │ ├── Coco164kFull_Stuff_Coarse_7.txt
│ ├── val2017
│ │ ├── Coco164kFull_Stuff_Coarse_7.txt
├── coco
│ ├── annotations
│ │ ├── train2017
│ │ │ ├── xxxxxxxxx.png
│ │ ├── val2017
│ │ │ ├── xxxxxxxxx.png
│ ├── train2017
│ │ ├── xxxxxxxxx.jpeg
│ ├── val2017
│ │ ├── xxxxxxxxx.jpeg
For training and testing, you can directly use mim to train and test the model
# train instance/panoptic segmentation models
sh ./tools/slurm_train.sh $PARTITION $JOBNAME $CONFIG $WORK_DIR
# test semantic segmentation models
sh ./tools/slurm_test.sh $PARTITION $JOBNAME $CONFIG $CHECKPOINT --eval mIoU
- PARTITION: the slurm partition you are using
- WORK_DIR: the working directory to save configs, logs, and checkpoints
- CONFIG: the config files under the directory
configs/
- JOBNAME: the name of the job that are necessary for slurm
This codebase is based on MMCV and it benefits a lot from PiCIE MMSelfSup, and Detectron2.
This project is released under the Apache 2.0 license.
@inproceedings{zhang2022densesiam,
author = {Wenwei Zhang and Jiangmiao Pang and Kai Chen and Chen Change Loy},
title = {Dense Siamese Network for Dense Unsupervised Learning},
year = {2022},
booktitle = {ECCV},
}