Operazione di convoluzione su una matrice 7×7 con un kernel 3×3
  1. In matematica, la convoluzione è un’operazione eseguita su due funzioni (f e g) per produrre una terza funzione. La convoluzione è una delle operazioni più importanti nell’elaborazione di segnali e immagini. Può operare in 1D (ad esempio l’elaborazione del discorso), 2D (ad esempio l’elaborazione delle immagini) o 3D (elaborazione video).
  2. Nell’elaborazione delle immagini, la convoluzione è il processo di trasformazione di un’immagine applicando un kernel su ogni pixel e i suoi vicini locali nell’intera immagine. Il kernel è una matrice di valori le cui dimensioni e valori determinano l’effetto di trasformazione del processo di convoluzione.
  3. Il processo di convoluzione comporta questi passi. (1)Pone la matrice del kernel su ogni pixel dell’immagine (assicurandosi che l’intero kernel sia all’interno dell’immagine), moltiplica ogni valore del kernel con il pixel corrispondente su cui si trova. (2) Poi, somma i valori moltiplicati risultanti e restituisce il valore risultante come nuovo valore del pixel centrale. (3) Questo processo viene ripetuto su tutta l’immagine.
  4. Come si vede nell’immagine, un kernel 3×3 viene convoluto su un’immagine sorgente 7×7. L’elemento centrale del kernel è posto sopra il pixel sorgente. Il pixel sorgente viene poi sostituito con una somma pesata di se stesso e dei pixel circostanti. L’output è posto nel valore del pixel di destinazione. In questo esempio, nella prima posizione, abbiamo 0 nel pixel sorgente e 4 nel kernel. 4×0 è 0, poi passando al pixel successivo abbiamo 0 e 0 in entrambi i posti. 0x0 è 0. Poi di nuovo 0x0 è 0. Poi al centro c’è 1 nell’immagine sorgente e 0 nella posizione corrispondente del kernel. 0x1 è 0. Poi di nuovo 0x1 è 0. Poi 0x0 è 0 e 0x1 è 0 e nell’ultima posizione è -4×2 che è -8. Ora sommando tutti questi risultati otteniamo -8 come risposta quindi l’output di questa operazione di convoluzione è -8. Questo risultato è aggiornato nell’immagine di destinazione.
  5. L’output del processo di convoluzione cambia con il cambiamento dei valori del kernel. Per esempio, un kernel Identity mostrato sotto, quando applicato ad un’immagine attraverso la convoluzione, non avrà alcun effetto sull’immagine risultante. Ogni pixel manterrà il suo valore originale come mostrato nella figura seguente.

Identity Kernel

Immagine originale (sinistra) e immagine dopo l’applicazione del filtro Identity di dimensione 3×3 (destra)

Un kernel Sharpen come questo, quando applicato ad un’immagine tramite convoluzione, avrà un effetto di nitidezza sull’immagine risultante. I valori precisi possono essere personalizzati per vari livelli di nitidezza come mostrato nella figura seguente.

Sharpen Kernel

Immagine originale (sinistra) e immagine dopo l’applicazione del filtro Sharpen di dimensione 3×3 (destra)

Il kernel Gaussian Blur come questo, quando applicato ad un’immagine tramite convoluzione, applicherà un effetto di sfocatura gaussiana all’immagine risultante.

Kernel Sfocatura Gaussiana

Immagine originale (sinistra) e immagine dopo l’applicazione del filtro di sfocatura di dimensioni 7×7 (destra)

Come i valori del Kernel possono essere variati per diversi livelli di effetti, anche la dimensione del kernel può essere alterata per modellare l’effetto della convoluzione.Aumentando la dimensione della matrice del kernel, la localizzazione spaziale che influenza il valore risultante di ogni pixel viene aumentata poiché i pixel più lontani vengono tirati dentro l’equazione. Ci sono molti altri Kernel che sono usati nell’elaborazione delle immagini come il rilevamento dei bordi, la goffratura, la rotazione, ecc.

6. La convoluzione è il concetto chiave nelle Reti Neurali Convoluzionali. Le reti neurali convoluzionali (CNN) sono un tipo di rete neurale profonda. Una CNN comprende uno strato di convoluzione, uno strato di pooling e uno strato completamente connesso. Nello strato di convoluzione, una CNN applica la convoluzione ai suoi ingressi usando una matrice di kernel che calibra attraverso l’allenamento. Per questo motivo, le CNN sono molto brave nella corrispondenza delle caratteristiche nelle immagini e nella classificazione degli oggetti. I parametri dello strato di convoluzione consistono in un insieme di kernel apprendibili. Ogni kernel è una piccola matrice che si estende attraverso l’intera profondità del volume di input. Durante il passaggio in avanti, convolgiamo ogni kernel attraverso la larghezza e l’altezza dell’immagine di input e calcoliamo i prodotti di punti tra i valori dei pixel della sorgente e del kernel nelle posizioni corrispondenti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.