Rerun是一个用于构建多模态数据时间感知可视化的开源SDK。它的目标是帮助开发人员更好地理解和调试涉及丰富多模态数据的复杂过程,比如机器人、仿真、计算机视觉等领域的应用。
使用Rerun SDK,开发者可以轻松记录各种类型的数据,包括:
2D图像3D点云文本时间序列张量等等这些记录的数据可以实时流式传输到Rerun Viewer进行可视化,也可以保存到文件中供日后使用。Rerun支持C++、Python和Rust三种主流编程语言,可以无缝集成到现有的开发工作流中。
Rerun支持记录多种类型的数据,包括但不限于:
图像点云3D物体文本时间序列张量这使得开发者可以全面记录系统的内部状态和输出,从而更容易理解系统的行为。
Rerun的一个关键特性是它的时间感知可视化能力。它可以展示数据随时间的演变过程,让开发者能够:
回放系统的运行过程定位问题发生的具体时间点分析数据流的时间相关性这对于调试复杂的时序系统特别有帮助。
Rerun支持将记录的数据实时流式传输到Rerun Viewer中进行可视化。这意味着开发者可以在系统运行的同时观察其内部状态和输出,实现实时监控和调试。
除了实时流式传输,Rerun还支持将记录的数据保存到文件中(.rrd格式)。这些文件可以在之后使用Rerun Viewer加载和回放,方便离线分析和问题复现。
Rerun SDK支持C++、Python和Rust三种主流编程语言,可以满足不同开发者的需求。无论你使用哪种语言,都可以轻松集成Rerun到你的项目中。
Rerun适用于多种应用场景,特别是那些涉及复杂多模态数据的领域。以下是一些典型的应用场景:
在机器人开发中,Rerun可以帮助开发者可视化机器人的感知、决策和控制过程。例如,你可以使用Rerun来记录和可视化:
机器人的摄像头输入激光雷达扫描结果对象检测和分割结果路径规划和导航信息机器人的3D姿态和运动轨迹这些可视化信息可以帮助开发者更好地理解机器人的行为,快速定位问题,并优化算法。
在计算机视觉项目中,Rerun可以用来可视化算法的中间结果和最终输出。例如:
图像预处理步骤特征提取结果目标检测和跟踪结果语义分割图3D重建结果通过可视化这些信息,开发者可以更直观地评估算法性能,发现潜在问题。
自动驾驶系统涉及大量传感器数据和复杂的决策过程。Rerun可以帮助可视化:
多个摄像头的输入雷达和激光雷达数据车辆定位和姿态信息障碍物检测和跟踪结果路径规划和控制指令这些可视化可以帮助开发者调试自动驾驶系统,提高其安全性和可靠性。
在AR/VR开发中,Rerun可以用来可视化:
设备的姿态估计环境重建结果虚拟对象的放置和渲染用户交互事件这些信息对于优化AR/VR体验至关重要。
在各种科学研究领域,Rerun也可以发挥重要作用。例如:
物理仿真结果可视化生物学图像分析地理信息系统数据可视化气象数据分析和预测研究人员可以使用Rerun来更好地理解和展示他们的数据和结果。
使用Rerun非常简单,主要分为以下几个步骤:
安装Rerun SDK在代码中集成Rerun日志记录运行Rerun Viewer查看结果Rerun支持多种安装方式:
Python: pip install rerun-sdkRust: cargo add rerunC++: 请参考C++快速入门指南以Python为例,使用Rerun记录数据的基本流程如下:
import rerun as rr# 初始化Rerunrr.init("my_app")# 连接到Rerun Viewer或保存到文件rr.connect() # 连接到远程Viewer# rr.spawn() # 启动一个本地Viewer# rr.save("recording.rrd") # 保存到文件# 设置时间序列rr.set_time_sequence("frame", 0)# 记录数据rr.log("camera", rr.Image(image_data))rr.log("points", rr.Points3D(positions, colors=colors))rr.log("text", rr.TextLog("Hello, Rerun!"))# 更新时间序列rr.set_time_sequence("frame", 1)# 继续记录数据...Rerun Viewer是一个强大的工具,用于可视化和探索记录的数据。你可以通过以下方式启动Viewer:
使用rr.spawn()在代码中直接启动Viewer运行独立的rerun命令行工具使用在线Rerun ViewerViewer提供了丰富的功能,包括:
时间轴浏览3D场景交互数据过滤和搜索自定义布局数据导出简单易用: Rerun的API设计简洁直观,集成成本低,学习曲线平缓。
跨语言支持: 支持C++、Python和Rust,可以满足不同开发者的需求。
性能优秀: Rerun的核心是用Rust编写的,性能优秀,可以处理大量数据。
可扩展性: Rerun支持自定义数据类型和可视化方式,可以适应各种特定需求。
开源免费: Rerun的核心功能是开源的,可以免费使用,这对于个人开发者和小团队来说非常有吸引力。
活跃的社区: Rerun有一个活跃的开发者社区,不断有新的功能和改进被添加。
文档完善: Rerun提供了详细的文档和示例,方便用户学习和使用。
Rerun团队正在积极开发新功能和改进现有功能。一些计划中的改进包括:
提高大规模点云的渲染性能优化处理大量实体时的性能开发基于磁盘的数据存储,以支持超大规模数据集增加更多的数据类型和可视化方式改进用户界面和交互体验此外,Rerun团队还计划推出商业版本,为团队协作和企业级应用提供更多功能。
Rerun是一个强大而灵活的工具,可以帮助开发者更好地理解和调试涉及复杂多模态数据的系统。无论你是在开发机器人、自动驾驶系统、计算机视觉应用,还是进行科学研究,Rerun都可以成为你工具箱中的得力助手。
通过提供直观的可视化和时间感知的数据探索能力,Rerun可以帮助你:
更快地定位和解决问题优化算法性能更好地理解系统行为与团队成员和客户更有效地沟通如果你正在处理复杂的多模态数据,不妨尝试一下Rerun。它可能会为你的开发过程带来全新的视角和效率提升。
要开始使用Rerun,请访问Rerun官网或GitHub仓库获取更多信息和资源。加入Rerun的Discord社区也是一个好主意,你可以在那里获得支持并与其他开发者交流经验。
记住,看见就是相信,而Rerun可以帮助你看见你的数据和系统的方方面面。开始你的Rerun之旅吧,探索数据可视化的无限可能!