理论上来说,可以直接访问 ONNXRuntime Releases 下载 dll 文件,然后从官方文档中下载缺少的头文件以直接调用,但我没有尝试过。

1. 下载 OpenVINO 包

从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下,例如:

C:\Program Files (x86)\Intel\openvino_2024.4.0

2. 克隆源码并编译

ONNXRuntime GitHub 仓库 克隆源码。需要注意以下事项:

  • 编译器需要安装 VS2022。
  • 必须通过 git clone 下载源码,因为需要递归克隆第三方库。

克隆命令

git clone --branch v1.20.1 --recursive https://github.com/Microsoft/onnxruntime
cd onnxruntime-1.20.1
pip install -r requirements-dev.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 编译命令

参考官方文档,使用以下命令编译:

./build.bat --config RelWithDebInfo --use_openvino AUTO:GPU,CPU --build_shared_lib --build_wheel

常见问题及解决方法

  1. 报错:找不到 openvino_dir
    设置环境变量,添加 OpenVINO 的安装路径。

    示例:
    设置环境变量示例
    设置环境变量示例

  2. 报错:部分包无法从 Git 拉取
    配置代理解决网络问题。可通过以下命令设置代理,端口号需根据梯子的端口设置:

    git config --global http.https://github.com.proxy socks5://127.0.0.1:10808
    
  3. 报错:Define device 失败
    使用新版代码,因旧版代码的某些头文件存在 Bug。如果非要使用旧版代码,需要对报错的头文件进行更改,报错的原因是对一个const string变量进行修改,需要创建临时变量进行赋值。

4. 生成解决方案

编译完成后,打开 VS2022,直接生成解决方案。生成后的标准目录如下:

生成目录示例

5. 调用代码问题

调用代码时可能会遇到以下错误:

FAIL: LoadLibrary failed with error 126 "" when trying to load "onnxruntime\capi\onnxruntime_providers_openvino.dll"

解决方法:在调用代码前,加载 C:\Program Files (x86)\Intel\openvino_2024.4.0 下的相关 DLL 文件。我选择编写代码,全部加载相关 DLL。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