Deconvoluciones con Pixi

Avatar de Usuario
Silvercup
Mensajes: 322
Registrado: 05 May 2010, 14:34

Deconvoluciones con Pixi

Mensajepor Silvercup » 02 Sep 2011, 01:25

Hola a todos:

A petición de bocachancla y ya que hay un post en el que algunos compañeros se preguntan cómo se usa la herramienta Deconvolution, voy a hacer un pequeño tutorial. Además voy a aprovechar para explicar el uso de dos nuevas herramientas:

DynamicPSF y RangeSelection.

Voy a usar una imagen de M33 de bocachancla para el tutorial.


La herramienta deconvolution de PIXI nos va a permitir ganar resolución y corregir los efectos de seeing. No voy a entrar en detalles técnicos, pero si hay que decir que la herramienta es mucho más potente que una simple máscara de enfoque. Vamos allá.

La herramienta deconvolution tiene tres pestañas en PSF. Parametric PSF, Motion Blur PSF y External PSF.

La pestaña Parametric PSF la vamos a utilizar cuando no sabemos la PSF (que para que nos entendamos es la función que calcula la recomposición de la imagen). Estamos ante lo que se denomina "blind deconvolution" o deconvolución ciega. La cuestión es que jugando con los parámetros StdDev y Shape corrijamos la pérdida de resolución. Es una cuestión de prueba y error. Una vez que hayamos usado la herramienta nos daremos cuenta que bajando la StDev el algoritmo es menos agresivo y subiendolo al contrario, la Shape actua de forma similar pero debemos tener en cuenta las estructuras de las estrellas. Como he dicho es cuestión de prueba y error. O sea echarle paciencia.

Como todos tenemos prisa y no podemos perder una tarde haciendo pruebas, pues hice el script Deconvolution preview, que lo que hace es copiar un preview aplicarle varias devconvoluciónes con distintos parametros y mostrar el resultado en una sola imagen para que podamos comparar los resultados, en una esquina de cada imagen nos muestra los parametros utilizados.

Script Deconvolution Preview:

http://pixinsight.com/forum/index.php?topic=1250.msg6225

La pestaña Motion Blur PSF nos va a permitir corregir pequeñas derivas en la imagen. Hay que jugar con el (Angle) angulo de la deriva y la longitud (lenght). Pongo unos ejemplos con unas imágenes de M1 de un compañero del foro de PIXI Dave Halliday.

Aqui podemos ver la imagen con la deriva y los parametros que vamos a aplicar a traves de una máscara de estrellas solo a las estrellas:

http://farm5.static.flickr.com/4021/4405172348_8da888b65a_b.jpg

Aqui vemos una comparativa del antes y el despues:

http://farm3.static.flickr.com/2757/4405172606_bb7386c590_b.jpg

Evidentemente si las estrellas tienen deriva, tambien lo tiene el objeto, luego aplicamos a la imagen completa con una máscara de luminancia para que no afecte al fondo y nos daría esto:

http://farm5.static.flickr.com/4020/4405173124_33c5dd98ff_b.jpg


Como en el caso anterior es cuestión de prueba y error y sentido común. Dejo para otro tutorial como se corrige en parte la coma típica de los refractores.

La tercera pestaña que es la que nos interesa ahora sirve para realizar la deconvolución con un modelo PSF externo (una imagen).

Hasta ahora se podía hacer con una imagen de una de las estrellas de la imagen principal que estuviese bien "sampleada" y por supuesto sin quemar. Ahora tenemos un nuevo módulo en PIXI DynamicPSF que lo que hace es crearnos una imagen con un PSF promediado entre las estrellas seleccionadas de la imagen. Vamos a ver como funciona:


Abrimos la imagen (ya esta corregida de viñeteo y color) y abrimos DPSF. En la imagen vamos seleccionando estrellas de varios sitios que no sean demasiado grandes (para evitar que esten sobreexpuestas). DPSF nos mostrará la distribución de las estrellas seleccionadas (Gaussian, Moffat, etc), el FWMH para x e y, y algunos datos más. Una vez que tenemos las estrellas que creamos necesarias (cuanto más mejor) las seleccionamos todas (yo prefiero seleccionar las que sean del tipo gaussian y borrar las de otros tipos con la x roja) y le damos a la esferita azul que está al lado del simbolo sumatorio. Esto nos creará una imagen con la PSF ideal de esa imagen y es la que utilizaremos para deconvolucionar.

