Skip to content
(Pretrained weights provided) EfficientDet: Scalable and Efficient Object Detection implementation by Signatrix GmbH
Python
Branch: master
Clone or download

Latest commit

Latest commit f5325d3 Jan 6, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo update Jan 4, 2020
src push new code Jan 4, 2020
trained_models push new code Jan 4, 2020
.gitignore final version Dec 17, 2019
LICENSE Initial commit Dec 4, 2019
README.md update Jan 5, 2020
mAP_evaluation.py push new code Jan 4, 2020
requirements.txt push new code Jan 4, 2020
test_dataset.py Update test_dataset.py Jan 6, 2020
test_video.py Update test_video.py Jan 6, 2020
train.py update Jan 4, 2020

README.md

EfficientDet: Scalable and Efficient Object Detection

Introduction

Here is our pytorch implementation of the model described in the paper EfficientDet: Scalable and Efficient Object Detection paper (Note: We also provide pre-trained weights, which you could see at ./trained_models)


An example of our model's output.

Datasets

Dataset Classes #Train images #Validation images
COCO2017 80 118k 5k

Create a data folder under the repository,

cd {repo_root}
mkdir data
  • COCO: Download the coco images and annotations from coco website. Make sure to put the files as the following structure:
    COCO
    ├── annotations
    │   ├── instances_train2017.json
    │   └── instances_val2017.json
    │── images
        ├── train2017
        └── val2017
    

How to use our code

With our code, you can:

  • Train your model by running python train.py
  • Evaluate mAP for COCO dataset by running python mAP_evaluation.py
  • Test your model for COCO dataset by running python test_dataset.py --pretrained_model path/to/trained_model
  • Test your model for video by running python test_video.py --pretrained_model path/to/trained_model --input path/to/input/file --output path/to/output/file

Experiments

We trained our model by using 3 NVIDIA GTX 1080Ti. Below is mAP (mean average precision) for COCO val2017 dataset

Average Precision IoU=0.50:0.95 area= all maxDets=100 0.314
Average Precision IoU=0.50 area= all maxDets=100 0.461
Average Precision IoU=0.75 area= all maxDets=100 0.343
Average Precision IoU=0.50:0.95 area= small maxDets=100 0.093
Average Precision IoU=0.50:0.95 area= medium maxDets=100 0.358
Average Precision IoU=0.50:0.95 area= large maxDets=100 0.517
Average Recall IoU=0.50:0.95 area= all maxDets=1 0.268
Average Recall IoU=0.50:0.95 area= all maxDets=10 0.382
Average Recall IoU=0.50:0.95 area= all maxDets=100 0.403
Average Recall IoU=0.50:0.95 area= small maxDets=100 0.117
Average Recall IoU=0.50:0.95 area= medium maxDets=100 0.486
Average Recall IoU=0.50:0.95 area= large maxDets=100 0.625

Results

Some predictions are shown below:

Requirements

  • python 3.6
  • pytorch 1.2
  • opencv (cv2)
  • tensorboard
  • tensorboardX (This library could be skipped if you do not use SummaryWriter)
  • pycocotools
  • efficientnet_pytorch

References

  • Mingxing Tan, Ruoming Pang, Quoc V. Le. "EfficientDet: Scalable and Efficient Object Detection." EfficientDet.
  • Our implementation borrows some parts from RetinaNet.Pytorch

Citation

@article{EfficientDetSignatrix,
    Author = {Signatrix GmbH},
    Title = {A Pytorch Implementation of EfficientDet Object Detection},
    Journal = {https://github.com/signatrix/efficientdet},
    Year = {2020}
}
You can’t perform that action at this time.