色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在MacOS上編譯OpenVINO C++項(xiàng)目呢?

英特爾物聯(lián)網(wǎng) ? 來(lái)源:英特爾物聯(lián)網(wǎng) ? 2024-01-11 18:07 ? 次閱讀

前言

英特爾公司發(fā)行的模型部署工具 OpenVINO 模型部署套件,可以實(shí)現(xiàn)在不同系統(tǒng)環(huán)境下運(yùn)行,且發(fā)布的 OpenVINO 2023 最新版目前已經(jīng)支持 MacOS 系統(tǒng)并同時(shí)支持在蘋(píng)果 M 系列芯片上部署模型。在該項(xiàng)目中,我們將向大家展示如何在 MacOS 系統(tǒng)、M2芯片的 Macbook Air 電腦上,展示使用 OpenVINO C++ API 部署深度學(xué)習(xí)模型。

1. OpenVINO

英特爾發(fā)行版 OpenVINO 工具套件基于 oneAPI 而開(kāi)發(fā),可以加快高性能計(jì)算機(jī)視覺(jué)和深度學(xué)習(xí)視覺(jué)應(yīng)用開(kāi)發(fā)速度工具套件,適用于從邊緣到云的各種英特爾平臺(tái)上,幫助用戶(hù)更快地將更準(zhǔn)確地真實(shí)世界結(jié)果部署到生產(chǎn)系統(tǒng)中。通過(guò)簡(jiǎn)化的開(kāi)發(fā)工作流程,OpenVINO 可賦能開(kāi)發(fā)者在現(xiàn)實(shí)世界中部署高性能應(yīng)用程序和算法

5a94c9e4-b067-11ee-8b88-92fbcf53809c.png

OpenVINO 2023.2 于 2023 年 11 月 16 日發(fā)布,該工具包帶來(lái)了挖掘生成人工智能全部潛力的新功能。更多的生成式 AI 覆蓋和框架集成,以最大限度地減少代碼更改,并且擴(kuò)展了對(duì)直接 PyTorch 模型轉(zhuǎn)換的模型支持。支持更多新的模型,包括 LLaVA、chatGLM、Bark 和 LCM 等著名模型。

支持更廣泛的大型語(yǔ)言模型(LLM)和更多模型壓縮技術(shù),支持運(yùn)行時(shí)推理支持以下 Int4 模型壓縮格式,通過(guò)神經(jīng)網(wǎng)絡(luò)壓縮框架(NNCF) 進(jìn)行本機(jī) Int4 壓縮等一系列新的功能。

5c5136dc-b067-11ee-8b88-92fbcf53809c.png

通過(guò) OpenVINO 官網(wǎng)信息,我們可以看出,目前 OpenVINO已經(jīng)能夠在蘋(píng)果 MacOS 系統(tǒng)、M 系列芯片上運(yùn)行,這為使用 MacOS 系統(tǒng)的開(kāi)發(fā)者提供了很好的工具。因此在此處,我們將在 MacOS 系統(tǒng)、M2芯片的 Macbook Air 電腦上,展示使用 OpenVINO C++ API 部署深度學(xué)習(xí)模型的詳細(xì)流程。

2. OpenVINO 下載

官方在發(fā)布版本中已經(jīng)提供 MacOS 系統(tǒng)的編譯庫(kù),因此在此處我們只需要下載官方編譯庫(kù)即可。

首先訪(fǎng)問(wèn) OpenVINO 網(wǎng)站,依次選擇版本號(hào)、操作系統(tǒng)、安裝方式等內(nèi)容,然后點(diǎn)擊下載,如下圖所示:

OpenVINO 官網(wǎng):

https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html

5c714d14-b067-11ee-8b88-92fbcf53809c.png

下面是官方編譯的文件,此處主要提供了兩個(gè)版本,一個(gè)是適用于蘋(píng)果電腦之前的版本,主要是 MacOS 10 以及之前的版本系統(tǒng)并且使用的是 Intel CPU,另一個(gè)是使用了蘋(píng)果的 M 系列芯片的新版本電腦,主要是 MacOS 11 之后的系統(tǒng)。大家可以根據(jù)自己的電腦進(jìn)行選擇:

5c94f8ae-b067-11ee-8b88-92fbcf53809c.png

下載完后,將該文件解壓到任意文件夾,在此處為了方便后續(xù)使用一集更新,將其解壓到用戶(hù)文件夾,如下圖所示:

5cb08222-b067-11ee-8b88-92fbcf53809c.png

后續(xù)我們會(huì)使用 CMake 進(jìn)行項(xiàng)目編譯,因此我們此處無(wú)需再做其他的設(shè)置。

其他環(huán)境配置:

● MacOS:14.2.1

● CMake:3.28

● Make:3.81

●編譯軟件:Visual Studio Code

