如何標註機器人回合
把一次機器人演示切分為若干階段、判定結果,並繪製稠密獎勵曲線。為什麼'部分成功'是一種真實結果,以及為什麼時序軌道比影片更重要。
一次機器人演示,是若干路同步的相機影片流加上若干條數值時序,而關於它值得問的每一個問題都與時間有關。 抓取何時開始、何時失敗、每一時刻距離完成還有多遠。因此介面必須是一條時間軸,而不是一張表單。
把訊號放在影片旁邊
相機檢視在上,機械臂自身的訊號作為軌道在下,共用一條時間軸,所有標註圖層都繪製其上。
這不是排版偏好。一次失敗的抓取,通常在夾爪與腕部力的曲線上會比在畫面上早若干幀顯現。已發表的研究支援這一點:ATLAS(維也納工業大學)報告稱,在影片旁並列顯示本體感知時序,可降低邊界誤差,優於純視覺工具。
由此帶來兩個實際後果:
- 不要把這些軌道藏在標籤頁後面。 如果標註者得主動去找,他們就不會去看。
- 降取樣要保留極值。 一次只持續一幀的力峰值,被繪製到 300 畫素寬的軌道時,在均值降取樣下會徹底消失,而那個峰值往往正是事件本身。
按子目標切分
階段邊界位於機器人目標發生變化之處——接近、抓取、搬運、放置、收回——而不是影片切換之處,也不是機械臂恰好停頓之處。
階段分類體系是按任務族而定的。操作類與導航類需要完全不同的集合,因此這屬於你的配置,而不屬於工具本身:
phases:
- {name: reach, color: "#4ECDC4", key_value: "1"}
- {name: grasp, color: "#FFD93D", key_value: "2"}
- {name: transport, color: "#6C8AE4", key_value: "3"}
- {name: place, color: "#95E1A3", key_value: "4"}
- {name: retract, color: "#C9A0DC", key_value: "5"}三種結果,而非兩種
success、partial、failure。
在真實機器人資料中,"部分成功"是出現頻率最高的結果。 把它強行壓成二元,會摧毀那個讓這份資料集值得標註的訊號:一個把物體從桌上拿起來卻掉了的回合,與一個根本沒動過的回合並不相同,而按同一類訓練出來的策略會學錯東西。
請為其配上一套失敗原因分類——抓空、物體滑落、碰撞、拿錯物體、放錯位置、超時——這樣失敗才是可分析的,而不只是被計數。
事後重新標註
一個在原定任務上失敗的回合,常常是另一項任務的成功演示。把這個回合實際展示了什麼記錄下來,一段本要丟棄的錄影就變成了可用的訓練資料。
這在標註時採集成本很低,事後卻無從補救,所以哪怕你還不確定會不會用上,也值得一併採集。
獎勵圖層代價高昂
一條稠密的進度獎勵曲線,每個回合要花幾分鐘,而階段標註只要幾秒。只在確有需要時才啟用它,並預期它會佔據你標註預算的大頭。
衡量一致性
三個圖層,三種度量:
| 圖層 | 度量 |
|---|---|
| 階段邊界 | 時間 IoU |
| 結果標籤 | Krippendorff's α |
| 獎勵曲線 | ICC 加 Pearson |
每一項都要同時說明覆蓋率。 在時間軸 5% 的範圍上算出的相關係數,對其餘 95% 什麼也沒說,而一個不附帶覆蓋率的係數,會被當作覆蓋了全部來解讀。
具體到邊界,請報告容差掃描,而不是單一閾值。
格式
LeRobot v2、RLDS/TFDS、HDF5(RoboMimic 與 ALOHA)以及 ROS bag 均可匯入。請匯出逐幀的 JSONL 附屬檔案,而不是改寫資料集,這樣一份只讀的公開發布版無需重新發布就能攜帶你的標註。
配置
annotation_schemes:
- annotation_type: episode_annotation
name: episode_review
description: "Mark the phases, judge the outcome, and draw the progress."
source_field: episode
layers: [phases, outcome, reward]
outcomes: [success, partial, failure]
failure_causes: [missed grasp, object slipped, collision, timeout]
reward_range: [0.0, 1.0]
series_shown: [gripper, wrist_force]可用示例:LeRobot 展示設計。
相關工具
ATLAS 是為單標註者邊界精度與 ROS bag 專門打造的。ELAN 與 BORIS 仍是行為編碼領域的標準工具。Rerun 與 Foxglove 是最好的機器人視覺化工具,如今也能承載結構化標註。
Potato 在這裡獨特的貢獻,是支援多標註者、以網頁方式部署,並帶有一致性統計。