Open In Github
Python scripts performing object detection using the YOLOv9 MIT model in ONNX.
[!CAUTION] I skipped adding the pad to the input image when resizing, which might affect the accuracy of the model if the input image has a different aspect ratio compared to the input size of the model. Always try to get an input size with a ratio close to the input images you will use.
Requirements
- Check the requirements.txt file.
- For ONNX, if you have a NVIDIA GPU, then install the onnxruntime-gpu, otherwise use the onnxruntime library.
Installation
1
pip install yolov9-onnx
Or, clone this repository:
1
2
3
git clone https://github.com/ibaiGorordo/ONNX-YOLOv9-MIT-Object-Detection.git
cd ONNX-YOLOv9-MIT-Object-Detection
pip install -r requirements.txt
ONNX Runtime
For Nvidia GPU computers: pip install onnxruntime-gpu
Otherwise: pip install onnxruntime
ONNX model
- If the model file is not found in the models directory, it will be downloaded automatically from the release page.
- Or, for exporting the models with a different input size, use the Google Colab notebook to convert the model:
- Available models:
- MIT: v9-s_mit.onnx, v9-m_mit.onnx, v9-c_mit.onnx
- Official: gelan-c.onnx, gelan-e.onnx, yolov9-c.onnx, yolov9-e.onnx
Original YOLOv9 MIT model
The original YOLOv9 MIT model can be found in this repository: YOLOv9 MIT Repository
- The License of the models is MIT license: License
Usage
1
2
3
4
5
6
7
8
9
10
11
12
import cv2
from yolov9 import YOLOv9, draw_detections
detector = YOLOv9("v9-c_mit.onnx")
img = cv2.imread("image.jpg")
class_ids, boxes, confidences = detector(img)
combined_img = draw_detections(img, boxes, confidences, class_ids)
cv2.imshow("Detections", combined_img)
cv2.waitKey(0)
Load the model
Examples
- Image inference:
1
python image_object_detection.py
- Webcam inference:
1
python webcam_object_detection.py
- Video inference: https://youtu.be/X_XVkEqgCUM
1
python video_object_detection.py
https://github.com/user-attachments/assets/71b3ef97-92ef-4ddb-a62c-5e52922a396d
References:
- YOLOv9 MIT model: https://github.com/WongKinYiu/YOLO
- YOLOv9 model: https://github.com/WongKinYiu/yolov9