Introduction To Object Detection using ImageAI in Python
Now, this is advanced technology using computer vision is object detection, and image classification in python. It deals with identifying the object present in images or videos by frame. Several application of object detection such as face detection, vehicle detection, self-driving cars, and much more application.
In this article, you will see how to perform object detection in Python with the help of the ImageAI library.
Deep Learning for Object Detection
There are several Deep learning techniques that have been proven state of the art for various object detection problems. The following are some of the commonly used deep learning approaches for object detection:
- YOLO (You Only Look Once)
- Region-based Convolutional Neural Networks
In the rest of this article, we will see what exactly ImageAI is and how to use it to perform object detection.
ImageAI is an object detection library built in python. With the help of ImageAI developers to build applications and systems with self-contained deep learning and computer vision capabilities using a few lines of straight forward code. ImageAI library has a capability implementation of almost all of the state-of-the-art deep learning algorithms like YOLOv3 and TinyYOLOv3.
ImageAI makes use of several APIs that work offline – that APIs work on object detection, object location, video detection, and object tracking APIs that can be called without internet access. ImageAI mainly works on pre-trained model and can easily be customized.
ImageAI, you can detect and recognize 80 different kinds of common, everyday objects.
In this part of the tutorial, we will work through the installation of ImageAI. I am assuming everyone working on Python3 new version.
First, install the required and dependency of ImageAI library.
!pip install tensorflow
!pip install opencv-python Keras !pip install keras ImageAI !pip install imageAI
Now Start implementation with ImageAI
Now let’s see how to actually use the ImageAI library. I will explain step by step how you can build your first project based on object detection model with ImageAI.
Create an object_detect.py or object_detect.ipynb file that your preferred text editor for writing Python code.
Import object detection library from imageai.Detection import ObjectDetection
Now that you have imported imageAI library and the ObjectDetection class, the next thing is to create an instance of the class object detection.
detector = ObjectDetection()
NOTE:- if error while running the ImageAI library then update the keras>= 1.4 and TensorFlow = 2.2.0.
Let’s set the path of input file, output file, and model file.
#path of each file models_path = "/content/yolo-tiny.h5" input_path = "/content/input_test.jpg" output_path = "/content/output_test.jpg
#path of each file
models_path = “/content/yolo-tiny.h5”
input_path = “/content/input_test.jpg”output_path = “/content/output_test.jpg
After instantiating the ObjectDetection class we can now call various functions from the class. The class contains the following functions to call pre-trained models: setModelTypeAsRetinaNet(), setModelTypeAsYOLOv3(), and setModelTypeAsTinyYOLOv3().
For this tutorial, I will be using the pre-trained TinyYOLOv3 model, and hence we will use the setModelTypeAsTinyYOLOv3() function to load our model.
Next, we are going to call the function setModelPath(). This function accepts a string which contains the path to the pre-trained model:
This step calls the function loadModel() from the detector instance. It loads the model from the path specified above using the setModelPath() class method.
To detect objects in the image, we need to call the detectObjectsFromImage function using the detector object that we created in the previous section.
This function requires two arguments: input_image and output_image_path. input_image is the path where the image we are detecting is located, while the output_image_path parameter is the path to store the image with detected objects. This function returns a dictionary that contains the names and percentage probabilities of all the objects detected in the image.
detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)
The dictionary items can be accessed by traversing through each item in the dictionary.
for eachItem in detection:
print(eachItem[“name”] , ” : “, eachItem[“percentage_probability”])
Step 9:- Output car : 54.72719073295593 car : 58.94589424133301 car : 62.59384751319885 car : 74.07448291778564 car : 91.10507369041443 car : 97.26507663726807 car : 97.55765795707703 person : 53.6459743976593 person : 56.59831762313843 person : 72.28181958198547
Object detection / Image Processing is a much more effective application in computer vision tasks. This article explains how to perform object detection in Python using the ImageAI library with the help of an example.