日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

[深度学习] OpenVINO开发:C++ API推理步骤实现

發布時間:2023/12/15 c/c++ 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [深度学习] OpenVINO开发:C++ API推理步骤实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用C++ API實現推理步驟:

  • 創建Core對象,加載推理引擎Core,該引擎需要從當前路徑加載plugins.xml文件;
  • Core ie;
  • 讀取IR文件 (.xml and .bin files),也可直接加載.onnx文件;
    • .xml和.bin文件放在同一目錄下,但是代碼中只加載.xml即可;
    CNNNetwork network = ie.ReadNetwork(input_model);
  • 配置 input & output;
  • 輸入格式設置:

    InputInfo::Ptr input_info = network.getInputsInfo().begin()->second; std::string input_name = network.getInputsInfo().begin()->first;//通過設置調整大小算法,將輸入標記為可調整大小。 //在這種情況下,能夠將任何形狀的輸入blob設置為一個推斷請求。 在推斷期間自動執行調整大小和布局轉換 。 input_info->getPreProcess().setResizeAlgorithm(RESIZE_BILINEAR); input_info->setLayout(Layout::NHWC); input_info->setPrecision(Precision::U8);

    輸出格式設置:

    DataPtr output_info = network.getOutputsInfo().begin()->second; std::string output_name = network.getOutputsInfo().begin()->first; output_info->setPrecision(Precision::FP32);
  • 載入模型到AI推理計算設備;
    • 計算棒 "MYRIAD";
    ExecutableNetwork executable_network = ie.LoadNetwork(network, "CPU");
  • 創建Infer Request;
  • InferRequest infer_request = executable_network.CreateInferRequest();
  • 準備輸入數據;
  • //讀取輸入圖像到一個blob,并將其設置為一個不需要調整大小和布局轉換的推斷請求。 cv::Mat image = imread_t(input_image_path);Blob::Ptr imgBlob = wrapMat2Blob(image); // just wrap Mat data by Blob::Ptr// 不分配新內存infer_request.SetBlob(input_name, imgBlob); // infer_request 接受任意大小的輸入blob
  • 推理;
  • infer_request.Infer();
  • 輸出處理;
  • Blob::Ptr output = infer_request.GetBlob(output_name); ClassificationResult_t classificationResult(output, { input_image_path }); classificationResult.print();

    官方文檔參考:Integrate Inference Engine with Your C++ Application


    完整Demo下載:hello_openvino_2021.7z

    Demo運行說明:

  • 根據本機OpenVINO資源安裝路徑修改CMake文件;
  • Visual Studio 調為“Release x64”環境 ;
  • 修改模型和圖片資源的絕對路徑;
  • 運行時提示缺少“xxx.dll”,在“屬性–>調試 – >環境”中,添加“PATH=xxx”。
  • PATH=C:\Program Files (x86)\Intel\openvino_2021.4.752\opencv\bin;C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\inference_engine\bin\intel64\Release;C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\inference_engine\external\tbb\bin;C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\ngraph\lib;

    總結

    以上是生活随笔為你收集整理的[深度学习] OpenVINO开发:C++ API推理步骤实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。