Skip to content

Latest commit

 

History

History
71 lines (47 loc) · 2.49 KB

README.md

File metadata and controls

71 lines (47 loc) · 2.49 KB

YOLO CMake OpenCV ONNX CPP

master

Object detection implementation is inspired by hpc203/yolov7-opencv-onnxrun-cpp-py

This repository serves mostly as documentation for my personal use, demonstrating how to use ONNX and OpenCV with CMake on MacOS.

MacOS installation

  1. Install dependencies:
$ brew install cmake
$ brew install onnxruntime 
$ brew install opencv
  1. If you are on ARM then you are good to go 🎉

  2. If you are not using an ARM processor, download correct runtime 1.12.1 header files from the official GitHub repository.

  3. Put onnxruntime files to external/

  4. Set ONNXRUNTIME_ROOT env variable to your onnxruntime folder name

Windows installation

  1. Install dependencies:
$ choco install cmake --pre
$ choco install opencv
  1. Download ONNX Runtime 1.12.1
  2. Extract and put onnxruntime folder to external/onnxruntime-win-x64-1.12.1

Model

  • This example utilizes a custom-trained model. If you wish to train your own model, you can create a dataset using Roboflow and then use one of their official notebooks to perform the training. There are also many comprehensive tutorials in the official ultralytics/yolov5 repository
  • You are free to use any model you prefer, but be sure to update the class.names file accordingly. Additionally, for instance segmentation, it is important to pass SegNetConfig with proper parameters.

Preview

100 epochs. Trained on YOLOv5n-640 models. Inference on M1 CPU takes ~40ms.

Object detection dataset information:

  • 186 training images
  • 57 validation images
  • 25 test images

Instance segmentation dataset information:

  • 540 training images (AUGMENTATION rotation: Between -15° and +15°)
  • 53 validation images
  • 28 test images

preview-detection-1 preview-segmentation-1

preview-detection-2 preview-segmentation-2

preview-detection-3 preview-segmentation-3