Author Topic: Más sobre DBE  (Read 21459 times)

Offline Borja

  • Newcomer
  • Posts: 37
Más sobre DBE
« on: 2008 April 20 12:53:18 »
Hola.

Tengo entendido que la eliminación de gradientes y viñeteo mediante DBE es un proceso iterativo; es decir, que para eliminar el viñeteo, por ejemplo, podemos tener que hacer varios pasos de "extraerDBE-dividirDBE" hasta que el viñeteo quede totalmente eliminado (y lo mismo para los gradientes).

Comentándolo con algún compañero no quedó claro del todo.
Me podéis confirmar si esto es así o si sólo tiene sentido aplicar una división (para el viñeteo) y una resta (para los gradientes) ¿?

Saludos
    Francisco

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Más sobre DBE
« Reply #1 on: 2008 April 20 14:02:55 »
<English text below>

Hola Borja

Depende de la imagen. En la mayoría de las ocasiones no es necesario realizar varias iteraciones del proceso de eliminación de gradientes con DBE. Sólo suele ser necesario aplicar dos o tres iteraciones en dos casos:

* Cuando se trata de retirar gradientes muy abruptos (muy difíciles de modelizar por tener perfiles muy acusados).

* Cuando hay muy pocas zonas de cielo libres para situar muestras, o cuando es muy complicado determinar dónde situar las muestras, normalmente porque toda la imagen está repleta de nebulosidad.

En el segundo caso, en realidad se suelen utilizan varias iteraciones para poder determinar dónde se deben colocar las muestras correctamente. En cada iteración, se va haciendo más fácil visualizar las zonas libres. Después, cuando se tiene un buen conjunto de muestras, se lo aplicamos a la imagen original.

El el primer caso, se trata de lograr un perfil de iluminación constante en toda la imagen a base de atacar un problema muy difícil en varias fases. La interpolación que utiliza DBE es muy flexible, pero aún así hay casos en los que no es posible obtener un buen modelo del fondo de una sola vez.

Para hacer varias iteraciones es necesario guardar la instancia de DBE como un icono de proceso. Después podrás cargar el icono al hacer la segunda iteración, y tal vez refinar la posición de las muestras.

Thomas W. Earle tiene un excelente tutorial que describe un caso muy difícil con PixInsight LE:

http://www.northwest-landscapes.com/html/articles/flat-fielding.html

En otro hilo de este foro puse un ejemplo sobre una imagen de SSRO, con una descripción de cómo hacer dos iteraciones:

http://pixinsight.com/forum/viewtopic.php?t=536

Intentaré encontrar más ejemplos.

======================================

(The original question was about iterative application of gradient removal techniques with DBE)

Hi Borja,

It depends on the image. In most cases, performing several iterations of the DBE-based gradient removal procedure isn't actually necessary. Two or three iterations can be necessary in these two cases:

* When there are very abrupt gradients (very difficult to model because the have steep profiles).

* When there are very few free background sky areas, or when it's complicated to determine where to place background samples, normally because the entire image is covered by nebulosity.

In the second case, we actually apply several iterations to find the optimal locations for each of our DBE samples. At each iteration, it becomes easier to see where the free sky areas are in the image. Once we have a good set of samples, we can apply them to the original image.

In the first case, we have very strong and wild gradients that require several reduction steps to achieve a constant illumination profile for the whole image. DBE uses a very flexible interpolation, but there are cases where a good background model cannot be obtained in a single step.

To perform several iterations, you should save the DBE instance as a process icon. Then you can load the icon to perform a second iteration, perhaps refining the positions of some samples, to obtain an improved background model. Then save the new instance as another icon, and so on.

Thomas W. Earle has an excellent tutorial on his website that describes a very difficult case with PixInsight LE:

http://www.northwest-landscapes.com/html/articles/flat-fielding.html

On another thread I put an example with an image by SSRO, with a brief description on how to perform two iterations:

http://pixinsight.com/forum/viewtopic.php?t=536

I'll try to find more examples.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Más sobre DBE
« Reply #2 on: 2008 April 20 14:05:12 »
Hola Borja

Como siempre, la respuesta dependerá de la imagen que estés trabajando. Sin embargo, en la mayoría de los casos, no se necesita iterar, ya que el algoritmo se adapta bastante bien a las muestras. Sólo en los casos en que las muestras no representen muy bien el cielo, y tú utilices un valor grande para la rigidez de la interpolación, sería "necesario" aplicar DBE nuevamente, para eliminar los remanentes. Justamente este procedimiento tuve que seguirlo en mi última toma de Orión, ya que prácticamente no tenía cielo de fondo, ya que todo son nebulosas muy débiles, así que usé un modelo muy rígido, y luego de aplicar (restando) volví a ejecutar DBE para "aplanar" un poco más el fondo, nuevamente con un modelo muy rígido.

