¿Qué es el muestreo bilateral?

9

He trabajado con varios algoritmos de interpolación que incluyen interpolaciones lineales, cúbicas (y bilineales y bicúbicas), otras interpolaciones basadas en bezier (y nurbs, etc.), interpolación lagrange y algunas otras, pero no he podido encontrar ninguna información básica que explique qué es el muestreo bilateral.

He podido encontrar información sobre Muestreo Bilateral Conjunto que, lo mejor que puedo decir, interpola múltiples datos en paralelo, usando sugerencias de cada uno para ayudar al otro a interpolar mejor, pero tengo problemas para separar la información de BU y JBU.

¿Alguien puede explicar las ideas básicas de qué trata el muestreo bilateral?

Alan Wolfe
fuente
1
El documento original sobre filtrado bilateral, "Filtrado bilateral para imágenes en gris y color" , por Tomasi y Manduchi: users.cs.duke.edu/~tomasi/papers/tomasi/tomasiIccv98.pdf
Julien Guertault

Respuestas:

9

Parece que estás preguntando dos cosas. Realmente no puedo hablar técnicamente sobre JBU, pero puedo dar una visión general de los conceptos necesarios y el filtrado bilateral en general. Probablemente necesite encontrar más detalles usted mismo, pero esto debería dar una estructura coherente para comenzar.


Arreglando "Imagen" s

Muchas personas que procesan imágenes ven el filtrado como algo que se debe hacer como un proceso posterior o como una forma de escalar imágenes. La perspectiva del matemático es más precisa, descriptiva y compleja.

Cuando tienes un archivo de imagen, no tienes una imagen real. Tiene "valores" de píxeles, que son estrictamente válidos solo en el centro de los píxeles. En términos generales, cada píxel tiene un área que adquiere ese color. Matemáticamente, lo que está haciendo es usar un filtro de reconstrucción vecino más cercano para reconstruir la imagen verdadera a partir de valores de píxeles. Entonces, una "imagen" es realmente un conjunto de muestras y un filtro de reconstrucción, típicamente el vecino más cercano .

Remuestreo

Cuando aumenta una imagen, lo que realmente está haciendo es volver a muestrear . ¿Cómo haces esto? Toma su señal y genera un nuevo conjunto de muestras a partir de ella. Pero para una imagen, acabo de decir que no tenemos la imagen real; Tenemos que reconstruirlo primero. Entonces, un procedimiento de remuestreo típico se ve así:

  1. Toma tus valores de píxeles.
  2. Reconstruya una imagen entre los valores, que viven en centros de píxeles, mediante el filtrado de reconstrucción.
  3. Mida un nuevo conjunto de muestras de la imagen reconstruida, posiblemente espaciadas de manera diferente.
  4. Deseche las muestras antiguas y use las nuevas.

El punto clave es que el filtro de reconstrucción utilizado es el "filtro" utilizado para el remuestreo. Por ejemplo, una "muestra ascendente bicúbica" usaría un filtro de reconstrucción bicúbico.

Resulta que si usa una función sinc para el filtro de reconstrucción, y no reduce la imagen, obtendrá (en teoría) la misma imagen. De hecho, si aumenta la imagen y luego la reduce nuevamente, obtendrá la misma respuesta. Esto no es generalmente cierto para ningún otro filtro.

La mayoría de los filtros se aproximan a un filtro sinc en mayor o menor grado. Las desviaciones resultan en pérdida de imagen.

Filtración

Si usa la misma frecuencia de muestreo antes / después, hace algo llamado "filtrado". Formalmente, el filtrado es remuestreo sin un cambio en la frecuencia de muestreo. El filtrado es un caso especial de remuestreo.

El único propósito posible es filtrarlo para descartar información (por ejemplo, un gaussiano) o posiblemente también para distorsionar o agregar información espuria (por ejemplo, un Sobel).

Filtrado Bilateral

Puede usar muchos filtros diferentes para filtrar. El filtrado bilateral es uno de ellos. No creo que se considere de vanguardia para ningún propósito ahora (aunque no sé qué es; probablemente sea algo nuevo y novedoso de aprendizaje automático que espero).

Un filtro bilateral es un filtro no lineal, lo que significa que no tiene una buena representación de Fourier. Conceptualmente, es como un gaussiano, pero los colores de origen también influyen en la "distancia" de un píxel de los demás. Esto tiende a suavizar las áreas planas y preservar los bordes.

Escalamiento bilateral

Por ahora, espero que vean a dónde voy con esto: cualquier filtro que pueda usar para filtrar, puede usar para aumentar o reducir la escala, que en realidad son lo mismo (porque todo es remuestreo).

Si ha implementado un filtro bilateral, debería ser capaz de implementar simplemente un muestreador de filtro bilateral, de la misma manera que, si ha implementado un filtro gaussiano, debería poder implementar un muestreador de filtro gaussiano.

La única dificultad puede ser las definiciones. Desafortunadamente, la distinción entre filtrado y remuestreo se confunde sistemáticamente con la no existencia ocasional en la literatura de procesamiento de imágenes. Para implementar un filtro de tipo bilateral, confiaría en gran medida en sus similitudes con el remuestreo gaussiano. IIRC (no he leído el documento en años) el filtrado bilateral se plantea en términos de píxeles, no de muestras.

imallett
fuente
De qué manera trato específicamente el filtrado bilateral es de lo que estoy tratando de obtener información. Puedes profundizar sobre eso?
Alan Wolfe
Uno puede prestar imágenes para las explicaciones al principio desde aquí
joojaa
@AlanWolfe Supuse que estaba preguntando por un contexto más amplio, ya que la implementación del filtrado bilateral básico es altamente capaz de Google y bastante simple. Como escribí, la idea básica es hacer que los valores tengan en cuenta el peso, no solo la distancia.
imallett
Además, la respuesta de @joolaa es bastante agradable y puede ser útil como una segunda explicación de mi visión general.
imallett
1
Ahora que tengo el término "filtro bilateral", tengo más suerte en Google. Gracias por eso.
Alan Wolfe
3

Probablemente esto no explore la profundidad completa del término, pero lo primero que se me ocurre cuando escucho "muestreo ascendente bilateral" es la fusión de imágenes de baja resolución con imágenes de baja resolución en profundidad; por ejemplo, cuando renderiza geometría de mezcla alfa en un búfer de media resolución (para ahorrar rendimiento) y luego la vuelve a componer en el objetivo de renderizado principal. Angelo Pesce escribió una publicación que lo explica bien.

IneQuation
fuente