← 返回列表

SKT: Integrating State-Aware Keypoint Trajectories with Vision-Language Models for Robotic Garment Manipulation

作者 Xin Li, Siyuan Huang, Qiaojun Yu, Zhengkai Jiang, Ce Hao, Yimeng Zhu, Hongsheng Li, Peng Gao, Cewu Lu
年份 2024
会议/期刊 arXiv 2024
评分
标签 机器人操控 视觉语言模型 衣物操控
摘要 统一 VLM 做多类衣物操控:状态感知成对关键点表征 + 大规模合成数据集 + 两阶段微调(关键点检测→动作轨迹生成),关键点距离误差比专用模型低 40-60%

核心思想

机器人叠衣服是一个经典难题。现有方法为每种衣物类型训练单独的模型(T恤一个、毛巾一个、短裤一个),成本高且不能泛化。

SKT 提出用一个统一的 VLM 处理所有类型的衣物操控:

  1. 状态感知成对关键点表征 → 统一描述衣物的抓取和放置位置
  2. 大规模合成数据集(20,000 张)→ 模拟各种衣物状态(展平、折叠、变形)
  3. 两阶段 VLM 微调 → 先学关键点检测,再学动作轨迹生成

背景知识

衣物操控为什么难

挑战 说明
高度可变形 衣物的状态空间几乎无限
自遮挡 折叠的衣物部分被自身遮盖
多样性 T恤、裤子、毛巾结构完全不同
状态依赖 同一件衣物展平和折叠时,操控方式完全不同

什么是成对关键点

不是检测单个特征点,而是检测成对的点——表示”从这里抓,放到那里”:

\[\{(x_1, y_1), (x_2, y_2)\} = \text{抓取点} \to \text{放置点}\]

双臂操控时,输出两组动作元组:

  • 左臂:$LA((x_1^l, y_1^l), (x_2^l, y_2^l))$
  • 右臂:$RA((x_1^r, y_1^r), (x_2^r, y_2^r))$

方法详解

1. 合成数据集生成

1.1 衣物网格生成

  1. 根据衣物类型模板创建 2D 边界顶点
  2. 贝塞尔曲线连接顶点生成光滑轮廓
  3. 1cm 边长约束三角化 → 得到衣物网格
  4. 生成 UV 贴图用于纹理映射
  5. 在折叠各阶段跟踪顶点 → 自动标注关键点

1.2 衣物变形模拟

使用 Blender 物理仿真:

  • 随机朝向 + 自然下落 → 生成褶皱
  • 圆形抓取动作模拟折叠
  • 随机物理属性(弯曲刚度、拉伸、摩擦、阻力)
  • 重点生成逼真的折叠模式

1.3 图像渲染

  • 使用 PolyHaven 纹理贴衣物和环境
  • 放置 Google Scanned Objects 的干扰物
  • 随机相机位置和光照
  • Cycles 渲染引擎生成逼真图像
  • 总共 20,000 张合成图像

1.4 关键点标注

使用光线投射验证顶点可见性:如果顶点的 2-ring 邻域中有任何顶点在渲染图中可见,则该关键点标记为可见。

2. VLM 架构

基于 SPHINX-X 框架(LLaMA2 语言骨干),使用多编码器融合

编码器 功能
CLIP 全局特征
DINOv2 局部语义信息
QFormer 全局特征摘要

Any Resolution 策略:将输入图像分割为子图像 → 各编码器提取特征 → 通道级拼接局部和全局特征 → 投影层对齐视觉和语言 token。

3. 两阶段微调

Phase 1:关键点检测

  • 训练视觉投影层
  • 提示:“Please detect the keypoints used to manipulate the [garment-type]”
  • 输出以 <kp> token 标记
  • 让 VLM 先理解衣物的空间结构

Phase 2:动作元组生成

  • 训练视觉投影层 + 语言模型
  • 提示:“Please provide actions for folding the [garment-type]”
  • 输出以 <action> token 标记
  • 减少关键点检测任务比例,聚焦于将点对与动作关联

两阶段的必要性:Phase 1 作为”桥梁”连接预训练 VQA 能力和新的操控任务;直接训练 Phase 2 效果差。

4. 训练配置

参数
GPU 8 × A100 (80GB)
Epochs 3
训练时间 ~4 小时
Batch size 4
学习率 2×10⁻⁵
视觉编码器 冻结

实验结果

评估指标

  • mAP:L2 距离阈值 2/4/8 像素下的平均精度
  • AKD:平均关键点距离(像素,越低越好)

Sim-to-Real(仅用合成数据)

衣物类型 方法 mAP₂,₄,₈ AKD (像素)
T恤 专用检测器 58.2 14.0
T恤 SKT 63.3 8.7
短裤 专用检测器 51.4 27.3
短裤 SKT 56.7 10.9
毛巾 专用检测器 83.2 13.1
毛巾 SKT 83.9 3.4

SKT 的 AKD 比专用模型低 40-60%,且只用一个模型覆盖所有类型。

合成+真实数据联合训练

衣物 专用检测器 AKD SKT_KP AKD SKT AKD
T恤 8.3 6.8 8.1
短裤 11.2 7.9 7.1
毛巾 6.8 2.0 3.0

SKT_KP(仅关键点)在所有类型上优于专用模型。

消融实验

高分辨率 KP 任务 两阶段训练 mAP₂,₄,₈ AKD
55.7 12.2
64.7 9.8
65.3 8.9
67.9 7.7

每个组件都有贡献:高分辨率最重要(-2.4 AKD),两阶段训练提供额外改善。

泛化能力

  • 长裤(从短裤泛化):——跨类别推理成功
  • 长袖(训练中未出现):——复杂折叠超出训练分布

个人思考

  1. “一个模型做所有衣物” 是正确的方向:成对关键点是衣物无关的操控表征,VLM 的语义理解负责区分不同衣物类型。
  2. 合成数据的有效性:仅用合成数据就在真实世界表现良好(AKD 3.4-10.9 像素)→ Blender 物理仿真生成的变形足够逼真。
  3. 两阶段微调的桥梁作用:先学”看”(关键点在哪里)再学”做”(如何折叠)→ 这种渐进策略避免了从 VQA 到操控的巨大跨越。
  4. 高分辨率输入的关键性:衣物关键点是小目标(如衣领角、袖口),低分辨率下无法精确定位——这在消融中体现最明显。
  5. 局限性坦诚:对训练中未出现的衣物类型(长袖)泛化不佳——说明当前合成数据的覆盖范围还需扩展。
← 返回列表