Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Technologie de l'Internet des objets

Comment implémenter l'IA des objets (AIoT) sur les MCU

Dans mon article précédent, j'ai souligné la tendance croissante permettant à de plus en plus d'appareils d'intelligence artificielle (IA) dans l'Internet des objets (IoT) de créer des appareils « AIoT » intelligents, et les diverses applications bénéficient de ces appareils intelligents. Ceux-ci apprennent des données et prennent des décisions autonomes sans intervention humaine, ce qui conduit à des produits ayant des interactions plus logiques et humaines avec leur environnement.

La combinaison de l'IA et de l'IoT a ouvert de nouveaux marchés pour les MCU (microcontrôleurs). Il a permis un nombre croissant de nouvelles applications et de cas d'utilisation qui peuvent utiliser de simples MCU associés à l'accélération de l'IA pour faciliter un contrôle intelligent. Ces MCU compatibles avec l'IA offrent un mélange unique de capacités DSP pour le calcul et l'apprentissage automatique (ML) pour l'inférence et sont désormais utilisés dans des applications aussi diverses que la détection de mots clés, la fusion de capteurs, l'analyse des vibrations et la reconnaissance vocale. Les microcontrôleurs plus performants permettent des applications plus complexes dans le domaine de la vision et de l'imagerie, telles que la reconnaissance faciale, l'analyse d'empreintes digitales et les robots autonomes.

Technologies d'IA

Voici quelques technologies qui activent l'IA dans les appareils IoT :

Apprentissage automatique (ML) :Les algorithmes d'apprentissage automatique créent des modèles basés sur des données représentatives, permettant aux appareils d'identifier automatiquement des modèles sans intervention humaine. Les fournisseurs de ML fournissent des algorithmes, des API et des outils nécessaires pour former des modèles qui peuvent ensuite être intégrés dans des systèmes embarqués. Ces systèmes embarqués utilisent ensuite les modèles pré-entraînés pour conduire des inférences ou des prédictions basées sur de nouvelles données d'entrée. Des exemples d'applications sont les concentrateurs de capteurs, le repérage de mots clés, la maintenance prédictive et la classification.

Apprentissage approfondi :L'apprentissage en profondeur est une classe d'apprentissage automatique qui entraîne un système en utilisant de nombreuses couches d'un réseau de neurones pour extraire progressivement des fonctionnalités et des informations de niveau supérieur à partir de données d'entrée complexes. L'apprentissage en profondeur fonctionne avec des données d'entrée très volumineuses, diverses et complexes et permet aux systèmes d'apprendre de manière itérative, améliorant le résultat à chaque étape. Des exemples d'applications qui utilisent l'apprentissage en profondeur sont le traitement d'images, les chatbots pour le service client et la reconnaissance faciale.

Traitement du langage naturel (TAL) :La PNL est une branche de l'intelligence artificielle qui traite de l'interaction entre les systèmes et les humains en utilisant le langage naturel. La PNL aide les systèmes à comprendre et à interpréter le langage humain (texte ou parole) et à prendre des décisions en fonction de cela. Des exemples d'applications sont les systèmes de reconnaissance vocale, la traduction automatique et la dactylographie prédictive.

Vision par ordinateur :La vision par ordinateur/machine est un domaine de l'intelligence artificielle qui entraîne des machines à collecter, interpréter et comprendre des données d'images, et à prendre des mesures en fonction de ces données. Les machines collectent des images/vidéos numériques à partir de caméras, utilisent des modèles d'apprentissage en profondeur et des outils d'analyse d'images pour identifier et classer avec précision les objets, et prendre des mesures en fonction de ce qu'elles « voient ». Les exemples sont la détection de défauts sur la chaîne de montage de fabrication, les diagnostics médicaux, la reconnaissance faciale dans les magasins de détail et les tests de voitures sans conducteur.

AIoT sur MCU

