Skip to content
Guides1 min read

「部分成功」是一種真實結果:標註機器人回合

機器人演示大多是部分成功,而二元結果會把這一點丟掉。一個以時間軸為形態的標註介面必須做對哪些事,從保留極值的降取樣到事後重新標註。

Potato Team

一次機器人演示,是若干路同步的相機影片流加上若干條數值時序——關節位置、夾爪狀態、力矩、獎勵——全部按幀索引。關於它值得問的每一個問題都與時間有關:抓取何時開始、何時失敗、每一時刻距離完成還有多遠。

因此介面必須是一條時間軸,而不是一張表單。以下是這件事實際要求做到的東西。

「部分成功」是出現頻率最高的結果

第一個設計決策是結果詞表,而顯而易見的那個答案是錯的。

成功或失敗是一種自然的二元劃分,而它會摧毀訊號。在真實機器人資料中,部分成功是出現頻率最高的結果:機械臂把物體從桌上拿起來又掉了;它把方塊放進了正確的箱子卻放錯了格;它在超時兩秒之後完成了任務。

把這些強行歸入"失敗",會讓它們與一臺根本沒動過的機械臂無從區分。歸入"成功"則更糟。按任何一種對映訓練出來的策略,都會學到關於"實際發生了什麼"的不實內容。

三種結果,再配上一套失敗原因分類——抓空、物體滑落、碰撞、拿錯物體、放錯位置、超時——才能讓失敗是可分析的,而不只是被計數。

把訊號放在影片旁邊,而不是藏在標籤頁後面

這一條有已發表的研究支援。ATLAS(維也納工業大學,2026)報告稱,在影片旁並列顯示本體感知時序可降低邊界誤差,優於純視覺工具。正是這一發現,讓 Potato 渲染了這些軌道。

它也與你在真實回合上立刻能看到的現象吻合:一次失敗的抓取,在夾爪與腕部力的曲線上會比在畫面上早若干幀顯現。夾爪合攏了,力卻始終沒有上升,而畫面要更晚才顯示出手裡空空如也。

如果這些軌道藏在標籤頁後面,標註者就不會去開啟。

降取樣要保留極值,而不是取均值

一段 30 秒、30 Hz 的回合,每條時序有 900 個取樣點,而要畫進大約 300 畫素寬的軌道里。總得丟掉一些東西。

均值降取樣丟掉的恰恰是最不該丟的。只持續一幀的力峰值本身就是事件,而把它與相鄰取樣平均,會讓它徹底消失。軌道看起來很平滑,接觸發生的那一刻卻不見了。

保留極值的降取樣會在每個分桶中同時保留最大與最小值,因此單幀的峰值能一直保留到畫素層面。這是一個很小的實現細節,卻決定了這條軌道到底有沒有用。

各圖層的代價相差極大

三個標註圖層,它們的代價並不可比:

圖層每個回合的代價
階段切分幾秒
結果加原因幾秒
稠密進度獎勵幾分鐘

因此它們是可以逐項配置的,而多數項目只啟用其中一部分。若把三者作為一張不可協商的表單一併釋出,獎勵曲線就會成為沒人能做完一項研究的原因。

事後重新標註能把失敗變成資料

一個在原定任務上失敗的回合,常常是另一項任務的成功演示。機械臂本想把方塊放進左邊的箱子,卻放進了右邊:這是被記錄指令的失敗,同時也是另一項任務乾淨利落的成功。

採集這個回合實際演示了什麼,在標註時只需一個文本欄位,事後卻無從補救。哪怕你還不確定會不會用上,也請一併採集。

三個問題,三種一致性度量

這些圖層是三類不同的答案,因此需要三種度量:

  • 階段邊界——時間 IoU
  • 結果標籤——Krippendorff's α
  • 獎勵曲線——ICC 加 Pearson

每一項都會同時給出覆蓋率。在時間軸 5% 的範圍上算出的相關係數,對其餘 95% 什麼也沒說,而一個不附帶覆蓋率的係數,會被當作覆蓋了全部來解讀。

具體到邊界,容差很重要:0.25 秒下與 2 秒下的一致性是兩種不同的斷言,因此報告會掃描容差,而不是替你挑一個。

格式

LeRobot v2、RLDS/TFDS、HDF5(RoboMimic 與 ALOHA)以及 ROS bag 都通過同一個欄位匯入。匯出為 LeRobot v2 加上一份逐幀的 JSONL 附屬檔案,因此一份只讀的公開資料集無需重新發布就能攜帶你的標註。

Potato 不是答案的場合

ATLAS 是為單標註者邊界精度與 ROS bag 專門打造的,在這件事上它更強。ELAN 與 BORIS 仍是行為編碼領域的標準工具。RerunFoxglove 是最好的機器人視覺化工具。

Potato 額外提供的,是支援多標註者、以網頁方式部署,並對結果給出一致性統計。如果只有一個人在標註,那就用 ATLAS。

延伸閱讀