Contenuti del Corso
Fondamenti di Computer Vision
Fondamenti di Computer Vision
Strati di Convoluzione
Comprendere i Layer di Convoluzione
I layer di convoluzione sono il nucleo delle reti neurali convoluzionali (CNN). Applicano la convoluzione, in cui una piccola matrice chiamata filtro (o kernel) scorre su un'immagine per rilevare bordi, texture e forme. Questo consente alle CNN di elaborare le immagini in modo più efficiente rispetto alle reti tradizionali.
Invece di analizzare un'intera immagine in una sola volta, le CNN la suddividono in sezioni più piccole, rilevando caratteristiche a diversi livelli. I layer iniziali riconoscono pattern semplici come i bordi, mentre i layer più profondi rilevano strutture complesse.
Come Funziona la Convoluzione
La convoluzione prevede che un filtro (kernel) si muova attraverso un'immagine, seguendo questi passaggi:
Applicare il kernel nell'angolo in alto a sinistra dell'immagine.
Eseguire la moltiplicazione elemento per elemento tra il kernel e i valori dei pixel.
Somma dei prodotti per generare un pixel di output.
Spostare il kernel secondo lo stride e ripetere.
Generare una feature map che evidenzia i pattern rilevati.
Filtri multipli consentono alle CNN di catturare diverse caratteristiche, come bordi verticali, curve e texture.
Filtri (Kernel):
I filtri svolgono un ruolo fondamentale nell'estrazione di pattern significativi dalle immagini. Diversi tipi di filtri sono specializzati nell'identificazione di varie caratteristiche:
Filtri per il rilevamento dei bordi: identificano i contorni degli oggetti rilevando bruschi cambiamenti di intensità (ad esempio, filtri Sobel, Prewitt e Laplacian);
Filtri di texture: catturano pattern ripetitivi come onde o griglie (ad esempio, filtri Gabor);
Filtri di nitidezza: esaltano i dettagli dell'immagine amplificando le componenti ad alta frequenza;
Filtri di sfocatura: riducono il rumore e rendono le immagini più uniformi (ad esempio, filtro di sfocatura Gaussiana);
Filtri emboss: evidenziano i bordi e aggiungono un effetto 3D enfatizzando la profondità.
Ogni filtro viene addestrato per rilevare pattern specifici e contribuisce alla costruzione di rappresentazioni gerarchiche delle caratteristiche nelle CNN profonde.
I livelli di convoluzione riutilizzano lo stesso filtro su tutta l'immagine, riducendo i parametri e rendendo le CNN efficienti. Tuttavia, i livelli localmente connessi specializzati utilizzano filtri diversi per regioni differenti quando necessario.
Sovrapponendo più livelli di convoluzione, le CNN estraggono pattern dettagliati, rendendole potenti per la classificazione delle immagini, il rilevamento degli oggetti e le attività di visione artificiale.
Iperparametri:
Stride: controlla di quanto si sposta il filtro ad ogni passo;
Padding: aggiunge pixel per controllare la dimensione dell'output (il padding "same" preserva la dimensione, il padding "valid" la riduce);
Numero di filtri (profondità): un numero maggiore di filtri migliora il rilevamento delle caratteristiche ma aumenta il calcolo.
Prima del prossimo capitolo, è necessario ricordare:
Anche se i layer convoluzionali possono ridurre la dimensione dell'output, il loro scopo principale è l'estrazione delle caratteristiche, non la riduzione della dimensionalità. I layer di pooling, invece, riducendo esplicitamente la dimensionalità mantengono le informazioni importanti, garantendo efficienza negli strati più profondi.
1. Qual è il ruolo principale di un layer convoluzionale in una CNN?
2. Quale iperparametro determina di quanto si sposta un filtro durante la convoluzione?
3. Qual è lo scopo dell'applicazione di più filtri in uno strato di convoluzione?
Grazie per i tuoi commenti!