ImageEmbedder

public final class ImageEmbedder

画像にエンベディング抽出を実行します。

API では、TFLite モデル メタデータ(省略可、ただし強く推奨)を含む TFLite モデルを想定しています。

この API は、1 つの画像入力テンソルと 1 つ以上の出力テンソルのモデルをサポートします。より具体的な要件は次のとおりです。

  • 入力画像のテンソル(kTfLiteUInt8/kTfLiteFloat32
    • サイズ [batch x height x width x channels] の画像入力。
    • バッチ推論はサポートされていません(batch は 1 である必要があります)。
    • RGB 入力のみがサポートされています(channels は 3 にする必要があります)。
    • 型が kTfLiteFloat32 の場合、入力の正規化のために NormalizationOptions をメタデータにアタッチする必要があります。
  • 形状 [1 x N] の少なくとも 1 つの出力テンソル(kTfLiteUInt8/kTfLiteFloat32)。ここで、N は生成されたエンベディングの次元数です。

ネストされたクラス

クラス ImageEmbedder.ImageEmbedderOptions 設定と ImageEmbedder のオプション。 

パブリック メソッド

static double
cosineSimilarityEmbedding u、Embedding v)
2 つの Embedding オブジェクト間のコサイン類似度を計算するユーティリティ関数。
static ImageEmbedder
createFromBuffer(コンテキスト コンテキスト、ByteBuffer modelBuffer)
モデルバッファとデフォルトの ImageEmbedder.ImageEmbedderOptions から ImageEmbedder インスタンスを作成します。
static ImageEmbedder
createFromFile(コンテキスト コンテキスト、String modelPath)
モデルファイルとデフォルトの ImageEmbedder.ImageEmbedderOptions から ImageEmbedder インスタンスを作成します。
static ImageEmbedder
createFromFile(コンテキスト コンテキスト、File modelFile)
モデルファイルとデフォルトの ImageEmbedder.ImageEmbedderOptions から ImageEmbedder インスタンスを作成します。
static ImageEmbedder
createFromOptions(コンテキスト コンテキスト、ImageEmbedder.ImageEmbedderOptions オプション)
ImageEmbedder.ImageEmbedderOptions インスタンスから ImageEmbedder インスタンスを作成します。
ImageEmbedderResult
embedMPImage image, ImageProcessingOptions imageProcessingOptions)
指定された単一の画像に対してエンベディング抽出を行います。
ImageEmbedderResult
embedMPImage イメージ)
指定された単一の画像に対して、デフォルトの画像処理オプションを使用してエンベディング抽出を実行します。つまり、
void
embedAsyncMPImage image、ImageProcessingOptions imageProcessingOptions、long timestampMs)
ライブ画像データを送信してエンベディング抽出を行います。結果は ImageEmbedder.ImageEmbedderOptions で提供される OutputHandler.ResultListener で確認できます。
void
embedAsyncMPImage 画像、long timestampM)
ライブ画像データを送信して、デフォルトの画像処理オプション(
ImageEmbedderResult
embedForVideoMPImage イメージ、ImageProcessingOptions imageProcessingOptions、long timestampMs)
指定された動画フレームに対してエンベディング抽出を行います。
ImageEmbedderResult
embedForVideoMPImage 画像、long timestampM)
指定された動画フレームに対して、デフォルトの画像処理オプションを使用してエンベディング抽出を実行します。

継承されるメソッド

パブリック メソッド

public static double cosineSimilarity Embedding u、Embedding v)

2 つの Embedding オブジェクト間のコサイン類似度を計算するユーティリティ関数。

パラメータ
u
v
例外
IllegalArgumentException エンベディングのタイプ(浮動小数点数と量子化タイプ)、サイズ、L2 ノルムが 0 の場合。

public static ImageEmbedder createFromBuffer (コンテキスト コンテキスト、ByteBuffer modelBuffer)

モデルバッファとデフォルトの ImageEmbedder.ImageEmbedderOptions から ImageEmbedder インスタンスを作成します。

パラメータ
コンテキスト Android ERROR(/Context)
modelBuffer エンベディング モデルの直接の ByteBuffer または ERROR(/MappedByteBuffer)
例外
ImageEmbedder の作成中にエラーが発生した場合。

public static ImageEmbedder createFromFile (コンテキスト コンテキスト、文字列 modelPath)

