MediaPipe
機械学習でwebカメラで全身の動きなどが取れるやつ
Holistic動かしてみました。
— 高橋 かずひと@孫請級プログラマー🦔 (@KzhtTkhs) 2020年12月11日
FPSは3種(Hands, Pose, FaceMesh)同時の時と同じくらいですが、Poseが上半身だけではなく全身行けるのと、手の検出漏れが減っている気がします。
MediaPipeの公式に書いてあるパイプライン的に手と顔のトラッキングは性能よくなってそう🦔 https://t.co/TynOxEs6eH pic.twitter.com/SpKFRdkptx
Googleがやってる
顔や眼球、指、全身、髪の境界などいろいろとれる
基本Androidで動く。Googleだからか・・・
Windowsはサポートしていないんだ。
と思ったら動くらしい
pipインストールして、こちらの方のPythonのサンプルコードを実行したらいいって
WindowsでMediaPipe動かしてみる
黒い画面で
pip install mediapipe
と打つ。ダウンロードが始まる
無事できた。pipはMkDocs触った時に入れた。
MkDocsを使ってみる。開発ドキュメント - トマシープが学ぶ
こちらのリポジトリをダウンロード
ダウンロードしたフォルダに黒い画面で移動。
python sample_XXX.py
で各ファイル実行。しばらくしたらウィンドウが立ち上がる。
おおー動いたー!
MediaPipe簡単にできた!
— トマシープ (@tomasheep) 2020年12月22日
すご~い
こちらのサンプルを動かしました。https://t.co/tSNcK4fvjW pic.twitter.com/9AcT6rQho1
hand
pose
holisticは顔、ポーズ、ハンドの全部入り!
Holisticは20~25fpsぐらいだったけど、
ちなみにウィンドウの×を押しても閉じないので、黒い画面でCtrl+Cした
Unityで動かすには
Unity用のプラグインを作っている方がいる。
他にも色々あるっぽい。試してうまくいったら追記するかも
MediaPipeUnityPlugin
ハンドトラッキング、顔やモノの推定が動く。ただしMac,Linux,Androidなど(Windowsは入ってない)
- 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)
こちらの記事では↑のプラグインを使って、顔のメッシュを動かしている
UnityHandTrackingWithMediapipe
こちらはハンドトラッキングのみだが、WindowsPCのUnity+Android端末で動く。推定側はAndroid端末がいるのか~
ReleaseからapkをダウンロードしてAndroidに入れる
Releases · TesseraktZero/UnityHandTrackingWithMediapipe · GitHub
AndroidとPCはケーブルでつなぐ
こちらのUnityプロジェクトをダウンロードしてSampleSceneを開く
LandmarkSocketManaferのAdbPathを入れる
D:\Unity\2019.4.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\adb.exe
これでUnity実行して、スマホのアプリも立ち上げたら少し動くけど、なんかおかしい。
あとスマホアプリ側が最初は軽快に動くけど重くなって最終的に固まるので、そもそも10秒ぐらいしか試せない。
その他
BlazePose Full Body の .tflite は Apache2.0 ライセンスのようですので、週末に量子化の作業やCoreML化やTF-TRT化、OpenVINO化を実施したいと思います。 Accurate版とLite版の2種類があるようです。 @asus4 さん、ありがとうございます!https://t.co/FEODI3i1ac pic.twitter.com/NGrofitqKJ
— Super PINTO (@PINTO03091) 2020年9月7日
TensorFlow LiteのUnityポート+GPUデリゲートでMediaPipeのハンドトラッキングが動きました。
— 高坂 (@t_takasaka) 2019年11月10日
C#側のコードも高速化したのでリアルタイムで動作するようになっています。
(次はモバイルに載せるか、もしくは別のモデルを試してみようと思います)
コードはこちら。https://t.co/oD6Gc9Qlo5#TFLite pic.twitter.com/YwhqQojIQX
最後に
全然関係ないけど、Pixel3aでadbコマンドが全然効かないと思ったら、[設定] > [システム] > [詳細設定] > [開発者向けオプション] > [USB デバッグ]をオンにしたらできた。
長年の悩みが解決されてよかった。
この状態じゃないと、↑のAndroidのUnity連携動かないよ