● OpenCV:4.8.0 其他環(huán)境配置此處不做過(guò)多贅述,OpenCV 環(huán)境安裝可以參考下述文章實(shí)現(xiàn):【OpenCV】在 MacOS 上源碼編譯 OpenCV

3. 代碼實(shí)現(xiàn)

此處我們以 Yolov8圖片分類(lèi)模型為例進(jìn)行項(xiàng)目測(cè)試,由于該模型之前我們已經(jīng)多次使用,所以在此處不再做耕作的闡述,具體代碼如下所示:

#include 
#include 
#include 
#include 
#include 
#include "openvino/openvino.hpp" //openvino header file
#include "opencv2/opencv.hpp"  //opencv header file


int main(int argc, char* argv[])
{
  ov::Version version = ov::get_openvino_version();
  std::cout << version.description << ": " << version.buildNumber << std::endl;


 ? ?// -------- Step 1. Initialize OpenVINO Runtime Core --------
 ? ?ov::Core core;


 ? ?// -------- Step 2. Compile the Model --------
 ? ?auto compiled_model = core.compile_model("yolov8s-cls.xml", "CPU");


 ? ?// -------- Step 3. Create an Inference Request --------
 ? ?ov::InferRequest infer_request = compiled_model.create_infer_request();


 ? ?// -------- Step 4.Read a picture file and do the preprocess --------
 ? ?cv::Mat img = cv::imread("image.jpg"); 
 ? ?// Preprocess the image
 ? ?int col = img.cols;
 ? ?int row = img.rows;
 ? ?int _max = MAX(col, row);
 ? ?cv::Mat letterbox_img = cv::zeros(_max, _max, CV_8UC3);
 ? ?img.copyTo(letterbox_img(cv::Rect(0, 0, col, row)));
 ? ?
 ? ?cv::Mat blob = cv::blobFromImage(letterbox_img, 1.0 / 255.0, cv::Size(224, 224), cv::Scalar(), true);


 ? ?// -------- Step 5. Feed the blob into the input node of the Model -------
 ? ?// Get input port for model with one input
 ? ?auto input_port = compiled_model.input();
 ? ?std::cout << "The shape of input tensor:" << input_port.get_shape() << std::endl;
 ? ?// Create tensor from external memory
 ? ?ov::Tensor input_tensor(input_port.get_element_type(), input_port.get_shape(), blob.ptr(0));
 ? ?// Set input tensor for model with one input
 ? ?infer_request.set_input_tensor(input_tensor);


 ? ?// -------- Step 6. Start inference --------
 ? ?infer_request.infer();
 ? ?struct timeval start_time, end_time;
 ? ?gettimeofday(&start_time,NULL);
 ? ?infer_request.infer();
 ? ?gettimeofday(&end_time,NULL);
 ? ?// Get the elapsed millisecond time
 ? ?double elapsed_time = (end_time.tv_sec - start_time.tv_sec)*1000 + (end_time.tv_usec - start_time.tv_usec)/1000;
 ? ?// -------- Step 7. Get the inference result --------
 ? ?auto output = infer_request.get_output_tensor(0);
 ? ?auto output_shape = output.get_shape();
 ? ?std::cout << "The shape of output tensor:" << output_shape << std::endl;


 ? ?// -------- Step 8. Postprocess the result --------
 ? ?float* output_buffer = output.data();
  std::vector result(output_buffer, output_buffer + output_shape[1]);
  auto max_idx = std::max_element(result.begin(), result.end());
  int class_id = max_idx - result.begin();
  float score = *max_idx;
  std::cout << "Class ID:" << class_id << " Score:" <

在該代碼中,主要是獲取 OpenVINO 版本信息,然后按照模型部署流程部署測(cè)試了 Yolov8 圖片分類(lèi)模型,并打印輸出結(jié)果以及推理時(shí)間。

4. 項(xiàng)目編譯運(yùn)行

在該項(xiàng)目中通過(guò) CMake 編譯項(xiàng)目,定義的 CMakeLists.txt 文件如下所示:

cmake_minimum_required(VERSION 3.28)
project(test_openvino)
set(OpenCV_DIR /Users/ygj/3lib/opencv_4.8.0/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV_DIR = ${OpenCV_DIR}")
message(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")
set(OpenVINO_DIR /Users/ygj/3lib/openvino_2023.2/runtime/cmake)
set(OpenVINO_LIBs "/Users/ygj/3lib/openvino_2023.2/runtime/lib/arm64/Release/libopenvino.2320.dylib")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories(
 /Users/ygj/3lib/openvino_2023.2/runtime/include
  ${OpenCV_INCLUDE_DIRS}
)
add_executable(test_openvino test_openvino.cpp )
target_link_libraries(test_openvino ${OpenVINO_LIBs} ${OpenCV_LIBS})

在這個(gè) CMakeLists 文件中,需要同時(shí)配置 OpenCV 以及 OpenVINO 這兩個(gè)依賴(lài)庫(kù),具體編譯以及配置方式參考 CMake 手冊(cè)。

接下來(lái)就可以項(xiàng)目編譯了,在終端中輸入一下命令,就可以進(jìn)行項(xiàng)目配置了,輸出結(jié)果如下所示:

cmake .

5cc553b4-b067-11ee-8b88-92fbcf53809c.png

接下來(lái)就是進(jìn)行項(xiàng)目編譯,CMake 編譯后會(huì)生成 Makefile 文件,之后就可以運(yùn)行 make 命令進(jìn)行項(xiàng)目最后的編譯,然后就可以直接運(yùn)行生成的項(xiàng)目文件,如下所示:

make
./test_openvino

5cd9f04e-b067-11ee-8b88-92fbcf53809c.png

上圖中展示了項(xiàng)目最后運(yùn)行結(jié)果,可以看出,此處使用的模型輸入大小為[1,3,224,224],輸出大小為[1,1000],識(shí)別結(jié)果 Class ID=386,查看分類(lèi)結(jié)果字典,圖片識(shí)別結(jié)果與圖片一致;模型的推理時(shí)間為:7ms。

5. 總結(jié)

該項(xiàng)目中,我們?cè)?MacOS 14.2.1 系統(tǒng)、M2 芯片的 Macbook Air 電腦上,成功使用 OpenVINO C++ API 部署了 Yolov8 圖片分類(lèi)深度學(xué)習(xí)模型,并詳細(xì)演示了 OpenVINO C++ API 在蘋(píng)果電腦上使用與配置流程,為使用 MacOS 系統(tǒng)的開(kāi)發(fā)者提供了很好的范例與參考。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    10109

    瀏覽量

    173186
  • MacOS
    +關(guān)注

    關(guān)注

    0

    文章

    210

    瀏覽量

    17806
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5531

    瀏覽量

    122068
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    343

原文標(biāo)題:在 MacOS 上編譯 OpenVINO C++ 項(xiàng)目 | 開(kāi)發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    在Ubuntu搭建OpenVINO C++程序開(kāi)發(fā)環(huán)境

    這種集成開(kāi)發(fā)環(huán)境,為了在 Ubuntu 也能擁有類(lèi)似 Visual Studio 的開(kāi)發(fā)體驗(yàn),筆者探索出基于 Anaconda 和 VS Code,搭建 OpenVINO C++ 程序開(kāi)發(fā)環(huán)境的方式。
    發(fā)表于 08-09 09:42 ?1225次閱讀
    在Ubuntu<b class='flag-5'>上</b>搭建<b class='flag-5'>OpenVINO</b> <b class='flag-5'>C++</b>程序開(kāi)發(fā)環(huán)境

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實(shí)現(xiàn)快速高效的語(yǔ)義分割。在前文中我們發(fā)表了《基于 OpenVINO Python API 部署
    的頭像 發(fā)表于 11-17 09:53 ?1121次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> <b class='flag-5'>C++</b> API部署FastSAM模型

    何在FX3 SuperSpeed explorer等電路板使用openOCD調(diào)試C++項(xiàng)目

    配置與文檔中的完全相同。 因此,我想請(qǐng)教如何在 FX3 SuperSpeed explorer 等電路板使用 openOCD 調(diào)試我的 C++ 項(xiàng)目? 回到純
    發(fā)表于 05-23 08:16

    如何編譯已有的C++去生成可在OpenHarmony系統(tǒng)使用的動(dòng)態(tài)庫(kù)文件

    原有Linux環(huán)境下的C++ 項(xiàng)目,可通過(guò)在CMakeList文件中設(shè)置使用的工具鏈,編譯出各平臺(tái)開(kāi)發(fā)板可使用的so文件。請(qǐng)問(wèn),我現(xiàn)在在Hi3516開(kāi)發(fā)板
    發(fā)表于 03-16 10:42

    何在新版本中將C項(xiàng)目轉(zhuǎn)換為C++

    我正在嘗試將 C 項(xiàng)目轉(zhuǎn)換為 C++。在以前的版本中,屬性中有一個(gè)“轉(zhuǎn)換為 C++”選項(xiàng)。我在 1.5.1 中找不到這個(gè)。如何在新版本中轉(zhuǎn)換
    發(fā)表于 01-06 08:13

    何在macOS的Eclipse中創(chuàng)建新項(xiàng)目

    昨天我在我的 macbook 安裝了 esp-open-sdk,我想在 Eclipse 中開(kāi)發(fā)和構(gòu)建它,就像在 Windows 一樣,使用 UDK(非官方開(kāi)發(fā)工具包)和 make 目標(biāo)。聽(tīng)取建議,如何在
    發(fā)表于 06-12 06:49

    何在使用Inspector運(yùn)行OpenVINO C++樣本時(shí)避免內(nèi)存泄露?

    運(yùn)行OpenVINO? 圖像分類(lèi) Async C++示例帶英特爾? Inspector用于檢查內(nèi)存問(wèn)題。使用命令: $ pwd /home/centos
    發(fā)表于 08-15 06:18

    何在C++代碼中使用C頭文件

    何在C++代碼中使用C頭文件。從C++調(diào)用C頭文件之前,C頭文件必須包含在extern
    發(fā)表于 10-19 09:24 ?3次下載

    高級(jí)C/C++編譯技術(shù)

    C/C++編譯技術(shù)
    發(fā)表于 12-04 17:19 ?20次下載

    何在Microsoft Visual Studio 2015中使用英特爾C++編譯

    此視頻演示了如何在Microsoft * Visual Studio 2015 *中使用英特爾?C++編譯
    的頭像 發(fā)表于 10-30 06:03 ?7095次閱讀

    OpenVINO? C++ API編寫(xiě)YOLOv8-Seg實(shí)例分割模型推理程序

    本文章將介紹使用 OpenVINO 2023.0 C++ API 開(kāi)發(fā)YOLOv8-Seg 實(shí)例分割(Instance Segmentation)模型的 AI 推理程序。本文 C++ 范例程序的開(kāi)發(fā)環(huán)境是 Windows + V
    的頭像 發(fā)表于 06-25 16:09 ?1869次閱讀
    用<b class='flag-5'>OpenVINO</b>? <b class='flag-5'>C++</b> API編寫(xiě)YOLOv8-Seg實(shí)例分割模型推理程序

    OpenVINO? C# API詳解與演示

    OpenVINO C# API 支持 NuGet 程序包安裝方式,這與 OpenVINO C++ 庫(kù)的安裝過(guò)程相比,更加簡(jiǎn)單。如果使用 Visual Studio 開(kāi)發(fā) AI
    的頭像 發(fā)表于 10-13 16:39 ?988次閱讀
    <b class='flag-5'>OpenVINO</b>?  <b class='flag-5'>C</b># API詳解與演示

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都覺(jué)得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的優(yōu)化與整理,已經(jīng)是非常貼近開(kāi)發(fā)的使用習(xí)慣與
    的頭像 發(fā)表于 07-26 09:20 ?1268次閱讀

    C7000優(yōu)化C/C++編譯

    電子發(fā)燒友網(wǎng)站提供《C7000優(yōu)化C/C++編譯器.pdf》資料免費(fèi)下載
    發(fā)表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯</b>器

    使用OpenVINO?條件編譯功能,壓縮Windows應(yīng)用體積

    來(lái)看下如何在 Windows 操作系統(tǒng)實(shí)現(xiàn)這一功能。 1. 環(huán)境安裝與配置 第一步,我們需要確保已經(jīng)在 Windows 安裝了 Visual Studio 編譯
    的頭像 發(fā)表于 01-13 10:26 ?297次閱讀
    使用<b class='flag-5'>OpenVINO</b>?條件<b class='flag-5'>編譯</b>功能,壓縮Windows應(yīng)用體積

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品
    主站蜘蛛池模板: 日本九九热在线观看官网 | 大学生高潮无套内谢视频 | 亚洲免费高清视频 | 迈开腿让我看下你的小草莓声音 | 777米奇色狠狠俺去啦 | 亚在线观看免费视频入口 | 国产精品嫩草影院一区二区三区 | 放射源分类办法 | 伊人影院综合 | china野外18:19| 牛牛免费视频 | 国产综合18久久久久久软件 | 99视频在线观看免费视频 | 久久久久99精品成人片三人毛片 | 亚洲色图在线观看视频 | 福利社影院 | 亚洲精品无码久久久久A片 亚洲精品无码国产爽快A片百度 | 秋霞伦理电影在2017韩国在线伦 | HEYZO精品无码一区二区三区 | 97精品伊人久久大香线蕉app | 国产成人免费a在线视频app | 中文字幕在线不卡精品视频99 | 妙玉被肉干高H潮文 | 最新国产av.在线视频 | 亚洲免费视频日本一区二区 | 久草大| 夜色88V精品国产亚洲AV | 11 13加污女qq看他下面 | 99视频福利| 年轻的母亲4线在线观看完整 | 激情内射亚洲一区二区三区 | 国产在线亚洲精品观 | 麻豆乱码一卡二卡三卡视频 | 久久久久久久久性潮 | 99视频这里只有精品国产 | 暖暖 视频 免费 高清 在线观看 | 少妇高潮A片特黄久久精品网 | 无码乱人伦一区二区亚洲一 | 久久婷婷电影网 | 国产免费网站看v片在线 | 国产精品人成在线播放新网站 |