Principios y práctica del desenfoque de imagen - Del desenfoque de movimiento a la recuperación de desenfoque
Comprender el desenfoque de imagen - El modelo de degradación
El desenfoque de imagen es una degradación de calidad causada por el movimiento de la cámara o del sujeto durante la exposición, el desenfoque del lente o la turbulencia atmosférica. Matemáticamente, se modela como la convolución de una imagen nítida f con un kernel de desenfoque (PSF: Point Spread Function) h, más ruido aditivo n:
g = h * f + n
donde g es la imagen borrosa observada y * denota convolución. El objetivo del deblurring es recuperar la imagen nítida original f a partir de g y h (cuando es conocida).
Tipos de desenfoque:
- Desenfoque de movimiento: Desenfoque direccional por vibración de la cámara o movimiento del sujeto. La PSF tiene forma de línea
- Desenfoque por desenfoque: Desenfoque circular en regiones fuera de foco. La PSF tiene forma de disco (pillbox)
- Desenfoque atmosférico: Desenfoque aleatorio por turbulencia atmosférica. Problemático en astronomía e imágenes de largo alcance
- Desenfoque espacialmente variable: La PSF difiere según la posición en la imagen. Incluye desenfoque rotacional y de zoom
Por qué el deblurring es difícil: El deblurring es fundamentalmente un problema inverso con tres desafíos centrales: amplificación del ruido, artefactos de ringing y no unicidad de la solución. Con ruido presente, el filtrado inverso ingenuo causa amplificación explosiva del ruido, produciendo resultados inutilizables sin una regularización adecuada.
Deblurring no ciego - Restauración con PSF conocida
El deblurring no ciego recupera imágenes nítidas cuando el kernel de desenfoque (PSF) es conocido. El procesamiento en el dominio de frecuencia es fundamental, siendo la regularización robusta al ruido la clave para resultados prácticos.
Filtro inverso: El enfoque más simple, dividiendo por H(u,v) en el dominio de frecuencia: F(u,v) = G(u,v) / H(u,v). Sin embargo, el ruido se amplifica al infinito en frecuencias donde H se acerca a cero, haciéndolo impráctico para imágenes reales.
Filtro de Wiener: Un filtro óptimo que considera la relación de espectro de potencia ruido-señal:
F(u,v) = [H*(u,v) / (|H(u,v)|² + K)] × G(u,v)
K representa la relación ruido-señal (NSR), típicamente entre 0.001-0.01. Un K mayor aumenta la supresión de ruido pero reduce la nitidez de la restauración. Implementable en OpenCV usando cv2.filter2D() combinado con operaciones FFT.
Deconvolución Richardson-Lucy (RL): Un método iterativo basado en el modelo de ruido de Poisson, ampliamente usado en astronomía y microscopía. Actualiza la estimación en cada iteración, convergiendo típicamente en 20-50 iteraciones. Satisface naturalmente las restricciones de no negatividad pero la sobre-iteración amplifica el ruido causando artefactos de ringing.
Regularización de Variación Total (TV): Preserva bordes mientras suprime ruido minimizando ||g - h*f||² + λ×TV(f). El parámetro λ (rango 0.001-0.1) controla el equilibrio entre nitidez de bordes y supresión de ruido, proporcionando excelentes resultados para imágenes naturales.
Deblurring ciego - Estimación simultánea de PSF y recuperación de imagen
El deblurring ciego estima simultáneamente tanto la imagen nítida como la PSF a partir de una observación borrosa sin conocimiento previo del kernel de desenfoque. Dado que la PSF es desconocida en la mayoría de los escenarios fotográficos reales, esta es la técnica de deblurring más importante en la práctica.
Estimación MAP (Maximum A Posteriori): El enfoque clásico asume distribuciones previas tanto para la imagen como para la PSF, maximizando la probabilidad posterior mediante optimización alternante:
- Prior de imagen: Los gradientes de imágenes naturales siguen distribuciones de cola pesada (hiper-Laplaciana)
- Prior de PSF: No negativa, suma 1, dispersa (la mayoría de elementos cercanos a cero)
- Optimización alternante: Fijar f, estimar h → Fijar h, estimar f → Repetir hasta convergencia
Estrategia multiescala de grueso a fino: El deblurring ciego cae fácilmente en óptimos locales, por lo que se construyen pirámides de imagen comenzando la estimación desde la escala más gruesa. Las estimaciones de PSF en escalas gruesas inicializan la siguiente escala más fina, aumentando progresivamente la resolución. Típicamente se usan 4-6 escalas de pirámide para una convergencia robusta.
Estimación de PSF basada en bordes: El método de Cho-Lee (2009) estima la PSF usando solo los bordes de la imagen (regiones de alto gradiente). Las regiones de borde preservan fuertemente la información de dirección y magnitud del desenfoque, permitiendo una estimación eficiente y precisa. Un enfoque de dos etapas usando filtros de choque para realce de bordes seguido de estimación de PSF en el dominio del gradiente logra una aceleración de 10x sobre métodos anteriores.
Deblurring con aprendizaje profundo - Restauración de extremo a extremo
Los métodos de deblurring basados en aprendizaje profundo aprenden mapeos directos de imágenes borrosas a nítidas sin estimación explícita de PSF. Avanzando rápidamente desde 2017, estos enfoques superan significativamente los métodos tradicionales en benchmarks estándar.
DeblurGAN (2018): Eliminación de desenfoque de movimiento basada en GAN usando un generador codificador-decodificador ResNet entrenado con pérdida adversarial + pérdida perceptual. Alcanza PSNR 28.7dB en el dataset GoPro (3,214 pares). Velocidad de inferencia aproximadamente 50ms para 720p en GPU.
DeblurGAN-v2 (2019): Introduce Feature Pyramid Network (FPN) para utilización de características multiescala. Una versión ligera usando backbone MobileNet-v2 logra aceleración de 10x manteniendo la calidad, permitiendo procesamiento en tiempo real en dispositivos móviles.
MPRNet (2021): Multi-Stage Progressive Restoration Network restaura imágenes a través de 3 etapas progresivas. Cada etapa pasa la salida del codificador-decodificador a la siguiente, con aprendizaje residual para corrección de detalles. Alcanza PSNR 32.66dB en GoPro, estableciendo el estado del arte en su momento de publicación.
Restormer (2022): Aplica arquitectura Transformer a la restauración de imágenes usando Multi-Dconv Head Transposed Attention para captura eficiente de dependencias globales a altas resoluciones. Alcanza PSNR 32.92dB en GoPro y 31.22dB en el dataset HIDE. Costo computacional aproximadamente 300ms para 1280×720 en A100.
NAFNet (2022): Nonlinear Activation Free Network logra rendimiento equivalente a Restormer a la mitad del costo computacional mediante las innovaciones SimpleGate y Simplified Channel Attention, alcanzando PSNR 33.69dB en GoPro.
Desenfoque espacialmente variable y deblurring de video
La fotografía real comúnmente produce desenfoque espacialmente variable donde la dirección y magnitud del desenfoque difieren a lo largo de la imagen. El deblurring de video además aprovecha la información temporal para una calidad de restauración superior.
Causas del desenfoque espacialmente variable:
- Rotación de cámara: La rotación de balanceo causa diferentes direcciones de desenfoque en el centro versus la periferia de la imagen
- Profundidad de campo: El tamaño del desenfoque varía con la distancia al plano focal
- Movimiento de objetos: Diferentes objetos moviéndose a diferentes velocidades dentro de la escena
- Desenfoque de zoom: Patrón de desenfoque radial por operación de zoom durante la exposición
Manejo del desenfoque espacialmente variable: El enfoque básico divide las imágenes en parches (64×64 a 128×128) y estima la PSF local por parche, con restricciones de continuidad entre parches adyacentes. Los métodos de aprendizaje profundo usan Deformable Convolution para filtrado espacialmente adaptativo, que se ha convertido en el enfoque dominante para manejar desenfoque no uniforme.
Deblurring de video: Aprovechar fotogramas consecutivos permite una restauración de mayor calidad que los métodos de fotograma único. EDVR (Enhanced Deformable Video Restoration) alinea y fusiona información de 5 fotogramas adyacentes usando Deformable Convolution, mejorando el PSNR en 1-2dB sobre enfoques de fotograma único.
Fusión con cámara de eventos: Las cámaras de eventos (DVS) con resolución temporal de microsegundos registran el proceso de formación del desenfoque. Usar datos de eventos durante la exposición de cámaras convencionales permite la recuperación de desenfoque de movimiento severo previamente considerado imposible. E-CIR logra PSNR superior a 34dB usando datos de eventos como guía de restauración.
Herramientas prácticas de deblurring y evaluación de calidad
Esta sección cubre herramientas concretas, configuración de parámetros y métodos de evaluación de calidad para aplicar deblurring en flujos de trabajo de producción, incluyendo patrones comunes de fallo y sus soluciones.
Herramientas de escritorio:
- Topaz Sharpen AI: Herramienta comercial basada en aprendizaje profundo con detección automática de modos de desenfoque de movimiento, desenfoque y enfoque suave. Tiempo de procesamiento aproximadamente 5 segundos para 24MP en GPU
- Adobe Photoshop: Filtro > Enfocar > Reducción de vibración. Auto-estima la PSF con restauración por filtro de Wiener. Ajuste manual de dirección y longitud de PSF disponible
- DxO PhotoLab: Corrección óptica basada en perfiles de lente usando bases de datos de PSF específicas del lente para restauración de alta precisión
Librerías Python:
scikit-image: Proporcionaskimage.restoration.wiener()yrichardson_lucy()OpenCV: Filtro de Wiener implementable víacv2.filter2D()+ FFTDeepDeblur: Deblurring basado en aprendizaje profundo con PyTorch con modelos pre-entrenados listos para uso inmediato
Métricas de calidad:
- PSNR: Métrica básica con referencia. Por encima de 30dB es bueno, por encima de 35dB es excelente
- SSIM: Similitud estructural. Por encima de 0.9 es buena calidad
- LPIPS: Similitud perceptual (menor es mejor). Por debajo de 0.1 es bueno
- NIQE: Métrica de calidad sin referencia que mide la desviación de estadísticas de imágenes naturales
Fallos comunes y soluciones: Los artefactos de ringing (ondulaciones cerca de bordes) se mitigan ajustando parámetros de regularización. La amplificación de ruido se aborda aplicando primero eliminación de ruido o usando métodos conjuntos de deblur-denoise. Los efectos de halo por sobre-enfoque se evitan usando configuraciones de intensidad de procesamiento conservadoras.