Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

Binary Neural Network in Robotic Manipulation: Flexible Object Manipulation for Humanoid Robot Using Partially Binarized Auto-Encoder on FPGA

Auteurs: Satoshi Ohara, Tetsuya Ogata, Hiromitsu Awano · IROS 2021

Licences

  • Accès libre
  • Article: CC BY 4.0

Tout ce qui suit s'appuie sur l'article complet sous sa licence CC BY 4.0 ; sa figure est montrée en citant les auteurs.

En bref

Binariser uniquement l'encodeur d'un auto-encodeur convolutif permet à un modèle de bout en bout de pliage de tissu pour humanoïde de tourner sur un FPGA Zynq à 41,1 FPS et 3,1 W, avec une faible perte de précision.

Pourquoi c'est important

Les politiques visuomotrices apprises nécessitent généralement un GPU sur le robot ou à proximité ; ce travail montre un modèle allant de la caméra aux angles articulaires pour le pliage de tissu, qui tourne au-dessus de la fréquence d'images de la caméra sur une carte embarquée de 3,1 W. L'idée de binarisation partielle s'applique à tout contrôleur auto-encodeur plus RNN dont le décodeur n'est nécessaire qu'à l'entraînement.

Problème

La manipulation apprise de bout en bout d'objets flexibles comme des serviettes reposait sur des plateformes GPU consommant des centaines de watts, impossibles à loger dans le corps d'un robot à l'espace limité. Les FPGA sont économes en énergie mais disposent de peu de mémoire sur puce, et binariser naïvement l'auto-encodeur d'image pour le réduire corrompt les caractéristiques d'image extraites.

Solution proposée

Les auteurs proposent un auto-encodeur convolutif profond partiellement binarisé (PB-DCAE) dans lequel seuls les poids et activations de l'encodeur sont binarisés, tandis que le décodeur en pleine précision, utilisé uniquement à l'entraînement puis retiré, laisse se propager les gradients. L'encodeur binarisé s'exécute dans la logique programmable du FPGA d'un Xilinx ZCU102 avec une arithmétique XNOR et popcount, la normalisation par lots étant intégrée dans des seuils entiers et tous les paramètres résidant dans la BRAM sur puce. Un LSTM qui prédit les prochains angles articulaires et la commande de la pince à partir des caractéristiques d'image tourne en virgule flottante sur le processeur ARM de la carte ; il est entraîné avec une combinaison de pertes multi-pas, à pas unique et d'état interne.

Idées clés

  • Binariser entièrement l'auto-encodeur bloque le flux de gradient et corrompt les caractéristiques (PSNR 7,164 dB), mais conserver en pleine précision le seul décodeur utilisé à l'entraînement restaure la qualité sans coût mémoire à l'inférence.
  • L'encodeur d'image représente 99,94 % des multiplications par pas d'inférence ; accélérer lui seul dans la logique du FPGA accélère donc tout le système, même avec le LSTM laissé sur le cœur ARM.
  • Le LSTM ne représente que 1,2 % de la taille du modèle ; il n'est donc pas quantifié afin de préserver sa précision.
  • La binarisation permet de loger tous les paramètres et cartes de caractéristiques de l'encodeur dans la BRAM sur puce, ce qui évite le trafic vers la mémoire externe et réduit la latence et la consommation.

Principaux résultats

  • PSNR moyen des images reconstruites : 21,85 dB pour le DCAE en pleine précision, 7,164 dB pour le DCAE entièrement binarisé et 20,78 dB pour PB-DCAE.
  • Erreur de prédiction multi-pas des angles articulaires : 2,98° avec des caractéristiques en pleine précision, 6,32° entièrement binarisé et 3,43° avec PB-DCAE (une dégradation de 0,45°).
  • La taille du modèle est passée de 51,3 MB à 2,20 MB, une réduction de 95,7 %.
  • ZCU102 : 24,3 ms par pas, 41,1 FPS à 3,1 W, 13,3 FPS/W ; Core i7 6700K : 73,0 FPS à 55,4 W, 1,32 FPS/W ; RTX 2080 Ti : 248 FPS à 69 W, 3,59 FPS/W.
  • L'efficacité énergétique s'est améliorée de 10× par rapport au CPU et de 3,7× par rapport au GPU, tout en restant au-dessus de la fréquence de 30 FPS d'une caméra RVB du commerce.

Limites

  • L'évaluation rapporte l'erreur de prédiction multi-pas en boucle ouverte et la qualité de reconstruction d'image sur des démonstrations réservées au test ; le taux de réussite du pliage sur le robot avec le FPGA dans la boucle n'est pas rapporté.
  • Le système FPGA est plus lent en valeur absolue que le GPU (41,1 FPS contre 248 FPS) et le CPU (73,0 FPS) ; le gain porte sur l'énergie par image.
  • Une seule tâche (pliage de tissu avec la pince droite) sur un seul robot est testée, avec 75 séquences de démonstration.
  • Le LSTM est réimplémenté en NumPy sur le processeur ARM et représente 4,48 ms des 24,3 ms de durée de pas sur le ZCU102.

Impact sur le domaine

L'article a été finaliste du IROS 2021 Best RoboCup Paper Award et compte 2 citations. Il ne mentionne pas de publication de code ou de données.

Résumé

Un système de manipulation d'objets flexibles fondé sur un réseau de neurones, destiné à un robot humanoïde et implémenté sur FPGA, est proposé. Bien que la manipulation d'objets flexibles par des robots suscite un intérêt croissant, ces tâches étant des activités élémentaires et essentielles de notre vie quotidienne, elle n'a été mise en pratique que récemment grâce aux réseaux de neurones profonds. Cependant, ces systèmes reposent sur des accélérateurs GPU, qui ne peuvent pas être intégrés dans le corps d'un robot à l'espace limité. Bien que les field programmable gate arrays (FPGA) soient connus pour leur efficacité énergétique et leur adéquation aux systèmes embarqués, la taille du modèle doit être drastiquement réduite, car les FPGA disposent d'une mémoire sur puce limitée. À cette fin, nous proposons une technique d'auto-encodeur convolutif profond « partiellement » binarisé, dans laquelle seule la partie encodeur est binarisée afin de compresser la taille du modèle sans dégrader la précision de l'inférence. Le modèle implémenté sur Xilinx ZCU102 atteint 41,1 images par seconde pour une consommation de 3,1 W, ce qui correspond à des améliorations de 10× et 3,7× par rapport aux systèmes implémentés sur Core i7 6700K et RTX 2080 Ti, respectivement.

Liens

  • 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

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.