Home

Awesome

FCOS_PLUS

This project contains some improvements about FCOS (Fully Convolutional One-Stage Object Detection).

Installation

Please check INSTALL.md (same as original FCOS) for installation instructions.

Results

ModelTotal training mem (GB)Multi-scale trainingTesting time / imAP (minival)link
FCOS_R_50_FPN_1x29.3No71ms37.0model
FCOS_R_50_FPN_1x_center30.61No71ms37.8model
FCOS_R_50_FPN_1x_center_liou30.61No71ms38.1model
FCOS_R_50_FPN_1x_center_giou30.61No71ms38.2model
FCOS_R_101_FPN_2x44.1Yes74ms41.4model
FCOS_R_101_FPN_2x_center_giou44.1Yes74ms42.5model

[1] 1x and 2x mean the model is trained for 90K and 180K iterations, respectively.
[2] center means center sample is used in our training.
[3] liou means the model use linear iou loss function. (1 - iou)
[4] giou means the use giou loss function. (1 - giou)

Training

The following command line will train FCOS_R_50_FPN_1x on 8 GPUs with Synchronous Stochastic Gradient Descent (SGD):

python -m torch.distributed.launch \
    --nproc_per_node=8 \
    --master_port=$((RANDOM + 10000)) \
    tools/train_net.py \
    --skip-test \
    --config-file configs/fcos/fcos_R_50_FPN_1x_center_giou.yaml \
    DATALOADER.NUM_WORKERS 2 \
    OUTPUT_DIR training_dir/fcos_R_50_FPN_1x_center_giou
    

Note that:

  1. If you want to use fewer GPUs, please change --nproc_per_node to the number of GPUs. No other settings need to be changed. The total batch size does not depends on nproc_per_node. If you want to change the total batch size, please change SOLVER.IMS_PER_BATCH in configs/fcos/fcos_R_50_FPN_1x_center_giou.yaml.
  2. The models will be saved into OUTPUT_DIR.
  3. If you want to train FCOS with other backbones, please change --config-file.

Citations

Please consider citing original paper in your publications if the project helps your research.

@article{tian2019fcos,
  title   =  {{FCOS}: Fully Convolutional One-Stage Object Detection},
  author  =  {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
  journal =  {arXiv preprint arXiv:1904.01355},
  year    =  {2019}
}

License

For academic use, this project is licensed under the 2-clause BSD License - see the LICENSE file for details. For commercial use, please contact the authors.