/mobilenetv2-yolov3

use mobilenetv2 replace darknet53 for yolov3 detection

Primary LanguagePythonMIT LicenseMIT

mobilenetv2-yolov3

Tensorflow implementation mobilenetv2-yolov3 inspired by keras-yolo3

Update

Backend:

  • MobilenetV2
  • Efficientnet
  • Darknet53

Callback:

  • mAP
  • Tensorboard extern callback

Loss:

  • MSE
  • GIOU

Train:

  • Multi scale image size
  • Cosine learning rate

Tensorflow:

  • Tensorflow2 Ready
  • Use tf.data to load dataset
  • Use tfds to load dataset
  • Remove image shape input when use session
  • Convert model to tensorflow lite model
  • Multi GPU training support

Serving:

  • Tensorflow Serving warm up request
  • Tensorflow Serving JAVA Client
  • Tensorflow Serving Python Client
  • Tensorflow Serving Service Control Client
  • Tensorflow Serving Server Build and Plugins develop

Requirement

Tensorflow-1.14+

Numpy-1.16.2+

Python-3.6.7+

Usage

Change arguments in main.py,then exec

python main.py

Train

opt = <your session config>
backbone = <your yolov3 backbone>
log_dir = <path/to/your/tensorboard/log>
batch_size = <you batch size>
train_dataset_path = <path/to/your/train/folder>
val_dataset_path = <path/to/your/val/folder>
train_dataset_glob = <train glob>
val_dataset_glob = <val glob>

Performance

3 times faster than darknet53-yolov3 with alpha=1.4 and higher accuracy

Pascal Dataset

I have packaged a pascal tfrecords for you.See here

Reference:

paper: