Intelligence embarque IMA5 2022/2023 G8

De Wiki d'activités IMA
Révision datée du 12 décembre 2022 à 09:37 par Rsing (discussion | contributions) (Téleversement du programme)

Projet utilisation de l'IA pour une application embarquée

L'objectif du projet est d'utiliser une application utilisant de l'intelligence artifielle avec des microcontroleurs STM32F401 ainsi qu'un capteur TOF X-NUCLEO-53L5A1

Idées en vrac :

  • reconnaissance d'objets (formes, dimensions) : par exemple boîte en carton
  • détection de position d'objet
  • IHM avec reconnaissance gestuelle (main, mouvements, doigts ...)
  • Détection de la fatigue en regardant les clignements des yeux.
  • Detection du port du casque et équipements de sécurité dans une usine.

Idée retenue : Détection du port du casque et équipements de sécurité dans une usine (lunettes de sécurités, masques...)

Installation de STM32 Cube IDE et de nanoedgeaistudio

  • Extraire les dossiers control et data
  • Executer la commande :
 apt-get update -qy && apt-get -y install procps libnss3

Configuration de STM32 Cube IDE

  • Configurer le réseau de manière à avoir le proxy : proxy.polytech-lille.fr avec le port 3128.
  • Ajouter la licence.

Téleversement du programme

Dans STM32Cube IDE, on ouvre le projet 53L5A1_ThresholdDetection.ioc et on build le project en mode release, cela génère un fichier éxecutable .elf. Enfin on fait un run pour téléverser le programme et le lancer sur la carte.

Screenshot programme ide.png

Affichage des résultats

Dans le programme fourni, il faut modifier les affichages en ajoutant des retours chariot pour pouvoir afficher correctement les valeurs sur le terminal. Ouvrir un terminal et ouvrir minicom dessus, configurer le nombre de bauds à 460800, et observer le tableau des distances.

Utilisation de nano edge ai studio

  • Sélectionner un capteur générique avec 64 axes pour le capteur.
  • Acquisition des signaux (port de casque, port de lunettes, port des deux, aucune protection) via le port série configuré avec le bon nombre de Bauds. Pour ce faire on a modifié le programme de base pour qu'il envoie les différentes données avec comme délimiteur un espace.
  • Benchmarking des 3 classes de signaux.
  • Emulation du benchmark.


Maquette

Pour la maquette nous nous sommes munis d'EPI (Équipement de protection individuelle) à savoir un casque et des lunettes de protection. Nous avons positionné le capteur à une distance fixe de l'utilisateur.

IC1.png

Problème

  • Le benchmarking fait des 3 classes de signaux, avec 100 mesure par classe, ne donnait pas des résultats corrects vu que le modèle indiquait la présence du casque ou des lunettes même en leur absence.
  • Le fait de s'éloigner même de quelques centimètres du capteur fait que les résultats attendus sont erronés, le test a été refairt à une distance fixe sans trop bouger.

Solution

  • Création de 3 classes de signaux avec 300 mesures par classe.
  • Les mesures ont étaient prises d'une distance très proche du capteur vu que la précision est un peu faible lorsqu'on s'éloigne du capteur.