Créer et déployer rapidement des applications de vision en périphérie adaptables avec une plateforme prête pour la production

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

L'application de l'intelligence artificielle (IA) sur des caméras intelligentes en périphérie s'est rapidement imposée dans une gamme croissante d'applications de vision embarquée telles que la visionique, la sécurité, le commerce de détail et la robotique. Si l'émergence rapide d'algorithmes d'apprentissage automatique (ou Machine Learning, ML) accessibles a contribué à susciter cet intérêt pour l'IA, les développeurs ont encore du mal à respecter les délais serrés et à fournir de hautes performances à basse consommation pour les applications en périphérie.

Pour compliquer davantage les choses, même les solutions nouvellement déployées peuvent rapidement ne plus être optimales en raison de la nature changeante des exigences applicatives et des améliorations continues des algorithmes en constante évolution.

Cet article présente une solution de système sur module (SOM) flexible de Xilinx que les développeurs peuvent utiliser pour mettre en œuvre rapidement des solutions de caméras intelligentes pour le déploiement en périphérie. Il montre comment ils peuvent plus facilement adapter ces solutions en fonction de l'évolution des besoins sans compromettre les exigences clés en matière de latence et de puissance.

Accélérer l'exécution des applications de vision

Basé sur un système sur puce multiprocesseur (MPSoC) Zynq UltraScale+ personnalisé, le SOM Kria K26 de Xilinx fournit un système de traitement embarqué robuste comprenant une unité de traitement d'application (APU) Arm Cortex-A53 à quatre cœurs 64 bits, une unité de traitement en temps réel (RPU) Arm® Cortex®-R5F à deux cœurs 32 bits et une unité de traitement graphique (GPU) 3D Arm Mali-400MP2. Le SOM combine le MPSoC et 4 gigaoctets (Go) de mémoire DDR4 64 bits et le contrôleur mémoire associé, ainsi que plusieurs dispositifs de mémoire non volatile (NVM), dont 512 mégabits (Mb) de mémoire QSPI, 16 Go de mémoire eMMC et 64 kilobits (Kb) de mémoire EEPROM (Figure 1).

Schéma du SOM Kria K26 de Xilinx (cliquez pour agrandir)Figure 1 : Le SOM Kria K26 de Xilinx combine les capacités de traitement étendues d'un MPSoC Zynq UltraScale+ personnalisé avec un module de plateforme de confiance 2.0 (TPM2) et une mémoire dynamique et non volatile. (Source de l'image : Xilinx)

Xilinx complète ses ressources de traitement et de mémoire par un vaste système logique programmable comprenant 256 000 cellules logiques de système, 234 000 bascules de blocs logiques configurables (CLB), 117 000 tables de correspondance (LUT) CLB et un total de 26,6 mégabits (Mb) de mémoire dans diverses configurations de mémoire vive (RAM) distribuée, de RAM bloc et de blocs ultraRAM. De plus, le système logique programmable inclut 1248 tranches de traitement des signaux numériques (DSP), quatre émetteurs-récepteurs et un codec vidéo pour H.264 et H.265 capable de prendre en charge jusqu'à 32 flux de codage/décodage simultanés, jusqu'à un total de 3840 x 2160 pixels à 60 images par seconde (fps). Les deux connecteurs à 240 broches du SOM permettent d'accéder facilement aux blocs fonctionnels et aux périphériques grâce à des entrées/sorties (E/S) configurables par l'utilisateur.

Cette combinaison de cœurs de processeur, de mémoire et de logique programmable offre un niveau unique de flexibilité et de performances qui permet de surmonter les principaux inconvénients des GPU utilisés pour l'exécution haute vitesse des algorithmes ML. Contrairement au flux de données fixe des GPU, les développeurs peuvent reconfigurer le chemin de données du SOM K26 pour optimiser le débit et réduire la latence. En outre, l'architecture du SOM K26 est particulièrement bien adaptée au type de réseaux épars au cœur d'un nombre croissant d'applications ML.

La programmabilité du SOM K26 permet également de remédier aux goulets d'étranglement de la mémoire qui augmentent la consommation d'énergie et limitent les performances des applications à mémoire intensive, comme l'apprentissage automatique réalisé avec des architectures classiques utilisant des GPU, des processeurs multicœurs ou même des SoC avancés. Dans toute application conçue avec ces dispositifs conventionnels, la mémoire externe représente typiquement environ 40 % de la consommation d'énergie du système, tandis que les cœurs de processeur et la mémoire interne représentent généralement environ 30 % chacun. En revanche, les développeurs peuvent tirer parti des blocs de mémoire internes et de la reconfigurabilité du SOM K26 pour mettre en œuvre des conceptions qui ne nécessitent que peu ou pas d'accès à la mémoire externe. Il en résulte des performances accrues et une consommation d'énergie plus faible qu'avec les dispositifs conventionnels (Figure 2).

