Super Resolution
La super-résolution reconstruit une image de résolution supérieure à partir d’une image de basse résolution, en prédisant les détails que l’interpolation ne peut pas récupérer. Modèles et code.
La super-résolution (SR) regroupe des techniques de vision par ordinateur qui reconstruisent une image ou une vidéo à plus haute résolution à partir d’une entrée de résolution inférieure. Les méthodes classiques d’agrandissement, comme l’interpolation bicubique, répartissent simplement les pixels existants sur une grille plus grande : les contours deviennent flous et les textures fines perdent en netteté. Un modèle de SR entraîné prédit les détails haute fréquence manquants, comme les contours nets, les traits de texte et les textures du tissu ou du feuillage, à partir des motifs appris sur des paires d’images basse et haute résolution. La super-résolution d’image unique (SISR) utilise une seule image, tandis que la super-résolution vidéo exploite aussi les images voisines, qui capturent chacune des informations légèrement différentes sur la même scène.
Fonctionnement de la super-résolution#
La super-résolution est un problème mal posé : plusieurs images haute résolution différentes peuvent donner la même image basse résolution après réduction. Le modèle doit donc choisir la réponse la plus plausible en s’appuyant sur ce qu’il a appris au sujet des images naturelles. Les paires d’entraînement sont créées en dégradant des images haute résolution avec du flou, une réduction par un facteur comme 2× ou 4×, du bruit et de la compression. Le modèle de dégradation détermine les entrées réelles que le réseau peut traiter ; Real-ESRGAN s’entraîne avec des dégradations enchaînées aléatoirement afin de restaurer aussi bien des photos et des vidéos réelles que des images réduites proprement.
Les architectures ont évolué comme le reste de l’apprentissage profond. SRCNN a montré en 2014 qu’un réseau neuronal convolutif (CNN) à trois couches surpassait les méthodes classiques. ESPCN effectue ses convolutions à basse résolution et n’agrandit l’image qu’à la fin, avec une convolution sous-pixel qui réorganise les canaux pour créer une image plus grande. Cette approche est assez rapide pour la vidéo 1080p en temps réel. EDSR empilait de nombreux blocs résiduels, SwinIR construisait son modèle à partir de blocs de transformer de vision à fenêtres décalées, et les modèles de diffusion génèrent des détails par débruitage itératif.
La fonction de perte détermine ce que signifie « meilleur ». Les pertes sur les pixels, comme L1 ou l’erreur quadratique moyenne, maximisent la fidélité à l’original, mais font la moyenne des réponses possibles, ce qui donne une image lisse. SRGAN a ajouté une perte perceptuelle sur les caractéristiques profondes et une perte antagoniste issue d’un réseau antagoniste génératif (GAN), produisant des textures nettes et réalistes qui peuvent ne pas correspondre exactement à la scène réelle pixel par pixel. Cela pose un risque en imagerie médicale et en imagerie médicolégale, où un détail inventé peut être pris pour une preuve.
Évaluer la super-résolution#
La fidélité se mesure avec le rapport signal/bruit de crête (PSNR), une mesure logarithmique de l’erreur quadratique moyenne exprimée en décibels, et avec l’indice de similarité structurelle (SSIM). Les métriques perceptuelles comme LPIPS comparent les caractéristiques profondes et reflètent plus fidèlement les jugements humains sur le réalisme. La comparaison ci-dessous réduit une image par un facteur de 4×, puis la reconstruit avec l’interpolation bicubique et avec un modèle ESPCN préentraîné d’OpenCV :
import urllib.request
import cv2 # cv2.dnn_superres requires: pip install opencv-contrib-python
# Download a pretrained 4x ESPCN model and a test image cropped to a multiple of 4
urllib.request.urlretrieve("https://github.com/fannymonori/TF-ESPCN/raw/master/export/ESPCN_x4.pb", "ESPCN_x4.pb")
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
original = cv2.imread("bus.jpg")[:1080, :808]
# Simulate a low-resolution capture by shrinking the image 4x
low_res = cv2.resize(original, (202, 270), interpolation=cv2.INTER_CUBIC)
# Upscale 4x with bicubic interpolation and with the learned ESPCN model
bicubic = cv2.resize(low_res, (808, 1080), interpolation=cv2.INTER_CUBIC)
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("ESPCN_x4.pb")
sr.setModel("espcn", 4)
espcn = sr.upsample(low_res)
# Higher PSNR means the reconstruction is closer to the original image
print(f"Bicubic: {cv2.PSNR(original, bicubic):.2f} dB, ESPCN: {cv2.PSNR(original, espcn):.2f} dB")Le programme affiche Bicubic: 19.51 dB, ESPCN: 20.52 dB. Le gain de 1 dB correspond à une réduction d’environ 21 % de l’erreur quadratique moyenne, pour un fichier de modèle d’environ 100 Ko.
Super-résolution et termes apparentés#
- Restauration d’image : Domaine plus vaste qui consiste à récupérer une image nette à partir d’une image dégradée, notamment par débruitage, défloutage et suppression des artefacts de compression. La super-résolution est la tâche de restauration qui augmente aussi le nombre de pixels, et les modèles modernes traitent souvent plusieurs dégradations à la fois.
- Complétion d’image : Remplit les régions manquantes ou masquées, tandis que la super-résolution ajoute des détails partout dans une image complète, mais grossière.
- Interpolation d’images : Augmente la résolution temporelle en synthétisant des images entre celles qui existent déjà, soit l’équivalent temporel de la super-résolution spatiale.
- IA générative : Les modèles texte-image créent des images à partir d’instructions. La super-résolution est conditionnée par une image d’entrée et doit en respecter le contenu ; de nombreux générateurs d’images utilisent un suréchantillonneur par diffusion comme étape finale.
Applications concrètes#
- Jeux vidéo : NVIDIA DLSS génère les images à basse résolution, puis les agrandit avec un réseau neuronal, ce qui augmente la fréquence d’images tout en conservant une qualité visuelle similaire.
- Diffusion vidéo et archives : Les diffuseurs et les restaurateurs de films agrandissent les vidéos en définition standard et les archives pour les afficher en HD et en 4K.
- Analyse d’images satellitaires : Les analystes améliorent la netteté des images à moindre coût afin de cartographier les bâtiments, les routes et les véhicules.
- Analyse d’images médicales : Les systèmes de recherche reconstruisent des images IRM haute résolution à partir d’acquisitions plus rapides et de résolution inférieure, ce qui réduit le temps passé par les patients dans l’appareil.
La super-résolution sert aussi d’étape de prétraitement pour détecter de petits objets dans des sources basse résolution. Ultralytics YOLO26 redimensionne chaque entrée à son imgsz, soit 640 pixels par défaut, avec une interpolation bilinéaire. Une image de caméra de 320×240 est donc agrandie 2× avant la détection ; un modèle de super-résolution 2× utilisé à la place de cette interpolation fournit au détecteur des contours reconstruits sur de petits objets éloignés, comme les visages, les plaques d’immatriculation et les véhicules dans les vues aériennes.










