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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

同步模式下OpenVINO2023 SDK的推理方式

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 2023-11-21 10:03 ? 次閱讀

同步模式推理流程

OpenVINO2023版本的SDK支持同步與異步推理模式相比之前OpenVINO2021版本更加的簡潔,易用。同時支持創(chuàng)建多個Requst然后基于多個Requst實現(xiàn)流水線方式的推理從而提升CPU推理的吞吐率。同步模式下OpenVINO2023 SDK的推理方式如下:

5c5a9dfe-880c-11ee-939d-92fbcf53809c.png

推理的流程如下:

while(true) {
  // capture frame
  // populate CURRENT InferRequest
  // Infer CURRENT InferRequest
  //this call is synchronous
  // display CURRENT result
}
以YOLOv5s的模型為例,在OpenVINO C++上同步推理的代碼實現(xiàn)如下:
// 創(chuàng)建IE插件, 查詢支持硬件設(shè)備
ov::Core core;
std::string model_onnx = "D:/python/yolov5-7.0/yolov5s.onnx";
auto model = core.read_model(model_onnx);
ov::CompiledModel cmodel = core.compile_model(model, "CPU");




// create infer request
auto request = cmodel.create_infer_request();
cv::Mat frame;
while (true) {
  bool ret = cap.read(frame);
  if (frame.empty()) {
    break;
  }
  image_detect(frame, request);
  char c = cv::waitKey(1);
  if (c == 27) { // ESC
    break;
  }
}
其中image_detect方法包含模型的圖像前處理、同步推理、后處理。其中同步推理:
// 前處理
// 開啟同步
request.infer();
// 后處理
運行結(jié)果如下:

異步模式推理流程

當(dāng)使用OpenVINO2023提供的Request對象的回調(diào)功能以后,我們可以把模型的后處理直接放到回調(diào)中去,這樣異步推理方式就變成只有圖像前處理+模型推兩個步驟了,然后通過創(chuàng)建兩個Request基于流水線方式,實現(xiàn)異步流水線模式推理方式,這個時候推理流程如下:

5c7663c2-880c-11ee-939d-92fbcf53809c.png

推理的流程如下:

while(true) {
  // capture frame
  // populate NEXT InferRequest
  // start NEXT InferRequest
  // this call is async and returns immediately
  // wait for the CURRENT InferRequest
  // display CURRENT result
  // swap CURRENT and NEXT InferRequests
}
首先需要創(chuàng)建兩個Request,然后分別設(shè)置它們的Callback部分代碼,主要是在Callback中完成后處理操作。這部分的代碼如下:
 1//創(chuàng)建IE插件,查詢支持硬件設(shè)備
 2ov::Corecore;
 3std::stringmodel_onnx="D:/python/yolov5-7.0/yolov5s.onnx";
 4automodel=core.read_model(model_onnx);
 5ov::CompiledModelcmodel=core.compile_model(model,"AUTO");
 6
 7//createinferrequest
 8autorequest=cmodel.create_infer_request();
 9autonext_request=cmodel.create_infer_request();
10std::exception_ptrexception_var;
11request.set_callback([&](std::exception_ptrex){
12if(ex){
13exception_var=ex;
14return;
15}
16det_boxes.clear();
17det_ids.clear();
18ov::Tensoroutput=request.get_output_tensor();
19constfloat*prob=(float*)output.data();
20constov::ShapeoutputDims=output.get_shape();
21size_tnumRows=outputDims[1];
22size_tnumCols=outputDims[2];
23
24//后處理,1x25200x85
25std::vectorboxes;
26std::vectorclassIds;
27std::vectorconfidences;
28cv::Matdet_output(numRows,numCols,CV_32F,(float*)prob);
29for(inti=0;i(i,4);
31if(confidence0.25)
41{
42floatcx=det_output.at(i,0);
43floatcy=det_output.at(i,1);
44floatow=det_output.at(i,2);
45floatoh=det_output.at(i,3);
46intx=static_cast((cx-0.5*ow)*x_factor);
47inty=static_cast((cy-0.5*oh)*y_factor);
48intwidth=static_cast(ow*x_factor);
49intheight=static_cast(oh*y_factor);
50cv::Rectbox;
51box.x=x;
52box.y=y;
53box.width=width;
54box.height=height;
55
56boxes.push_back(box);
57classIds.push_back(classIdPoint.x);
58confidences.push_back(score);
59}
60}
61
62//NMS
63std::vectorindexes;
64cv::NMSBoxes(boxes,confidences,0.25,0.45,indexes);
65for(size_ti=0;i
 依據(jù)上述的推理流程,最終調(diào)用執(zhí)行的代碼如下:
 1cv::Matframe,next_frame;
 2//dofirstframe
 3cap.read(frame);
 4async_image_detect(frame,request);
 5std::millisecondstout{50};
 6intcnt=0;
 7while(true){
 8boolret=cap.read(next_frame);
 9if(next_frame.empty()){
10break;
11}
12
13int64start=cv::getTickCount();
14//繼續(xù)異步
15if(cnt%2==0){
16async_image_detect(next_frame,next_request);
17request.wait_for(tout);
18}
19if(cnt%2==1){
20async_image_detect(next_frame,request);
21next_request.wait_for(tout);
22}
23for(size_tt=0;t(cv::getTickFrequency());
31putText(frame,cv::format("FPS:%.2f",1.0/t),cv::Point(20,40),cv::FONT_HERSHEY_PLAIN,2.0,cv::Scalar(255,0,0),2,8);
32cv::imshow("OpenVINO2023-YOLOv57.0異步推理",frame);
33charc=cv::waitKey(1);
34if(c==27){//ESC
35break;
36}
37next_frame.copyTo(frame);
38cnt++;
39}
40cv::waitKey(0);
41cv::destroyAllWindows();
42return0;
其中async_image_detect方法中實現(xiàn)了YOLOv5模型推理的圖像前處理與啟動異步推理模式
preprocess(frame)
// 開啟異步
request.start_async();

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    120

    瀏覽量

    25726
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2108

    瀏覽量

    73623
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68525
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1035

    瀏覽量

    45903
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    196

原文標(biāo)題:OpenVINO2023異步回調(diào)流水線提升推理吞吐率

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    OpenVINO2022版本Python API演示

    OpenVINO2022 版本的SDK在使用比之前版本簡單,而且功能比較豐富,特別是支持動態(tài)輸入設(shè)置,一次可以推理多張圖像;
    的頭像 發(fā)表于 07-22 09:18 ?2262次閱讀
    <b class='flag-5'>OpenVINO</b>2022版本Python API演示

    無法在AMD Ryzen CPU上運行OpenVINO trade怎么解決?

    在 AMD Ryzen CPU 上運行OpenVINO?推理。 收到錯誤消息: libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name (null)
    發(fā)表于 08-15 06:46

    如何在OpenVINO工具包中使用帶推理引擎的blob?

    無法確定如何在OpenVINO?工具包中使用帶推理引擎的 blob。
    發(fā)表于 08-15 07:17

    使用OpenVINO運行C++ API創(chuàng)建輸入tensor并執(zhí)行推理遇到的問題求解

    使用 OpenVINO? 運行時 C++ API 創(chuàng)建輸入 tensor 并執(zhí)行推理: ov::Tensor input_tensor = ov::Tensor(input_type
    發(fā)表于 08-15 08:22

    在Raspberry Pi上從源代碼構(gòu)建OpenVINO 2021.3收到錯誤怎么解決?

    在 Raspberry Pi 上從源代碼構(gòu)建 OpenVINO?2021.3。 運行OpenVINO?推理,并收到錯誤消息: ModuleNotFoundError:沒有
    發(fā)表于 08-15 08:24

    無法在OpenVINO trade Docker中運行OpenCV怎么解決?

    運行命令:docker run -ditu root:root --name=openvino -h \"openvino\" --privileged \\ --device
    發(fā)表于 08-15 08:29

    如何在OpenVINO trade工具包中推斷兩個圖像?

    無法在OpenVINO?工具包中對兩個輸入圖像運行推理
    發(fā)表于 08-15 08:24

    OpenVINO2022系統(tǒng)應(yīng)用指南

    推理層面支持同步與異步方式,異步方式支持通過回調(diào)實現(xiàn)后處理,實現(xiàn)視頻流水線支持,下面是一系列的基于異步+流水線方式
    的頭像 發(fā)表于 04-12 14:23 ?750次閱讀

    在英特爾開發(fā)者套件上用OpenVINO? 2023.0加速YOLOv8-Pose姿態(tài)估計模型

    benchmark_app 是 OpenVINO 工具套件自帶的 AI 模型推理計算性能測試工具,可以指定在不同的計算設(shè)備上,在同步或異步模式
    的頭像 發(fā)表于 06-15 17:41 ?1024次閱讀
    在英特爾開發(fā)者套件上用<b class='flag-5'>OpenVINO</b>? 2023.0加速YOLOv8-Pose姿態(tài)估計模型

    OpenVINO? C++ API編寫YOLOv8-Seg實例分割模型推理程序

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

    三種主流模型部署框架YOLOv8推理演示

    深度學(xué)習(xí)模型部署有OpenVINO、ONNXRUNTIME、TensorRT三個主流框架,均支持Python與C++的SDK使用。對YOLOv5~YOLOv8的系列模型,均可以通過C++推理實現(xiàn)模型
    的頭像 發(fā)表于 08-06 11:39 ?2735次閱讀

    OpenVINO場景文字檢測與文字識別教程

    OpenVINO是英特爾推出的深度學(xué)習(xí)模型部署框架,當(dāng)前最新版本是OpenVINO2023版本。OpenVINO2023自帶各種常見視覺任務(wù)支持的預(yù)訓(xùn)練模型庫Model Zoo,其中支持場景文字檢測
    的頭像 發(fā)表于 09-24 15:31 ?1564次閱讀
    <b class='flag-5'>OpenVINO</b>場景文字檢測與文字識別教程

    NNCF壓縮與量化YOLOv8模型與OpenVINO部署測試

    OpenVINO2023版本衍生出了一個新支持工具包NNCF(Neural Network Compression Framework – 神經(jīng)網(wǎng)絡(luò)壓縮框架),通過對OpenVINO IR格式模型的壓縮與量化更好的提升模型在OpenVI
    的頭像 發(fā)表于 11-20 10:46 ?1603次閱讀
    NNCF壓縮與量化YOLOv8模型與<b class='flag-5'>OpenVINO</b>部署測試

    如何快速下載OpenVINO Notebooks中的AI大模型

    OpenVINO Notebooks是Jupyter Notebook形式的OpenVINO范例程序大集合,方便開發(fā)者快速學(xué)習(xí)并掌握OpenVINO推理程序,并通過Copy&Paste
    的頭像 發(fā)表于 12-12 14:40 ?1121次閱讀
    如何快速下載<b class='flag-5'>OpenVINO</b> Notebooks中的AI大模型

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都覺得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的優(yōu)化與整理,已經(jīng)是非常貼近開發(fā)的使用習(xí)慣與
    的頭像 發(fā)表于 07-26 09:20 ?877次閱讀
    主站蜘蛛池模板: 巨爆乳中文字幕爆乳区| 国产欧美一区二区三区视频| 幼儿交1300部一区二区| qvod理论电影| 囯产精品久久久久免费蜜桃 | 色婷婷五月综合中文字幕| 国产精品免费观看视频播放| 国产精品亚洲欧美一区麻豆| 吉吉av电影| 美女拉开腿让男生桶到爽| 美女厕所撒尿ass| 国产国产人免费观看在线视频| 久久这里只精品国产99re66| 奇米精品一区二区三区在线观看| 天天久久影视色香综合网| 久久中文字幕亚洲精品最新| 国内2018年午夜福利5678| 久久天天婷婷五月俺也去| 日本高清不卡码无码v亚洲| 亚洲国产AV一区二区三区四区| 中文字幕按摩| 国产高清亚洲日韩字幕一区| 久久香蕉电影| 双手绑在床头调教乳尖| 在线精品视频成人网| 村上里沙快播| 久久精品中文字幕| 日日操天天操夜夜操| 一本道久在线综合色姐| 动漫美女性侵| 久久亚洲视频| 无人影院在线播放视频| 91麻豆精品| 国产乱码二卡3卡四卡| 男人天堂999| 亚洲男人天堂网| 扒开老师粉嫩的泬10P| 国内精品久久影视免费 | 精品人妻伦一二三区久久AAA片| 欧美性猛交AAA片免费观看| 亚洲欧美日韩一级特黄在线|