告别手动标注:用Rerun实现可视化结果到训练数据集的无缝转换
你是否还在为这些问题烦恼?标注工具与可视化平台脱节导致数据不一致、手动导出标注结果效率低下、多模态数据标注格式不统一?本文将带你通过Rerun实现从可视化到数据集的全流程自动化,5分钟内完成原本需要2小时的标注导出工作。读完本文你将掌握:Rerun标注功能激活方法、3种导出格式设置技巧、批量处理与质量检查实用工具。
认识Rerun的标注能力
Rerun作为一款多模态数据可视化工具(Visualize streams of multimodal data),不仅能实时呈现3D点云、图像序列等复杂数据,还内置了强大的标注功能。通过Python SDK,开发者可以将可视化过程中生成的掩码(Mask)、边界框(Bounding Box)等标注结果直接导出为COCO、Pascal VOC等标准数据集格式。
核心优势体现在三个方面:
- 所见即所得:在3D空间中调整的标注结果可即时验证
- 多模态融合:同步处理图像、点云、文本等异构数据标注
- 零代码导出:通过简单API调用完成格式转换与文件生成
相关功能实现代码位于examples/python/segment_anything_model/segment_anything_model.py,该示例展示了如何结合Segment Anything模型进行自动标注并通过Rerun可视化。
快速上手:单图像标注导出流程
准备工作
首先确保已安装Rerun SDK:
pip install rerun-sdk
克隆项目仓库:
git clone https://gitcode.com/GitHub_Trending/re/rerun
cd rerun/examples/python/segment_anything_model
标注与导出步骤
- 启动可视化标注工具
import rerun as rr
from segment_anything import SamAutomaticMaskGenerator
# 初始化Rerun会话
rr.init("annotation_export_demo", spawn=True)
# 加载图像并运行分割
image = cv2.imread("examples/assets/example.jpg")
mask_generator = SamAutomaticMaskGenerator(sam_model)
masks = mask_generator.generate(image)
# 可视化标注结果
rr.log("image", rr.Image(image))
rr.log("segmentation", rr.SegmentationImage(segmentation_img))
- 配置导出参数 在Rerun Viewer界面中,通过右侧面板设置:
- 导出格式(COCO JSON/Pascal VOC XML)
- 保存路径(默认:
examples/assets/dataset/) - 是否包含置信度分数
- 执行导出 点击工具栏"Export"按钮或调用API:
# 导出标注结果为COCO格式
rr.export_annotations(
"segmentation",
output_path="examples/assets/dataset/annotations.json",
format="coco"
)
导出的数据集结构如下:
examples/assets/dataset/
├── annotations.json # 标注文件
├── images/ # 原始图像
└── masks/ # 分割掩码
高级应用:视频序列批量处理
对于动态视频数据,Rerun提供了时间序列标注跟踪功能。以手势识别数据集生成为例,examples/python/gesture_detection/gesture_detection.py实现了以下流程:
关键代码解析
# 视频帧处理循环
for frame_idx, frame in enumerate(video_frames):
rr.set_time("frame", frame_idx)
# 检测手势并记录3D关键点
detector.detect_and_log(frame, frame_time_nano)
# 按时间戳导出标注
if frame_idx % 10 == 0: # 每10帧导出一次
rr.export_annotations(
"hand_landmarks",
output_path=f"dataset/frame_{frame_idx:04d}.json",
format="voc"
)
质量控制技巧
- 标注一致性检查 使用Rerun的时间滑块功能,检查跨帧标注结果的连续性:
# 加载导出的标注文件进行验证
from rerun.extensions.dataset import load_annotations
annotations = load_annotations("examples/assets/dataset/annotations.json")
rr.log_annotations("validation", annotations)
- 数据集统计分析 生成标注分布报告:
python scripts/analysis/annotation_stats.py --input dataset/annotations.json
常见问题与解决方案
| 问题场景 | 解决方法 | 参考资源 |
|---|---|---|
| 导出文件体积过大 | 启用掩码压缩选项 compress_masks=True | API文档 |
| 3D点云标注漂移 | 使用rr.AnnotationContext定义坐标系 | 坐标系设置示例 |
| 多类别标注混淆 | 配置ClassDescription色彩映射 | 标注上下文示例 |
资源与社区支持
- 官方示例库:examples/python/包含15+标注相关案例
- 数据集模板:examples/assets/dataset/提供标准目录结构
- 社区论坛:标注问题可在项目Discussions板块提问
建议收藏本文并关注项目CHANGELOG.md获取功能更新通知。下一期我们将介绍如何将Rerun标注与Label Studio无缝集成,敬请期待!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




