Bench Talk pour les ingénieurs concepteurs

Mouser Blog | France

rss

Le blog officiel de Mouser Electronics


Principes de base d'Edge Impulse : deuxième partie Mike Parks

Source : putilov_denis- stock.adobe.com

 

Bienvenue dans le deuxième blog de notre série sur les principes de base d'Edge Impulse. Dans le premier blog, nous avons présenté les différents mécanismes offerts par Edge Impulse. Cette fois, nous examinerons concrètement le flux de travail global d'Edge Impulse : de la collecte des données et de la formation au déploiement du micrologiciel sur les dispositifs de périphérie ciblés. Pour ce faire, imaginons un exemple concret. Dans notre cas, supposons que nous essayons de construire un appareil qui écoute une série « secrète » de coups frappés et qui déverrouille une porte si la séquence correcte de coups est détectée. Nous utiliserons le microphone de la carte de développement Arduino Nano 33 BLE Sense.

Tout d'abord, téléchargeons les applications nécessaires pour que tout cela fonctionne. Ces applications sont les suivantes :

  • Micrologiciel
  • Node.js v12 ou supérieure
  • Arduino CLI
  • Edge Impulse CLI
  • Application de contrôle série telle que PuTTY

À ce stade, nous devons simplement flasher le micrologiciel et lancer le Serial Daemon. Les scripts Windows, Mac OS et Linux inclus dans le dépôt du micrologiciel permettent d'automatiser ce processus pour certaines cartes de développement, y compris la Nano 33 BLE Sense. Si vous ne l'avez pas encore fait, créez un compte et connectez-vous à Edge Impulse Studio (https://studio.edgeimpulse.com). Cliquez ensuite sur l'onglet « Devices » (Périphériques) pour vous assurer que votre carte de développement a réussi à entrer en contact avec le service Edge Impulse (Figure 1). Maintenant que tout cela est fait, il est temps de nous plonger dans le véritable sujet de cet article : comment former un nouveau modèle à partir de zéro.

 

Figure 1 : Edge Impulse fournit une prise en charge native d'une large gamme de cartes de développement directement connectées à leur environnement de formation et de test (Source : Green Shoe Garage)

Étape 1 : Enregistrez des données brutes

Dans le cadre de ce projet, nous utiliserons le microphone intégré de la Nano 33 BLE Sense pour écouter une séquence distincte de coups. Afin de former le modèle, nous devrons collecter deux ensembles de données : l'un qui capture le son ambiant sans coups et l'autre qui capture la série de coups secrets. Ce processus s'appelle l'ingestion. Cliquez sur l'onglet « Data Acquisition » (Acquisition de données) et recherchez la rubrique « Record New Data » (Enregistrer de nouvelles données).

La longueur de l'échantillon (Sample Length) et la fréquence (Frequency) sont des attributs essentiels. La longueur de l'échantillon détermine la durée d'un enregistrement et la fréquence détermine le nombre d'échantillons prélevés par seconde. Edge Impulse recommande de capturer dix minutes d'audio (capturées par blocs d'une minute), cinq minutes de bruit ambiant et cinq minutes de coups frappés. N'oubliez pas que la capture d'une minute de données audio peut prendre plusieurs minutes, car la quantité de mémoire sur votre carte de développement spécifique vous contraint.

Étape 2 : Soyez « impulsif » - Traitez les données brutes

Après avoir obtenu les données brutes nécessaires, il faut les traiter et les transformer en réseau neuronal (Figure 2). Dans le langage Edge Impulse, cela s'appelle concevoir une « impulsion ». Il s'agit d'un processus en plusieurs parties dans lequel nous définissons d'abord comment découper les données brutes en fenêtres. Pour ce faire, nous spécifions deux valeurs. Premièrement, la taille de la fenêtre détermine la durée, en millisecondes, de chaque fenêtre. La deuxième est l'augmentation de la fenêtre qui contrôle l'heure de début de chaque fenêtre suivante.

 

Figure 2 : Les outils d'Edge Impulse fournissent une manière simple d'examiner et d'étiqueter les données de formation et de test directement à partir du navigateur (Source : Green Shoe Garage)

