Algoritmi ed architetture per la risoluzione di problemi di visual search
-
Upload
alessandro-dambrosio -
Category
Engineering
-
view
163 -
download
2
description
Transcript of Algoritmi ed architetture per la risoluzione di problemi di visual search
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
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
Visual Search
• Rapidità di ricerca utilizzando immagini ed esempi
• Interazione uomo calcolatore allargata
• Da semplici dati elementari ad contenuti visivi
Operazioni del Visual Search
Image processing Description
Matching
Visual Search
Feature extraction(Do
G)
Refirement(SIFT)
Descriptor(SIFT)
DoG(Difference of Gaussian)
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, )
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 =
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.
SIFT(Scale Invariant Feature Transform)
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
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
AGAST(Adaptive and Generic Accelerated Segment Test)
• Spazio di configurazione per l’albero binario di ricerca.
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.
AGAST(Adaptive and Generic Accelerated Segment Test)
• Albero adattivo di switching.
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.
Target Hardware FPGA Altera
Step successivo: • Implementare AGAST su
FPGA per la feature extraction su un flusso video
Target Hardware FPGA Altera
AGAST(C/C++)
LegUp
Verilog
FPGA Altera
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.
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.
LegUp High-Level Synthesis Framework
• Caso di studio:
Agast
LegUp flusso puro Hardware
Verilog
Conclusioni
Feature extraction(Do
G)
Refirement(SIFT)
Descriptor(SIFT)
Feature extraction(AGA
ST)
Refirement(SIFT)
Descriptor(SIFT)
Conclusioni
AGAST Legup Verilo
gAltera FPGA
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.
Grazie per l’attenzione!