高橋かずひとのプログラミング、その他、備忘録。

日々調べてたことや、作ってみたものをメモしているブログ。 お決まりの断り文句ですが、このブログに書かれている内容は個人の見解であり、所属する組織の公式見解ではありません。チラ裏。

Unity BarracudaをWebGL上でお試し🦔

少々、使いどころが出てきそうなので、UnityのBarracuda(ONNXモデルを推論するやつ)を試しています。
タイトルにあるようにWebGLでも動くか試しています👻

いったん案件で使いそうな基礎的なインプット(Webカメラ、動画、手書き)と
MNIST、Mobilenet(クラス分類)、TinyYolo v2のモデルを試しています。

2021/7/13追記:Reversi、Single-Hand-Localization、Objectronの事例を追加。

Webカメラ入力
f:id:Kazuhito00:20210213173753g:plain github.com

■動画入力
f:id:Kazuhito00:20210213174106g:plain github.com

■手書き入力
f:id:Kazuhito00:20210213174137g:plain github.com

■MNIST
f:id:Kazuhito00:20210213174212g:plain github.com

■MobileNet
f:id:Kazuhito00:20210213174256g:plain github.com

■TinyYoloV2
ちょっとWebGLビルド(CPU推論)が激重(0.4FPSくらい)だったので
これだけはUnity Editor上(GPU推論)した動画も一緒に載せてます。
f:id:Kazuhito00:20210213174354g:plainf:id:Kazuhito00:20210213174348g:plain github.com

■Reversi
教師有り学習で作成したリバーシのAIをBarracudaで推論しています。 https://user-images.githubusercontent.com/37477845/110242874-5654f980-7f9b-11eb-911a-899375c100e9.gif github.com

■Single-Hand-Localization
WebGL版のBarracudaはCPU推論しかできず(2021/07/13時点)、速度が出ないため、 WebGL版でもある程度の速度が出るモデルを構築して、手の検出を試しました。 https://user-images.githubusercontent.com/37477845/113316638-8ba9f880-9349-11eb-8cfc-f65ec82bd300.gif github.com

■Objectron
MediaPipeのObjectronをONNX変換し、Barracuda上で動作確認しました。 https://user-images.githubusercontent.com/37477845/120523202-9a2b9380-c410-11eb-9589-bc30892fae3f.gif github.com