使用 ML Kit 自訂模型

根據預設,ML Kit 的 API 會使用 Google 訓練的機器學習模型。 這些模型適用於多種應用程式。但某些用途需要更精準的模型。因此,部分 ML Kit API 現在可讓您使用自訂的 TensorFlow Lite 模型取代預設模型。

圖片標籤物件偵測與追蹤 API 都支援自訂圖片分類模型。這些模型與一系列在 TensorFlow Hub 上的精選高品質預先訓練模型相容,或使用 TensorFlow、AutoML Vision Edge 或 TensorFlow Lite 模型製作工具訓練的自有自訂模型。

如果您需要其他網域或用途的自訂解決方案,請造訪裝置端機器學習頁面,瞭解所有適用於裝置端機器學習的 Google 解決方案和工具。

搭配自訂模型使用 ML Kit 的好處

搭配 ML Kit 使用自訂圖片分類模型的好處如下:

  • 易於使用的高階 API - 無需處理低階模型輸入/輸出、處理圖片前/事後處理,或建構處理管道。
  • 不必擔心標籤對應問題:ML Kit 會從 TFLite 模型中繼資料擷取標籤,並為您完成對應作業。
  • 支援多種來源的自訂模型,包括在 TensorFlow Hub 上發布的預先訓練模型,以及使用 TensorFlow、AutoML Vision Edge 或 TensorFlow Lite 模型製作工具訓練的新模型。
  • 支援透過 Firebase 託管的模型。隨選下載模型可縮減 APK 大小。不必重新發布應用程式即可推送模型更新,並使用 Firebase 遠端設定執行簡易的 A/B 測試。
  • 已針對 Android 的 Camera API 進行最佳化整合。

尤其是物件偵測和追蹤

  • 先找出物件,然後在相關圖片區域執行分類器,以提高分類準確率
  • 在偵測到物件並進行分類時立即提供使用者回饋,藉此提供即時互動式體驗

使用預先訓練的圖片分類模型

您可以使用預先訓練的 TensorFlow Lite 模型,前提是這些模型必須符合一組條件。我們透過 TensorFlow Hub 提供一組經過審查的模型,這些模型都是由 Google 或其他模型創作者提供,符合這些條件。

使用在 TensorFlow Hub 上發布的模型

TensorFlow Hub 提供各式各樣的預先訓練圖片分類模型 (來自不同模型創作者),可與圖片標籤和物件偵測和追蹤 API 搭配使用。請按照以下步驟操作。

  1. 與 ML Kit 相容的模型集合中挑選模型。
  2. 從模型詳細資料頁面下載 .tflite 模型檔案。如有中繼資料,請選擇包含中繼資料的模型格式。
  3. 請按照 Image Labeling APIObject Detection and Tracking API 指南操作,瞭解如何將模型檔案與專案組合,以及如何在 Android 或 iOS 應用程式中使用。

訓練自己的圖片分類模型

如果沒有預先訓練的圖片分類模型滿足您的需求,有多種方法可以訓練您自己的 TensorFlow Lite 模型,其中有些做法會在下方概略說明及討論。

訓練自己的圖片分類模型的選項
AutoML Vision Edge
  • 由 Google Cloud AI 提供
  • 建立最先進的圖片分類模型
  • 輕鬆評估成效與大小
TensorFlow Lite 模型製作工具
  • 與從頭開始訓練模型相比,重新訓練模型 (遷移學習) 所需的時間較短,而且所需的資料較少
將 TensorFlow 模型轉換為 TensorFlow Lite
  • 使用 TensorFlow 訓練模型,然後轉換為 TensorFlow Lite

AutoML Vision Edge

使用 AutoML Vision Edge 訓練的圖片分類模型在 Image LabelingObject Detection and Tracking API API 中的自訂模型支援。這些 API 也支援下載由 Firebase 模型部署託管的模型。

如要進一步瞭解如何在 Android 和 iOS 應用程式中使用以 AutoML Vision Edge 訓練的模型,請根據您的用途,依照每個 API 的自訂模型指南操作。

TensorFlow Lite 模型製作工具

TFLite Model Maker 程式庫簡化了在為裝置端機器學習應用程式部署這個模型時,調整 TensorFlow 類神經網路模型並轉換為特定輸入資料的程序。你可以追蹤使用 TensorFlow Lite Model Maker 進行圖片分類的 Colab

如要進一步瞭解如何在 Android 和 iOS 應用程式中使用以 Model Maker 訓練的模型,請根據您的用途,按照 Image Labeling APIObject Detection and Tracking API 指南操作。

使用 TensorFlow Lite 轉換工具建立的模型

如果您有現有的 TensorFlow 圖片分類模型,可以使用 TensorFlow Lite 轉換工具轉換模型。請確認建立的模型符合下列相容性規定。

如要進一步瞭解如何在 Android 和 iOS 應用程式中使用 TensorFlow Lite 模型,請根據您的用途,按照 Image Labeling APIObject Detection and Tracking API 指南操作。

TensorFlow Lite 模型相容性

您可以使用任何預先訓練的 TensorFlow Lite 圖片分類模型,前提是模型必須符合下列條件:

張量

  • 模型只能有一個具有下列限制的輸入張量:
    • 資料為 RGB 像素格式。
    • 資料為 UINT8 或 FLOAT32。如果輸入張量類型為 FLOAT32,則必須附加中繼資料來指定 NormalizationOptions。
    • 張量有 4 個維度:BxHxWxC,其中:
      • B 是批量,此值必須為 1 (不支援較大的批次推論)。
      • W 和 H 則為輸入的寬度和高度。
      • C 是預期通道數量,必須為 3。
  • 模型必須至少包含一個包含 N 個類別以及 2 或 4 個維度的輸出張量:
    • (1xN)
    • (1 x 1 x N)
  • 目前僅支援單頭型號。多頭模型可能會輸出非預期的結果。

Metadata

您可以按照「為 TensorFlow Lite 模型新增中繼資料」的說明,將中繼資料新增至 TensorFlow Lite 檔案。

如要搭配 FLOAT32 輸入張量使用模型,您必須在中繼資料內指定 NormalizationOptions

我們建議您將這個中繼資料附加至輸出張量 TensorMetadata