YOLOv3 icon indicating copy to clipboard operation
YOLOv3 copied to clipboard

YOLOv3 Implementation in TensorFlow 1.1X

:unicorn: YOLOv3 Implementation in TensorFlow 1.1x + Keras :unicorn:

How it Looks Like

Watch the demo

Quick Start

On a PC / Mac

Create conda environment depending on whether you have a supported GPU or not:

conda env create -f environment-[c|g]pu.yml
source activate yolov3-[c|g]pu

On a Raspi 3

Install OpenCV 3 with the following instructions.

Then:

pip install tensorflow scikit-learn

Download YOLO Weights

Download weights into the cfg directory:

cd cfg
wget https://pjreddie.com/media/files/yolov3.weights

Demo on Single Image:

python single_image.py

The output is stored on out.png in the root folder.

Demo on Web Cam:

To see it live on your Web Cam:

python webcam.py

Progress

  • [X] YOLO configuration parser
  • [X] Build YOLO model
  • [X] Check architecture against a well-known implementation
  • [X] Load YOLO pre-trained weights
  • [X] Handle YOLO layer (Detection Layer)
  • [X] Non-Maximal Suppression
  • [X] Colorful boxes with labels and scores
  • [X] Test out on a Web Cam
  • [X] Check dependencies
  • [X] Dependencies for CPU and GPU
  • [X] Instructions for running the project
  • [X] Use original scale of input image
  • [X] YOLO head in a function
  • [ ] Figure out Eager Execution + Loading Weights
  • [X] Support Tiny YOLOv3
  • [ ] Allow passing in options to use Tiny YOLOv3
  • [ ] Investigate Quantization / Smaller Weights
  • [ ] Try this out on a Raspi3
  • [ ] Tensorflow.js (¯\(ツ)/¯)

Credits