論文導讀:Jacquard——用物理模擬自動生成百萬筆抓取標註的大型資料集

Amaury Depierre, Emmanuel Dellandréa, Liming Chen · 2018原文連結

一句話讀懂這篇論文

訓練抓取網路需要大量「哪裡可以抓」的標註,但人工標太慢、用真實手臂試抓更慢。Jacquard 的做法是:把 CAD 模型丟進物理模擬器,讓模擬手臂真的去夾,夾得起來的位置就是標註。這樣做出來的資料集比當時主流的 Cornell 大 50 倍以上,訓練出來的網路在真實手臂上的成功率也明顯更高。

論文資訊卡

  • 標題:Jacquard: A Large Scale Dataset for Robotic Grasp Detection
  • 作者:Amaury Depierre(Siléane、里昂中央理工)、Emmanuel Dellandréa、Liming Chen(里昂大學 LIRIS)
  • 發表:IEEE/RSJ IROS 2018
  • 資料集網址:jacquard.liris.cnrs.fr
  • 定位:平面(2D 矩形)抓取偵測的標準資料集之一,GG-CNN、GR-ConvNet 等模型都拿它當訓練與評測基準

問題背景:抓取資料不夠用

2018 年前後,主流的抓取偵測方法都是用深度神經網路從影像預測夾爪該放在哪裡,可以分成兩種:直接預測一個抓取位置,或者先產生一堆候選再挑最好的。不管哪一種都需要監督式訓練,而標註資料的來源只有四種:

標註來源優點問題
人工標註精準極度耗時,難以做大
真實機器人試抓結果最真實需要大量硬體與時間(Levine 等人用 14 支手臂跑了兩個月才蒐集到 80 萬筆)
解析式計算(力學模型)可大量產生需要把 CAD 模型對齊到影像中的物體位置
物理模擬可大量產生同上,需要模擬環境夠接近真實

當時最接近的資料集是 Cornell Grasping Dataset:885 張 RGB-D 影像、240 個物體、8,019 個人工標註的抓取矩形。以深度學習的標準來看,885 張影像太少,容易在新物體上泛化失敗。論文還點出一個比較隱性的問題:人工標註會偏向「人手好抓」的位置,但這些位置對平行夾爪不一定好抓。

另一個代表性資料集 Dex-Net 2.0 有 670 萬張合成深度影像,但它的標籤只回答「影像正中央這個抓取會不會成功」,訓練出的 GQ-CNN 只能替其他方法產生的候選排序,不能端到端直接預測抓取位置。

抓取的表示方式:五維矩形

Jacquard 沿用 Cornell 的抓取表示法,一個抓取是一個五維向量:

g={x, y, h, w, θ}g = \{x,\ y,\ h,\ w,\ \theta\}
  • (x,y)(x, y):矩形中心,也就是夾爪中心在影像上的位置
  • (h,w)(h, w):矩形大小,hh 對應夾爪指片寬度,ww 對應夾爪張開的寬度
  • θ\theta:矩形相對於影像水平軸的旋轉角

這種表示法的好處是完全在影像座標系裡描述,不需要知道場景的 3D 資訊——夾爪的高度和接近方向可以事後從深度圖推算。真實手臂執行時,hh 和 ww 會受夾爪尺寸限制(hh 固定、ww 有上限)。

資料生成流程

整條流程從一個 CAD 模型開始,分成場景建立、影像渲染、標註生成三段:

shell
3D 模型資料庫(ShapeNetSem)
        │
        ▼
   場景建立:白色平面 + 隨機縮放、隨機掉落的物體
        │
   ┌────┴──────────────┐
   ▼                   ▼
影像渲染(Blender)   抓取模擬(pyBullet)
RGB / 真實深度 /      隨機候選 → 2cm 夾爪試抓 →
立體視覺深度 / 遮罩   成功者再用 5 種夾爪重試 → 去重

場景建立

  • 白色平面,紋理隨機旋轉與平移,避免背景一成不變
  • 從 ShapeNet 的子集 ShapeNetSem 挑一個物體,把包圍盒最長邊縮放到 8~90 公分
  • 依尺寸給質量:8 公分的物體 80 公克,90 公分的物體 900 公克
  • 從隨機位置與姿態掉到平面上,等物體靜止後存下場景
  • 每個物體最多建立 5 個場景,取得不同視角

影像渲染

用 Blender 的 Cycles 渲染器產生 RGB 和完美深度圖。關鍵在於深度雜訊怎麼做:很多方法是在完美深度圖上加高斯雜訊,但 Jacquard 改成額外渲染兩張帶有投影圖案的 RGB 影像,再用現成的立體視覺演算法(半全域匹配 SGM)算出深度。這樣得到的深度圖會有真實感測器那種結構性的雜訊和空洞,已有研究證明這種做法的深度圖跟真實的非常接近。另外也輸出一張區分物體與背景的二值遮罩。

標註生成

用即時物理引擎 pyBullet 模擬抓取。為了加速,碰撞計算不直接用網格,而是用物體的體積階層凸分解(V-HACD)近似。模擬的平行夾爪最大開口 10 公分,指片寬度有 1、2、3、4、6 公分五種。標註分三步:

  1. 在相機視野內產生數千個隨機候選抓取
  2. 全部用指片寬 2 公分的夾爪在剛體模擬中試抓
  3. 上一步成功的位置,再用所有五種夾爪尺寸重試一次

最後每個成功位置會帶有 1~5 種可用的夾爪尺寸。抓取時,接近方向設定為抓取中心點的表面法向量,夾爪的朝向與開口由矩形參數決定。判定成功的條件是物體被夾起、移開、並且在指定位置放下。全部候選測完後,會把彼此距離太近的成功抓取去重,確保同一個位置只標一次。

候選抓取不是均勻撒的——均勻撒會有大量候選落在空白處。論文用一個簡單的啟發式:在影像中找對齊的邊緣,依邊緣密度產生機率分佈,候選多半撒在有希望的區域。作者也提到,只要啟發式合理,最終的抓取分佈都差不多,只是隨機試驗次數不同;用這個方法能把每個場景需要的試抓次數減少好幾個數量級,同時保留抓取位置的多樣性。

資料集規模

項目JacquardCornell
物體數約 11k(官網:11,619 個)240
影像數約 54k(官網:54,485 個場景)1,035
成功抓取超過 100 萬個唯一位置(官網:1,181,330 個唯一位置、4,967,454 筆含不同夾爪尺寸的標註)8,019
每張影像多個抓取是是
多種夾爪尺寸是否
自動化生成是否

每個場景提供的檔案:

  • RGB.png:原始彩色影像
  • perfect_depth.tiff:無雜訊的理想深度圖
  • stereo_depth.tiff:用立體視覺算出、帶雜訊的深度圖
  • mask.png:物體二值遮罩
  • grasps.txt:每一行是一個可行的抓取(x, y, θ, 開口, 指片寬度)

評估方式:矩形指標的問題與 SGT

Cornell 沿用的評估是矩形指標(Rectangle Metric),預測抓取同時滿足兩個條件就算正確:

  1. 跟某個標註抓取的角度差小於 30°
  2. 跟該標註抓取的 IoU 大於 25%

論文指出這個指標會產生兩種誤判:

  • 假陽性:人看了覺得明顯抓不起來,但 IoU 和角度剛好過門檻
  • 假陰性:人看了覺得完全可以抓,但因為標註裡剛好沒有這個位置,被判定為錯

根本原因是一個物體可以有非常多種成功抓法,標註不可能列舉完。Jacquard 因此提出 SGT(Simulated Grasp Trial,模擬抓取試驗):要評估一個預測時,把對應場景在模擬器中重建,用跟產生標註時完全相同的條件讓模擬手臂去抓,抓得起來就算對。這個指標更接近真實世界,因為它不管預測位置有沒有出現在標註裡,只看抓不抓得起來。作者開放了網頁介面,讓研究者把預測丟到他們的模擬器上,取得抓取結果。

實驗設定

