Semantic keypoint
- 又称: category-level keypoint, object keypoint
- 类别: Sensing › Perception outputs
- 标签: manipulation, perception, object-representation, category-level, keypoints
在整个物体类别中定义一致的物体上的点,例如马克杯的把手或底部中心,机器人在 3D 中检测它,以此规定和规划操作。
定义
语义关键点(semantic keypoint)是物体上的一个点,它在某一类别的每个实例上都具有相同的含义:马克杯底部的中心、螺丝刀的尖端、销钉的末端、鞋的鞋尖。通用的图像特征之所以被选中,是因为它易于检测和跟踪;而语义关键点之所以被选中,是因为它对任务所具有的含义。感知模型(通常是在标注图像上训练的神经网络)预测每个关键点在图像中的位置,再借助深度数据或多个视角把它们转换成 3D 位置。
在操作中,语义关键点是估计完整 6-DOF 物体位姿的一种替代方案。位姿只有相对于一个固定的模板模型才有明确定义,而当一个类别的各个实例在尺寸和形状上不同时,这一点就不成立了:两个马克杯可能在高度、宽度和把手位置上都不同,因此没有任何单一的刚体变换能把一个与另一个对齐。但一小组关键点在两者上仍然有意义。kPAM 方法(Manuelli、Gao、Florence 和 Tedrake,2019)利用这一点,把任务规定为关键点上的代价和约束,例如马克杯的底部中心放在货架上、其顶部中心位于正上方,并求解满足这些条件的物体刚体运动;然后由一次抓取带着物体完成这一运动。kPAM 2.0 把这一方法扩展到闭环反馈控制,从而能够完成诸如轴孔插入之类的富接触任务。
这种表示紧凑且可解释,关键点代价可以与碰撞约束和运动学约束一起直接写入优化问题。它的局限也源于同一处。必须有人决定某个类别在给定任务中需要哪些关键点,而且少数几个点对完整几何形状说明甚少,因此碰撞检测通常需要单独的点云或网格。遮挡、对称性(即几个点看起来等价),以及与训练数据中不同的物体,都会降低检测效果。相关的表示包括稠密视觉描述子,它为每个像素分配一个学习得到的特征;以及归一化物体坐标图,它为每个像素预测一个规范形状坐标系。
为何重要
家庭、实验室和仓库中的机器人会遇到许多用途相同但形状并不完全一致的物体实例。语义关键点使人们可以为整个类别编写一份任务规范,仍能精确放置物体,而不需要每个物体的 CAD 模型。
主要应用
- 形状各异物体的类别级拾放
- 放置、悬挂和堆叠的任务规范
- 轴孔插入等富接触装配
- 工具使用,由与任务相关的点决定工具如何接触工件
- 通过少数有意义的点跟踪铰接物体或可变形物体
实际应用
一个团队希望机器人能把几十个不同马克杯中的任何一个挂到架子上。他们在几百张深度图像上标注三个关键点:底部中心、顶部中心以及把手内侧的一个点。在这些图像上训练的网络预测新马克杯上的关键点,并从深度图像中读出它们的 3D 位置。任务被写成约束:把手上的点必须最终落在架子的挂钩上,从底部到顶部的轴线必须接近水平。优化器求出满足这些约束的马克杯刚体变换,机器人抓住杯沿,再把规划好的马克杯运动转换成末端执行器轨迹。大多数失败发生在把手被相机遮挡时,因此团队让机器人移动相机或转动马克杯,重新检测后再规划。
常见误解
- 语义关键点与 SIFT 或 ORB 角点等图像特征点相同 — 后者因具有辨识度且易于跟踪而被选中,而语义关键点是因其任务含义而被选中,并在各实例之间相互对应
- 关键点取代了物体的全部几何信息 — 它们只描述与任务相关的点,因此避障和抓取选择仍需要点云或网格
- 关键点把位姿从问题中去掉了 — 它们避免了基于模板的 6-DOF 物体位姿,但机器人仍要计算物体的刚体变换以及夹爪的完整位姿
谁需要了解
- 处理各种日常物体的操作工程师
- 训练关键点检测器的感知工程师
- 设计物体表示的机器人学习研究人员
- 构建柔性拾放与装配单元的系统集成商
相关技术
- kPAM
- 关键点热图回归(Keypoint Heatmap Regression)
- 稠密物体描述子(Dense Object Descriptors)
- 归一化物体坐标空间(Normalized Object Coordinate Space,NOCS)
- Perspective-n-Point
相关术语
- Category-Level Manipulation
- Affordance
- Point Cloud
- Perspective-n-Point
- Task-Oriented Grasping
- Peg-in-hole insertion
相关项目
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
- PCL: Industry-standard C++ library for point cloud processing in robotics perception
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation