explaingit

qqwweee/keras-yolo3

7,127PythonAudience · researcherComplexity · 4/5Setup · hard

TLDR

keras-yolo3 is a Keras and TensorFlow implementation of YOLOv3 object detection that lets you run a pre-trained model on images and videos, or train your own detector on custom object categories.

Mindmap

mindmap
  root((repo))
    What it does
      YOLOv3 in Keras
      Object detection
      Custom training
    Getting started
      Download YOLO weights
      Run convert script
      Run detection script
    Training
      Custom annotations
      Frozen layer training
      Bottleneck features
    Variants
      Full YOLOv3
      Tiny YOLOv3
      Multi-GPU support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run YOLOv3 on your own images to detect and locate objects across the 80 standard COCO categories using pre-trained weights.

USE CASE 2

Train a custom object detector on your own image dataset by preparing an annotation file and running the included training script.

USE CASE 3

Use Tiny YOLOv3 for faster, lighter object detection on machines without a powerful GPU.

USE CASE 4

Convert official YOLO weights to Keras format and run video inference using the provided detection script.

Tech stack

PythonKerasTensorFlowYOLO

Getting it running

Difficulty · hard Time to first run · 1day+

Built on TensorFlow 1.6 and Keras 2.1.5, running on modern TensorFlow 2.x requires significant compatibility fixes.

The explanation does not specify the license terms.

In plain English

keras-yolo3 is a Python implementation of YOLOv3, a system for detecting and locating objects in images and videos. YOLO stands for You Only Look Once, referring to how the model processes an entire image in a single pass to identify where objects are and what they are. This implementation is built on top of Keras, a Python library for working with neural networks, using TensorFlow as the underlying computation engine. To get started, you download the official YOLOv3 weights file from the original YOLO project website, then run a conversion script included in this repository to translate those weights into a format Keras can read. After that, you can run detection on a single image or on a video file using the provided script. The script supports multiple GPUs if you have more than one available, and there is also a smaller, faster variant called Tiny YOLOv3 for cases where speed matters more than accuracy. If you want to train the model on your own categories of objects rather than the default 80 classes, you prepare an annotation file that lists each image path alongside the bounding box coordinates and class labels for every object in that image. You then run the training script, which first freezes the early layers of the network and only trains the final layers, a common approach that saves time and works well when starting from pretrained weights. A separate script handles the bottleneck feature approach, which pre-computes intermediate outputs so that training is feasible even on a machine with only a CPU. The README notes that results differ slightly from the original Darknet implementation, that inference is somewhat slower, and that the training approach shown is a starting point rather than a definitive recipe. The project was tested with Python 3.5, Keras 2.1.5, and TensorFlow 1.6, which are older versions, so compatibility with newer software may require adjustments.

Copy-paste prompts

Prompt 1
I downloaded the YOLOv3 weights file. Show me the exact command to convert them to Keras format using the convert.py script in this repo.
Prompt 2
How do I prepare the annotation file format that keras-yolo3 expects when training on my own dataset of 5 custom object classes?
Prompt 3
Run object detection on a folder of images with keras-yolo3 and save output images with bounding boxes drawn on them.
Prompt 4
I only have a CPU. How do I use the bottleneck feature approach in keras-yolo3 to train on my custom dataset without a GPU?
Open on GitHub → Explain another repo

← qqwweee on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.