构建时间感知的多模态数据可视化
使用Rerun SDK(适用于C++、Python和Rust)来记录图像、张量、点云和文本等数据。日志可以实时流式传输到Rerun查看器进行实时可视化,或保存到文件以供后续使用。
简短示例
import rerun as rr # pip install rerun-sdk
rr.init("rerun_example_app")
rr.connect() # 连接到远程查看器
# rr.spawn() # 启动一个带有查看器的子进程并连接
# rr.save("recording.rrd") # 将所有日志流式保存到磁盘
# 将后续数据与"frame"时间线上的42关联
rr.set_time_sequence("frame", 42)
# 将彩色3D点记录到位于`path/to/points`的实体
rr.log("path/to/points", rr.Points3D(positions, colors=colors))
…
入门指南
安装Rerun查看器二进制文件
要通过网络流式传输日志数据或加载我们的 .rrd
数据文件,您还需要 rerun
二进制文件。
可以通过 pip install rerun-sdk
或 cargo install rerun-cli --locked
来安装。
请注意,只有Python SDK自带查看器,而C++和Rust始终依赖于单独安装。
现在您应该能够在任何终端中运行 rerun --help
。
文档
- 📚 高级文档
- ⏃ 可记录类型
- ⚙️ 示例
- 🌊 C++ API文档
- 🐍 Python API文档
- 🦀 Rust API文档
- ⁉️ 故障排除
状态
我们正处于积极开发阶段。 我们还有许多功能想要添加,API 仍在不断演进。 请预期会有重大变更!
一些不足之处:
- 百万级点云处理速度慢
- 实体过多时查看器会变慢
- 您想要可视化的数据必须能放入 RAM 中
- 请参阅 https://www.rerun.io/docs/howto/limit-ram 了解如何限制内存使用。
- 我们计划在未来某个时候提供基于磁盘的数据存储。
Rerun 的用途是什么?
Rerun 旨在帮助您理解包含丰富多模态数据的复杂过程,如 2D、3D、文本、时间序列、张量等。 它被广泛应用于多个行业,包括机器人、仿真、计算机视觉, 或任何涉及大量随时间演变的传感器或其他信号的领域。
使用场景示例
假设您正在开发一款真空清洁机器人,但它总是撞到墙上。为什么会这样呢?您需要一些工具来进行调试,但普通的调试器并不会有太大帮助。同样,仅仅记录文本日志也不会很有用。机器人可能会记录"正在穿过门口",但这并不能解释为什么它认为墙是一扇门。
您需要的是一个可视化和时间性的调试器,它可以记录机器人大脑中保存的所有不同世界表示,例如:
- RGB 摄像头输入
- 深度图像
- 激光雷达扫描
- 分割图像(机器人如何解释它所看到的)
- 公寓的 3D 地图
- 机器人检测到(或认为它检测到)的所有物体,以 3D 形状在 3D 地图中表示
- 对其预测的置信度
- 等等
您还希望看到所有这些数据流是如何随时间演变的,这样您就可以回溯并准确定位出现问题的时间、原因和具体情况。
也许最终发现是阳光以错误的方式照射到某个传感器上,混淆了分割网络,导致物体检测出错。或者可能是激光雷达扫描代码中的一个 bug。又或者机器人认为自己在公寓的其他地方,因为它的里程计出了问题。还可能是其他千百种原因中的一种。Rerun 将帮助您找出答案!
但从机器人的视角看世界不仅仅是为了调试 - 它还会给您带来改进算法的想法、设置新的测试用例或收集数据集的灵感。它还能让您向同事、老板和客户解释机器人的大脑。诸如此类。眼见为实,一图胜千言,而多模态时序日志记录则胜过千张图片 :)
当然,Rerun 不仅仅适用于机器人。任何时候,只要您有任何形式的传感器,或随时间演变的 2D 或 3D 状态,Rerun 都将是一个很棒的工具。
商业模式
Rerun 采用开放核心模式。本仓库中的所有内容都将保持开源和免费(既免费使用,也自由开放)。 未来,Rerun 将提供一个基于核心免费项目构建的商业产品。
Rerun 开源项目针对个人开发者的需求。 商业产品则针对构建和运行计算机视觉和机器人产品的团队的特定需求。
如何引用 Rerun
在您的研究中使用 Rerun 时,请引用它以表彰其对您工作的贡献。这可以通过在论文的软件或方法部分包含对 Rerun 的引用来实现。
建议的引用格式:
@software{RerunSDK,
title = {Rerun: A Visualization SDK for Multimodal Data},
author = {{Rerun Development Team}},
url = {https://www.rerun.io},
version = {插入版本号},
date = {插入使用日期},
year = {2024},
publisher = {{Rerun Technologies AB}},
address = {Online},
note = {Available from https://www.rerun.io/ and https://github.com/rerun-io/rerun}
}
请将"插入版本号"替换为您使用的 Rerun 版本,将"插入使用日期"替换为您在研究中使用该工具的日期。 这种引用格式有助于确保 Rerun 的开发团队因其工作获得适当的认可,并促进其他研究人员发现该工具。
开发
ARCHITECTURE.md
CODE_OF_CONDUCT.md
CODE_STYLE.md
CONTRIBUTING.md
BUILD.md
rerun_py/README.md
- Python SDK 说明rerun_cpp/README.md
- C++ SDK 说明
安装预发布版 Python SDK
- 从 GitHub Releases 下载正确的
.whl
文件 - 运行
pip install rerun_sdk<...>.whl
(将<...>
替换为实际文件名) - 测试:
rerun --version