画像セグメンテーション ガイド

MediaPipe Image Segmenter タスクでは、事前定義されたリソースに基づいて画像をリージョンに分割 できます。この機能を使用して、特定のオブジェクトや テクスチャを作成し、背景のぼかしなどの視覚効果を適用します。このタスク には、個人および顧客をセグメント化するために特別に 次のような特徴を備えています。

  • 人物と背景
  • 人の髪のみ
  • 人の髪、顔、肌、衣服、アクセサリー

このタスクは、画像データに対して、単一の 連続的な動画ストリームも生成できます。セグメント化されたリージョンのリストが出力されます。 使用するモデルに応じて、画像内のオブジェクトや領域を表現する 選択します。

<ph type="x-smartling-placeholder"></ph> お試しください。

使ってみる

以下の実装ガイドのいずれかに沿って、このタスクの使用を開始する ターゲット プラットフォームです。これらのプラットフォーム固有のガイドでは、基本的な このタスクの実装方法(推奨モデル、コードサンプルを含む) 推奨される構成オプションは次のとおりです。

タスクの詳細

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

機能

  • 入力画像処理 - 画像の回転、サイズ変更、 色空間変換などがあります
タスクの入力 タスク出力
入力は、次のいずれかのデータ型になります。
<ph type="x-smartling-placeholder">
    </ph>
  • 静止画像
  • デコードされた動画フレーム
  • ライブ動画フィード
画像セグメンタは、セグメント化された画像データを出力します。これには、1 つまたは複数の 設定した構成オプションに応じて、次のいずれかを選択できます。
<ph type="x-smartling-placeholder">
    </ph>
  • CATEGORY_MASK: セグメント化されたマスクを含むリスト uint8 形式のイメージとして各ピクセル値は、モデルでサポートされている特定のセグメント カテゴリに属しているかどうかを示します。
  • CONFIDENCE_MASK: 特定の属性を含むチャネルのリスト float32 形式のピクセル値を持つセグメント化されたマスク。各ピクセル値は、そのピクセルが特定のカテゴリに属する信頼度を示します。 サポートしています。

構成オプション

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

オプション名 説明 値の範囲 デフォルト値
running_mode タスクの実行モードを設定します。3 つの モード:

IMAGE: 単一画像入力のモード。

VIDEO: 動画のデコードされたフレームのモード。

LIVE_STREAM: 入力のライブ配信のモード カメラからのデータなどです。 このモードでは、resultListener は 結果を受け取るリスナーを設定するために呼び出されます。 使用できます。
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
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
result_callback セグメンテーション結果を受け取るように結果リスナーを設定します。 LIVE_STREAM モードの場合、非同期で実行できます。 実行モードが LIVE_STREAM に設定されている場合にのみ使用できます なし なし

モデル

画像セグメンタは複数の ML モデルで使用できます。次のほとんど セグメンテーション モデルが構築、トレーニングされ、 できます。ただし、DeepLab-v3 モデルは一般的なコンセプトとして構築されています。 画像セグメンタを使用できます。アプリケーションに最適なモデルを選択します。

<ph type="x-smartling-placeholder">

自撮り写真のセグメンテーション モデル

このモデルは人物のポートレートをセグメント化して 画像の背景を変更できますこのモデルは 2 つのカテゴリを出力します。 背景は 0 番目、人物は 1 番目です。このモデルには、 正方形と横長のバージョンがあり、入力の形状が多様で 入力が常にこの形状になっているアプリケーションでは、 使用できます。

モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
<ph type="x-smartling-placeholder"></ph> SelfieSegmenter(スクエア) 256 x 256 浮動小数点数 16 <ph type="x-smartling-placeholder"></ph> 情報 <ph type="x-smartling-placeholder"></ph> 最新
<ph type="x-smartling-placeholder"></ph> SelfieSegmenter(横向き) 144×256 浮動小数点数 16 <ph type="x-smartling-placeholder"></ph> 情報 <ph type="x-smartling-placeholder"></ph> 最新

髪のセグメンテーション モデル

このモデルは人物の画像を撮り、その人の頭の毛を特定し、 髪の画像セグメンテーション マップを出力します。このモデルは、 髪の色の変更や、その他のヘアエフェクトの適用などです。このモデルは以下を出力する: セグメンテーション カテゴリ:

0 - background
1 - hair
モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
<ph type="x-smartling-placeholder"></ph> HairSegmenter 512×512 なし(float32) <ph type="x-smartling-placeholder"></ph> 情報 <ph type="x-smartling-placeholder"></ph> 最新

マルチクラス自撮り写真のセグメンテーション モデル

このモデルは人物の画像を撮り、次のようなさまざまな領域の位置を特定します。 髪、肌、衣服などの画像分類マップを出力します。 このモデルを使用すると、画像や映像内の人物にさまざまな効果を適用できます 動画をご覧ください。このモデルは、次のセグメンテーション カテゴリを出力します。

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
<ph type="x-smartling-placeholder"></ph> SelfieMulticlass(256 x 256) 256 x 256 なし(float32) <ph type="x-smartling-placeholder"></ph> 情報 <ph type="x-smartling-placeholder"></ph> 最新

DeepLab-v3 モデル

このモデルは、背景、モデル、特徴など、さまざまなカテゴリのセグメントを識別します。 人、猫、犬、鉢植えの植物です。このモデルでは、遠心空間ピラミッドを使用する より長い距離の情報をキャプチャします。詳細については、次をご覧ください: DeepLab-v3

モデル名 入力シェイプ 量子化タイプ バージョン
<ph type="x-smartling-placeholder"></ph> DeepLab-V3 257×257 なし(float32) <ph type="x-smartling-placeholder"></ph> 最新

タスク ベンチマーク

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

モデル名 CPU レイテンシ GPU レイテンシ
SelfieSegmenter(スクエア) 33.46 ミリ秒 35.15 ミリ秒
SelfieSegmenter(横向き) 34.19 ミリ秒 33.55 ミリ秒
HairSegmenter 57.90 ミリ秒 52.14 ミリ秒
SelfieMulticlass(256 x 256) 217.76 ミリ秒 71.24 ミリ秒
DeepLab-V3 123.93 ミリ秒 103.30 ミリ秒