Super Resolution
La superresolución reconstruye una imagen de mayor resolución a partir de otra de baja resolución mediante la predicción de detalles que la interpolación no puede recuperar. Modelos y código.
La superresolución (SR) es una familia de técnicas de visión artificial que reconstruyen una imagen o un vídeo de mayor resolución a partir de una entrada de menor resolución. Los métodos clásicos de ampliación, como la interpolación bicúbica, solo distribuyen los píxeles existentes en una cuadrícula mayor, por lo que los bordes pierden nitidez y las texturas finas se difuminan. Un modelo de SR entrenado predice los detalles de alta frecuencia que faltan —como bordes nítidos, trazos de texto y texturas de tejidos o follaje— a partir de patrones aprendidos con pares de imágenes de baja y alta resolución. La superresolución de imagen única (SISR) utiliza una sola imagen, mientras que la superresolución de vídeo también aprovecha los fotogramas vecinos, cada uno de los cuales captura información ligeramente distinta de la misma escena.
Cómo funciona la superresolución#
La superresolución es un problema mal planteado: muchas imágenes diferentes de alta resolución se reducen a la misma imagen de baja resolución, por lo que el modelo debe elegir la respuesta más plausible según lo aprendido sobre las imágenes naturales. Los pares de entrenamiento se crean degradando imágenes de alta resolución con desenfoque, reducción de escala por un factor como 2× o 4×, ruido y compresión. Ese modelo de degradación determina qué entradas reales puede procesar la red; Real-ESRGAN se entrena con degradaciones encadenadas aleatoriamente para restaurar tanto fotos y vídeos reales como imágenes reducidas de forma limpia.
Las arquitecturas han seguido la evolución del resto del aprendizaje profundo. En 2014, SRCNN demostró que una red neuronal convolucional (CNN) de tres capas superaba a los métodos clásicos. ESPCN realiza las convoluciones a baja resolución y amplía la imagen solo al final mediante una convolución subpíxel, que reorganiza los canales en una imagen más grande; así alcanza la velocidad necesaria para el vídeo 1080p en tiempo real. EDSR apiló numerosos bloques residuales, SwinIR construyó su modelo con bloques de transformer de visión de ventanas desplazadas, y los modelos de difusión generan detalles mediante un proceso iterativo de eliminación de ruido.
La función de pérdida determina qué significa «mejor». Las pérdidas por píxel, como L1 o el error cuadrático medio, maximizan la fidelidad al original, pero promedian las posibles respuestas, lo que produce imágenes suaves. SRGAN añadió una pérdida perceptual sobre características profundas y una pérdida adversarial de una red generativa antagónica (GAN), lo que produce texturas nítidas y realistas que pueden no coincidir píxel a píxel con la escena real. Esto supone un riesgo en la imagen médica y la imagen forense, donde un detalle inventado puede confundirse con una prueba.
Medición de la superresolución#
La fidelidad se mide con la relación señal/ruido de pico (PSNR), una medida logarítmica del error cuadrático medio expresada en decibelios, y con el índice de similitud estructural (SSIM). Las métricas perceptuales, como LPIPS, comparan características profundas y reflejan mejor los juicios humanos sobre el realismo. La comparación siguiente reduce una imagen 4× y la reconstruye con interpolación bicúbica y con un modelo ESPCN preentrenado de 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")Imprime Bicubic: 19.51 dB, ESPCN: 20.52 dB. La mejora de 1 dB equivale a una reducción de aproximadamente el 21 % del error cuadrático medio, con un archivo de modelo de unos 100 KB.
Superresolución y términos relacionados#
- Restauración de imágenes: Campo más amplio que abarca la recuperación de una imagen limpia a partir de otra degradada, incluida la eliminación de ruido, el desenfoque y los artefactos de compresión. La superresolución es la tarea de restauración que también aumenta el número de píxeles, y los modelos modernos suelen procesar varias degradaciones a la vez.
- Rellenado de imágenes: Rellena regiones ausentes o enmascaradas, mientras que la superresolución añade detalle en toda una imagen completa, pero poco definida.
- Interpolación de fotogramas: Aumenta la resolución temporal al sintetizar fotogramas entre los existentes; es el equivalente en el eje temporal de la superresolución espacial.
- IA generativa: Los modelos de texto a imagen crean imágenes a partir de indicaciones. La superresolución se condiciona a una imagen de entrada y debe respetar su contenido, y muchos generadores de imágenes utilizan un ampliador basado en difusión en la fase final.
Aplicaciones en el mundo real#
- Videojuegos: NVIDIA DLSS renderiza fotogramas a menor resolución y los amplía con una red neuronal, aumentando la frecuencia de fotogramas con una calidad visual similar.
- Emisión y archivo de vídeo: Las cadenas de televisión y los restauradores cinematográficos amplían material de definición estándar y de archivo para pantallas HD y 4K.
- Análisis de imágenes por satélite: Los analistas mejoran la nitidez de imágenes de menor coste para cartografiar edificios, carreteras y vehículos.
- Análisis de imágenes médicas: Los sistemas de investigación reconstruyen imágenes de MRI de alta resolución a partir de adquisiciones más rápidas y de menor resolución, reduciendo el tiempo que el paciente pasa en el escáner.
La superresolución también sirve como paso de preprocesamiento para detectar objetos pequeños en fuentes de baja resolución. YOLO26 de Ultralytics redimensiona cada entrada a su imgsz, 640 píxeles de forma predeterminada, mediante interpolación bilineal, por lo que un fotograma de cámara de 320×240 se amplía 2× antes de la detección; si se sustituye esa interpolación por un modelo de superresolución 2×, el detector recibe bordes reconstruidos de objetos pequeños y lejanos, como caras, matrículas y vehículos en vistas aéreas.