Une fois les données brutes réparties dans des fenêtres de taille appropriée, il est temps de les transformer en quelque chose d'utile pour les algorithmes de formation du réseau neuronal. Ce processus commence par l'envoi des données brutes par le bloc de traitement bien nommé. Edge Impulse applique une technique de traitement du signal appelée coefficients cepstraux de fréquence de Mel (MFCC) pour les données audio. D'autres blocs de traitement sont disponibles, y compris les blocs pour les images, l'aplatissement (données à évolution lente telles que les relevés d'humidité), l'analyse spectrale (données à évolution rapide comme un accéléromètre) et la possibilité de créer un bloc de traitement personnalisé. Plusieurs variables peuvent être ajustées avec le bloc de traitement MFCC, notamment :

  • Number of Coefficients (nombre de coefficients)
  • Frame Length (longueur de trame)
  • Frame Stride (écart entre chaque trame)
  • Filter Number (nombre de filtres)
  • FFT Length (longueur de FFT)
  • Windows Size (taille des fenêtres)
  • Coefficient
  • Shift (décalage)

En ajustant ces paramètres, vous pouvez modifier la sortie des MFCC. La sortie de ces modifications sur les données audio brutes est visualisée sous la forme d'un spectrogramme. L'objectif de l'ajustement de ces paramètres est de s'assurer que les caractéristiques qui composent les ensembles de données « coups » et « non coups » sont extraites avec précision et efficacité à partir des données brutes. Les meilleurs résultats obtenus maintenant contribueront à faire en sorte que le réseau neuronal puisse finalement inférer plus facilement lorsque le dispositif est mis en service dans des conditions réelles.

N'oubliez pas que les différents types de données utiliseront d'autres méthodes pour préparer les données en vue de leur utilisation dans les algorithmes d'apprentissage automatique (machine learning, ML). Savoir ce qui est correct pour vos données constitue une grande partie de l'éducation et de l'expérience que vous acquerrez en travaillant sur des projets d'apprentissage automatique.

Le traitement des données brutes est suivi d'un bloc dit d'apprentissage qui prend le résultat du bloc de traitement et l'utilise pour former un modèle de réseau neuronal. Dans l'Edge Impulse Studio, sélectionnez « NN (Keras) Classifier » dans la fenêtre de navigation de gauche, qui permet la catégorisation des mouvements ou la reconnaissance audio. Vous pouvez également utiliser l'apprentissage par transfert pour classer les images et la détection d'anomalie K-mean pour trouver des valeurs aberrantes dans les nouvelles données. Il y a aussi quelques paramètres à modifier avant d'exécuter le modèle de réseau neuronal d'entraînement. Parmi ceux-ci :

  • Number of training cycles (nombre de cycles d'entraînement)
  • Learning rate (taux d'apprentissage)
  • Minimum confidence rating (indice de confiance minimal)

Une fois les paramètres ajustés, cliquez sur « Start Training » (Démarrer la formation) ; à la fin, vous disposerez d'un réseau neuronal formé.

Étape 3 : Réglez le réseau neuronal avec une expérience réelle

Tout comme l'éducation n'est pas la fin de l'apprentissage professionnel, de même l'efficacité du réseau neuronal peut être améliorée en lui fournissant des données du monde réel (c'est-à-dire de nouvelles données qui n'ont pas été utilisées pour former le réseau neuronal initialement). Il s'agit d'un processus en deux étapes sur Edge Impulse. Tout d'abord, il y a un test rapide appelé classification en direct qui permet d'exposer le réseau neuronal à de nouvelles données pour évaluer ses performances (Figure 3). Une préoccupation est le surapprentisage (overfitting) où le réseau neuronal réagit parfaitement aux données de test mais pas aux nouvelles données du monde réel, car le modèle a en quelque sorte « mémorisé » les données de test. Le second test, plus rigoureux, est appelé test du modèle. Chaque fois qu'une classification en direct est exécutée, les données sont ajoutées à un ensemble de données de test en constante expansion.

 

Figure 3 : La possibilité de visualiser et d'ajuster les données brutes pour améliorer l'efficacité et la précision du modèle est un avantage significatif d'Edge Impulse par rapport aux processus manuels antérieurs associés au développement de l'apprentissage automatique (Source : Green Shoe Garage)

Étape 4 : Exportez l'impulsion

Une fois que l'impulsion a été formée et vérifiée, il est temps de déployer le modèle sur votre appareil. Du point de vue de l'utilisateur final, la magie de l'IA se produit lors de l'inférence. C'est à ce moment-là qu'un modèle entièrement formé est déployé dans un environnement cloud ou sur un appareil périphérique afin qu'il puisse commencer à faire des prévisions basées sur des interactions réelles. Toutefois, pour y parvenir, il faut disposer d'une bibliothèque logicielle conviviale qui peut être intégrée à son projet. Edge Impulse regroupe l'ensemble de l'impulsion, y compris l'algorithme MFCC, les poids du réseau neuronal et le code de classification, dans une seule bibliothèque C++. Cela permettra au modèle de fonctionner sur des systèmes embarqués de faible puissance qui peuvent même ne pas disposer d'une connexion Internet.

Prochains rendez-vous

Rejoignez-nous pour la troisième partie de la série sur les principes de base d'Edge Impulse. Dans la troisième partie, nous allons explorer en détail l'une des étapes les plus cruciales du flux de travail Edge Impulse : la conception d'impulsion.



« Retour


Michael Parks, P.E. is the co-founder of Green Michael Parks, P.E. est propriétaire de Green Shoe Garage, un studio de conception de solutions électroniques personnalisés et agence de conseil en technologies, situé dans le Maryland méridional. Il réalise le podcast S.T.E.A.M. Power pour sensibiliser le grand public aux questions techniques et scientifiques. Titulaire d'une maîtrise d'ingénierie des systèmes de l'université Johns Hopkins, Michael est également ingénieur professionnel agréé de l'État du Maryland.


Tous les auteurs

Voir plus Voir plus
Afficher les articles par date