Unity Barracudaを用いてMobileNet(画像クラス分類)をWebGL上で推論するサンプルです。
現時点(2021/02/09)でUnityのWebGLはCPU推論のみのサポートです。
GPU推論と比較しパフォーマンスは出ません。GPU推論やAndroid上での実行時の参考FPSを後述しています。
動作確認用ページは以下。
MobileNetV1のデモです。
https://kazuhito00.github.io/Unity-Barracuda-MobileNet-WebGL-Sample/WebGL-Build
WebCamController.cs の Update()の呼び出し周期を計測したものです。
以下のように動作は基本的に非同期処理のため、FPSは見かけ上のFPSであり、推論自体のFPSではありません。
CSharpBurst:非同期
CSharpRef:同期
ComputePrecompiled:非同期
MobileNetV1 | MobileNetV2 | |
---|---|---|
WebGL CPU:Core i7-8750H CPU @2.20GHz |
約2.2FPS CSharpBurst |
約0.08FPS CSharpRef ※CSharpBurstで動作せず |
WebGL CPU:Core i5-5200U CPU @2.20GHz |
約1.1FPS CSharpBurst |
未計測 |
Android Google Pixel4a(Snapdragon 730G) |
約1.9FPS ComputePrecompiled |
約1.8FPS ComputePrecompiled |
Unity Editor GPU:GTX 1050 Ti Max-Q(4GB) |
約45FPS ComputePrecompiled |
約41FPS ComputePrecompiled |
- Unity 2020.1.6f1 or later
- Barracuda 1.3.0 or later
- Tensorflow 2.4.0 or later
- tf2onnx 1.8.2 or later
- onnxruntime 1.6.0 or later(※ONNX変換後の推論をテストする場合のみ)
- Barracuda 1.3.0 preview
- 【Unity】WebGLで日本語テキストが表示されない問題について
- Texutre2Dのサイズ変更【Unity】
- 【Unity】FPS を計測するスクリプト
-
Androidビルドの設定確認
参考:Unity で Vulkan API を使用する、barracuda-release:issues85、Unityで取得できるシステム情報 -
Androidの画面向きを横画面に固定する
高橋かずひと(https://twitter.com/KzhtTkhs)
Unity-Barracuda-MobileNet-WebGL-Sample is under Apache-2.0 License.
Noto Sans JP fonts is under Open Font License.