Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Démos d'apprentissage machine reTerminal (Edge Impulse et Arm NN)

8 Go de RAM Carte de développement eMMC Raspberry Pi CM 32 Go avec écran tactile et de nombreuses interfaces.

Histoire

Les derniers articles que j'ai publiés concernaient TinyML avec Wio Terminal - une carte de développement basée sur Cortex M4F avec un écran LCD dans un boîtier en plastique robuste. Seeed studio, la société a fait que Wio Terminal a décidé d'aller plus loin dans cette idée et a récemment annoncé reTerminal - une carte de développement basée sur le module de calcul Raspberry Pi 4 avec un écran LCD dans un boîtier en plastique robuste.

J'ai mis la main sur l'un des reTerminals et j'ai réalisé une brève vidéo de déballage, qui comprenait également quelques démos et une explication des cas d'utilisation possibles de l'appareil. L'article est un complément à la vidéo, expliquant comment configurer l'environnement et exécuter les démos d'apprentissage automatique.

Spécifications

reTerminal est alimenté par un module de calcul Raspberry Pi 4 (CM4) avec un processeur quadricœur Cortex-A72 fonctionnant à 1,5 GHz. La version du module CM4 utilisée pour reTerminal dispose de 4 Go de RAM et de 32 Go de stockage eMMC, ce qui raccourcit les temps de démarrage et offre une expérience utilisateur globale plus fluide. Côté périphériques, on retrouve un écran multi-touch capacitif IPS de 5 pouces avec une résolution de 1280 x 720, un accéléromètre, un module RTC, un buzzer, 4 boutons, 4 LED et un capteur de lumière. Et pour la connectivité, la nouvelle carte est dotée du Wi-Fi double bande 2,4 GHz/5 GHz et du Bluetooth 5.0 BLE, ainsi que d'un port Ethernet Gigabit sur le côté.

reTerminal peut être alimenté par la même alimentation que celle utilisée pour Raspberry Pi 4, 5V2A, cependant dans la description officielle une alimentation 4A est recommandée, surtout lorsque vous connectez plus de périphériques. Pour les démos, j'ai utilisé une alimentation électrique 5V2A de la société inconnue et je n'ai pas reçu d'avertissement de sous-tension. Cela dit, en cas de doute, utilisez 5V4A.

Par défaut, les reTerminals sont livrés avec le système d'exploitation Raspbian 32 bits préinstallé, avec les pilotes de périphériques installés. Cependant, étant donné que pour les applications d'apprentissage automatique, un système d'exploitation 64 bits peut donner un coup de pouce significatif, Seeed studio fournira également une version 64 bits de l'image du système d'exploitation Raspbian avec des pilotes spécifiques à reTerminal préinstallés.

Un clavier à l'écran intégré et une simple démo QT5 sont également inclus. L'écran tactile est réactif, mais comme Raspbian OS n'est pas un système d'exploitation mobile et n'est pas optimisé pour les écrans tactiles, il peut parfois être un peu gênant d'appuyer sur des éléments d'interface utilisateur plus petits. Avoir un stylet aide beaucoup.

Le clavier à l'écran intégré apparaît lorsque vous devez taper le texte et disparaît ensuite. Vous pouvez modifier ce comportement dans les paramètres. Il est donc possible d'utiliser reTerminal comme Raspberry Pi portable, bien que pour cela, vous voudrez peut-être jeter un œil à un autre système d'exploitation, par exemple Ubuntu touch, qui fonctionne avec Raspberry Pi 4, mais est actuellement en phase de développement bêta et hautement expérimental. Le principal cas d'utilisation de reTerminal est l'affichage d'interfaces utilisateur créées avec QT, LVGL ou Flutter. Lançons un exemple d'application QT, qui affiche les spécifications et les paramètres de l'appareil, les données des capteurs et un exemple de carte de commande pour une usine imaginaire. Lorsque les éléments d'interface sont volumineux, l'écran tactile est très agréable à utiliser.

Détection d'objets Edge Impulse

Nous allons utiliser la dernière fonctionnalité de la plate-forme de développement Edge Impulse, la prise en charge du déploiement Linux. Nous pouvons facilement entraîner un modèle de détection d'objets en collectant des échantillons avec une caméra connectée à reTerminal, puis entraîner dans le cloud et télécharger et exécuter automatiquement le modèle entraîné avec edge-impulse-linux-runner.

La procédure d'installation d'Edge Impulse CLI est décrite dans la documentation. Tout se résume à quelques étapes simples :

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y gcc g++ make build-essential nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
npm config set user root &&sudo npm install edge-impulse-linux -g --unsafe-perm

Après Edge Impulse CLI est installé, assurez-vous que la caméra est connectée - j'ai utilisé une simple caméra Web USB, si vous utilisez une caméra Raspberry Pi, n'oubliez pas de l'activer dans raspi-config.

