Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

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 Best RoboCup Paper Award 최종 후보였으며 인용 수는 2회이다. 코드나 데이터 공개는 명시하지 않는다.

초록

FPGA 위에서 동작하는 휴머노이드 로봇용 신경망 기반 유연 물체 조작 시스템을 제안한다. 로봇을 이용한 유연 물체 조작은 일상생활의 기본적이고 필수적인 활동이기 때문에 점점 더 큰 관심을 받고 있지만, 심층 신경망의 도움으로 최근에야 실용화되었다. 그러나 이러한 시스템은 공간이 제한된 로봇 몸체에 구현할 수 없는 GPU 가속기에 의존해 왔다. FPGA(field programmable gate array)는 에너지 효율이 높고 임베디드 시스템에 적합한 것으로 알려져 있지만, 온칩 메모리가 제한되어 있으므로 모델 크기를 대폭 줄여야 한다. 이를 위해 우리는 추론 정확도를 떨어뜨리지 않고 모델 크기를 압축하기 위해 인코더 부분만 이진화하는 “부분” 이진화 심층 합성곱 오토인코더 기법을 제안한다. 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

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.