Schéma du Kria de Xilinx utilisant un pipeline de vision efficace (cliquez pour agrandir).Figure 2 : Alors que les systèmes basés sur des processeurs embarqués et des SoC typiques requièrent de multiples accès gourmands en énergie à la mémoire pour exécuter leurs applications, les systèmes basés sur le Kria de Xilinx utilisent un pipeline de vision efficace qui peut être conçu pour éviter tout accès DDR. (Source de l'image : Xilinx)

Grâce à ses hautes performances, sa faible consommation d'énergie et sa reconfigurabilité étendue, le SOM K26 contribue à garantir la sécurité dans les conceptions de caméras intelligentes pour les applications sensibles. Outre le dispositif de sécurité TPM intégré au SOM, le MPSoC intègre une unité de sécurité de configuration (CSU) dédiée qui prend en charge l'amorçage sécurisé, la surveillance d'altération, le stockage sécurisé des clés et l'accélération matérielle cryptographique. Ensemble, l'unité CSU, la mémoire interne sur puce (OCM) et le stockage sécurisé des clés constituent la base sécurisée permettant de garantir une racine de confiance matérielle pour la mise en œuvre d'un démarrage sécurisé et une plateforme de confiance pour l'exécution des applications.

Les capacités étendues disponibles avec le SOM K26 fournissent une base puissante pour la mise en œuvre d'applications exigeantes en périphérie. Cependant, chaque application a ses propres exigences en matière de caractéristiques et de fonctionnalités associées à un ensemble de périphériques et d'autres composants spécifiques à l'application. Pour simplifier la mise en œuvre de solutions spécifiques à une application, le SOM K26 est conçu pour être connecté à une carte porteuse qui héberge les périphériques supplémentaires. Xilinx démontre cette approche avec son kit de démarrage KV260 Vision AI basé sur le Kria K26.

Le kit de démarrage simplifie le développement des applications de vision

Composé d'un SOM K26 connecté à une carte porteuse orientée vision, le kit de démarrage KV260 Vision AI de Xilinx fournit une plateforme prête à l'emploi, spécialement conçue pour l'évaluation immédiate et le développement rapide d'applications de vision intelligentes. Tandis que le SOM K26 fournit les capacités de traitement requises, la carte porteuse du kit de démarrage fournit la gestion de l'alimentation, y compris la séquence de mise sous tension et de réinitialisation, ainsi que les options d'interface et les connecteurs pour la caméra, l'écran et la carte microSD (Figure 3).

Schéma du kit de démarrage KV260 Vision AI de XilinxFigure 3 : Le kit de démarrage KV260 Vision AI de Xilinx fournit une solution de vision intelligente complète utilisant le SOM K26 connecté à une carte porteuse orientée vision. (Source de l'image : Xilinx)

Outre ses multiples interfaces, la carte porteuse offre une prise en charge multi-caméra grâce à son connecteur Raspberry Pi et à deux connecteurs de système d'accès aux images (IAS), dont l'un est relié à un processeur de capteur d'image (ISP) AP1302 dédié de 13 mégapixels (MP) d'onsemi, capable de gérer toutes les fonctions de traitement d'image.

Pour accélérer davantage le déploiement d'applications basées sur la vision, Xilinx prend en charge cette plateforme matérielle de vision prédéfinie avec une série d'applications de vision accélérées pré-construites, et avec un ensemble complet de bibliothèques et d'outils logiciels pour le développement personnalisé.

Les applications accélérées offrent des solutions immédiates

Pour une évaluation immédiate et un développement rapide d'applications de vision accélérées, Xilinx propose plusieurs applications pré-construites qui démontrent l'exécution de plusieurs cas d'utilisation populaires, notamment la reconnaissance faciale par caméra intelligente utilisant la logique programmable, l'identification et le suivi de piétons, la détection des défauts et la détection des mots-clés couplés à l'aide du système de traitement du MPSoC. Les applications sont disponibles sur le Xilinx Kria App Store, et chaque application fournit une solution complète pour son cas d'utilisation spécifique avec des outils et des ressources associés. Par exemple, l'application de reconnaissance faciale par caméra intelligente utilise l'ISP AP1302 et le capteur d'image AR1335 de la carte porteuse KV260 pour acquérir des images, et la sortie HDMI ou DisplayPort (DP) de la carte pour générer le résultat. Pour le traitement de reconnaissance faciale, l'application configure le SOM K26 pour fournir un accélérateur de pipeline de vision et un moteur d'inférence d'apprentissage automatique pré-construit pour la détection des visages, le comptage des personnes et d'autres applications de caméras intelligentes (Figure 4).

Image des applications accélérées pré-construites sur le Xilinx Kria App Store (cliquez pour agrandir)Figure 4 : Disponibles en téléchargement sur le Xilinx Kria App Store, les applications accélérées pré-construites sont prêtes à fonctionner immédiatement sur le kit de démarrage KV260, fournissant des solutions complètes pour les modèles d'utilisation de la vision tels que la reconnaissance faciale. (Source de l'image : Xilinx)

En fournissant une implémentation et un support complets, les applications accélérées pré-construites du Xilinx App Store permettent aux développeurs de rendre leurs conceptions opérationnelles en moins d'une heure, même s'ils n'ont pas d'expérience avec les FPGA. Au fur et à mesure qu'ils évaluent l'application, ils peuvent utiliser la pile logicielle fournie pour modifier les fonctionnalités et explorer des solutions alternatives. Pour un développement personnalisé plus poussé, Xilinx fournit une suite complète de bibliothèques et d'outils de développement.

Les outils et l'environnement de développement IA accélèrent le développement personnalisé

Pour le développement personnalisé d'applications basées sur l'IA, l'environnement de développement Vitis AI de Xilinx fournit des outils optimisés, des bibliothèques et des modèles pré-entraînés qui peuvent servir de base à des modèles personnalisés plus spécialisés. Pour l'environnement d'exploitation d'exécution, le kit de développement logiciel (SDK) Linux embarqué PetaLinux basé sur Yocto de Xilinx fournit la suite complète de capacités nécessaires pour construire, développer, tester et déployer des systèmes Linux embarqués.

Conçu à la fois pour les experts et les développeurs sans expérience FPGA, l'environnement Vitis AI fait abstraction des détails du matériel silicium sous-jacent, ce qui permet aux développeurs de se concentrer sur la création de modèles ML plus efficaces. En fait, l'environnement Vitis AI est intégré à la pile de compilateurs d'apprentissage profond open-source Apache Tensor Virtual Machine (TVM), ce qui permet aux développeurs de compiler leurs modèles à partir de différents frameworks vers un processeur, un GPU ou un accélérateur. En utilisant Vitis AI avec TVM, les développeurs peuvent améliorer leurs conceptions existantes avec des capacités de vision accélérées, en transférant les charges de travail de vision à calcul intensif, comme les modèles d'apprentissage profond, vers le SOM Kria. Pour aider les développeurs à optimiser davantage leurs modèles d'apprentissage profond, l'outil AI Optimization de Xilinx peut simplifier les réseaux neuronaux pour réduire la complexité en termes de nombre de giga-opérations par seconde (Gops), augmenter le nombre d'images par seconde (fps) et réduire les modèles sur-paramétrés, en les compressant jusqu'à 50 fois avec un impact minimal sur la précision moyenne (mAP) (Figure 5).

Graphique de l'étude de cas de Xilinx Research (cliquez pour agrandir)Figure 5 : Une étude de cas de Xilinx Research a montré comment quelques itérations de simplification avec l'outil Xilinx AI Optimization peuvent rapidement réduire la complexité du réseau neuronal en termes de nombre de Gops, tout en augmentant le nombre d'images par seconde, et ce, avec un impact minimal sur la précision. (Source de l'image : Xilinx)

Pour la mise en œuvre d'applications de vision personnalisées, les bibliothèques Vitis Vision open-source de Xilinx sont optimisées pour de hautes performances et une faible utilisation des ressources sur les plateformes Xilinx, offrant une interface familière basée sur OpenCV. Pour l'analyse, l'infrastructure d'application Xilinx Video Analytics SDK aide les développeurs à construire des pipelines de vision et d'analyse vidéo plus efficaces sans nécessiter de connaissances approfondies des FPGA. Reposant sur l'infrastructure GStreamer open-source largement adoptée, le Video Analytics SDK permet aux développeurs de créer rapidement des noyaux d'accélération personnalisés sous forme de plug-ins GStreamer à intégrer dans l'infrastructure SDK.

Grâce à ces outils, un développeur de systèmes embarqués peut facilement assembler des pipelines d'accélération personnalisés, avec ou sans noyau d'accélération personnalisé.

Conclusion

Les algorithmes ML à calcul intensif ont permis l'utilisation de technologies de vision intelligente dans de nombreuses applications fonctionnant en périphérie, mais les développeurs sont confrontés à de nombreux défis pour répondre aux exigences de hautes performances, de basse consommation et d'adaptabilité des systèmes de vision en périphérie. Le SOM Kria K26 de Xilinx fournit la base matérielle pour accélérer les algorithmes sophistiqués sans dépasser les budgets énergétiques stricts. En utilisant un kit de démarrage basé sur le Kria K26 avec des applications pré-construites, les développeurs peuvent immédiatement commencer à évaluer les applications de vision intelligente et utiliser un environnement de développement complet pour créer des solutions de dispositifs personnalisés en périphérie.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey