FewX
FewX is an open source toolbox on top of Detectron2 for data-limited instance-level recognition tasks, e.g., few-shot object detection, few-shot instance segmentation, partially supervised instance segmentation and so on.
All data-limited instance-level recognition works from Qi Fan (HKUST, [email protected]) are open-sourced here.
To date, FewX implements the following algorithms:
- FSOD: few-shot object detection.
- CPMask: partially supervised/fully supervised/few-shot instance segmentation (to be released).
Highlights
- State-of-the-art performance.
- FSOD is the best few-shot object detection model. (This model can be directly applied to novel classes without finetuning. And finetuning can bring better performance.)
- CPMask is the best partially supervised/few-shot instance segmentation model.
- Easy to use. You only need to run 3 code lines to conduct the entire experiment.
- Install Pre-Built Detectron2 in one code line.
- Prepare dataset in one code line. (You need to first download the dataset and change the data path in the script.)
- Training and evaluation in one code line.
Updates
- FewX has been released. (09/08/2020)
Results on MS COCO
Few Shot Object Detection
Method | Training Dataset | Evaluation way&shot | box AP | download |
---|---|---|---|---|
FSOD (paper) | COCO (non-voc) | full-way 10-shot | 11.1 | - |
FSOD (this implementation) | COCO (non-voc) | full-way 10-shot | 12.0 | model | metrics |
The results are reported on the COCO voc subset with ResNet-50 backbone.
The model only trained on base classes is base model .
You can reference the original FSOD implementation on the Few-Shot-Object-Detection-Dataset.
Step 1: Installation
You only need to install detectron2. We recommend the Pre-Built Detectron2 (Linux only) version with pytorch 1.5. I use the Pre-Built Detectron2 with CUDA 10.1 and pytorch 1.5 and you can run this code to install it.
python -m pip install detectron2 -f \
https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.5/index.html
Step 2: Prepare dataset
-
Prepare for coco dataset following this instruction.
-
cd datasets
, change theDATA_ROOT
in thegenerate_support_data.sh
to your data path and runsh generate_support_data.sh
.
cd FewX/datasets
sh generate_support_data.sh
Step 3: Training and Evaluation
Run sh all.sh
in the root dir. (This script uses 4 GPUs
. You can change the GPU number. If you use 2 GPUs with unchanged batch size (8), please halve the learning rate.)
cd FewX
sh all.sh
TODO
- Add other dataset results to FSOD.
- Add CPMask code with partially supervised instance segmentation, fully supervised instance segmentation and few-shot instance segmentation.
Citing FewX
If you use this toolbox in your research or wish to refer to the baseline results, please use the following BibTeX entries.
@inproceedings{fan2020fsod,
title={Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector},
author={Fan, Qi and Zhuo, Wei and Tang, Chi-Keung and Tai, Yu-Wing},
booktitle={CVPR},
year={2020}
}
@inproceedings{fan2020cpmask,
title={Commonality-Parsing Network across Shape and Appearance for Partially Supervised Instance Segmentation},
author={Fan, Qi and Ke, Lei and Pei, Wenjie and Tang, Chi-Keung and Tai, Yu-Wing},
booktitle={ECCV},
year={2020}
}