画像埋め込みタスクガイド

MediaPipe Image Embedder タスクを使用すると、画像の数値表現を作成できます。これは、さまざまな ML ベースの画像タスクを実行するのに役立ちます。この機能は、コサイン類似度などの数学的比較手法を使用して 2 つの画像の類似度を比較するために頻繁に使用されます。このタスクは、機械学習(ML)モデルを静的データまたは連続ストリームとして画像データに対して動作し、画像データの数値表現を高次元特徴ベクトル(エンベディング ベクトルとも呼ばれます)のリストとして、浮動小数点形式または量子化形式で出力します。

試してみる

使ってみる

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

タスクの詳細

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

機能

  • 入力画像処理 - 画像の回転、サイズ変更、正規化、色空間変換などを行います。
  • 関心のある地域 - 画像全体ではなく、画像の特定の領域に埋め込みを実行します。
  • エンベディング類似度計算 - 2 つの特徴ベクトル間のコサイン類似度を計算する組み込みユーティリティ関数
  • 量子化 - 特徴ベクトルのスカラー量子化をサポートします。
タスクの入力 タスクの出力
入力は次のいずれかのデータ型になります。
  • 静止画像
  • デコードされた動画フレーム
  • ライブ動画フィード
画像エンベディングは、次の要素で構成されるエンベディングのリストを出力します。
  • エンベディング: 特徴ベクトル自体(浮動小数点形式またはスカラー量子化)。
  • ヘッド インデックス: このエンベディングを生成したヘッドのインデックス。
  • ヘッド名(省略可): このエンベディングを生成したヘッドの名前。

構成オプション

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

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

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

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

LIVE_STREAM: カメラからのデータなど、入力データのライブストリームのモード。このモードでは、resultListener を呼び出して、結果を非同期で受け取るリスナーをセットアップする必要があります。
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
l2_normalize 返された特徴ベクトルを L2 ノルムで正規化するかどうか。このオプションは、モデルにネイティブの L2_NORMALIZATION TFLite Op がまだ含まれていない場合にのみ使用してください。ほとんどの場合、これはすでに当てはまるため、L2 正規化は TFLite 推論によって行われるため、このオプションは必要ありません。 Boolean False
quantize 返されたエンベディングを、スカラー量子化によってバイトに量子化するかどうかを指定します。エンベディングは暗黙的に単位ノルムであると想定されるため、どのディメンションも [-1.0, 1.0] の値を持つことが保証されます。そうでない場合は、l2_normalize オプションを使用します。 Boolean False
result_callback Image Embedder がライブ ストリーム モードのときに埋め込み結果を非同期で受け取るように結果リスナーを設定します。実行モードが LIVE_STREAM に設定されている場合にのみ使用できます なし 未設定

モデル

画像エンベディング モデルを使用するには、画像エンベディング モデルをダウンロードしてプロジェクト ディレクトリに保存する必要があります。このタスクで開発を開始するときは、ターゲット プラットフォームのデフォルトの推奨モデルから始めます。他の利用可能なモデルでは通常、パフォーマンス、精度、解像度、リソース要件のトレードオフがあり、場合によっては追加機能が含まれていることもあります。

MobileNetV3 モデル

このモデル ファミリーは MobileNet V3 アーキテクチャを使用し、ImageNet データを使用してトレーニングされています。このモデルは、畳み込みレイヤの深さ(特徴数)に 0.75 の乗数を使用して、精度とレイテンシのトレードオフを調整します。また、MobileNet V3 には小型と大の 2 種類のサイズがあり、低リソースと高リソースのユースケースにネットワークを適応させます。

モデル名 入力シェイプ 量子化タイプ バージョン
MobileNet-V3(小)224×224 なし(float32) 最新
MobileNet-V3(大)224×224 なし(float32) 最新

タスク ベンチマーク

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

モデル名 CPU レイテンシ GPU レイテンシ
MobileNet-V3(小) 3.94 ミリ秒 7.83 ミリ秒
MobileNet-V3(大) 9.75 ミリ秒 9.08 ミリ秒