¿Cuáles son los pros y los contras de los diferentes algoritmos de demostración de Bayer?

Los sensores de Bayer utilizan un patrón de píxeles rojos, verdes y azules, y los fusionan en una imagen de color final, con un píxel para cada sensor de color . Esto podría hacerse a través de una combinación "ingenua" de sensores vecinos, pero he oído hablar de enfoques más complicados con nombres como AHD, HPHD y AMaZE.

¿Cuáles son estos otros enfoques y qué ventajas aportan? ¿Tienen debilidades más allá de la complejidad informática?

Me imagino que el enfoque utilizado para JPEG en la cámara está más protegido, pero claramente se dedica mucha investigación y desarrollo a esta área. ¿La potencia de procesamiento limitada disponible en la cámara obliga a algún compromiso en esta área?

Podría estar equivocado, pero tenía la impresión de que la demostración ocurre en la cámara; de lo contrario, la imagen sufriría un alias. Hubo un artículo interesante sobre esto en uno de los recientes Popular Photography hablando sobre la Sigma (sensor Foveon X3) que es una de las pocas cámaras que no tiene un sensor bayer.
Bueno, un poco de investigación indica que AHD, o Demosaicing dirigido por homogeneidad adaptativa, es el "estándar de la industria", y parece ser utilizado por ACR/LR (al menos desde hace un par de versiones... quién sabe si tienen introdujo algo más avanzado con ACR 6.x y LR4.x). Parece un algoritmo ponderado que tiene como objetivo reducir el color falso.
@Jakub: La demostración ocurre en la cámara para imágenes JPEG. El objetivo de una imagen RAW es que NO se ha demostrado todavía, y es la grabación "en bruto" de datos de píxeles directamente del sensor sin ningún procesamiento adicional (fuera de su amplificación básica para lograr el ISO necesario). Un bajo óptico El filtro de paso (filtro AA) elimina el alias al "difuminar" físicamente las frecuencias espaciales por debajo de la tasa de nyquist del sensor.
Tenga en cuenta que los filtros de color "Rojo", "Verde" y "Azul" de nuestras matrices Bayer no son iguales a los emisores Rojo, Verde y Azul de nuestros dispositivos RGB. Es lamentable que usemos los mismos nombres para ambos.
Eh, realmente son lo suficientemente cercanos como para tratar de esa manera. No obtendrá el color perfecto, pero está en el estadio de béisbol. Vea la vista ampliada en petapixel.com/2013/02/12/… por ejemplo, solo visualmente, los colores de los filtros son definitivamente aquellos con los que los identificamos.
@mattdm "solo visualmente, los colores de los filtros son definitivamente los que identificamos como" no tiene sentido ya que el objetivo de los filtros de color de la cámara es dar una curva de respuesta a un espectro continuo de longitudes de onda que se aproxima a la discriminación de los receptores del ojo humano . Así que realmente no tiene sentido mirar imágenes de esos filtros ya que la visión humana reduce sus curvas a 3 valores. Cuanto mejor coincida con las curvas de respuesta humana , menos problemas de balance de blancos tendrá. Pero curvas bastante diferentes pueden parecer iguales bajo una iluminación particular.

Respuestas (4)

Me sorprendió hace unos meses descubrir que el SDK de mi cámara de visión artificial usaba la "interpolación" del vecino más cercano en su función bayer integrada. Es el tipo más rápido, pero el peor, que proporciona bordes duros, especialmente cuando comienza a hacer cálculos en los canales de imagen para la constancia del color o la invariancia del brillo. Encontré esta revisión de algoritmos:

http://www.arl.army.mil/arlreports/2010/ARL-TR-5061.pdf

El siguiente paso son las interpolaciones bilineales y bicúbicas que se pueden calcular bastante rápido porque solo equivalen a núcleos de convolución. Estos dan dientes de sierra coloreados en bordes inclinados, bilineales más que bicúbicos.

Se puede ver en este documento, y con datos de calidad cuantificada en 5 algoritmos diferentes:

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Demosaicing_ICASSP04.pdf

Es por eso que hicieron interpolaciones basadas en la dirección del borde. Sin embargo, estos tratan el verde como un "canal más importante" (ya que tiene la mejor resolución y representa la mayor parte de nuestra sensibilidad visual y la resolución de nuestros ojos). Y luego crean el azul y el rojo en función del canal verde, de una manera que preserva el tono. Esto, a su vez, hace que el contenido de alta frecuencia del canal verde sea más propenso a errores. La complejidad es mayor ya que tienen que detectar lo que está pasando y requieren múltiples pases. El muaré y los maíces son artefactos comunes de este tipo de interpolación.

Aquí muestran ejemplos de demostración de homogeneidad adaptativa y versiones bilineales con y sin complementos que preservan el tono y los bordes:

http://math.auburn.edu/~kilgota/ahd_bayer.pdf

Ese papel favorece a AHD y no muestra la parte negativa. En esta página, puede ver los diferentes artefactos de patrón de demostración de homogeneidad adaptativa, agrupación de píxeles con patrones y número variable de degradados (pase el mouse sobre los nombres):

http://www.ruevski.com/rawhistogram/40D_Demosaicing/40D_DemosaicingArtifacts.html

