XR空間でDNN可視化(Oculus Quest 2×Unity Barracuda)

はじめまして、リクルートATL(アドバンスドテクノロジーラボ)でXR(AR/VR/MRなどの総称)領域の研究を⾏っている⻑坂です。

ATLでは、XR空間上にDeep Neural Network(DNN)をインタラクティブに可視化するシステムを研究開発しています。

本システムは、Unityプロジェクト内にOpen Neural Network Exchange(ONNX)形式の学習済Deep Learning(DL)モデルを配置すると、DNN構造を3次元CGで可視化します。XR空間の特徴(制限のない表⽰領域、⾼次元データの可視化)を活⽤することで、⼤規模で複雑なDNNであっても、1つ1つの層に流れるデータをレイヤータイプや形状に応じた3次元表⽰や、複数のDLモデルを並べた状態での可視化ができます。

本システムの活⽤例として、DLモデル開発の初⼼者が、VGGやMobileNetなどの有名なDNNを3次元可視化して⽐較することで、DNN構造について直感的に理解し、新しいDNN構築の検討に役⽴てることが期待されます。

システム概要

本システムは下記フローのようになっています。Oculus Quest 2で実⾏可能です。

(HoloLens 2や他のヘッドマウントディスプレイにも対応予定です)

  1. Unity BarracudaでONNX形式の学習済DLモデルを読み込み
  2. 読み込んだモデルのDNN構造に基づいて、XR空間上に1つ1つの層をレイヤータイプや形状に応じて3DCG表⽰
  3. レイヤータイプに応じたインタラクティブ機能を追加(例:Convolution層を選択すると、特徴マップやフィルタを展開)
  4. 同じXR空間内に複数のDNNを配置、可視化

Unity Barracuda1とは、Unity⽤の軽量でクロスプラットフォームなDNN推論ライブラリです。まだまだ試験導⼊の段階であり、ONNX形式の学習済DLモデルを推論実⾏できますが、モデルの学習⾃体はサポートしていません。

幸い、ONNX形式の学習済DLモデルは簡単に⽤意できます。TensorFlowやPyTorchは開発したDLモデルをONNX形式でエクスポートする機能2,3がありますし、有名なDLモデルの多くは、学習済モデルがONNX形式でGitHubなどに公開されています。今回はONNX公式ページ(ONNX Model Zoo)4から学習済のVGG16とMobileNetV2を引⽤し、 Oculus Quest 2上で本システムによるDNN可視化を実⾏しました。

実⾏結果

本システムによるVGG16、MobileNetV2の可視化結果を実⾏結果1で⽰しています。また、MobileNetV2の第1層(Convolution層)を展開し、チャネル毎の特徴マップやフィルタの可視化結果を実⾏結果2で⽰しています。VGG16、MobileNetV2のDNN構造はブロック図で表現されることが多いと思いますが、実⾏結果のようにXR空間上に3DCG表現することで、層の深さや各層での形状が直感的に確認できるようになり、DNN構築の理解が深まると考えています。

発表する論⽂、学会、イベントなど

本成果はVRに関する国際会議であるACM Symposium on Virtual Reality Software and Technology(VRST)に投稿し、採択されました。 VRSTは、Association for Computing Machinery(ACM)によって1994年から毎年開催されている、VR分野の代表的な国際会議です。 採択された本成果の詳細は、2021年12⽉8⽇から10日まで開催されるVRST’21にて発表予定です5

展望

今回、XR技術を活⽤したDNN可視化システムの研究開発状況をご紹介しました。今後は DNN可視化だけでなく、DNNを活⽤した分類結果や予測結果などもシステム内で可視化することで、XR空間内で⼀連のデータ分析作業が完結できるよう取り組んでいきます。

VR元年(Oculus RiftやMicrosoft HoloLensなど消費者向けデバイスの登場やVRのアミューズメント施設への導⼊)以降、XR技術がどのように活⽤できるのかが期待されています。近年、機械学習技術を活⽤したデータ分析の重要性が⾼まっていますが、その多くはデータ量が膨⼤であり、複雑なデータの可視化が必要なタスクのため、広⼤で⾼次元表現が得意なXR空間でのデータ分析、可視化は親和性が⾼いと考えられます。まずは今回ご紹介したようなシステムで、XR技術がデータ分析タスクに活⽤できる可能性を提案することが⼤事だと思っています。今後も引き続きXR技術の価値検証、そして事業化に挑戦していきます。

参考⽂献

  1. Unity Barracuda
  2. Convert TensorFlow, Keras, Tensorflow.js and Tflite models to ONNX
  3. Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime
  4. ONNX Model Zoo
  5. 27th ACM Symposium on Virtual Reality Software and Technology (VRST’21)