このブログを始めたばかりの頃、PythonのMediaPipeで顔・手・姿勢の点(ランドマーク)を検出して、それをUDPでUnityに送り、アバターを動かすシリーズ(p610〜p880)をやっていました。当時いちばん夢中になっていた題材のひとつです😊
あれから1年以上が経ちました。ふと「MediaPipeって、今どうなっているんだろう?」と気になったので、今回は調査回として、MediaPipeの現在地と、モーション・フェイストラッキング界隈の「これから」を、同じ切り口で並べてみます。結論から言うと、当時のコードはそのままでは動かないくらい、いろいろ変わっていました😳
・MediaPipeの今の立ち位置(Google AI Edgeの一員/最新版)
・一番の変化=Solutions API の終了と Tasks API への移行
・顔・手・姿勢の進化(特に顔の「52ブレンドシェイプ」)
・他のトラッキングツールとの比較(OpenPose・MoveNet・YOLO-Pose・RTMPose ほか)
・用途別の選び方と、過去のUDP連携が今も通用するか
※この記事は紹介・調査系です。数値やバージョンは2026年7月時点で公式ドキュメント・GitHub・リリースノートを確認して書いていますが、この分野は動きが速いので、最新は必ず公式でご確認ください。
あの頃のMediaPipeと、今の立ち位置
当時(2025年の初め)にeightが書いていたコードは、import mediapipe as mp のあとに mp.solutions.hands や mp.solutions.face_mesh を呼ぶ書き方でした。手軽で、数行で顔や手が検出できて感動した記憶があります。
今のMediaPipeは、「Google AI Edge」というブランドの一員になっています。スマホやブラウザなど端末の上で機械学習を動かす(オンデバイスML)ための道具箱の一部、という位置づけです。GitHubの置き場所も google-ai-edge/mediapipe に移りました。Pythonパッケージの最新は0.10.35(2026年4月)で、Windows・macOS・Linuxに対応しています。
おもしろいのは、これだけ広く使われているのに、PyPI上の開発ステータスは今も「Alpha(早期リリース)」の表記のままだという点です。「枯れて安定」というより、今も動き続けているプロジェクト、という感じですね。
一番の変化:Solutions API から Tasks API へ
今回いちばん大きいと感じた変化がこれです。当時eightが使っていた「MediaPipe Solutions(レガシー版)」は、2023年3月1日でサポートが終了していました。今の主役は、新しい「MediaPipe Tasks」という枠組みです。
やっかいなのは、新しいバージョンのMediaPipeでは、昔ながらの mp.solutions の呼び出しが「そんな属性は無い(has no attribute 'solutions')」というエラーになることがある点です(実際にGitHubで報告が上がっています)。つまり、当時のUDP連携シリーズのPythonコードは、最新版に入れ替えるとそのままでは動かない可能性が高い、ということになります😅
「せっかく書いたのに」と一瞬思いますが、これは作り直しというより引っ越しです。考え方(顔や手の点を検出して座標を取る)は同じで、呼び出し方が新しくなったと捉えるのがよさそうです。旧と新の違いを並べてみます。
| 旧:Solutions(〜2023でサポート終了) | 新:Tasks(現在の主役) | |
|---|---|---|
| 呼び出し方 | mp.solutions.hands など | mediapipe.tasks の各Landmarker |
| モデルの持ち方 | ライブラリに同梱(暗黙) | .task ファイルを自分で指定(差し替え可能) |
| 動作モード | 主に画像/動画 | 画像・動画・ライブ配信を明示的に選ぶ |
| 対応プラットフォーム | Python中心(当時) | Python・Android・Web(JS)で共通の考え方(iOSは順次) |
| 顔の表情 | 点(ランドマーク)のみ | 52個の表情係数(ブレンドシェイプ)も出る |
いちばん下の行が、次の章の主役です。
顔・手・姿勢トラッキングはどう進化した?
Tasksになって、顔・手・姿勢のそれぞれが「Landmarker(ランドマーカー)」として整理されました。中でも、顔(Face Landmarker)の進化が個人的にいちばん刺さりました。
- 顔(Face Landmarker):3Dの顔の点を478点取れるのに加えて、52個の「ブレンドシェイプ」係数と、顔の向きを表す変換行列まで出せるようになりました。
- 手(Hand Landmarker):片手21点を、複数の手について同時に検出。左右の区別も出ます。
- 姿勢(Pose Landmarker):全身33点に加えて、人物を背景から切り抜くマスクも出せます。
「ブレンドシェイプ」ってなに?
顔の表情を、「口を開けている度合い」「右目を閉じている度合い」…といった数値の集まりで表す仕組みです。0〜1の数字が52個出てくる、とイメージしてください。これはApple(iPhoneの顔認識・ARKit)が使っている52種類の表情とほぼ同じ枠組みで、VTuberのアバターや3Dキャラの「顔の動き」にそのまま流し込めるのが大きい。当時のeightは、顔の点の距離を自分で測って「たぶん今、口が開いている」と手作業で判定していました。今はその数値が最初から出てくるわけです。ここは素直にうらやましい進化でした😊
モデルが .task というファイルとして外に出た(=差し替えられる)のもポイントです。精度重視・軽さ重視といったモデルの選択や、将来の更新が、ライブラリ本体を入れ替えなくてもできる設計になりました。
MediaPipe以外の選択肢を並べてみる
MediaPipeは「軽くて手軽」が持ち味ですが、トラッキングの世界にはほかにも有力な選択肢がたくさんあります。用途によっては、こちらのほうが向くこともあります。主なものを並べてみました。
| ツール | 持ち味 | 重さ・スペック | ライセンス |
|---|---|---|---|
| MediaPipe | 軽量・オンデバイス・多機能(顔/手/姿勢)。1人向けが得意 | CPUでも動く/軽い | Apache-2.0 |
| OpenPose | 複数人を同時に検出(先に全関節→人に組み立てる方式)。精度は高い老舗 | GPUほぼ必須・重い | 独自(商用は有償ライセンス) |
| MoveNet | 超軽量。Lightning(速さ)とThunder(精度)の2種。エッジ向き | とても軽い(スマホ/ブラウザ) | Apache-2.0 |
| YOLO-Pose(YOLO11) | 複数人+高効率。物体検出の延長で姿勢も取れる | GPUで高速/サイズ選べる | AGPL-3.0(商用は要確認) |
| RTMPose / ViTPose | 研究由来(OpenMMLab)。2026年時点の精度の定番クラス | GPU向け/セットアップやや重 | Apache-2.0 等 |
| Apple Vision(ARKit) | iPhone/iPadで顔52表情・全身。端末統合で安定 | Appleデバイス限定 | OS付属 |
| 商用/VTuber系 (VSeeFace・Warudo・Rokoko・Move.ai 等) | すぐ使える完成品。VSeeFace/WarudoはWebカメラで顔トラッキング、Rokoko/Move.aiは本格モーキャプ | ものによる(Webカメラ〜専用機材) | 無料〜有償 |
ざっくり言うと、1人の顔や手を軽く取るならMediaPipe、複数人や高精度が要るならOpenPose/YOLO-Pose/RTMPose、とにかく完成品でVTuberをやりたいならVSeeFaceやWarudo、という住み分けです。VTuber向けのアプリの多くは、内部でMediaPipe系の技術を使っていたりもします。
トラッキング手法の地図(図解)
数が多くて混乱しがちなので、「軽さ⇔精度」と「1人向け⇔複数人向け」のふたつの軸で、位置関係を図にしてみました。あくまで傾向のイメージです。
用途別の選び方
「結局、自分の用途ならどれ?」の目安を表にしました。もちろん条件しだいですが、出発点にはなると思います。
| やりたいこと | 向いていそう |
|---|---|
| VTuber・アバターを顔で動かす | MediaPipe(52表情)/VSeeFace・Warudo/iPhoneならARKit |
| スポーツ・リハビリの動作解析(1人) | MediaPipe Pose/精度重視ならRTMPose・ViTPose |
| 複数人が映る映像を丸ごと解析 | YOLO-Pose・OpenPose(複数人が得意) |
| Webカメラでゲーム入力(手・体で操作) | MediaPipe・MoveNet(軽くて低遅延) |
| 本格的なモーションキャプチャ(制作) | Rokoko・Move.ai などの専用ソリューション |
| スマホ・ブラウザで完結させたい | MediaPipe・MoveNet(オンデバイスが得意) |
スマホ・Webで動く? ローカル完結か
個人開発でうれしいのは、クラウドに送らず、手元の端末やブラウザだけで動く点です。MediaPipe TasksはPythonのほか、AndroidとWeb(JavaScript / WASM)で同じ考え方が使えます(iOSは順次対応中の表記)。
特にWeb版は、ブラウザの中だけで顔や手の検出が完結します。カメラ映像を外部サーバーに送らなくていいので、プライバシーの面でも安心感があります。当時eightがやっていた「Pythonで検出してUnityへ」という構成に加えて、今ならブラウザ完結のデモもぐっと作りやすくなっています😊
過去のUDP連携シリーズは、今も通用するのか
気になるのはここですよね。当時の構成は「MediaPipe → Python → UDP送信 → Unity受信」で顔・手の点を送り、アバターを動かすものでした(p705・p880)。この設計の考え方は、今もそのまま通用します。座標をUDPで送って別アプリで受ける、という発想は普遍的です。
ただし、Python側の中身は書き換えが必要です。移行の勘どころをまとめておきます。
- Solutions → Tasks へ書き換える:
mp.solutions.handsではなく、Tasksの Hand/Face Landmarker を使う。最新版では旧APIが動かないため、ここは避けて通れません。 - 顔は「点」より「ブレンドシェイプ」を送るほうが素直:当時、p880で「z軸がうまく動かせない😢」と苦労していましたが、今は52個の表情係数が直接取れるので、アバター側の表情に流し込みやすくなっています。VRMアバターのブレンドシェイプへ、ほぼ一対一で対応づけられます。
- モデルファイル(.task)の管理が増える:昔は暗黙に入っていたモデルを、今は自分で用意・指定します。手間は増えますが、精度と軽さを選べるようになりました。
つまり、「作り直し」ではなく「新しい足回りへの載せ替え」。しかも載せ替えると、当時つまずいた表情まわりが楽になる——というのが、調べてみての結論です。これはいつか、実際に手を動かして確かめてみたいところですね✍️
まとめ
MediaPipeの現在地と、トラッキング界隈の「これから」を並べてみました。
- MediaPipeはGoogle AI Edgeの一員に。最新は0.10.35(2026年4月)で、オンデバイスMLの道具箱の一部という立ち位置
- 一番の変化はSolutions API(2023でサポート終了)→ Tasks API。当時のコードはそのままでは動かないが、考え方は同じで「載せ替え」で済む
- 顔は52ブレンドシェイプが直接取れるように進化。VTuber・アバターにそのまま使える
- 他の選択肢は用途しだい:軽さ=MediaPipe/MoveNet、複数人=OpenPose/YOLO-Pose、精度=RTMPose/ViTPose、完成品=VSeeFace/Warudo
- スマホ・ブラウザで完結でき、クラウド不要なのは今も大きな強み
1年ちょっとで、これだけ足回りが変わっているとは思いませんでした。特に、当時eightが手作業でがんばっていた表情判定が、今は最初から数値で出てくるというのは、地味だけど大きな進歩です。「今どうなっているか」を確かめてから作り始める——遠回りに見えて、これがいちばんの近道かもしれませんね😊
それでは、今回はここまで。最後までありがとうございました😊
【主な参考】MediaPipe(Google AI Edge)公式ドキュメント「MediaPipe Solutions / Tasks guide」「Face landmark detection guide」/google-ai-edge/mediapipe(GitHub, Releases・Issues)/PyPI mediapipe 0.10.35/各ツール公式(OpenPose・MoveNet(TensorFlow)・Ultralytics YOLO・OpenMMLab RTMPose/ViTPose・Apple Vision/ARKit)。いずれも2026年7月時点で確認。仕様やバージョンは変更されることがあります。