Réalisation d'un drone piloté par un réseau neuronal

Ce projet démarre via une présentation “Intro aux réseaux de neurones” qui se déroulera entre les 27 Octobre et 11 Novembre, a priori au SqyLab vu le nombre d'inscrits.

Voir le lien ci -dessous pour réserver une place :

https://framadate.org/j6LHd4vKpI6uuuMw

La suite des opérations sera déclinée lors de cette présentation qui ne sera pas unique, et sera suivie d'autres thématiques liées au Drone Neuronal. Précisions à suivre.

mise à jour du samedi 19 Novembre 2016

La présentation a été faite le Lundi 7 Novembre au SQYLab. Il y avait 12 personnes.

Les documents sont pour le moment dans une dropbox (lien diffusé via Telegram) avant d'être transférés vers la FramaDROP.

Une présentation V2 est prévue et sera annoncée avec un calendrier Framadate.

Pour maitriser les divers aspects d'un réseau neuronal, qui plus est doit permettre à un drône de voler, voici quelques étapes qui sont autant de propositions et sur lesquelles tout un chacun peut se positionner:

  • Constituer formellement l'équipe Drone Neuronal, avec les rôles que chacun voudra prendre.
  • Tester et valider le portage du Raspberry PI sous Arduino avec le programme ArduinoANN_weights_synapses car il va y avoir besoin de place RAM pour le réseau convolutionnel. Question: combien de place reste-t-il de place en RAM une fois le PI démarré pour accueillir les Neurones et les Synapses ? (Les Synapses sont les plus gourmands en place)
  • Exercices pour un Labo “Portes logiques avec un ANN simple sous Arduino
  • Évoluer le programme ArduinoANN_weights_synapses sous Arduino avec les fonctions LEARN_&_SAVE et LOAD_&_RUN
  • Porter ce même programme sur Raspberry PI
  • sur la base de l' Intro du 7 Novembre, écriture de la cinématique (avant le code) de la couche “Convolution
  • ———————————————–, écriture de la cinématique (avant le code) de la couche “ReLU
  • ———————————————–, écriture de la cinématique (avant le code) de la couche “POOL
  • constituer la base “Image” comme base d'apprentissage du réseau convolutionel.
  • écriture et validation du code “Convolution”
  • ————————————- “ReLU
  • ————————————- “POOL
  • Validation de la chaine “CONV-ReLU-POOL-ANN”
  • ……

Alternativement, une solution avec Tensorflow ou Caffe tournant sur un PI équipé du co-processeur neuronal FATHOM est aussi à prendre en compte. La sortie de ce co-processeur est prévue pour cet hiver. Ce sujet pourrait être suivi de près par un ou plusieurs membres. Dans ce cas des formations sur Tensorflow, qui est un logiciel open-source, sont à prévoir, ne serait-ce que pour tester l'installation. Voir le lien ci-dessous :

https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html

Les notions vues lors de la présentation sur la partie « réseau convolutionel » sont reprises intégralement sur le même site avec le lien suivant:

https://www.tensorflow.org/versions/r0.11/tutorials/mnist/pros/index.html#setup

Tous ces points ne sont que des propositions. Il se dégage néanmoins 2 écoles : 1/.Tensorflow-Fathom-PI et 2/.Arduino-PI, chacune avec ses attraits. La première très “Pro”, la deuxième pour ceux qui veulent apprendre et réaliser “from scratch”. Les satisfactions sont à mon avis les mêmes dans un cas comme dans l'autre. Dans l'idéal, il serait heureux qu'il y ait deux équipes (hors esprit de compétition), pour avoir une vision globale des problèmes et solutions rencontrées et de les partager à intervalles réguliers.

À suivre pour d'autre précisions, …… si vous le voulez bien !