Aparte de eso, como te comentaba, usualmente con 1 aplicación basta. Eso sí, es probable que el modelo no sea perfecto, y te des cuenta luego de aplicarlo (inspeccionando con una STF). Por eso, es bueno hacer un ícono de procesamiento de la instancia de DBE antes de cancelarla. Deshaces la resta o division, y cargas nuevamente DBE (a partir del ícono) para refinarlo y obtener un nuevo modelo. Este proceso iterativo de inspección y modificación, es el camino más eficiente para obtener los mejores resultados. Hay veces que pones una muestra sobre algo que crees que es "buen" cielo de fondo, pero deforma completamente el resultado, y es mejor quitarlo... o agregar otros. Tendrás que practicar para llevarlo a cabo cada vez más rápido y con mejor intuición.


Sobre el tema de restar y dividir, es extremadamente dificil discernir con un algoritmo de extracción de fondo si sus componentes son aditivas o multiplicativas. Es decir, el algoritmo reproduce el cielo de fondo, no le importa porqué quedó así. Entonces, si tienes fenómenos de viñeteo y gradientes del cielo al mismo tiempo, mi consejo es evaluar cuál es el dominante (el que peor es) y dividir o restar para corregir de buena manera ese efecto. Si no funciona bien, prueba el otro método. Pero, tratar de aislar los componentes con DBE es un proceso tremendamente complicado, y no te aseguro que se pueda hacer (principalmente por el tipo de algoritmo que se utiliza para interpolar). Teóricamente, con ABE se podría modelar de mejor manera esta separación (ya que los gradientes del cielo son generalmente lineales)... pero tampoco es algo perfecto. Es sólo una aproximación de primer orden.
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline Borja

  • Newcomer
  • Posts: 37
Más sobre DBE
« Reply #3 on: 2008 April 21 14:55:17 »
Hola.

Gracias a los dos por la contestación  :D
Estoy peléandome con una imagen con viñeteo y no hay forma de quitarlo totalmente.
He probado tanto de poner muchas marcas como pocas (cuidando de no "pisar" ningun objeto) pero siempre queda un residuo.
Tal vez es que espero demasiado. La toma es bastante ruidosa y había bastante humedad por lo que tal vez no se pueda eliminar totalmente.

Bueno, seguiré probando.

Muchas gracias.

Saludos
    Francisco

Offline C. Sonnenstein

  • PixInsight Addict
  • ***
  • Posts: 262
    • http://astrosurf.com/astro35mm
Más sobre DBE
« Reply #4 on: 2008 April 22 14:48:16 »
Hola Borja:

Podrías poner el resultado de la imagen a corregir a ver si podemos ayudarte a mejorarla, DBE suele funcionar en casi cualquier situación.

Un saludo.
Carlos Sonnenstein

Offline Borja

  • Newcomer
  • Posts: 37
Más sobre DBE
« Reply #5 on: 2008 April 29 15:31:08 »
Hola Carlos.

Bueno, la verdad es que ya he descubierto lo que me pasaba.
En éste hilo http://pixinsight.com/forum/viewtopic.php?t=490&highlight=dbe en que explicas ampliamente la herramienta hay un "corolario" de ManoloL que no tiene desperdicio y es que después de generar las muestras automáticas, si se añaden más muestras a mano, hay que aumentar la "Tolerance" y "Shadow relaxation"  ya que sino es como si no se pusieran !!!.

Ya podía yo poner muestras ya   :evil:

En esta composición podéis ver el viñeteo inicial de la imagen resaltado, el resultado de restar el DBE generado añadiendo muestras pero sin incrementar los parámetros indicados y el resultado obtenido modificándolos.




Gracias por vuestro interés.

Un saludo
    Francisco

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Más sobre DBE
« Reply #6 on: 2008 April 30 01:05:10 »
<English text below>

Hola Borja

Quote
después de generar las muestras automáticas, si se añaden más muestras a mano, hay que aumentar la "Tolerance" y "Shadow relaxation" ya que sino es como si no se pusieran


Siento que se me pasara ese mensaje de Manolo, si no, lo habría explicado entonces, por supuesto. Bueno, supongo que más vale tarde que nunca :)

