Partager

N2D2 : pour concevoir et déployer des réseaux de neurones optimisés pour l’embarqué

N2D2 est une plateforme de deep learning complète spécialisée dans la conception de réseaux de neurones profonds destinés à fonctionner en environnement contraint. Elle permet aux industriels qui en ont besoin d’intégrer des fonctions avancées de traitement de données dans leurs systèmes embarqués.

L'usage

Embarquer des fonctions d’IA dans des systèmes contraints

N2D2 (Neural Network Design and Deployment) répond au besoin d’intégrer des applications d’IA, comme la reconnaissance d’images (classification, détection d’objets…) ou le traitement de signal, dans des systèmes contraints en consommation ou dissipation d’énergie, en latence, en facteur de forme (dimensions, encombrement…) et/ou par des critères économiques.

Issu des travaux d’ingénieurs-chercheurs du CEA-List spécialisés en systèmes embarqués, cette plateforme permet de créer des réseaux de neurones profonds optimisés pour satisfaire les contraintes de l’embarqué. N2D2 dispose notamment de fonctions pour réduire la complexité calculatoire des modèles et leur besoin en quantité mémoire, via des techniques de quantification (après ou pendant l’entraînement) et d’optimisation topologique notamment. Il permet de réaliser des analyses comparatives pour sélectionner la meilleure cible matérielle (MCU, GPU, FPGA) en fonction des contraintes, puis de générer une implémentation optimisée pour celle-ci, dans le modèle de programmation adapté (C++, TensorRT, OpenCL, RTL…).

N2D2 est disponible sur Github sous licence open source CeCILL-C (équivalent à la LGPL, une licence non contaminante). Elle est ouverte aux contributions et améliorations de ses utilisateurs.

Portabilité et interopérabilité

N2D2 dispose de nombreux avantages :

  • son approche intégrée comprenant l’ensemble de la chaîne de conception, du développement de l’application à son déploiement: mise en forme des données, exploration des réseaux de neurones, apprentissage, tests et génération du code optimisé ;
  • sa compatibilité avec de multiples cibles matérielles du marché, en proposant des implémentations optimisées : C++ pour MCU et DSP (STM32 et cœurs ARM notamment), TensorRT pour GPU, OpenCL pour DSP, GPU ou FPGA ;
  • son fonctionnement optimisé avec les accélérateurs spécialisés développés au CEA : PNeuro (DSP SIMD dédié aux ASIC en cours d’industrialisation par un de nos partenaires) et DNeuro (architecture flot de données optimisée pour les FPGA) ;
  • sa grande interopérabilité, avec le support du standard ONNX ainsi que son intégration avec les plateformes PyTorch et Keras ;
  • une conception modulaire et un niveau d’abstraction simple permettant facilement de modifier ou d’ajouter de nouvelles fonctionnalités, y compris sur l’implémentation bas niveau des fonctions de calcul, permettant de tenir compte des spécificités du matériel visé pour le déploiement (calcul approximé, arithmétique saturée spécifique…) ;
  • la souveraineté et la maîtrise du code, N2D2 étant totalement indépendant des autres plateformes de deep learning ;
  • son approche multiparadigme, en intégrant dans la même plateforme la simulation de modèles de réseaux de neurones neuromorphiques, qui utilisent un codage impulsionnel de l’information pour mimer le fonctionnement des neurones biologiques. Ces modèles ouvrent la voie à des implémentations potentiellement plus efficaces des réseaux de neurones sur les nouvelles technologies de mémoire non volatile.

Nous avons décidé de travailler avec N2D2 pour son atout primordial : la flexibilité du portage des applications sur différentes plateformes.

Gabriel FRICOUT

Responsable d’équipe R&D Mesures et Contrôles — ArcelorMittal

Sécurité, Production, Marketing

Exemples de cas d’usage :

  • sécurité et défense : détection d’intrusion et contrôle d’accès en milieu contraint, segmentation d’images aériennes ou spatiales, réidentification d’objectifs en temps réel ;
  • Industrie : contrôle qualité en temps réel sur des lignes de fabrication par reconnaissance d’images et prédiction ou détection d’anomalies ;
  • Transport : perception de l’environnement en temps réel du véhicule autonome, par segmentation d’images et détection d’objets ;
  • Marketing intelligent : analyse comportementale, ciblage personnalisé.
Cas d’usage

La vision industrielle

ArcelorMittal a utilisé N2D2 pour déployer des dispositifs de vision industrielle, en vue d’améliorer ses systèmes d’inspection de surfaces et permettre la détection de défauts en temps réel. Grâce à la portabilité des développements, les équipes ont pu récupérer des exécutables C et les faire tourner sur leurs machines, et déployer leurs développements sur des GPU et des plateformes de type FPGA – DSP.

Pour ArcelorMittal, le passage du cœur de N2D2 en open source apporte la garantie de sa pérennité et de son enrichissement de nouvelles fonctions au fil du temps.

À lire également

Communiqués de presse

19 juillet 2021 | Dolphin Design et le CEA-List

Dolphin Design et le CEA-List ont lancé un laboratoire commun de R&D dédié aux systèmes embarqués. L’objectif est de proposer une offre Edge-IA alliant flexibilité du logiciel, efficacité én...
Lire la suite