91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

OpenVINO工具套件預(yù)處理API的概念及使用方法

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 作者:楊雪鋒 ? 2022-06-09 17:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.1概述

在《基于OpenVINO 2022.1實現(xiàn)YOLOv5推理程序》中詳述了:

■ YOLOv5框架的安裝和如何導(dǎo)出YOLOv5.onnx模型

■ OpenVINO 2022.1的安裝以及如何編寫YOLOv5模型的推理程序

本文將介紹如何使用OpenVINO 2022.1的預(yù)處理API,進一步提升YOLOv5模型的推理計算性能。

1.2什么是預(yù)處理API函數(shù)?

OpenVINO 2022.1之前版本不提供OpenVINO Runtime原生的用于數(shù)據(jù)預(yù)處理的API函數(shù)1 ,如圖1-1所示,開發(fā)者必須通過第三方庫(例如:OpenCV)來實現(xiàn)數(shù)據(jù)預(yù)處理。

4f0aec8c-e7d4-11ec-ba43-dac502259ad0.png

圖1-1 OpenVINO Runtime預(yù)處理API

假設(shè)沒有預(yù)處理API,那么輸入數(shù)據(jù)的預(yù)處理操作只能放在CPU上實現(xiàn),CPU完成數(shù)據(jù)預(yù)處理后,再將預(yù)處理后的數(shù)據(jù)傳給iGPU、VPU等AI加速計算設(shè)備進行推理計算。

有了預(yù)處理API后,就能將預(yù)處理操作集成到在模型執(zhí)行圖中,這樣iGPU、VPU 或即將發(fā)布的Intel獨立顯卡都能進行數(shù)據(jù)預(yù)處理,無需依賴CPU,提高了執(zhí)行效率,如圖1-2所示。

4f224c60-e7d4-11ec-ba43-dac502259ad0.png

圖1-2 預(yù)處理OpenCV vs OpenVINO

1.3數(shù)據(jù)預(yù)處理的典型操作

由于輸入數(shù)據(jù)的Shape、Precision等特征,與模型輸入張量的要求不一致,所以需要通過預(yù)處理,將輸入數(shù)據(jù)按照模型輸入張量的要求進行轉(zhuǎn)換,如圖1-3所示。

4f52176a-e7d4-11ec-ba43-dac502259ad0.png

圖1-3 輸入數(shù)據(jù) vs 模型輸入張量

從圖1-3中可見,數(shù)據(jù)預(yù)處理的典型操作有:

■改變輸入數(shù)據(jù)的形狀:[720, 1280,3] → [1, 3, 640, 640]

■改變輸入數(shù)據(jù)的精度:U8 → f32

■ 改變輸入數(shù)據(jù)的顏色通道順序:BGR → RGB

■改變輸入數(shù)據(jù)的布局(layout):HWC → NCHW

■ 歸一化數(shù)據(jù):減去均值(mean),除以標(biāo)準(zhǔn)差(std)

1.4數(shù)據(jù)預(yù)處理API的使用方法

對應(yīng)數(shù)據(jù)預(yù)處理的典型操作,OpenVINO 工具套件預(yù)處理API提供了相應(yīng)的類,方便開發(fā)者快速使用,其主要流程有6步2 ,如圖1-4所示,依次是:

1 實例化PrePostProcessor對象;

2 申明輸入數(shù)據(jù)的信息

3 指定模型的數(shù)據(jù)布局(layout)

4 設(shè)置模型輸出張量的信息

5 定義預(yù)處理的具體步驟

6 將預(yù)處理步驟集成到模型

4f7a257a-e7d4-11ec-ba43-dac502259ad0.png

圖1-4 使用預(yù)處理API的流程

本文將按照上述順序依次介紹。

1.4.1 實例化PrePostProcessor對象

實例化PrePostProcessor對象的Python代碼,如代碼清單1-1所示。

代碼清單1-1 實例化PrePostProcessor對象

4f8b9cec-e7d4-11ec-ba43-dac502259ad0.png

1.4.2 申明輸入數(shù)據(jù)的信息

申明輸入數(shù)據(jù)的信息的Python代碼,如代碼清單1-2所示。

代碼清單1-2 申明輸入數(shù)據(jù)的信息

4fa39ef0-e7d4-11ec-ba43-dac502259ad0.png

1.4.3 指定模型的數(shù)據(jù)布局(layout)

指定模型的數(shù)據(jù)布局(layout) 的Python代碼,如代碼清單1-3所示。

代碼清單1-3 指定模型的數(shù)據(jù)布局(layout)

4fc1fa6c-e7d4-11ec-ba43-dac502259ad0.png

1.4.4 設(shè)置模型輸出張量的信息

設(shè)置模型輸出張量的信息的Python代碼,如代碼清單1-4所示。

代碼清單1-4 設(shè)置模型輸出張量的信息

4fdccd38-e7d4-11ec-ba43-dac502259ad0.png

1.4.5 定義預(yù)處理的具體步驟

