画像にエンベディング抽出を実行します。
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 のオプション。 |
|
パブリック メソッド
継承されるメソッド
パブリック メソッド
public static double cosineSimilarity (Embedding u、Embedding v)
パラメータ
| 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)
指定された単一の画像に対してエンベディング抽出を行います。このメソッドは、ImageEmbedder が ERROR(/RunningMode.IMAGE) で作成された場合にのみ使用します。
ImageEmbedder は、次の色空間タイプをサポートしています。
パラメータ
| イメージ | 処理する MediaPipe MPImage オブジェクト。 |
|---|---|
| imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions。 |
例外
| 内部エラーが発生した場合。 |
public ImageEmbedderResult embed (MPImage 画像)
デフォルトの画像処理オプションを使用して、指定された単一の画像に対してエンベディング抽出を実行します。つまり、画像全体を関心領域として使用し、回転は適用しません。このメソッドは、ImageEmbedder が ERROR(/RunningMode.IMAGE) で作成された場合にのみ使用します。
ImageEmbedder は、次の色空間タイプをサポートしています。
パラメータ
| イメージ | 処理する MediaPipe MPImage オブジェクト。 |
|---|
例外
| 内部エラーが発生した場合。 |
public void embedAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
ライブ画像データを送信してエンベディング抽出を行います。結果は ImageEmbedder.ImageEmbedderOptions で提供される OutputHandler.ResultListener で確認できます。このメソッドは、ImageEmbedder が ERROR(/RunningMode.LIVE_STREAM) で作成された場合にのみ使用します。
入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageEmbedder は、次の色空間タイプをサポートしています。
パラメータ
| イメージ | 処理する MediaPipe MPImage オブジェクト。 |
|---|---|
| imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions。 |
| timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
| 内部エラーが発生した場合。 |
public void embedAsync (MPImage image, long timestampMs)
ライブ画像データを送信して、デフォルトの画像処理オプション(つまり、画像全体を関心領域として使用し、回転は適用しない)でエンベディング抽出を実行します。結果は、ImageEmbedder.ImageEmbedderOptions で提供される OutputHandler.ResultListener を介して取得できます。このメソッドは、ImageEmbedder が ERROR(/RunningMode.LIVE_STREAM) で作成された場合にのみ使用します。
入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageEmbedder は、次の色空間タイプをサポートしています。
パラメータ
| イメージ | 処理する MediaPipe MPImage オブジェクト。 |
|---|---|
| timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
| 内部エラーが発生した場合。 |
public ImageEmbedderResult embedForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
指定された動画フレームに対してエンベディング抽出を行います。このメソッドは、ImageEmbedder が ERROR(/RunningMode.VIDEO) で作成された場合にのみ使用します。
動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageEmbedder は、次の色空間タイプをサポートしています。
パラメータ
| イメージ | 処理する MediaPipe MPImage オブジェクト。 |
|---|---|
| imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions。 |
| timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
| 内部エラーが発生した場合。 |
public ImageEmbedderResult embedForVideo (MPImage image, long timestampMs)
デフォルトの画像処理オプションを使用して、指定された動画フレームに対してエンベディング抽出を実行します。つまり、画像全体を関心領域として使用し、回転は適用しません。このメソッドは、ImageEmbedder が ERROR(/RunningMode.VIDEO) で作成された場合にのみ使用します。
動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。
ImageEmbedder は、次の色空間タイプをサポートしています。
パラメータ
| イメージ | 処理する MediaPipe MPImage オブジェクト。 |
|---|---|
| timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
| 内部エラーが発生した場合。 |