Autrefois, l'IA était du ressort des MPU et des GPU avec de puissants cœurs de processeur, de grandes ressources mémoire et une connectivité cloud pour l'analyse. Cependant, ces dernières années, avec une tendance à l'augmentation de l'intelligence à la périphérie, nous commençons à voir des MCU utilisés dans des applications AIoT embarquées. Le passage à la périphérie est motivé par des considérations de latence et de coût et implique de rapprocher le calcul des données. L'IA sur les appareils IoT basés sur MCU permet une prise de décision en temps réel et une réponse plus rapide aux événements, et présente les avantages d'une bande passante réduite, d'une puissance réduite, d'une latence réduite, de coûts réduits et d'une sécurité accrue. L'AIoT est rendu possible par la capacité de calcul plus élevée des MCU récents ainsi que par la disponibilité de frameworks de réseaux de neurones (NN) légers qui sont plus adaptés aux MCU à ressources limitées utilisés dans ces appareils finaux.

Un réseau de neurones est un ensemble de nœuds, disposés en couches qui reçoivent des entrées d'une couche précédente et génèrent une sortie qui est calculée à partir d'une somme pondérée et biaisée des entrées. Cette sortie est transmise à la couche suivante le long de toutes ses connexions sortantes. Pendant l'apprentissage, les données d'apprentissage sont introduites dans la première couche ou la couche d'entrée du réseau, et la sortie de chaque couche est transmise à la suivante. La dernière couche ou la couche de sortie donne les prédictions du modèle, qui sont comparées aux valeurs attendues connues pour évaluer l'erreur du modèle. Le processus d'apprentissage consiste à affiner ou à ajuster les poids et les biais de chaque couche du réseau à chaque itération à l'aide d'un processus appelé rétropropagation, jusqu'à ce que la sortie du réseau soit étroitement corrélée aux valeurs attendues. En d'autres termes, le réseau « apprend » de manière itérative de l'ensemble de données d'entrée et améliore progressivement la précision de la prédiction de sortie.

La formation du réseau de neurones nécessite des performances de calcul et une mémoire très élevées et est généralement effectuée dans le cloud. Après la formation, ce modèle NN pré-entraîné est intégré dans le MCU et utilisé comme moteur d'inférence pour les nouvelles données entrantes en fonction de sa formation.

Cette génération d'inférence nécessite des performances de calcul bien inférieures à celles de l'apprentissage du modèle et est donc adaptée à un MCU. Les poids de ce modèle NN pré-entraîné sont fixes et peuvent être placés dans le flash, réduisant ainsi la quantité de SRAM requise et le rendant approprié pour les MCU plus limités en ressources.

Implémentation sur les MCU

La mise en œuvre de l'AIoT sur les MCU implique quelques étapes. L'approche la plus courante consiste à utiliser l'un des modèles de cadre de réseau de neurones (NN) disponibles, comme Caffe ou Tensorflow Lite, adapté aux solutions de terminaux basées sur MCU. La formation du modèle NN pour l'apprentissage automatique est effectuée dans le cloud par des spécialistes de l'IA à l'aide d'outils fournis par les fournisseurs d'IA. L'optimisation du modèle NN et l'intégration sur le MCU sont réalisées à l'aide d'outils du fournisseur d'IA et du fabricant du MCU. L'inférence est effectuée sur le MCU à l'aide du modèle NN pré-entraîné.

La première étape du processus se fait complètement hors ligne et consiste à capturer une grande quantité de données à partir de l'appareil final ou de l'application, qui sont ensuite utilisées pour former le modèle NN. La topologie du modèle est définie par le développeur d'IA pour tirer le meilleur parti des données disponibles et fournir la sortie requise pour cette application. L'apprentissage du modèle NN se fait en passant les ensembles de données de manière itérative à travers le modèle dans le but de minimiser en permanence l'erreur à la sortie du modèle. Il existe des outils disponibles avec le framework NN qui peuvent vous aider dans ce processus.

Dans la deuxième étape, ces modèles pré-entraînés, optimisés pour certaines fonctions comme le repérage de mots-clés ou la reconnaissance vocale, sont convertis dans un format adapté aux MCU. La première étape de ce processus consiste à le convertir en un fichier tampon plat à l'aide de l'outil de conversion AI. Cela peut éventuellement être exécuté via le quantificateur, afin de réduire la taille et de l'optimiser pour le MCU. Ce fichier tampon plat est ensuite converti en code C et transféré vers le MCU cible en tant que fichier exécutable d'exécution.

Ce MCU, équipé du modèle d'IA embarqué pré-entraîné, peut désormais être déployé dans l'appareil final. Lorsque de nouvelles données arrivent, elles sont exécutées dans le modèle et une inférence est générée sur la base de l'apprentissage. Lorsque de nouvelles classes de données arrivent, le modèle NN peut être renvoyé vers le cloud pour un réentraînement et le nouveau modèle ré-entraîné peut être programmé sur le MCU, potentiellement via des mises à niveau du micrologiciel OTA (over the air).

Une solution d'IA basée sur MCU peut être architecturée de deux manières différentes. Aux fins de cette discussion, nous supposons l'utilisation de cœurs Arm Cortex-M dans les MCU cibles.

Dans la première méthode, le modèle NN converti est exécuté sur le cœur du processeur Cortex-M et est accéléré à l'aide des bibliothèques CMSIS-NN. Il s'agit d'une configuration simple qui peut être gérée sans aucune accélération matérielle supplémentaire et qui convient aux applications d'IA plus simples telles que la détection de mots clés, l'analyse des vibrations et les concentrateurs de capteurs.

Une option plus sophistiquée et plus performante consiste à inclure un accélérateur NN ou un matériel d'unité de traitement microneural (u-NPU) sur le MCU. Ces u-NPU accélèrent l'apprentissage automatique dans les terminaux IoT à ressources limitées et peuvent prendre en charge la compression qui peut réduire la puissance et la taille du modèle. Ils prennent en charge les opérateurs capables d'exécuter pleinement la plupart des réseaux NN courants pour le traitement audio, la reconnaissance vocale, la classification d'images et la détection d'objets. Les réseaux qui ne sont pas pris en charge par l'u-NPU peuvent se rabattre sur le cœur du processeur principal et sont accélérés par les bibliothèques CMSIS-NN. Dans cette méthode, le modèle NN est exécuté sur l'uNPU.

Ces méthodes ne montrent que quelques façons d'intégrer l'IA dans les appareils basés sur MCU. Alors que les MCU repoussent les limites des performances à des niveaux plus élevés, plus proches de ceux attendus des MPU, nous nous attendons à voir des capacités complètes d'IA, y compris des algorithmes d'apprentissage légers et des inférences, construites directement sur les MCU.

L'IA à la pointe est l'avenir

La mise en œuvre de l'IA sur les MCU à ressources limitées augmentera de manière exponentielle à l'avenir et nous continuerons de voir de nouvelles applications et de nouveaux cas d'utilisation émerger alors que les MCU repoussent les limites des performances et brouillent la frontière entre les MCU et les MPU, et de plus en plus de NN « fins » des modèles, adaptés aux appareils à ressources limitées, deviennent disponibles.

À l'avenir, avec une augmentation des performances du MCU, nous verrons probablement la mise en œuvre d'algorithmes d'apprentissage légers en plus de l'inférence, exécutés directement sur le MCU. Cela ouvrira de nouveaux marchés et de nouvelles applications pour les fabricants de microcontrôleurs et deviendra un domaine d'investissement important pour eux.


Technologie de l'Internet des objets

  1. Comment sécuriser la technologie cloud ?
  2. Comment tirer le meilleur parti de vos données
  3. Comment AIoT permet des solutions de trafic intelligentes
  4. Comment l'Internet des objets transforme la chaîne d'approvisionnement :2e partie, Solutions futures
  5. Comment la technologie mobile supprime les obstacles au voyage
  6. Comment la science des données et l'apprentissage automatique peuvent aider à améliorer la conception de sites Web
  7. Internet des objets :gérer l'afflux de données
  8. Comment utiliser l'apprentissage automatique dans l'environnement d'entreprise d'aujourd'hui
  9. Comment l'IoT renforce le système de suivi des véhicules ?