Amélioration d’images : de la Super-Résolution avec du Deep Learning

En traitement d’images, la super-résolution désigne le processus qui consiste à améliorer la résolution spatiale, c’est-à-dire le niveau de détail d’une image. L’objectif de cet article est de présenter la super-résolution basée sur du Deep Learning avec quelques applications utiles et un exemple simple à visualiser.

Qu’est-ce que la super-résolution ?

La super-résolution est un ensemble d’algorithmes et de techniques utilisés pour améliorer, augmenter et sur échantillonner la résolution d’une image d’entrée.

En d’autres mots, il s’agit de prendre une image d’entrée et d’augmenter sa taille. C’est à dire sa largeur et sa hauteur avec une dégradation minimale de sa qualité. Dans l’idéal, la qualité n’est pas dégradée et tout l’enjeu de la super-résolution est là. En effet, tout le monde ou presque a essayé d’agrandir une image et a constaté que l’image devient moins nette, voire flou.

En effet, la plupart des logiciels de retouche photo (Photoshop, GIMP, …), utilisent tous des techniques et des algorithmes d’interpolation classiques :

  • interpolation du voisin le plus proche
  • interpolation linéaire
  • interpolation bicubique

Pourquoi utiliser de la super-résolution ?

Il y a beaucoup de raisons d’utiliser la super-résolution. Mais la super-résolution n’est pas un processus gratuit en terme de puissance de calculs (choix de la plateforme de traitement, d’énergie, d’encombrement, …). Son utilisation doit donc être justifiée ! Par exemple, dans le cas d’utilisation de caméra visible standard, dont le prix reste raisonnable, il vaut mieux changer la caméra que de réaliser du traitement de super-résolution. En revanche pour les exemples suivants, il est indispensable d’effectuer de la super-résolution :

  • Caméra onéreuse : c’est par exemple le cas des caméras infrarouges MWIR (Middle Wave Infrared). Ces caméras sont généralement plafonnées à une résolution de 640×480 pixels, et le prix peut atteindre plusieurs dizaines de milliers d’euros.
  • Caméra déjà existante dans un produit industrialisé : il est souvent plus simple d’implémenté de la super-résolution que de faire un changement de caméra dans un produit industrialisé et qualifié (choc, vibrations, CEM, …). Cela peut être le cas de certains produits militaires par exemple.

Les modèles de super-résolution (compatible avec OpenCV)

Il est possible d’implémenter un certain nombres de modèles de super-résolution. Permis eux nous pouvons en citer quelques-uns ci-dessous. La plupart sont basés sur de l’Intelligence Artificielle (Deep Learning).

  • EDSR – Enhanced Deep Residual Networks for Single Image Super-Resolution
  • ESPRC – Real-Time Single Image and Video Super-Resolution Using an Efficient Subpixel Convolutional Neural Network
  • FSRCNN – Accelerating the Super-Resolution Convolutional Neural Network
  • LapSRN – Fast and Accurate the Super-Resolution with Deep Laplacian Pyramid Networks

Ces modèles peuvent être implémentés pour fonctionner en temps réel, sur des plateformes embarquées types NIVDIA TX2, Xavier, … Il est alors possible de les implémenter pour qu’il fonctionne sur GPU.

Cette figure montre les structures des réseaux SRCNN et FSRCNN. Ces modèles ne sont pas discutés ici mais il est possible d’en savoir plus en cliquant sur le lien suivant (image source).

Exemple de super-résolution

En guise d’exemple, nous proposons le résultat d’une implémentation de notre modèle de super-résolution basé sur du Deep Learning. Nous avons pris notre logo Imasolia faiblement résolu que nous avons injecté dans notre modèle. Le résultat est significativement moins pixelisé et plus agréable à regarder. Nous avons augmenté la résolution d’un facteur x4 environ.

Exemple du logo Imasolia non super-résolu (image originale).
Exemple du logo Imasolia super-résolu (image issu de notre modèle de super-résolution basé sur du Deep Learning).

Un autre exemple, issus de la littérature cette fois-ci, est présenté ci-dessous. Différents modèles ont été utilisés et comparés sur l’image Lenna. Les résultats ne sont pas discutés ici puisqu’il ne s’agit pas du but de l’article. L’objectif est de montrer qu’il est possible d’utiliser plusieurs modèles avec leur avantages et leurs inconvénients propres.

Exemples de différents modèles de super-résolution sur l’Image Lenna avec un facteur de mise à l’échelle 3 (image source).

Conclusion

Dans cet article nous avons introduit la notion de super-résolution avec des modèles basés sur du Deep Learning. Nous avons expliqué son intérêt et la façon dont il est possible de l’implémenter sur GPU et plateformes embarquées pour des traitements en temps réel. D’ailleurs, nous sommes spécialiste de l’implémentation de ce type de traitements d’images sur plateformes embarquées NVIDIA !

Imasolia propose ses algorithmes de super-résolution avec Deep Learning pour vos applications spécifiques. N’hésitez pas à prendre contact avec nous pour en discuter.

Laisser un commentaire


La période de vérification reCAPTCHA a expiré. Veuillez recharger la page.