画像の分類を行います。
API では、TFLite モデル メタデータ(省略可、ただし強く推奨)を含む TFLite モデルを想定しています。
この API は、1 つの画像入力テンソルと 1 つ以上の出力テンソルのモデルをサポートします。より具体的な要件は次のとおりです。
- 入力画像のテンソル(
kTfLiteUInt8
/kTfLiteFloat32
)- サイズ
[batch x height x width x channels]
の画像入力。 - バッチ推論はサポートされていません(
batch
は 1 である必要があります)。 - RGB 入力のみがサポートされています(
channels
は 3 にする必要があります)。 - 型が kTfLiteFloat32 の場合、入力の正規化のために NormalizationOptions をメタデータにアタッチする必要があります。
- サイズ
- 次の条件を満たす 1 つ以上の出力テンソル(
kTfLiteUInt8
/kTfLiteFloat32
):N
クラスと 2 次元または 4 次元([1 x N]
または[1 x 1 x 1 x N]
)- オプション(ただし推奨)のラベルマップを、TENSOR_AXIS_LABELS タイプの AssociatedFile-s として指定し、1 行に 1 つのラベルを含めます。最初のそのような AssociatedFile(存在する場合)が、結果の
class_name
フィールドに入力されます。display_name
フィールドは、作成時に使用されたImageClassifierOptions
のdisplay_names_locale
フィールド(デフォルトでは「en」)とロケールが一致する AssociatedFile(存在する場合)から入力されます(デフォルトでは英語)。これらのいずれも使用できない場合は、結果のindex
フィールドのみが入力されます。 - ScoreCalibrationOptions と TENSOR_AXIS_SCORE_CALIBRATION タイプの AssociatedFile を使用して、オプションのスコア調整を添付できます。詳しくは、 metadata_schema.fbs をご覧ください。
このようなモデルの例として、 TensorFlow Hub をご覧ください。
ネストされたクラス
クラス | ImageClassifier.ImageClassifierOptions | 設定と ImageClassifier のオプション。 |
パブリック メソッド
継承されるメソッド
パブリック メソッド
public ImageClassifierResult classify (MPImage 画像)
指定された単一の画像に対して、デフォルトの画像処理オプションを使用して分類を実行します。つまり、画像全体を関心領域として使用し、回転は適用しません。このメソッドは、ImageClassifier
が ERROR(/RunningMode.IMAGE)
で作成された場合にのみ使用します。
ImageClassifier
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|
例外
内部エラーが発生した場合。 |
public ImageClassifierResult classify (MPImage image, ImageProcessingOptions imageProcessingOptions)
指定された 1 つの画像に対して分類を実行します。このメソッドは、ImageClassifier
が ERROR(/RunningMode.IMAGE)
で作成された場合にのみ使用します。
ImageClassifier
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions 。 |
例外
内部エラーが発生した場合。 |
public void classifyAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
ライブ画像データを送信して分類を行います。結果は ImageClassifier.ImageClassifierOptions
で提供される OutputHandler.ResultListener
を介して取得できます。このメソッドは、ImageClassifier
が ERROR(/RunningMode.LIVE_STREAM)
で作成された場合にのみ使用します。
入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageClassifier
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions 。 |
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
内部エラーが発生した場合。 |
public void classifyAsync (MPImage image, long timestampMs)
ライブ画像データを送信して、デフォルトの画像処理オプションを使用して分類を行います。つまり、画像全体を関心領域として使用し、回転は適用しません。結果は ImageClassifier.ImageClassifierOptions
で提供される OutputHandler.ResultListener
で取得できます。このメソッドは、ImageClassifier
が ERROR(/RunningMode.LIVE_STREAM)
で作成された場合にのみ使用します。
入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageClassifier
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
内部エラーが発生した場合。 |
public ImageClassifierResult classifyForVideo (MPImage image, long timestampMs)
指定された動画フレームに対して、デフォルトの画像処理オプションを使用して分類を実行します。つまり、画像全体を関心領域として使用し、回転は適用しません。このメソッドは、ImageClassifier
が ERROR(/RunningMode.VIDEO)
で作成された場合にのみ使用します。
動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageClassifier
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
内部エラーが発生した場合。 |
public ImageClassifierResult classifyForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
指定された動画フレームの分類を実行します。このメソッドは、ImageClassifier
が ERROR(/RunningMode.VIDEO)
で作成された場合にのみ使用します。
動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageClassifier
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions 。 |
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
内部エラーが発生した場合。 |
public static ImageClassifier createFromBuffer (コンテキスト コンテキスト、ByteBuffer modelBuffer)
モデルバッファとデフォルトの ImageClassifier.ImageClassifierOptions
から ImageClassifier
インスタンスを作成します。
パラメータ
コンテキスト | Android ERROR(/Context) 。 |
---|---|
modelBuffer | 分類モデルの直接の ByteBuffer または ERROR(/MappedByteBuffer) 。 |
例外
ImageClassifier の作成中にエラーが発生した場合。 |
public static ImageClassifier createFromFile (コンテキスト コンテキスト、String modelPath)
モデルファイルとデフォルトの ImageClassifier.ImageClassifierOptions
から ImageClassifier
インスタンスを作成します。
パラメータ
コンテキスト | Android ERROR(/Context) 。 |
---|---|
modelPath | 分類モデルへのパスを指定します。 |
例外
ImageClassifier の作成中にエラーが発生した場合。 |
public static ImageClassifier createFromFile (コンテキスト コンテキスト、File modelFile)
モデルファイルとデフォルトの ImageClassifier.ImageClassifierOptions
から ImageClassifier
インスタンスを作成します。
パラメータ
コンテキスト | Android ERROR(/Context) 。 |
---|---|
modelFile | 分類モデルの File インスタンス。 |
例外
IOException | tflite モデルファイルを開くときに I/O エラーが発生した場合 |
---|---|
ImageClassifier の作成中にエラーが発生した場合。 |
public static ImageClassifier createFromOptions (コンテキスト コンテキスト、ImageClassifier.ImageClassifierOptions オプション)
ImageClassifier.ImageClassifierOptions
インスタンスから ImageClassifier
インスタンスを作成します。
パラメータ
コンテキスト | Android ERROR(/Context) 。 |
---|---|
オプション | ImageClassifier.ImageClassifierOptions インスタンス。 |
例外
ImageClassifier の作成中にエラーが発生した場合。 |