Foro Astrónomo.org

/ objeto astronómico / => · Deep Sky, Nebulosas y objetos de la Vía Láctea, Galaxias.

que corresponde a: / categoría / => board
topic n: 31499 del foro www.Astronomo.org
url: "https://www.astronomo.org/foro/index.php?PHPSESSID=opbn4m292cs8p1uvja1qpausm2&topic=31499.0"


metaTítulo: y resp.#0: [h1]Tutorial PixInsight: Inside Starnet++[/h1]
* la metadescripción son los 170 primeros caracteres del primer post del topic - habitualmente entre etiqueta [color=beige ....
Publicado por: H-Alfa en Lun, 25 Ene 2021, 13:54 UTC
Hola a todos!

Quería compartir aquí un nuevo artículo que he publicado, en el que explico mis experiencias con esta maravillosa herramienta. Algunos probablemente ya lo hayáis visto en Astrobin y Cloudy Nights, pero quería también dejarlo aquí para quien no se suela mover por esas comunidades.

[url=https://aiastro.wordpress.com/2020/12/02/inside-starnet-wip/]https://aiastro.wordpress.com/2020/12/02/inside-starnet-wip/[/url]

El artículo se divide en dos partes principales:

-La primera de ellas, es un análisis del proceso, buscando los parámetros y procesos previos a la aplicación de starnet++ en una busqueda de conseguir el mejor resultado posible.
[img width=1200 height=913]https://cdn.astrobin.com/ckeditor-files/26559/2021/d5eecbe3-7e44-47be-85fb-5c2693582ebb.png[/img]

-La segunda parte es una propuesta de flujo de trabajo para refinar el resultado de starnet++, intentndo dejar la imgen lo más limpia posible, lo que al final permite hacer un procesado más agresivo para, por ejemplo, poder rescatar estructuras más ténues.
[img width=1200 height=474]https://cdn.astrobin.com/ckeditor-files/26559/2021/50463c72-94d9-47f3-bb8c-29471b710c26.png[/img]

Durante la investigación desarrollé algunos procedimientos que creo que puedes ser de interés, los cuales apunto aquí:

[b]Técnica de transferencia de píxeles[/b]

Como la mayoría probablemente sabéis, starnet ++ literalmente resta las estrellas de nuestra imagen. Eso significa que podemos expresar el resultado como una expresión matemática como la siguiente:

L_NLT = L_sn0 + L_st0

dónde

L_NLT = Imagen original (Transformada a no lineal)
L_sn0 = Imagen Starless
L_st0 = Imagen Starmask (aquí utilizo el término Starmask para simplificar, pero sería más preciso llamarlo "imagen de estrellas solamente")

A tener en cuenta que la notación es completamente arbitraria.

Esta simple expresión abre una amplia gama de operaciones avanzadas. La más simple, que supongo que casi todo el mundo usa, sería que no necesitamos volver a aplicar Starnet en modo Starmask para producir nuestra Starmask. En lugar de esto, simplemente restamos la imagen sin estrellas de la original mediante PixelMath:
[img]https://cdn.astrobin.com/ckeditor-files/26559/2021/6669bf9f-7c6f-4bbd-afe8-3c688f8cd751.png[/img]
Tener en cuenta que Rescale no está marcado. Esto es obligatorio para nuestros propósitos.

Esto es fácil y eficiente, pero hay muchas más cosas que podemos hacer aprovechando ese procedimiento. Veamos algunos ejemplos que están completamente cubiertos en el artículo.

[b]Recuperación de detalles[/b]
A veces, starnet considera las estructuras DSO brillantes como estrellas, eliminándolas total o parcialmente. Normalmente, es posible que deseemos recuperarlos, y esto se puede hacer siguiendo el siguiente flujo de trabajo, aprovechando la técnica de transferencia.

[img width=1200 height=628]https://cdn.astrobin.com/ckeditor-files/26559/2021/d388340b-77c8-4e2b-a275-ee7d7cecdefc.png[/img]

Lo que hacemos aquí es utilizar la imagen starless para producir la starmask (L_sn0). En ella debemos buscar detalles no deseados, y eliminarlos con Clone Stamp. Luego transferimos estos detalles a una imagen sin estrellas mejorada restando la starmask mejorada (L_sn) de la imagen original (L_NLT).

[b]Starmask absoluta[/b]

Creo que todos se han dado cuenta de que en la starmask producida por starnet ++, algunas de las estrellas están más apagadas de lo normal, es decir, el brillo de sus núcleos no es de 1.000.

[img width=1200 height=461]https://cdn.astrobin.com/ckeditor-files/26559/2021/e00252a8-be7f-43ed-b506-f6e15671ae93.png[/img]

[i][b]Izquierda:[/b] medición del brillo justo al lado de una estrella, antes de la aplicación de starnet ++ (K = 0,846)
[b]Derecha:[/b] Medición del brillo del núcleo de la estrella después de la aplicación de starnet ++ (K = 0,269)[/i]

Esto no es un error, sino una consecuencia de lo mencionado anteriormente: el emparejamiento entre starless y starmask es una simple resta. Como consecuencia, la cantidad de brillo que falta en una estrella del núcleo es exactamente la cantidad de brillo de la nebulosidad detrás de ella (en la imagen sin estrellas). Llamo a esto que Starnet produce una máscara de estrellas relativa.

Este hecho hace que sea muy difícil, o directamente imposible, utilizar la máscara de estrellas tal cual, como máscara para reducción de estrellas, reducción de ruido u otros procesados que implican la necesidad de proteger las estrellas.
Para resolver esta particularidad, podemos transferir el brillo restante de la imagen sin estrellas usando una máscara de bypass y simplemente agregar la imagen sin estrellas a la máscara de estrellas. Esta operación iguala todos los núcleos estelares, sin saturarlos más de lo necesario (entendiendo saturar en el sentido de clipping, no como saturación de color, obviamente).

[img width=1200 height=541]https://cdn.astrobin.com/ckeditor-files/26559/2021/06a6cb63-7c4e-4fa5-994e-840e48ad4b54.png[/img]
[i][b]Left:[/b] Relative starmask
[b]Right:[/b] Absolute starmask[/i]

[b]Descomposición de la imagen[/b] (no contemplado en el artículo)

La técnica de transferencia descrita aquí tiene muchas posibilidades y puede llegar tan lejos como nuestra imaginación pueda.
Como ejemplo, estaba explorando el siguiente procedimiento, que no he llegado a incluir en el artículo (todavía estoy explorando).

A partir de nuestra imagen original, aplicamos starnet y emparejamos (llamo emparejar a crear la imagen complementaria, en este caso, la starmask), ahora tenemos:

L_NLT = Original
L_sn = Starless, producido por starnet ++
L_st = Starmask, producido por emparejamiento (Pixelmath)

... esto cumple la fórmula

[1] L_NLT = L_st + L_sn

Digamos que L_sn contiene halos, que no queremos, así que procesamos un clon de L_sn, eliminamos los halos y cambiamos el nombre a L_sn_nohalo, por tanto L_sn_nohalo es una imagen sin estrellas y sin halos
Ahora usamos Pixelmath para hacer L_sn - L_sn_nohalo y la imagen resultante son solo los halos, esto se puede renombrar como L_sn_onlyhalo y esto cumple ...

[2] L_sn = L_sn_nohalo + L_sn_onlyhalo

Combinando las fórmulas [1] y [2] obtenemos:

L_NLT = L_st + (L_sn_nohalo + L_sn_onlyhalo)

Así que hemos descompuesto la imagen en 3 partes y la imagen original se puede recuperar totalmente, y de manera 100% exacta, en una simple operación de PixelMath.
Pero, ¿y si hacemos L_NLT - L_sn_nohalo? El resultado será una máscara de estrellas CON halos (que por cierto, también puede ser útil).

Como veis, es un mundo de posibilidades. Yo por ejemplo he probado a descomponer la imagen del ejemplo en lo siguiente:

Estrellas, las cuales a su vez he separado (para crear mascaras y erosionar de manera independiente) en:
Estrellas enormes (con grandes halos y "glow"alrededor)
Estrellas grandes
Estrellas medianas
Estrellas pequeñas
Nebulosa
Galaxia

Esto hace que, por ejemplo puedo:
Erosionar cada "clase de estrella" en función de su tamaño sin crear artefactos en la nebulosa.
Aumentar la saturación de color de las estrellas de manera independiente para cada tamaño.
Procesar muy agresivamente la nebulosa (por ejemplo, aplicando una reducción de ruido tal que en un caso normal habría creado halos alrededor de las estrellas grandes o habría hecho desaparecer las más pequeñas)
Procesar la galáxia de manera totalmente independiente.

Espero que os haya pareciso útil. Cualquier duda, comentario o sugerencia es bienvenido!

Cuidaos! Un saludo.

Alberto.





Resp. #1: https://www.astronomo.org/foro/index.php?topic=31499.msg278686#msg278686
re.: Tutorial PixInsight: Inside Starnet++
Publicado por: boreack en Lun, 25 Ene 2021, 14:17 UTC
Lo de la técnica de transferencia no me termina de quedar claro. Qué diferencia hay entre tener la original, la Starmask y la resta de ambas (que generaría la starless) frente a aplicar el starnett++ directamente en la original sin la opción de máscara, obtener la starless y restarle esta a la original para obtener las estrellas?

En mi flujo de trabajo suelo emplear el primer caso. Genero la imagen de estrellas, uso el cloenstamp para quitar de ella partes brillantes que no son estrellas, la resto a la original, proceso la versión starless, proceso las estrellas y junto de nuevo.
El starnet lo aplico tras un estirado suave con MaskedStretch para que me coja todas las estrellas pero no haya ninguna saturada.

Un saludo.


Resp. #2: https://www.astronomo.org/foro/index.php?topic=31499.msg278687#msg278687
re.: Tutorial PixInsight: Inside Starnet++
Publicado por: AIP en Lun, 25 Ene 2021, 14:54 UTC
Fuá Alberto. Tremendo tutorial. Lo he leído así por encima y esta muy interesante. Cuando tenga algo de tiempo le dedico una lectura profunda y lo pondré en práctica. Muchas gracias compañero :ilusionado:


Resp. #3: https://www.astronomo.org/foro/index.php?topic=31499.msg278689#msg278689
re.: Tutorial PixInsight: Inside Starnet++
Publicado por: H-Alfa en Lun, 25 Ene 2021, 15:30 UTC
[quote author=boreack link=topic=31499.msg278686#msg278686 date=1611584273]
Lo de la técnica de transferencia no me termina de quedar claro. Qué diferencia hay entre tener la original, la Starmask y la resta de ambas (que generaría la starless) frente a aplicar el starnett++ directamente en la original sin la opción de máscara, obtener la starless y restarle esta a la original para obtener las estrellas?

En mi flujo de trabajo suelo emplear el primer caso. Genero la imagen de estrellas, uso el cloenstamp para quitar de ella partes brillantes que no son estrellas, la resto a la original, proceso la versión starless, proceso las estrellas y junto de nuevo.
El starnet lo aplico tras un estirado suave con MaskedStretch para que me coja todas las estrellas pero no haya ninguna saturada.

Un saludo.
[/quote]

Hola Boreack,

Gracias por comentar.

Creo que estamos hablando de lo mismo. Lo que comentas que haces creo que es lo que yo he indicado como recuperación de detalles. Precisamente la importancia de esta técnica es precisamente el hecho de que, una vez tenemos la starless, no hay diferencia entre generar la starmask con starnet, o con PixeMath. A partir de ahí, lo que comentaba. Este proceso de transferencia se puede utilizar creativamente para descomponer la imagen en estructuras aisladas, dando la oportunidad de aplicar procesos que de otro modo podrían crear artefactos en la imagen.

Respecto al uso de Masked Stretch, todo método es aceptable, pero si has leído el artículo, habrás visto que la conclusión sobre el método recomendado es que el mejor resultado se consigue utilizando el proceso recomendado por Nikita Misiura, el autor del programa. Llevo en contacto con él desde que empecé a investigar esta herramienta hace meses, y me confirmó que el programa, que está basado en Inteligencia Artificial, fue entrenado con imágenes en las que le aplicaba una simple transferencia de AutoSTF, con lo que este método es el que mejor "entiende" el programa. A partir de ahí está todo el tema que comento en el articulo de que se puede ir un poco más allá realizando el estirado en 3 pasos, separando los clippings del estirado con MTF, dando la oportunidad de relinearizar la imagen, y que en algunos casos (como el del ejemplo) puede ser beneficioso modificar un poco el estiramiento que propone STF (que deja el pico del histograma al 25%) y estirar un poco menos (18% fue el mejor resultado en mi caso).
Investigar otros métodos de estiramiento son, como digo, válidos igualmente, aunque yo te recomendaría simepre compararlos con la aplicción normal de STF para comprobar si es una mejora o no. En mi caso, no conseguí mejorar mis resultados mediante herramientas alternativas a HT, quizás por las características de la imagen... por eso es por lo que el articulo al final solo puede corroborar lo recomendado por Nikita.

Perdona, me ha salido un tocho...

Un saludo.


Resp. #4: https://www.astronomo.org/foro/index.php?topic=31499.msg278690#msg278690
re.: Tutorial PixInsight: Inside Starnet++
Publicado por: H-Alfa en Lun, 25 Ene 2021, 15:34 UTC
[quote author=AIP link=topic=31499.msg278687#msg278687 date=1611586442]
Fuá Alberto. Tremendo tutorial. Lo he leído así por encima y esta muy interesante. Cuando tenga algo de tiempo le dedico una lectura profunda y lo pondré en práctica. Muchas gracias compañero :ilusionado:
[/quote]

Gracias Alvaro!! Oye, si le das una vuelta a este tema y descubres algo más házmelo saber!! Me motiva mucho explorar el mundo starless. En mi opinión es un cambio de paradigma en el mundo del procesado y creo que todos (los que queramos) deberíamos estar como locos cacharreando esta nueva manera de procesar imágenes astronómicas.


Resp. #5: https://www.astronomo.org/foro/index.php?topic=31499.msg278694#msg278694
re.: Tutorial PixInsight: Inside Starnet++
Publicado por: boreack en Lun, 25 Ene 2021, 17:28 UTC
El problema que suelo tener con el STF es que las estrellas me las satura muy rápido, dejándomelas enormes. Por eso empleo el Masked Stretch. Tambien he intentado usar el AdaptativeStretch, pero para mi gusto (o porque no se usarlo bien) me queda la imagen estirada demasiado contrastada.
Tengo que probar lo que indicas de usar el HT por pasos ajustando los extremos y el punto medio, a ver si me da mejor resultado.

Un saludo.


Resp. #6: https://www.astronomo.org/foro/index.php?topic=31499.msg278695#msg278695
re.: Tutorial PixInsight: Inside Starnet++
Publicado por: H-Alfa en Lun, 25 Ene 2021, 18:27 UTC
Estoy totalmente de acuerdo, STF satura mucho, pero piensa que si eso te permite hacer una mejor extracción de las estrellas, luego puedes hacer lo que quieras con ellas. Puedes, por ejemplo, relinearizarlas y luego volverlas a estirar con Masked stretch, mientras la nebulosa la estiras, o con HT-MTF o incluso directamente con HT-Clipping si el nivel de brillo de la nebulosa es muy baja (me refiero en ADU's, no intrínsecamente).