如何在Android應用中應用機器學習?
如今,越來越多的智慧推薦系統、智慧手機上嵌入的AI攝像頭(用於自動對焦和自動人臉檢測)、高階聊天機器人以及Siri、Alexa和Google Assistant等AI語音助手湧現出來。人們開始建立像ChatGPT這樣的應用程式,可以處理面試等高階問題。然而,儘管這看起來令人著迷,但要部署具有此類功能的應用程式,需要深入瞭解機器學習和深度學習演算法,並能夠訪問各種各樣的資源和資料集,而這對於個人來說有時是難以實現的。因此,需要一個合適的團隊來訪問和管理如此大量的資源,並將機器學習部署到具有巨大實用性的應用程式中。儘管如此,將一些基本的、預訓練的或預實現的機器學習演算法整合到我們的應用程式中仍然是完全可能的。
ML Kit − 此工具包適用於Android和iOS平臺。這些API已針對移動裝置進行了最佳化,不需要太多的機器學習專業知識。ML Kit的主要優勢在於,開發人員可以在裝置本身上執行機器學習模型,而不是將資料傳送到遠端伺服器進行處理。這有助於提高使用者資料的隱私性,因為資料無需離開裝置,此外,這也幫助開發人員提供更快的資料處理併產生即時結果。一些API包括:
視覺API:
條形碼掃描 − 條形碼已成為透過裝置傳遞資訊的便捷方式。使用此API,可以輕鬆掃描並獲取嵌入在條形碼中的資訊,並且應用程式可以根據接收到的資料型別來響應資料。條形碼必須採用線性格式(Codebar、Code 39、EAN-8、EAN-13、ITF、Code 93、Code 128等)或2D格式(QR碼、PDF417、Data Matrix、Aztec)。
人臉檢測 − 現在,你肯定已經使用過Snapchat的人臉美化功能、Instagram的“你是哪隻寶可夢?”等功能。可以使用人臉檢測來實現此類功能。注意:這隻會檢測人臉,而無法識別是誰的臉(不進行人臉識別)。它也可以用於對任何錄製影片中特定人物的影像進行處理。
面部網格檢測 − 為此,你需要一張自拍照片,ML模型在檢測到人臉後會在其上繪製一個邊界框。它會在流式影片中為人臉生成AR效果。這可以用於獲取468個3D點和三角形資訊。
文字識別 − 希望大家都使用過並對文字識別有所瞭解,因此當你點選某篇文章的圖片並將其貼上到Google中,並要求其將其轉換成你的母語時,就會用到它。但它也有侷限性,它只適用於基於拉丁語系的語言,因為ML Kit只支援拉丁文字。此外,它還可以檢測單詞、段落、行以及上下文的每一個元素。此外,它還可以識別你正在輸入或提供的語言。
影像標註 − 我們可以檢測並提取影像中各種物件或實體在廣泛類別中的資訊。我們還可以使用TensorFlow Hub或我們自己使用TensorFlow、AutoML Vision Edge或TensorFlow Lite Model Maker訓練的模型來自定義這些功能。ML Kit從TensorFlow Lite模型中提取標籤,並將其作為文字描述提供。
數字墨水識別 − 透過此API,我們可以透過裝置螢幕識別手寫文字。它還可以用於對手機螢幕等數字表面上的手勢進行分類,支援數百種語言,還可以對草圖進行分類。藉助此功能,我們可以輕鬆地在手機螢幕上書寫我們的語言,而不是透過虛擬鍵盤進行繁瑣的打字。
姿勢檢測 − 此API允許開發人員嚮應用程式新增可與人體姿勢一起工作的功能。這可用於從影片或影像中即時識別任何人的位置。此API在健康和健身應用程式中非常有用,可以檢測你的動作。
自拍分割 − 你是否曾經使用過背景移除功能,將自己放置在從未拍攝過的影像中,或者將自己顯示在你從未去過的地方?此API允許你做到這一點。藉助此API,開發人員可以輕鬆地將影像中的人或選定物件與背景分離。它還可以在任何影片中即時執行。
自然語言API:
語言識別 − 此API幫助開發人員識別輸入文字或字串的語言,因為使用者在進行Google搜尋或輸入任何文字時通常不會提供其語言資訊。
翻譯 − 此API可將任何給定語言動態翻譯成使用者所需的不同的輸出語言。這裡的動態意味著應用程式可以動態下載和管理語言包,從而保持裝置儲存需求較低。智慧回覆:此API允許應用程式建議對裝置上接收到的任何文字訊息進行自動回覆。它會根據對話的完整上下文生成回覆建議。
實體提取 − 現代智慧手機會在虛擬螢幕鍵盤上方的小條上建議文字,你是否想過這是如何發生的?這就是此API的功能。在輸入任何文字時,此API會識別最常用的單詞或實體,提取它們,並根據你正在輸入的上下文將它們作為快捷方式建議。一些實體包括地址、日期時間、電子郵件地址、航班號、貨幣、電話號碼、URL等。
然而,儘管這聽起來很酷,但這些預訓練的機器學習模型仍然存在一定的侷限性,它們可能不夠準確,並且在某些應用程式用例中效能不足。
Android的自定義ML堆疊 − 如果你想要更強的控制能力並部署你自己的機器學習模型,那麼你可以使用這個。這個自定義ML堆疊構建在TensorFlow Lite和Google Play服務之上,因此它可以提供部署高效能ML功能所需的最重要要素。從上圖可以清楚地看出,TensorFlow Lite如何用於在不同級別控制應用程式的效能。
用於ML執行時 − 你可以透過Google Play服務使用TensorFlow Lite在你的應用程式中執行高效能ML推理。
TensorFlow Lite委託 − 如果你正在努力提高應用程式的效能,那麼你可以使用TensorFlow Lite委託(透過Google Play服務分發)來加速你的ML模型。加速你的ML模型意味著提供更快速、更準確的解決方案。這種加速發生在GPU、NPU或DSP等專用硬體上。透過訪問使用者裝置的高階計算能力,這減少了延遲併為你的使用者提供了流暢的使用者體驗。
結論
但這裡需要注意的是,你需要將你的初始模型轉換為TensorFlow Lite模型(.tflite)。你的新模型應該與預實現的TensorFlow模型大相徑庭。此類應用程式的更新由Google Play服務管理,並在進行任何更改後立即提供給所有使用者。如果你想避免這種情況併為特定使用者提供特定更新,可以使用Firebase遠端配置和Firebase A/B測試。
資料結構
網路
關係型資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP