YOLO_Explained
YOLO_Explained copied to clipboard
If you want to understand how YOLO works, check out this step-by-step walkthrough of YOLO2 in TF2!
YOLO_Explained
Yolo is a fully convolutional model that, unlike many other scanning detection algorithms, generates bounding boxes in one pass. In this tutorial repo, you'll learn how exactly does Yolo work by analyzing a Tensorflow 2 implementation of the algorithm.

Goals
This project has two goals:
- Implement Yolo 2 in native TF2 that is usable out of box using the latest API such as tf.data.Dataset and tf.keras
- Provide detailed explanation, examples, and charts for people who want to understand Yolo 2
Environment
tensorflow >=2.1.0 numpy >= 1.18.5 matplotlib >= 3.1.2
Tutorial Structure
Jupyter Notebook Tutorials
In these tutorials we are going to implement Yolo V2 step by step
- Tutorial 0: verify the environment and download some necessary weight files
- Tutorial 1: understand the output format of Yolo V2
- Tutorial 2: convert the raw yolo output to a list of bounding boxes (Post Processing)
- Tutorial 3: how to create training labels from annotations such as Json or XML
- Tutorial 4: implementation of Yolo loss
- Tutorial 5: capstone - use the previous steps to do transfer learning on a new dataset
Tutorial Snippets

Python libraries Ready for Use
root
|Utilities
|converter:
Function: convert Pascal .xml file to text and save yolo output to text
Used to evaluate the mAP metric of Yolo V2 algorithm.
|io:
Functions: high performance dataloader that supports parallel loading and distributed training
|painter:
Functions: draw bounding boxes on images. Use for visualization
|YoloBackbone
|modelBuilder:
Function: build Yolo V2 (or tiny yolo and other v2 variants) from .cfg file
|yolo2:
Function: define yolo loss, post processing scripts, etc. To understand these scripts, please
read the jupyter notebook tutorials