根據預設,機器學習套件的 API 會使用 Google 訓練的機器學習模型。這類模型的設計適合各種應用程式。不過,有些用途需要目標較為明確的模型。這就是為什麼部分機器學習套件 API 現在可讓您以自訂 TensorFlow Lite 模型取代預設模型。
Image Labeling 和 Object 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 搭配使用。請按照下列步驟操作。
- 從與 ML Kit 相容的模型集合中選擇模型。
- 透過模型詳細資料頁面下載 .tflite 模型檔案。在適用情況下,請選擇有中繼資料的模型格式。
- 請參考 Image Labeling API 或 Object Detection and Tracking API 的指南,瞭解如何將模型檔案與專案組合在一起,並在 Android 或 iOS 應用程式中使用這些檔案。
訓練您自己的圖片分類模型
如果預先訓練的圖片分類模型無法滿足您的需求,您可以使用多種方式訓練自己的 TensorFlow Lite 模型,其中一些模型將概述及討論一些細節。
訓練自己的圖片分類模型的選項 | |
---|---|
AutoML Vision Edge |
|
TensorFlow Lite 模型製作工具 |
|
將 TensorFlow 模型轉換成 TensorFlow Lite |
|
AutoML Vision Edge
使用 AutoML Vision Edge 來訓練的圖片分類模型可用於 Image Labeling 和 Object 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 API 或 Object Detection and Tracking API 指南。
使用 TensorFlow Lite 轉換工具建立的模型
如果您目前擁有 TensorFlow 圖片分類模型,可以使用 TensorFlow Lite 轉換工具進行轉換。請確保您建立的模型符合以下相容性需求。
想進一步瞭解如何在 Android 和 iOS 應用程式中使用 TensorFlow Lite 模型,請依照自己的用途,參閱 Image Labeling API 或 Object 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:
- 標示每個輸出類別名稱的標籤標籤,為 AssociatedFile 類型的 TENSOR_AXIS_LABELS (否則只會傳回數值輸出類別的索引)
- 預設的分數門檻,低於此門檻的結果將導致可信度低,因此傳回 ProcessUnit ScoreThresholdingOptions