作者:Felix Lin
在大學兼課擔任業師教學的過程中,經常會被學生問到:『老師,我還不會訓練AI模型,對於資料蒐集也沒什麼概念,但我想要開發一個AI的應用程式,難道我一定要從頭開始苦學神經網路,才有辦法做出應用嗎?』這類的問題反映出現在許多大學生遇到的狀況,學科領域廣泛,無法系統化學習人工智慧,想用AI製作專題就顯得心力交瘁、力不從心。
若是在三、四年前,我可能也只能回答:是的,你要先學習與理解深度學習框架,才有辦法走到應用端。但現在我可以提供學生更棒的解答:你可以藉由OpenVINO Notebooks來學習AI的應用!
OpenVINO Notebooks專案
OpenVINO Notebooks專案是在去年(2021)發起的,全球各地的開發者網羅許多立即可用的範例程式,並以互動式的Jupyter Notebooks格式記錄程式碼與說明文字,便利於學習與使用OpenVINO。依照數字編排的Notebooks專案程式碼內容涵蓋四大項目:
- 0系列-起步入門:藉由幾個簡單指令就可以操作OpenVINO的強大功能。
- 1系列-模型轉換和最佳化:提供不同的範例教學將TensorFlow、PyTorch、PaddlePaddle、ONNX等格式的模型檔,轉換到OpenVINO的IR模型格式,並且量化不同的權重進行最佳化。
- 2系列-模型展示:涵蓋了Open Model Zoo各種育訓練模型以及paddlepaddle的GAN等模型的使用操作範例。
- 3系列-模型訓練:在TensorFlow或PyTroch框架中訓練好模型,並使用OpenVINO Toolkit的POT(Post-training Optimization Tool)與NNCF(Neural Network Compression Framework)等工具實作模型最佳化。
- 4系列-Live展示:從Webcam抓取影像資料做即時的推論預覽,打造了非常有趣的學習體驗!

涵蓋眾多的模型應用實例(gif)
安裝指引
OpenVINO Notebooks提供各種作業系統(Windows, Ubuntu, macOS, CentOS等)的安裝方式,筆者按照指引實際在Ubuntu 20.04上進行安裝,花費時間約30分鐘,過程沒有任何錯誤發生就順利安裝完成了!
如果擔心依賴套件和自己電腦中的Python模組產生衝突的話,也可以使用Docker容器的方式安裝,也是相當方便!同時部分範例也整合了Binder(類似Colab的線上Notebooks軟體),可以直接在線上進行操作。
此外,筆者也實測在Intel DevCloud上進行安裝,多數的Notebooks教學也是可以順利操作的喔!因此完全不用擔心在自己的開發環境上會有無法安裝的問題,這點對於新手學習者可以說是非常重要,因為許多入門者最怕就是還沒開始使用就在開發環境上受到當頭棒喝!

完整的跨平台安裝教學指引
Hello World
在安裝完成後不免俗要跑一次Hello World範例來確保我們環境與套件的安裝是正確的,再啟動Jupyter Lab之後找到001-hello-world.ipynb的筆記本開啟。直接選擇”Run All”,程式將會使用預先從Open Model Zoo下載好的MobileNetV3影像分類模型,載入OpenVINO Runtime(Inference Engine)進行推論。看到輸入範例圖片後得到”flat-coated retriever”,就代表執行推論成功了!

執行Hello World範例完成第一次推論(gif)
轉換與最佳化操作
大家都知道OpenVINO Toolkit的看家本領就是在模型的轉換與最佳化,在不降低模型本身推論的精度為基礎,進行推論效能的提升。我們實際使用Notebooks中102-pytorch-onnx-to-openvino範例來窺探一二,此範例中使用PyTorch的圖像分割預訓練模型FastSeg,分別轉換為ONNX格式、IR格式以及原始PyTorch模型格式進行推論。
可以看到不管使用何種模型推論出的影像分割結果幾乎都是差不多一致的,並沒有明顯優劣或是哪個模型準確度較差的情形。但在最終效能比較的段落,就可以明顯看出在筆者使用同樣的處理器進行推論,當中效能最好的4.07FPS(IR format + iGPU)與最差0.70FPS(PyTorch format),差了有近六倍之譜!
若再搭配量化權重或POT(Post-Training Optimization Tool)等工具,將能再進一步提高模型效能。實際影響的層面就是在終端執行AI應用時,有望將邊緣裝置的規格往下調整以節省成本,畢竟省更多錢就等於是賺更多是吧!

ONNX、IR、PyTorch不同模型格式的效能差異
Live Demo
最後我們體驗一下有趣的即時推論範例 -401-object-detection-webcam將從Open Model Zoo下載SSDLite MobileNetV2物件偵測模型,經過轉換為OpenVINO IR之後載入Runtime推論,輸入的影像資料由USB Webcam輸入,若不幸沒有Webcam可使用也可以改為使用影片檔案作為輸入來源。
筆者使用的處理器雖然是低功耗的Intel i7-8565U,但實際推論也能達到32FPS的即時輸出,這還是還沒啟動iGPU加速的情況,可以在compile模型時將推論裝置改為GPU來進一步提升效能。當然你也可以在過程中置換其他的物件偵測模型(如SSD_ResNet50等)進行推論,相互比較一下各模型的精確度與效能!

Live Demo推論(gif)
小結
礙於篇幅有限,沒辦法把OpenVINO Notebooks上所有的範例一一細數,剩下的部分就留給各位讀者們實際嘗試操作吧!然而可以確定的是,運用OpenVINO Notebooks進行系統化的學習,的確可以降低學習門檻,直達AI落地的應用大門!
在實測後相當能理解為什麼Intel OpenVINO Toolkit已將此專案作為官方的Tutorial學習教材,因為這就是學習Edge AI的最佳路徑!
(責任編輯:謝涵如)
- 【開箱實測】OpenVINO榨出單板極限,實作離線LLM AI助理! - 2024/07/25
- 【Maker 玩 AI】Grove Vision AI 模組讓 Arduino 也能玩 YOLO 模型 - 2023/12/26
- 【Maker 玩 AI】Edge Impulse 搭配 XIAO ESP32-S3 實作影像分類專題 - 2023/12/04
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!