基于 Rerun + Gradio + SAM 2 的交互式 3D 标注应用:annotation_gradio 示例深度解析

发布时间:2026/9/16 23:22:33
基于 Rerun + Gradio + SAM 2 的交互式 3D 标注应用:annotation_gradio 示例深度解析 基于 Rerun Gradio SAM 2 的交互式 3D 标注应用annotation_gradio 示例深度解析【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun本篇文章围绕仓库中的examples/python/annotation_gradio外部示例展开剖析如何将 Rerun 与 Gradio 组合构建一个可交互的 3D 标注应用无论是单目视频流中的对象追踪实时生成深度图与点云还是多视角 RGB-D 数据中 2D 掩码的三角化与跨视角传播均基于 Segment Anything 2SAM 2实现。读完本文你将掌握该示例的两种工作模式、完整的运行方法基于 Pixi以及背后 Rerun 用于承载 2D/3D 空间数据的核心可视化原语。示例定位仓库中的 Image Video Understanding 类外部示例在 Rerun 仓库的示例清单 examples/manifest.toml 中annotation_gradio被归类在Image and video understanding图像与视频理解类别下与detect_and_track_objects、sam3d_body、sam2_depthanything、segment_anything_model等示例并列。该分类的描述是与图像和视频处理相关的示例突出 Rerun 在 2D 方面的能力——而本示例更进一步将 2D 分割能力与 3D 空间信息深度、点云、多视角几何打通。需要特别说明的是这是一个外部示例external example。Rerun 仓库内仅保留其说明文档 examples/python/annotation_gradio/README.md实际代码托管在独立的annotation-example仓库中运行前需要通过git clone拉取完整代码。这与仓库内sam2_depthanything等外部示例的形态一致见 examples/python/sam2_depthanything/README.md。技术栈概览该应用的核心技术组合如下组件职责Rerun负责数据的可视化与交互2D 掩码、深度图、点云、多视角 3D 场景的实时呈现Gradio提供 Web 交互界面让用户通过浏览器完成对象点选、标注与结果查看Segment Anything 2SAM 2提供图像/视频分割能力是两种模式共用的底层分割与追踪模型SAM 2 是 Segment Anything 的延续工作其关键改进在于引入了跨帧的会话级记忆模块per-session memory module使模型能够在整段视频中持续追踪被选中的对象——即使对象暂时离开视野模型也能凭借此前帧的上下文信息恢复跟踪。这一特性正是本示例在视频流中标注并追踪对象能力的基石。两种工作模式详解该应用包含两种工作模式两者都基于 SAM 2但数据输入与 3D 重建策略完全不同。模式一单目视频流中的对象追踪Monocular第一种模式聚焦于在单目视频流中追踪一个对象。除了分割掩码之外应用还会实时生成深度图depth maps与点云point clouds为标注过程提供完整的 3D 空间上下文。用户可以直接在三维空间中可视化、检查inspect被追踪的对象在 3D 视角下对对象进行标注而不再局限于 2D 画面。这意味着仅凭一个普通单目摄像头你就能获得2D 分割 3D 空间位置的完整标注体验。仓库内与之技术路线相近的参考示例是 examples/python/sam2_depthanything/README.md——该示例把 SAM 2 的视频追踪能力与单目深度估计模型结合实现仅从一段单目视频中在 3D 空间追踪对象与本模式一脉相承可作为理解单目深度可视化链路的对照材料。模式二多视角 RGB-D 数据的 3D 掩码重建与传播Multiview RGB-D第二种模式使用多视角 RGB-D 视频数据集处理流程可以拆解为四个关键步骤双视角分割从两路同步且已标定synchronized and calibrated的 RGB-D 视角中分别获取分割掩码三角化重建 3D 掩码利用两路 2D 掩码进行三角化triangulate重建出所选对象的精确 3D 掩码跨视角传播将这一 3D 掩码传播到所有相机视角跨帧传播将 3D 掩码沿视频逐帧传播最终得到对象随时间演化的完整 3D 追踪轨迹fully tracked 3D object trajectory over time。这一模式展示了2D 分割 → 3D 几何 → 时序追踪的完整链路非常适合需要精确 3D 对象级标注的数据生产场景。运行指南基于 Pixi 一键启动由于该示例是外部示例运行前需要先克隆其独立仓库并确保本机已安装Pixi 包管理器Pixi 是该项目广泛使用的环境与任务管理工具仓库内大量示例与开发任务均依赖它参见 examples/python/README.md 中Running examples with Pixi一节。前置条件已安装 Pixi 包管理器具备基本的命令行操作能力。步骤一克隆外部示例仓库git clone https://github.com/rerun-io/annotation-example cd annotation-example步骤二运行单目模式应用pixi run app执行上述命令将启动单目monocular模式的应用即模式一在单目视频流中追踪对象并实时生成深度图与点云。步骤三运行多视角模式应用pixi run multiview-app执行上述命令将启动多视角 RGB-D 模式的应用即模式二从两个同步且标定的 RGB-D 视角出发重建并跨视角、跨帧传播 3D 掩码。pixi run task会解析仓库内pixi.toml中预定义的任务task并自动管理依赖环境因此克隆后无需手工安装依赖即可运行这也是该示例推荐 Pixi 的原因。可视化原理Rerun 如何承载 2D 与 3D 标注数据虽然本示例的实际代码在外部仓库但它在 Rerun 侧所依赖的可视化原语都可以在仓库内的其他示例中找到对应的标准用法。理解这些原语有助于你读懂 annotation 应用在 Rerun Viewer 中呈现的每一类数据。时间轴Timeline把每一帧数据挂到时间线上标注与追踪数据是逐帧产生的Rerun 通过set_time将每一份日志数据绑定到时间轴上的特定帧。参考 examples/python/segment_anything_model/README.md 中的标准写法for n, image_uri in enumerate(args.images): rr.set_time(image, sequencen) # ... 记录该帧的分割结果对于本示例每个时刻的数据掩码、深度、点云、相机位姿都需要挂在同一个时间戳下才能在 Viewer 中按时间轴同步回放。图像与分割掩码Image / SegmentationImage输入帧以rr.Image记录到某个实体路径下分割掩码叠加后以rr.SegmentationImage记录即可在 Rerun 中按类着色叠加显示。参考写法见 examples/python/segment_anything_model/README.mdrr.log(image, rr.Image(image)) rr.log(image/masks, rr.SegmentationImage(segmentation_img.astype(np.uint8)))深度图与针孔相机DepthImage / Pinhole模式一中实时深度图与点云在 Rerun 中的标准落地方式可以参考仓库内的 RGBD 示例 examples/python/rgbd/README.md# 定义针孔相机模型分辨率 焦距把图像挂到 3D 世界坐标系下 rr.log( world/camera/image, rr.Pinhole( resolution[img_depth.shape[1], img_depth.shape[0]], focal_length0.7 * img_depth.shape[1], ), ) # 记录深度图meter 参数声明深度值到米的比例 rr.log(world/camera/image/depth, rr.DepthImage(img_depth, meterDEPTH_IMAGE_SCALING))当图像挂载了Pinhole相机模型后Rerun 会自动将其投射到 3D 空间中结合DepthImage即可实时生成点云视图——这正是 annotation 应用模式一中在三维空间中检查被追踪对象的实现基础。3D 掩码与追踪轨迹三角化的空间落点模式二中的 3D 掩码与跨帧轨迹对应 Rerun 的 3D 空间视图能力一旦多视角相机都以Pinhole含外参挂载到同一world坐标系下三角化得到的 3D 掩码点、对象轨迹点就可以作为 3D 实体直接写入场景并随 Timeline 逐帧演进。用户可以自由旋转视角从任意角度检查掩码重建精度与轨迹一致性——这正是交互式 3D 标注的核心交互体验。实战价值与应用场景结合本项目Visualize, query, and stream to train on multimodal robotics data的定位该类交互式 3D 标注应用在以下场景中具有直接价值机器人多模态数据标注为抓取、操作等任务生成对象级 3D 掩码与轨迹标签作为训练数据的生产工具多视角重建数据质检借助三角化与跨视角传播快速发现重建误差或遮挡导致的掩码漂移单目感知方案验证仅凭普通摄像头即可获得带 3D 上下文的标注体验降低标注硬件门槛教学与原型演示Gradio 的 Web 界面使得非技术成员也能参与标注流程Rerun 则保证了全程数据的可视化可回溯。提示本文介绍的是外部示例的使用方式与底层可视化原理具体代码实现请以克隆后的annotation-example仓库为准仓库内 examples/python/annotation_gradio/README.md 保留的是该示例的入口文档examples/manifest.toml 记录了它在示例体系中的分类归属。【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考