Re Reference AI

インフラ

MediaPipeとは

顔検出・姿勢推定・手指トラッキング等のリアルタイム推論パイプラインをモバイル/Web/エッジ上に構築できるGoogleのオープンソースフレームワーク

フレームワークエッジAI画像認識

ひとことで言うと

顔や手、姿勢の動きをスマホやブラウザ上でリアルタイムに認識できるGoogle製の無料ツール集。

概要

MediaPipeとは、Googleが開発したオープンソースのクロスプラットフォームフレームワークで、映像・音声・センサー等のストリームデータに対しリアルタイムに機械学習推論を適用するパイプラインを構築できる。 処理単位「Calculator」をノードとし、Calculator間をデータストリームでつなぐ有向グラフとしてパイプラインを記述する設計が特徴で、入力取得から前処理・モデル推論・後処理・出力までを一貫した流れとして表現する。 顔検出・顔ランドマーク推定・手指トラッキング・姿勢推定・物体検出・画像セグメンテーション等、あらかじめ用意された「ソリューション(Solutions)」を通じ、モデルを一から実装せずに主要な知覚タスクを組み込める。Android・iOS・Web(WASM)・Python・組み込み機器等、多様なプラットフォーム上でCPU/GPUを用いた低遅延な推論を実現できる。

背景

モバイルアプリやWebアプリで顔・手・姿勢等をリアルタイム認識する機能を実装する場合、プラットフォームごとに推論パイプラインを個別開発する必要があり、開発・保守コストが高かった。MediaPipeは、この推論パイプラインの構築をグラフベースの共通フレームワークとして抽象化し、同一のパイプライン定義を複数プラットフォームへ展開できるよう開発された。

歴史

2019年: Googleの研究チームが論文「MediaPipe: A Framework for Building Perception Pipelines」(Lugaresi et al.)を発表し、MediaPipeをオープンソース化。 以降、顔検出・姿勢推定・物体検出等のソリューションが順次追加され、2023年以降はより簡易に利用できる「MediaPipe Tasks API」への統合、およびオンデバイスLLM推論向けの「LLM Inference API」の追加が進んでいる。

アーキテクチャ

処理単位となる「Calculator」をノードとし、Calculator間をデータストリーム(Packet)でつなぐ有向グラフとしてパイプラインを定義する。グラフ構成はprotobuf形式の設定ファイルで記述し、パイプラインの一部を差し替えたり複数モデルを組み合わせた処理を柔軟に構築できる。

コード例

MediaPipe Tasks APIによる手指ランドマーク検出

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

base_options = python.BaseOptions(model_asset_path="hand_landmarker.task")
options = vision.HandLandmarkerOptions(base_options=base_options, num_hands=2)
detector = vision.HandLandmarker.create_from_options(options)

image = mp.Image.create_from_file("image.jpg")
result = detector.detect(image)
print(result.hand_landmarks)

利点

  • Android・iOS・Web・Python等、複数プラットフォームで同一のパイプライン定義を再利用できる
  • 顔検出や姿勢推定等の主要タスクが「ソリューション」として提供され、モデルを一から学習・実装せずに組み込める
  • グラフベースの設計により、CPU/GPUを活用した低遅延なリアルタイム推論に最適化されている

欠点

  • グラフベースの記述方式は独自の学習コストがあり、通常のモデル呼び出しAPIと比べて習得に時間がかかる
  • 提供されているソリューションの精度・仕様は固定的で、独自データでの再学習・カスタマイズには制約がある

比較

  • エッジAIMediaPipeは、エッジAIの実践例として、モバイル・組み込み機器上でのリアルタイムML推論パイプラインを提供するフレームワーク
  • YOLOYOLOが物体検出に特化した単一モデルであるのに対し、MediaPipeは顔検出・姿勢推定等複数タスクの推論パイプラインをまとめて提供するフレームワーク
  • ML KitML KitがAPI呼び出しで完結する既製の認識機能群を提供するのに対し、MediaPipeはCalculatorを組み合わせグラフとして推論パイプラインを自由に構築できる、より低レベルなフレームワーク

関連用語

エッジAIYOLOCNNML Kit

よくある質問

MediaPipeはLLM推論にも使える?

「LLM Inference API」の追加により、Gemma等一部の軽量LLMをオンデバイスで実行する用途にも対応している。ただし主軸は画像・音声・姿勢認識等の知覚タスク向けパイプライン。

参考文献