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

MediaPipe Interactive Image Segmenter タスクは、画像内の位置を取得し、境界線を推定 そのオブジェクトのセグメンテーションを画像として返します。 分析できます以下では、Python SDK でインタラクティブ イメージ セグメンタを使用する方法を あります。このモジュールで取り上げる機能、モデル、構成の オプションについては、概要をご覧ください。

サンプルコード

インタラクティブ画像セグメンタのコード例は、この実装の完全な実装を示しています。 タスクを示しています。このコードは、このタスクをテストして、 独自のインタラクティブな画像セグメンテーション アプリケーションの構築に着手しました。Google Chat では インタラクティブ画像 セグメンタを表示、実行、編集する サンプルコード できます。

セットアップ

このセクションでは、開発環境をセットアップする主な手順と インタラクティブ画像セグメンタを使用するためのコード プロジェクトです。一般的な情報については、 MediaPipe タスクを使用するための開発環境の設定 プラットフォーム バージョンの要件については、 Python のセットアップ ガイド この例のソースコードは、 GitHub

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

パッケージ

MediaPipe Interactive Image Segmenter タスクには、mediapipe パッケージが必要です。kubectl の「get pods」 必要な依存関係を次のコマンドで置き換えてください。

$ python -m pip install mediapipe

インポート

次のクラスをインポートして、インタラクティブ画像セグメント化のタスク関数にアクセスします。

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

モデル

MediaPipe Interactive Image Segmenter タスクには、この変換と互換性のあるトレーニング済みモデルが必要です。 タスクを実行します。インタラクティブ画像セグメンテーションで使用可能なトレーニング済みモデルについて詳しくは、以下をご覧ください。 タスクの概要のモデル セクションを見ていきます。

モデルを選択してダウンロードし、プロジェクト ディレクトリに保存します。

model_path = '/absolute/path/to/model.tflite'

次に示すように、model_asset_path パラメータ内にモデルのパスを指定します。 下にあります。

base_options = BaseOptions(model_asset_path=model_path)

タスクを作成する

MediaPipe Interactive Image Segmenter タスクは、create_from_options 関数を使用して以下を行います。 タスクを設定します。create_from_options 関数は値を受け入れる 処理する構成オプションを確認してくださいリソースの構成について 構成オプションをご覧ください。 次のコードは、このタスクをビルドして構成する方法を示しています。

BaseOptions = mp.tasks.BaseOptions
InteractiveSegmenter = mp.tasks.vision.InteractiveSegmenter
InteractiveSegmenterOptions = mp.tasks.vision.InteractiveSegmenterOptions
VisionRunningMode = mp.tasks.vision.RunningMode

# Create a image segmenter instance with the image mode:
options = InteractiveSegmenterOptions(
    base_options=BaseOptions(model_asset_path='/path/to/model.task'),
    running_mode=VisionRunningMode.IMAGE,
    output_type=InteractiveSegmenterOptions.OutputType.CATEGORY_MASK)
with InteractiveSegmenter.create_from_options(options) as segmenter:
# segmenter is initialized and ready to use
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

データの準備

入力を画像ファイルまたは numpy 配列として準備します。 mediapipe.Image オブジェクトに変換します。

# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')

# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
RegionOfInterest = vision.InteractiveSegmenterRegionOfInterest
# Perform image segmentation on the provided single image.
# The image segmenter must be created with the image mode.
roi = RegionOfInterest(format=RegionOfInterest.Format.KEYPOINT,
                          keypoint=NormalizedKeypoint(x, y))
segmented_masks = segmenter.segment(mp_image, roi)