Vengineerの妄想

人生を妄想しています。

MediaPipe


DeNAの加藤さんのこのツイートで知った、GoogleMediaPipe

なんか、加藤さんのブログ:GoogleのMediaPipeでMLアプリ開発が楽になるを読んでいる途中で、
あれ、これって、同じじゃんということに。

下図は引用です
https://mediapipe.readthedocs.io/en/latest/_images/hair_segmentation_android_gpu.png

これ、ARアプリ用のフレームワーク(ツール)という感じになっていますが、
データが入って、データが出てくるというものであれば、何でも応用が利きますよね。

Googleの中では、MediaPioeは6年前から使われているんだって。

特に画像処理とか。そう、OpenCVとかOpenVXと同じ。

ディープラーニングのアプリでも同じく。

問題は、MediaPipeの部品となる Calculator をどれだけ、揃えられるか。。。
SubGraphとして一連の流れをライブラリ化もできる。

この MediaPipe は OpenCV とか OpenVX も Calculator として使えるようにできるが、
データの変換がどうしても入るのでそこがオーバーヘッドになるかんじですかね。
上の図では、TensorFlow Liteで推論エンジン実装していますが、その前後でデータ変換してますね。

Halideを使ってまとまった処理をする Calcular を作るという作戦もありますが、
前後ではどうしてもデータ変換が入っちゃう。

IntelのOpenVINOは、OpenCVとOpenVXも取り込んでいて、CPU・GPUだけでなく、
FPGAやVPUも利用できるが、ユーザーはプログラムを書く必要がある。

MediaPipeでは、プログラムを書かないで、Calculator を繋げるだけでいい。。。
(プログラムを書くことも可能。)
将来的には、Webベースの MediaPipe ツールが出てきて、Calculator をメニューから選んで、
画面でつなげるだけでいいようになるのは確実だよ。

そこで作った MediaPipe から AndroidiOSのアプリを自動生成したり、
Cloud上のアプリにしたりできちゃうんだよきっと。

ということで、近い将来、そんな感じになるので、
そこで戦うのはかなり厳しくなるので覚悟するが、
勝てるところを見つける必要があるということを認識しておかないと、ヤバくなると思うよ。