在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

英特爾物聯網 ? 來源:英特爾物聯網 ? 作者:楊雪鋒 ? 2022-06-09 17:25 ? 次閱讀

1.1概述

在《基于OpenVINO 2022.1實現YOLOv5推理程序》中詳述了:

■ YOLOv5框架的安裝和如何導出YOLOv5.onnx模型

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

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

1.2什么是預處理API函數?

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

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

圖1-1 OpenVINO Runtime預處理API

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

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

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

圖1-2 預處理OpenCV vs OpenVINO

1.3數據預處理的典型操作

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

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

圖1-3 輸入數據 vs 模型輸入張量

從圖1-3中可見,數據預處理的典型操作有:

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

■改變輸入數據的精度:U8 → f32

■ 改變輸入數據的顏色通道順序:BGR → RGB

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

■ 歸一化數據:減去均值(mean),除以標準差(std)

1.4數據預處理API的使用方法

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

1 實例化PrePostProcessor對象;

2 申明輸入數據的信息

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

4 設置模型輸出張量的信息

5 定義預處理的具體步驟

6 將預處理步驟集成到模型

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

圖1-4 使用預處理API的流程

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

1.4.1 實例化PrePostProcessor對象

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

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

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

1.4.2 申明輸入數據的信息

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

代碼清單1-2 申明輸入數據的信息

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

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

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

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

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

1.4.4 設置模型輸出張量的信息

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

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

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

1.4.5 定義預處理的具體步驟

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

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

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

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

1.4.6 將預處理步驟集成到模型

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

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

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

1.4.7 將集成了預處理步驟的模型導出

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

代碼清單1-7 導出包含預處理步驟的模型

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

使用Netron打開導出模型,可以看到預處理步驟已經集成到執行圖中,如圖1-5所示。

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

圖1-5 預處理集成到執行圖中

導出集成預處理模型的完整源代碼:

1.5完整范例代碼和測試結果

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

表1-1 使用OpenVINO 2022.1預處理API和

使用OpenCV實現預處理的性能對比

操作系統:Windows10;Python版本:3.8;OpenVINO版本:2022.1

模型:yolov5s.onnx

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

執行命令, 將yolov5s.onnx轉換為FP16精度的yolov5s.xml后

mo --input_model yolov5s.onnx --data_type FP16

操作系統:Windows10;Python版本:3.8;OpenVINO版本:2022.1

模型:yolov5s.xml @ FP16

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

1.6總結

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

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

原文標題:使用OpenVINO? 預處理API進一步提升YOLOv5推理性能 | 開發者實戰

文章出處:【微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

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

    關注

    61

    文章

    9964

    瀏覽量

    171776
  • API
    API
    +關注

    關注

    2

    文章

    1501

    瀏覽量

    62019
  • 預處理
    +關注

    關注

    0

    文章

    33

    瀏覽量

    10480

