Intel DevCloud開發者工具是一個免費的云端的開發平臺,它已預裝了OpenVINO Toolkit (Open Visual Inference and Neural network Optimization)方便開發AI應用程序。它是一個云端的JupyterLab服務,旗下三個產品DevCloudfor the Edge、DevCloud for oneAPI、DevCloud for FPGA,分別著重讓開發者可以在云端的虛擬機上評估模型推論、神經網絡訓練研究以及客制化FPGA加速芯片應用。
特別值得一提的是,這些服務目前完全不需要花費任何一毛錢,即可盡情享用到高效能的運算能力。開發者們大可好好運用這些資源來學習并應用AI,本篇文章將使用DevCloud for the Edge,在簡單的四個步驟之中,完成一個Object Detection對象偵測的DEMO操作。
一、準備動作
Tutorials與Sample Applications非常推薦入門者學習
在注冊完成登入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的后臺接口,點選右上方New來新增檔案或開啟終端機
進入到DevCloud后臺接口可以看到目前顯示在files頁簽,是類似文件管理器以階層的方式看到自己在服務器上的所有檔案,預設服務器在建立之后即會產生一個Reference-samples的文件夾,里面存放許多上面所提到的Sample Applications等項目文件。
DevCloud提供每個賬戶50GB的儲存空間,可以自由運用儲存程序與模型數據等。接著點選右上方New按鈕,并從下拉式選單中點選Terminal開啟終端機。在黑色的終端機背景中輸入以下指令來取得我們要使用的ipython notebooks檔案,同時這個檔案也存放在github上
https://github.com/FelixLinSY/DevCloud_Hands_On
供有需要的開發者自行取用參考。
wgethttps://github.com/FelixLinSY/DevCloud_Hands_On/raw/main/DevCloud_HandsOn.ipynb
二、四步驟完成預訓練模型范例
執行完成回到檔案管理接口,就會看到多出一個剛下載的DevCloud_HandsOn.ipynb檔案,點選該檔案來啟動ipython notebook。
運行于DevCloud的教學指引:DevCloud_HandsOn.ipynb
開啟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的部分)這邊也會花上好一段時間。
使用ssd_mobilenet_v2_coco進行圖片推論的結果
STEP 3: 進行對象偵測推論
STEP3就是進行推論的重頭戲了,這邊會使用openmodel zoo中的object_detection_demo.py范例程序分別執行單張圖片的推論以及影片的推論兩種。為求方便起見圖片與影片筆者分別從pixabay與Pexels合法取得照片與影片來進行推論使用,各位也可以將自己的照片或影片手動上傳到DevCloud上作為推論數據使用。
在執行范例程序需要代入相應的參數包含IR文件路徑、輸入數據、輸出數據、模型架構與卷標文件等等,若參數錯誤可能會造成辨識不準確甚至會無法執行,請務必稍加留意。若需要更換模型文件除了IR路徑修改外,模型架構與卷標文件也可能需要更換,詳細請參考預訓練模型文件的說明。
此外在執行影片推論前,筆者有使用sed指令去修改范例程序中輸出影像的格式,為的是能夠輸出成正確的圖像文件案并且在DevCloud上播放。其余的部分則和圖片推論是大同小異。在推論結果的部分,不管是圖片或是影片的對象偵測,可以觀察到輸出結果相當不錯,即使是小對象偵測的正確率還不差。
在Intel DevCloud for the Edge執行的影片推論結果
STEP 4: 硬件測試仿真
最后的第四步驟,我們要使用DevCloud最為強大的功能之一,將這個AI模型放到不同的邊緣運算裝置進行推論。于此之前先建立工作腳本檔(4.1),基本上跟我們前面第三步驟的內容差不多,只不過把一些我們想要動態改變的參數改為從外部引入。
接著使用qsub指令派送工作到指定的邊緣裝置(4.2),所有支持的邊緣裝置可以參考Intel DevCloud for the Edge裝置列表。由于工作會以方同步的方式在不同裝置上運作,我們可以透過liveQstate()指令來檢視任務的執行狀態,這邊務必要留意一下如果任務尚未完成而直接執行后續的cell程序段,將可能會造成錯誤或是數據讀取不正確。
當所有任務都完成后,同樣地開啟輸出影片來觀察Intel Core Gen 11th使用CPU與GPU之間的推論差異。
你可在Intel DevCloud for the Edge裝置列表中進行選擇,模擬體驗一下所選模型在實際運作時的效益如何
三、快速延伸你的創意
本篇文章帶各位輕松快速得完成一個open model zoo上的AI推論范例,各位是否覺得意猶未盡呢?在open model zoo與DevCloud上還有許多寶庫值得去探究以及發掘,建議各位后續可以從 open model zoo 內各種有趣的范例和預訓練的模型當中做探索,或是執行 DevCloud 上不同應用展示,都是不錯的學習路徑喔!每個范例也可以彈性去套用不同的模型進行演算,對于AI模型能夠發展的應用,可以提供更多想象空間喔!
人工智能的技術在未來幾年間將持續蓬勃發展,而配套的軟件工具也將會越來越廣泛且容易上手,有幸身處在這個AI應用即將爆發的時代,勢必也要跟風參與一下這波撼動世界的技術浪潮。
審核編輯 :李倩
-
人工智能
+關注
關注
1798文章
47956瀏覽量
241124 -
應用程序
+關注
關注
38文章
3301瀏覽量
58023
原文標題:OpenVINO云端也能GO!四個步驟輕松在DevCloud實作AI推論
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
詳解Object Detection Demo的移植

模數轉換電路的四個過程
一個總線傳輸周期包括哪四個階段
IGBT的四個主要參數
有源晶振四個腳是如何定義的?

評論