Skip to content

dwayne99/YOLO-v3-Object-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YOLO: You Look Only Once

YOLO (“You Only Look Once”) is an effective real-time object recognition algorithm.

Image classification is one of the many exciting applications of convolutional neural networks. Aside from simple image classification, there are plenty of fascinating problems in computer vision, with object detection being one of the most interesting. It is commonly associated with self-driving cars where systems blend computer vision, LIDAR and other technologies to generate a multidimensional representation of the road with all its participants. Object detection is also commonly used in video surveillance, especially in crowd monitoring to prevent terrorist attacks, count people for general statistics, or analyze customer experience with walking paths within shopping centers.

In this project, I've implemented the YOLO-v3 algorithm from scratch using Pytorch(1.5). The python script files are heavily commented to understand the code implementation.

.
├── cfg
│   └── yolov3.cfg
├── darknet.py
├── data
│   └── coco.names
├── det
│   ├── det_dog-cycle-car.png
│   └── det_NY-city.jpg
├── detector.py
├── images
│   ├── dog-cycle-car.png
│   └── NY-city.jpg
├── pallete
├── Shell.ipynb
├── utils.py
└── yolov3.weights

yolov3.cfg: The cfg file describes the layout of the network, block by block. This file is used to describe the network.

darknet.py: Contains the Model Architecture

pallete: Just a file of random colors that would come handy while drawing bounding boxes around objects.

utils.py: Contains all the helper functions code.

yolov3.weights: Pretrained Weights of the model that was trained on the COCO dataset can be downloaded from here

Shell.ipynb: This notebook contains some description of the above-mentioned files along with the tests of the project.

Pre-requisites

  • You should understand how convolutional neural networks work. This also includes knowledge of Residual Blocks, skip connections, and Upsampling.

  • What is object detection, bounding box regression, IoU and non-maximum suppression.

  • Basic PyTorch usage. You should be able to create simple neural networks with ease.

Installation

Use the package manager pip to install foobar.

pip install opencv-python
pip install numpy
pip install pandas

To install Pytorch follow: Pytorch

Usage

python detector.py --images path_to_images --det path_to_destination_folder

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Acknowledgments

Useful Resources:

Ayoosh Kathuria : Check out his blog for more details about YOLO

COCO Dataset:

If you wanna train your own model from scratch you can download the dataset from here

About

YOLO (“You Only Look Once”) is an effective real-time object recognition algorithm. The following project is implemented in Pytorch from scratch

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors