論文導讀:GR-ConvNet——用殘差卷積網路生成抓取,Jacquard 上達到 94.6%

Sulabh Kumra, Shirin Joshi, Ferat Sahin · 2020原文連結

一句話讀懂這篇論文

GR-ConvNet 要解決的問題跟 GG-CNN 一樣:給一張相機畫面,對每一個像素算出「從這裡夾、夾爪轉幾度、張多開、成功機率多高」。差別在於它把網路加深並加入殘差連接,同時吃 RGB 和深度兩種輸入,用不到 200 萬個參數,把 Cornell 和 Jacquard 兩個標準資料集的準確率都推到當時最高,而且一張圖只要 20 毫秒。

論文資訊卡

  • 標題:Antipodal Robotic Grasping using Generative Residual Convolutional Neural Network
  • 作者:Sulabh Kumra、Shirin Joshi、Ferat Sahin(羅徹斯特理工學院 MABL 實驗室;Kumra 同時任職 OSARO)
  • 發表:IEEE/RSJ IROS 2020
  • 程式碼:推論模組 github.com/skumra/robotic-grasping,控制模組 github.com/skumra/baxter-pnp
  • 定位:2D 平面抓取偵測中,像素級生成路線(GG-CNN → GG-CNN2 → GR-ConvNet)的代表性成果,也是之後很多研究的比較基準

問題背景

「Antipodal grasp」指的是用兩指平行夾爪,從物體兩側相對的方向夾住物體。這篇論文把抓取問題定義為:從一張 n 通道的場景影像,預測未知物體的對握抓取,並在真實手臂上執行。

在這之前,抓取偵測大致有兩條路:

  1. 候選評分:先產生大量候選抓取矩形,再用網路逐一評分,挑最高分的(Lenz、Redmon、Dex-Net 的 GQ-CNN 等)。缺點是慢,一次只能處理一個候選。
  2. 像素級生成:GG-CNN 提出直接讓網路輸出跟輸入同尺寸的「抓取地圖」,每個像素都有一組抓取參數。速度快,但 GG-CNN 只吃深度圖,而且網路很淺,在 Cornell 上的準確率只有 73% 左右。

GR-ConvNet 站在第二條路上,想回答的問題是:能不能保持像素級生成的速度,同時把準確率拉到跟大型候選評分網路一樣高?

抓取表示法

論文沒有用傳統的五維矩形 {x,y,h,w,θ}\{x, y, h, w, \theta\},而是沿用 GG-CNN 的表示法。在機器人座標系中,一個抓取是:

Gr=(P, Θr, Wr, Q)G_r = (P,\ \Theta_r,\ W_r,\ Q)
  • P=(x,y,z)P = (x, y, z):夾爪中心點位置
  • Θr\Theta_r:夾爪繞 z 軸的旋轉角
  • WrW_r:夾爪需要張開的寬度
  • QQ:抓取品質分數

在影像座標系中,對應的表示是:

Gi=(x, y, Θi, Wi, Q)G_i = (x,\ y,\ \Theta_i,\ W_i,\ Q)
  • (x,y)(x, y):抓取中心的像素座標
  • Θi∈[−π/2, π/2]\Theta_i \in [-\pi/2,\ \pi/2]:在相機座標系中的旋轉角
  • Wi∈[0, Wmax]W_i \in [0,\ W_{max}]:以像素為單位的夾爪寬度,WmaxW_{max} 是夾爪最大開口
  • Q∈[0,1]Q \in [0, 1]:越接近 1,成功機率越高

影像空間的抓取要轉到機器人座標系執行,經過兩次轉換:

Gr=Trc(Tci(Gi))G_r = T_{rc}\big(T_{ci}(G_i)\big)

TciT_{ci} 用相機內參把像素座標轉成相機 3D 座標,TrcT_{rc} 用手眼校正的結果把相機座標轉成機器人座標。

把整張影像每個像素的抓取收集起來,就是三張圖:

G=(Θ, W, Q)∈R3×h×w\mathbf{G} = (\Theta,\ W,\ Q) \in \mathbb{R}^{3 \times h \times w}

這就是「生成式」的意思——網路不是輸出一個機率或幫候選分類,而是直接生成三張跟輸入一樣大的圖。因為每個像素都有答案,一次推論就能同時找出畫面中多個物體的多個抓取。

系統架構:推論模組 + 控制模組

整個系統拆成兩個獨立模組,透過 ROS 溝通,所以可以換到任何手臂上:

推論模組

  1. 前處理:裁切、縮放、正規化;如果有深度圖,先做深度補洞(inpainting),處理感測器的空洞
  2. 把 224 × 224 的 n 通道影像送進 GR-ConvNet
  3. 從輸出的三張圖中挑出品質分數最高的抓取

這裡的「n 通道」是關鍵設計:網路不限定輸入是什麼,可以只給深度(1 通道)、只給 RGB(3 通道)、或 RGB-D(4 通道)。

控制模組

  1. 任務控制器向推論模組要一個抓取(品質最高的那個)
  2. 用手眼校正把相機座標轉成機器人座標
  3. 透過 ROS 用逆運動學規劃軌跡
  4. 手臂執行夾取與放置

實際部署到一支手臂上時,流程大致是:拍照 → 模型輸出 (Q,W,θ)(Q, W, \theta) 三張圖並選出最佳抓取 → 相機座標轉手臂座標 → 逆運動學把手臂座標轉成各關節(或舵機)角度 → 手臂移動夾取。

網路架構

shell
n 通道輸入(224 × 224)
        │
   3 層卷積(特徵擷取 + 下採樣)
        │
   5 個殘差區塊(56 × 56)
        │
   3 層轉置卷積(上採樣回 224 × 224)
        │
   ┌────┼──────┬──────┐
   ▼    ▼      ▼      ▼
   Q   cos2Θ  sin2Θ   W

幾個設計重點:

  • 殘差層:網路越深理論上準確率越高,但層數多到某個程度會出現梯度消失和準確率退化。殘差連接讓網路比較容易學到恆等映射,可以安全地加深。
  • 上採樣:經過卷積和殘差層後,特徵圖縮到 56 × 56,不好直接對應回原圖。用轉置卷積放大回輸入尺寸,保留空間資訊,讓每個輸出像素都對應到輸入的一個位置。
  • 角度用 cos⁡2Θ\cos 2\Theta 和 sin⁡2Θ\sin 2\Theta 表示:對握抓取在 ±π/2\pm\pi/2 是對稱的——夾爪轉 90° 和轉 −90° 其實是同一個抓取。直接回歸角度會在邊界跳動,拆成兩個連續值再組合回去就沒有這個問題。所以網路實際輸出四張圖。
  • 參數量只有 1,900,900:相較於動輒數千萬參數的 ResNet-50 類架構小很多,所以推論快,可以支援最高 50 Hz 的閉迴路控制。

訓練

訓練目標是最小化給定輸入影像下、成功抓取的負對數概似:

−1n∑i=1n1mi∑j=1milog⁡ϕ(gij∣Ii)-\frac{1}{n}\sum_{i=1}^{n}\frac{1}{m_i}\sum_{j=1}^{m_i}\log \phi(g_{ij} \mid I_i)

其中 nn 是影像數,mim_i 是第 ii 張影像的成功抓取數。

損失函數方面,作者試了幾種後發現 Smooth L1(Huber loss) 最能避免梯度爆炸:

zk={0.5 (Gik−G^ik)2,若 ∣Gik−G^ik∣<1∣Gik−G^ik∣−0.5,其他L=1n∑kzkz_k = \begin{cases} 0.5\,(G_{ik} - \hat{G}_{ik})^2, & \text{若 } |G_{ik} - \hat{G}_{ik}| < 1 \\ |G_{ik} - \hat{G}_{ik}| - 0.5, & \text{其他} \end{cases} \qquad L = \frac{1}{n}\sum_k z_k

誤差小時是平方項(梯度平滑),誤差大時變成線性(梯度不會爆掉)。

訓練設定:Adam 最佳化器,學習率 10−310^{-3},mini-batch 大小 8,用三個隨機種子訓練取平均。

資料集與評估指標

資料集模態物體數影像數抓取數
CornellRGB-D2401,0358,019
Dex-Net深度1,500670 萬670 萬
JacquardRGB-D11k54k110 萬
  • Cornell:1,035 張 640 × 480 的 RGB-D 影像,5,110 個正樣本、2,909 個負樣本。資料太少,作者用隨機裁切、縮放、旋轉擴增到約 5.1 萬個抓取範例,訓練只用正樣本。
  • Jacquard:用 ShapeNet 的 CAD 模型在模擬中試抓產生的資料集,夠大所以不做擴增,90% 訓練、10% 驗證。

評估用標準的矩形指標:預測矩形跟標註矩形的 IoU 大於 25%,而且角度差小於 30°,就算正確。因為網路輸出的是像素圖而不是矩形,要先把每個像素的輸出換算成等價的矩形再比對。

Cornell 有兩種切分方式:

  • Image-wise(IW):隨機切分影像,同一個物體的不同照片可能同時出現在訓練和測試集,測的是對新擺放位置的泛化
  • Object-wise(OW):按物體切分,測試集的物體完全沒在訓練中出現,測的是對新物體的泛化

實驗結果一:Cornell

方法演算法IW (%)OW (%)速度 (ms)
JiangFast Search60.558.35000
LenzSAE, struct. reg.73.975.61350
RedmonAlexNet, MultiGrasp88.087.176
WangTwo-stage closed-loop85.3–140
AsifSTEM-CaRFs88.287.5–
KumraResNet-50x289.288.9103
MorrisonGG-CNN73.069.019
GuoZF-net93.289.1–
ZhouFCGN, ResNet-10197.796.6117
KaraoguzGRPN88.7–200
AsifGraspNet90.290.624
本文GR-ConvNet-D93.294.319
本文GR-ConvNet-RGB96.695.519
本文GR-ConvNet-RGB-D97.796.620

幾個觀察:

  • RGB-D 版本達到 97.7%(IW)/ 96.6%(OW),跟 ResNet-101 架構的 FCGN 一樣,但速度快了將近 6 倍(20 ms 對 117 ms)
  • 跟同樣是像素級生成的 GG-CNN 比,速度差不多(19~20 ms),準確率高了 20 多個百分點
  • 多模態比單模態好:RGB-D > 只用 RGB > 只用深度,作者認為多種輸入讓網路學到更好的特徵
  • Cornell 的資料擴增對整體表現有幫助

實驗結果二:Jacquard

方法演算法準確率 (%)
DepierreJacquard(AlexNet)74.2
MorrisonGG-CNN284
ZhouFCGN, ResNet-10191.8
本文GR-ConvNet-D93.7
本文GR-ConvNet-RGB91.8
本文GR-ConvNet-RGB-D94.6

在比 Cornell 大 50 倍的 Jacquard 上,RGB-D 版本達到 94.6%,是當時最高。有趣的是在 Jacquard 上,只用深度(93.7%)比只用 RGB(91.8%)好,跟 Cornell 的結果相反——Jacquard 是合成資料,深度圖品質較好,而 RGB 影像是渲染出來的,紋理資訊比真實照片少。

實驗結果三:真實機器人

設定:Rethink Robotics 的 7 自由度 Baxter 機器人,兩指平行夾爪,Intel RealSense D435 深度相機架在手臂後方往下看。推論在 Intel i7-7800X + GTX 1080 Ti 上執行。

方法家用物品對抗性物體
Lenz89% (89/100)–
Pinto73% (109/150)–
GG-CNN92% (110/120)84% (67/80)
Chu89% (89/100)–
本文95.4% (334/350)93% (93/100)
  • 家用物品:35 個形狀、大小、幾何彼此不像的物品,包含可變形、難抓、反光、需要高精度的小物體,每個試 10 種位置與朝向,共 350 次
  • 對抗性物體:10 個 3D 列印的抽象幾何物體,表面和邊緣不規則、難以感知,每個 10 次,共 100 次
  • 雜亂場景:10 輪,每輪從 60 個沒看過的物體中挑一組堆在一起,抓到畫面中沒有物體為止。成功率 93.5%。值得注意的是模型只用單一物體的資料訓練,卻能在雜亂場景中同時預測多個物體的抓取

失敗案例分析

  • 抓取分數極低或夾爪閉合後物體滑落:最常見的失敗,原因是相機深度資訊不準,以及夾爪碰到旁邊物體造成偏移
  • 透明瓶子:所有物體中唯一沒辦法產生好抓取的。透明和反光材質會讓深度相機量不準。不過因為同時輸入 RGB,模型仍能產生勉強可用的抓取

作者把未來方向放在兩點:支援吸盤、多指手等其他夾爪;用深度預測技術補足反光物體的深度。

影響與定位

GR-ConvNet 的貢獻不是發明新概念,而是把幾個已知有效的元素組合得很好:

  • 從 GG-CNN 繼承「像素級生成」的表示法和速度優勢
  • 加入殘差層,讓網路可以加深而不退化
  • 支援任意通道數的輸入,讓 RGB 和深度互補

結果是一個小、快、準的網路,而且開源了推論和控制兩部分的完整程式碼。這讓它成為 2D 平面抓取的常用起點:要在自己的手臂上做抓取,GR-ConvNet 加上 Cornell 或 Jacquard 預訓練權重,是門檻最低的選擇之一。

它的限制也來自 2D 表示法本身:只能做由上往下的抓取,夾爪不能從側面接近;在雜亂堆疊、需要考慮遮擋和碰撞的場景,就需要 GraspNet、GSNet、AnyGrasp 這類 6 自由度的點雲方法。

相關論文推薦

參考資料

相關術語

訂閱 RoboTech Lab 電子報

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