Les projets optroniques nécessitent très souvent d’avoir des ressources de calculs pour du traitement d’images analytique ou avec de l’IA embarquée. Pour ces objectifs, les modules Jetson sont idéaux et permettent d’embarquer une puissance de calcul certaine, avec la méthode Edge computing. En couplant ces plateformes avec l’utilisation du logiciel Docker, nous fiabilisons les procédés de développement et de déploiement industriel, pour avoir une solution la plus pertinente possible. Les modules Jetson NVIDIA avec des conteneurs Docker ont donc un grand intérêt en optronique !
Pourquoi embarquer une plateforme NVIDIA Jetson sur vos projets ?
Les modules Jetson de NVIDIA, sont des plateformes idéales pour les traitements d’images embarquées et les modèles d’IA. Il s’agit de modules de petites tailles, généralement en dessous de 150x100mm. Ils ont l’avantage d’embarquer de hautes performances grâce à leurs GPU intégrés tout en consommant peu d’énergie. A première vue, c’est tous ce qu’il faut pour embarquer de la puissance de calculs dans un projet optronique ambitieux ! Concernant les performances IA, elles offres quelques TFlops (1,33 TFlops sur la Jetson TX2).
Les différents modules Jetson
En fonction des besoins d’un projets (capacité de calculs, efficience énergétique, encombrement, …), nous avons le choix parmi différents modules Jetson (les capacités individuelles des différents modules seront certainement détaillées dans un autre article) :
L’accélération GPU
Tous les modules embarquent un environnement Linux et ils sont tous basés sur la stack de logiciel NVIDIA. La technologie NVIDIA JetPack™ permet de mettre en oeuvre des projets rapidement avec, par exemple, un système d’IA rapide et efficace. On peut ainsi se concentrer sur l’essentiel, c’est à dire le développement de votre application optronique. Les outils NVIDIA CUDA-X sont aussi installés nativement : les bibliothèques et frameworks sont dont accélérés par GPU. C’est par exemple le cas avec la bibliothèque graphique bien connu OpenCV.
Avec tous ces éléments, les modules Jetson constituent des solutions idéales pour une grande variété de produits et de configurations tout en ayant un excellent rendement énergétique.
Pour plus d’informations, vous pouvez consultez la page spécialisée sur le site NVIDIA.
Et Docker, c’est quoi ?
Docker est un logiciel libre qui permet de lancer des applications dans des conteneurs logiciels. Il permet de créer, déployer et exécuter des conteneurs de manière efficace en mode production/industrialisation.
Qu’est-ce qu’un conteneur Docker ?
Un conteneur peut-être vu comme une unité exécutable et indépendante dans laquelle une application et ses dépendances d’exécution peuvent toutes être regroupées en une seule entité. Autrement dit, il encapsule l’application dans une boîte invisible, avec tout ce dont il a besoin pour s’exécuter. Le tout indépendamment de l’hôte sur lequel il tourne.
Le conteneur est donc composé d’un système d’exploitation, les runtimes/frameworks, les outils systèmes, les librairies et bien-sûr l’application. L’intérêt d’un conteneur Docker est qu’il fournir un certain degré d’isolation par rapport à son hôte. On facilite ainsi grandement le déploiement et l’installation de l’application et de son environnement. On ne se soucie plus de l’environnement et des dépendances de l’application.
Retenons donc qu’un conteneur permet à une application d’être empaquetée et déplacée facilement, augmentant ainsi la simplicité d’une infrastructure.
Légèreté et rapidité comme mots d’ordres
Les conteneurs Docker sont construits à partir des images Docker. Ils sont légers, portables et permettent aux ingénieurs-chercheurs de créer, déployer et exécuter efficacement des applications distribuées. Docker offre également des temps de démarrage réduits, ce qui améliore l’utilisation des ressources.
Docker Compose pour la gestion multi-services
Dans le cas où il faudrait utiliser plusieurs services simultanément, il est possible de les développer dans des conteneurs individuels. Grâce à l’outil Docker Compose, nous pouvons facilement orchestrer ces conteneurs comme un ensemble de services inter-connectés.
Les modules Jetson NVIDIA avec des conteneurs Docker, le combo gagnant en Computer Vision
Vous l’aurez compris, les plateformes Jetson NVIDIA sont devenues (presque) indispensables en ce qui concerne les projets en Computer Vision avec traitements embarqués. En y ajoutant l’utilisation de Docker on obtient alors une recette efficiente qui facilite grandement le développement (qu’il soit collaboratif ou non) et surtout le déploiement en production. Qu’il s’agisse de petites séries ou de grandes séries, il est tout autant pertinent d’y penser dès la rédaction du cahier des charges.
Tous les projets qui nécessite du traitement d’images (ou du développement en général) sont compatibles avec Docker et l’utilisation sur plateforme Jetson NVIDIA rendra le produit final robuste et fiable.
Comment pouvons-nous travailler ensemble ?
En temps que bureau d’études en Optronique, nous vous aidons à déterminer la meilleure approche pour votre projet.
Suivant votre besoin nous vous proposerons le meilleur choix de la plateforme de traitement embarquée. Nous pourrons vous aider à mettre en place votre solution sous Docker. Que ce soit en Python et/ou en C/C++ avec OpenCV, Tensorflow, PyTorch, Keras, Scikit Learn, … nous trouverons forcément la meilleure recette pour votre projet !
Après identification de votre besoin nous pouvons vous proposer plusieurs manière de collaborer :
- Prestation spot : besoin d’un service ponctuel et bien défini
- Projet de A à Z : de la rédaction du cahier des charges jusqu’à l’industrialisation du produit
- Développement sur-mesure et spécifique : pour un produit one-shot
Vous avez besoin optronique, nous pouvons vous aider, demandez à Imasolia !