Tensorflow implementation mobilenetv2-yolov3 inspired by keras-yolo3
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
Tensorflow-1.14+
Numpy-1.16.2+
Python-3.6.7+
Change arguments in main.py,then exec
python main.py
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>
3 times faster than darknet53-yolov3 with alpha=1.4 and higher accuracy
I have packaged a pascal tfrecords for you.See here
paper:
- YOLOv3: An Incremental Improvement
- Foca Loss for Dense Object Detection
- Group Normalization
- An Analysis of Scale Invariance in Object Detection - SNIP
- Scale-Aware Trident Networks for Object Detection
- Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
- Bag of Freebies for Training Object Detection Neural Networks
- Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression
- MobileNetV2: Inverted Residuals and Linear Bottlenecks