簡介 我們已經知道 OpenVINO 是個強大且容易使用的 AI 推論工具,並且在智慧製造與智慧零售上有不少落地應用就是使用 OpenVINO 進行優化與部署。但對於小型開發團隊或是才正要切AI領域的入門者來說,資料的取得與訓練模型可能就是要落實 AI 應用的第一道障礙了。 有鑑於此,OpenVINO Toolkit 的子專案 Open Model Zoo 就直接提供了超過 300 個以上立即可用的預訓練 AI 模型(Pre-Trained Model),並且涵蓋了超過 50 種不同類型的範例程式原始碼。接下來這篇文章將帶各位探索這個有豐富資源的Open Model Zoo 寶庫! Open Model Zoo 包含的三個主要項目 Open Model Zoo 的內涵 Open Model Zoo 涵蓋了三項主要的內容:預訓練模型 Pre-Trained Models、展示應用範例 Demo Applications 以及工具 Tools。這恰好了補足 OpenVINO 需要的深度學習模型以及使用者應用程式,不管是還未選定模型亦或是想要體驗各類模型可以達成的應用,都可以先搭配 Open Model Zoo 率先進行測試與評估模型,但實際要產出應用時也可以直接參照 Demo 程式碼進行修改,達到事半功倍的效果! 藉由 Open Model Zoo 資源配合 OpenVINO 所需素材 預訓練模型 Pre-Trained Models Pre-Trained Models 分為兩個來源:Intel 與 Public。Intel 提供的模型比較偏向特定應用,在已經預想好的應用情境之下訓練與調教特定功能 AI 模型。好比車輛屬性模型可以判定車子的顏色與種類,適合運用在出入口攔檢站;而年齡與性別預測的模型則方便應用在智慧零售,借此判定各類銷售商品的受眾喜好。Public 則是來自於其他公開的AI模型,比較屬於一般用途。諸如經典的 MobileNet 影像分類、YOLOv4 物件偵測、Mask R-CNN 實例分割,以及其他 Speech Recognition 語音識別、Depth Estimation 深度預估等模型。接下來的篇幅會列舉一些有趣的預訓練模型與應用範例與各位分享。 預訓練模型分類 常見的電腦視覺任務 在找尋可應用的模型之前,我們先回顧一下目前在深度學習領域當中經常處理的電腦視覺任務,包含影像分類、圖像分割(語義分割)、物件偵測與實例分割。影像分類可以說是最基礎的電腦視覺任務,即便實用度不高,但卻是深度學習演算法很重要的根基。 由於分類模型只能夠針對一張圖像得出一個分類結果,若影像當中有兩種以上類別,則會造成失準產生錯亂。因此開始發展出了圖像分割的模型,其先把圖片中的所有像素進行分群,再把每一群進行影像分類。雖然這麼做能個在同一張圖像裡面找到多個物件,但是付出大代價就是龐大的運算量,除了效能不彰外,能個分類出來的類別也是相當受限。 接著就發展出了物件偵測,藉由演算法先找到可能物件的所在區域,再進行分類運算,除了分類的物件種類有效提升外,並且也足以做到即時的影像運算了。最終則是實例分割,其功能除了物件偵測外,還可以將物件切割成像素等級,並且記錄下個物件不同的 ID 以利進行連續影像的追蹤。 常見的影像視覺任務(source: CS231n Stanford University) 影像分類模型(Classification Models) Public Pre-Trained Model 中包含將近八十種經典的影像分類模型,都是以 ImageNet 這個大型影像資料集的一千種分類的圖像資料進行訓練,其中也不乏 Top-1 Accuracy 第一順位精確度超過八成以上的模型。 影像分割模型(Semantic Segmentation Models) 如同前面介紹影像視覺任務所提及,影像分割的運算量龐大且辨識物件種類不多,即便如此,若是我們鎖定一個應用領域,讓其只辨識特定幾種必要物件,其實仍有不錯的實用價值的。像是在封閉道路上運行的車子,我們也許只要能判讀出馬路、路沿石、標線、車子等幾個重要物件,其實也就能做到自動導航或是輔助駕駛等功能了!別忘了,有許多震驚世人的創新也都是使用一些早期技術再加上一點新概念罷了! 影像分割應用展示範例 人臉偵測模型(Face Detection Models) Open Model Zoo 包含為數不少的人臉偵測模型,可以看出命名規則為 face-detection-xxxx-nnnn,其中 xxxx 是應用領域,如 ADAS(Advanced Driver. Assistance Systems 先進駕駛輔助系統)、Retail 智慧零售等。而 nnnn 則是版本代號,不同版本之間用的深度學習框架、參數量、計算量、準確度、輸入影像大小等可能都會有所不同,可以進一步從官方文件資料去比對。 經常會一起與人臉偵測模型搭配應用的則有 Head Pose Estimation 頭部姿勢估算與 Gaze Esimation 眼神凝視估算。頭部姿勢模型可以抓取人臉是仰望、俯瞰或是側臉等資訊;凝視模型則可以取得人物眼神觀看的角度。藉由使用這些的搭配可以套用的應用情境就相當廣泛了,譬如在零售店鋪當中,我們可以估算消費者對特定產品的好奇心以及注視的時間長短,用客觀數據分析不同性別年齡對商品的喜好程度,藉以提高銷售成功率或是新產品推出時的目標客層設定。 眼神凝視估算展示範例 人臉互動展示範例 人體偵測模型(Person Detection Models) 辨識與標記人體的模型可說是最廣泛的 AI 模型之一,不但可以用於監視攝影機系統來判讀是否有人員進出或入侵,也可以應用於人流管制統計等應用。除此之外Intel也有提供適合應用在特定場域的人體偵測模型,譬如偵測教師動作(站立、寫板書或展示)與學生動作(舉手、筆記、站立、坐下)等。 將以上模型整合後就是智慧教室應用範例的內容了!這樣的應用可以觀察在教室內學員與老師的互動狀態,以及可以分析在講授那一段課程時學生特別專注或是特別不投入,藉此能讓老師有所反饋來進一步調整教學方式。 智慧教室應用展示範例 人物屬性模型(Person Attribution Models) 人物屬性模型可以識別出人物的客觀資訊,如衣著顏色、衣著長短、性別、有無背包、衣褲長短等訊息,有了此類訊息可以有效協助警方處理社會案件,好比從路口監視器中的影像透過走失者的衣著特徵進行尋人,或是追查嫌犯都可以在短時間收斂出可能的行跡,藉此提高辦案效率。 人物屬性模型 人體姿勢預估模型(Human Pose Estimation Models) 人體姿勢模型可以辨識出人體外,還可以標記出十餘種重點位置,像是眼睛、耳朵、鼻子、肩膀、手肘、手腕等。在應用上可做為運動選手的姿勢糾正輔助工具,協助選手調整運過程的姿態,提高表現能力並且減少運動傷害等。又或者是能做為互動式裝置藝術的輸入資訊。 人體姿勢預估應用展示範例 物件偵測(Object Detection Models) 除上述幾種算是變種的物件偵測模型外,Open Model Zoo 自然也少不了經典的物件偵測模型,在 Public Pre-Trained 類別內提供 38 種實用的物件偵測模型,依據訓練的資料集來源不同可以偵測出 20 或 90 種不同類型的物件。許多時候在一般的應用情境當中,直接套用現成的物件偵測模型就已經足以應對多數狀況了! SSD MobileNet V2 物件偵測模型應用 實例分割(Instance Segmentation) 實例分割是目前機器視覺任務中最為複雜運算量最大的一個項目,因為其對於影像細節掌握更為要求,導出更貼近人眼實際觀看的結果,也是現今自駕車或是輔助駕駛最常使用的視覺模型之一。主流演算法多以 Mask R-CNN 搭配 ResNet 或 EfficientNet 等不同的 CNN 神經網路組建而成。資料集則是使用有 80 或 90 分類的 COCO 進行訓練。Open Model Zoo 有提供 10 個實例分割的預訓練模型可以運用。(包含 Intel Pre-Trained 5 個與 Public Pre-Trained 5 個) 實例分割模型應用 小結 本篇零零總總看了不少 Open Model Zoo 裡面的模型,但其實在此專案裡面仍有不少模型還未提及的,除了常見的視覺任務外,還有像景深判讀、文字識別、影像重建乃至於到語音分類、文字轉語音等各類模型都有不少潛在的應用機會。有興趣實際操作的夥伴們不妨參考我們前篇在 DevCloud上實作 OpenVINO 推論的文章,直接在雲端體驗 OpenVINO 各個有趣的模型吧! 詳細內容 就用Open Model Zoo來豐富你的OpenVINO應用 - 引領創新的科技實作社群媒體OpenVINO Toolkit子專案Open Model Zoo提供超過300個以上立即可用的預訓練AI模型...makerpro.cc