clamp-benchmark
收藏CLAMP Benchmark 数据集概述
数据集简介
CLAMP(Closed-Loop Assembly and Mechanism Perception)是一个面向运动学姿态估计和装配推理的模拟到现实(Sim-to-Real)基准数据集,专注于测试复杂机械设备的感知能力。数据集主要挑战包括闭环运动链、棱柱关节以及结构装配扰动(缺失部件导致几何和运动学变化)。
数据集规模
- 总图像数量:超过100万张(1M < n < 10M)
- 合成数据:约1.14 TB
- 真实数据:约60 GB
- 真实测试集:21,000张图像(210个场景 × 约100帧)
设备类型
数据集涵盖七种机械设备:
| 设备名称 | 关节类型 | 闭环 | 主动自由度 | 网格部件数 |
|---|---|---|---|---|
| 笛卡尔3D打印机 | 棱柱关节 | ✗ | 3 | 267 |
| CNC雕刻机 | 棱柱关节 | ✓ | 7 | 186 |
| Delta 3D打印机 | 旋转+棱柱关节 | ✓ | 27 | 192 |
| 液压千斤顶 | 旋转+棱柱关节 | ✓ | 13 | 52 |
| 机械臂(6自由度+夹爪) | 旋转关节 | ✓ | 11 | 195 |
| 四足机器人 | 旋转关节 | ✓ | 20 | 419 |
| 台锯 | 旋转+棱柱关节 | ✗ | 11 | 59 |
支持任务
- 运动学姿态估计:从单张RGB图像预测关节角度/平移量(已知运动学模型)
- 装配状态推理:预测每个部件是否存在(逐骨骼和逐网格的二分类)
- 目标检测:检测场景中的设备(边界框预测)
数据集结构
配置
每个设备包含两种配置:
kinematics_only:所有部件存在,仅运动学状态变化kinematics_assembly:部件可被移除,运动学和装配状态同时变化
数据划分
| 划分 | 来源 | 用途 | 数量 |
|---|---|---|---|
train |
合成(BlenderProc) | 训练 | 所有设备总计约100万+图像 |
val |
合成(BlenderProc) | 验证 | 每设备子集 |
test |
真实(4K iPhone视频) | 评估 | 约21,000张图像 |
目录结构
├── real/ # 真实测试图像 │ ├── kinematics_only/ │ │ └── <设备>/ │ │ ├── armature.json # 运动学模型定义 │ │ ├── objs/ # 网格文件(OBJ格式) │ │ └── <场景ID>/ │ │ ├── equipment_pose.json # 真实关节状态 │ │ ├── rgb/ # 4K JPEG图像 │ │ ├── rgb_pose/ # 相机到世界变换 │ │ ├── rgb_intrinsics/ # 相机内参 │ │ ├── correspondences/ # 2D-3D标注对应点 │ │ └── ground_truth_detections/ # 真实边界框 │ └── kinematics_assembly/ │ ├── synthetic/ # 合成训练/验证图像 │ ├── kinematics_only/ │ │ └── <设备>/ │ │ ├── train/ │ │ │ ├── armature.json │ │ │ ├── bounding_boxes.json │ │ │ ├── objs/ │ │ │ └── scene_<UUID>/ │ │ │ ├── equipment_pose.json │ │ │ ├── rgb/ # PNG图像 │ │ │ ├── segmentation/ # 实例分割掩码 │ │ │ ├── depth/ # 16位深度图 │ │ │ └── equipment_points/ # NOCS对应映射 │ │ └── val/ │ └── kinematics_assembly/ │ └── sample/ # 小型采样子集
数据字段
armature.json — 运动学模型:定义每类设备的完整运动学结构,包含骨骼的层级变换、自由度限制、关节范围及骨骼间约束(IK、拉伸、子级约束)。
equipment_pose.json — 关节状态标注:每个场景的关节状态真值,包含所有骨骼和网格相对于休息姿态的增量变换。
每帧数据:
| 文件 | 格式 | 描述 |
|---|---|---|
rgb/XXXXXX.{png,jpg} |
图像 | RGB图像(合成:PNG;真实:JPEG,4K) |
rgb_pose/XXXXXX.npy |
float64 (4×4) | 相机到世界变换矩阵 |
rgb_intrinsics/XXXXXX.npy |
float64 (3×3) | 相机内参矩阵 |
segmentation/XXXXXX.{png,npy.gz} |
掩码 | 逐像素部件实例分割(仅合成) |
depth/XXXXXX.png |
uint16 | 深度图(仅合成) |
equipment_points/XXXXXX.png |
uint8×3 | NOCS对应映射(仅合成) |
ground_truth_detections/XXXXXX.json |
JSON | 真实边界框(仅真实) |
correspondences/XXXXXX.json |
JSON | 2D-3D标注对应点(仅真实,标注帧) |
坐标系说明
- 世界空间:右手系,Z轴向上,-Y轴向前(Blender惯例)
- 相机空间:右手系,+Z朝向场景,+Y向下(计算机视觉惯例)
- 图像空间:原点在左上角,+X向右,+Y向下
- 旋转顺序:Euler XYZ
- 单位:米
数据集创建
合成数据
使用基于BlenderProc的自定义管线生成:
- 约束姿态采样:通过内部优化(CasADi + IPOPT)在运动学约束流形上采样有效配置
- 随机部件移除:在部件邻接图上进行连通子图采样,并自动重构运动学结构
- 域随机化:随机PBR材质、光照(点光源+HDRI)、相机视角、干扰物体和地面
真实数据
- 采集:4K iPhone轨道视频(每场景约100帧)
- 相机标定:COLMAP稀疏重建
- 标注:自定义交互式2D-3D对应点标注工具
- 关节状态恢复:多视图约束优化(CasADi + IPOPT)
- 标注质量:平均RMS重投影误差11.0像素(4K图像,小于图像宽度的0.3%)
隐私与伦理
数据集不包含任何个人或敏感信息。所有图像仅展示工业/爱好设备,无人类、人脸或个人可识别信息。
社会影响与应用
潜在应用包括:
- 增强现实引导的设备维护
- 自动化装配验证
- 远程设备监控
- 机器人工具/夹具感知
局限性
- 设备多样性:仅7类设备,机械多样性范围广但数量有限
- CAD依赖:需要已知CAD模型及运动学规格
- 标注精度:CAD与实物不匹配及COLMAP标定导致的残余标注误差
- 域差距:合成到真实的迁移仍具挑战性
许可协议
本数据集采用Creative Commons Attribution 4.0 International License (CC-BY 4.0) 许可。




