Binary Neural Network in Robotic Manipulation: Flexible Object Manipulation for Humanoid Robot Using Partially Binarized Auto-Encoder on FPGA
作者: Satoshi Ohara, Tetsuya Ogata, Hiromitsu Awano · IROS 2021
授權條款
- 開放取用
- 論文: CC BY 4.0
以下內容皆依據論文全文,依其 CC BY 4.0 授權條款使用;圖表已標示作者。
一句話摘要
只將卷積自編碼器的編碼器二值化,讓一個用於人形機器人的端到端摺布模型能在 Zynq FPGA 上以 41.1 FPS、3.1 W 執行,精度損失很小。
為何重要
學得的視覺運動策略通常需要在機器人身上或附近配置 GPU;本研究展示了一個從攝影機到關節角度的摺布模型,在一塊 3.1 W 的嵌入式板上以高於攝影機影格率的速度執行。部分二值化的概念適用於任何「自編碼器加 RNN」的控制器,只要其解碼器僅在訓練時需要。
問題
以端到端學習操作毛巾等柔性物體,一直仰賴功耗數百瓦的 GPU 平台,而這種平台無法裝進空間有限的機器人本體。FPGA 能源效率高,但晶片內記憶體很少,而直接將影像自編碼器二值化以縮小模型,會破壞擷取出的影像特徵。
提出的方法
作者提出一種部分二值化的深度卷積自編碼器(PB-DCAE),只將編碼器的權重與激活值二值化,而全精度解碼器只在訓練時使用、之後移除,用來讓梯度得以傳遞。二值化編碼器在 Xilinx ZCU102 的 FPGA 可程式化邏輯上執行,採用 XNOR 與 popcount 運算,批次正規化被折疊為整數門檻值,所有參數都放在晶片內 BRAM 中。一個從影像特徵預測下一個關節角度與夾爪指令的 LSTM,以浮點數在板上的 ARM 處理器執行,並以多步、單步與內部狀態損失的組合進行訓練。
關鍵見解
- 將自編碼器完全二值化會阻斷梯度流並破壞特徵(PSNR 7.164 dB),但只讓訓練時使用的解碼器維持全精度,就能恢復品質,且不增加推論時的記憶體成本。
- 影像編碼器占每個推論步驟乘法運算的 99.94%,因此即使把 LSTM 留在 ARM 核心上,只在 FPGA 邏輯上加速編碼器也能加快整個系統。
- LSTM 只占模型大小的 1.2%,因此不予量化,以保持其精度。
- 二值化讓編碼器的所有參數與特徵圖都能放在晶片內 BRAM 中,避免外部記憶體存取,降低延遲與功耗。
主要結果
- 重建影像的平均 PSNR:全精度 DCAE 為 21.85 dB,完全二值化 DCAE 為 7.164 dB,PB-DCAE 為 20.78 dB。
- 多步關節角度預測誤差:全精度特徵為 2.98°,完全二值化為 6.32°,PB-DCAE 為 3.43°(劣化 0.45°)。
- 模型大小從 51.3 MB 降到 2.20 MB,減少 95.7%。
- ZCU102:每步驟 24.3 ms,3.1 W 下 41.1 FPS,13.3 FPS/W;Core i7 6700K:55.4 W 下 73.0 FPS,1.32 FPS/W;RTX 2080 Ti:69 W 下 248 FPS,3.59 FPS/W。
- 能源效率比 CPU 提升 10×,比 GPU 提升 3.7×,同時維持在商用 RGB 攝影機 30 FPS 的影格率之上。
限制
- 評估報告的是在保留示範資料上的開迴路多步預測誤差與影像重建品質;並未報告 FPGA 在迴路中時機器人的摺布成功率。
- FPGA 系統在絕對速度上比 GPU(41.1 FPS 對 248 FPS)與 CPU(73.0 FPS)慢;優勢在於每幀的能耗。
- 只在一台機器人上測試一項任務(以右側夾爪摺布),使用 75 筆示範序列。
- LSTM 在 ARM 處理器上以 NumPy 重新實作,在 ZCU102 上 24.3 ms 的每步時間中占 4.48 ms。
對領域的影響
此論文入圍 IROS 2021 最佳 RoboCup 論文獎決選,被引用 2 次。論文未說明是否釋出程式碼或資料。
摘要
本文提出一套在 FPGA 上實現、以神經網路為基礎的人形機器人柔性物體操作系統。雖然由於柔性物體的操作是日常生活中基本且必要的活動,以機器人操作柔性物體受到越來越多的關注,但直到最近才藉由深度神經網路付諸實行。然而,這類系統一直仰賴 GPU 加速器,而 GPU 加速器無法裝進空間有限的機器人本體。雖然現場可程式化邏輯閘陣列(FPGA)以高能源效率與適合嵌入式系統而聞名,但由於 FPGA 的晶片內記憶體有限,模型大小必須大幅縮減。為此,我們提出「部分」二值化的深度卷積自編碼器技術,只將編碼器部分二值化,以在不降低推論精度的情況下壓縮模型大小。在 Xilinx ZCU102 上實作的模型以 3.1 W 的功耗達到每秒 41.1 幀,相較於在 Core i7 6700K 與 RTX 2080 Ti 上實作的系統,分別相當於 10× 與 3.7× 的改善。
連結
- arXiv 2107.00209: https://arxiv.org/abs/2107.00209
- DOI 10.1109/IROS51168.2021.9636825: https://doi.org/10.1109/IROS51168.2021.9636825
- PDF: https://arxiv.org/pdf/2107.00209v1