ImageClassifier

公開最終類別 ImageClassifier

對圖片執行分類。

API 預期 TFLite 模型可選擇是否適當,但強烈建議使用 TFLite 模型中繼資料

這個 API 支援具有一個映像檔輸入張量和一或多個輸出張量的模型。具體規定如下:

  • 輸入圖片張量 (kTfLiteUInt8/kTfLiteFloat32)
    • 大小為 [batch x height x width x channels] 的圖片輸入。
    • 不支援批次推論 (batch 須為 1)。
    • 僅支援 RGB 輸入值 (channels 必須是 3)。
    • 如果類型為 kTfLiteFloat32,則必須將 NormalizationOptions 附加至中繼資料,才能進行輸入正規化。
  • 至少一個輸出張量 (kTfLiteUInt8/kTfLiteFloat32),同時符合以下條件:
    • N 類別,以及 2 或 4 個維度,例如 [1 x N][1 x 1 x 1 x N]
    • 選用 (但建議使用) 標籤對應關係做為 TENSOR_AXIS_LABELS 類型的 AssociatedFile-s,每行一個標籤。第一個這類 AssociatedFile (如有) 會用來填入結果的 class_name 欄位。系統會從 AssociatedFile (如有) 中填入 display_name 欄位,這個欄位的語言代碼與建立時所用 ImageClassifierOptionsdisplay_names_locale 欄位相符 (預設為「en」,即英文)。如果這些方法都不適用,系統只會填入結果的 index 欄位。
    • 選用的分數校正功能可以使用 ScoreCalibrationOptions 和類型 TENSOR_AXIS_SCORE_CALIBRATION 的 AssociatedFile 附加。詳情請參閱 metadata_schema.fbs

您可以前往 TensorFlow Hub 查看這類模型的範例。

巢狀類別

類別 ImageClassifier.ImageClassifierOptions 設定和 ImageClassifier 選項。 

公用方法

ImageClassifierResult
classify(MPImage 圖片)
使用預設圖片處理選項,對提供的單一圖片執行分類,即
ImageClassifierResult
classify(MPImage 圖片、ImageProcessingOptions imageProcessingOptions)
對提供的單一圖片執行分類。
void
classifyAsync(MPImage 圖片、ImageProcessingOptions imageProcessingOptions、long timestampM)
傳送即時圖片資料以進行分類,結果會透過 ImageClassifier.ImageClassifierOptions 提供的 OutputHandler.ResultListener 取得結果。
void
classifyAsync(MPImage 圖片、長 timestampM)
傳送即時圖片資料,以便使用預設圖片處理選項進行分類,例如
ImageClassifierResult
classifyForVideo(MPImage 圖片、長 timestampM)
以預設的圖片處理選項,對提供的影片影格執行分類,例如
ImageClassifierResult
classifyForVideo(MPImage 圖片、ImageProcessingOptions imageProcessingOptions、long timestampM)
對提供的影片影格進行分類。
static ImageClassifier
createFromBuffer(背景資訊、ByteBuffer modelBuffer)
從模型緩衝區和預設的 ImageClassifier.ImageClassifierOptions 建立 ImageClassifier 例項。
static ImageClassifier
createFromFile(背景資訊、String modelPath)
從模型檔案和預設的 ImageClassifier.ImageClassifierOptions 建立 ImageClassifier 例項。
static ImageClassifier
createFromFile(背景資訊、檔案 modelFile)
從模型檔案和預設的 ImageClassifier.ImageClassifierOptions 建立 ImageClassifier 例項。
static ImageClassifier

繼承的方法

公用方法

public ImageClassifierResult 分類 (MPImage 圖片)

使用預設圖片處理選項對提供的單一圖片執行分類,即使用整個圖片做為興趣區域且不套用任何旋轉設定。只有在使用 ERROR(/RunningMode.IMAGE) 建立 ImageClassifier 時,才能使用這個方法。

ImageClassifier 支援下列色彩空間類型:

參數
圖片 要處理的 MediaPipe MPImage 物件。
擲回

public ImageClassifierResult 分類 (MPImage 圖片、ImageProcessingOptions imageProcessingOptions)

對提供的單一圖片執行分類。只有在使用 ERROR(/RunningMode.IMAGE) 建立 ImageClassifier 時,才能使用這個方法。

ImageClassifier 支援下列色彩空間類型:

參數
圖片 要處理的 MediaPipe MPImage 物件。
imageProcessingOptions 用於指定在執行推論之前如何處理輸入圖片的 ImageProcessingOptions
擲回