モデルファイルとデフォルトの ImageEmbedder.ImageEmbedderOptions から ImageEmbedder インスタンスを作成します。

パラメータ
コンテキスト Android ERROR(/Context)
modelPath アセット内のエンベディング モデルへのパス。
例外
ImageEmbedder の作成中にエラーが発生した場合。

public static ImageEmbedder createFromFile (コンテキスト コンテキスト、File modelFile)

モデルファイルとデフォルトの ImageEmbedder.ImageEmbedderOptions から ImageEmbedder インスタンスを作成します。

パラメータ
コンテキスト Android ERROR(/Context)
modelFile エンベディング モデルの File インスタンス。
例外
IOException tflite モデルファイルを開くときに I/O エラーが発生した場合
ImageEmbedder の作成中にエラーが発生した場合。

public static ImageEmbedder createFromOptions (コンテキスト コンテキスト、ImageEmbedder.ImageEmbedderOptions オプション)

ImageEmbedder.ImageEmbedderOptions インスタンスから ImageEmbedder インスタンスを作成します。

パラメータ
コンテキスト Android ERROR(/Context)
オプション ImageEmbedder.ImageEmbedderOptions インスタンス。
例外
ImageEmbedder の作成中にエラーが発生した場合。

public ImageEmbedderResult embed (MPImage image, ImageProcessingOptions imageProcessingOptions)

指定された単一の画像に対してエンベディング抽出を行います。このメソッドは、ImageEmbedderERROR(/RunningMode.IMAGE) で作成された場合にのみ使用します。

ImageEmbedder は、次の色空間タイプをサポートしています。

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
imageProcessingOptions 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions
例外
内部エラーが発生した場合。

public ImageEmbedderResult embed MPImage 画像)

デフォルトの画像処理オプションを使用して、指定された単一の画像に対してエンベディング抽出を実行します。つまり、画像全体を関心領域として使用し、回転は適用しません。このメソッドは、ImageEmbedderERROR(/RunningMode.IMAGE) で作成された場合にのみ使用します。

ImageEmbedder は、次の色空間タイプをサポートしています。

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
例外
内部エラーが発生した場合。

public void embedAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

ライブ画像データを送信してエンベディング抽出を行います。結果は ImageEmbedder.ImageEmbedderOptions で提供される OutputHandler.ResultListener で確認できます。このメソッドは、ImageEmbedderERROR(/RunningMode.LIVE_STREAM) で作成された場合にのみ使用します。

入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。

ImageEmbedder は、次の色空間タイプをサポートしています。

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
imageProcessingOptions 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions
timestampMs 入力タイムスタンプ(ミリ秒単位)。
例外
内部エラーが発生した場合。

public void embedAsync (MPImage image, long timestampMs)

ライブ画像データを送信して、デフォルトの画像処理オプション(つまり、画像全体を関心領域として使用し、回転は適用しない)でエンベディング抽出を実行します。結果は、ImageEmbedder.ImageEmbedderOptions で提供される OutputHandler.ResultListener を介して取得できます。このメソッドは、ImageEmbedderERROR(/RunningMode.LIVE_STREAM) で作成された場合にのみ使用します。

入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。

ImageEmbedder は、次の色空間タイプをサポートしています。

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
timestampMs 入力タイムスタンプ(ミリ秒単位)。
例外
内部エラーが発生した場合。

public ImageEmbedderResult embedForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

指定された動画フレームに対してエンベディング抽出を行います。このメソッドは、ImageEmbedderERROR(/RunningMode.VIDEO) で作成された場合にのみ使用します。

動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。

ImageEmbedder は、次の色空間タイプをサポートしています。

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
imageProcessingOptions 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions
timestampMs 入力タイムスタンプ(ミリ秒単位)。
例外
内部エラーが発生した場合。

public ImageEmbedderResult embedForVideo (MPImage image, long timestampMs)

デフォルトの画像処理オプションを使用して、指定された動画フレームに対してエンベディング抽出を実行します。つまり、画像全体を関心領域として使用し、回転は適用しません。このメソッドは、ImageEmbedderERROR(/RunningMode.VIDEO) で作成された場合にのみ使用します。

動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。

ImageEmbedder は、次の色空間タイプをサポートしています。

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
timestampMs 入力タイムスタンプ(ミリ秒単位)。
例外
内部エラーが発生した場合。