Lo que te ocurre es completamente normal. Cuando generamos un conjunto de muestras de forma automática, DBE lo que hace es simplemente crear nuevas muestras distribuidas regularmente en una rejilla. Básicamente, es lo mismo generar muestras manualmente o automáticamente: todos los parámetros funcionan de la misma menera.

Es muy importante comprender que DBE en PixInsight Standard, aunque no lo parezca, es en realidad una herramienta muy diferente de su homónima en PixInsight LE. La principal diferencia es que el nuevo DBE genera un modelo del fondo de forma global, es decir para toda la imagen: todas las muestras están sujetas a la forma y el perfil de iluminación del fondo calculado para toda la imagen. El antiguo DBE, en PixInsight LE, trabajaba localmente: cada muestra trataba de ajustar un modelo del fondo diferente dentro de una región relativamente pequeña de la imagen.

El nuevo DBE se basa en el siguiente principio: el fondo del cielo, tal como está representado en la imagen, es una estructura a escala global, y por tanto su solución es única para todo píxel perteneciente a la imagen. Calcular un modelo del fondo no es más que encontrar dicha solución para todas las muestras colocadas por el usuario (o generadas automáticamente). Siguiendo este principio, el nuevo DBE asigna unos pesos estadísticos a cada muestra. Cada muestra tiene tres valores asociados, que en la interfaz se representan como:

Wr, Wg, Wb

Cada uno de estos valores es, respectivamente para los canales rojo, verde y azul, la probabilidad de que el valor de la muestra represente al fondo del cielo en sus coordenadas. Cada valor Wx está en el rango [0,1], donde 0 significa "no representa al fondo" y 1 significa "representa al fondo". Los valores entre 0 y 1 corresponden a muestras que pueden representar al fondo, pero con cierto grado de incertidumbre (mayor incertidumbre cuanto menor sea la probabilidad).

La gráfica cuadrada que está en la parte derecha de la interfaz de DBE, representa la probabilidad de pertenencia al fondo para cada píxel de la muestra actual. Los píxeles negros en la gráfica corresponden a píxeles de la imagen que no pertenecen al fondo, tal como éste se está calculando en base al conjunto completo de muestras de DBE. Los píxeles blancos en la gráfica son píxeles del fondo en la imagen, y los valores intermedios de gris son proporcionales a la probabilidad de pertenencia al fondo, como hemos explicado.

Conociendo un poco mejor cómo funciona DBE, voy a explicar varios de los parámetros más importantes:

Tolerance. Este parámetro es el más importante. Representa la dispersión de valores que se produce en el fondo del cielo representado en la imagen. Si Tolerance es demasiado pequeño, DBE va a ser demasiado exigente para considerar que un píxel determinado pertenece al fondo, con lo cual vamos a tener muy pocos píxeles para calcular un modelo del fondo representativo. Si Tolerance es demasiado grande va a pasar justo lo contrario: se incluirán demasiados píxeles en el modelo, probablemente muchos que no son del fondo del cielo, con lo cual el modelo generado va a ser incorrecto (por ejemplo, incluirá parte de los píxeles de objetos extendidos, como nebulosas). Aunque el valor por defecto de Tolerance (0.5) suele funcionar razonablemente bien, es muy importante ajustar bien este parámetro. Su valor se expresa en unidades de sigma (desviación estándar) respecto del valor medio calculado para el fondo del cielo en la imagen. Por lo tanto, su valor es independiente del brillo del fondo: sólo le afecta el grado de dispersión, no los valores de píxel concretos.

Shadows Relaxation. Este parámetro fue heredado de ABE (Automatic Background Extractor), el otro proceso para generación de modelos del fondo, creado por Carlos Milovic en 2005 (¡uf! tres años ya...). Shadows Relaxation multiplica el valor de Tolerance para píxeles oscuros, es decir, para aquéllos píxeles que se encuentran a la izquierda del pico central del histograma en el modelo del fondo. Al aumentar Shadows Relaxation conseguiremos que se incluyan más píxeles oscuros en el modelo, mientras que el comportamiento de Tolerance seguirá siendo mucho más restrictivo para los píxeles brillantes (a la derecha del pico). Por ejemplo, con un valor pequeño de Tolerance y aumentando Shadows Relaxation, podemos hacer que las muestras funcionen muy bien para el fondo del cielo y al mismo tiempo rechacen correctamente todos los objetos pequeños y brillantes (estrellas, píxeles calientes, etc.).

