This repo provides a clean implementation of YoloV3 in Tensorflow 2.0 using all the best practices.
- Tensorflow 2.0
-
yolov3
with pre-trained Weights -
yolov3-tiny
with pre-trained Weights - Inference example
- Transfer learning example
- Training from scratch example
- Eager training with
tf.GradientTape
- Functional model with
tf.keras.layers
- Input pipeline using
tf.data
- Vectorized transformations
- GPU accelerated
- Fully integrated with
absl-py
abseil.io - Clean implementation
- Following the best practices
- MIT License
pip install -r requirements.txt
wget https://pjreddie.com/media/files/yolov3.weights -O data/yolov3.weights
python convert.py
python detect.py
python train.py
Great addition for existing Tensorflow experts. Not very easy to use without some intermediate understanding of Tensorflow graphs.
@tf.function is very cool. Do have some caveats tho.
very hard without compromising the model structure.
It doesn't work very well for transfer learning
It is pretty much impossible to implement this from the yolov3 paper alone. I had to reference the official (very hard to understand) and many un-official (many minor errors) repos to piece together the complete picture.
- https://github.com/pjreddie/darknet
- official yolov3 implementation
- https://github.com/AlexeyAB
- explinations of parameters
- https://github.com/qqwweee/keras-yolo3
- models
- loss functions
- https://github.com/YunYang1994/tensorflow-yolov3
- data transformations
- loss functions
- https://github.com/ayooshkathuria/pytorch-yolo-v3
- models
- https://github.com/broadinstitute/keras-resnet
- batch normalization fix