|

如何在Google Colab上運行OpenVINO Open Model Zoo範例

   

Intel OpenVINO 從2018年5月發行至今已更新20多個版次,目前最新版次為 2023.3 LTS。期間有很多重大革新,這也讓很多不錯的功能可能消失或以其它方式出現。如2021.4版後開始提供Jupyter Notebook (Python) 格式範例讓大家更容易學習。2023.0版後開始提供 Google Colab 格式的範例,讓大家免本地安裝可直接在雲端體驗 OpenVINO。不過也有像 Open Model Zoo (OMZ) 之類方便學習、測試各種預訓練模型的項目及相關工具被移出。主要是因為自2023.1版後開始支援直接讀取更多框架模型及神經網路壓縮架構(Neural Network Compression Framework, NNCF)取代原有模型優化器(Model Optimizer, MO)。

目前 OpenVINO Notebooks 範例編號101~128提供了各種常見框架轉成OpenVINO專屬 IR(XML+BIN) 格式的範例,如TensorFlow、PyTorch、PaddlePaddel 等,甚至 Hugging Face 格式。當然這裡也包含了OMZ的轉換範例(104-model-tools)。不過這個範例比較適合單獨運行、預先轉檔工作,當想像以往 OMZ Demos 下的應用範例,要整合轉檔加執行時,就會遇到一些小麻煩。

雖然這些OMZ的範例已被淡出,但如果大家想直接在 Google Colab 上直接運行時,這篇文章應該可以給大家一些幫助。以下就以OMZ 影像分類(Classification) Public Pre-Trained Models為例,說明如何以 Colab 完成直接運行。

OpenVINO Open Model Zoo (OMZ) & Tools

Intel OpenVINO 自20018發行後 Open Model Zoo (OMZ) 一直提供很豐富的預訓練模型庫,很方便進行AI應用的實驗,其中包含三大部份。

  • Intel's Pre-Trained

    Intel 提供之預設訓練模型,包括物件偵測、物件辨識、影像分割、姿態偵測、行為分析、語音處理、時間預測等數十種模型。此部份已直接轉成IR格式(Bin + Xml),可直接載入運行。

  • Public Pre-Trained

    常用公開預訓練模型,有數十種應用及數百個模型,下載後需依原始框架格式(如TensorFlow, PyTorch, Caffe等)轉換到IR格式才能載入運行。

  • Demos

    提供整合型範例,使用單一或組合不同模型完成特定功能,搭配簡易顯示畫面,更方便使用者理解。

另外亦提供OMZ相關工具,方便使用者處理模型轉檔、優化及效能評估,主要包括下列四項工具。

隨著 OpenVINO 版本的迭代更新,在2023.1版後, OMZ 及相關工具在官方說明文件中就移到「舊版功能(Legacy Features)」,不再持續維護。使用 pip install openvino 也不再預安裝OMZ相關工具,需改用 pip install openvino-dev 才能取得。

舊版 Open Model Zoo 相關文件及範例仍於開源於 Github 上,有需要可行下載研究。另外原始模型及說明文件亦可從「官方共用區」中取得。

OpenVINO Notebooks

為了讓大家更容易使用 OpenVINO ,自2021.4版後就開始提供 Jupyter Notebook 格式的範例程式庫 Notebooks ,主要分為五大部份。

  • 第一步(First steps)(編號001~099)
  • 轉換與優化(Covert & Optimize)(編號100~199)
  • 模型展示(Model Demos)(編號200~299)
  • 模型訓練(Model Training)(編號300~399)
  • 即時展示(Live Demos)(編號400~499)

2022.1版後部份範例已支援直接在 Binder 線上運行。 2023.0版後除增加更多範例外,亦有部份範例支援直接在 Google Colab 環境下安裝 OpenVINO 及運行。不過目前 Notebooks 範例中並未納入原先 OMZ Pri-Trained Model 及 Demos 範例,如有需要可參考下列作法。

OMZ Classification Public Pre-Trained Models

目前 OMZ Public Pre-Trained Models提供了常見的預訓練模型有數十種應用及數百個模型,單就影像分類來看就有超過五十種,詳如文末附錄。

以往可透過Demos下的「Classification Python* Demo」在命令列運行,來呼叫這五十多種影像分類模型。當它利用 omz_downloader 下載模型時會一併把對應的參數設定好。可是這樣的作法並無法適用在 Colab 環境下,所以這裡可簡單把工作流程改成下列步驟,就能完整運行影像分類。

  1. 安裝openvino-dev
  2. 導入必要模組
  3. 下載預訓練模型
  4. 模型轉換
  5. 指定推論裝置
  6. 將模型載入裝置並編譯
  7. 下載測試資料

更完整的細部程式說明可直接點擊下列連結,進入Colab直接運行。大家可試著修改模型名稱及指定對應設定來實驗一下。

Colab完整範例

小結

這個範例僅示範了OMZ影像分類用法,這只是一個開始,大家可試著延伸到其它類型範例,後續會持續安排將Demos下的範例轉至Colab,讓大家更方便學習。

Intel, OpenVINO Toolkit Document

Intel, OpenVINO Document - Documentation - Legacy Features - Open Model Zoo (2023.3 LTS)

Intel, Github - openvinotoolkit / openvino_notebooks

Intel, OpenVINO Document - Documentation - Legacy Features - Open Model Zoo - Public Pre-Training Models (2023.3 LTS)

Intel, OpenVINO Document - Documentation - Legacy Features - Model Optimizer / Conversion API (2023.3 LTS)

Intel, Github - openvinotoolkit / open_model_zoo

Intel, stroage for open model zoo

Intel, OpenVINO Document - Classification Python* Demo

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

許 哲豪

Author: 許 哲豪

工作經驗超過二十年,主要專長機電整合、電腦視覺、人機互動、人工智慧、專利分析及新創輔導。曾任機電整合工程師、機器視覺研發副理、技轉中心商業發展經理。目前擔任多家公司兼任技術顧問並積極推廣實境互動相關技術。 主持歐尼克斯實境互動工作室(OmniXRI):http://omnixri.blogspot.com Edge AI Taiwan邊緣智能交流區:https://www.facebook.com/groups/edgeaitw/

Share This Post On

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *