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