| Tutorial de PixInsight Standard Reducción de Ruido con ACDNR Por Juan Conejero (PTeam) Datos originales de M45 adquiridos por Vicent Peris (PTeam) y José Luis Lamadrid |
|
:: PixInsight Home
Page Descripción
de ACDNR Parámetros de Protección de Bordes de ACDNR Máscara de Luminancia de ACDNR Ejemplo de Procesamiento ACDNR: Imagen DSLR de M45 Pasos Iniciales de ProcesamientoPaso 1: Modelización y Corrección del Fondo Paso 2: Ajuste No-lineal Inicial con HistogramTransform Paso 3: Espacio de Trabajo RGB (RGBWS) Reducción de Ruido de Pequeña Escala: Comparaciones Paso 4: Definir una Máscara de Luminancia ACDNR Paso 5: Definir Párámetros ACDNR para Luminancia y Crominancia Paso 6: Ajuste de Histograma Tras la Reducción de Ruido Correcciones Selectivas de Color y Saturación de Color: Comparaciones Paso 7: Construir una Máscara para Corrección Selectiva de Color Paso 8: Corrección Selectiva de Color Paso 9: Construir una Máscara de Estrellas para Ajuste Selectivo de Saturación de Color Paso 10: Ajuste Selectivo de Saturación de Color Reducción de Ruido de Gran Escala: Comparaciones Paso 11: Definir una Máscara de Luminancia ACDNR para Reducción de Ruido de Gran Escala Paso 12: Reducción de Ruido de Gran Escala con ACDNR Imagen Final Procesada Tamaño original, 2100x2100 píxeles, 1.55 MB1200x1200, 775 KB 800x800, 437 KB |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
En este tutorial presentamos el nuevo algoritmo ACDNR y su implementación en PixInsight Standard. ACDNR significa Adaptive Contrast-Driven Noise Reduction (reducción de ruido adaptativa controlada por contraste). Comenzaremos con una descripción de esta importante herramienta y sus parámetros, y completaremos el tutorial con un ejemplo de procesamiento. La herramienta ACDNR es una implementación muy flexible de un nuevo algoritmo de reducción de ruido de altas prestaciones, basado en técnicas avanzadas de procesamiento multiescala y morfología matemática. El algoritmo ACDNR ha sido creado por el equipo de desarrollo de Pleiades Astrophoto (PTeam) y es el fruto de más de dos años de trabajo continuado de investigación y desarrollo. En el momento de escribir este tutorial, ACDNR está disponible como parte del juego de procesos estándar de la versión beta pública de tiempo limitado de PixInsight. Esperamos continuar mejorando tanto el algoritmo ACDNR como nuestra implementación; la respuesta de nuestros usuarios es esencial para poder llevar a cabo esta tarea. La idea tras ACDNR —como cualquier algoritmo no trivial de reducción de ruido— es llevar a cabo una reducción de ruido eficiente preservando al mismo tiempo las estructuras significativas de la imagen. Como su nombre sugiere, ACDNR es capaz de adaptarse a la imagen procesada modificando su comportamiento en función de las variaciones de contraste detectadas. ACDNR incluye dos mecanismos que
funcionan cooperativamente: un filtro paso-bajo especial y un
dispositivo de protección de bordes. Explicado de forma
sencilla, el filtro paso-bajo suaviza la imagen eliminando o atenuando
estructuras de pequeña escala, y el dispositivo de
protección de bordes evita que las estructuras
significativas de la imagen sean dañadas por el filtrado
paso-bajo. Se puede considerar ACDNR como un sistema con dos fuerzas
contrarias, trabajando en direcciones opuestas: el filtro paso-bajo
tiende a simplificar la imagen destruyendo características
de pequeña escala irrelevantes (esto es, el ruido), y el
dispositivo de protección de bordes intenta evitar la
destrucción de elementos importantes impidiendo el
funcionamiento del filtro paso-bajo cuando encuentra variaciones de
contraste relevantes.
ACDNR ofrece dos conjuntos idénticos de parámetros: uno para la luminancia y otro para la crominancia de imágenes en color. Los parámetros de ACDNR para la crominancia se aplican a las componentes a y b del espacio de color CIE Lab. Los parámetros para la luminancia son aplicados a la componente L de Lab para imágenes en color, y también al canal nominal de las imágenes en escala de grises. En general, los parámetros para la crominancia son mucho menos críticos y pueden definir una reducción de ruido más potente que los parámetros para la luminancia. Esto es así porque el sistema humano de visión es bastante ineficaz detectando estructuras de imagen definidas por variaciones en la crominancia: percibimos casi todo el detalle a través de la luminancia. Sin embargo, esto no quiere decir que podamos descuidar el ajuste preciso de los parámetros de reducción de ruido para la crominancia, ya que al hacerlo podemos causar pérdidas severas de información, especialmente para estructuras relativamente pequeñas con alto contenido de crominancia, como son las estrellas en imágenes de cielo profundo. ACDNR realiza las separaciones entre luminancia y crominancia, como hacen todos los procesos estándar de PixInsight, mediante espacios de color definidos colorimétricamente y rigurosamente implementados. Las conversiones a/desde el espacio de color CIE Lab tienen lugar en el espacio de trabajo RGB actual (RGB Working Space, RGBWS) de la imagen procesada. El RGBWS se puede definir con el proceso estándar RGBWorkingSpace y su interfaz, disponible bajo la categoría ColorSpaces. Ambos juegos de parámetros ACDNR (luminancia y crominancia) se dividen en dos secciones: parámetros del filtro y parámetros de protección de bordes.
Definimos un borde como una variación de brillo que el dispositivo de protección de bordes intenta preservar frente a los efectos adversos del filtrado paso-bajo. Si consideramos un borde como el lugar donde ocurre una variación de brillo, entonces para cada borde existe un lado oscuro y un lado brillante, dependiendo del sentido en que lo crucemos. La protección de bordes de ACDNR permite controlar su comportamiento independientemente para ambos lados de los bordes protegidos. Para cada lado de un borde, existe un par de parámetros idénticos: umbral (threshold) y sobrecarga (overdrive).
Además de parámetros específicos para la protección de bordes, ACDNR incluye tres parámetros adicionales que controlan el comportamiento general del dispositivo de protección de bordes: método de mejora de la robustez, tamaño mínimo de estructuras, y prefiltrado.
Hemos implementado una funcionalidad adicional para mejorar la aplicabilidad y flexibilidad de ACDNR. Es una máscara de luminancia invertida que modula el trabajo de reducción de ruido. Donde la máscara es cero (negra), los píxeles originales (no procesados) se conservan completamente; donde la máscara es uno (blanca) la reducción de ruido actúa por completo. Donde la máscara tiene valores intermedios de gris los valores de píxel originales y procesados se mezclan proporcionalmente. Esta máscara puede ser útil para proteger zonas con alta relación señal/ruido mientras se aplica una fuerte reducción de ruido en áreas con escasez de señal. Un ejemplo típico de esto es suavizar el fondo de una imagen de cielo profundo mientras las regiones más brillantes quedan intactas. La máscara de ACDNR
es generada y controlada con la ayuda de tres parámetros: balance
de medios tonos, recorte de sobras y recorte
de altas luces. Estos parámetros definen una
transformación de histograma que se aplica a una copia de la
luminancia de la imagen que se usa para enmascarar el proceso de
reducción de ruido. Hay que tener en cuenta que se genera
una máscara invertida, con lo cual estos
parámetros funcionan al revés
de lo que sería habitual en el histograma de la imagen. Con
un poco de práctica desaparecen todos los problemas en este
sentido. Para permitir construir una máscara
óptima con un mínimo esfuerzo, la interfaz de
ACDNR incluye un modo especial de previsualización
de máscara. Cuando este modo está
activado, ACDNR simplemente genera la máscara, la copia a la
imagen destino, y termina su ejecución. Este modo de
previsualización de máscara es especialmente
útil utilizado conjuntamente con la interfaz de
previsualización en tiempo real (Real-Time Preview).
Esta imagen es un test de la óptica y no ha sido calibrada: no se han aplicado tomas oscuras (darks) ni flats. En consecuencia, las imágenes originales tienen fuertes gradientes y una cierta cantidad de píxeles calientes y fríos (hot pixels y cold pixels). Las dos imágenes raw fueron cargadas, debayerizadas, y convertidas al formato de punto flotante de 32 bits con el proceso SampleFormatConversion. Normalmente, el formato entero de 16 bits es suficiente para llevar a cabo procesamientos moderadamente complejos. Sin embargo, la plataforma PixInsight permite utilizar cinco formatos de datos de forma transparente: enteros de 8, 16 y 32 bits, más punto flotante IEEE 754 de 32 y 64 bits. Transparente significa aquí que todos los procesos disponibles pueden trabajar indistintamente (al margen de las diferencias inherentes de precisión numérica) con cualquiera de los cinco formatos de datos soportados.
Tras la conversión al formato de punto flotante de 32 bits, las imágenes raw fueron registradas con DynamicAlignment y promediadas con PixelMath. Ahorraremos al lector los detalles de estos procesos, que son bastante sencillos.
Hemos aplicado dos iteraciones del proceso DynamicBackgroundExtraction (DBE), restando los modelos sintéticos del fondo generados mediante PixelMath.
Primera aplicación de DBE. La interfaz de ScreenTransferFunction nos ha permitido ver la imagen original sin modificarla. De esta forma hemos podido generar un modelo de fondo para la imagen lineal, antes de aplicar cualquier transformación no lineal a los valores de píxel originales. Comenzamos generando una matriz de muestras DBE automáticamente. El sistema de rechazo estadístico de DBE evitó casi todas las muestras sobre M45 y su nebulosidad circundante. Sin embargo, para minimizar la contribución de la nebulosidad de reflexión al modelo del fondo generado, eliminamos manualmente algunas muestras alrededor de las zonas centrales. Añadimos también manualmente unas pocas muestras sobre la zona de la esquina inferior izquierda, donde el sistema de rechazo de DBE no situó muestras automáticamente al considerarla demasiado diferente del fondo típico de la imagen. Todo el procedimiento quedó completado en menos de cinco minutos.
Primera corrección del fondo. El modelo sintético del fondo ha sido restado de una copia de la imagen original. El resultado es bastante bueno, salvo por un gradiente residual, visible como una banda horizontal cerca de la parte inferior. Trataremos de eliminarlo mediante una segunda iteración de DBE.
Segunda aplicación de DBE. Los gradientes de fondo residuales son ahora muy débiles. Aparecen tan exagerados debido a la agresiva función de transferencia de pantalla utilizada, que hemos ajustado aquí al límite. Tomamos la misma instancia de DBE utilizada en la aplicación anterior como punto de partida para ésta. Esto fue posible, por supuesto, porque guardamos la instancia de DBE previa como un icono de proceso. Esta vez añadimos manualmente más muestras sobre áreas particularmente difíciles, como la banda horizontal en la parte inferior, y algunas regiones con variaciones de color relativamente fuertes.
Segunda corrección del fondo. De nuevo, el modelo sintético del fondo, que se puede ver en la esquina inferior izquierda de la Figura 9, ha sido restado de la imagen resultante de la primera corrección. El resultado, en la esquina inferior derecha, es más uniforme, aunque aún no es perfecto. Téngase en cuenta sin embargo, que las imágenes están siendo mostradas aquí tremendamente realzadas mediante agresivas funciones de transferencia de pantalla. Podríamos ir más lejos perfeccionando el proceso de modelización y corrección del fondo, pero pensamos que lo que tenemos aquí es razonablemente bueno para una imagen DSLR sin calibrar.
La Figura 10 muestra el ajuste de histograma incial aplicado, con la interfaz HistogramTransform trabajando en modo de previsualización en tiempo real. Hemos sido muy cuidadosos para evitar recortar demasiados píxeles del fondo en esta etapa: fíjese en el punto de recorte en las sombras localizado justo donde comienza el pico principal del histograma. El fondo está fuertemente dominado por el ruido en este momento, y poner muchos píxeles del fondo a cero ahora complicaría mucho una reducción de ruido posterior. Al recortar píxeles del fondo se incrementa mucho el contraste entre píxeles del ruido adyacentes. Los algoritmos de reducción de ruido, especialmente aquéllos basados en gradientes locales de contraste como ACDNR, pueden tener dificultades intentando distinguir estructuras significativas bajo esas circunstancias. Una vez que hayamos aplicado la reducción de ruido seremos capaces de ajustar la imagen apropiadamente, como demostraremos más adelante.
Nuestro siguiente paso consiste en establecer un espacio de trabajo RGB (RGB Working Space, RGBWS) uniforme. Un RGBWS uniforme tiene los tres coeficientes de luminancia iguales. Este paso es importante porque el RGBWS determina cómo se realizan las separaciones entre luminancia y crominancia en PixInsight. Los coeficientes de la luminancia funcionan como pesos relativos para determinar la contribución de cada color a la luminancia de la imagen. La mayoría de los procesos en PixInsight trabajan con la luminancia y la crominancia por separado, y ACDNR no es una excepción. Con un RGBWS uniforme estamos indicando que los tres colores de RGB tienen la misma importancia para el cálculo de la luminancia en esta imagen. Esto nos va a permitir acumular más información en la luminancia, donde el detalle de la imagen va a ser realmente visible.
En la tabla siguiente hemos incluido unas comparaciones mouseover que le ayudarán a evaluar nuestros resultados de reducción de ruido con ACDNR. Estamos bastante satisfechos, pero ninguna técnica de procesamiento de imágenes proporciona resultados perfectos, y por supuesto nuestra implementación no es una excepción en este sentido. En estas comparaciones, observe cómo todo el ruido de pequeña escala ha sido virtualmente eliminado, mientras las estructuras significativas de la imagen han sido bien protegidas y permanecen tanto en la luminancia como en la crominancia. Éste debe ser el objetivo fundamental de cualquier proceso de reducción de ruido serio. Las estrellas brillantes muestran cruces de difracción coloreadas en la imagen original, formadas por el soporte del espejo secundario del telescopio reflector utilizado. Nuestra reducción de ruido ha eliminado la mayor parte del color en estos destellos. Tenga en cuenta que este efecto colateral es intencionado, puesto que no nos gustan los destellos de difracción coloreados (nos gustan los destellos de difracción, pero cuando tienen colores pensamos que roban protagonismo a los objetos astronómicos representados).
Paso 4: Definir una Máscara de Luminancia ACDNR
Una reducción de ruido eficiente no es tarea fácil para esta imagen de las Pléyades. Lo que convierte a esta imagen en un objetivo difícil es el hecho de que existen detalles muy finos definidos por variaciones sutiles de contraste, pero al mismo tiempo hay cantidades relativamente grandes de ruido sobre el fondo y sobre áreas extensas cubiertas por nebulosidad débil. Normalmente, ACDNR no necesita una máscara para funcionar eficientemente. Esto es cierto para la mayoría de imágenes de cielo profundo. Sin embargo hay casos difíciles, como el utilizado en este ejemplo, donde la protección de una máscara es necesaria para conseguir una reducción de ruido adecuada en todas las partes y elementos de la imagen simultáneamente. Por esta razón hemos implementado una herramienta para facilitar la generación de máscaras de luminancia en la interfaz de ACDNR. Como se puede comprobar en la Figura 13, la máscara de luminancia generada limitará la reducción de ruido en las zonas más brillantes de las nebulosas, donde la relación señal/ruido es relativamente alta y hay estructuras delicadas que necesitan protección adicional.
Paso 5: Definir Parámetros ACDNR para Luminancia y Crominancia Como hemos dicho anteriormente en este documento, ACDNR proporciona dos juegos idénticos de parámetros: uno para la luminancia y otro para las componentes de la crominancia. Cada juego debe ser definido por separado para imágenes en color.
Éste es el procedimiento general para aplicar ACDNR a imágenes en color:
Comenzamos trabajando con la luminancia. En la Figura 14 se puede ver cómo los parámetros ACDNR para la luminancia están siendo ajustados utilizando la técnica separada que hemos explicado arriba.
Cuando los parámetros de ACDNR para la luminancia han sido definidos con precisión, procedemos con la crominancia. De nuevo utilizamos la técnica separada que hemos explicado al inicio de esta sección. En la Figura 15 se puede ver cómo se usa el modo de representación "Crominancia a/b" (Chrominance a/b). Este modo está siendo utilizado para visualizar la crominancia de la imagen. Ésta es la forma más efectiva de trabajar con los parámetros de ACDNR para la crominancia. Recuerde que en este modo el rojo y el verde representan a las componentes a y b, respectivamente, del espacio de color CIE Lab.
Finalmente, debemos verificar cómo funciona nuestra instancia de ACDNR con varias previsualizaciones definidas en nuestra imagen. Ambos juegos de parámetros (luminancia y crominancia) deben ser activados (ambas casillas Aplicar (Apply) activadas), y el modo normal de representación (RGB) debe estar seleccionado.
Paso 6: Ajuste de Histogramas Tras la Reducción de Ruido
Tras una eficiente reducción de ruido, ninguna parte de la imagen está ahora dominada por el ruido. Esto es particularmente evidente en el fondo del cielo y otras áreas oscuras de la imagen, donde la relación señal/ruido era muy baja. Una consecuencia directa de esto es que ahora el histograma muestra un bonito segmento sin utilizar en su extremo izquierdo, correspondiente a las sombras. Decimos que es bonito porque nos permite incrementar el contraste general de la imagen sin perder datos. En otras palabras, ahora podemos utilizar el histograma para ajustar la imagen como sea necesario, ya que el histograma ya no está dominado por el ruido, sino únicamente por datos significativos.
Paso 7: Construir una Máscara para Corrección Selectiva de Color
En el paso siguiente vamos a aplicar una corrección de color para mejorar el color azul de la nebulosidad de reflexión. Sin embargo, queremos aplicar esa corrección a las áreas más iluminadas de la imagen exclusivamente, no al fondo. El fondo es neutral ahora, y no queremos que deje de serlo de ninguna manera. Así que lo que queremos es aplicar algunos procesos selectivamente, limitando sus efectos a las áreas apropiadas de la imagen. Para conseguir esto se debe utilizar una máscara en PixInsight.
Paso 8: Corrección Selectiva de Color
Como hemos dicho, queremos que la nebulosidad de reflexión sea más azul en esta imagen. En nuestra opinión, es demasiado cián. El exceso de verde se puede corregir de varias maneras. Una bastante obvia es mediante un conjunto de curvas aplicadas con el proceso CurvesTransform. Esto funcionaría sin duda, pero en este caso queremos probar algo nuevo. El proceso SCNR (reducción sustractiva de ruido cromático, Subtractive Chromatic Noise Reduction) ha sido diseñado para eliminar ruido verde en imágenes de cielo profundo. Puede leer más acerca del algoritmo SCNR en una sección específica de la documentación oficial de PixInsight LE. La implementación de SCNR que hemos incluido en el juego de procesos por defecto de PixInsight Standard añade nuevas funciones con respecto a la versión incluida en PixInsight LE. Una de ellas es un nuevo método de protección, mínimo neutral, que se puede usar en casos como éste con buenos resultados. Tenemos que advertir que este uso de SCNR no es ortodoxo, pero ciertamente funciona muy bien. Siempre queremos tener la mente abierta para descubrir nuevas estrategias de procesamiento, y ésta es sólo una de esas cosas frescas que nacen de nuestra imaginación. En la Figura 20 se puede ver cómo una dosis adecuada de SCNR con protección del tipo mínimo neutral logra el tono exacto de azul que estábamos buscando. Por descontado, la máscara de luminancia que hemos construido en el paso anterior es esencial aquí para evitar la alteración del fondo, cuya neutralidad queremos conservar.
¿Qué tal incrementar los colores de las estrellas? Hay muchas estrellas rojas en esta imagen que contrastan maravillosamente con el azul dominante. Éste es el tipo de cosas que perseguimos cuando procesamos una excelente astrofotografía, como la imagen de M45 que estamos usando en este ejemplo. Ciertamente no podemos resistir la tentación de incrementar la saturación de color para las estrellas. Sin embargo, esto no es una tarea simple: si incrementásemos la saturación de color para toda la imagen obtendríamos un completo desastre. Las nebulosas brillantes quedarían sobresaturadas, y una gran cantidad de ruido en la crominancia se originaría sobre el fondo. Así que una vez más tenemos que usar una máscara especial para aplicar la transformación de saturación de color que queremos sólo donde es necesaria. Necesitamos una máscara que incluya sólo las estrellas de la imagen. Pero aún más: no queremos saturar las estrellas más brillantes de M45, puesto que éstas ya están bastante saturadas en brillo. La herramienta ideal para construir máscaras de estrellas es el proceso ATrousWaveletTransform en PixInsight. Con los wavelets podemos aislar las estructuras de la imagen en un rango de escalas determinado. Hemos diseñado muchas técnicas basadas en procesamiento multiescala para construir máscaras de estrellas. Una de ellas, bastante sencilla pero muy eficiente en la mayoría de los casos, puede verla en acción en la Figura 21. Preste especial atención a los siguientes aspectos de la transformación de wavelets (necesitará ver la Figura 21 a tamaño completo):
Para terminar, la máscara puede ser ajustada mediante HistogramTransform, si es necesario (por ejemplo para recortar objetos no estelares débiles que hayan podido colarse en la máscara), y también se puede aplicar otra transformación por wavelets para eliminar capas de pequeña escala, con el fin de suavizar los bordes de las estrellas.
La Figura 22 muestra la curva de saturación que hemos aplicado. Esta curva define un incremento de saturación tremendamente agresivo para los píxeles que están poco saturados. Por supuesto que esta transformación sería completamente inviable sin la ayuda de la máscara de estrellas que hemos construido en el paso anterior.
Las comparaciones mouseover en la tabla siguiente muestran claramente lo que llamamos ruido de gran escala, así como la forma en que hemos conseguido reducirlo con ACDNR. El ruido de gran escala afecta a las áreas con baja relación señal/ruido, especialmente al fondo del cielo y a las regiones nebulares más débiles. ACDNR con un filtro de gran tamaño y una apropiada protección mediante una máscara de luminancia bien construida puede entendérselas con este tipo de ruido muy eficazmente.
Observe en la Figura 24 cómo la máscara de ACDNR para reducción de ruido de gran escala es muy restrictiva. Esto es porque este tipo de ruido sólo existe en áreas de baja relación señal/ruido, las cuales corresponden a las zonas menos iluminadas de la imagen: el fondo del cielo y las partes más débiles de las nebulosas. Por lo tanto, sólo esas áreas deben quedar desprotegidas por las máscaras para reducción de ruido de gran escala. Recuerde que las zonas desprotegidas son siempre las zonas blancas en la máscara. Por otra parte, se necesita un filtro de ACDNR bastante grande para actuar sobre este tipo de ruido, ya que éste se caracteriza por estructuras relativamente grandes. Sin la adecuada protección, la agresividad del filtro requerido destruiría las estructuras de pequeña escala y los finos detalles en las nebulosas.
En la Figura 25 tenemos el procedimiento de reducción de ruido de gran escala que hemos aplicado. El filtro utilizado es grande y muy agresivo: tres iteraciones y desviación estándar de cinco píxeles. La Figura 25 muestra los parámetros para la luminancia; los parámetros para la crominancia son muy similares. La máscara de luminancia que construimos en el paso anterior ha sido activada en los parámetros de ACDNR tanto para la luminancia como para la crominancia. Esto nos asegura que sólo las regiones con menor relación señal/ruido van a ser suavizadas. Adicionalmente, observe que la protección de bordes de ACDNR ha funcionado a la perfección con un filtro tan agresivo, incluso en las zonas desprotegidas de la imagen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||