Rust製可視化ツールのrerunを使ってmmdetection3dの可視化をしてみる

概要

  • Rust製可視化ツールのrerunを使って、mmdetection3dの可視化をしてみた

Contents

経緯

  • ある日githubを巡回していた時に見つけて、rerunという可視化に良さそうなツールを見つけた
  • 普段Rust勢なので最初は「Rustでなんかやる時に使おう」と思っていたけど、python APIあることに気がついた
  • 普段やっている3D関係の機械学習の可視化に使えたら便利だなと思って色々試してみた
    • 機械学習はどうしてもpythonになってしまうが、こういう形で(documentが豊富や動作が安定しているなどの)Rustの恩恵を預かれるなら預かりたい
  • とりあえず一番デファクトスタンダードの mmdetection3d でインテグしてみた

rerun とは

  • rerun.ioという会社が作っているmulti modalな可視化・loggingソフトウェア
  • OSS開発されておりdocumentが充実している
  • この手の可視化の中では3Dに強い
  • ソースコード側から細かく可視化を制御できるので、デバッグに便利
    • configでの設定だと管理が辛い・あたりでプロトタイプ作りに向いていない側面があったので痒いところに手が届く印象

作ったもの

  • dockerでpython実行、nativeでdesktopアプリを動かす形を取った
    • 自分がさくっと試した感じだとsave機能が上手く行かなかったのでこの形に
    • (開発がかなり盛んなため、どっかで治りそう)
  • 環境構築、実行はREADME
  • 可視化の様子

感想など

  • UIは割と使いやすいと感じた
    • 気軽に3Dの可視化するにはめっちゃ良いなと感じる
  • シークバー機能が素晴らしい
    • シークバー機能が無いともはやデバッグには使えないと感じる
      • コマ送りしながらデバッグする羽目に合うほどそう感じる
    • ROS関係だと最近はfoxgloveにもその機能はあるが、ROS環境へのベンダーロックインみたいなのがしんどいみたいな話もあった
  • exampleやdocumentがしっかりしているので開発しやすい
    • Rust界隈的には割と当たり前な世界だと思うけど、python界隈的にはかなりサポートが厚く感じる
    • とりあえずexampleを見れば大体やれることが分かるのも良い
  • 動作は割と軽い
    • ただメモリを結構持っていく
    • nuscenes test datasetで25GB程度
      • 実行環境によってはdatasetを間引いて可視化するほうが良いかも
  • 公式documentを眺めるのがわかりやすい
    • exampleが微妙に古いversionっぽい挙動したりしたので、結局公式document眺めるのが早かった
    • 個人的には(普段と見た目が全く同じの)Rustの方が使いやすいのでRustのdocumentを読んでいたが、pythonの方も普通に充実している

Reference