SE5 IdO IA embarquée et informatique en périphérie

De wiki-se.plil.fr
Révision datée du 4 septembre 2024 à 11:27 par Aboe (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Introduction

L’objectif de ce projet est de distribuer le calcul à différents endroits du réseau afin d’être en mesure de proposer des pistes d’optimisation que ce soit en termes de performance ou de sobriété énergétique. Pour cela, vous allez mettre en œuvre un réseau d’objets connectés à des passerelles et à un serveur. Les objets collecteront des données de l’environnement et suivant les scénarios traiteront les données ou les enverront de façon brute à la passerelle ou au serveur. Chaque scénario sera évalué en terme de performance de calcul et de sobriété énergétique. Les indicateurs de performances sont à définir (indicateur pour le calcul, pour l’énergie mais aussi un indicateur combiné).

Mise en œuvre du réseau

La première étape consiste à mettre en place le réseau dans son ensemble. Le réseau est constitué d’objets connectés (Nucleo + capteurs) reliés de façons filaire à une passerelle WiFi (Raspberry Pi) permettant l’accès à un serveur. Dans un premier temps, une Raspberry Pi contrôlera quatre objets connectés

Machine virtuelle sur chassiron avec un accès internet IPv6

  1. Création
 xen-create-image --hostname test --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --password glopglop --dhcp --bridge bridgeStudents
  1. Configuration
  • fichier /etc/network/interfaces
 auto enX0
 iface enX0 inet6 auto
  • fichier /etc/resolv.conf
 domain plil.info
 search plil.info
 nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c
  • fichier /etc/apt/sources.list
 deb     http://deb.debian.org/debian     bookworm main contrib non-free non-free-firmware
 deb-src http://deb.debian.org/debian     bookworm main contrib non-free non-free-firmware
  • supprimer /etc/apt/apt.conf.d/01proxy

Image de la Raspberry Pi pour connexion avec le serveur via WiFi

Objet connecté (STM32F401RE) avec capteurs

Protocole de communication et acquisition des données

Il convient d’être en mesure d’envoyer les données (brutes ou traitées) de l’objet connecté à la Raspberry Pi puis au serveur. Pour cela, il faudra :

  • Développer un firmware embarqué pour collecter les données ;
  • Mettre en œuvre un protocole de communication entre les quatre objets et la Raspberry Pi en garantissant que toutes les données sont bien reçues ;
  • Mettre en œuvre un protocole de communication entre la Raspberry Pi et le serveur. Ce protocole doit facilement pouvoir être étendu à un grand nombre de Raspberry Pi ;
  • Stocker les données reçues côté serveur.

Entraînement du modèle d’apprentissage

Une fois les données reçues et stockées, vous allez entraîner un algorithme de Machine Learning pour classifier ces données. Dans un premier temps, l’algorithme sera entraîné et exécuté sous environnement Linux :

  • sur le serveur uniquement (données brutes jusque au serveur) ;
  • sur la Raspberry Pi uniquement (données brutes jusque à la Raspberry Pi).

Le choix de l’algorithme de Machine Learning est laissé libre en fonction de la finalité de chaque application.

Mise en place du modèle embarqué et des modèles hybrides

Afin d’éviter d’envoyer trop de données sur le réseau, il peut être intéressant de localiser une partie du traitement au plus près du capteur. Pour cela, il est possible de :

  • simplement “nettoyer” et compresser les données produites par le capteur ;
  • entraîner un modèle de calcul embarqué dans le microcontrôleur. Pour cela, vous utiliserez la plateforme NanoEdgeAIStudio de ST Microelectronics ;
  • mettre en œuvre des modèles hybrides avec pré-traitement à chaque couche du réseau.