Default Sample Radius. Es el radio en píxeles de las muestras de DBE generadas (tanto manual como automáticamente). Es importante porque si el tamaño de las muestras es demasiado pequeño, será difícil que éstas puedan rechazar correctamente estructuras brillantes y pequeñas, como estrellas. Si el tamaño de las muestras es demasiado grande, éstas tendrán un efecto demasiado "promediador" y será difícil que el modelo se ajuste a variaciones de iluminación locales. El pequeño botón "Reset default sample radius..." que hay a la derecha de este parámetro (sección Sample Generation) normalmente cargará un valor apropiado. Sin embargo, a veces puede convenir un tamaño algo mayor.

Minimum sample weight, en la sección "Sample Generation". Este parámetro es el peso estadístico mínimo que tiene que tener una muestra generada para no ser descartada. Cuanto mayor sea el valor de este parámetro, más restrictiva es la generación de muestras, con lo cual el proceso colocará, en general, menos muestras. Si este valor es excesivo, puede suceder que en combinación con un valor demasiado alto de Tolerance se coloquen muestras sobre objetos. Al contrario, si este parámetro es demasiado bajo y/o Tolerance es también demasiado bajo, puede ocurrir que se generen muy pocas muestras. Si se generan menos de tres muestras, se advierte sobre este problema con un mensaje de error.

Bien, espero que esta explicación ayude a comprender un poco más cómo funciona DynamicBackgroundExtraction en PixInsight Standard, especialmente a aquéllos usuarios que están más acostumbrados al DBE que había en PixInsight LE. El nuevo es mucho más eficiente y en general producirá modelos del fondo mucho más robustos y precisos; sin embargo, es también algo más difícil de usar y exige un control mayor sobre varios parámetros críticos, que he intentado explicar brevemente aquí.


============================================================================

Quote
After generating DBE samples automatically, if I add more samples manually, I have to increase the values of Tolerance and Shadows relaxation; otherwise, newly created samples are useless.


That behavior is completely normal. When we tell DBE to generate a set of samples automatically, it just creates new samples uniformly distributed on a rectangular lattice. The result is the same as if you had created the same samples manually: all parameters work the same way in both cases.

It is very important to realize that DBE in PixInsight Standard is, even if it doesn't seem at first glance, very different from the tool that was included with the same name in PixInsight LE. The main difference is that the new DBE generates a global background model, i.e. taking into account the whole image: all DBE samples contribute to the profile and illumination distribution of a background model calculated for the whole image. The old DBE, which was included in PixInsight LE, works locally: each DBE sample tries to define an independent background model inside a relatively small image region around it.

The new DBE is based on the following principle: the sky background, as it has been represented in the image, is a global-scale structure, so its solution is unique for each pixel pertaining to the image. Following this principle, calculating a background model consists of finding that solution for all samples defined by the user (or automatically generated). To implement this principle, the new DBE assigns a statistical weight to each sample. Each sample carries three associated values, which on the DBE interface can be identified as:

Wr, Wg, Wb

These values are, respectively for the red, green and blue channels, the probability that the sample value represents the sky background at the sample coordinates. Each Wx value is in the range [0,1], where 0 means "does not represent the background" and 1 means "does represent the background". Intermediate values between 0 and 1 correspond to samples that can be representative of the background, but with some degree of uncertainty (more uncertainty for lower values of probability).

The square graphic at the right side of the DBE interface represents the probability of each pixel in the current sample to pertain to the sky background. Black pixels in the graphic correspond to image pixels that are not part of the background. White pixels are being considered as fully pertaining to the background, and gray pixels are represented with gray values that are proportional to their probability of being background pixels in the image, as we have explained.

Once we know better how DBE works internally, I'll try to explain some of the most important DBE parameters:

Tolerance. This is the most important parameter. It represents the dispersion of values that occurs in the sky background, as it is represented in the image.

If the value of Tolerance is too low, DBE will be too restrictive to tag pixels as pertaining to the background. If this happens, the total number of pixels used to calculate the background model will be too small, so the calculated model won't be able to adapt to strong gradients or steep illumination profiles.

If Tolerance is too high, its effect will be exactly the opposite: too many pixels will be included in the calculated background model, which will lead to an incorrect model that will probably include some extended objects, as nebulas.

Although the default value of Tolerance (0.5) works reasonably well in many cases, it is very important to adapt well this parameter to each particular image. This parameter is expressed in sigma units (standard deviation) with respect to the estimated mean value of the background in the image. For that reason, this parameter is independent on brightness; it only depends on the dispersion of values in the background, not on specific pixel values.

Shadows Relaxation. This parameter has been inherited from ABE (Automatic Background Extractor), which is the other process for background modelization in PixInsight. ABE was created by Carlos Milovic in 2005 (wow! three years ago...).

