画像に対してオブジェクト検出を実行します。
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=BOUNDARIES
とcoordinate_type=RATIO
を指定する必要があります。
- サイズ
- クラスのテンソル(
kTfLiteFloat32
):- サイズ
[1 x num_results]
のテンソル。各値はクラスの整数インデックスを表します。 - ラベルマップが
TENSOR_VALUE_LABELS
関連ファイルとしてメタデータに適用されている場合、テンソル値をラベルに変換するために使用されます。
- サイズ
- スコアテンソル(
kTfLiteFloat32
):- サイズ
[1 x num_results]
のテンソル。各値は検出されたオブジェクトのスコアを表します。
- サイズ
- 検出テンソルの数(
kTfLiteFloat32
):- サイズ
[1]
のテンソルとしての整数 num_results。
- サイズ
- ロケーション テンソル(
このようなモデルの例については、TensorFlow Hub をご覧ください。
ネストされたクラス
クラス | ObjectDetector.ObjectDetectorOptions | ObjectDetector の設定オプション。 |
パブリック メソッド
継承されるメソッド
パブリック メソッド
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 つの画像に対して、デフォルトの画像処理オプションを使用して(回転は適用せずに)オブジェクト検出を実行します。このメソッドは、ObjectDetector
が ERROR(/RunningMode.IMAGE)
で作成された場合にのみ使用します。
ObjectDetector
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|
例外
内部エラーが発生した場合。 |
public ObjectDetectorResult detect (MPImage image, ImageProcessingOptions imageProcessingOptions)
指定された 1 つの画像に対してオブジェクト検出を実行します。このメソッドは、ObjectDetector
が ERROR(/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
で取得できます。このメソッドは、ObjectDetector
が ERROR(/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
を介して取得できます。このメソッドは、ObjectDetector
が ERROR(/RunningMode.LIVE_STREAM)
で作成された場合にのみ使用します。
入力画像がオブジェクト検出に送信されたタイミングを示すタイムスタンプ(ミリ秒単位)を指定する必要があります。入力タイムスタンプは単調に増加している必要があります。
ObjectDetector
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
内部エラーが発生した場合。 |
public ObjectDetectorResult detectForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
指定された動画フレームに対してオブジェクト検出を実行します。このメソッドは、ObjectDetector
が ERROR(/RunningMode.VIDEO)
で作成された場合にのみ使用します。
動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。
ObjectDetector
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
imageProcessingOptions | 推論を実行する前に入力画像を処理する方法を指定する ImageProcessingOptions 。このタスクでは、関心領域はサポートされていません。ImageProcessingOptions.regionOfInterest() を指定すると、このメソッドは IllegalArgumentException をスローします。 |
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
IllegalArgumentException | ImageProcessingOptions が関心のある地域を指定している場合。 |
---|---|
内部エラーが発生した場合。 |
public ObjectDetectorResult detectForVideo (MPImage image, long timestampMs)
デフォルトの画像処理オプション(回転は適用されません)を使用して、指定された動画フレームに対してオブジェクト検出を実行します。このメソッドは、ObjectDetector
が ERROR(/RunningMode.VIDEO)
で作成された場合にのみ使用します。
動画フレームのタイムスタンプ(ミリ秒単位)を提供する必要があります。入力タイムスタンプは単調に増加している必要があります。
ObjectDetector
は、次の色空間タイプをサポートしています。
パラメータ
イメージ | 処理する MediaPipe MPImage オブジェクト。 |
---|---|
timestampMs | 入力タイムスタンプ(ミリ秒単位)。 |
例外
内部エラーが発生した場合。 |