Definition of problems
Object detection
Bisogna trovare all’interno dell’immagine quali siano gli oggetti presenti, e in più vogliamo sapere dove siano quindi utilizzare una bounding box per caratterizzarli sarebbe buono.
Object segmentation
È riuscire a caratterizzare categoria per categoria per singoli pixelsm e per questo motivo potrei riuscire a fare delle image map in cui colorare singoli oggetti in una categoria.
Datasets
Example datasets
- Pascal VOC 2012
- Coco datasets
- Cityscapes dataset
- Autogenerated datasets But I don’t know much about these datasets
Applications
- Auto drive
- Campo medico (per segmentazione medica o riconoscimento immagini).
- reidentificazione.
- Key posse extimations.
U-net
Il primo skip connection ci permette di capire bene quali siano i bordi, perché sappiamo che la convoluzione riesce a prendere bene
Architettura di Yolo
- Downsampling, fare dei mini quadratini, 32 fattori di downsampling, di solito l’immagine è 416x416 e arriva a 13x13.
- Ogni neurone fa tre predizioni.
- Quattro valori per una bounding box (offsettata dal neurone), quanto penso di essere sicuro, e poi dire cosa esattamente sto vedendo.
Importante avere la funzione di loss per analizzare bene. Vogliamo avere un singolo neurone, quindi forzo a zero tutti gli altri neuroni. Questo è quello che faccio con la funzione maschera per avere solamente la box di interesse. Poi una volta definito questo provo a definire errore di localizzazione e l’errore di classificazione. Quello è l’errore di di localizzazione in cui vogliamo avere la bounding box più corretta. La radice è una euristica umana per cercare di favorire il punto principale (ma cambia la loss fra versione all’altra).
Una volta che ho le due loss posso provare a bilanciarle: $$ L = \lambda_{c}L_{loc} + L_{cls} $$ E le variabili si mettono a mano seconda dell'architettura.Region proposals and single shots
Region proposals: (R-CNN, Fast R-CNN, Faster R-CNN).
Il primo è un vecchio metodo per attaccare il problema. In passato si analizzava la texture per capire le regioni con struttura e dove si avevano altre, utilizzato per avere zone di interesse, senza informazioni semantiche a riguardo. una volta capite le regioni di interesse l’altra rete prova a fare classificazione e bounding box.
Single shots (Yolo, SSD, Retina-net, FPN).
Si fanno in unica passata indetificazione del luogo e categorizzazione.
Intersection over Union
This is an evaluation metric used to determine if two regions are the same. If this metric is high enough, the better one is kept (better one as more secure and things like that). Defined as
$$ IoU(A, B) =\frac{\lvert A \cap B \rvert }{\lvert A\cup B \rvert } $$This metric is also used for other types of algorithms, for example the MinHash algorithm used something very similar. Sometimes this is also called Jaccard Metric.
Non-maximum-suppression algorithms 🟩
È un modo per trovare le bounding box migliori per un certo argomento. In pratica è un algoritmo greedy, che va così:
- Sorta tutte le bounding box in ordine decrescente di confidence
- Prendo la prima come vera
- Le prossime le elimino se hanno una intersection over union alta, altrimenti le tengo.
- Così finché non finiscono tutte le bounding box.