# FewX
**Repository Path**: acheng1995/FewX
## Basic Information
- **Project Name**: FewX
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-25
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 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, fanqithu@gmail.com) are open-sourced here.
To date, FewX implements the following algorithms:
- [FSOD](https://arxiv.org/abs/1908.01998): few-shot object detection.
- [CPMask](https://arxiv.org/abs/2007.12387): 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.
You can reference the [original FSOD implementation](https://github.com/fanq15/FSOD-code) on the [Few-Shot-Object-Detection-Dataset](https://github.com/fanq15/Few-Shot-Object-Detection-Dataset).
## Step 1: Installation
You only need to install [detectron2](https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md). 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](https://github.com/facebookresearch/detectron2/tree/master/datasets).
- `cd datasets`, change the `DATA_ROOT` in the `generate_support_data.sh` to your data path and run `sh 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](https://github.com/fanq15/FewX/issues/6#issuecomment-674367388).)
```
cd FewX
sh all.sh
```
## TODO
- [ ] Add other dataset results to FSOD.
- [ ] Add [CPMask](https://arxiv.org/abs/2007.12387) 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}
}
```
## Special Thanks
[Detectron2](https://github.com/facebookresearch/detectron2), [AdelaiDet](https://github.com/aim-uofa/AdelaiDet), [centermask2](https://github.com/youngwanLEE/centermask2)