3 utilisations de tinyML en périphérie
L'apprentissage automatique (Machine learning, ML) s'est frayé un chemin dans de nombreux domaines, du cloud à la périphérie, sur les processeurs relativement puissants qui exécutent Linux. Le problème avec l'apprentissage automatique traditionnel exécuté sur ces systèmes est que leurs profils de puissance sont trop importants pour qu'ils puissent « se déconnecter » et fonctionner en tant que dispositifs périphériques alimentés par batterie. La tendance, qui représente aussi l'avenir de l'apprentissage automatique en périphérie, consiste à utiliser tinyML. Le tinyML vise à exploiter les algorithmes ML sur des dispositifs limités en ressources, comme les microcontrôleurs basés sur des processeurs Arm Cortex-M.
Dans cet article, nous allons nous intéresser aux cas d'utilisation les plus populaires pour tirer parti du tinyML sur des dispositifs basés sur des microcontrôleurs pour une utilisation en périphérie.
Cas d'utilisation n°1 : reconnaissance des mots-clés
Le premier cas d'utilisation pour lequel le tinyML gagne en popularité est la reconnaissance des mots-clés. La reconnaissance des mots-clés est la capacité d'un dispositif à reconnaître certains mots-clés comme « Dis, Siri », « Alexa », « Bonjour », etc. La reconnaissance des mots-clés présente de nombreuses utilisations pour les dispositifs en périphérie. Par exemple, on peut utiliser un processeur basse consommation pour guetter un mot-clé qui activera un processeur plus puissant. On peut aussi utiliser la reconnaissance des mots-clés pour commander un système embarqué ou un robot. J'ai déjà vu des exemples où un microcontrôleur était utilisé pour décoder des mots-clés comme « en avant », « en arrière », « stop », « à droite » et « à gauche » pour commander les mouvements d'un robot.
La reconnaissance des mots-clés avec tinyML se fait typiquement à l'aide d'un microphone pour capturer un signal vocal d'entrée. Le signal vocal est enregistré comme tension dans le temps, puis converti en spectrographe à l'aide du traitement des signaux numériques. Le spectrographe est une série temporelle représentée par rapport à la fréquence du signal d'entrée. Le spectrographe peut être transmis à un réseau neuronal (NN) pour entraîner l'algorithme tinyML à reconnaître des mots spécifiques. Le processus est illustré à la Figure 1.
Figure 1 : Un signal vocal d'entrée est traité numériquement pour créer un spectrographe utilisé pour entraîner un réseau neuronal à détecter des mots-clés. (Source de l'image : Arm)
Dans une implémentation typique, des fenêtres fixes de parole sont introduites dans le réseau neuronal. Le réseau évalue ensuite la probabilité que l'un des mots-clés souhaités ait été prononcé. Par exemple, si quelqu'un a dit « Oui », le réseau neuronal peut indiquer être sûr à 91 % que la personne a dit « Oui », avec 2 % de chances qu'elle ait dit « Non » et 1 % de chances qu'elle ait dit « Activé ».
La capacité à utiliser la parole pour commander des machines est un cas d'utilisation étudié de près par de nombreux fabricants de dispositifs dans l'espoir d'améliorer leurs dispositifs au cours des années à venir.
Cas d'utilisation n°2 : reconnaissance d'images
Le deuxième cas d'utilisation dans lequel le tinyML fait son apparition est la reconnaissance d'images. Il existe un bon nombre de cas d'utilisation pour les dispositifs périphériques capables de reconnaître des images. Vous en connaissez sans doute déjà un : la capacité à détecter s'il y a une personne, un colis ou rien du tout devant votre porte. Il existe certainement de nombreuses autres applications, comme la surveillance d'anciens compteurs analogiques, la détection de l'état d'une pelouse ou même le comptage des oiseaux.
La reconnaissance d'images peut paraître complexe. Toutefois, il existe plusieurs plateformes peu coûteuses qui peuvent aider les développeurs à se lancer. L'une de mes préférées, que j'utilise pour mener à bien mes projets rapidement, est la plateforme OpenMV.
OpenMV est une plateforme de vision artificielle qui inclut un environnement de développement intégré (IDE), une structure de bibliothèque écrite en langage Python, ainsi qu'un module de caméra de Seeed Technology qui aide les développeurs à créer leurs applications de vision artificielle (Figure 2).
Figure 2 : Le module de caméra OpenMV peut être utilisé pour la reconnaissance d'images, et le développement peut être effectué à l'aide d'un IDE simple utilisant Python. (Source de l'image : Beningo Embedded Group)
Le module de caméra est basé sur un processeur Cortex-M7 STM32H7 de STMicroelectronics. Le matériel peut être étendu grâce à ses embases d'extension embarquées. Le système peut fonctionner sur batterie et le module de caméra peut même être remplacé. Un bon exemple de démarrage pouvant vous intéresser est l'utilisation du jeu de données CIFAR-10 avec la bibliothèque Arm CMSIS-NN pour la reconnaissance d'images. Cet exemple est disponible sur YouTube à l'adresse https://www.youtube.com/watch?v=PdWi_fvY9Og.
Cas d'utilisation n°3 : maintenance prédictive
Le dernier cas d'utilisation que nous aborderons pour tinyML est la maintenance prédictive. La maintenance prédictive utilise des outils comme l'analyse statistique et l'apprentissage automatique pour prédire l'état des équipements sur la base des éléments suivants :
- Détection d'anomalies
- Algorithmes de classification
- Modèles prédictifs
Par exemple, une usine peut disposer d'une série de moteurs, de ventilateurs et d'équipements robotiques utilisés pour fabriquer un produit. Une entreprise peut chercher à réduire les temps d'arrêt afin d'optimiser le nombre de produits fabriqués. Si les équipements comportent des capteurs dont les données peuvent être interprétées à l'aide de l'apprentissage automatique et des autres techniques mentionnées ci-dessus, l'entreprise peut alors détecter lorsque les équipements sont sur le point de tomber en panne. Une telle configuration peut ressembler à celle illustrée à la Figure 3.
Figure 3 : Les capteurs intelligents utilisés pour la maintenance prédictive constituent le troisième cas d'utilisation tinyML populaire. (Source de l'image : STMicroelectronics)
La connexion d'un capteur intelligent à un microcontrôleur basse consommation utilisant tinyML peut donner lieu à une grande variété d'applications utiles. Par exemple, cela peut permettre de surveiller les systèmes CVC, de contrôler les filtres à air et de détecter les vibrations anormales des moteurs, entre autres nombreuses applications. La maintenance préventive peut devenir plus organisée, et les entreprises peuvent espérer éviter les mesures réactives coûteuses et ainsi garantir un calendrier de maintenance plus optimisé.
Conclusion
Le tinyML permet un large éventail d'applications potentielles et de cas d'utilisation en périphérie. Nous avons exploré les utilisations populaires actuellement, mais les cas d'utilisation sont presque illimités. Le tinyML peut être utilisé pour la détection gestuelle, le guidage et le contrôle, et bien plus encore. Alors que les dispositifs périphériques commencent à tirer parti des capacités tinyML, la véritable question est : quelles sont vos utilisations du tinyML en périphérie ?
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum




