rerun-io/rerun

GitHub: rerun-io/rerun

面向机器人和多模态场景的时间感知数据可视化SDK,集成日志记录、存储、查询与实时回放能力。

Stars: 10632 | Forks: 721

banner

PyPi crates.io MIT Apache Rerun Discord

# 时间感知多模态数据栈与可视化 Rerun 正在构建多模态数据栈,用于对机器人风格的数据进行建模、接入、存储、查询和查看。 它被广泛应用于机器人、空间智能与具身 AI、生成式媒体、工业处理、仿真、安防和健康等领域。 Rerun 简单易用! 使用 Rerun SDK(支持 C++、Python 和 Rust)来记录图像、张量、点云和文本等数据。 日志会被流式传输到 Rerun Viewer 进行实时可视化,或者保存到文件以备后用。 你还可以通过[我们的 dataframe API](https://rerun.io/docs/howto/query-and-transform/get-data-out) 查询记录的数据。 只需几分钟即可[开始使用](#getting-started)——无需注册账号。 * [在你的浏览器中运行 Rerun Viewer](https://www.rerun.io/viewer) * [阅读关于 Rerun 是什么以及它的目标用户](https://www.rerun.io/docs/overview/what-is-rerun) ### 简短示例 ``` import rerun as rr # pip install rerun-sdk rr.init("rerun_example_app") rr.spawn() # Spawn a child process with a viewer and connect # rr.save("recording.rrd") # 将所有日志流式传输到磁盘 # rr.connect_grpc() # 连接到远程查看器 # 将后续数据关联到 "frame" 时间线上的 42 rr.set_time("frame", sequence=42) # 将带颜色的 3D 点记录到位于 `path/to/points` 的 entity rr.log("path/to/points", rr.Points3D(positions, colors=colors)) … ```

## 入门指南 * [**C++**](https://www.rerun.io/docs/getting-started/data-in/cpp) * [**Python**](https://www.rerun.io/docs/getting-started/data-in/python): `pip install rerun-sdk` 或通过 [`conda`](https://github.com/conda-forge/rerun-sdk-feedstock) * [**Rust**](https://www.rerun.io/docs/getting-started/data-in/rust): `cargo add rerun` ### 安装 Rerun Viewer 二进制文件 要通过网络流式传输日志数据或加载我们的 `.rrd` 数据文件,你还需要 `rerun` 二进制文件。 它可以通过 `pip install rerun-sdk` 或 `cargo install rerun-cli --locked --features nasm` 安装(见下方说明)。 请注意,只有 Python SDK 捆绑了 Viewer,而 C++ 和 Rust 则始终依赖于独立安装。 **注意**:`nasm` Cargo 特性需要安装 [`nasm`](https://github.com/netwide-assembler/nasm) CLI 并确保其在你的 PATH 环境变量中可用。 或者,你可以跳过启用此特性,但这可能会导致视频解码性能下降。 现在你应该能够在任何终端中运行 `rerun --help` 了。 ### 文档 - 📚 [高级文档](https://rerun.io/docs) - ⏃ [可记录类型](https://www.rerun.io/docs/reference/types) - ⚙️ [示例](https://rerun.io/examples) - 📖 [代码片段](./docs/snippets/INDEX.md) - 🌊 [C++ API 文档](https://ref.rerun.io/docs/cpp) - 🐍 [Python API 文档](https://ref.rerun.io/docs/python) - 🦀 [Rust API 文档](https://docs.rs/rerun/) - ⁉️ [故障排除](https://www.rerun.io/docs/overview/installing-rerun/troubleshooting) ## 开发状态 我们正处于积极开发中。 我们有许多想要添加的功能,且 API 仍在不断演进。 _预计会有破坏性更新!_ 目前的一些不足之处: * [实体过多时 Viewer 会变慢](https://github.com/rerun-io/rerun/issues/7115) * [数百万级别的点云可能会出现性能瓶颈](https://github.com/rerun-io/rerun/issues/1136) ## Rerun 的用途是什么? Rerun 旨在帮助你理解和改进包含丰富多模态数据的复杂过程,例如 2D、3D、文本、时间序列、张量等。 它被应用于许多行业,包括机器人、仿真、计算机视觉, 或者任何涉及大量传感器或其他随时间演变的信号的场景。 ### 示例用例 假设你正在开发一款扫地机器人,但它总是撞墙。为什么会这样?你需要一些工具来调试它,但普通的调试器帮不上忙。同样,仅仅记录文本日志也不会有太大帮助。机器人可能会记录“正在穿过门道”,但这无法解释为什么它把墙当成了门。 你需要的是一个可视化和具有时间感知的调试器,它可以记录机器人在其小脑袋里保存的关于世界的各种表征,例如: * RGB 摄像头画面 * 深度图像 * 激光雷达扫描 * 分割图像(机器人如何解释它所看到的内容) * 其构建的公寓 3D 地图 * 机器人检测到的(或认为检测到的)所有对象,以 3D 地图中的 3D 形状表示 * 其对预测的置信度 * 等等 你还需要查看所有这些数据流随时间的演变情况,这样你就可以回溯并准确定位出了什么问题、何时出的错以及为什么出错。 也许结果发现是阳光的眩光以错误的方式照射到了某个传感器,干扰了分割网络,导致对象检测效果不佳。或者是激光雷达扫描代码中的 Bug。又或者是因为里程计损坏,机器人错误地以为自己在公寓的其他位置。还可能是一千种其他原因中的任何一个。Rerun 将帮助你找出真相! 但是,从机器人的视角观察世界不仅仅是为了调试——它还会为你提供改进算法的灵感、设定新测试用例的思路,或收集新数据集的方向。它还能让你向你的同事、老板和客户解释机器人的大脑是如何运作的。等等。眼见为实,一图胜千言,而多模态时间日志的价值胜过一千张图片 :) 虽然在机器人领域,查看和理解数据是取得进展的核心,但还有一点: 你还可以利用为可视化而收集的数据,为在你的机器人上运行的模型和算法创建用于训练和评估的新数据集。 Rerun 提供了查询 API,使你能够轻松地从记录中提取干净的数据集,正是为了满足这一需求。 当然,Rerun 的用途远不止于机器人。任何时候,只要你有任何形式的传感器,或者随时间演变的 2D 或 3D 状态,Rerun 都是一款出色的工具。 ### Rerun 与 Rviz 的对比 当你习惯了使用 [RViz](https://docs.ros.org/en/rolling/Tutorials/Intermediate/RViz/RViz-Main.html) 等纯可视化工具时,你可能习惯了只能看到最新的数据。 Rerun 不仅仅是一个纯可视化解决方案,它还为多模态数据提供了一个包含强大可视化工具、存储模型和查询引擎的平台(另见:[*“Rerun 是什么?”*](https://rerun.io/docs/overview/what-is-rerun))。 在机器人领域,你可以使用 Rerun 来(例如)记录测试运行、管理和查询训练数据、对实时流或录制文件进行可视化调试(也支持 [MCAP](https://rerun.io/docs/howto/logging-and-ingestion/mcap) 等第三方格式)等等。 因此,虽然 Rerun 使你的数据流可以在 Viewer 中可视化,但将 Rerun 日志集成到你的机器人应用中,也为利用 Rerun 更广泛的功能打开了大门。 如果你只对可视化感兴趣,Rerun Viewer 拥有强大的功能,例如得益于其时间感知的内存数据库,它能够回溯到过去的时间点。 你可以根据自己的需要调整此缓冲区的大小(见[此处](https://rerun.io/docs/howto/visualization/limit-ram)),例如,如果你想在长时间运行或内存受限的应用中将 Rerun 作为 RViz 的替代品,可以将其调整为更小的尺寸。 ## 商业模式 Rerun 采用开放核心模式。本仓库中的所有内容都将保持开源和免费(既免费使用,也保持自由开源)。 我们也在构建一个商业数据平台。 目前该平台仅对少数选定的设计合作伙伴开放。 [如果你感兴趣,请点击这里](https://rerun.io/pricing)。 Rerun 开源项目旨在满足个人开发者的需求。 商业产品则针对构建和运行计算机视觉与机器人产品的团队的特定需求。 ## 如何引用 Rerun 在你的研究中使用 Rerun 时,请引用它以确认其对你工作的贡献。可以通过 在论文的软件或方法部分包含对 Rerun 的引用来完成。 建议的引用格式: ``` @software{RerunSDK, title = {Rerun: A Visualization SDK for Multimodal Data}, author = {{Rerun Development Team}}, url = {https://www.rerun.io}, version = {insert version number}, date = {insert date of usage}, year = {2024}, publisher = {{Rerun Technologies AB}}, address = {Online}, note = {Available from https://www.rerun.io/ and https://github.com/rerun-io/rerun} } ``` 请将“insert version number”替换为你使用的 Rerun 版本,并将“insert date of usage”替换为 你在研究中使用该工具的日期。 这种引用格式有助于确保 Rerun 开发团队因其工作获得应有的认可,并 促进其他研究人员发现该工具。 # 开发相关 * [`ARCHITECTURE.md`](ARCHITECTURE.md) * [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) * [`CODE_STYLE.md`](CODE_STYLE.md) * [`CONTRIBUTING.md`](CONTRIBUTING.md) * [`BUILD.md`](BUILD.md) * [`rerun_py/README.md`](rerun_py/README.md) - Python SDK 说明 * [`rerun_cpp/README.md`](rerun_cpp/README.md) - C++ SDK 说明 ## 安装预发布版 Python SDK 1. 从 [GitHub Releases](https://github.com/rerun-io/rerun/releases) 下载正确的 `.whl` 文件 2. 运行 `pip install rerun_sdk<…>.whl`(将 `<…>` 替换为实际的文件名) 3. 测试安装:`rerun --version`
标签:AI工具, C++, DataFrame, Python, Rust, 仿真, 具身智能, 医疗, 可视化界面, 图像处理, 多模态数据, 安全, 工业处理, 开源, 张量, 数据可视化工具, 数据堆栈, 数据擦除, 数据查询, 数据流, 数据记录, 无后门, 时间序列, 机器人技术, 点云, 生成式媒体, 空间AI, 网络流量审计, 计算机视觉, 超时处理, 逆向工具, 通知系统