Panasonic S9 'Clear S LUT' - ingeniería inversa con red neur
Publicado: Mar Jun 04, 2024 12:26 am
En la galería de DPreview de la Panasonic S9 vienen varias versiones de una misma foto con las LUT al vuelo de la cámara:
https://www.dpreview.com/samples/801005 ... t-examples
Como además de las LUT viene una imagen con revelado estándar, he modelado la transformación que nos llevaría de este revelado estándar sin LUT hasta la imagen equivalente con la LUT aplicada con una red neuronal (de 2 capas con 32 nodos por capa, que ya me sabía que es capaz de este tipo de procesado):
http://guillermoluijk.com/datosimagenso ... s9lut0.png
Esta forma de definir la transformación que hace la LUT es hipercompacta: la red se describe completamente con unos pocos números con signo (1283 valores numéricos en este caso), cuando una LUT 3D matricial bruta en 8 bits requiere 50 millones de valores. El precio a pagar es cierto error (que ahora veremos que es pequeño) y que aplicarla es menos rápido. El error medio sobre la imagen de entrenamiento es muy bajo, imperceptible a la vista. En niveles de 8 bits:
http://guillermoluijk.com/datosimagenso ... s9lut2.png
Calculada la red se la aplico a otras dos imágenes. El resultado debería ser muy próximo a usar esas LUT en la cámara con esas dos escenas. Aquí puede verse la imagen usada para entrenar la red neuronal: original arriba a la izquierda, la LUT de cámara arriba al centro, y la emulación que hace la red neuronal de la LUT arriba a la derecha.
http://guillermoluijk.com/datosimagenso ... s9lut1.png
http://guillermoluijk.com/datosimagenso ... onics9.gif
Antes de hacer el ejercicio con la red neuronal lo he intentado con curvas RGB, pero no es posible. El procesado que hace la Panasonic tiene una dimensionalidad mayor de lo que puede lograrse con 3 curvas.
Salu2!
https://www.dpreview.com/samples/801005 ... t-examples
Como además de las LUT viene una imagen con revelado estándar, he modelado la transformación que nos llevaría de este revelado estándar sin LUT hasta la imagen equivalente con la LUT aplicada con una red neuronal (de 2 capas con 32 nodos por capa, que ya me sabía que es capaz de este tipo de procesado):
http://guillermoluijk.com/datosimagenso ... s9lut0.png
Esta forma de definir la transformación que hace la LUT es hipercompacta: la red se describe completamente con unos pocos números con signo (1283 valores numéricos en este caso), cuando una LUT 3D matricial bruta en 8 bits requiere 50 millones de valores. El precio a pagar es cierto error (que ahora veremos que es pequeño) y que aplicarla es menos rápido. El error medio sobre la imagen de entrenamiento es muy bajo, imperceptible a la vista. En niveles de 8 bits:
http://guillermoluijk.com/datosimagenso ... s9lut2.png
Calculada la red se la aplico a otras dos imágenes. El resultado debería ser muy próximo a usar esas LUT en la cámara con esas dos escenas. Aquí puede verse la imagen usada para entrenar la red neuronal: original arriba a la izquierda, la LUT de cámara arriba al centro, y la emulación que hace la red neuronal de la LUT arriba a la derecha.
http://guillermoluijk.com/datosimagenso ... s9lut1.png
http://guillermoluijk.com/datosimagenso ... onics9.gif
Antes de hacer el ejercicio con la red neuronal lo he intentado con curvas RGB, pero no es posible. El procesado que hace la Panasonic tiene una dimensionalidad mayor de lo que puede lograrse con 3 curvas.
Salu2!