原文標題:使用OpenVINO? 預處理API進一步提升YOLOv5推理性能 | 開發者實戰

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    諧波的概念及應用

    本文簡單介紹了諧波的概念及應用。
    的頭像 發表于 10-18 14:14 ?465次閱讀
    諧波的<b class='flag-5'>概念及</b>應用

    特瑞仕DC/DC轉換器實機特性比較工具的特征和使用方法

    本篇文章說明了特瑞仕在官網公開的實機特性比較工具的特征和使用方法
    的頭像 發表于 09-26 17:03 ?2001次閱讀
    特瑞仕DC/DC轉換器實機特性比較<b class='flag-5'>工具</b>的特征和<b class='flag-5'>使用方法</b>

    使用OpenVINO C# API部署YOLO-World實現實時開放詞匯對象檢測

    的快速準確識別,并通過AR技術將虛擬元素與真實場景相結合,為用戶帶來沉浸式的交互體驗。在本文中,我們將結合OpenVINO C# API使用最新發布的OpenVINO 2024.0部署 YOLO-World實現實時開放詞匯對象檢
    的頭像 發表于 08-30 16:27 ?654次閱讀
    使用<b class='flag-5'>OpenVINO</b> C# <b class='flag-5'>API</b>部署YOLO-World實現實時開放詞匯對象檢測

    S參數的概念及應用

    電子發燒友網站提供《S參數的概念及應用.pdf》資料免費下載
    發表于 08-12 14:29 ?0次下載

    機器學習中的數據預處理與特征工程

    在機器學習的整個流程中,數據預處理與特征工程是兩個至關重要的步驟。它們直接決定了模型的輸入質量,進而影響模型的訓練效果和泛化能力。本文將從數據預處理和特征工程的基本概念出發,詳細探討這兩個步驟的具體內容、
    的頭像 發表于 07-09 15:57 ?420次閱讀

    TensorFlow的定義和使用方法

    數據流圖,從而簡化機器學習模型的構建、訓練和部署。自2015年11月開源以來,TensorFlow迅速成為數據科學家、軟件開發者以及教育工作者廣泛使用的工具,廣泛應用于圖像識別、自然語言處理、推薦系統等多個領域。本文將深入解讀TensorFlow的定義、
    的頭像 發表于 07-02 14:14 ?780次閱讀

    OpenVINO C# API在intel平臺部署YOLOv10目標檢測模型

    的模型設計策略,從效率和精度兩個角度對YOLOs的各個組成部分進行了全面優化,大大降低了計算開銷,增強了性能。在本文中,我們將結合OpenVINO C# API使用最新發布的OpenVINO 2024.1部署YOLOv10目標檢
    的頭像 發表于 06-21 09:23 ?1037次閱讀
    用<b class='flag-5'>OpenVINO</b> C# <b class='flag-5'>API</b>在intel平臺部署YOLOv10目標檢測模型

    可編程電源使用方法

    可編程電源使用方法 可編程電源使用方法 摘要:本文詳細介紹了可編程電源的使用方法,包括其基本概念、主要功能、選擇原則、操作步驟、注意事項以及實際應用案例,旨在幫助讀者全面了解可編程電源
    的頭像 發表于 06-10 15:29 ?1011次閱讀

    信號的預處理包括哪些環節

    的各個環節,包括信號的采集、預濾波、采樣、量化、編碼、去噪、特征提取等。 信號采集 信號采集是信號預處理的第一步,它涉及到從實際物理現象中獲取信號的過程。信號采集的方法取決于信號的類型和來源,例如聲音、圖像、溫
    的頭像 發表于 06-03 10:35 ?3020次閱讀

    簡單兩步使用OpenVINO?搞定Qwen2的量化與部署任務

    英特爾 OpenVINO? 工具套件是一款開源 AI 推理優化部署的工具套件,可幫助開發人員和企業加速生成式人工智能 (AIGC)、大語言模
    的頭像 發表于 04-26 09:39 ?1677次閱讀
    簡單兩步使用<b class='flag-5'>OpenVINO</b>?搞定Qwen2的量化與部署任務

    簡單三步使用OpenVINO?搞定ChatGLM3的本地部署

    英特爾 OpenVINO? 工具套件是一款開源 AI 推理優化部署的工具套件,可幫助開發人員和企業加速生成式人工智能 (AIGC)、大語言模
    的頭像 發表于 04-03 18:18 ?2078次閱讀
    簡單三步使用<b class='flag-5'>OpenVINO</b>?搞定ChatGLM3的本地部署

    基于英特爾哪吒開發者套件平臺來快速部署OpenVINO Java實戰

    OpenVINO 工具套件基于OneAPI開發,可以加快高性能計算機視覺和深度學習應用開發速度的工具套件,適用于從邊緣到云的各種英特爾計算平
    的頭像 發表于 03-21 18:24 ?1496次閱讀
    基于英特爾哪吒開發者<b class='flag-5'>套件</b>平臺來快速部署<b class='flag-5'>OpenVINO</b> Java實戰

    OpenVINO? Java API應用RT-DETR做目標檢測器實戰

    本文將從零開始詳細介紹環境搭建的完整步驟,我們基于英特爾開發套件AIxBoard為硬件基礎實現了Java在Ubuntu 22.04系統上成功使用OpenVINO? Java API,并且成功運行了RT-DETR實現實時端到端目標
    的頭像 發表于 03-18 15:04 ?808次閱讀
    <b class='flag-5'>OpenVINO</b>? Java <b class='flag-5'>API</b>應用RT-DETR做目標檢測器實戰

    C語言中的預處理

    所有的預處理器命令都是以井號(#)開頭。它必須是第一個非空字符,為了增強可讀性,預處理器指令應從第一列開始。
    發表于 03-01 12:16 ?917次閱讀
    C語言中的<b class='flag-5'>預處理</b>器

    如何在MacOS上編譯OpenVINO C++項目呢?

    英特爾公司發行的模型部署工具 OpenVINO 模型部署套件,可以實現在不同系統環境下運行,且發布的 OpenVINO 2023 最新版目前已經支持 MacOS 系統并同時支持在蘋果
    的頭像 發表于 01-11 18:07 ?908次閱讀
    如何在MacOS上編譯<b class='flag-5'>OpenVINO</b> C++項目呢?
    主站蜘蛛池模板: 夜夜狠狠操| 狠狠干干| 992tv国产精品福利在线| 五月综合久久| 激情五月综合婷婷| 男人的天堂222eee| 国产高清视频在线免费观看| 色综合色综合色综合色综合| 亚洲伦理一区| 欧美一区二区三区免费| 天天爽天天爽| 国模小丫大尺度啪啪人体| 免费在线观看a| 免费又爽又黄的禁片1000部 | 末发育女一区二区三区| 欧美人成在线观看| 欧美午夜性春猛交bbb| 成年人三级视频| 国产资源在线观看| 午夜看黄| 三级免费黄录像| 天天天天天天操| av福利网址网站| 国产精品三级在线播放| 欧美黄色精品| 人人插人人插| 久久99精品国产麻豆宅宅| 亚洲国产成人久久77| 99久久99久久精品免费看子伦| 一区二区三区在线观看免费| 欧美艹逼视频| 福利毛片| 日本三级日本三级日本三级极| 色综合久久98天天综合| 亚洲综合伊人| 夜夜爽天天干| 最新四虎4hu影库地址在线| l欧美18一19sex性| 男人j进人女人j 的视频| 国产资源在线观看| 亚洲综合国产一区二区三区|