為了證明資料集本身的價值而不是模型的功勞,作者刻意用一個現成、不特別設計的 CNN:AlexNet。

  • 卷積層用 ImageNet 預訓練權重,全連接層從頭訓練
  • RGB-D 輸入的處理:把深度圖正規化到接近色彩通道的數值範圍,並把第一層預訓練卷積的藍色通道濾波器複製一份給深度通道
  • SGD 訓練 10 萬次迭代,學習率 0.0005(7.5 萬次後降到 0.00005),動量 0.9,權重衰減 0.001
  • 損失函數:預測與最接近的那個標註之間的歐氏距離
L=min⁡g∈G∥g−g^∥2L = \min_{g \in G} \lVert g - \hat{g} \rVert^2

其中 GG 是這張影像所有標註的集合,g^\hat{g} 是網路預測。取最小值的意思是:只要預測接近任何一個正確答案就好,不必猜中特定的那一個。

  • 資料增強:平移、旋轉、鏡像;合成資料另外用遮罩把背景換成紙箱、紙張、木頭、草地等紋理

實驗結果一:跨資料集評測

用 Cornell 全部資料,以及 Jacquard 的一部分(3k 個物體、15k 張影像、31.6 萬個抓取位置),做 5-fold 交叉驗證,再交叉測試:

訓練資料測 Cornell(矩形指標)測 Jacquard(矩形指標)測 Jacquard(SGT)
Cornell86.88% ± 2.5754.28% ± 1.2242.76% ± 0.91
Jacquard81.92% ± 1.9574.21% ± 0.7172.42% ± 0.80

讀這張表的重點:

  • Jacquard 訓練 → 測真實的 Cornell:81.92%,跟 Cornell 自己訓練自己測的 86.88% 很接近。代表合成資料訓練出的網路能用在真實影像上。作者還觀察到,很多被矩形指標判錯的預測,人眼看起來其實是合理的抓取。
  • Cornell 訓練 → 測 Jacquard:掉到 54.28%,比基準少了 20 個百分點以上;用 SGT 看更只有 42.76%,比 Jacquard 自己訓練的 72.42% 落後約 30 個百分點。代表小資料集訓練出的網路在多樣物體上泛化很差,而且這個差距不是矩形指標誤判造成的,SGT 也確認了。

實驗結果二:真實機器人

為了回答「模擬到真實的落差有多大」,作者用 Fanuc M-20iA 手臂加平行夾爪,挑了 15 個日常物品(玩具、家具)和 13 個工業零件,成功條件跟模擬一樣(夾起、移開、正確放下):

訓練資料真實抓取成功率
Cornell60.46%
Jacquard(2k 物體子集)78.43%

Jacquard 訓練的網路在真實手臂上的成功率,甚至比它在模擬裡用 SGT 測的 72.42% 還高 6 個百分點。失敗案例大多是「矩形位置看起來合理、物體也夾起來了,但移動過程中掉了」——抓得不夠穩。Cornell 訓練的網路失敗則主要是矩形位置本身就定錯。

限制與定位

  • 只有單一物體:每個場景只有一個物體躺在平面上,沒有雜亂堆疊的情況。作者在結論中也把多物體場景列為未來工作。之後的 GraspNet-1Billion 就是針對雜亂場景與 6 自由度抓取的資料集。
  • 只有平面抓取:五維矩形只能描述由上往下的抓取,夾爪無法從側面接近。
  • 模擬與真實的落差:雖然用立體視覺模擬了深度雜訊,物體的材質、摩擦等物理性質仍是近似值。

即使有這些限制,Jacquard 仍是 2D 抓取偵測最常用的基準之一。之後的 GG-CNN、GR-ConvNet 等像素級生成模型,都同時在 Cornell 與 Jacquard 上報告成績;而且這些模型多半改用 IoU > 25%、角度差 < 30° 的矩形指標來評估,SGT 反而較少被採用。

相關論文推薦

參考資料

  • Depierre, A., Dellandréa, E., & Chen, L. (2018). Jacquard: A Large Scale Dataset for Robotic Grasp Detection. IEEE/RSJ IROS 2018. arXiv:1803.11469
  • Jacquard 資料集官網:jacquard.liris.cnrs.fr

相關術語

訂閱 RoboTech Lab 電子報

每週一封,整理新的教學、論文導讀與機器人業界動態。隨時可以取消訂閱。