El modelo de imágenes profundas (Deep Image Prior) es un tipo de red neuronal convolucional que se utiliza para mejorar una imagen dada sin datos de entrenamiento previos, salvo la propia imagen. Una red neuronal se inicializa aleatoriamente y se utiliza como modelo previo para resolver problemas inversos como la reducción de ruido , la superresolución y el relleno de imágenes . Las estadísticas de la imagen se capturan mediante la estructura de un generador de imágenes convolucional, en lugar de mediante capacidades aprendidas previamente.
Método
Fondo
Los problemas inversos, como la reducción de ruido , la superresolución y el relleno de imágenes , pueden formularse como una tarea de optimización., dóndees una imagen,una representación corrupta de esa imagen,es un término de datos dependiente de la tarea, y R(x) es el regularizador .
Las redes neuronales profundas aprenden un generador/decodificador.que mapea un vector de código aleatorioa una imagen.
El método de corrupción de imágenes utilizado para generarse selecciona para la aplicación específica.
Detalles específicos
En este enfoque, elEl prior se reemplaza con el prior implícito capturado por la red neuronal (dondepara imágenes que pueden ser producidas por redes neuronales profundas yde lo contrario). Esto produce la ecuación para el minimizadory el resultado del proceso de optimización.
El minimizador(típicamente un descenso de gradiente ) comienza con parámetros inicializados aleatoriamente y desciende hacia un mejor resultado local para producir elfunción de restauración.
Sobreajuste
El parámetro θ puede utilizarse para recuperar cualquier imagen, incluso con ruido. Sin embargo, la red neuronal tiende a detectar el ruido debido a su alta impedancia, mientras que la señal útil presenta una baja impedancia. Esto provoca que el parámetro θ se aproxime a un óptimo local aceptable siempre que el número de iteraciones en el proceso de optimización sea lo suficientemente bajo como para evitar el sobreajuste de los datos.
Modelo de red neuronal profunda
Por lo general, el modelo de red neuronal profunda para el prior de imágenes profundas utiliza un modelo similar a U-Net sin las conexiones de salto que conectan los bloques del codificador con los del decodificador. Los autores mencionan en su artículo que "Nuestros hallazgos aquí (y en otras comparaciones similares) parecen sugerir que tener una arquitectura más profunda es beneficioso, y que tener conexiones de salto que funcionan tan bien para tareas de reconocimiento (como la segmentación semántica) es altamente perjudicial". [ 1 ]
Aplicaciones
Eliminación de ruido
El principio de eliminación de ruido es recuperar una imagena partir de una observación ruidosa, dóndeLa distribuciónA veces se conoce (por ejemplo, el perfilado del sensor y el ruido de fotones [ 2 ] ) y puede incorporarse opcionalmente al modelo, aunque este proceso funciona bien en la eliminación ciega de ruido.
La función de energía cuadráticase utiliza como término de datos, insertándolo en la ecuación parada como resultado el problema de optimización.
Superresolución
La superresolución se utiliza para generar una versión de mayor resolución de la imagen x. El término de datos se establece endonde d(·) es un operador de submuestreo como Lanczos que diezma la imagen por un factor t.
Repintado
El relleno de imágenes se utiliza para reconstruir un área faltante en una imagen.Estos píxeles faltantes se definen como la máscara binaria.El término de datos se define como(dóndees el producto Hadamard ).
La idea subyacente es que la pérdida se calcula únicamente sobre los píxeles conocidos de la imagen, y la red neuronal aprenderá lo suficiente sobre la imagen para completar las partes desconocidas, aunque la pérdida calculada no incluya esos píxeles. Esta estrategia se utiliza para eliminar marcas de agua de imágenes, tratándolas como píxeles faltantes.
Reconstrucción con y sin flash
Este enfoque puede extenderse a múltiples imágenes. Un ejemplo sencillo mencionado por el autor es la reconstrucción de una imagen para obtener luz y nitidez naturales a partir de un par de imágenes con y sin flash. La reconstrucción de vídeo es posible, pero requiere optimizaciones para tener en cuenta las diferencias espaciales.
Implementaciones
- El autor publicó una implementación de referencia reescrita en Python 3.6 con la biblioteca PyTorch 0.4.0 bajo la licencia Apache 2.0 : deep-image-prior [ 3 ].
- Implementación basada en TensorFlow escrita en Python 2 y publicada bajo la licencia CC-SA 3.0 : deep-image-prior-tensorflow
- Implementación basada en Keras escrita en Python 2 y publicada bajo la licencia GPLv3 : machine_learning_denoising
Ejemplo
Ver la Imagen Astronómica del Día (APOD) del 18 de febrero de 2024 [ 4 ]
Referencias
- ↑ Ulyanov, Dmitry; Vedaldi, Andrea; Lempitsky, Victor (julio de 2020). "Deep Image Prior" (PDF) . International Journal of Computer Vision . 128 (7): 1867–1888 . arXiv : 1711.10925 . doi : 10.1007/s11263-020-01303-4 . ISSN 0920-5691 .
- ↑ jo (11-12-2012). "Perfilado de sensores y ruido de fotones... y cómo eliminarlo" . darktable.
- ↑ "DmitryUlyanov/Deep-image-prior" . GitHub . 3 de junio de 2021.
- ↑ "Imagen astronómica del día" .
- Ulyanov, Dmitry; Vedaldi, Andrea; Lempitsky, Victor (30 de noviembre de 2017). "Deep Image Prior". arXiv : 1711.10925v2 [ cs.CV ].
- Aprendizaje profundo