Home

Awesome

FCOS: Fully Convolutional One-Stage Object Detection

This is an unofficial implementation of FCOS in a gluon-cv style, we implemented this anchor-free framework in a fully Gluon API, please stay tuned!

Main Results

ModelBackboneTrain SizeBatch SizeTest Time/imAP(val)Link
fcos_resnet50_v1_cocoResNet50-V18001---
fcos_resnet50_v1b_cocoResNet50-V1b8001---
fcos_resnet101_v1d_cocoResNet101-V1d8001---

Note: We will update the results after the experiments done.

Installation

  1. Install cuda 10.0 and mxnet 1.4.0.
sudo pip3 install mxnet-cu100==1.4.0.post0
  1. Clone the code, and install gluoncv with setup.py.
cd fcos-gluon-cv
sudo python3 setup.py build
sudo python3 setup.py install

Preparation

  1. Download COCO2017 datasets follow the official tutorials and create a soft link.
ln -s $DOWNLOAD_PATH ~/.mxnet/datasets/coco

You can also download from cocodataset and execute the command above.

  1. More preparations can also refer to GluonCV.

  2. All experiments are performed on 8 * 2080ti GPU with Python3.5, cuda10.0 and cudnn7.5.0.

Structure

* Model : $ROOT/gluoncv/model_zoo/fcos
* Train & valid scripts : $ROOT/scripts/detection/fcos
* Data Transform : $ROOT/gluoncv/data/transform/presets

Training & Inference

  1. Copy the training scripts here, then train fcos_resnet50_v1b_coco with:
python3 train_fcos.py --network resnet50_v1b --gpus 0,1,2,3,4,5,6,7 --num-workers 32 --batch-size 8 --log-interval 10
  1. Copy the eval scripts here, then validate fcos_resnet50_v1b_coco with:
python3 eval_fcos.py --network resnet50_v1b --gpus 0,1,2,3,4,5,6,7 --num-workers 32 --pretrained $SAVE_PATH/XXX.params

Reference