Rerunとは
↓以下の記事を書きました.合わせてお読みください
Rerunとはマルチモーダルなデータストリームを可視化して操作するためのSDKおよびviwerです.
-
特徴
- 無料
- 導入が容易
- Python, C++, Rustで使用可能
- 柔軟で,拡張可能
- Rustで実装され,高速
- オープンソース,MITとApache 2のデュアルライセンス
- 時系列データの扱いに強い
-
可視化の例
- RGB camera feed
- depth images
- lidar scan
- segmentation image (how the robot interprets what it sees)
- its 3D map of the apartment
- all the objects the robot has detected (or thinks it has detected), as 3D shapes in the 3D map
- its confidence in its prediction
- etc
※ examplesより引用
- 公式サイト
個人的には,遠隔でviewer表示を出来る点が気に入っています.
ssh接続などでリモートサーバ上で作業をしている際にopencvのimshowなどでwindow表示をしたい状況がよくあるのですが,ウィンドウシステムが〜〜〜みたいなエラーで上手く行った例が有りません.
ですが,RerunではTCPベースの通信方法でデータの通信を行っているようなのでウィンドウシステムの必要はなくIPアドレスやポート番号を指定してデータを送信することで,ssh接続をしているクライアント側の画面で可視化を出来る点が非常にありがたいと感じています.
本記事ではRerunの基本的な使い方について簡単に解説したいと思います.
サンプルプログラムは以下で公開しています.
Pythonでの使い方
install
pip3 install rerun-sdk
rerunコマンドのヘルプ表示
rerun -h
viewerの起動
デフォルトで0.0.0.0:9876
でlistenされています
rerun
or
import rerun as rr
rr.init("test")
rr.spawn(port=9876)
client, log側からviewerに接続
import rerun as rr
rr.init("test")
rr.connect(addr="0.0.0.0:9876")
可視化結果を.rrd
ファイルに保存
rr.save("/path/to/save")
ファイルの読み込み
対応しているファイル
- Native Rerun files:
rrd
- 3D models:
gltf
,glb
,obj
,stl
- Images:
avif
,bmp
,dds
,exr
,farbfeld
,ff
,gif
,hdr
,ico
,jpeg
,jpg
,pam
,pbm
,pgm
,png
,ppm
,tga
,tif
,tiff
,webp
- Point clouds:
ply
- Text files:
md
,txt
rr.log_file_from_path("/path/to/file")
memory-limit
RerunではRAMに収まるデータしか表示できない.デフォルトではRAM全体の75%まで表示することが出来る
- rerunコマンドのオプション (
16GB
or50%
)
rerun --memory-limit 〇〇
- python関数
def spawn(*, port=9876, connect=True, memory_limit='75%', hide_welcome_screen=False, default_blueprint=None, recording=None)
notebookでの使用
notebook optionをつけたinstall
pip install rerun-sdk[notebook]
通常のrerunの使い方+最終行に以下を追加
rr.notebook_show()
自分が導入時に気になった点について主にまとめました.
初期化周りはこちらを参考にすると良いです.
PointやMesh, 画像など,それぞれのモダリティの実際の表示方法については公式ドキュメントを参照してください.
その他も細かい実装はAPIs,すぐに使えそうなものを探したい時はExamplesを参考にすると良いと思います
最後に
まだまだ日本語の解説記事は少ないので,今後もRerunについての記事を書いていきたいと思います.