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