¿Por qué el filtro separable reduce el costo de computación del operador?

8

Un filtro separable en el procesamiento de imágenes se puede escribir como producto de dos filtros más simples. Típicamente, una operación de convolución bidimensional se separa en 2 filtros unidimensionales. Esto reduce el costo de computación del operador.

¿Por qué el costo de la computación es menor si uso un filtro separable? No puedo entender por qué tener 2 filtros en lugar de uno aumentará el rendimiento.

Iter Ator
fuente

Respuestas:

9

Suponga que tiene una imagen de tamañonorte×METRO

Si sabe tomar lo que se usa clásicamente, un núcleo de filtro cuadrado, digamos tamaño , necesitaría convolverlo con la imagen, que le da píxeles, cada uno necesita multiplicar- acumula Entonces terminas con operaciones.L×Lnorte×METROL2UNA2re=L2METROnorte

Ahora, si se puede descomponer ese filtro en una -sized horizontal y una 1D-filtro vertical-L tamaño, se puede hacer primero todas las filas - que es valores por fila, cada uno necesitan operaciones, por lo que para todas las filas - y luego haría lo mismo con el filtro vertical, por lo que para todas las columnas, y terminará con , y solo necesitaría mostrar queLMETROLLMETROnorteLnorteMETROUNA1re=2LMETROnorte

UNA1re<UNA2re2LMETROnorte<L2METROnorteEl |El |:LMETROnorte, legal desde L,METRO,norte>0 02<L

La mayoría de los filtros son más grandes que 2.

Marcus Müller
fuente