C++ YOLO v5 ONNX Runtime inference code for object detection.
- OpenCV 4.x
- ONNXRuntime 1.15+
- OS: Tested on centos8 archlinux
- CUDA 11+ [Optional]
To build the project you should run the following commands, don't forget to change ONNXRUNTIME_DIR
cmake option:
mkdir build
cd build
cmake .. -DONNXRUNTIME_DIR=[path_to_onnxruntime_src] -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_PERF=ON
cmake --build .
CMAKE_BUILD_TYPE must be the same as when onnxruntime was built.
Before running the executable you should convert your PyTorch model to ONNX if you haven't done it yet. Check the official tutorial.
On Windows
: to run the executable you should add OpenCV and ONNX Runtime libraries to your environment path or
put all needed libraries near the executable (onnxruntime.dll and opencv_world.dll).
Run from CLI:
./yolo_ort --model_path ../models/yolov5s.onnx --class_names ../models/coco.names --image ../images/bus.jpg --gpu
# On Windows ./yolo_ort.exe with arguments as above
YOLOv5m onnx:
- YOLO v5 repo: https://github.com/ultralytics/yolov5
- YOLOv5 Runtime Stack repo: https://github.com/zhiqwang/yolov5-rt-stack
- ONNXRuntime Inference examples: https://github.com/microsoft/onnxruntime-inference-examples