75

GitHub - signatrix/efficientdet: (Pretrained weights provided) EfficientDet: Sca...

 4 years ago
source link: https://github.com/signatrix/efficientdet
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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)

video.gif
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:

1.jpg 2.jpg 3.jpg

4.jpg 5.jpg 6.jpg

7.jpg 8.jpg 9.jpg

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}
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK