A few examples of MACHINE LEARNING on object detection programme in machine learning in Python with source codes for your real-time projects
Harisha Lakshan Warnakulasuriya
Senior Software Engineer | Designing Innovative Technology for Industrial Sectors
Get started with object detection program in machine learning using Python!
Object detection is a computer vision technique used to identify objects of interest within an image or video. In recent years, deep learning-based object detection techniques have achieved state-of-the-art results on a wide range of object detection tasks.
Here are the general steps to follow when building an object detection program in Python:
1. Collect and annotate a dataset: The first step is to collect a dataset of images and annotate the objects of interest in each image. Annotation involves marking the object(s) in the image with a bounding box, which specifies the location of the object within the image.
2. Prepare the dataset: Once the dataset has been annotated, it needs to be prepared for use in training a machine learning model. This typically involves resizing the images to a uniform size, splitting the dataset into training and validation sets, and converting the annotations into a format that can be used by the machine learning algorithm.
3. Choose a machine learning algorithm: There are many machine learning algorithms that can be used for object detection, including YOLO (You Only Look Once), Faster R-CNN (Region-based Convolutional Neural Network), and SSD (Single Shot MultiBox Detector). Choose the algorithm that best suits your needs.
4. Train the machine learning model: Once you have chosen a machine learning algorithm, it's time to train the model on your annotated dataset. This involves feeding the model the images and annotations from the training set and adjusting the model's parameters to minimize the difference between the predicted bounding boxes and the ground truth bounding boxes.
5. Evaluate the model: Once the model has been trained, it's important to evaluate its performance on a separate validation set. This will give you an idea of how well the model can generalize to new images.
6. Use the model for object detection: Finally, you can use the trained model to perform object detection on new images or videos. This involves feeding the images or video frames through the model and extracting the predicted bounding boxes for each object of interest.
There are many libraries and frameworks available in Python that can help you build an object detection program. Some popular ones include TensorFlow, Keras, PyTorch, and OpenCV.
A good starting point for building your object detection program in Python!
A Python program for object detection using machine learning. Object detection is a computer vision task that involves identifying and localizing objects within an image or video. One popular approach for object detection is to use deep learning models such as the Single Shot MultiBox Detector (SSD) or the You Only Look Once (YOLO) algorithm.
To get started, you'll need to install some libraries. The most commonly used library for object detection in Python is OpenCV, which provides various computer vision functions. Additionally, you'll need a deep learning framework like TensorFlow or PyTorch. For this example, we'll use TensorFlow.
Here's an example program that demonstrates object detection using a pre-trained model from the TensorFlow Object Detection API:
import cv
import numpy as np
import tensorflow as tf
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util
# Path to frozen detection graph and label map
PATH_TO_CKPT = 'path/to/frozen_inference_graph.pb'
PATH_TO_LABELS = 'path/to/label_map.pbtxt'
# Load the frozen TensorFlow model into memory
detection_graph = tf.Graph()
with detection_graph.as_default():
? ? od_graph_def = tf.GraphDef()
? ? with tf.gfile.GFile(PATH_TO_CKPT, 'rb') as fid:
? ? ? ? serialized_graph = fid.read()
? ? ? ? od_graph_def.ParseFromString(serialized_graph)
? ? ? ? tf.import_graph_def(od_graph_def, name='')
# Load the label map
label_map = label_map_util.load_labelmap(PATH_TO_LABELS)
categories = label_map_util.convert_label_map_to_categories(label_map, max_num_classes=90, use_display_name=True)
category_index = label_map_util.create_category_index(categories)
# Object detection function
def detect_objects(image):
? ? with detection_graph.as_default():
? ? ? ? with tf.Session(graph=detection_graph) as sess:
? ? ? ? ? ? image_np_expanded = np.expand_dims(image, axis=0)
? ? ? ? ? ? image_tensor = detection_graph.get_tensor_by_name('image_tensor:0')
? ? ? ? ? ? boxes = detection_graph.get_tensor_by_name('detection_boxes:0')
? ? ? ? ? ? scores = detection_graph.get_tensor_by_name('detection_scores:0')
? ? ? ? ? ? classes = detection_graph.get_tensor_by_name('detection_classes:0')
? ? ? ? ? ? num_detections = detection_graph.get_tensor_by_name('num_detections:0')
? ? ? ? ? ? (boxes, scores, classes, num_detections) = sess.run(
? ? ? ? ? ? ? ? [boxes, scores, classes, num_detections],
? ? ? ? ? ? ? ? feed_dict={image_tensor: image_np_expanded})
? ? ? ? ? ? # Visualize the detection results
? ? ? ? ? ? vis_util.visualize_boxes_and_labels_on_image_array(
? ? ? ? ? ? ? ? image,
? ? ? ? ? ? ? ? np.squeeze(boxes),
? ? ? ? ? ? ? ? np.squeeze(classes).astype(np.int32),
? ? ? ? ? ? ? ? np.squeeze(scores),
? ? ? ? ? ? ? ? category_index,
? ? ? ? ? ? ? ? use_normalized_coordinates=True,
? ? ? ? ? ? ? ? line_thickness=8)
? ? return image
# Main function
def main():
? ? # Load the image
? ? image_path = 'path/to/image.jpg'
? ? image = cv2.imread(image_path)
? ??
? ? # Perform object detection
? ? output_image = detect_objects(image)
? ??
? ? # Display the result
? ? cv2.imshow('Object Detection', output_image)
? ? cv2.waitKey(0)
? ? cv2.destroyAllWindows()
if __name__ == '__main__':
? ? main()
Make sure to replace the `'path/to/frozen_inference_graph.pb'` and `'path/to/label_map.pbtxt'` with the actual paths to your frozen detection graph and label map files. You can obtain a pre-trained model and label map from the TensorFlow Model Zoo (https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md).
This example
An example of an object detection program using the popular deep learning library TensorFlow and its object detection API. This example uses the Single Shot MultiBox Detector (SSD) algorithm for object detection.
Before you begin, make sure you have TensorFlow and the necessary dependencies installed. You can install them using pip:
领英推荐
pip install tensorflo
pip install pillow
pip install matplotlib
Here's the source code for the object detection program:
import o
import numpy as np
import tensorflow as tf
import sys
from PIL import Image
import matplotlib.pyplot as plt
# Path to the TensorFlow Object Detection API
sys.path.append('path/to/tensorflow/models/research/object_detection')
# Import the necessary modules from the TensorFlow Object Detection API
from object_detection.utils import ops as utils_ops
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util
def load_model(model_name):
? ? model_dir = tf.saved_model.load(model_name)
? ? model = model_dir.signatures['serving_default']
? ? return model
def run_inference_for_single_image(model, image):
? ? image = np.asarray(image)
? ? input_tensor = tf.convert_to_tensor(image)
? ? input_tensor = input_tensor[tf.newaxis,...]
? ? output_dict = model(input_tensor)
? ? num_detections = int(output_dict.pop('num_detections'))
? ? output_dict = {key:value[0, :num_detections].numpy()?
? ? ? ? ? ? ? ? ? for key,value in output_dict.items()}
? ? output_dict['num_detections'] = num_detections
? ? output_dict['detection_classes'] = output_dict['detection_classes'].astype(np.int64)
? ??
? ? return output_dict
def load_image_into_numpy_array(image):
? ? (im_width, im_height) = image.size
? ? return np.array(image.getdata()).reshape(
? ? ? ? (im_height, im_width, 3)).astype(np.uint8)
# Path to the frozen inference graph (.pb file) of the pre-trained model
PATH_TO_FROZEN_GRAPH = 'path/to/frozen_inference_graph.pb'
# Path to the label map (.pbtxt file) of the pre-trained model
PATH_TO_LABELS = 'path/to/label_map.pbtxt'
# Number of classes the model can detect
NUM_CLASSES = 90
# Load the label map
label_map = label_map_util.load_labelmap(PATH_TO_LABELS)
categories = label_map_util.convert_label_map_to_categories(label_map, max_num_classes=NUM_CLASSES, use_display_name=True)
category_index = label_map_util.create_category_index(categories)
# Load the model
detection_model = load_model(PATH_TO_FROZEN_GRAPH)
# Path to the input image
PATH_TO_IMAGE = 'path/to/input_image.jpg'
# Load the input image
image = Image.open(PATH_TO_IMAGE)
# Run object detection
output_dict = run_inference_for_single_image(detection_model, image)
# Visualize the results
vis_util.visualize_boxes_and_labels_on_image_array(
? ? image_np_with_detections,
? ? output_dict['detection_boxes'],
? ? output_dict['detection_classes'],
? ? output_dict['detection_scores'],
? ? category_index,
? ? instance_masks=output_dict.get('detection_masks_reframed', None),
? ? use_normalized_coordinates=True,
? ? line_thickness=8)
# Display the image with detected objects
plt.imshow(image_np_with_detections)
plt.show()
Make sure to replace `'path/to/tensorflow/models/research/object_detection'` with the actual path to the TensorFlow Object Detection API on your system. Also, update the paths to the frozen inference graph (`.pb` file), label map (`.pbtxt` file), and the input image (`input_image.jpg
Powered by https://www.harishalakshanwarnakulasuriya.ga
This website is fully owned and purely coded and managed by UI/UX/System/Network/Database/BI/Quality Assurance/Software Engineer L.P.Harisha Lakshan Warnakulasuriya
Company Website -:https://www.harishalakshanwarnakulasuriya.ga
Portfolio Website -:https://www.srilankancodingchamp.ml
Crypto Exchange -:https://www.unicorncrypto.ga
Facebook Page -:https://www.facebook.com/HarishaLakshanWarnakulasuriya/
Specialties-:
#Blockchain_Development_Engineer?#NFT_Minting_Specialist?#Crypto_Stock_Trading_Platform_Designing_Engineer?#Oracle_Cloud_Infrastructure_Engineer
He also Co-operates with https://www.srilankancodingchamp.ml/ and Unicorn TukTuk Online shopping experience and U-Mark WE youth organization and UnicornVideo GAG Live broadcasting channel and website.
Published by
Senior Software Engineer at Richard Pieris & Company PLC?