algoritmi ed architetture per la risoluzione di problemi di visual search

25
Algoritmi ed architetture per la risoluzione di problemi di visual search Relatori: Ch.mo Prof. G. Raiconi Dott. M. Vigliar Candidato: A. D’Ambrosio Matr.:0521000846 Università degli studi di Salerno Laurea specialistica in Informatica

Upload: alessandro-dambrosio

Post on 23-Jun-2015

162 views

Category:

Engineering


2 download

DESCRIPTION

Tesi specialistica

TRANSCRIPT

Page 1: 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

Page 2: Algoritmi ed architetture per la risoluzione di problemi di visual search

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

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

Operazioni del Visual Search

Image processing Description

Matching

Page 5: Algoritmi ed architetture per la risoluzione di problemi di visual search

Visual Search

Feature extraction(Do

G)

Refirement(SIFT)

Descriptor(SIFT)

Page 6: Algoritmi ed architetture per la risoluzione di problemi di visual search

DoG(Difference of Gaussian)

Page 7: Algoritmi ed architetture per la risoluzione di problemi di visual search

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

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

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

SIFT(Scale Invariant Feature Transform)

Page 11: Algoritmi ed architetture per la risoluzione di problemi di visual search

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

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

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

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

AGAST(Adaptive and Generic Accelerated Segment Test)

• Albero adattivo di switching.

Page 16: Algoritmi ed architetture per la risoluzione di problemi di visual search

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

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

Target Hardware FPGA Altera

AGAST(C/C++)

LegUp

Verilog

FPGA Altera

Page 19: Algoritmi ed architetture per la risoluzione di problemi di visual search

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

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

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

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

Conclusioni

AGAST Legup Verilo

gAltera FPGA

Page 24: Algoritmi ed architetture per la risoluzione di problemi di visual search

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

Grazie per l’attenzione!