自学内容网 自学内容网

onnx-runner:使用ORT运行YOLO的ONNX模型

onnx-runner

onnx-runner使用 ORT 运行 ONNX 模型,使用Rust构建。

目前仅支持 YOLO 模型,未来可能会支持其他 ONNX 模型

安装

要求

  • 如果您想使用 CPU 运行 onnx-runner,则无需安装
  • 如果您想使用 GPU 运行 onnx-runner,则需要安装 CUDA 12.x 和 CUDNN 9.x

Windows

  • 下载最新
    版本:onnx-runner-0.1.1-windows.tar.gz

  • 或从发布页面下载:Releases

  • onnx-runner-{version}-windows.tar.gz 解压到您的路径。压缩包中已经包含运行 ONNX 和 OpenCV 所需的依赖项。您不需要下载任何其他依赖项

  • 使用 CMD 或 PowerShell 运行 onnx-runner

    onnx-runner.exe -m <your_onnx_model> -i <your_input> --show
    

Ubuntu

  • 下载并安装

    # 下载最新软件包
    wget https://github.com/xgpxg/onnx-runner/releases/download/v0.1.1/onnx-runner_0.1.1_amd64.deb
    # 安装软件包
    sudo apt install ./onnx-runner_0.1.1_amd64.deb
    

注意:OpenCV 将默认安装

  • 运行 onnx-runner

    onnx-runner -m <your_onnx_model> -i <your_input> --show
    

其他 Linux

  • 下载最新
    版本:onnx-runner-v0.1.1-linux.tar.gz

  • onnx-runner-{version}-linux.tar.gz提取到您的路径下。

  • libonnxruntime.so 复制到/usr/lib

  • 安装 Opencv

  • 运行 onnx-runner

    onnx-runner -m <your_onnx_model> -i <your_input> --show
    

MacOS

目前暂不支持

用法

CLI

onnx-runner -m yolov8n.onnx -i image.jpg --show

有关更多信息,请参阅帮助:

onnx-runner -h

Usage: onnx-runner.exe [OPTIONS] --model <MODEL> --input <INPUT>

Options:
  -m, --model <MODEL>                YOLO onnx model file path, support version: v5, v7, v8, v10, and v11
  -i, --input <INPUT>                Input source, like image file, http image, camera, or rtsp
      --yolo-version <YOLO_VERSION>  The number of YOLO version, like 5, 7 ,8 ,10, or 11. Specifically, for YOLO 10, it needs to be set up [default: 8]
      --show                         Should the detection results be displayed in the gui window, default is false
  -h, --help                         Print help
  -V, --version                      Print version

支持的输入源:

输入示例
本地图像文件D:/images/img.png
网络图像文件https://cdn.pixabay.com/photo/2019/11/05/01/00/couple-4602505_1280.jpg
本地视频文件D:/images/video.mp4
网络视频文件https://cdn.pixabay.com/video/2024/06/04/215258_large.mp4
本地摄像头camera://0
IP摄像头(RTSP)rtsp://192.168.1.5:554

Lib

您需要安装rustcargo,然后将onnx-runner添加到您的项目中。

cargo add onnx-runner

示例

fn main() {
//使用默认配置
let mut config = ModelRunConfig::default();
//创建一个新的runner
let runner = ModelRunner::new(args.model.as_str(), config).unwrap();
//运行。input可以是本地图片、网络图片、摄像头或者支持RTSP的远程摄像头
runner.run(args.input.as_str(), ModelRunner::no_pre, |res, mut mat| {
//在这里您的代码。您可以将结果发送到http服务
println!("Result: {:?}", &res);
},
)?;
}

CPU/GPU支持

所有CPU都支持。

目前仅支持Nvidia GPU。您需要在设备上安装CUDA 12.x +和cudnn 9.x +。

问题解答

  • 已经安装了CUDA和CUDNN,但为什么仍然使用CPU而不是GPU?

首先检查CUDA环境变量是否已配置,然后检查CUDNN依赖库是否已复制到CUDA目录。注意CUDA和CUDNN的版本。目前仅支持 CUDA12.x 和 CUDNN9.x。


原文地址:https://blog.csdn.net/wxgxgp/article/details/143510433

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!