Model Overview

This model is an ONNX version of a YOLOv8 medium fine tuned on Iran veichle plate dataset. YOLOv8 is designed to efficiently detect objects in images by generating bounding boxes around objects of interest and predicting their associated class probabilities.

How to Use

Inference Using ONNX Runtime

import onnxruntime as rt
sess = rt.InferenceSession("path_to_model.onnx")

# View model input and output details
input_name = sess.get_inputs()[0].name
print("Input name:", input_name)
input_shape = sess.get_inputs()[0].shape
print("Input shape:", input_shape)
input_type = sess.get_inputs()[0].type
print("Input type:", input_type)

output_name = sess.get_outputs()[0].name
print("Output name:", output_name)
output_shape = sess.get_outputs()[0].shape
print("Output shape:", output_shape)
output_type = sess.get_outputs()[0].type
print("Output type:", output_type)

Pre-processing

  1. Load Image: Load the image using cv2.imread().
  2. Resize: Resize the input image to a 224x224 resolution.
  3. Normalize: Scale pixel values to the range [0, 1] by dividing by 255.
  4. Transpose: Change the image array to channel-first format (C, H, W).
  5. Convert: Convert the image to a float32 NumPy array and add a batch dimension.
import cv2
import numpy as np

# Pre-process the input image
image_path = "/path_to_image.png"
input_image = cv2.imread(image_path)
resized_image = cv2.resize(input_image, (224, 224))
scaled_image = resized_image / 255.0
transposed_image = scaled_image.transpose((2, 0, 1))
prep_image = np.array(transposed_image, dtype='float32')[None, :]

Inference

After pre-processing, run the model on the prepared image.

# Run inference
output_probabilities = sess.run([output_name], {input_name: prep_image})

Post-processing

To extract bounding box details:

  • Identify the most probable bounding box.
  • Extract the coordinates (x, y, width, height) and the associated probability.
# Extract bounding box information
most_prob_idx = output_probabilities[0][0][4].argmax()
x, y, width, height, prob = output_probabilities[0][0][:, most_prob_idx]
print(x, y, width, height, prob)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Examples
Unable to determine this model's library. Check the docs .