第 40 章
使用 Core ML 打造一個即時圖片辨識 App

過去幾年,機器學習(machine learning)已經成為一個熱門的主題。如 Google 、Amazon 與 Facebook 這些科技巨擘,在這個領域的發展也非常競爭,不斷嘗試加入 AI 服務來強化自家的產品。除了 Siri 這個智慧個人助理的服務之外,Apple 對於 AI 的觀點以及如何將機器學習應用在 iOS App 的做法的一直保持沈默。Core ML 正是Apple 所給的答案,開發者可以透過簡單的 API 便能夠強化自己的 App,讓 App 更聰明。

圖 40.1. 使用 Core ML 整合機器學習模型
圖 40.1. 使用 Core ML 整合機器學習模型

有了 Core ML 框架,開發者可以更容易地整合受過訓練過的機器學習模型進入 iOS App。簡單的說,機器學習是一種人工智慧(artificial intelligence,簡稱 AI),人工智慧可以讓電腦程式從歷史資料來學習並作出預測。一個有訓練過的 ML 模型是將一組有訓練過的資料以機器學習演算法來運算後的結果。

Core ML 可以讓你整合各式機器學習的模型型態至你的 App 中,除了支援高達30多層的深度學習型態之外,它也支援像是標準的樹集成(tree ensembles)、SVM 與廣義線性模型(generalized linear models)。因為它是建構在像是 Metal 與 Accelerate 的底層技術上面, Core ML 完全利用了 CPU 與 GPU 的優勢來提供最大的效能與效率。你可以在裝置上運行機器學習模型,因此資料不需要離開裝置來做分析。

- Apple 關於 Core ML 的官方文件

舉例來說,你想要建立一個辨識人臉表情(譬如快樂、生氣、悲傷)的 App。要訓練這樣的模型,你需要提供給它大量的資料來訓練快樂的表情是如何,生氣的表情又是如何。在這個例子,訓練過的 ML 模型是以圖片作為輸入,分析該圖片中人的臉部表情,然後判斷出表情狀況後輸出。

圖 40.2. 訓練模型的圖片範
圖 40.2. 訓練模型的圖片範

在還沒導入 Core ML 之前,要將訓練過的 ML 模型整合進去 iOS App 非常困難。現在,有了這個新框架,你可以轉換這個訓練模型為 Core ML 格式後整合至你的 App 中,並使用這個模型來讓你的 App 更聰明。更重要的是,待會你會見到,只要幾行程式就可以使用這個模型。

Note:如果你是機器學習與人工智慧的新手,我建議你可以看一下這份由Vishal Maini (https://medium.com/machine-learning-for-humans/why-machine-learning-matters-6164faf1df12 )所編寫的初學者指南 -  Machine Learning for Humans 

在這篇教學中,我們會將重點放在使用一些現成的模型來作為我們的 Core ML 範例。

至於一個機器學習模型如何的被訓練,這不是本篇文章的範疇。不過如果你有興趣訓練你自己的模型,你可以參考以下的資源:


本文摘自《iOS 17 App程式設計進階攻略》一書。如果你想繼續閱讀和下載完整程式碼,你可以從AppCoda網站購買完整電子版,全書範例檔皆可下載。

results matching ""

    No results matching ""