SlideShare a Scribd company logo
1 of 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
Introduzione
o Visual Search ed applicazioni
o Algoritmi di visual search(DoG-SIFT)
o Nuovo 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(DoG)
Refirement(SIFT) Descriptor(SIFT)
DoG(Difference of Gaussian)
DoG(Difference of Gaussian)
• La scala di un’immagine è definita come una funzione:
L(x, y, σ) = G(x, y, σ) I(x, y)
cioé la convoluzione dell’immagine in input I(x, y) e della Gaussiana:
𝐺 𝑥, 𝑦, 𝜎 =
1
2𝜋𝜎
𝑒−(𝑥2+𝑦2)/2𝜎2
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 𝜎2 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 = 2.
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.
• 𝐶 𝑝 = min
(𝐶+,𝐶−)
𝑐𝑐+ + 𝑝𝑐+ 𝑐 𝑇 + 𝑐𝑐− + 𝑝𝑐− 𝑐𝑡 = 𝑐 𝑐+ + 𝑐 𝑐− + 𝑝 𝑝 𝑐𝑡
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(DoG)
Refirement(SIFT) Descriptor(SIFT)
Feature
extraction(AGAST)
Refirement(SIFT) Descriptor(SIFT)
Conclusioni
AGAST Legup Verilog Altera
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!

More Related Content

Similar to Algoritmi ed architetture per la risoluzione di problemi di visual search

IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceAlessio Biasiutti
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
CAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D Pro
CAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D ProCAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D Pro
CAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D ProLuca Turco
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
RGX Remote Graphics eXperience 1.1 Sinthera
RGX Remote Graphics eXperience 1.1 SintheraRGX Remote Graphics eXperience 1.1 Sinthera
RGX Remote Graphics eXperience 1.1 SintheraLuca Turco
 
Thesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide ItThesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide ItMarco Santambrogio
 
Mokapp2014 - Daniele Galiotto - Camera e sorrisi
Mokapp2014 - Daniele Galiotto - Camera e sorrisiMokapp2014 - Daniele Galiotto - Camera e sorrisi
Mokapp2014 - Daniele Galiotto - Camera e sorrisimokapp
 
SkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoSkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoMavigex srl
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...
[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...
[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...Planetek Italia Srl
 
Azure day 2019 - Custom Vision on Edge device
Azure day 2019 - Custom Vision on Edge deviceAzure day 2019 - Custom Vision on Edge device
Azure day 2019 - Custom Vision on Edge deviceAlessio Biasiutti
 
Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...
Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...
Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...Davide Ciambelli
 
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...Antonio Tandoi
 
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.anwarNazik
 
Graduation Thesis Presentation
Graduation Thesis PresentationGraduation Thesis Presentation
Graduation Thesis Presentationperceval84
 
Plenaria 17 06 15
Plenaria 17 06 15Plenaria 17 06 15
Plenaria 17 06 15PAT
 

Similar to Algoritmi ed architetture per la risoluzione di problemi di visual search (20)

IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge device
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
CAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D Pro
CAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D ProCAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D Pro
CAD OVER WAN SINTHERA - Rich Graphics on Virtual Desktops with Citrix HDX 3D Pro
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
RGX Remote Graphics eXperience 1.1 Sinthera
RGX Remote Graphics eXperience 1.1 SintheraRGX Remote Graphics eXperience 1.1 Sinthera
RGX Remote Graphics eXperience 1.1 Sinthera
 
Thesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide ItThesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide It
 
Mokapp2014 - Daniele Galiotto - Camera e sorrisi
Mokapp2014 - Daniele Galiotto - Camera e sorrisiMokapp2014 - Daniele Galiotto - Camera e sorrisi
Mokapp2014 - Daniele Galiotto - Camera e sorrisi
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
SkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoSkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimento
 
Lezioni 2009
Lezioni 2009Lezioni 2009
Lezioni 2009
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
D israeli - INISTA 2014
D israeli  - INISTA 2014D israeli  - INISTA 2014
D israeli - INISTA 2014
 
[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...
[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...
[Webinar] Il telerilevamento da droni aerei: Le soluzioni Hexagon Geospatial ...
 
Azure day 2019 - Custom Vision on Edge device
Azure day 2019 - Custom Vision on Edge deviceAzure day 2019 - Custom Vision on Edge device
Azure day 2019 - Custom Vision on Edge device
 
Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...
Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...
Presentazione tesi specialistica - L'ottimizzazione delle risorse della Grid ...
 
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
 
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
 
Graduation Thesis Presentation
Graduation Thesis PresentationGraduation Thesis Presentation
Graduation Thesis Presentation
 
Plenaria 17 06 15
Plenaria 17 06 15Plenaria 17 06 15
Plenaria 17 06 15
 

Algoritmi ed architetture per la risoluzione di problemi di visual search

  • 1. 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
  • 2. Introduzione o Visual Search ed applicazioni o Algoritmi di visual search(DoG-SIFT) o Nuovo feature extraction(AGAST) o Target Hardware FPGA Altera o Legup o Conclusioni
  • 3. Visual Search • Rapidità di ricerca utilizzando immagini ed esempi • Interazione uomo calcolatore allargata • Da semplici dati elementari ad contenuti visivi
  • 4. Operazioni del Visual Search Image processing Description Matching
  • 7. DoG(Difference of Gaussian) • La scala di un’immagine è definita come una funzione: L(x, y, σ) = G(x, y, σ) I(x, y) cioé la convoluzione dell’immagine in input I(x, y) e della Gaussiana: 𝐺 𝑥, 𝑦, 𝜎 = 1 2𝜋𝜎 𝑒−(𝑥2+𝑦2)/2𝜎2 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, σ)
  • 8. 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 𝜎2 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 = 2.
  • 9. 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.
  • 11. 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
  • 12. 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
  • 13. AGAST (Adaptive and Generic Accelerated Segment Test) • Spazio di configurazione per l’albero binario di ricerca.
  • 14. 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. • 𝐶 𝑝 = min (𝐶+,𝐶−) 𝑐𝑐+ + 𝑝𝑐+ 𝑐 𝑇 + 𝑐𝑐− + 𝑝𝑐− 𝑐𝑡 = 𝑐 𝑐+ + 𝑐 𝑐− + 𝑝 𝑝 𝑐𝑡
  • 15. AGAST (Adaptive and Generic Accelerated Segment Test) • Albero adattivo di switching.
  • 16. 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.
  • 17. Target Hardware FPGA Altera Step successivo: • Implementare AGAST su FPGA per la feature extraction su un flusso video
  • 18. Target Hardware FPGA Altera AGAST(C/C++) LegUp Verilog FPGA Altera
  • 19. 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.
  • 20. 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.
  • 21. LegUp High-Level Synthesis Framework • Caso di studio: Agast LegUp flusso puro Hardware Verilog
  • 24. 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.

Editor's Notes

  1. Buongiorno a tutti sono Alessandro D’Ambrosio vi parlerò del mio studio di ricerca dal titolo Algoritmi ed architetture per la risoluzione di problemi di visual search.
  2. Quindi vedremo che cos’è il visual seach, quali sono gli ambiti operativi, vi presenterò un algoritmo di visual search dog sift, analizzeremo un nuovo feature extraction AGAST(e quindi vedremo perchè ho optato per questa scelta). Ed infine vedremo come sono giunto al target hardware che era il nostro obiettivo, attraverso l’utilizzo di un framework: Legup
  3. Il Visual Search è una delle applicazioni nascenti della Computer Vision più importanti degli ultimi anni. Lo scopo di questa tecnologia è quello di permettere di poter effettuare delle ricerche in una base di dati, utilizzando come informazione di partenza, un’immagine di un oggetto di interesse. Si comprende come questo possa rivoluzionare lo stesso concetto di “ricerca dell’informazioni” in quanto viene notevolmente allargata la capacità di interazione tra l’uomo e il calcolatore, alla quale non verranno più forniti dati elementari preventivamente selezionati e preparati, ma saranno elargiti direttamente idee e concetti sotto forma di immagini visive.
  4. Image Processing: per prima cosa bisogna processare l’immagine in input. Tale elaborazione prevede l’estrazione di informazioni rappresentate sotto forma di descrittori o feature, che hanno il compito di descrivere la scena rappresentata dall’immagine Description: le feature estratte dalle immagini vengono trasformate e rappresentate utilizzando dei modelli che ne rendano più agevole la gestione e l’uso. Compressione: Una volta che le feature sono state estratte da un’immagine esiste la possibilità che esse debbano essere utilizzate per le operazioni di matching con le informazioni fornite da altre elaborazioni. Necessita di descrittori compatti
  5. La prima fase di studio, è stata quella del DoG per la feature extraction con Sift per le fasi successive. Andremo ora ad analizzare il DoG ovvero Difference of Gaussian
  6. L’algoritmo si pone come obiettivo di identificare punti dell’immagine che sono invarianti ai cambiamenti di scala e che presentino una certa robustezza ai cambiamenti di illuminazione, del punto di osservazione e all’aggiunta di rumore. La ricerca di tali punti può essere condotta attraverso l’utilizzo di una funzione continua conosciuta come Scala. L’immagine iniziale viene incrementalmente convoluta con le gaussiane,il risultato è un insieme di immagini nello scale-space separate tra di loro da un fattore costante k. In seguito vengono sottratte le gaussiane adiacenti, alla fine di questa operazione l’immagine viene scalata di un fattore 2 (downsampling) togliendo ogni secondo pixel in ciascuna riga e in ciascuna colonna, l’operazione da origine ad una nuova immagine sottocampionata che viene chiamata ottava.
  7. avente valore medio μ = 1 e varianza sigma assegnata. Effettuando la convoluzione tra l’immagine data e la Gaussiana, si ottiene una nuova immagine che è la riproduzione dell’immagine iniziale, ma sfocata (blurred); l’intensità di tale sfocatura viene definita dal valore del raggio sigma. A questo punto la funzione DoG, che non è altro che la rappresentazione della differenza tra due immagini convolute rispettivamente con due gaussiane di raggio differente e viene definita come: L’efficacia di questa metodologia nella ricerca di questi punti invarianti al cambiamento di scala, può essere dimostrata osservando che la funzione DoG è un’approssimazione del Laplaciano di Gaussiana (LoG, Laplacian of Gaussian),
  8. L’algoritmo SIFT rappresenta un metodo per estrarre descrittori che siano distintivi e invarianti, che possano essere usati per effettuare un matching affidabile tra due viste del medesimo oggetto o scena. L’algoritmo si compone delle seguenti fasi: Individuazione delle extrema-location: il primo stadio della computazione , si cercano i punti notevoli all’interno di tutte le scale e locazioni dell’immagine; viene calcolato efficacemente usando una funzione DoG che identifica i punti di potenziale interesse, che sono invarianti rispetto la riduzione in scala e all’orientamento. Keypoint localization: viene eseguito un ulteriore filtraggio dei punti candidati individuati dal DoG. Con un procedimento pensato dallo stesso Lowe, si riescono a scartare i punti candidati che si trovano in zone di basso contrasto e quelli che vengono mantenuti, sono scelti in base alla loro stabilità. Orientation assignment: uno o più orientamenti sono assegnati a ogni keypoint in base alle direzioni locali del gradiente dell’immagine. Tutte le future operazioni sono effettuate sui dati dell’immagine, i quali sono stati trasformati relativamente all’orientamento assegnato, scalatura e locazione per ciascun descrittore in modo da garantire invarianza rispetto a queste trasformazioni. Keypoint descriptor: I gradienti locali dell’immagine sono misurati ad una particolare scala nella regione che circonda i keypoint. Questi vengono poi trasformati in una rappresentazione che fornisce una certa stabilità alle distorsioni dovute al rumore e ai cambiamenti di luce.
  9. Qui possiamo vedere come SIFT lavora su un’immagine campione.
  10. Problema di processo con DoG viene calcolato il tutto a priori. AGAST metodo adattivo con albero di ricerca
  11. Agast è differente da DoG perchè usa una tecnica per il corner detector differente. Infatti usa un albero decisionale binario che è generico e non deve essere adattato a nuovi ambienti. E’ completo per definizione(nessuna risposta di falsi positivi o falsi negativi), e gli unici parametri sono il tempo di accesso alla memoria per ponderare i vari confronti dei pixel. L’albero è ottimale per una certa probabilità di pixel simili nella machera AST. Combinando due alberi, il corner detector si adatta all’ambiente automaticamente e fornisce l’albero decisionale più efficiente per la regione di immagine con un solo pixel ritardo. Quindi si determina un corner detection, che è più veloce e non deve essere addestrato mantenendo la stessa risposta angolare e ripetibilità come FAST corner detector. Ogni nodo è un pixel all’interno della finestra di riferimento. Un’omogeneatà locale non porta informazione ma se calcolo un intorno posso ottenerle Provo e determino se un’area dell’immagine può essere stata generata da uno o più segmenti intersecati (Abbiamo un’immagine descritta vogliamo risalire all’immagine) In soldoni, agast prende in esame un kernel nel nostro caso 5_8 in un intorno di un’immagine, all’intenrno partendo dal pixel centrale applichiamo l’albero di decisione per esaminare il pixel. Spiegare meglio le differenze e cosa fa l’albero
  12. Invece di considerare solo una configurazione di spazio ristretta come in FAST, AGAST propone di utilizzare uno spazio di configurazione più dettagliata al fine di fornire una soluzione più efficiente. Per fare questo, noi consideriamo di valutare una sola domanda per volta. L’idea è la seguente: scegliere uno dei pixel per test ed una domanda da porre. La domanda è quindi valutata per questo dato pixel, e la risposta è utilizzata per decidere la seguente pixel/domanda di interrogazione. Ricerca per corner, di conseguenza, si riduce ad un attraversamento di un albero di decisione binario. Dal momento che , è necessario specificare quale pixel per interrogazione e quale tipo di domanda da utilizzare. Di conseguenza, la configurazione dello spazio aumenta con l’aggiunta di altri due stati: “not brighter” (b) e “not darker” (d). Lo stato di un pixel rispetto al nucleo n, indicato con n–>x è assegnato come segue: dove S’ è lo stato precedente, I è la luminosità del pixel ed u è lo stato che non conosciamo. La tecnica di attraversamento è adattiva. Attraversiamo l’albero in base al contenuto dell’immagine.
  13. Allo scopo di trovare un albero di decisione ottimale, abbiamo implementato un algoritmo che è simile ad un metodo induttivo. Noi esploriamo lo spazio delle regole di configurazione partendo dalla radice dell’albero di decisione, dove nessun pixel è conosciuto. Noi esploriamo lo spazio di configurazione prima che la foglia è trovata, dove una foglia è definita come il primo nodo del percorso che adempie o non può adempiere alle regole di rilevamento del corner di interesse. Il costo dato dalla foglia è zero, mentre il costo dato da ogni nodo interno, Cp, è determinato prendendo il costo minimo di computazione per ogni figlio C+ e C≠, che rappresentano il risultato positivo e negativo del test attraverso: Utilizzando questa tecnica di programmazione dinamica riusciamo a trovare l’albero decisionale per una AST ottimale (OAST) in modo efficiente. L’albero di decisione risultante può quindi essere ottimizzato per diversi valori, ma anche per le probabilità arbitrari per ogni configurazione pixels che è necessario per il nostro approccio descritto nella sezione seguente. Lo spazio di configurazione binario consente di ottenere alberi di decisione che riducono l’entropia più rapidamente di un albero ternario. Si noti che il costo aggiuntivo ,rivalutando stesso pixel in un punto successivo nel tempo, viene preso in considerazione quando si calcola l’albero ottimale.
  14. Ogni immagine ha , aree di ingombro indipendenti della scena , omogenei e (non) che rappresentano superfici uniformi o regioni strutturati con texture. Quindi , invece di imparare la distribuzione delle configurazioni dei pixel da immagini di addestramento , come FAST, una prima generalizzazione sarebbe imparare la probabilità di regioni strutturate ed omogenee e ottimizzare l’albero decisionale secondo questa distribuzione . L’albero risultante è completo e ottimizzato per la scena di addestramento , pur essendo invariante alle rotazioni della telecamera . La probabilità di un’immagine omogenea può essere modellato per la probabilità di uno stato pixel essere simile al nucleo (ps) . I " brillanti " e stati " scuri sono stati a specchio , il che significa che , ad esempio , un pixel luminoso sul modello test valuterà il pixel nucleo attuale più scuro , non appena diventa il pixel centrale . A causa di questo mirroring gli stati " brillanti " e " scuri" si presume di avere la stessa probabilità (pbd) , che viene scelto per riassumere a uno con ps(ps+2pbd = 1). Pertanto, la probabilità di un px configurazione pixel può essere calcolato come segue : La distribuzione di probabilità della configurazione pixel è quindi una distribuzione trinomiale con le probabilità ps e due volte pbd . Si noti che gli stati d, b e u non sono campioni di questa distribuzione ma rappresentano rispettivamente un insieme di due e tre campioni
  15. Questo non è praticamente possibile, per effetto mirroring di pixel diversi come descritto in precedenza. Tuttavia, le immagini naturali di solito non hanno una distribuzione della luminosità casuale, ma sono piuttosto divisi in regioni ingombra ed uniformi. Se gli alberi di decisione possono essere fortemente bilanciati variando ps , anche più di due alberi diversi ponderato può essere utilizzato.
  16. In LegUp , è possibile compilare l’intero programma C in hardware , o è anche possibile selezionare una o più funzioni del programma da elaborare per acceleratori hardware , con i restanti segmenti di programma in esecuzione nel software sul processore MIPS. Compilare l’intero programma in hardware può dare i maggiori benefici in termini di prestazioni ed efficienza energetica . Tuttavia , ci possono essere parti del programma che non sono adatti per hardware come liste , ricorsione , o le operazioni di memoria dinamica . In questo caso , le funzioni di calcolo intensive possono essere accelerate via hardware , con il resto del programma in esecuzione nel software . Questo permette di sostenere una più ampia gamma di applicazioni e consente una vasta esplorazione del hardware / software di co-design . Con il processore MIPS, è possibile anche eseguire l’intero programma di software. In questo capitolo vedremo come si utilizzano i diversi flussi in LegUp.Si vedrà anche come è possibile migliorare la velocità di circuito con anello di pipelining
  17. Descrivere brevemente verilog
  18. Siamo passati da una soluzione DoG-SiFT ad una soluzione + ottimale AGAST – SIFT per poter gestire in modo migliore il flusso video su un FPGA IDEM SIFT FASI 2 E 3
  19. Per finire nei benefici possiamo inglobare anche il framework utilizzato(LegUp), che ci ha permesso di avere un valido ambiente di sviluppo per la programmazzione ed il testing del codice Verilog, conoscendo semplicemente il linguaggio C. Per quanto riguarda gli sviluppi futuri, si passerà al testing effettivo del sorgente Verilog di AGAST generato da LegUp su una FPGA e verranno confrontati i tempi di esecuzione con un’implementazione di AGAST in Verilog scritta a mano. Esplorare la modalità ibrida per rendere l’algoritmo esploso in sezioni parallele solo quando non c’è dipendenza esplicita o implicita dei dati e quindi sfruttare al meglio le parti seriali con un processore seriale.