インタラクティブ画像セグメンテーション タスクガイド

MediaPipe のインタラクティブ画像セグメンタ タスクでは、画像を 2 つの領域(選択されたオブジェクトとそれ以外のすべての領域)に分割できます。このタスクは、画像内の位置を取得し、その位置にあるオブジェクトの境界を推定して、オブジェクトの領域を定義する画像データを返します。このタスクを使用すると、画像内のオブジェクトをインタラクティブに選択し、その出力を使用して画像に効果を適用できます。たとえば、カラー オーバーレイでオブジェクトをハイライト表示したり、周囲の背景をぼかしたりできます。このタスクは、機械学習(ML)モデルで画像データを操作し、単一の画像、動画ファイル、連続動画ストリームで使用できます。

試してみる

使ってみる

このタスクの使用を開始するには、ターゲット プラットフォームの実装ガイドのいずれかに沿って操作します。以下のプラットフォーム固有のガイドでは、推奨モデルや推奨構成オプションを含むコードサンプルなど、このタスクの基本的な実装について説明します。

タスクの詳細

このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。

機能

  • 入力画像処理 - 画像の回転、サイズ変更、正規化、色空間変換などを行います。
タスクの入力 タスクの出力
  • 画像内のオブジェクトのスポットの座標
  • 処理する画像ファイル
インタラクティブ画像セグメンテーションは、セグメント化された画像データを出力します。これには、設定した構成オプションに応じて次のいずれかまたは両方を含めることができます。
  • CATEGORY_MASK: セグメント化されたマスクを uint8 形式の画像として含むリスト。各ピクセル値は、対象の領域にあるオブジェクトの一部であるかどうかを示します。
  • CONFIDENCE_MASK: ピクセル値を持つ float32 形式のセグメント化されたマスクを含むチャネルのリスト。各ピクセル値は、対象の領域にある物体の一部であることの信頼度を示します。

構成オプション

このタスクには、次の構成オプションがあります。

オプション名 説明 値の範囲 デフォルト値
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 モデルで使用できます。このタスクで開発を開始するときは、ターゲット プラットフォームのデフォルトの推奨モデルから始めます。他の利用可能なモデルでは、通常、パフォーマンス、精度、解像度、リソース要件のトレードオフがあり、場合によっては追加機能が含まれていることもあります。

このモデルは、指定された画像座標のセグメントを識別します。このモデルは、MobileNetV3 アーキテクチャに類似した、カスタマイズされたデコーダを備えた畳み込みニューラル ネットワークを使用します。

モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
MagicTouch 512×512×4 なし(float32) 情報 最新

タスク ベンチマーク

上記の事前トレーニング済みモデルに基づくパイプライン全体のタスク ベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。

モデル名 CPU レイテンシ GPU レイテンシ
MagicTouch 130.11 ミリ秒 67.25 ミリ秒