Home ONNX YOLOv7 Object Detection
Post
Cancel

Open In GithubOpen In Github

Python scripts performing object detection using the YOLOv7 model in ONNX.

! ONNX YOLOv7 Object Detection Original image: https://www.flickr.com/photos/nicolelee/19041780

Important

  • The input images are directly resized to match the input size of the model. I skipped adding the pad to the input image, it 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
2
3
git clone https://github.com/ibaiGorordo/ONNX-YOLOv7-Object-Detection.git
cd ONNX-YOLOv7-Object-Detection
pip install -r requirements.txt

ONNX Runtime

For Nvidia GPU computers: pip install onnxruntime-gpu

Otherwise: pip install onnxruntime

ONNX model

The original models were converted to different formats (including .onnx) by PINTO0309. Download the models from [his repository](https://github.com/PINTO0309/PINTO_model_zoo/tree/main/307_YOLOv7). For that, you can either run the download_single_batch.sh or copy the google drive link inside that script in your browser to manually download the file. Then, extract and copy the downloaded onnx models (for example yolov7-tiny_480x640.onnx) to your models directory, and fix the file name in the python scripts accordingly.

  • The License of the models is GPL-3.0 license: License

Original YOLOv7 model

The original YOLOv7 model can be found in this repository: YOLOv7 Repository

Examples

  • Image inference:
    1
    
     python image_object_detection.py
    
  • Webcam inference:
    1
    
     python webcam_object_detection.py
    
  • Video inference: https://youtu.be/yYo0XQp97vo
    1
    
     python video_object_detection.py
    

    !YOLOv7 detection video

Original video: https://youtu.be/zPre8MgmcHY

  • Comparison with YOLOv5 or YOLOv6: https://youtu.be/WSFmLMLIbDQ
    1
    
     python comparison_with_yolov5_v6.py
    

    !YOLOv7 Vs YOLOv5 detection video !YOLOv7 Vs YOLOv6 detection video Original video: https://youtu.be/zPre8MgmcHY

  • Replace the yolov5_v6_path with the actual path to the YOLOv5 or YOLOv6 model.
  • Convert YOLOv5 model to ONNX Open In Colab
  • Convert YOLOv6 model to ONNX Open In Colab

References:

This post is licensed under CC BY 4.0 by the author.