Rerun:超神级日志工具,实现算法录屏
2026/9/24 17:12:58 网站建设 项目流程

文章目录

    • 简介和安装
    • 示例
    • 代码解读

简介和安装

Rerun可以理解为是个高级的日志工具,可以对程序运行中的各种数据进行可视化,并完美回放。其底层基于Rust+webGPU,提供了Rust,C++以及Python的SDK,方便直接嵌入到现有的数据处理或训练管道中。其 Viewer(查看器)设计为完全在客户端本地运行,以确保数据隐私和低延迟,适合处理大规模本地日志。

在Python中用pip安装即可,装完即可运行

pip install rerun-sdk -i https://pypi.tuna.tsinghua.edu.cn/simple rerun

界面如下,左侧是项目树,下方有一些示例,点击即可运行,非常炫酷。

示例

下面做一个简单的示例,只用到numpy,其表现力就已经相当不错了

代码如下,虽然长,但逻辑很清晰,rerun只起到一个日志记录和可视化的作用

importrerunasrrimportnumpyasnpimporttime rr.init("自动驾驶小车模拟",spawn=True)forstepinrange(200):rr.set_time("step",sequence=step)# 设置当前时间戳img=np.zeros((200,200,3),dtype=np.uint8)img[:,:,0]=step%255# 红色通道随时间变化img[80:120,80:120]=[0,255,0]# 在图像中间画一个绿色的方块rr.log("camera/view",rr.Image(img))rr.log("camera/detections",rr.Boxes2D(mins=[80,80],sizes=[40,40],labels=["Pedestrian"]))# 定义一个小车car_x=np.sin(step*0.05)*10car_y=np.cos(step*0.05)*10rr.log("world/car_position",rr.Points3D([[car_x,car_y,0]],colors=[255,0,0],radii=1.0))# 随机生成 100 个 3D 点num_points=100points=np.random.rand(num_points,3)*20-10points[:,2]=0# 让点都在地面上 (z=0)rr.log("world/lidar_points",rr.Points3D(points,colors=[0,255,255],radii=0.2))# 小车速度speed=5.0+np.sin(step*0.1)*3.0rr.log("dashboard/speed",rr.Scalars(speed))# 小车电量battery=100.0-step*0.4rr.log("dashboard/battery",rr.Scalars(battery))# 记录 文本数据:系统日志ifstep%40==0:rr.log("logs/system",rr.TextLog(f"Step{step}: 系统运行正常",level=rr.TextLogLevel.INFO))ifstep%100==0andstep>0:rr.log("logs/system",rr.TextLog(f"Step{step}: 警告!电量过低!",level=rr.TextLogLevel.WARN))# 稍微暂停 0.05 秒,让动画看起来更连贯 (如果不加这行,数据会瞬间跑完)time.sleep(0.05)

代码解读

【init】函数用于rerun初始化,spawn用于开启多线程。初始化完成后,会弹出rerun的窗口。

【set_time】用于设置演化时间,其第一个参数为时间轴的名称,sequence用于指定当前时间的值。

在初始化完成后,且每次循环指定时间参数后,剩下代码调用的就都是log函数了,用于将日志信息传送给rerun,其输入参数分别是当前日志信息所在的路径和各种不同类型的信息。上述代码生成的日志结构为

  • 📁camera
    • 📁view➡️Image
    • 📁detections➡️Boxes2D
  • 📁world
    • 📁car_position➡️Points3D
    • 📁lidar_points➡️Points3D
  • 📁dashboard
    • 📁speed➡️Scalars
    • 📁battery➡️Scalars
  • 📁logs
    • 📁system
      • ➡️TextLog
      • ➡️TextLog

其中,Image, Boxes2D, Points3D, Scalars, TextLog均为Rerun支持的实体类型(Archetype),分别表示图像、二维方块、三维点云、数值和文本日志。Rerun会自动对这些日志信息进行布局,最终在其GUI程序中展示。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询