B B
L'input viene riscalato: si sottrae la media e si divide per la deviazione standard (radice della
varianza), spostando la distribuzione nell'intorno di zero.
Infine, si introducono due parametri addestrabili, (scale) e (shift), per riscalare l'output
γ β
normalizzato.
Questo processo (normalizzazione, scala e shift) rende il modulo robusto ai cambiamenti nei valori di
input.
Transfer Learning
Il Transfer Learning è una tecnica che permette di sfruttare la conoscenza Knowledge) appresa da un
modello addestrato su un certo dominio e applicarla a un altro dominio o task.
L'ultima fase di addestramento sul nuovo dominio è il "fine tuning". Invece di imparare da zero, il modello
"target" si limita a rifinire e specializzare la conoscenza generale già acquisita.
Il risultato finale è un modello molto più efficace di quello che si otterrebbe addestrandolo da capo (il "caso uno"
del diagramma "Traditional ML").
Le reti neurali profonde NN sono spesso considerate delle "black box". È difficile interpretare come
arrivino a un determinato risultato, rendendo necessario lo sviluppo di metodi di "explanation"
(spiegazione).
Le Saliency Maps
Riassunto Computer Vision 41
Le Saliency Map sono uno di questi metodi di spiegazione, spesso applicati ai layer convolutivi.
Obiettivo: Capire quali regioni dell'immagine di input sono state più significative per ottenere un determinato
output (classificazione).
Classificazione: Questi metodi si differenziano in base a tre criteri principali:
Locality: Se analizzano l'input a livello di singolo layer Locali ) o globalmente.
Specificity: Se sono specifici per un modello (model-specific) o applicabili a qualsiasi modello (model-
agnostic).
Interpretation: Il tipo di analisi usata, come quella basata sul gradiente (backpropagation) o sulla
perturbazione (forward propagation).
Ricostruzione Inversa
Un approccio fondamentale (come la Deconvolution ) consiste nel navigare la rete al contrario, dall'output verso
l'input, per capire come i singoli filtri abbiano interagito con l'input.
Processo: Si applicano le funzioni inverse rispetto a quelle usate nel forward pass.
Forward Pass Ramo Destro): Mostra un'operazione standard di CONV Convolutional Filtering ) e Max
Pooling.
Backward Pass Ramo Sinistro): Mostra l'applicazione delle funzioni inverse per ricostruire l'input. Si usano
gli "Switches" (le posizioni dei massimi ) per eseguire un Max Unpooling e una Deconvolution
T
Convolutional Filtering ).
F
Scopo: L'obiettivo non è ricostruire l'input originale, ma solo le feature più importanti che hanno portato
all'output.
Altri Metodi : Esistono diversi algoritmi, come Vanilla Gradient (calcola il gradiente della loss rispetto
all'input ), Guided Backpropagation (combina deconvolution e backpropagation ) e SmoothGrad (aggiunge
rumore e calcola una media delle mappe ).
Il risultato finale è una "heatmap" (mappa di calore) che visualizza uno score di importanza.
Interpretazione Visiva: Queste immagini plottano l'importanza su una scala di valori:
Le regioni più chiare (punti gialli) sono quelle che hanno contribuito di più alla classificazione.
Le regioni più scure (punti blu/viola) sono quelle che hanno contribuito meno.
Riassunto Computer Vision 42
Confronto: Come mostrano le immagini, algoritmi diversi Vanilla, Guided, SmoothGrad) producono mappe
di salienza diverse per la stessa immagine, poiché il risultato dipende dall'algoritmo, dal gradiente e
dall'output analizzato.
show_saliency_maps.ipynb
Object Detection
Il task dell'Object Detection Rilevamento di Oggetti) consiste nell'individuare gli oggetti all'interno di
un'immagine e rispondere a due domande: "Cosa c'è?" (classificazione) e "Dove si trova?" (localizzazione).
Come hai sottolineato, la differenza fondamentale tra questo e la classificazione pura si trova nell'output della
rete e, di conseguenza, nella funzione di loss:
Object Detection: Aggiunge la domanda "Dove?". L'output non è solo un'etichetta, ma una lista di bounding
box, ognuno associato a un'etichetta.
Bounding Box: Localizzazione e Regressione
La posizione "Dove" è caratterizzata da un bounding box (un rettangolo).
Rappresentazione: Un box è definito da 4 coordinate. Invece di usare i due angoli opposti, che possono
(c , )
avere una variabilità maggiore, si preferisce usare un punto di riferimento centrale e specificare
c
x y
(h) (w)
altezza e ampiezza .
Riassunto Computer Vision 43
Normalizzazione: Usare coordinate in pixel (es. da 0 a 970 è problematico, poiché le reti neurali gestiscono
male grandi variazioni (il calcolo del gradiente va male). Per questo, le coordinate vengono normalizzate tra
0 e 1.
Task Combinato: Siccome l'output è una lista di 4 numeri (coordinate) e 1 etichetta (classe), il problema
diventa di classificazione + regressione. La lunghezza della lista è variabile (un box se c'è un cane, due box
se ci sono un cane e un gatto).
Regressione Relativa: Come "trucchetto" per stabilizzare la regressione, molti modelli non predicono le 4
coordinate assolute, ma lo "spostamento relativo" (offset) rispetto a una regione o un box di riferimento .
Valutazione di un Detector
Per definire un detector "buono", si usano due criteri principali: accuratezza e velocità.
Accuratezza (mAP)
Intersection over Union IoU Per valutare una predizione abbiamo bisogno di un criterio di "tolleranza".
L'IoU misura quanto il box predetto si sovrappone al box reale (ground truth). Si calcola come l'area
A∩B
=
dell'intersezione divisa per l'area dell'unione: . Se l'IoU è sopra una soglia, la predizione è
IoU A∪B
considerata corretta True Positive).
Riassunto Computer Vision 44
mAP (mean Average Precision): È la metrica standard per misurare l'accuratezza, basata sulle curve di
precision e recall calcolate per ogni classe (es. mAP per "umani" e mAP per "computer").
Velocità (FPS)
Frames Per Second FPS Per applicazioni real-time (come guida autonoma o video-sorveglianza) non si
analizzano immagini singole, ma "flussi di immagini" (video). L'FPS misura "il numero di immagini al secondo
che siamo in grado di analizzare".
Trade-off: Come hai notato, lo scenario applicativo è fondamentale. La video-sorveglianza richiede alta
"correttezza predittiva" ma anche "tempestività". La guida autonoma deve essere tempestiva per dare al
sistema il "tempo per reagire".
Esistono due famiglie di detector:
Multi-Shot Detectors (es. RCNN Hanno responsi di "alta qualità" (mAP elevato) ma sono "molto lenti"
FPS bassi).
Single-Shot Detectors (es. SSD, YOLO Sono "più veloci" FPS alti) ma "meno qualitativi" (mAP più basso).
Evoluzione dei Detector Multi-Shot
RCNN
È stato il primo approccio deep learning all'object detection.
Idea: Estrarre le regioni di interesse ROI e passarle a una CNN13.
Processo:
Generazione ROI Utilizza un algoritmo esterno (non-neurale) chiamato Selective Search. Come hai
descritto, questo algoritmo fa un clustering gerarchico dei pixel basandosi su "vicinanza spaziale" e
"intensità del pixel" (valori dei canali). La ROI è il box più piccolo che contiene un cluster.
Estrazione Features: Ognuna delle 2000 ROI viene ridimensionata ("warped") e passata
individualmente in una CNN (es. VGG per estrarre le features.
Predizione: Le features vengono usate da un classificatore e un regressore.
Svantaggio: Estremamente lento 47 sec/immagine), perché la VGG viene eseguita 2000 volte.
Riassunto Computer Vision 45
Fast RCNN
L'obiettivo è ottimizzare la fase di convoluzione.
Idea: È inefficiente applicare la VGG 2000 volte. Applichiamola "una volta sola sull'immagine" intera.
Processo:
La VGG genera un'unica feature map (es. 1414512.
Le ROI (sempre da Selective Search) vengono "proiettate" sulla feature map.
Problema: Le ROI proiettate hanno dimensioni diverse, e non possiamo ridimensionarle (si "altererebbe il
contenuto" delle feature).
Soluzione: RoI Pooling Adaptive Pooling). Questo strato adatta il pooling alla dimensione della regione,
producendo un output di dimensione fissa (es. 77 per tutte.
Risultato: Speed-up notevole 2 sec/immagine), ma ora il collo di bottiglia è l'algoritmo esterno Selective
Search.
Faster RCNN
L'idea è integrare tutto nella rete.
Riassunto Computer Vision 46
Idea: Sostituire Selective Search con una rete neurale. Si ottiene un'architettura integrata multi-shot (a due
livelli)23.
Architettura:
Stadio 1 RPN Una Region Proposal Network RPN genera le region proposal.
Stadio 2 Detector): Un detector Fast RCNN usa le proposte della RPN.
Come funziona la RPN
Anchor Boxes Priors): La RPN non cerca da zero, ma definisce le regioni in termini di "prior" o anchor
box: box pre-calcolati con dimensioni e aspect ratio fissati, "ancorati" a posizioni predeterminate.
Griglia e Subsampling: La RPN lavora sulla feature map (es. 5050, con subsampling ratio 16
50 × 50
dall'immagine 800800. Ognuno dei punti della mappa funge da "ancora".
50 × 50 = 9 50 ×
Predizioni Massive: Se per ognuno dei punti definiamo ancore, la rete deve fare
k
50 × 9 = 22.500 predizioni.
Implementazione Convoluzionale Slide 6263 Per ogni ancora, la rete deve predire: "interseca un
oggetto?" (classificazione) e "quanto dista dall'oggetto?" (regressione). Questo viene fatto in parallelo
usando due layer CONV 11: × 2
Classification Layer: Un CONV 11 con canali (es. 18 canali). Per ogni punto, predice 2 score
k
(oggetto/non-oggetto) per ognuna delle ancore.
k
× 4
Regression Layer: Un CONV 11 con canali (es. 36 canali). Per ogni punto, predice i 4 offset
k
per ognuna delle ancore.
k
Riassunto Computer Vision 47
Le predizioni finali si trovano "negli ultimi vettori che stanno in ogni pixel" di questi tensori di
output. Questi tensori vengono poi riformattati in tabelle per calcolare la loss.
YOLO
YOLOv12 rappresenta l'ultima iterazione di questa famiglia di
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Computer Vision (Giuseppe Manco): Guida completa (Elaborazione Immagini, CNN, Feature Extraction)
-
Computer Vision: Guida completa (Elaborazione Immagini, CNN, Feature Extraction), parte 1
-
Computer
-
Appunti per l'esame di Advanced Computer Architectures - parte 2