作者:Felix Lin
Intel DevCloud開發者工具是一個免費的雲端的開發平台,它已預裝了OpenVINO™ Toolkit (Open Visual Inference and Neural network Optimization)方便開發AI應用程式。它是一個雲端的JupyterLab服務,旗下三個產品DevCloud for the Edge、DevCloud for oneAPI、DevCloud for FPGA,分別著重讓開發者可以在雲端的虛擬機上評估模型推論、神經網路訓練研究以及客製化FPGA加速晶片應用。
特別值得一提的是,這些服務目前完全不需要花費任何一毛錢,即可盡情享用到高效能的運算能力。開發者們大可好好運用這些資源來學習並應用AI,本篇文章將使用DevCloud for the Edge,在簡單的四個步驟之中,完成一個Object Detection物件偵測的DEMO操作。
一、準備動作
在註冊完成登入DevCloud for the Edge之後,選擇Get Started進入,即可看到五個頁籤,分別為Home、Learn、Build、Optimize以及Launch,分別在AI應用的四個階段:學習、建立模型、最佳化模型以應用上,提供相當實用的文件與素材,入門者建議可以試著運行Learn頁籤裡面的Tutorials與Sample Applications,裡面有三十餘的非常豐富的教學內容。
我們這次的主要目的則是在DevCloud上運行open model zoo的範例,首先我們要點選build頁籤當中的Connect and Create來啟動伺服器,等待約三十秒的時間之後即會轉跳到DevCloud的後台介面。
進入到DevCloud後台介面可以看到目前顯示在files頁籤,是類似檔案管理員以階層的方式看到自己在伺服器上的所有檔案,預設伺服器在建立之後即會產生一個Reference-samples的資料夾,裡面存放許多上面所提到的Sample Applications等專案檔案。
DevCloud提供每個帳戶50GB的儲存空間,可以自由運用儲存程式與模型資料等。接著點選右上方New按鈕,並從下拉式選單中點選Terminal開啟終端機。在黑色的終端機背景中輸入以下指令來取得我們要使用的ipython notebooks檔案,同時這個檔案也存放在github上供有需要的開發者自行取用參考。
二、四步驟完成預訓練模型範例
執行完成回到檔案管理介面,就會看到多出一個剛下載的DevCloud_HandsOn.ipynb檔案,點選該檔案來啟動ipython notebook。
開啟DevCloud_HandsOn.ipynb之後可以看到左側是目錄概要,可以看到列出了四個步驟即可完成open model zoo上的範例:
- STEP1: 下載open model zoo程式碼
- STEP2: 下載與轉換模型
- STEP3: 進行物件偵測推論
- STEP4: 在各種邊緣裝置進行推論
右側比較大的欄位則是程式碼編輯區,這部分是由程式碼與註解文字兩種Cell組合而成的區域,能以Cell為單位自由編輯並且執行。筆者已經預先在這個ipython notebook中加入註解說明文字,希望能幫助到初學者理解各個步驟與指令的用意所在。
STEP 1: 下載open model zoo程式碼
STEP1僅有三行指令,依序執行即可建立工作目錄並且從github下載open model zoo的程式碼。
STEP 2: 下載與轉換模型
STEP2則接續要下載預訓練的物件偵測模型,這邊有兩個做法:2.1是一次下載所有支援的物件偵測模型;2.2則是僅下載指定模型。由於物件偵測支援的預訓練模型實在是非常多,一次下載將花費非常多的時間,強烈建議先跳過2.1執行2.2下載特定模型即可,待日後想要嘗試置換其他模型時,再下載全部模型較為妥適。
取得要使用的模型檔之後就是要進行模型轉換(converter)來取得推論引擎(Inference Engine),載入時需要使用的IR(Intermediate Representation)檔,以利後續使用CPU、GPU、VPU等各種硬體進行推論。由於模型轉換需要花費一些時間,如果你是一次下載所有模型並且進行轉換的話(前述2.1的部分)這邊也會花上好一段時間。
STEP 3: 進行物件偵測推論
STEP3就是進行推論的重頭戲了,這邊會使用open model zoo中的object_detection_demo.py範例程式分別執行單張圖片的推論以及影片的推論兩種。為求方便起見圖片與影片筆者分別從pixabay與Pexels合法取得照片與影片來進行推論使用,各位也可以將自己的照片或影片手動上傳到DevCloud上作為推論資料使用。
在執行範例程式需要代入相應的參數包含IR檔路徑、輸入資料、輸出資料、模型架構與標籤檔等等,若參數錯誤可能會造成辨識不準確甚至會無法執行,請務必稍加留意。若需要更換模型檔除了IR路徑修改外,模型架構與標籤檔也可能需要更換,詳細請參考預訓練模型文件的說明。
此外在執行影片推論前,筆者有使用sed指令去修改範例程式中輸出影像的格式,為的是能夠輸出成正確的影像檔案並且在DevCloud上播放。其餘的部分則和圖片推論是大同小異。在推論結果的部分,不管是圖片或是影片的物件偵測,可以觀察到輸出結果相當不錯,即使是小物件偵測的正確率還不差。
STEP 4: 硬體測試模擬
最後的第四步驟,我們要使用DevCloud最為強大的功能之一,將這個AI模型放到不同的邊緣運算裝置進行推論。於此之前先建立工作腳本檔(4.1),基本上跟我們前面第三步驟的內容差不多,只不過把一些我們想要動態改變的參數改為從外部引入。
接著使用qsub指令派送工作到指定的邊緣裝置(4.2),所有支援的邊緣裝置可以參考Intel DevCloud for the Edge裝置列表。由於工作會以方同步的方式在不同裝置上運作,我們可以透過liveQstate()指令來檢視任務的執行狀態,這邊務必要留意一下如果任務尚未完成而直接執行後續的cell程式段,將可能會造成錯誤或是資料讀取不正確。
當所有任務都完成後,同樣地開啟輸出影片來觀察Intel Core Gen 11th使用CPU與GPU之間的推論差異。(讀者也可以參考Jack大的教學文)
三、快速延伸你的創意
本篇文章帶各位輕鬆快速得完成一個open model zoo上的AI推論範例,各位是否覺得意猶未盡呢?在open model zoo與DevCloud上還有許多寶庫值得去探究以及發掘,建議各位後續可以從 open model zoo 內各種有趣的範例和預訓練的模型當中做探索,或是執行 DevCloud 上不同應用展示,都是不錯的學習路徑喔!每個範例也可以彈性去套用不同的模型進行演算,對於AI模型能夠發展的應用,可以提供更多想像空間喔!
人工智慧的技術在未來幾年間將持續蓬勃發展,而配套的軟體工具也將會越來越廣泛且容易上手,有幸身處在這個AI應用即將爆發的時代,勢必也要跟風參與一下這波撼動世界的技術浪潮,各位說是吧!
(責任編輯:歐敏銓)
AI正在改變世界,用您的創意一起來參與《Intel® DevCup x OpenVINO™ Toolkit》競賽,百萬總獎項、等您來挑戰!參賽徵件截止日:2021/10/31 23:59
- 【開箱實測】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位開發者一同掌握科技創新的技術資訊!