The value of Shadows relaxation multiplies Tolerance for dark pixels only, that is, for those pixels that lie at the left side of the central peak of the histogram. By increasing Shadows relaxation, more dark pixels will be included in the model, while the behavior of Tolerance can still be much more restrictive for bright pixels (those falling at the right side of the histogram).

For example, with a small value of Tolerance and increasing Shadows relaxation, we can achieve a very good sampling of the sky background, while at the same time DBE will reject correctly all bright and relatively small objects (stars, hot pixels, etc.).

Default Sample Radius. This is the radius in pixels of newly generated DBE samples (both manually and automatically). This value is important because if the sample size is too small, rejecting small and bright structures (as stars) can be difficult. If the sample size is too large, samples will have an averaging effect and it will be difficult for the model to adapt to local brightness variations. The small "Reset default sample radius..." button to the right of this parameter (in the Sample Generation section) will normally set an appropriate value. However, sometimes it can be convenient to define a somewhat larger sample size.

Minimum sample weight, in the "Sample Generation" section. This parameter is the minimum statistical weight required for automatically generated samples. The larger the value of this parameter, the more restrictive will be the sample generation procedure, which means that less samples will be generated. If the value of this parameter is too low and the value of Tolerance is too high, some samples can be generated over non-background areas, as nebular objects. Contrarily, if Minimum sample weight is too high and/or Tolerance is too low, too few samples could be generated. When less than three samples are generated, the user gets informed about this problem by means of an error message.

I hope this explanation will help to better understand how DynamicbackgroundExtraction works in PixInsight Standard, especially for those users that are accustomed to the old DBE that was included in PixInsight LE. The new version of this tool is much more efficient, and in general it will produce much more robust and accurate background models; however, it's also somewhat more difficult to use and requires a tighter control over some critical parameters, which I've tried to explain briefly in this post.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Borja

  • Newcomer
  • Posts: 37
Más sobre DBE
« Reply #7 on: 2008 April 30 15:38:53 »
Muchas gracias por las aclaraciones.

Saludos.

Offline C. Sonnenstein

  • PixInsight Addict
  • ***
  • Posts: 262
    • http://astrosurf.com/astro35mm
Más sobre DBE
« Reply #8 on: 2008 May 01 03:56:08 »
Quote from: "Juan Conejero"
La principal diferencia es que el nuevo DBE genera un modelo del fondo de forma global, es decir para toda la imagen: todas las muestras están sujetas a la forma y el perfil de iluminación del fondo calculado para toda la imagen
Otra diferencia importante con el nuevo DBE es que si se sitúan manual o automáticamente un suficiente número de cajas o muestras, DBE también neutralizará completamente el color del fondo del cielo, sin afectar al balance cromático de los objetos. Supongo que la razón es porque ahora DBE genera un modelo independiente para cada canal RGB.

Quote from: "Juan Conejero"
Tolerance. Este parámetro es el más importante
Totalmente de acuerdo.

Quote from: "Juan Conejero"
Si Tolerance es demasiado pequeño, DBE va a ser demasiado exigente para considerar que un píxel determinado pertenece al fondo, con lo cual vamos a tener muy pocos píxeles para calcular un modelo del fondo representativo.
En la práctica observo diferencias importantes dependiendo de si los datos son o no lineales. Por ejemplo, si la imagen es lineal, generalmente hay que ajustar un valor de Tolerance muy pequeño para evitar que el dispositivo introduzca muestras sobre nebulosidades. Sin embargo, si los datos lineales han sido transformados previamente por un ajuste de medios tonos, el valor por defecto de Tolerance (0.5) suele acercarse bastante a lo que buscamos.

Quote from: "Juan Conejero"
Al aumentar Shadows Relaxation conseguiremos que se incluyan más píxeles oscuros en el modelo, mientras que el comportamiento de Tolerance seguirá siendo mucho más restrictivo para los píxeles brillantes (a la derecha del pico).
Volviendo al manejo de los datos lineales, observo también que en imágenes con fuerte viñeteo, al utilizar valores altos de Shadows Relaxation no siempre se consigue situar automáticamente muestras sobre las zonas más oscuras (esquinas principalmente) si la cantidad de muestras (Samples per row) es insuficiente, o el valor de Tolerance es muy bajo. Voy a hacer algunas pruebas al respecto, porque con lo que explica Juan es posible que aquí el parámetro de Minimum Sample Weight juegue un papel revelante...
Carlos Sonnenstein