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 ミリ秒 |