女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    10195

    瀏覽量

    174666
  • API
    API
    +關注

    關注

    2

    文章

    1613

    瀏覽量

    64015
  • 預處理
    +關注

    關注

    0

    文章

    33

    瀏覽量

    10651

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何部署OpenVINO?工具套件應用程序?

    編寫代碼并測試 OpenVINO? 工具套件應用程序后,必須將應用程序安裝或部署到生產環境中的目標設備。 OpenVINO?部署管理器指南包含有關如何輕松使用部署管理器將應用程序打包并
    發表于 03-06 08:23

    構建開源OpenVINO?工具套件后,模型優化器位于何處呢?

    構建開源OpenVINO?工具套件后,模型優化器位于何處?
    發表于 03-06 08:18

    是否有用于OpenVINO?工具套件的配置文件工具呢?

    是否有用于OpenVINO?工具套件的配置文件工具
    發表于 03-06 07:29

    如何確定在OpenVINO? Toolkit中預處理支持的輸入顏色格式?

    無法確定在 OpenVINO? Toolkit 中預處理支持的輸入顏色格式。
    發表于 03-06 07:28

    在不安裝OpenCV的情況下是否可以使用OpenVINO?工具套件

    無法在不安裝 OpenCV 的情況下確定是否可以使用OpenVINO?工具套件
    發表于 03-06 07:12

    怎么卸載具有FreeLibrary功能OpenVINO?工具套件DLL?

    無法卸載具有 FreeLibrary* 功能OpenVINO?工具套件 DLL
    發表于 03-06 07:11

    請問OpenVINO?工具套件中的驗證應用程序是什么?

    OpenVINO?工具套件中的驗證應用程序是什么?
    發表于 03-06 06:54

    使用工具套件2020.2從ncappzoo運行模型和演示OpenVINO?報錯怎么解決?

    使用工具套件 2020.2 從 ncappzoo 運行模型和演示OpenVINO?報錯
    發表于 03-05 10:22

    OpenVINO?工具套件插件對YOLOv5s模型和scatterUpate層的支持范圍是什么?

    OpenVINO?工具套件插件對YOLOv5s模型和scatterUpate層的支持范圍是什么?
    發表于 03-05 10:16

    如何修復IR版本與OpenVINO?工具套件版本不匹配問題?

    執行 Raspberry Pi 4 OpenVINO?工具套件示例來自RPI4_NCS2并遇到以下錯誤: DeprecationWarning:InferRequest 的“輸出”屬性被棄用。相反
    發表于 03-05 09:04

    已安裝OpenVINO?工具套件,無法運行是怎么回事?

    已安裝OpenVINO?工具套件 無法運行行 demo_squeezenet_download_convert_run.bat 和 demo_benchmark.bat 演示。 收到的錯誤
    發表于 03-05 07:43

    將英特爾?獨立顯卡與OpenVINO?工具套件結合使用時,無法運行推理怎么解決?

    使用英特爾?獨立顯卡與OpenVINO?工具套件時無法運行推理
    發表于 03-05 06:56

    Sapphire Rapids與OpenVINO?工具套件是否兼容?

    無法確定 Sapphire Rapids 與 OpenVINO? 工具套件的兼容性
    發表于 03-05 06:55

    如何下載 OpenVINO? 工具套件

    需要下載用于開發工作的 OpenVINO? 工具套件
    發表于 03-05 06:49

    為什么Caffe模型可以直接與OpenVINO?工具套件推斷引擎API一起使用,而無法轉換為中間表示 (IR)?

    推斷 Caffe 模型直接基于 英特爾? 神經電腦棒 2 (英特爾? NCS2)。 無法確定為什么 Caffe 模型可以直接與OpenVINO?工具套件推斷引擎 API 一起使用
    發表于 03-05 06:31