Optimiser la performance des CNN 3D sur les appareils FPGA
Une nouvelle méthode pour faire tourner le modèle X3D sur des FPGA pour une analyse vidéo efficace.
― 8 min lire
Table des matières
Introduction
Les Réseaux de Neurones Convolutionnels 3D (3D CNNs) deviennent de plus en plus populaires dans des domaines comme les systèmes de sécurité, les voitures autonomes, et la surveillance des gens. Ces réseaux peuvent analyser les données vidéo efficacement en regardant à la fois les images et comment elles changent avec le temps. Cependant, utiliser des 3D CNNs n'est pas facile, surtout pour les systèmes avec des ressources limitées, car ils nécessitent beaucoup de puissance de calcul et de mémoire. Cet article parle d'un nouvel outil qui aide à faire fonctionner un modèle spécifique de 3D CNN, appelé X3D, sur des dispositifs FPGA, ce qui rend la reconnaissance des actions humaines dans les vidéos plus rapide et efficace.
Importance des 3D CNNs
Ces dernières années, les CNNs 2D traditionnels ont bien fonctionné pour des tâches d’image. Mais comme les applications vidéo se développent, il faut des modèles qui prennent en compte les éléments temporels, comme les actions qui se produisent dans des séquences d'images. Les 3D CNNs comblent cette lacune en ajoutant une troisième dimension, ce qui leur permet de capturer les changements d'images au fil du temps.
Pour des tâches comme la reconnaissance des actions humaines, les 3D CNNs sont particulièrement efficaces. Ils peuvent détecter les mouvements dans les vidéos sans avoir besoin d'autres méthodes spécifiquement conçues pour analyser le temps. Dans des benchmarks importants comme Kinetics-400, les 3D CNNs ont montré de meilleures performances par rapport à d'autres modèles, même si des conceptions plus récentes comme les transformers visuels émergent. Cependant, ces nouveaux modèles nécessitent souvent beaucoup plus de puissance de calcul pour fonctionner.
Malgré leurs capacités, les 3D CNNs nécessitent plus de ressources que les 2D CNNs, ce qui entraîne des demandes croissantes en mémoire et en puissance de traitement. Différents dispositifs matériels comme les GPU et FPGA ont été utilisés pour relever ces défis. Les FPGA (Field Programmable Gate Arrays) sont intéressants car ils sont flexibles et consomment moins d'énergie que les GPU. Ils peuvent aussi s'adapter rapidement aux changements dans les conceptions de modèles.
Défis de l'utilisation des 3D CNNs sur FPGA
Dans le passé, l'utilisation des FPGA pour accélérer les modèles 3D CNN était principalement centrée sur des modèles plus anciens comme C3D et R(2+1)D, qui ne performent pas aussi bien selon les benchmarks récents. Ce travail vise à créer une conception FPGA pour X3D, un modèle moderne de 3D CNN qui performe bien en termes d'exactitude. L’approche proposée utilise un processus d’optimisation automatisé et prend en compte les caractéristiques du dispositif FPGA cible, permettant à X3D de fonctionner efficacement sur ces dispositifs.
Lors du développement de matériels informatiques utilisant X3D, il est essentiel de s'adapter à différentes plateformes FPGA en fonction de leurs ressources disponibles et de leur mémoire. La conception proposée peut changer pour s'adapter aux besoins de divers dispositifs et exigences.
Contributions Clés
Ce travail présente plusieurs nouvelles idées, incluant :
- L'extension des modèles actuels utilisés pour mapper les CNNs sur FPGA afin de traiter les sections irrégulières qu'implique le branching. C'est essentiel car de nombreux CNNs modernes utilisent cette fonctionnalité.
- L'automatisation du mapping du modèle X3D sur divers dispositifs FPGA tout en considérant les ressources disponibles.
- Deux optimisations clés qui améliorent le flux de travail du réseau X3D, comme l'utilisation des statistiques de données pour des couches spécifiques et la simplification du stockage des données.
Comprendre le Modèle X3D
X3D a été créé pour améliorer l'efficacité des 3D CNNs. Le design inclut différentes versions, allant de modèles plus simples avec moins de couches à des modèles complexes avec de nombreux paramètres. Ces modèles ont constamment bien performé dans des tâches de reconnaissance d'actions humaines à travers plusieurs benchmarks.
X3D-M, une version de ce modèle, utilise un nombre spécifique de couches et de frames d'entrée provenant des vidéos pour atteindre des taux d'exactitude élevés. En examinant la conception à un niveau matériel, la méthode proposée traduit les composants du modèle en blocs de construction qui permettent un traitement efficace.
Comment le Modèle Fonctionne
Le modèle se compose de trois parties principales :
- Connexions de Couches : Elles définissent comment différentes parties du modèle sont liées entre elles.
- Attributs de Couches : Chaque couche a des réglages spécifiques qui déterminent comment elle traite les données.
- Paramètres Apprenables : Ce sont des valeurs que le modèle ajuste pendant l'entraînement pour améliorer l'exactitude.
Chaque type de couche dans le modèle X3D utilise des configurations particulières qui détaillent comment elle traite les données vidéo, comme :
- Couches Convolutionnelles 3D : Ces couches analysent des volumes de données en utilisant des réglages spécifiques pour la gestion des données.
- Couches d'Activation : Elles utilisent des fonctions pour déterminer comment traiter encore plus les données d'entrée.
- Couches élémentaires : Elles combinent des entrées de différentes branches et produisent une sortie unique.
Mapping Efficace vers le Matériel
Le cadre proposé traduit les descriptions de haut niveau du modèle X3D en une forme qui peut être utilisée dans un matériel physique. En mappant la conception du modèle sur des composants matériels spécifiques, le cadre calcule à quel point une configuration fonctionnera bien.
Les interactions entre les couches du modèle sont analysées pour créer une estimation de performance pour la configuration matérielle. Cette étape est cruciale car elle permet d'optimiser le fonctionnement du modèle sur différents dispositifs.
Optimisation de la Performance
Pour améliorer la vitesse et l'efficacité du modèle, le design met l'accent sur des techniques particulières :
- Utilisation des Statistiques de Données : Les résultats antérieurs sont utilisés pour minimiser les délais de traitement dans certaines couches.
- Traitement Simplifié : Le design réutilise les résultats de calculs antérieurs, réduisant ainsi le besoin de mémoire supplémentaire et accélérant les temps de traitement.
Ces améliorations entraînent une meilleure utilisation du matériel disponible, permettant au modèle de fonctionner plus vite sans compromettre l'exactitude.
Exploration de l'Espace de Design
Explorer l'espace de design implique de trouver les meilleures configurations pour chaque couche du modèle. Il y a deux méthodes principales pour structurer la conception matérielle :
- Design à Un Seul Moteur : Une seule unité puissante gère les opérations une à la fois.
- Architecture de Streaming : Chaque couche a son bloc de traitement dédié, permettant une optimisation indépendante. Ce design met l'accent sur l'efficacité et la rapidité.
En décomposant la charge de travail en sections plus petites, la conception peut gérer des réseaux plus grands tout en gérant efficacement l'utilisation des ressources.
Facteurs Affectant la Performance
La capacité à exécuter plusieurs opérations en parallèle joue un rôle important dans la rapidité avec laquelle le modèle peut traiter les données. La conception de chaque couche influence la performance globale du système, et le processus d'optimisation se concentre sur l'amélioration de ces interactions.
Métriques de performance
Pour mesurer à quel point le design fonctionne bien, une série de tests peut être réalisée, en se concentrant sur :
- Clips Par Seconde : Cette métrique détermine combien de clips vidéo le système peut traiter en une seconde.
- Débit : Cela mesure combien d'opérations le système complète par seconde.
- Efficacité DSP : Cela indique à quel point le système utilise efficacement les processeurs de signaux numériques disponibles.
Évaluation des Résultats
La conception proposée a été testée sur une plateforme FPGA spécifique, montrant ses capacités par rapport à des benchmarks établis. Divers aspects, y compris les temps de traitement moyens et l'exactitude globale, ont été évalués.
Performance des Benchmarks
La nouvelle architecture a montré des avantages significatifs en matière de traitement des clips et d'atteinte d'une haute précision. Comparée aux modèles précédents, elle se classe bien dans diverses catégories de performance.
Comparaison avec d'Autres Modèles
Comparée à un GPU haute performance, la conception FPGA peut avoir des temps de traitement plus longs. Pourtant, elle offre des taux de précision compétitifs et est beaucoup plus efficace en ressources.
Conclusion
Ce travail présente une nouvelle architecture pour faire fonctionner efficacement le modèle X3D sur des dispositifs FPGA. En suivant une approche structurée pour le mapping et l'optimisation, le cadre améliore la performance du modèle tout en répondant aux défis des limitations matérielles. Les directions futures pourraient inclure l'extension de cette approche à d'autres modèles CNN et applications au-delà de la reconnaissance d'actions humaines, avançant encore les capacités des technologies d'analyse vidéo.
Titre: FMM-X3D: FPGA-based modeling and mapping of X3D for Human Action Recognition
Résumé: 3D Convolutional Neural Networks are gaining increasing attention from researchers and practitioners and have found applications in many domains, such as surveillance systems, autonomous vehicles, human monitoring systems, and video retrieval. However, their widespread adoption is hindered by their high computational and memory requirements, especially when resource-constrained systems are targeted. This paper addresses the problem of mapping X3D, a state-of-the-art model in Human Action Recognition that achieves accuracy of 95.5\% in the UCF101 benchmark, onto any FPGA device. The proposed toolflow generates an optimised stream-based hardware system, taking into account the available resources and off-chip memory characteristics of the FPGA device. The generated designs push further the current performance-accuracy pareto front, and enable for the first time the targeting of such complex model architectures for the Human Action Recognition task.
Auteurs: Petros Toupas, Christos-Savvas Bouganis, Dimitrios Tzovaras
Dernière mise à jour: 2023-05-29 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2305.18479
Source PDF: https://arxiv.org/pdf/2305.18479
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.