Yolov5 C++ GPU部署方式介绍:ONNX Runtime

2023-12-26 14:27:52 浏览数 (1)

漫谈C

摘要:深度学习模型如何在C 下进行调用,

本文详细阐述了YOLOv5在C ONNX Runtime GPU&CPU下进行调用

1. ONNX和Tensorrt区别

ONNX Runtime 是将 ONNX 模型部署到生产环境的跨平台高性能运行引擎,主要对模型图应用了大量的图优化,然后基于可用的特定于硬件的加速器将其划分为子图(并行处理)。

ONNX的官方网站:https://onnx.ai/

ONXX的GitHub地址:https://github.com/onnx/onnx

1.2 Tensorrt介绍

C 库,用于加速 NVIDIA 的 GPU,可以为深度学习应用提供低延迟、高吞吐率的部署推理,支持 TensorFlow,Pytorch,Caffe2 ,Paddle等框架训练出的神经网络,可以优化网络计算TensorRT官网下载地址:https://developer.nvidia.com/zh-cn/tensorrt

开发者指南:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html

Github地址:https://github.com/NVIDIA/TensorRT

1.3 Yolov5两种部署方式比较:

Tensorrt 优点:在GPU上推理速度是最快的;缺点:不同显卡cuda版本可能存在不适用情况;

ONNX Runtime优点:通用性好,速度较快,适合各个平台复制;

2.Yolov5 ONNX Runtime部署

源码地址:https://github.com/itsnine/yolov5-onnxruntime

C YOLO v5 ONNX Runtime inference code for object detection.

Dependecies:

  • OpenCV 4.x
  • ONNXRuntime 1.7
  • OS: Tested on Windows 10 and Ubuntu 20.04
  • CUDA 11 [Optional]

2.1 Cmake工程

2.2 填写opencv 和对应路径

2.3 打开工程 手动配置onnxruntime-win-x64-gpu-1.9.0

包含目录:D:onnxruntime-win-x64-gpu-1.9.0include

引用目录:D:onnxruntime-win-x64-gpu-1.9.0lib

链接器输入:

onnxruntime.lib onnxruntime_providers_cuda.lib onnxruntime_providers_shared.lib

2.4 如何得到 .onnx

在GitHub - ultralytics/yolov5: YOLOv5

0 人点赞