SOLO and SOLOv2 for instance segmentation, ECCV 2020 & NeurIPS 2020.
This project hosts the code for implementing the SOLO algorithms for instance segmentation.
SOLO: Segmenting Objects by Locations,
Xinlong Wang, Tao Kong, Chunhua Shen, Yuning Jiang, Lei Li
In: Proc. European Conference on Computer Vision (ECCV), 2020
arXiv preprint (arXiv 1912.04488)
SOLOv2: Dynamic and Fast Instance Segmentation,
Xinlong Wang, Rufeng Zhang, Tao Kong, Lei Li, Chunhua Shen
In: Proc. Advances in Neural Information Processing Systems (NeurIPS), 2020
arXiv preprint (arXiv 2003.10152)
This implementation is based on mmdetection(v1.0.0). Please refer to INSTALL.md for installation and dataset preparation.
For your convenience, we provide the following trained models on COCO (more models are coming soon). If you need the models in PaddlePaddle framework, please refer to paddlepaddle/README.md.
Model | Multi-scale training | Testing time / im | AP (minival) | Link |
---|---|---|---|---|
SOLO_R50_1x | No | 77ms | 32.9 | download |
SOLO_R50_3x | Yes | 77ms | 35.8 | download |
SOLO_R101_3x | Yes | 86ms | 37.1 | download |
Decoupled_SOLO_R50_1x | No | 85ms | 33.9 | download |
Decoupled_SOLO_R50_3x | Yes | 85ms | 36.4 | download |
Decoupled_SOLO_R101_3x | Yes | 92ms | 37.9 | download |
SOLOv2_R50_1x | No | 54ms | 34.8 | download |
SOLOv2_R50_3x | Yes | 54ms | 37.5 | download |
SOLOv2_R101_3x | Yes | 66ms | 39.1 | download |
SOLOv2_R101_DCN_3x | Yes | 97ms | 41.4 | download |
SOLOv2_X101_DCN_3x | Yes | 169ms | 42.4 | download |
Light-weight models:
Model | Multi-scale training | Testing time / im | AP (minival) | Link |
---|---|---|---|---|
Decoupled_SOLO_Light_R50_3x | Yes | 29ms | 33.0 | download |
Decoupled_SOLO_Light_DCN_R50_3x | Yes | 36ms | 35.0 | download |
SOLOv2_Light_448_R18_3x | Yes | 19ms | 29.6 | download |
SOLOv2_Light_448_R34_3x | Yes | 20ms | 32.0 | download |
SOLOv2_Light_448_R50_3x | Yes | 24ms | 33.7 | download |
SOLOv2_Light_512_DCN_R50_3x | Yes | 34ms | 36.4 | download |
Disclaimer:
Once the installation is done, you can download the provided models and use inference_demo.py to run a quick demo.
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM}
Example:
./tools/dist_train.sh configs/solo/solo_r50_fpn_8gpu_1x.py 8
python tools/train.py ${CONFIG_FILE}
Example:
python tools/train.py configs/solo/solo_r50_fpn_8gpu_1x.py
# multi-gpu testing
./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} --show --out ${OUTPUT_FILE} --eval segm
Example:
./tools/dist_test.sh configs/solo/solo_r50_fpn_8gpu_1x.py SOLO_R50_1x.pth 8 --show --out results_solo.pkl --eval segm
# single-gpu testing
python tools/test_ins.py ${CONFIG_FILE} ${CHECKPOINT_FILE} --show --out ${OUTPUT_FILE} --eval segm
Example:
python tools/test_ins.py configs/solo/solo_r50_fpn_8gpu_1x.py SOLO_R50_1x.pth --show --out results_solo.pkl --eval segm
python tools/test_ins_vis.py ${CONFIG_FILE} ${CHECKPOINT_FILE} --show --save_dir ${SAVE_DIR}
Example:
python tools/test_ins_vis.py configs/solo/solo_r50_fpn_8gpu_1x.py SOLO_R50_1x.pth --show --save_dir work_dirs/vis_solo
Any pull requests or issues are welcome.
Please consider citing our papers in your publications if the project helps your research. BibTeX reference is as follows.
@inproceedings{wang2020solo,
title = {{SOLO}: Segmenting Objects by Locations},
author = {Wang, Xinlong and Kong, Tao and Shen, Chunhua and Jiang, Yuning and Li, Lei},
booktitle = {Proc. Eur. Conf. Computer Vision (ECCV)},
year = {2020}
}
@article{wang2020solov2,
title={SOLOv2: Dynamic and Fast Instance Segmentation},
author={Wang, Xinlong and Zhang, Rufeng and Kong, Tao and Li, Lei and Shen, Chunhua},
journal={Proc. Advances in Neural Information Processing Systems (NeurIPS)},
year={2020}
}
For academic use, this project is licensed under the 2-clause BSD License - see the LICENSE file for details. For commercial use, please contact Xinlong Wang and Chunhua Shen.