http://farm7.static.flickr.com/6075/6104210499_791b77b811_b.jpg

Bueno ya podemos abrir deconvolution y seleccionar la pestaña External PSF, en View Identifier ponemos la imagen PSF que ha creado DPSF.

http://farm7.static.flickr.com/6193/6104219733_4c7516fef6_b.jpg

(En esta imagen se ven todos los parametros empleados y la imagen deconvolucionada)


A partír de aqui los pasos son comunes para todas las deconvoluciones (por lo tanto tambien a la que hacemos a ojo).

Al aplicar la deconvolución nos vamos a encontrar con dos problemas fundamentales: el ruido y el efecto ringing.

Ruido:

Cuando deconvolucionas una imagen sin una máscara, deconvolucionas las partes con más señal y el fondo, como el fondo tiene mucho ruido lo que ocurre es que este empeora y provoca artefactos no deseados. Para evitar esto siempre aplicaremos la deconvolución a las partes de más señal y protegeremos con una máscara las zonas de fondo. Tambien podemos subir moderadamente Global Bright en deringing para evitar esto.

Ejemplo de ruido de fondo:

http://farm7.static.flickr.com/6083/6104210579_e89ba5b222_b.jpg

Ringing

Para evitar el ringing ( o peor aún el efecto Gibbs) deberemos activar Deringing y jugar con global dark y global bright hasta que estemos satisfechos con el resultado y no se aprecie ningún circulo oscuro. Subiendo Global bright moderadamente tambien evitaremos que se produzca ruido de fondo. Además siempre hay que utilizar Local deringing con una máscara de estrellas. La aplicación de todos estos parametros son los que garantizan una aplicación correcta de Deconvolutión.

Si no usamos deringing puede ocurrirnos esto:

http://farm7.static.flickr.com/6187/6104210721_be5bf56b55_b.jpg


El resto de parametros podemos dejarlos como están. Para imágenes de cielo profundo el algoritmo que mejor funciona es el Regularized Richardson Lucy (yo es el que uso para todo). Lo usamos solo en luminancia pues aplicarlo a los 3 canales no aporta nada. Como el algoritmo es regularizado pues se activa el Wavelet Regularization que no es mas que un control de ruido. Los numeritos son las capas, normalmente el ruido esta en las capas 1 y 2 y estas son las que estan activadas por defecto. Noise threshold es el umbral de ruido, los valores por defecto funcionan bien y no hay que tocarlos. Noise reduction es la cantidad con que se aplicará la reducción de ruido, los valores por defecto funcionan bien. Si nos empeñasemos en deconvolucionar una imagen con ruido tendriamos que subir los Noise threshold y Noise reduction o incluso activar alguna capa más pero no suele merecer la pena. De Dynamic Range Extension nos olvidamos por completo pues normalmente tenemos suficiente rango dinámico.

Ahora vamos a aplicar la deconvolucion para ello creamos primero la mascara general y la creamos extrayendo la luminancia y estirandola (un estirado automatico es suficiente), en algunas imágenes tendremos que ajustarla luego con curvas para que la deconvolución no afecte a las zonas debiles.

Para crear la mácara de estrellas para el Local deringing vamos a usar una herramienta nueva RangeSelection, lo bueno de esta herramienta es que podemos hacer una mascara en un momento por medio del preview que tiene y tocando los controles. Vamos a ver:

http://farm7.static.flickr.com/6065/6104210769_0c9cf7b3fb_b.jpg

La herramienta es tan intuitiva que no necesita explicación.


Una vez aplicada la mascara general y la mascara de estrellas en local derringing ya podemos aplicar a la imagen. El único parametro que no hemos explicado son las iteraciones. ¿cuantas hacen falta? Pues depende de la imagen. Para nuestras imágenes yo no subiria mas de 25 o 30 iteraciones. Hay que parar cuando veamos que se crean artefactos o el deringing no actua correctamente.

Todo esto lo probamos en varios previews de la imagen porque la deconvolución suele llevarse su tiempo y si hiciesemos pruebas en toda la imagen nos darían la uvas.

http://farm7.static.flickr.com/6071/6104210639_808a5230ff_b.jpg

http://farm7.static.flickr.com/6189/6104755474_d24bd4d4db_b.jpg


A veces la deconvolución no es muy evidente pero produce unos cambios sutiles que hacen que la imagen gane mucho al final del procesado.

