理論上來說,可以直接訪問 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
常見問題及解決方法
-
報錯:找不到
openvino_dir
設置環境變量,添加 OpenVINO 的安裝路徑。示例:
-
報錯:部分包無法從 Git 拉取
配置代理解決網絡問題。可通過以下命令設置代理,端口號需根據梯子的端口設置:git config --global http.https://github.com.proxy socks5://127.0.0.1:10808
-
報錯:
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。