Avant de commencer à collecter les données pour la détection d'objets, assurez-vous que dans Tableau de bord sous « Informations sur le projet > Méthode d'étiquetage » « Boîtes de délimitation (détection d'objets) » est sélectionné.

Prenez au moins 100 images pour chaque classe que vous souhaitez reconnaître. Actuellement, vous pouvez télécharger vos propres images en appuyant sur Afficher les options - Télécharger les données dans l'onglet Acquisition de données. Mais il n'est pas encore possible de télécharger les annotations des cadres de délimitation, donc les images que vous téléchargez devront toujours être étiquetées manuellement. Une fois que vous avez suffisamment d'images annotées, accédez à Créer une impulsion, choisissez Image pour le bloc de traitement et Détection d'objets (Images) pour le bloc d'apprentissage.

La quantité d'images qu'un utilisateur peut collecter et annoter n'est pas suffisante pour former un grand réseau à partir de zéro, c'est pourquoi nous ajustons un modèle pré-entraîné pour détecter de nouvelles classes d'objets. Dans la plupart des cas, vous pouvez laisser les valeurs par défaut pour le nombre d'époques, le taux d'apprentissage et la confiance. Pour la détection d'objets, un code personnalisé est utilisé, nous ne pouvons donc pas le modifier en mode Expert, comme cela est possible avec des modèles plus simples.

La formation est effectuée sur le processeur, elle prend donc un peu de temps, en fonction du nombre d'images dans votre ensemble de données. Prenez une tasse de votre boisson préférée pendant que vous y êtes.

L'une des meilleures choses à propos du support Linux nouvellement ajouté pour Edge Impulse est le edge-impulse-linux-runner. Lorsque l'entraînement du modèle est terminé et que vous êtes satisfait de la précision de l'ensemble de données de validation (qui est automatiquement séparé des données d'entraînement), vous pouvez tester le modèle dans la classification en direct, puis continuer à le déployer sur l'appareil. Dans ce cas, c'est aussi simple que de lancer

edge-impulse-linux-runner

en borne. Le modèle sera automatiquement téléchargé et préparé, puis le résultat de l'inférence sera affiché dans le navigateur, vous aurez une ligne sur votre terminal, semblable à :

Vous voulez voir un flux de la caméra et un classement en direct dans votre navigateur ? Accédez à  http://192.168.1.19:4912

Cliquez sur le lien dans votre terminal pour voir la vue en direct de la caméra.

Le modèle de base utilisé pour l'apprentissage par transfert est le SSD MobileNetv2 et est assez grand, donc même avec toutes les optimisations, nous obtenons environ 2 FPS ou ~ 400 ms. pour une image - le flux vidéo semble assez réactif, mais c'est parce que l'inférence n'est pas effectuée sur chaque image, vous pouvez clairement voir que si vous détectez un objet et qu'il disparaît de l'image, le cadre de délimitation reste allumé pendant un certain temps . Étant donné que la prise en charge de Linux est une toute nouvelle fonctionnalité d'Edge Impulse, je suis sûr qu'elle recevra de nombreuses améliorations dans un proche avenir, permettant une inférence et un téléchargement plus rapides des données annotées par l'utilisateur.

Inférence accélérée ARM NN

Bien que nous sachions que Raspberry Pi 4 n'est pas la meilleure carte pour l'inférence d'apprentissage automatique, car il n'a pas d'accélérateur matériel pour cela, nous pouvons toujours atteindre une vitesse d'inférence supérieure à la vitesse d'inférence en temps réel en

a) en utilisant le mode plus petit

b) en nous assurant que nous utilisons les 4 cœurs et les instructions SIMD (Single Instruction Multiple Data), où plusieurs éléments de traitement dans le pipeline effectuent des opérations sur plusieurs points de données simultanément, disponibles avec l'extension d'architecture d'optimisation Neon pour les processeurs Arm.

Source : Démos d'apprentissage machine reTerminal (Edge Impulse et Arm NN)


Processus de fabrication

  1. La chaîne d'approvisionnement et l'apprentissage automatique
  2. ADLINK :solution d'IA et de machine learning multi-accès montée sur poteau
  3. Communication MQTT entre NodeMCU et Raspberry Pi 3 B+
  4. Capteur de température Python et Raspberry Pi
  5. Capteur de température et de luminosité Raspberry Pi
  6. Contrôle du capteur et de l'actionneur Raspberry Pi
  7. Conduire la fiabilité et améliorer les résultats de la maintenance avec l'apprentissage automatique
  8. NXP double l'apprentissage automatique à la périphérie
  9. Les achats doivent-ils craindre ou accueillir favorablement l'IA et la technologie d'apprentissage automatique ?