定義預(yù)處理的具體步驟的Python代碼,如代碼清單1-5所示。

代碼清單1-5 定義預(yù)處理的具體步驟

4fef0b1a-e7d4-11ec-ba43-dac502259ad0.png

50002544-e7d4-11ec-ba43-dac502259ad0.png

1.4.6 將預(yù)處理步驟集成到模型

將預(yù)處理步驟集成到模型的Python代碼,如代碼清單1-6所示。

代碼清單1-6 將預(yù)處理步驟集成到模型

502210f0-e7d4-11ec-ba43-dac502259ad0.png

1.4.7 將集成了預(yù)處理步驟的模型導(dǎo)出

使用serialize()函數(shù),可以將集成了預(yù)處理步驟的模型導(dǎo)出,方便后續(xù)調(diào)用,如代碼清單1-7所示。

代碼清單1-7 導(dǎo)出包含預(yù)處理步驟的模型

503df586-e7d4-11ec-ba43-dac502259ad0.png

使用Netron打開導(dǎo)出模型,可以看到預(yù)處理步驟已經(jīng)集成到執(zhí)行圖中,如圖1-5所示。

50524f54-e7d4-11ec-ba43-dac502259ad0.png

圖1-5 預(yù)處理集成到執(zhí)行圖中

導(dǎo)出集成預(yù)處理模型的完整源代碼:

1.5完整范例代碼和測試結(jié)果

本文隨附使用OpenVINO 2022.1預(yù)處理API實現(xiàn)YOLOv5s推理程序的完整源代碼,參見:https://gitee.com/ppov-nuc/yolov5_infer/blob/main/infer_with_openvino_preprocess.py。

表1-1 使用OpenVINO 2022.1預(yù)處理API和

使用OpenCV實現(xiàn)預(yù)處理的性能對比

操作系統(tǒng):Windows10;Python版本:3.8;OpenVINO版本:2022.1

模型:yolov5s.onnx

50864836-e7d4-11ec-ba43-dac502259ad0.png

執(zhí)行命令, 將yolov5s.onnx轉(zhuǎn)換為FP16精度的yolov5s.xml后

mo --input_model yolov5s.onnx --data_type FP16

操作系統(tǒng):Windows10;Python版本:3.8;OpenVINO版本:2022.1

模型:yolov5s.xml @ FP16

50a22038-e7d4-11ec-ba43-dac502259ad0.png

1.6總結(jié)

本文完整介紹了什么是OpenVINO工具套件預(yù)處理API和為什么推薦使用預(yù)處理API將預(yù)處理操作集成到模型執(zhí)行圖中,然后詳細介紹了使用步驟并提供了完整范例源代碼。

通過運行源代碼,可以看到,使用了OpenVINO 工具套件預(yù)處理API,使輸入數(shù)據(jù)預(yù)處理操作不再依賴CPU,可以由推理設(shè)備(如GPU/VPU)完成,提高了推理計算效率,減少了運行時間。

原文標(biāo)題:使用OpenVINO? 預(yù)處理API進一步提升YOLOv5推理性能 | 開發(fā)者實戰(zhàn)

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

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

    關(guān)注

    61

    文章

    10301

    瀏覽量

    180465
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    2372

    瀏覽量

    66789
  • 預(yù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    10814

原文標(biāo)題:使用OpenVINO? 預(yù)處理API進一步提升YOLOv5推理性能 | 開發(fā)者實戰(zhàn)

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    淘寶搜索API:關(guān)鍵詞優(yōu)化工具,提升曝光率!

    搜索API的使用、關(guān)鍵詞優(yōu)化原理、工具開發(fā)方法以及實際應(yīng)用策略,幫助您高效提升曝光率。 1. 淘寶搜索API概述 淘寶搜索API是淘寶開放平
    的頭像 發(fā)表于 01-05 15:38 ?196次閱讀
    淘寶搜索<b class='flag-5'>API</b>:關(guān)鍵詞優(yōu)化<b class='flag-5'>工具</b>,提升曝光率!

    愛回收平臺價格查詢API接口詳解

    ? 在愛回收平臺上,用戶經(jīng)常需要根據(jù)品牌ID和項目ID查詢相關(guān)商品或服務(wù)的價格。為此,平臺提供了一個簡潔高效的API接口,幫助開發(fā)者或第三方應(yīng)用實現(xiàn)自動化價格查詢。本文將詳細介紹這個API使用方法
    的頭像 發(fā)表于 11-19 14:57 ?575次閱讀
    愛回收平臺價格查詢<b class='flag-5'>API</b>接口詳解

    教你如何使用API

    一、了解API API(Application Programming Interface)即應(yīng)用程序編程接口,是一種使不同的應(yīng)用程序能共享數(shù)據(jù)和功能的軟件工具。API可以通過網(wǎng)絡(luò)、軟
    的頭像 發(fā)表于 11-09 17:48 ?1312次閱讀

    教你如何使用API接口獲取數(shù)據(jù)!

    一、了解API API(Application Programming Interface)即應(yīng)用程序編程接口,是一種使不同的應(yīng)用程序能共享數(shù)據(jù)和功能的軟件工具。API可以通過網(wǎng)絡(luò)、軟
    的頭像 發(fā)表于 11-03 09:14 ?589次閱讀

    全網(wǎng)最全面介紹拼多多API接口指南

    ? ?在電商領(lǐng)域,拼多多作為領(lǐng)先的平臺,提供了豐富的API接口,幫助開發(fā)者實現(xiàn)商品管理、訂單處理、用戶交互等功能。本文將從零開始,全面介紹拼多多API使用方法、核心接口、調(diào)用示例和注
    的頭像 發(fā)表于 10-29 16:07 ?953次閱讀
    全網(wǎng)最全面介紹拼多多<b class='flag-5'>API</b>接口指南

    鋰電池制造 | 電芯預(yù)處理工藝的步驟詳解

    電芯預(yù)處理是鋰電池包制造的首要工序,無論是新能源汽車的續(xù)航穩(wěn)定性,還是儲能系統(tǒng)的循環(huán)壽命,其根基都可追溯至預(yù)處理工序?qū)﹄娦疽恢滦缘陌芽兀浜诵脑谟谕ㄟ^系統(tǒng)檢測與篩選消除量產(chǎn)電芯的性能差異,為后續(xù)組裝
    的頭像 發(fā)表于 08-11 14:53 ?1540次閱讀
    鋰電池制造 | 電芯<b class='flag-5'>預(yù)處理</b>工藝的步驟詳解

    電商API日志分析的實用工具

    、優(yōu)化用戶體驗、檢測異?;顒樱⑻嵘w業(yè)務(wù)效率。然而,海量日志數(shù)據(jù)的管理和分析需要高效的工具支持。本文將介紹幾種實用的電商API日志分析工具,并逐步解釋其應(yīng)用方法,幫助您快速上手。
    的頭像 發(fā)表于 07-23 15:50 ?654次閱讀
    電商<b class='flag-5'>API</b>日志分析的實用<b class='flag-5'>工具</b>

    無法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?

    將 Tensorflow Lite 模型轉(zhuǎn)換為 OpenVINO? 格式。 遇到的錯誤: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    發(fā)表于 06-25 08:27

    請問如何優(yōu)化OpenVINO?工具套件中的內(nèi)存使用?

    運行OpenVINO?推斷時找不到優(yōu)化內(nèi)存使用情況的方法。
    發(fā)表于 06-25 06:56

    無法將Openvino? 2025.0與onnx運行時Openvino? 執(zhí)行提供程序 1.16.2 結(jié)合使用,怎么處理?

    使用OpenVINO?與英特爾 i5-8500 CPU 和超核處理器 630 iGPU 一起部署模型。 使用了 Microsoft.ML.OnnxRuntime.OpenVino
    發(fā)表于 06-24 06:31

    odf光纖配線架使用方法

    ODF光纖配線架的使用方法主要包括以下幾個步驟: 一、準(zhǔn)備工作 工具和材料準(zhǔn)備:準(zhǔn)備好熔接機、光纖切割刀、光纖剝皮鉗、光纖清潔工具(如清潔筆、無塵布)、光纖跳線、光纖熔接套管、扎帶等工具
    的頭像 發(fā)表于 05-22 10:11 ?1544次閱讀

    Intel OpenVINO? Day0 實現(xiàn)阿里通義 Qwen3 快速部署

    本文將以 Qwen3-8B 為例,介紹如何利用 OpenVINO 的 Python API 在英特爾平臺(GPU, NPU)Qwen3 系列模型。
    的頭像 發(fā)表于 05-11 11:36 ?1717次閱讀
    Intel <b class='flag-5'>OpenVINO</b>? Day0 實現(xiàn)阿里通義 Qwen3 快速部署

    OpenVINO C#如何運行YOLO11實例分割模型

    代碼是我在OpenVINO-CSharp-API作者開源的YOLOv8對象檢測的代碼基礎(chǔ)上修改而成。
    的頭像 發(fā)表于 04-29 09:30 ?2049次閱讀
    <b class='flag-5'>OpenVINO</b> C#如何運行YOLO11實例分割模型

    如何在Ollama中使用OpenVINO后端

    Ollama 和 OpenVINO 的結(jié)合為大型語言模型(LLM)的管理和推理提供了強大的雙引擎驅(qū)動。Ollama 提供了極簡的模型管理工具鏈,而 OpenVINO 則通過 Intel 硬件(CPU
    的頭像 發(fā)表于 04-14 10:22 ?1541次閱讀

    FPGA Verilog HDL語法之編譯預(yù)處理

    Verilog HDL語言和C語言一樣也提供了編譯預(yù)處理的功能。“編譯預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發(fā)表于 03-27 13:30 ?1438次閱讀
    FPGA Verilog HDL語法之編譯<b class='flag-5'>預(yù)處理</b>