使用 ML Kit 自訂模型

根據預設,機器學習套件的 API 會使用 Google 訓練的機器學習模型。這類模型的設計適合各種應用程式。不過,有些用途需要目標較為明確的模型。這就是為什麼部分機器學習套件 API 現在可讓您以自訂 TensorFlow Lite 模型取代預設模型。

Image LabelingObject Detection & Tracking API 都支援自訂圖片分類模型。它們支援 TensorFlow Hub 上的高品質預先訓練模型,或以 TensorFlow、AutoML Vision Edge 或 TensorFlow Lite Model Maker 訓練的自訂模型。

如果您需要針對其他網域或用途提供自訂解決方案,請造訪裝置端機器學習頁面,以取得 Google 裝置端機器學習的所有解決方案和工具指南。

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

在自訂套件中使用自訂圖片分類模型的好處如下:

  • 易於使用的高階 API - 不需處理低階模型輸入/輸出、處理預先/後續處理的圖片,或建構處理管道。
  • 您無須擔心標籤對應:機器學習套件會從 TFLite 模型中繼資料擷取標籤,並為您進行對應作業。
  • 支援多種來源的自訂模型,包括發布至 TensorFlow Hub 的預先訓練模型,以及使用 TensorFlow、AutoML Vision Edge 或 TensorFlow Lite Model Maker 訓練的新模型。
  • 支援透過 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,則必須附加 Metadata 來指定 NormalizationOptions。
    • 張量有 4 個維度:BxHxWxC,其中:
      • B 是批次大小。這個值必須為 1 (不支援較大的批次推論)。
      • W 和 H 為輸入寬度和高度。
      • C 是預期的頻道數量。這個值必須是 3。
  • 模型必須有至少一個輸出張量和 N 個類別,以及 2 或 4 個維度:
    • (1 倍)
    • (1x1x1xN)
  • 目前僅支援單一頭像型號。多頭模型可能會輸出非預期的結果。

中繼資料

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

如要使用具有 FLOAT32 輸入張量的模型,您必須在中繼資料中指定 NormalizationOptions

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