Stylo intelligent

Problématique

Comment transformer l’écriture manuscrite en notes numériques ?

Objectifs

Comprendre le principe de l’apprentissage par intelligence artificielle

Faire l’acquisition des gestes lors de l’écriture puis alimenter un réseau de neurones

Transformer l’écriture manuscrite en code ASCII

Matériel et documents

Un PC relié à Internet et au réseau pédagogique.

1 carte compatible EdgeImpulse et Arduino (ESP8266, ESP32, etc.) avec un accéléromètre

Travail demandé

A l’instar du stylo IRISNotes 3 qui transforme l’écriture manuscrite en notes numériques, nous voulons utiliser l’IA pour reconnaitre les lettres tracées par l’utilisateur. Nous allons utiliser un accéléromètre 3 axes fixé sur le stylo pour enregistrer les mouvements spécifiques du stylo traçant les lettres à reconnaitre. Ces données nous permettrons de lancer l’apprentissage d’une IA. Nous implanterons ensuite le réseau de neurones dans notre carte-stylo pour vérifier que les lettres sont bien reconnues.

Pour simplifier, il s’agira de reconnaitre les 3 lettres majuscules A, B et C.

Création d’un compte Edge Impulse

Connecter vous sur https://studio.edgeimpulse.com/login et créer un compte. Ce site va nous aider à entrainer notre réseau neuronal.

Phase d’acquisition des données

Suivre les consignes de l’article https://si.blaisepascal.fr/1t-ia-avec-edge-impulse/ et utiliser l’utilitaire edge-impulse-data-forwarder qui enverra les données au site pour traitement.

Rappel : L’acquisition des données se faisant par tranches de 10s, l’idéal est de fournir des données de de manière régulière (durée et espacement).

Monter l’accéléromètre sur le stylo puis proposer un programme envoyant les données utiles sur le modèle du code fourni par Edge Impulse : https://docs.edgeimpulse.com/docs/cli-data-forwarder#example-arduino
 
Dans le menu Data Acquisition faire l’acquisition d’au moins 10 échantillons par lettre (soit 5 acquisitions si vous arrivez à réaliser l’acquisition de 2 fois la même lettre en 10s)

Dans le menu Create Impulse choisir les données entrantes sous la forme de données temporelles : Time series data.

Choisir une analyse spectrale pour le bloc de calcul : Processing block.  L’analyse spectrale va extraire la valeur efficace du signal, les fréquences et les puissances du signal. Cela permettra de mieux discriminer les lettres tracées.

L’apprentissage (Learning block) sera réalisé par un bloc neural : Neural Network (Keras)

 

Régler Windows size et Windows increase pour obtenir un bon encadrement des données utiles dans le menu Spectral features. Ce réglage est très important pour que l’apprentissage se passe bien. En cas de mauvais résultats à l’étape suivante, il faudra refaire ce réglage et éventuellement retravailler les données en utilisant Crop sample (menu Data acquisition puis clic sur les 3 petits points) pour enlever les données inutiles.

Lors d’une analyse spectrale, il y a 11 entrées par voie de l’accéléromètre :

  • La valeur efficace : RMS
  • 3 premières fréquences maxi et les 3 amplitudes correspondantes : Freq, Height
  • 4 puissances (le signal est divisé en 4 et la puissance est calculée pour chaque partie) : Spectral power
Configurer le réseau de neurones NN classifier pour l’entrainement. On choisira un nombre suffisant de cycles d’entrainement (Number of training cycles) ainsi qu’un nombre de couches cachées (cf cours https://si.blaisepascal.fr/1t-introduction-a-lintelligence-artificielle/) qui permettront d’obtenir une bonne précision après entrainement.
 
Dans le menu Live classification vérifier, en réalisant de nouvelles acquisitions avec le stylo, que le modèle est efficace.
 
Dans le menu Deployment choisir Arduino (conserver Quantized (int8)) puis installer la bibliothèque fournie dans le logiciel Arduino IDE (Add .ZIP Library). Ouvrir l’exemple fourni avec la bibliothèque pour réaliser un programme adapté à votre carte Arduino et à l’accéléromètre fourni.
 
Tester l’efficacité de votre stylo OCR
 
Écrire un article de type tutoriel sur l’ENT expliquant la procédure permettant l’acquisition des lettres tracées par votre stylo.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.