En resumen, hay una serie de suposiciones empleadas en estos algoritmos, y los artefactos ocurren cuando la suposición no se cumple:

  • Suavidad por canal. Si los vecinos más cercanos no son los mismos, haga la transición suave. Artefacto: sierras/cremalleras, suavidad
  • Constancia de brillo con bordes dirigidos (dirección bilineal). Artefactos: muaré de textura de alta frecuencia, halos de color
  • Constancia de tonalidad. si en un vecindario el tono es el mismo, entonces si un canal cambia, los otros tienen que seguirlo. Artefactos: cremalleras de color en los bordes de color
  • La constancia se puede predecir a partir de los greens. Artefacto: laberintos
Pregunta rápida: en la última línea, ¿te refieres a "maíces" (¿tipos de maíz?) o "laberintos"? En cualquier caso, agradecería un poco más de expansión de lo que podría ser este tipo de artefacto.
ratón en un laberinto.
Genial :) Creo que conozco el artefacto al que se refiere, pero no estoy muy seguro. Es un patrón aleatorio a nivel de píxel de líneas horizontales y verticales cortas (posiblemente mezcladas con ruido), ¿verdad? Es interesante saber de dónde viene esto; de hecho, casi hice una pregunta al respecto el otro día, porque supuse que era un artefacto NR.
son esas líneas sí y proviene de la forma en que el algoritmo de bayer intenta adivinar los datos.

Empecé a jugar un poco con esto y descubrí que el enfoque ingenuo no es tan malo. Eso es simplemente tratar cada color por separado e interpolar para obtener los píxeles intermedios. La principal desventaja de esto es que si está observando un píxel en un lugar donde hay un alto contraste, puede ver una pequeña franja de color. Dicho de otra manera, si tiene un área gris claro que linda con un área negra, verá algunos píxeles de colores en el límite. Afortunadamente, estos se promedian en general, pero si el borde es casi vertical o casi horizontal, se promedian en una frecuencia baja. El mismo efecto puede ser incluso más evidente en líneas finas y brillantes que son casi verticales u horizontales.

Aquí hay un ejemplo. Esta foto fue tomada deliberadamente como una prueba:

Tenga en cuenta las bandas aparentes de la línea de moldura cromada. Para poner esto en perspectiva, aquí está el cuadro completo:

He pensado en un enfoque alternativo, pero hasta ahora siempre ha habido otras cosas que hacer primero. Este esquema buscaría encontrar solo el brillo primero. Este sería el único canal de datos de imagen si la imagen fuera en blanco y negro. Cada sentido contribuye un poco a eso, aunque los colores no contribuyen por igual. Una vez que se determina la intensidad, interpolaría los colores como en el método ingenuo, pero usaría el resultado solo para configurar los colores de tal manera que se conserve la intensidad. La intensidad tendría un ancho de banda más alto o sería más nítida en términos fotográficos que la información de tono. La televisión analógica utilizó este truco para reducir los requisitos de ancho de banda de una imagen en color. Se salieron con la suya porque el sistema visual humano le da más importancia a la intensidad que a los colores, particularmente al rojo.

De todos modos, esos son sólo algunos pensamientos. Como dije, todavía no lo he probado ni resuelto los detalles. Algún día.

Tengo entendido que las diferentes versiones de proceso en Lightroom (hasta ahora tenemos 2003, 2010 y 2012) corresponden, entre otras cosas, a diferentes algoritmos de demostración. Otro software interesante es UFRaw que ofrece lo siguiente (cita de la página web):


Después de configurar el balance de blancos, UFRaw interpola el patrón de Bayer.

  • La interpolación AHD es la interpolación dirigida por homogeneidad adaptativa. Es la interpolación por defecto.
  • La interpolación VNG utiliza la interpolación de número variable de gradientes basada en umbrales. Esta solía ser la interpolación predeterminada y sigue siendo muy buena .
  • Se debe usar la interpolación de cuatro colores VNG si obtiene artefactos de patrones de Bayer en su foto (consulte las Preguntas frecuentes de DCRaw para obtener más detalles).
  • La interpolación PPG significa interpolación de agrupación de píxeles con patrones. Es casi tan bueno como todos los anteriores y mucho más rápido.
  • La interpolación bilineal es una interpolación muy básica pero es mucho más rápida.

Esto podría proporcionar algún material para experimentar. Por cierto, UFRaw parece ser de código abierto, lo que le permite echar un vistazo a los propios algoritmos.

En astrofotografía, este tema se investiga profundamente, ya que cuando se usa un sensor de color de un solo disparo, se pierde mucha resolución por debayering. Por el lado positivo, el uso de un archivo RAW aún permite acceder a los datos originales y puede procesarse antes de la aplicación de color. Este tema se aleja mucho del lado del software.

En resumen, si tiene acceso a muchas imágenes con los mismos datos del sujeto (algo que se hace para reducir el ruido del sensor), puede cambiar una conversión de un solo cuadro con AHD por un enfoque de llovizna que puede recuperar la resolución perdida. La elección depende del tipo de fuente de datos que tenga disponible. La mayoría de los fotógrafos solo tienen una sola imagen para usar.

Algunos software que he usado con opciones para procesos de Debayering son: Deep Sky Stacker y Pix Insight. Hay otros también. Muchos están basados ​​en DCRAW .

Aquí está el enlace para el artículo en la página de Deep Sky Stacker donde discuten algunas de las opciones: Debayering Choices

Esto es interesante (¡gracias!) pero no creo que responda la pregunta. Ese último enlace parece prometedor, pero se centra en las alternativas a la demostración. Sobre el tema en cuestión, solo dice "Hay muchos métodos de interpolación diferentes disponibles que producen resultados malos o buenos (lineal, degradado...) pero todos degradan la calidad de la imagen final al adivinar cuáles deberían ser los colores que faltan. " Pero no va más allá en los detalles prácticos.