MediaPipe インタラクティブ画像セグメンテーション タスクを使用すると、画像を選択したオブジェクトとそれ以外の 2 つの領域に分割できます。このタスクは、画像内の位置を取り、その位置にあるオブジェクトの境界を推定し、オブジェクトの領域を定義する画像データを返します。このタスクを使用すると、画像内のオブジェクトをインタラクティブに選択し、出力を使用して、オブジェクトをハイライト表示するカラー オーバーレイや、オブジェクトの周囲の背景をぼかすなどの効果を画像に適用できます。このタスクは、機械学習(ML)モデルを使用して画像データを処理します。単一の画像、動画ファイル、連続動画ストリームで使用できます。
使ってみる
このタスクを使用するには、対象プラットフォーム向けの次のいずれかの実装ガイドに沿って操作します。以下のプラットフォーム固有のガイドでは、推奨モデルや、推奨構成オプションを含むコード例など、このタスクの基本的な実装について説明します。
タスクの詳細
このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。
機能
- 入力画像の処理 - 処理には、画像の回転、サイズ変更、正規化、色空間変換が含まれます。
タスク入力 | タスクの出力 |
---|---|
|
インタラクティブ画像セグメンテーションは、セグメント化された画像データを出力します。このデータには、設定した構成オプションに応じて、次の 1 つまたは両方が含まれます。
|
構成オプション
このタスクには、次の構成オプションがあります。
オプション名 | 説明 | 値の範囲 | デフォルト値 |
---|---|---|---|
output_category_mask |
True に設定した場合、出力には uint8 画像としてセグメンテーション マスクが含まれます。各ピクセル値は、ピクセルが関心領域にあるオブジェクトの一部であるかどうかを示します。 |
{True, False } |
False |
output_confidence_masks |
True に設定すると、出力には浮動小数点値画像としてセグメンテーション マスクが含まれます。各浮動小数点値は、ピクセルが対象領域にあるオブジェクトの一部であるという信頼度を表します。 |
{True, False } |
True |
display_names_locale |
タスクのモデルのメタデータで指定されている表示名に使用するラベルの言語を設定します(利用可能な場合)。デフォルトは英語で en です。TensorFlow Lite Metadata Writer API を使用して、カスタムモデルのメタデータにローカライズされたラベルを追加できます。 | 言語 / 地域コード | en |
モデル
インタラクティブ画像セグメンテーションは、複数の ML モデルで使用できます。このタスクで開発を開始する際は、ターゲット プラットフォームのデフォルトの推奨モデルから始めます。使用可能な他のモデルでは通常、パフォーマンス、精度、解像度、リソース要件のトレードオフが行われます。また、追加機能が含まれている場合もあります。
MagicTouch モデル(推奨)
このモデルは、対象領域の画像座標が指定されたセグメントを特定します。このモデルは、MobileNetV3 アーキテクチャに似た畳み込みニューラル ネットワークとカスタマイズされたデコーダを使用します。
モデル名 | 入力シェイプ | 量子化のタイプ | モデルカード | バージョン |
---|---|---|---|---|
MagicTouch | 512 x 512 x 4 | なし(float32) | 情報 | 最新 |
タスクのベンチマーク
上記の事前トレーニング済みモデルに基づくパイプライン全体のタスクのベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。
モデル名 | CPU レイテンシ | GPU レイテンシ |
---|---|---|
MagicTouch | 130.11 ミリ秒 | 67.25 ミリ秒 |