public void classifyAsync (MPImage image、ImageProcessingOptions imageProcessingOptions、long timestampMs)

傳送即時圖片資料以進行分類,結果會透過 ImageClassifier.ImageClassifierOptions 提供的 OutputHandler.ResultListener 取得結果。只有在使用 ERROR(/RunningMode.LIVE_STREAM) 建立 ImageClassifier 時,才能使用這個方法。

您必須提供時間戳記 (以毫秒為單位),指出輸入圖片傳送至物件偵測工具的時間。輸入時間戳記必須單純遞增。

ImageClassifier 支援下列色彩空間類型:

參數
圖片 要處理的 MediaPipe MPImage 物件。
imageProcessingOptions 用於指定在執行推論之前如何處理輸入圖片的 ImageProcessingOptions
timestampMs 輸入時間戳記 (以毫秒為單位)。
擲回

public void classifyAsync (MPImage image, long timestampMs)

傳送即時圖片資料,以預設圖片處理選項執行分類,亦即使用整個圖片做為興趣區域且不套用任何旋轉設定。您可以透過 ImageClassifier.ImageClassifierOptions 中提供的 OutputHandler.ResultListener 取得結果。只有在使用 ERROR(/RunningMode.LIVE_STREAM) 建立 ImageClassifier 時,才能使用這個方法。

您必須提供時間戳記 (以毫秒為單位),指出輸入圖片傳送至物件偵測工具的時間。輸入時間戳記必須單純遞增。

ImageClassifier 支援下列色彩空間類型:

參數
圖片 要處理的 MediaPipe MPImage 物件。
timestampMs 輸入時間戳記 (以毫秒為單位)。
擲回

public ImageClassifierResult classifyForVideo (MPImage 圖片、長 timestampM)

以預設影像處理選項對提供的影片影格進行分類,即使用整個圖片做為興趣區域且不套用任何旋轉角度。只有在使用 ERROR(/RunningMode.VIDEO) 建立 ImageClassifier 時,才能使用這個方法。

您必須提供影片影格的時間戳記 (以毫秒為單位)。輸入時間戳記必須單純遞增。

ImageClassifier 支援下列色彩空間類型:

參數
圖片 要處理的 MediaPipe MPImage 物件。
timestampMs 輸入時間戳記 (以毫秒為單位)。
擲回

public ImageClassifierResult classifyForVideo (MPImage image、ImageProcessingOptions imageProcessingOptions, long timestampMs)

對提供的影片影格進行分類。只有在使用 ERROR(/RunningMode.VIDEO) 建立 ImageClassifier 時,才能使用這個方法。

您必須提供影片影格的時間戳記 (以毫秒為單位)。輸入時間戳記必須單純遞增。

ImageClassifier 支援下列色彩空間類型:

參數
圖片 要處理的 MediaPipe MPImage 物件。
imageProcessingOptions 用於指定在執行推論之前如何處理輸入圖片的 ImageProcessingOptions
timestampMs 輸入時間戳記 (以毫秒為單位)。
擲回

公開 靜態 ImageClassifier createFromBuffer (內容結構定義、ByteBuffer modelBuffer)

從模型緩衝區和預設的 ImageClassifier.ImageClassifierOptions 建立 ImageClassifier 例項。

參數
context Android ERROR(/Context)
modelBuffer 直接 ByteBuffer 或分類模型的 ERROR(/MappedByteBuffer)
擲回
如果 ImageClassifier 建立期間發生錯誤。

公開 靜態 ImageClassifier createFromFile (內容背景資訊、String modelPath)

從模型檔案和預設的 ImageClassifier.ImageClassifierOptions 建立 ImageClassifier 例項。

參數
context Android ERROR(/Context)
modelPath 資產中的分類模型路徑
擲回
如果 ImageClassifier 建立期間發生錯誤。

公開 靜態 ImageClassifier createFromFile (內容結構定義、檔案 modelFile)

從模型檔案和預設的 ImageClassifier.ImageClassifierOptions 建立 ImageClassifier 例項。

參數
context Android ERROR(/Context)
modelFile 分類模型 File 例項
擲回
IOException 在開啟 tflite 模型檔案時發生 I/O 錯誤時。
如果 ImageClassifier 建立期間發生錯誤。

public static ImageClassifier createFromOptions (內容背景資訊、ImageClassifier.ImageClassifierOptions 選項)

參數
context Android ERROR(/Context)
選項 ImageClassifier.ImageClassifierOptions 執行個體。
擲回
如果 ImageClassifier 建立期間發生錯誤。