Skip to content

Latest commit

 

History

History
59 lines (50 loc) · 2.57 KB

README.md

File metadata and controls

59 lines (50 loc) · 2.57 KB

YOLOv3 Object Detection using OpenCV

This is the Capstone Project for the Udacity C++ Nanodegree Program. This program can detect up to 80 classes of objects from a sequence of video frames using the You Only Look Once (YOLOv3) Deep Neural Network, originally authored by Joseph Redmon and Ali Farhadi. YOLOv3 forwards the the whole image, or frame, at once saving valuable inference time. It divides the image into a 13x13 grid of cells. Each cell is responsible for predicting a number of bounding boxes in the image. For each bounding box, the network predicts the confidence that the bounding box encloses an object and outputs the probability that the object represents a particular class. Using non-maximum suppression the bounding boxes with low confidence scores (0.5) are eliminated. This technique yields surprisingly fast results.

Dependencies for Running Locally

The following dependencies are required to run the program locally.

Build Instructions

  1. Clone the repository and navigate to the downloaded folder.
git clone https://github.com/justinbellucci/yolo3-object-detection.git
cd yolo3-object-detection
  1. Download the models in the main project directory.
sudo chmod a+x getModels.sh
./getModels.sh
  1. Make a build directory in the top level directory:
mkdir build && cd build
  1. Compile
cmake .. 
make

Running the Program

The input to this program can be either a mp4 video file or a webcam. Both methods require the yolov3.weights, yolov3.cfg and coco.names files to be placed in the main project directory. Once run, a window will open and the video will play automatically. Once finished, the program will terminate the window.

// run from build directory
cd build 
  1. Video file:

    ./yolo3_detector --video=/my_video.mp4 
    
  2. Webcam

    ./yolo3_detector