Una prueba rápida de reducción de ruido en imágenes con el programa DxO PureRAW basado en redes neuronales. El resultado es sorprendentemente bueno, pero no milagroso.
Antes de ir al ejemplo breve comentario sobre cómo funcionan las redes neuronales. De forma simplificada una red neuronal consiste en una estructura interconectada que implementa una serie de cálculos numéricos realizados con valores precalculados tras un "entrenamiento" que ajusta la red. Para dicho entrenamiento (que no hace tu PC, sino que ya lo hizo el fabricante), a la red inicialmente desajustada le fueron presentadas millones de parejas de imágenes: una versión con ruido, y otra versión sin ruido pero de la misma escena píxel a píxel. Así fue capaz de "aprenderse" como un loro la forma que tienen los píxeles libres de ruido correspondientes a esos mismos píxeles o texturas cuando tienen ruido superpuesto. Al entregarle nuestra imagen con ruido, la red ejecuta esos cálculos predefinidos sustituyendo los valores RGB por los de una versión libre de ruido de la imagen ruidosa con que fuera entrenada y que más se pareciera a nuestra imagen. Por supuesto este proceso se realiza de forma local en cada parte de la escena.
Esto nos lleva a los siguientes hándicaps o limitaciones (ver los números sobre la imagen):
- 1. Cuando un texto está enmascarado por ruido, la red neuronal logra limpiarlo en gran medida pero no restaura los trazos del texto original porque no lo descifra como tal, se limita a recomponer aquello que aún logra interpretarse a pesar del ruido.
- 2. Éste es el ejemplo más interesante. Podemos ver cómo la red se "inventa" unas sombras y unas aristas que no existen en la imagen original. Sin embargo no está haciendo nada mal, ya que si miramos la imagen ruidosa vemos que esas zonas de sombras/pliegues precisamente parecen a simple vista altamente probables, aunque no existieran en la escena original.
- 3. El ruido añadido en estructuras de cierta complejidad, como el ondulado del repujado de piel en la máscara, hace que la red neuronal las interprete de forma más simplificada, como elementos lineales más que ondulados, porque en su entrenamiento vio más estructuras de ese tipo.
- 4. Respecto a las texturas más finas, cuando el ruido las hace totalmente irreconocibles en la imagen ruidosa la red neuronal es totalmente incapaz de detectarlas generando una superficie lisa sin textura.
- 5. Cuando no hay texturas, como en los parches de color, la red neuronal lo tiene mucho más fácil para restaurar el color original sin dominantes ni desviaciones, como por otro lado era esperable. Son zonas donde prácticamente cualquier algoritmo funciona muy bien.
(IZQ.: imagen sin ruido de referencia, CENTRO: imagen con ruido, DER.: resultado de aplicar DxO PureRAW a la imagen con ruido)
http://guillermoluijk.com/misc/dxopureraw.jpg
Bodegón concienzudamente diseñado durante 10min:
http://guillermoluijk.com/misc/dxoprimeescena.jpg
Salu2!
Marcadores