Table of Contents

Object Detection with Tensorflow, OpenCV, ImageAI and YOLO

Requirements:

Be sure to have the requirements installed.

Project Start - Importing Libraries and Testing

Initialize the libraries

import cv2 as cv #Loads ComputerVision / OpenCV
from imageai.Detection import ObjectDetection as od # Loads ImageAI
 
import numpy as np # Imports NumPY
import requests as req # Imports Requests
import os as os # Imports OS Module

Testing if OpenCV is working:

url = 'https://p7.hiclipart.com/preview/124/937/193/architectural-engineering-engineer.jpg' # Image to be Downloaded
r = req.get(url) # Pass the URL as a Request.Get
with open('testimage.jpg', 'wb') as outfile: # Writes the Image to the system
    outfile.write(r.content)
img = cv.imread('testimage.jpg') # Reads an image with OpenCV
window_name = 'image' # Defines a Window Name
cv.imshow(window_name, img) # Show the Image on a Window
cv.waitKey(0) # Wait for any Key to be pressed
cv.destroyAllWindows() # Destroy (all) previous created Windows

Preparing for the upcoming project:

Now that we tested that OpenCV is working let's edit that last piece of code, change it to a function, so we can reutilize it often. The complete code until now should look like this:

import cv2 as cv
from imageai.Detection import ObjectDetection as od
 
import numpy as np
import requests as req
import os as os
 
def showImage(img):
    window_name = 'image'
    cv.imshow(window_name, img)
    cv.waitKey(0)
    cv.destroyAllWindows()

Downloading Images to train the ML

Run this code to download 2 type of images that we will be using. One being only of people and the other to download images of hats. This images will be contained on they own folder since we will be using that to train the Machine Learning.

External References:

https://www.codeproject.com/Articles/5270236/Installing-OpenCV-and-ImageAI-for-Object-Detection