Part 3 :
Conception

Comprendre le fonctionnement et le potentiel des systèmes optroniques

Puissance de calcul et interopérabilité

Maintenant que les principaux concepts sont maîtrisés, nous savons que pour mettre en œuvre un système de vision performant, surtout s’il est destiné à être embarqué, il est nécessaire d’utiliser les technologies les plus récentes afin de bénéficier des puissances de calcul adaptatives et des systèmes évolutifs.

Par exemple, si le capteur d’image est un capteur de 2M pixels, fonctionnant à 25 images / seconde, il devra traiter 2 millions de pixels x 25, soit 50 millions de pixels / seconde (ceci est approximatif et ne sert qu’à donner une idée de la capacité de calcul nécessaire).

L’objectif est de faire fonctionner le système en temps réel et de le faire interagir avec son environnement.
Chez Nexvision, nous n’hésitons pas à mettre en œuvre les dernières technologies issues des laboratoires, qu’il s’agisse de capteurs d’images, de processeurs graphiques ou de tout autre type de composants.

Nous sommes d’ailleurs l’une des rares entreprises en Europe à avoir été les premiers à adopter les GPU de Nvidia, et nous avons travaillé en étroite collaboration avec Photonis pour développer leurs capteurs EBCMOS pour la vision nocturne.

Nous ne développons pas seulement des systèmes complets, en commençant par les capteurs d’images, mais nous incluons également le développement d’un système complet sur mesure qui va avec, c’est-à-dire le matériel ainsi que le logiciel, y compris les algorithmes de traitement et/ou d’analyse d’images.

Dans la plupart des cas, nous créons des conceptions électroniques embarquées où le CPU, le GPU, le NPU et le FPGA constituent le cœur du système et la puissance de calcul.

Remarque :

Selon la conception, il peut y avoir :

  • plusieurs capteurs d’image parallèles (avec la même bande de fréquence ou des bandes différentes pour capturer des spectres différents)
  • des têtes distantes avec des systèmes de prétraitement d’images intégrés
  • d’autres types de capteurs (par exemple, radar, lidar) qui complètent le système et son interface pour réaliser la fusion des capteurs, ce qui rend le système global encore plus précis.

ex : Architecture à 1 camera

ex : Architecture à n camera

CPU - Central Processing Unit

Le Le chef d’orchestre !

Exécute le système d’exploitation (OS) et effectue des traitements algorithmiques de haut niveau. Il prend des décisions, gère l’interface homme-machine et l’application dans le cadre d’une profession donnée.

GPU - Graphical Processing Unit

L’analyste !

Il fait certains traitements d’image et surtout l’analyse d’images (ex : peut traiter des nuages de points => le GPU prend ces points caractéristiques et fait une analyse d’image pour en extraire des infos pertinentes. Pour les techniques, il fait des calculs en flottant.

FPGA - Field-Programmable Gate Array

Le FPGA, c’est de la puissance de calcul brute !

Il prend les images brutes et réalise le pré-traitement en améliorant et en extrayant des points caractéristiques. C’est un exécutant qui fait du calcul « simple » mais en masse. Pour les techniques, il fait des calculs en entier.

C’est du HardWare : séquenceur logique en HW : traitement fortement parallélisé dont les accès mémoire dans l’image à traiter sont définis (non aléatoires) => implémentation d’algorithmes sous forme de séquenceur HW : ce n’est pas du logiciel.

A savoir

Coder un algorithme sur FPGA prend en moyenne 20 fois plus de temps que pour un CPU/ GPU (donc 20 fois plus dur, donc plus cher). Dans le choix des architectures, on commence d’abord avec un CPU/GPU et si pas assez de puissance de calcul, on ajoute un ou plusieurs FPGA.

Comparatif FPGA / ASIC / GPU / CPU / MANY CORES / NPU