トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

MediaPipeをWindowsで使ってみる

MediaPipe

機械学習でwebカメラで全身の動きなどが取れるやつ

 Googleがやってる

github.com

顔や眼球、指、全身、髪の境界などいろいろとれる

f:id:bibinbaleo:20201222165126p:plain

基本Androidで動く。Googleだからか・・・

f:id:bibinbaleo:20201222165338p:plain

Windowsはサポートしていないんだ。

と思ったら動くらしい

MediaPipeがWinで動いた - なるように、なる

pipインストールして、こちらの方のPythonのサンプルコードを実行したらいいって

github.com

WindowsでMediaPipe動かしてみる

黒い画面で

pip install mediapipe

と打つ。ダウンロードが始まる

f:id:bibinbaleo:20201222171859p:plain

無事できた。pipはMkDocs触った時に入れた。

MkDocsを使ってみる。開発ドキュメント - トマシープが学ぶ

 

こちらのリポジトリをダウンロード

github.com

ダウンロードしたフォルダに黒い画面で移動。

 

python sample_XXX.py

で各ファイル実行。しばらくしたらウィンドウが立ち上がる。

f:id:bibinbaleo:20201222172112p:plain

おおー動いたー!

 

hand

f:id:bibinbaleo:20201223085034p:plain

pose

f:id:bibinbaleo:20201223085114p:plain

holisticは顔、ポーズ、ハンドの全部入り!

f:id:bibinbaleo:20201223085431p:plain

Holisticは20~25fpsぐらいだったけど、

ちなみにウィンドウの×を押しても閉じないので、黒い画面でCtrl+Cした

Unityで動かすには

Unity用のプラグインを作っている方がいる。

他にも色々あるっぽい。試してうまくいったら追記するかも

MediaPipeUnityPlugin

ハンドトラッキング、顔やモノの推定が動く。ただしMac,Linux,Androidなど(Windowsは入ってない)

github.com

  • Face Detection (on CPU/GPU)
  • Face Mesh (on CPU/GPU)
  • Iris Tracking (on CPU/GPU)
  • Hand Tracking (on CPU/GPU)
  • Pose Tracking (on CPU/GPU)
  • Hair Segmentation (on GPU)
  • Object Detection (on CPU/GPU)

こちらの記事では↑のプラグインを使って、顔のメッシュを動かしている

qiita.com

UnityHandTrackingWithMediapipe

こちらはハンドトラッキングのみだが、WindowsPCのUnity+Android端末で動く。推定側はAndroid端末がいるのか~

github.com

ReleaseからapkをダウンロードしてAndroidに入れる

Releases · TesseraktZero/UnityHandTrackingWithMediapipe · GitHub

AndroidとPCはケーブルでつなぐ

f:id:bibinbaleo:20201223104843p:plain

 

こちらのUnityプロジェクトをダウンロードしてSampleSceneを開く

github.com

f:id:bibinbaleo:20201223102801p:plain

LandmarkSocketManaferのAdbPathを入れる

f:id:bibinbaleo:20201223102804p:plain

D:\Unity\2019.4.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\adb.exe

 

これでUnity実行して、スマホのアプリも立ち上げたら少し動くけど、なんかおかしい。

f:id:bibinbaleo:20201223105521p:plain

あとスマホアプリ側が最初は軽快に動くけど重くなって最終的に固まるので、そもそも10秒ぐらいしか試せない。

その他

github.co

github.com

 

最後に

全然関係ないけど、Pixel3aでadbコマンドが全然効かないと思ったら、[設定] > [システム] > [詳細設定] > [開発者向けオプション] > [USB デバッグ]をオンにしたらできた。

developer.android.com

長年の悩みが解決されてよかった。

この状態じゃないと、↑のAndroidのUnity連携動かないよ