Convoluzione

Applicazione della convoluzione all’elaborazione di immagini, l’elaborazione di segnali e il Deep Learning

La convoluzione è un’operazione matematica che combina due segnali ed emette un terzo segnale.

Supponendo di avere due funzioni, \(f(t)\) e \(g(t)\), la convoluzione è un integrale che esprime la quantità di sovrapposizione di una funzione \(g\) mentre viene spostata sulla funzione \(f\)

La convoluzione è espressa in questo modo:

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

Rappresentazione grafica della convoluzione.

A seconda dell’ambito di applicazione della convoluzione, le funzioni possono essere sostituite da segnali, immagini o altri tipi di dati. La convoluzione e le sue applicazioni possono essere implementate in diversi modi in MATLAB®.

La convoluzione nell’elaborazione di segnali

La convoluzione è utilizzata nell’elaborazione di segnali digitali per studiare e progettare sistemi lineari non variabili nel tempo (LTI) come i filtri digitali.

Il segnale di output, \(y[n]\), nei sistemi LTI è la convoluzione del segnale di input \(x[n]\) e la risposta all’impulso \(h[n]\) del sistema

Convoluzione per sistemi lineari non variabili nel tempo.

Convoluzione per sistemi lineari non variabili nel tempo.

In pratica, il teorema di convoluzione è utilizzato per progettare il filtro nel dominio della frequenza. Il teorema di convoluzione afferma che la convoluzione nel dominio del tempo è uguale alla moltiplicazione nel dominio della frequenza.

Le funzioni MATLAB come conv e filter consentono di eseguire la convoluzione e di costruire filtri partendo da zero. Signal Processing Toolbox™ e DSP System Toolbox™ offrono diverse funzioni e blocchi Simulink® per l’implementazione diretta di filtri digitali come designfilt, passa-basso e passa-alto.

La convoluzione nell’elaborazione di immagini

Nell’elaborazione di immagini, è possibile utilizzare il filtraggio convoluzionale per implementare algoritmi come il rilevamento dei contorni, l’ottimizzazione delle immagini e la sfocatura delle immagini.

Ciò viene eseguito selezionando il kernel appropriato (matrice di convoluzione).

Operazione di convoluzione con un kernel del filtro di ottimizzazione 3x3.

Image Processing Toolbox™ offre funzioni come fspecial e imfilter per progettare filtri per evidenziare determinate feature delle immagini o rimuoverne altre.

Sfocatura dell’immagine eseguita attraverso la convoluzione con un filtro di media.

Sfocatura dell’immagine eseguita attraverso la convoluzione con un filtro di media. Guarda l’esempio MATLAB.

Reti neurali convoluzionali (CNN)

La convoluzione ricopre un ruolo fondamentale nelle reti neurali convoluzionali (CNN). Le CNN sono un tipo di rete profonda comunemente utilizzato per l’analisi delle immagini. Le CNN eliminano la necessità di effettuare l’estrazione manuale delle feature, motivo per il quale si prestano molto bene a problemi complessi come la classificazione di immagini e l’analisi di immagini mediche. Le CNN sono efficaci per l’analisi dei dati non immagine come dati audio, serie storiche e segnali.

Le CNN sono costituite da vari layer, i più comuni dei quali sono convoluzione, ReLu e condivisione.

Layer in una rete neurale convoluzionale (CNN)

Layer in una rete neurale convoluzionale (CNN).

I layer di convoluzione fungono da filtri: ciascuno di essi applica un filtro ed estrae feature specifiche dall’immagine. Quando la rete viene addestrata, apprende questi valori dei filtri. Solitamente i layer iniziali estraggono feature di basso livello, mentre quelli più profondi estraggono feature di alto livello dai dati.

Per ulteriori informazioni sulla convoluzione e le sue applicazioni nell’elaborazione di segnali, l’elaborazione di immagini, il Deep Learning e altri settori, fai riferimento a Signal Processing Toolbox, DSP System Toolbox, Image Processing Toolbox e Deep Learning Toolbox™ da utilizzare con MATLAB.

Vedere anche: convolutional neural network, edge detection, integral, MATLAB and Simulink for signal processing, MATLAB for image processing and computer vision, MATLAB for deep learning, deep learning for signal processing

Image Processing Onramp

Impara le nozioni base delle tecniche pratiche di elaborazione delle immagini in MATLAB.

Signal Processing Onramp

Un’introduzione interattiva ai metodi pratici di elaborazione di segnali per l’analisi spettrale.