Yolo v3 is an algorithm that uses deep convolutional neural networks to detect objects.
This project is written in Python 3.7 using Tensorflow 2.0 (deep learning), NumPy (numerical computing), Pillow (image processing), OpenCV (computer vision) and seaborn (visualization) packages.
pip install -r requirements.txt
For Linux: Let's download official weights pretrained on COCO dataset.
wget -P weights https://pjreddie.com/media/files/yolov3.weights
For Windows: You can download the yolov3 weights by clicking here and adding them to the weights folder.
Learn How To Train Custom YOLOV3 Weights Here: https://www.youtube.com/watch?v=zJDUhGL26iU
Add your custom weights file to weights folder and your custom .names file into data/labels folder.
Change 'n_classes=80' on line 97 of load_weights.py to 'n_classes=<number of classes in .names file>'.
Change './weights/yolov3.weights' on line 107 of load_weights.py to './weights/'.
Change './data/labels/coco.names' on line 25 of detection.py to './data/labels/'.
Load the weights using load_weights.py
script. This will convert the yolov3 weights into TensorFlow .ckpt model files!
python load_weights.py
You can run the model using detect.py
script. The script works on images, video or your webcam. Don't forget to set the IoU (Intersection over Union) and confidence thresholds.
python detect.py <images/video/webcam> <iou threshold> <confidence threshold> <filenames>
Let's run an example using sample images.
python detect.py images 0.5 0.5 data/images/dog.jpg data/images/office.jpg
Then you can find the detections in the detections
folder.
You should see something like this.
detection_1.jpg
detection_2.jpg
You can also run the script with video files.
python detect.py video 0.5 0.5 data/video/shinjuku.mp4
The detections will be saved as detections.mp4
file.
The script can also be ran using your laptops webcam as the input. Example command shown below.
python detect.py webcam 0.5 0.5
The detections will be saved as 'detections.mp4' in the data/detections folder.
- Finish migration to full TF 2.0 (remove tf.compat.v1)
- Model training
- Tiny Yolo Configuration