Convolución

Aplique la convolución a Deep Learning, procesamiento de imágenes y procesamiento de señales

La convolución es una operación matemática que combina dos señales y genera una tercera señal.

Suponiendo que tenemos dos funciones, \(f(t)\) y \(g(t)\), la convolución es una integral que representa la magnitud en que se superpone una función \(g\) a medida que se desplaza sobre la función \(f\)

La convolución se expresa como:

$$(f*g)(t) \approx^{def} \int_{-\infty}^{\infty}f(\tau)g(t-\tau)dr$$

Representación gráfica de la convolución.

Según cuál sea la aplicación de la convolución, las funciones se pueden reemplazar con señales, imágenes u otros tipos de datos. La convolución y sus aplicaciones se pueden implementar de varias maneras en MATLAB®.

La convolución en el procesamiento de señales

La convolución se utiliza en el procesamiento digital de señales para estudiar y diseñar sistemas lineales invariantes en el tiempo (LTI), como los filtros digitales.

La señal de salida de los sistemas LTI, \(y[n]\), es la convolución de la señal de entrada \(x[n]\) y la respuesta al impulso \(h[n]\) del sistema

Convolución para sistemas lineales invariantes en el tiempo.

Convolución para sistemas lineales invariantes en el tiempo.

En la práctica, el teorema de convolución se utiliza para diseñar el filtro en el dominio de la frecuencia. El teorema de convolución establece que la convolución en el dominio del tiempo es igual a la multiplicación en el dominio de la frecuencia.

Las funciones de MATLAB conv y filter permiten realizar convolución y crear filtros desde cero. Signal Processing Toolbox™ y DSP System Toolbox™ tienen varias funciones y bloques de Simulink® para implementar directamente filtros digitales como designfilt, lowpass y highpass.

La convolución en el procesamiento de imágenes

En el procesamiento de imágenes, el filtrado convolucional se puede utilizar para implementar algoritmos tales como detección de bordes, aumento de nitidez y desenfoque de imágenes.

Esto se consigue seleccionando el kernel apropiado (matriz de convolución).

Operación de convolución con un kernel de filtro de aumento de nitidez de 3x3.

Image Processing Toolbox™ cuenta con funciones como fspecial e imfilter para diseñar filtros con los que destacar o eliminar determinadas características de las imágenes.

Desenfoque de imagen realizado a través de convolución con un filtro promediador.

Desenfoque de imagen realizado a través de convolución con un filtro promediador. Vea un ejemplo de MATLAB.

Redes neuronales convolucionales (CNN)

La convolución desempeña un papel clave en las redes neuronales convolucionales (CNN). Las CNN son un tipo de red profunda que se utiliza con frecuencia para analizar imágenes. Estas redes evitan extraer características de forma manual y, por eso, funcionan muy bien en problemas complejos como la identificación de imágenes y el análisis de imágenes médicas. Las CNN también son efectivas en el análisis de datos no relacionados con imágenes, como audio, series temporales y datos de señales.

Las redes tienen varias capas; las más frecuentes son las de convolución, ReLU y pooling.

Capas de una red neuronal convolucional (CNN)

Capas de una red neuronal convolucional (CNN).

Las capas de convolución actúan como filtros; cada capa aplica un filtro y extrae características específicas de la imagen. La red aprende estos valores de filtro durante su entrenamiento. Las capas iniciales suelen extraer características de bajo nivel de los datos, mientras que las capas más profundas extraen características de alto nivel.

Para obtener más información sobre la convolución y sus aplicaciones en procesamiento de señales, procesamiento de imágenes, Deep Learning y otras áreas, consulte Signal Processing Toolbox, DSP System Toolbox, Image Processing Toolbox y Deep Learning Toolbox™ para su uso con MATLAB.

También puede consultar estos temas: red neuronal convolucional, detección de bordes, integral, MATLAB y Simulink para procesamiento de señales, MATLAB para procesamiento de imágenes y visión artificial, MATLAB para Deep Learning, Deep Learning para el procesamiento de señales

Curso introductorio Image Processing Onramp

Aprenda los conceptos básicos sobre las técnicas prácticas de procesamiento de imágenes en MATLAB.

Curso introductorio Signal Processing Onramp

Curso interactivo de introducción a métodos prácticos de procesamiento de señales para el análisis del espectro.