efficientdet

by signatrix

signatrix / efficientdet

(Pretrained weights provided) EfficientDet: Scalable and Efficient Object Detection implementation b...

540 Stars 132 Forks Last release: Not found MIT License 27 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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 testdataset.py --pretrainedmodel path/to/trained_model
  • Test your model for video by running python testvideo.py --pretrainedmodel 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}
}

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.