Intuición para la convolución en el procesamiento de imágenes.

9

He leído muchos documentos sobre convolución en el procesamiento de imágenes, y la mayoría de ellos dicen acerca de su fórmula, algunos parámetros adicionales. Nadie explica la intuición y el significado real detrás de hacer convolución en una imagen. Por ejemplo, la intuición de derivación en el gráfico es hacerlo más lineal, por ejemplo.

Creo que un resumen rápido de la definición es: la convolución se multiplica por el cuadrado de superposición entre la imagen y el núcleo, después de esa suma nuevamente y se ancla. Y esto no tiene ningún sentido para mí.

De acuerdo con este artículo sobre convolución, no puedo imaginar por qué la convolución puede hacer cosas "increíbles". Por ejemplo, detección de línea y borde en la última página de este enlace. Simplemente elija el núcleo de convolución apropiado puede hacer buenos efectos (detectar línea o detectar borde).

¿Alguien puede proporcionar alguna intuición (no es necesario que sea una buena prueba) sobre cómo puede hacer eso?

hqt
fuente

Respuestas:

13

Creo que la forma más sencilla de pensar en la convolución es como un método para cambiar el valor de un píxel a un nuevo valor basado en el peso de los píxeles cercanos.

Es fácil ver por qué Box Blur:

_____________
|1/9|1/9|1/9|
|1/9|1/9|1/9|
|1/9|1/9|1/9|
-------------

trabajos. Convolver este núcleo es lo mismo que recorrer cada píxel de una foto y hacer que el nuevo valor del píxel sea el promedio de sí mismo y los ocho píxeles circundantes.

Si entiendes eso, puedes ver por qué Gaussian Blur funciona:

_____________________
|.01|.04|.07|.04|.01|
|.04|.16|.26|.16|.04|
|.07|.26|.41|.26|.07|
|.04|.16|.26|.16|.04|
|.01|.04|.07|.04|.01|
---------------------

Básicamente es lo mismo, excepto que el promedio se pondera más fuertemente hacia los píxeles que están más cerca. La función que define qué tan rápido se caen los pesos a medida que te alejas es la Función Gaussiana , pero no necesitas conocer los detalles de la función para usarla para desenfocar.

El núcleo de detección de bordes en el artículo vinculado tiene sentido si también lo miras lo suficiente:

__________
|-1|-1|-1|
|-1|.8|-1|
|-1|-1|-1|
----------

Básicamente dice que el valor de cualquier píxel comienza en 8/9 de su valor original. Luego resta los valores de cada píxel a su alrededor para llegar a su nuevo píxel.

Entonces, si el valor de un píxel es alto y el valor de los píxeles a su alrededor también es alto, se cancelarán mutuamente. Si el valor del píxel es bajo y todos los píxeles a su alrededor también son bajos, también se cancelarán entre sí. Si el valor del píxel es alto y el valor de los píxeles a su alrededor es bajo (como en un píxel en el borde de un objeto), el nuevo valor de píxel será alto.

Brian
fuente
6

Una forma de pensar sobre convolución / correlación cruzada es como si estuviera buscando alguna señal en sus datos. Cuanto más se parezcan los datos al núcleo, mayor será el valor resultante. De hecho, tomo el reverso del núcleo, es decir, como en la correlación cruzada, pero es básicamente lo mismo.

Por ejemplo, supongamos que está buscando un paso direccional en sus datos 1d.

El núcleo podría ser

[-1 1]

y apliquemos eso a los datos

[2 2 2 2 2 1 1 1 1 1]

El resultado será

[0 0 0 0 0 1 0 0 0 0]

Que detecta la ubicación del paso. Un paso más grande daría un valor mayor.

Esto funciona porque cuando multiplica un patrón por el que aparece en el núcleo, obtiene un valor alto.

La detección de bordes (o cualquier otra detección de patrones) funciona de la misma manera, por ejemplo con el núcleo

[-1 2 -1]

Las extensiones a dimensiones más altas también se pueden pensar de esta manera.

Esto debería darle intuición al menos sobre algunas de las aplicaciones del procesamiento de imágenes de convolución.

Bitwise
fuente
4

Si cree que la convolución es demasiado difícil de entender, le recomiendo que comience a buscar sobre la morfología matemática aplicada al procesamiento de imágenes, la gran idea detrás de la morfología matemática es que realizará una operación muy cercana a la convolución, para "cambiar" el morfología de la imagen, pero conserva la información de la topología, de esta manera, puedes hacer una imagen de un humano de pie, un esqueleto, que es casi un palo humano, trata de aplicar la operación de erosión, luego dilata la operación, luego ve al campo abierto / cerrar la operación, comenzará a comprender qué puede hacer una máscara aplicada a cada píxel de la imagen, y cómo se pueden usar en un gran escenario para lograr grandes resultados (como encontrar un lugar para comenzar algo usando la última erosión), una vez entiendes la morfología matemática, la convolución es un poco más difícil,porque se basa en el cálculo y se define después de la integración, pero aún así, muchas convoluciones son fáciles de entender, como desenfoque medio, desenfoque gaussiano, enfoque, detección de bordes, laplace, gradiente, etc.

H_DANILO
fuente