De la super-résolution temps réel et embarquée

En guise de préambule, cet article vient compléter celui intitulé Amélioration d’images : de la Super-Résolution avec du Deep Learning.

D’ailleurs, nous avons donc déjà montré que dans différent secteur industriel, il y a un intérêt certain à utiliser de la super-résolution. Ici, nous allons nous concentrer sur le process de déploiement et les performances plutôt que sur le fonctionnement intrinsèque de la super-résolution.

Une configuration fonctionnelle pour faire de la super-résolution temps réel et embarquée

Nous présentons ci-dessous la configuration que nous jugeons optimale pour être déployée sur une plateforme embarquée à des fréquences supérieures ou égales à 25 Hz.

Utilisation du SDK NVIDIA TensorRT

TensorRT est un SDK fourni par NVIDIA pour optimiser les inférences sur GPU. Il s’agit d’une plateforme d’inférence haute performance pour le Deep Learning. Elle inclut une optimisation de processus d’inférence et un environnement d’exécution qui permettent de bénéficier d’un débit élevé et d’une faible latence pour les applications d’inférence liées au Deep Learning.

L’utilisation de TensorRT peut se faire en C++ ou en Python. Mais il est nécessaire de convertir un modèle d’IA initialement au format ONNX en un modèle au format ENGINE. Il alors possible d’apporter quelques modifications au modèle pendant la conversion, notamment en taille d’entrée, de batch-size, la précision (FP32 à FP16 voir INT8) , …

Le modèle peut aussi être préalablement adpaté à l’application souhaité (apprentissage, fine-tuning, …).

Utilisation d’une Jetson NVIDIA

Les plateformes Jetson de NVIDIA sont évidement optimales pour ce genre de déploiement IA sur GPU (en edge computing). En effet, les modules sont de petites tailles, ils ont de grandes capacités de calculs sur GPU et consomment très peu d’énergie. Pour avoir plus de détails sur ces modules, c’est par ici.

Module Jetson TX2 Imasolia Bureau d'études optronique
Exemple d’un module Jetson NVIDIA, disponible sur le site NVIDIA.

Utilisation du modèle ESRGAN

ESRGAN (Enhanced Super-Resolution Generative Adversarial Networks) est un réseau de neurone artificiel qui permet d’améliorer la résolution d’une image. Typiquement, ce modèle est capable de générer une image 1080p à partir d’une image 720p.

D’autres facteurs d’agrandissement sont possibles sur demande. Il est ainsi aisé d’améliorer des résolutions d’images d’un facteur 3 ou 4.

Sans entrer dans les détails mathématiques, vous trouverez ci-dessous l’architecture du modèle ESRGAN.

Schéma de l’architecture du modèle ERSGAN, source.

Pour certain projets, il peut-être demandé de déployer de la super-résolution sur des caméras spécifiques dans les longueurs d’ondes infrarouges (par exemple). Il y a un grand intérêt à cela puisque dans cette bande spectrale, les capteurs ont souvent une faible résolution. En effet, le prix de ce genre de capteur et directement proportionnel au nombre de pixel.

Une amélioration d’image logicielle permet alors d’optimiser la caméra. C’est par exemple le cas pour les caméras SWIR très spécifique.

Il est alors indispensable de ré-entrainer le modèle neuronal ESRGAN avec des images issus d’une caméra dont la gamme de longueur d’onde sera celle de l’utilisation finale.

Utilisation de Docker et Ansible pour le déploiement en production

Au sein d’Imasolia nous avons aussi l’expertise pour optimiser votre déploiement industriel, notamment avec Docker, afin de vous permettre de flasher à grande échelle vos Jetsons, ou encore pour déployer vos applications sur différentes plateformes (cross-compiling).

Nous proposerons aussi un playbook Ansible pour configurer votre environnement d’application.

Module de super résolution Imasolia
Module de super-résolution d’Imasolia. Pour en savoir plus, contactez-nous.

Conclusion

Dans cet article, nous avons vu une configuration matérielle et logicielle typique pour améliorer en temps réelle et sur plateforme embarquée, la résolution d’une image.

Qu’il s’agisse d’une image dans le spectre visible, infrarouge ou autre, il y a énormément d’application à vouloir « upscaler » une image.

Chez Imasolia, nous développons des boitiers standards ou sur mesures pour faire de la super-résolution. Alors si vous avez un besoin, nous pouvons vous aider, demandez nous !

Laisser un commentaire


The reCAPTCHA verification period has expired. Please reload the page.