Interfaces utilisateur et scénarios pour Azure IoT Edge vision AI
Ce dernier article de la série Azure IoT Edge vision AI explique comment les utilisateurs interagissent avec les solutions IoT et IA. L’article présente également deux exemples de scénarios IoT Edge vision AI.
Interfaces utilisateur
Les utilisateurs interagissent avec les systèmes informatiques via une interface utilisateur. Les exigences de l’interface utilisateur varient en fonction des objectifs globaux. Les systèmes IoT ont généralement quatre types d’interface utilisateur :
- L’interface utilisateur administrateur permet un accès complet au provisionnement des appareils, à la configuration des appareils et des solutions, et à la gestion des utilisateurs. Ces fonctionnalités peuvent faire partie d’une même solution ou être des solutions distinctes.
- Une interface utilisateur opérateur fournit l’accès aux composants opérationnels de la solution, comme la gestion des appareils, le monitoring des alertes et la configuration.
- Une interface utilisateur consommateur s’applique seulement aux solutions accessibles au consommateur. L’interface utilisateur est similaire à l’interface d’un opérateur, mais elle est limitée aux appareils dont l’utilisateur est propriétaire.
- Une interface utilisateur analytique est un tableau de bord interactif qui fournit des visualisations de la télémétrie et d’autres analyses des données.
Choix de technologie
Voici quelques-uns des services et des logiciels que vous pouvez utiliser pour créer des interfaces utilisateur pour les systèmes IoT Edge vision AI :
Azure App Service est une plateforme qui permet aux développeurs de créer, déployer et mettre à l’échelle rapidement des applications web et mobiles. App Service prend en charge des frameworks comme .NET, .NET Core, Node.js, Java, PHP, Ruby ou Python. Les applications peuvent être dans des conteneurs ou exécutées sur n’importe quel système d’exploitation, appareil mobile ou matériel IoT Edge pris en charge. La plateforme App Service entièrement managée répond aux exigences de performances, de sécurité et de conformité de niveau entreprise.
Azure SignalR Service ajoute des communications et des rapports de données temps réel à des applications, sans avoir besoin d’une expertise des communications temps réel. SignalR Service s’intègre facilement à de nombreux services Azure.
Azure Maps est une technologie pour les projets IoT de visualisation et de vision par ordinateur. Azure Maps vous permet de créer des applications web et mobiles avec prise en charge de la position géographique en utilisant des services, des API et des SDK géospatiaux simples et sécurisés. Azure Maps a une connaissance intelligente intégrée des emplacements géographiques provenant de partenaires technologiques mondiaux. Vous pouvez fournir des expériences homogènes basées sur des données géospatiales.
Microsoft Entra ID fournit l’authentification unique et l’authentification multifacteur pour sécuriser vos applications et vos interfaces utilisateur.
Power BI est un ensemble de services d’analytique, d’applications et de connecteurs qui transforment les données en visualisations et en tableaux de bord personnalisables et interactifs. Power BI est disponible en tant que service managé ou que package auto-hébergé, et se connecte à de nombreux systèmes de base de données et services de données répandus. Avec Power BI Embedded, vous pouvez créer des rapports et des tableaux de bord destinés aux clients, et les personnaliser avec votre marque comme vos propres applications. Power BI peut économiser des ressources de développement en la supervision, la gestion et le déploiement de l’analytique.
Scénario utilisateur 1 : Contrôle qualité
Contoso Boards produit des circuits imprimés de haute qualité pour ordinateurs. Leur produit phare est une carte mère.
Contoso Boards a vu une augmentation des problèmes de positionnement des puces sur les cartes. L’investigation a déterminé que les circuits imprimés n’étaient pas placés correctement sur la ligne d’assemblage. Contoso Boards avait besoin d’un moyen d’identifier et de vérifier la bonne position des circuits imprimés.
Les scientifiques des données de Contoso Boards connaissent bien TensorFlow et voulaient continuer à l’utiliser comme structure principale du modèle ML. Contoso Boards voulait aussi centraliser la gestion de plusieurs lignes d’assemblage qui produisent les cartes mères.
La solution de Contoso Boards se concentre sur la détection en périphérie.
Appareil photo
Les choix pour la caméra servant de base à cette charge de travail étaient les suivants :
- Positionnement de la caméra : la caméra est directement au-dessus à 90 degrés et à environ 40 centimètres du composant.
- Type de caméra : étant donné que le système de convoyage se déplaçe relativement lentement, la solution peut utiliser une caméra à balayage de zone avec un obturateur global.
- Fréquence d’images : pour ce cas d’usage, la caméra capture environ 30 images par seconde.
- Résolution : la formule pour la résolution nécessaire est
Res=(object size) / (details to capture)
. Sur la base de cette formule,Res=16"/8"
donne 2 mégapixels (MP) pourx
et 4 mégapixels poury
, de sorte que Contoso Boards a besoin d’une caméra offrant une résolution de 4 mégapixels. - Type de capteur : les cibles ne bougent pas rapidement et n’ont besoin que de la détection des bords : un capteur CMOS convient donc bien.
- Éclairage : la solution utilise un filtre blanc diffusant le rétro-éclairage. Cet éclairage fait apparaître le composant presque noir, avec un contraste élevé pour la détection des bords.
- Couleur : le monochrome permet d’obtenir les bords les plus nets pour le modèle de détection par IA.
L’image suivante montre ce que capture la caméra dans ce scénario :
Accélération matérielle
En fonction de la charge de travail, de l’utilisation de TensorFlow et d’une utilisation sur plusieurs lignes d’assemblage, un matériel basé sur un GPU est le meilleur choix pour l’accélération matérielle.
Modèle ML
Les scientifiques des données connaissant mieux TensorFlow, l’apprentissage d’ONNX ou d’autres frameworks ML ralentirait le développement du modèle. Azure Stack Edge fournit une solution de périphérie gérée de façon centralisée pour toutes les lignes d’assemblage.
Scénario utilisateur 2 : Sûreté
Plusieurs accidents avec des piétons se sont récemment produits au niveau des quais de chargement de Contoso Shipping. La plupart des accidents se sont produits quand un camion quittait le quai de chargement et que le conducteur n’avait pas vu un travailleur des quais marchant devant le camion. Contoso Shipping avait besoin d’une solution de vision par IA capable d’observer les gens, de prédire la direction de leur déplacement et d’avertir les conducteurs des collisions potentielles.
La plupart des scientifiques des données chez Contoso Shipping connaissaient bien OpenVINO et voulaient réutiliser les modèles des solutions sur le matériel futur. La solution devait aussi prendre en charge l’efficacité énergétique et utiliser le plus petit nombre possible de caméras. Enfin, Contoso Shipping voulait gérer à distance les mises à jour de la solution.
Appareils photo
La solution utilise 11 caméras monochromes 10 MP CMOS avec des boîtiers IPX67 résistants au mauvais temps, montés sur des poteaux de 5 mètres, à 30 mètres de distance des camions. Les sections suivantes décrivent comment Contoso Shipping a déterminé ces spécifications.
Positionnement de la caméra
Les caméras devaient être à 30 mètres de l’avant des camions. Le champ de vision de la caméra devait être à 10 mètres devant et derrière l’avant des camions, ce qui donne une profondeur de champ de 20 mètres. La réglementation locale des espaces limitait la hauteur des caméras de surveillance à 6 mètres.
L’illustration suivante montre l’emplacement des caméras pour ce scénario :
Résolution et champ de vision
La solution doit capturer seulement suffisamment de détails pour détecter une personne dans l’image. Le nombre de pixels par pied (PPF, Pixels Per Foot) peut être d’environ 15 à 20, au lieu des 80 PPF nécessaires pour la reconnaissance faciale.
La formule du champ de vision (FOV, Field Of View) est FOV=(horizontal resolution) / (PPF)
. Pour la résolution, la caméra doit utiliser le capteur approprié pour le cas d’usage.
Cette solution utilise des objectifs de caméra qui permettent un champ de vision de 4,8 mètres. En utilisant la formule précédente, un champ de vision de 4,8 mètres donne 17,5 PPF, ce qui correspond aux 15 à 20 PPF requis. Ce champ de vision signifie que la solution doit utiliser des caméras 10 MP, qui ont une résolution horizontale d’environ 5 184 pixels.
Dans la mesure où les caméras peuvent voir un chemin de 4,8 mètres, un quai de chargement long de 50 mètres divisé par un champ de vision de 4,8 mètres donne 10,3125 caméras. La solution a donc besoin de 11 caméras avec 5 184 de pixels à l’horizontale ou 10 MP.
Type de capteur
Les caméras étant à l’extérieur, le type de capteur ne doit pas permettre le flou lumineux. Un flou lumineux se produit quand la lumière atteint le capteur et le surcharge, provoquant une surexposition ou un voile blanc. Le type de capteur choisi est CMOS.
Couleur et éclairage
Contoso Shipping fonctionne 24/7 et doit également protéger le personnel travaillant la nuit. Le monochrome gère les conditions de faible luminosité mieux que la couleur. Dans le cas présent, les informations sur les couleurs ne sont pas nécessaires. Les capteurs monochromes sont également moins coûteux.
Modèle ML
Étant donné que les scientifiques des données connaissent bien OpenVINO, la solution génère des modèles de données dans ONNX.
Accélération matérielle
La distance entre les caméras et les serveurs est trop importante pour une connectivité Gigabit Ethernet ou USB, mais un maillage étendu du réseau Wi-Fi est présent. Le matériel doit se connecter via Wi-Fi et utiliser le moins possible d’électricité.
Pour respecter ces exigences, la solution utilise des processeurs FPGA. La solution pourrait aussi utiliser des processeurs ASIC, mais les puces ASIC dédiées ne répondent pas aux exigences d’une utilisation future.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Keith Hill | Chef de projet senior
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
Cette série d’articles a décrit comment créer une charge de travail de vision par IA avec Azure IoT Edge. Pour les autres articles de cette série, consultez :
- Vue d’ensemble d’Azure IoT Edge vision AI
- Choix des caméras pour Azure IoT Edge vision AI
- Accélération matérielle dans Azure IoT Edge vision AI
- Machine learning et science des données dans Azure IoT Edge vision
- Stockage et gestion des images dans Azure IoT Edge vision AI
Pour en savoir plus sur les réseaux neuronaux convolutifs (CNN), la vision par IA, Azure Machine Learning et Azure IoT Edge, consultez la documentation suivante :
- Documentation Azure IoT Edge
- Documentation Azure Machine Learning
- Tutoriel : Effectuer la classification d'images en périphérie avec le service Vision personnalisée
- Qu’est-ce que le service Vision par ordinateur ?
- Documentation du kit de véveloppement Azure Kinect DK
- Framework ML ONNX (Open Neural Network Exchange)
- Outil ML MMdnn (Model management deep neural network)
Ressources associées
Pour plus d’informations sur les architectures, des exemples et des idées de vision par ordinateur utilisant Azure IoT, consultez les articles suivants :