ObjectDetector

public final class ObjectDetector

画像に対してオブジェクト検出を実行します。

API は、TFLite モデル メタデータを含む TFLite モデルを想定しています。

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

  • 入力画像のテンソル(kTfLiteUInt8/kTfLiteFloat32
    • サイズ [batch x height x width x channels] の画像入力。
    • バッチ推論はサポートされていません(batch は 1 である必要があります)。
    • RGB 入力のみがサポートされています(channels は 3 にする必要があります)。
    • 型が kTfLiteFloat32 の場合、入力の正規化のために NormalizationOptions をメタデータにアタッチする必要があります。
  • 出力テンソルは、DetectionPostProcess 演算の 4 つの出力でなければなりません。例:
    • ロケーション テンソル(kTfLiteFloat32):
      • サイズ [1 x num_results x 4] のテンソル。境界ボックスを表す内部配列 [上、左、右、下]。
      • BoundingBoxProperties はメタデータに関連付ける必要があり、type=BOUNDARIEScoordinate_type=RATIO を指定する必要があります。
    • クラスのテンソル(kTfLiteFloat32):
      • サイズ [1 x num_results] のテンソル。各値はクラスの整数インデックスを表します。
      • ラベルマップが TENSOR_VALUE_LABELS 関連ファイルとしてメタデータに適用されている場合、テンソル値をラベルに変換するために使用されます。
    • スコアテンソル(kTfLiteFloat32):
      • サイズ [1 x num_results] のテンソル。各値は検出されたオブジェクトのスコアを表します。
    • 検出テンソルの数(kTfLiteFloat32):
      • サイズ [1] のテンソルとしての整数 num_results。

このようなモデルの例については、TensorFlow Hub をご覧ください。

ネストされたクラス

クラス ObjectDetector.ObjectDetectorOptions ObjectDetector の設定オプション。 

パブリック メソッド

static ObjectDetector
createFromBuffer(コンテキスト コンテキスト、ByteBuffer modelBuffer)
モデルバッファとデフォルトの ObjectDetector.ObjectDetectorOptions から ObjectDetector インスタンスを作成します。
static ObjectDetector
createFromFile(コンテキスト コンテキスト、String modelPath)
モデルファイルとデフォルトの ObjectDetector.ObjectDetectorOptions から ObjectDetector インスタンスを作成します。
static ObjectDetector
createFromFile(コンテキスト コンテキスト、File modelFile)
モデルファイルとデフォルトの ObjectDetector.ObjectDetectorOptions から ObjectDetector インスタンスを作成します。
static ObjectDetector
createFromOptions(コンテキスト コンテキスト、ObjectDetector.ObjectDetectorOptions detectionOptions)
ObjectDetector.ObjectDetectorOptions から ObjectDetector インスタンスを作成します。
ObjectDetectorResult
detectMPImage 画像)
指定された単一の画像に対して、デフォルトの画像処理オプション(
ObjectDetectorResult
detectMPImage image、ImageProcessingOptions imageProcessingOptions)
指定された 1 つの画像に対してオブジェクト検出を実行します。
void
detectAsyncMPImage image、ImageProcessingOptions imageProcessingOptions、long timestampMs)
ライブ画像データを送信してオブジェクト検出を行います。結果は ObjectDetector.ObjectDetectorOptions で提供される OutputHandler.ResultListener で取得できます。
void
detectAsyncMPImage image, long timestampMs)
ライブ画像データを送信して、デフォルトの画像処理オプションでオブジェクト検出を行います。
ObjectDetectorResult
detectForVideoMPImage image、ImageProcessingOptions imageProcessingOptions、long timestampMs)
指定された動画フレームに対してオブジェクト検出を実行します。
ObjectDetectorResult
detectForVideoMPImage 画像、long timestampMs)
指定された動画フレームに対して、デフォルトの画像処理オプション(

継承されるメソッド

パブリック メソッド

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

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

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

public static ObjectDetector createFromFile (コンテキスト コンテキスト、String modelPath)

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

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

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

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

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

public static ObjectDetector createFromOptions (Context context、ObjectDetector.ObjectDetectorOptions detectionOptions)

ObjectDetector.ObjectDetectorOptions から ObjectDetector インスタンスを作成します。

パラメータ
コンテキスト Android ERROR(/Context)
detectorOptions ObjectDetector.ObjectDetectorOptions インスタンス。
例外
ObjectDetector の作成中にエラーが発生した場合。

public ObjectDetectorResult detect MPImage image)

指定された 1 つの画像に対して、デフォルトの画像処理オプションを使用して(回転は適用せずに)オブジェクト検出を実行します。このメソッドは、ObjectDetectorERROR(/RunningMode.IMAGE) で作成された場合にのみ使用します。

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

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

public ObjectDetectorResult detect (MPImage image, ImageProcessingOptions imageProcessingOptions)

指定された 1 つの画像に対してオブジェクト検出を実行します。このメソッドは、ObjectDetectorERROR(/RunningMode.IMAGE) で作成された場合にのみ使用します。

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

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
imageProcessingOptions 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions。このタスクでは、関心領域はサポートされていませんImageProcessingOptions.regionOfInterest() を指定すると、このメソッドは IllegalArgumentException をスローします。
例外
IllegalArgumentException ImageProcessingOptions が関心のある地域を指定している場合。
内部エラーが発生した場合。

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

ライブ画像データを送信してオブジェクト検出を行います。結果は ObjectDetector.ObjectDetectorOptions で提供される OutputHandler.ResultListener で取得できます。このメソッドは、ObjectDetectorERROR(/RunningMode.LIVE_STREAM) で作成された場合にのみ使用します。

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

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

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
imageProcessingOptions 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions。このタスクでは、関心領域はサポートされていませんImageProcessingOptions.regionOfInterest() を指定すると、このメソッドは IllegalArgumentException をスローします。
timestampMs 入力タイムスタンプ(ミリ秒単位)。
例外
IllegalArgumentException ImageProcessingOptions が関心のある地域を指定している場合。
内部エラーが発生した場合。

public void detectAsync (MPImage image, long timestampMs)

ライブ画像データを送信して、デフォルトの画像処理オプション(回転は適用されません)でオブジェクト検出を行います。結果は、ObjectDetector.ObjectDetectorOptions で提供される OutputHandler.ResultListener を介して取得できます。このメソッドは、ObjectDetectorERROR(/RunningMode.LIVE_STREAM) で作成された場合にのみ使用します。

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

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

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

public ObjectDetectorResult detectForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

指定された動画フレームに対してオブジェクト検出を実行します。このメソッドは、ObjectDetectorERROR(/RunningMode.VIDEO) で作成された場合にのみ使用します。

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

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

パラメータ
イメージ 処理する MediaPipe MPImage オブジェクト。
imageProcessingOptions 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions。このタスクでは、関心領域はサポートされていませんImageProcessingOptions.regionOfInterest() を指定すると、このメソッドは IllegalArgumentException をスローします。
timestampMs 入力タイムスタンプ(ミリ秒単位)。
例外
IllegalArgumentException ImageProcessingOptions が関心のある地域を指定している場合。
内部エラーが発生した場合。

public ObjectDetectorResult detectForVideo (MPImage image, long timestampMs)

デフォルトの画像処理オプション(回転は適用されません)を使用して、指定された動画フレームに対してオブジェクト検出を実行します。このメソッドは、ObjectDetectorERROR(/RunningMode.VIDEO) で作成された場合にのみ使用します。

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

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

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