algoritmi ed architetture per la risoluzione di problemi di visual search
DESCRIPTION
Tesi specialisticaTRANSCRIPT
![Page 1: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/1.jpg)
Algoritmi ed architetture per la
risoluzione di problemi di visual
search
Relatori:
Ch.mo Prof. G. Raiconi
Dott. M. Vigliar
Candidato:A. D’AmbrosioMatr.:0521000846
Università degli studi di SalernoLaurea specialistica in Informatica
![Page 2: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/2.jpg)
Introduzione
o Visual Search ed applicazioni
o Algoritmi di visual search(DoG-SIFT)
oNuovo feature extraction(AGAST)
o Target Hardware FPGA Altera
o Legup
o Conclusioni
![Page 3: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/3.jpg)
Visual Search
• Rapidità di ricerca utilizzando immagini ed esempi
• Interazione uomo calcolatore allargata
• Da semplici dati elementari ad contenuti visivi
![Page 4: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/4.jpg)
Operazioni del Visual Search
Image processing Description
Matching
![Page 5: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/5.jpg)
Visual Search
Feature extraction(Do
G)
Refirement(SIFT)
Descriptor(SIFT)
![Page 6: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/6.jpg)
DoG(Difference of Gaussian)
![Page 7: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/7.jpg)
DoG(Difference of Gaussian)
• La scala di un’immagine è definita come una funzione:
cioé la convoluzione dell’immagine in input I(x, y) e della Gaussiana:
Funzione DoG(rappresentazione tra due immagini convolute con due gaussiane):
D(x, y, ) = (G(x, y, k ) - G(x, y, )) I(x, y) = L(x, y, k ) - L(x, y, )
![Page 8: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/8.jpg)
DoG(Difference of Gaussian)
Questo mostra fondamentalmente tre cose:
• Quando la DoG ha scale che differiscono di un fattore costante, incorpora già la normalizzazione della scala richiesto per il Laplaciano.
• Il fattore (k - 1) risulta essere costante nelle sottrazioni fra scale adiacenti per cui non influenza la ricerca dei punti notevoli.
• L’errore di approssimazione va a zero quando k tende a 1, ma in pratica accade che l’approssimazione non ha un decisivo impatto sulla stabilità della ricerca del massimo, così come nella sua localizzazione, questo anche per alcune significative riduzioni in scala, come k =
![Page 9: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/9.jpg)
SIFT(Scale Invariant Feature Transform)L’algoritmo si compone delle seguenti fasi:
Individuazione delle extrema-location: si utilizza DoG per identificare i punti di potenziale interesse.
Keypoint Localization: ulteriore filtraggio dei punti candidati individuati.
Orientation assignment: vengono assegnati ai keypoint uno o più orientamenti.
Keypoint Descriptor: determinare un descriptor per una regione dell’immagine.
![Page 10: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/10.jpg)
SIFT(Scale Invariant Feature Transform)
![Page 11: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/11.jpg)
SIFT(Scale Invariant Feature Transform)• SIFT lavora efficacemente su immagini piccole.(DoG impiega l’80% delle
risorse totali richieste da SIFT)
• Problema:• Non ci sono processori Desktop in grado di eseguire SIFT ad una velocità tale da
processare un flusso video HD real-time.
• Obiettivo:• Far girare su un FPGA un algoritmo performante di feature extraction per
processare un flusso video real-time.
• Soluzione:• AGAST(Adaptive and Generic Accelerated Segment Test) + HW coprocessing
![Page 12: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/12.jpg)
AGAST(Adaptive and Generic Accelerated Segment test)
• Agast differente da DoG, tecnica di corner detection basata su albero di decisione.
• Estensione del comportamento di algoritmi come FAST
![Page 13: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/13.jpg)
AGAST(Adaptive and Generic Accelerated Segment Test)
• Spazio di configurazione per l’albero binario di ricerca.
![Page 14: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/14.jpg)
AGAST(Adaptive and Generic Accelerated Segment Test)
• Costruzione albero di decisione ottimale• Si esplora lo spazio di regole di configurazione partendo dalla
radice dell’albero di decisione dove nessun pixel è conosciuto.
• La foglia è definita come il primo nodo del percorso che adempie o non può adempiere alle regole di rilevamento del corner di interesse
• Il costo dalla foglia è zero, mentre il costo dato da ogni nodo interno è determinato prendendo il costo minimo di computazione di ogni figlio.
![Page 15: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/15.jpg)
AGAST(Adaptive and Generic Accelerated Segment Test)
• Albero adattivo di switching.
![Page 16: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/16.jpg)
AGAST vs FAST
Pro:
• Corner detection basato su albero di decisione
• Velocità di esecuzione
• Performante per il real-time
Caso sfavorevole:
• AGAST diventa meno performante di FAST se c’è la necessità di passare da albero omogeneo all’albero strutturato su pixel consecutivi.
![Page 17: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/17.jpg)
Target Hardware FPGA Altera
Step successivo: • Implementare AGAST su
FPGA per la feature extraction su un flusso video
![Page 18: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/18.jpg)
Target Hardware FPGA Altera
AGAST(C/C++)
LegUp
Verilog
FPGA Altera
![Page 19: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/19.jpg)
LegUp High-Level Synthesis Framework
Verilog
ANSI C
LegUp
Cos’è LegUp?E’ un Framework che prende in input un programma C e da in output un programma Verilog.
![Page 20: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/20.jpg)
LegUp High-Level Synthesis Framework
• Due differenti flussi di sintesi:• Hardware Puro: sintetizza l’intero file C in hardware senza soft
processor
• Hybrid: esegue una porzione del file C sul soft processor TigerMips e sintetizza il resto in hardware.
![Page 21: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/21.jpg)
LegUp High-Level Synthesis Framework
• Caso di studio:
Agast
LegUp flusso puro Hardware
Verilog
![Page 22: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/22.jpg)
Conclusioni
Feature extraction(Do
G)
Refirement(SIFT)
Descriptor(SIFT)
Feature extraction(AGA
ST)
Refirement(SIFT)
Descriptor(SIFT)
![Page 23: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/23.jpg)
Conclusioni
AGAST Legup Verilo
gAltera FPGA
![Page 24: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/24.jpg)
Conclusioni
• Soluzione piccola e performante
• Nuovo processo di estrazione dei Point of Interest Agast-Sift
• Legup C to Verilog FPGA = possibilità di gestire flussi video
Obiettivi futuri:
• Testare l’efficacia del codice dato in output da Legup(codice Verilog) su FPGA confrontando con codice Verilog scritto direttamente senza ausilio del framework.
• Esplorare la modalità ibrida per rendere l’algoritmo esploso in sezioni parallele solo quando non c’è dipendenza esplicita o implicita dei dati.
![Page 25: Algoritmi ed architetture per la risoluzione di problemi di visual search](https://reader035.vdocument.in/reader035/viewer/2022062708/5588e0a0d8b42a683e8b469a/html5/thumbnails/25.jpg)
Grazie per l’attenzione!