March 10, 2020

316 words 2 mins read

xuannianz/EfficientDet

xuannianz/EfficientDet

EfficientDet (Scalable and Efficient Object Detection) implementation in Keras and Tensorflow

repo name xuannianz/EfficientDet
repo link https://github.com/xuannianz/EfficientDet
homepage
language Python
size (curr.) 1097 kB
stars (curr.) 523
created 2019-11-28
license Apache License 2.0

EfficientDet

This is an implementation of EfficientDet for object detection on Keras and Tensorflow. The project is based on fizyr/keras-retinanet and the qubvel/efficientnet. The pretrained EfficientNet weights files are downloaded from Callidior/keras-applications/releases

Thanks for their hard work. This project is released under the Apache License. Please take their licenses into consideration too when use this project.

Updates

  • [03/05/2020] Anchor free version. The accuracy is a little lower, but it’s faster and smaller.For details, please refer to xuannianz/SAPD
  • [02/20/2020] Support quadrangle detection. For details, please refer to README_quad

Train

build dataset

  1. Pascal VOC
    • Download VOC2007 and VOC2012, copy all image files from VOC2007 to VOC2012.
    • Append VOC2007 train.txt to VOC2012 trainval.txt.
    • Overwrite VOC2012 val.txt by VOC2007 val.txt.
  2. MSCOCO 2017
    • Download images and annotations of coco 2017
    • Copy all images into datasets/coco/images, all annotations into datasets/coco/annotations
  3. Other types please refer to fizyr/keras-retinanet)

train

  • STEP1: python3 train.py --snapshot imagenet --phi {0, 1, 2, 3, 4, 5, 6} --gpu 0 --random-transform --compute-val-loss --freeze-backbone --batch-size 32 --steps 1000 pascal|coco datasets/VOC2012|datasets/coco to start training. The init lr is 1e-3.
  • STEP2: python3 train.py --snapshot xxx.h5 --phi {0, 1, 2, 3, 4, 5, 6} --gpu 0 --random-transform --compute-val-loss --freeze-bn --batch-size 4 --steps 10000 pascal|coco datasets/VOC2012|datasets/coco to start training when val mAP can not increase during STEP1. The init lr is 1e-4 and decays to 1e-5 when val mAP keeps dropping down.

Evaluate

  1. PASCAL VOC
    • python3 eval/common.py to evaluate pascal model by specifying model path there.
    • The best evaluation results (score_threshold=0.01, mAP50) on VOC2007 test are:
    phi 0 1
    w/o weighted 0.8029
    w/ weighted 0.7892
  2. MSCOCO
    • python3 eval/coco.py to evaluate coco model by specifying model path there.

Test

python3 inference.py to test your image by specifying image path and model path there.

image1 image2 image3

comments powered by Disqus