Por ultimo quiero recordar que la forma correcta de aplicar Deconvolution es con la imagen en lineal y con un espacio de trabajo RGB lineal *, pero se puede usar después de estirar como una máscara de enfoque siguiendo los mismos criterios y el sentido común.

Espero que este peñazo aclare un poco las cosas.

Silvercup.



* El tutorial oficial sobre deconvoluciones en PIXI es este: http://www.pixinsight.com/examples/deconvolution/Gemini-NGC5189/en.html. En el paso 4 se explica como establecer un espacio RGB Lineal (Linear RGB working Space).

Avatar de Usuario
Tomaset
Mensajes: 2902
Registrado: 28 Feb 2008, 00:00
Ubicación: El Grau de Castelló
Contactar:

Re: Deconvoluciones con Pixi

Mensajepor Tomaset » 02 Sep 2011, 05:41

Leído, empapado e imprimido, gracias maestro, le tenia ganas a esta herramienta, lo único que me salia era girar las estrellitas, lo demás... cero patatero, gracias otra vez :hello1:
cierrabares.com

"No soy borde, simplemente tengo alergia a los gilipollas"....(C. Chaplin)

Avatar de Usuario
Tomaset
Mensajes: 2902
Registrado: 28 Feb 2008, 00:00
Ubicación: El Grau de Castelló
Contactar:

Re: Deconvoluciones con Pixi

Mensajepor Tomaset » 02 Sep 2011, 13:44

bocachancla escribió:¿como puedo ejecutar el script?

Un saludo.


Desde el editor de scripts, File/New/JavaScript source file, despues de pegarlo dale a F9 y ya lo tienes compilado, guardalo donde quieras y despues lo puedes ejecutar desde el menú superior Script/Execute script file
cierrabares.com

"No soy borde, simplemente tengo alergia a los gilipollas"....(C. Chaplin)

Avatar de Usuario
emidai
Mensajes: 136
Registrado: 29 Jun 2011, 20:23
Contactar:

Re: Deconvoluciones con Pixi

Mensajepor emidai » 02 Sep 2011, 15:06

Gracias Silvercup por explicar la herramienta deconvolution, a practicar voy
Última edición por emidai el 02 Sep 2011, 15:21, editado 1 vez en total.

Avatar de Usuario
Silvercup
Mensajes: 322
Registrado: 05 May 2010, 14:34

Re: Deconvoluciones con Pixi

Mensajepor Silvercup » 02 Sep 2011, 15:06

Hola:

El script esta dentro de los scripts que tiene pixi. La del post es la primera version.

Está en Scripts->Utilities->DeconvolutionPreview.

Usad un preview relativamente pequeño para que no tarde mucho pues el Script hace 30 iteraciones por cada deconvolución. Con los parametros por defecto os podeis hacer una idea de como saldrá la deconvolución.

Hay que tener en cuenta que el Script te dara los resultados en lineal, por lo que tendras que usar STF. Por otra parte, no tiene soporte deringing por lo que se pueden producir en la imagen con los ejemplos, pero te dá una idea de los parametros StdDev y Shape que hay que emplear, luego es solo ajustar los demás parametros y las máscaras para evitar el ringing en la imagen principal.

Silvercup.

Avatar de Usuario
Tomaset
Mensajes: 2902
Registrado: 28 Feb 2008, 00:00
Ubicación: El Grau de Castelló
Contactar:

Re: Deconvoluciones con Pixi

Mensajepor Tomaset » 02 Sep 2011, 17:57

bocachancla escribió:¿Cuanta memoria RAM necesita este Script?

Yo tengo 1 GB y me manda a por uvas.


Eso es muy poco, yo tengo 4Gb y muchas veces me manda a por peras :lol: , bueno, eso con la 5DMk2, con la 550D supongo que no..... :(
cierrabares.com

"No soy borde, simplemente tengo alergia a los gilipollas"....(C. Chaplin)

Avatar de Usuario
Tomaset
Mensajes: 2902
Registrado: 28 Feb 2008, 00:00
Ubicación: El Grau de Castelló
Contactar:

Re: Deconvoluciones con Pixi

Mensajepor Tomaset » 03 Sep 2011, 17:43

bocachancla escribió:Soy un torpe, no encuentro DPSF.

¿Anone taaaa?

Un saludo


Script/Utilities/DeconvolutionPreview
cierrabares.com

"No soy borde, simplemente tengo alergia a los gilipollas"....(C. Chaplin)

Volver a “Técnicas de Astrofotografía”