Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Techniques de super-résolution | Section
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Vision par Ordinateur Appliquée
Section 1. Chapitre 9
single

single

bookTechniques de super-résolution

Glissez pour afficher le menu

Note
Définition

Super-résolution (SR) désigne un ensemble de techniques utilisées pour améliorer la résolution des images, permettant d’obtenir des détails plus nets et une qualité supérieure. Ces méthodes sont largement utilisées dans divers domaines, notamment le traitement vidéo et l’amélioration d’images assistée par l’IA.

Les techniques de super-résolution peuvent être globalement classées en :

  • Méthodes traditionnelles basées sur l’interpolation (bilinéaire, bicubique, Lanczos) ;
  • Super-résolution basée sur l’apprentissage profond (CNN, GAN, Transformers).
super-résolution comparée

Méthodes traditionnelles basées sur l'interpolation

L'interpolation constitue l'une des approches les plus simples pour la super-résolution, où les pixels manquants sont estimés à partir des valeurs des pixels environnants. Toutes les techniques d'interpolation courantes incluent cv2.resize(), mais le paramètre interpolation varie :

super_res_image = cv2.resize(image, None, fx=4, fy=4, interpolation=interpolation_param)

Interpolation du plus proche voisin

  • Copie la valeur du pixel le plus proche à la nouvelle position ;
  • Produit des images nettes mais présentant un effet de mosaïque ;
  • Rapide mais manque de douceur et de détails.
interpolation_param = cv2.INTER_NEAREST

Interpolation bilinéaire

  • Fait la moyenne de quatre pixels voisins pour estimer la nouvelle valeur du pixel ;
  • Produit des images plus lisses mais peut introduire un effet de flou.
 interpolation_param = cv2.INTER_LINEAR

Interpolation bicubique

  • Utilise une moyenne pondérée de 16 pixels environnants ;
  • Offre une meilleure douceur et netteté par rapport à l'interpolation bilinéaire.
 interpolation_param = cv2.INTER_CUBIC

Interpolation Lanczos

  • Utilise une fonction sinc pour calculer les valeurs des pixels ;
  • Offre une meilleure netteté et un effet d'aliasing minimal.
 interpolation_param = cv2.INTER_LANCZOS4

Bien que les méthodes basées sur l'interpolation soient efficaces sur le plan computationnel, elles ne parviennent souvent pas à restaurer les détails fins et les textures.

Super-résolution basée sur l'apprentissage profond

Modèles de super-résolution pré-entraînés :

  • ESPCN (Efficient Sub-Pixel Convolutional Network) : rapide et efficace pour la super-résolution en temps réel ;
  • FSRCNN (Fast Super-Resolution CNN) : un réseau léger optimisé pour la vitesse ;
  • LapSRN (Laplacian Pyramid SR Network) : utilise un suréchantillonnage progressif pour de meilleurs détails.
 # Load pre-trained model
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("path/to/model.pb")
sr.setModel("model_name", scale_factor)  # Using 4x upscaling

# Apply super-resolution
high_res_image = sr.upsample(image)
Tâche

Swipe to start coding

Vous disposez d'une image en basse résolution :

  • Appliquez la méthode d'interpolation bicubique avec un facteur d'agrandissement de 4x et stockez le résultat dans bicubic_image ;
  • Définissez et créez un objet réseau de neurones profond dans la variable sr ;
  • Chargez le modèle à partir de model_path ;
  • Définissez le nom espcn et un facteur d'agrandissement de 4x ;
  • Appliquez la méthode de super-résolution DNN et stockez le résultat dans dnn_image.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 9
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt