SlideShare a Scribd company logo
1 of 22
Tecniche e Architetture per il
Riconoscimento, il Confronto e la
Ricerca di Corrispondenze di Immagini
Laureando:
Ulysse Rosset
Relatore:
Prof. Ing. Giovanni Ramponi
Correlatori:
Prof. Ing. Livio Tenze
Ing. Alessandro Segatto
Università degli Studi di Trieste
Dipartimento di Ingegneria e Architettura
LAUREA MAGISTRALE in
INGEGNERIA INFORMATICA e ELETTRONICA
Problema Affrontato e Obiettivo
 Problema: trovare la migliore corrispondenza data un’immagine di input
 Obiettivo: ricerca di metodi e tecniche di image matching che eseguano il
confronto tra un’immagine di input e N immagini di un dataset
Immagine raffigurante lo stesso oggetto dell’immagine di input
 Tipologia di immagini: bottiglie o etichette di bottiglie di vino
 Confronti basandosi solo su feature intrinseche alle stesse immagini (no OCR)
Contesto
• Tirocinio presso l’azienda ESTECO SpA in AREA Science Park (Trieste)
ESTECO SpA
 Azienda di software altamente specializzata nell'ottimizzazione numerica e
nella gestione di processi e dati di simulazione
 Risultati dei test eseguiti per valutare le performance dei metodi verranno
analizzati dall’azienda → ricerca tramite immagine nell’app Vinnie
 Immagine della bottiglia di vino utilizzata come input di ricerca invece
della stringa testuale (nome del vino) da digitare nella barra di ricerca
Vinnie
Principali funzionalità di Vinnie:
 Assistente virtuale in modalità chat che, sfruttando una AI ed in base alle
indicazione dell’utente, trova l’abbinamento vino-cibo ideale
 AI integrata per apprendere preferenze e gusti dell’utente e fornirgli consigli e
suggerimenti sempre più personalizzati
 Attribuire una valutazione personale (non pubblica) al vino
 Compilare una scheda di degustazione con note visive, olfattive e gustative
 Informazioni di degustazione, abbinamenti consigliati, informazioni di servizio
App e Servizi Concorrenti
Funzionalità non presenti in Vinnie ma disponibili in app e servizi concorrenti:
 Inserire valutazioni e giudizi pubblici (Vivino, Wine-Searcher, CellarTracker)
 Ampia raccolta di recensioni e giudizi su vini (Vivino, CellarTracker)
 Store interno (Vivino, Delectable tramite Banquet) o store esterno (Wine-Searcher)
 Contatti diretti con produttori di vino → prezzi competitivi (Wine-Searcher, TWIL)
 Forum di discussione con anche utenti esperti e qualificati (CellarTracker)
 Seguire consigli di esperti sommelier (Delectable)
 Punto di forza Vinnie: assistente virtuale in modalità chat che sfrutta una AI
Metodi Sperimentati
• Descrizione delle principali caratteristiche e del funzionamento di ogni metodo
• Risultati dei migliori metodi e soluzione di image matching proposta
Metriche di Somiglianza tra Immagini
 Metriche di somiglianza tra immagini utilizzate:
• MSE • PSNR • SSIM index • UQI index
• ERGAS • RASE • SAM
1. Lettura immagine di input e di un’immagine del dataset
2. Resize immagine input → immagine dataset e immagini dataset → immagine input
3. Calcolo della metrica tra immagine di input e ogni immagine del dataset
4. Memorizzazione dei valori in un dizionario (nome immagine, valore metrica)
5. Ordinamento dizionario e restituzione del 1° elemento → immagine più simile
Firme di Immagini
 Calcolo di un identificatore per ogni immagine → signature (firma)
 Firma derivata da codifica della luminosità relativa delle regioni dell’immagine
 Metrica di confronto: distanza normalizzata tra firme
 Firme di versioni diverse della stessa immagine hanno una distanza vettoriale ridotta
1. Calcolo delle firme delle immagini
2. Calcolo della distanza normalizzata tra le firme
3. Memorizzazione dei valori distanze in dizionario (nome immagine, valore distanza)
4. Ordinamento dizionario e restituzione del 1° elemento → immagine più simile
Formato Signature
Algoritmi di Image Hashing
 Algoritmi di image hashing utilizzati:
• A-Hash (Average Hash) • P-Hash (Perceptual Hash) struttura immagine
• D-Hash (Difference Hash) • W-Hash (Wavelet Hash) in base alla luminanza
• HSV Color Hash (color hash) distribuzione del colore dell’immagine
 Hash: stringhe alfanumeriche di simboli hex di lunghezza 16
 Ad immagini simili per contenuto corrispondono hash simili per simboli (≠ MD5, SHA)
 Metriche di distanza tra hash: distanza di Hamming, Levenshtein, Jaccard e Sorensen
1. Fase di setup: lettura immagini, calcolo hash, creazione dataframe
|nome immagine|valore hash|, conversione in .csv e salvataggio in locale del file
2. Fase di evaluation: importazione .csv, conversione in un dataframe, calcolo distanza tra
hash immagine di input e hash immagini del dataset, aggiunta distanze al dataframe
3. Ordinamento dataframe e restituzione della 1a riga → immagine più simile
Formato Hash
CNN pre-allenate
 Reti neurali convoluzionali (CNN) pre-allenate su dataset Imagenet:
• MobileNet • MobileNetV2
• InceptionV3 • ResNet • ResNetV2 • InceptionResNetV2 • Xception
 Metrica di confronto tra immagini: cosine similarity
1. Calcolo della cosine similarity tra immagine di input e immagini del dataset
2. Memorizzazione valori in dizionario [immagine, (immagine simile, valore cosine
similarity)] per immagini simili aventi valore > rispetto ad una soglia ottimale
3. Selezione lista (immagine simile, valore cosine similarity) dell’immagine di input
4. Ordinamento lista e restituzione della 1a coppia della lista → immagine più simile
Confronto tra Istogrammi di Immagini
 Calcolo e confronto degli istogrammi tramite le seguenti metriche o distanze:
• Correlazione tra istogrammi • distanza Chi-Square usando metodi
• Intersezione tra istogrammi • distanza di Hellinger nativi di OpenCV
• Distanza Euclidea • Distanza di Manhattan • Distanza di Chebyshev usando SciPy
 Istogrammi costituiti da bin → intervalli di valori assumibili dai pixel
1. Lettura immagini, conversione BGR → RGB
2. Estrazione istogrammi 3D RGB, 8 bin, intervallo [0, 255], normalizzazione min-max ,
concatenazione istogramma di ogni canale in un unico array → feature array da 512 dim
3. Creazione dizionario (immagine, istogramma) e calcolo metrica/distanza tra istogrammi
4. Creazione dizionario (immagine, valore metrica o distanza), ordinamento e restituzione
del 1° elemento → immagine più simile
Algoritmi di Feature Extraction e Matching
 Varie tecniche di image matching con algoritmi AKAZE, BRISK, ORB e SIFT, SURF
e una combinazione delle seguenti procedure:
• Matching tra descriptor: 1) BF Matcher o 2) FLANN-based Matcher
• Metrica per match tra descriptor: 1) Distanza di Manhattan o Euclidea o di Hamming
2) Algoritmi KD-TREE o LSH
• Lowe’s ratio test: soglia 0.6 o 0.7 o 0.75 • Omografia: errore di riproiezione 2.0 o 5.0
• Algoritmi di mismatch removal: RANSAC o PROSAC
1. Lettura immagini, rilevazione keypoint, calcolo descriptor
2. Calcolo # match tra descriptor immagine di input e descriptor immagini del dataset
3. Creazione dizionario ed inserimento elementi (immagine, # match) per immagini
aventi # match > rispetto ad una soglia ottimale
4. Ordinamento dizionario e restituzione del 1° elemento → immagine più simile
Formato Descriptor
Visualizzazione Risultati
Immagine più simile
Migliore Corrispondenza
(best match)
Migliori
Corrispondenze
Visualizzazione Risultati
Immagine più simile
Migliore Corrispondenza
(best match)
Migliori
Corrispondenze
Caso di Studio
 Dataset: 160 immagini di bottiglie di vino diverse Test set: 1600 immagini
 Applicazione di 10 tipi di trasformazioni - distorsioni alle immagini del dataset:
• scaling (al 50 %, al 25 %) • rotation (+20°, +50°, -30°)
• compression (downsampling 4:2:0) • cropping (del 30 %, zona random)
• near (varie distorsioni presenti) • g_s (gamma correction, histogram stretching)
• s_n_f (shifting, speckle noise, filtri mediano e gaussiano)
 Valutazione delle performance dei metodi in termini di precision e runtime
 Relativamente agli algoritmi di feature matching anche:
# medio feature rilevate # medio di match tra feature
ORB >> BRISK > SURF > SIFT > AKAZE ORB >> SIFT > BRISK > SURF > AKAZE
Risultati Principali
 Miglior metodo in termini di runtime:
• D-Hash + distanza di Hamming / Levenshtein (Runtime: 0.08 s, Precision: 40 %)
 Migliori metodi in termini di precision:
• ORB, BRISK, SIFT (Runtime: 4-5 s, Precision: 98-99 %)
 Migliori metodi in termini di precision e runtime:
• Estrazione istogrammi RGB + distanza di Hellinger (Runtime: 0.45 s, Precision: 95 %)
Tuttavia, non scalabile per dataset più ampi, peggioramento performance
• ORB (BRISK) + LSH + Lowe’s RT 0.75 + omografia 5.0 (2.0) + RANSAC (PROSAC)
(Runtime: 3.75 s (4.25 s), Precision: 98 % (99 %))
Soluzione di Image Matching proposta
 Setup:
♦ Downsampling delle immagini del dataset al ≈ 10 % della dimensione originaria
♦ Calcolo degli hash delle immagini del dataset e memorizzazione hash in un file .csv
 Evaluation:
♦ Lettura dal .csv delle stringhe hash delle immagini, calcolo hash dell’immagine di input
♦ Calcolo delle distanze tra hash immagine di input e gli hash delle immagini del dataset
♦ Inserimento (immagine, distanza tra hash) in dataframe e ordinamento in ordine crescente
♦ Memorizzazione e scrittura in un file .txt del filename delle immagini aventi distanza < rispetto
ad una soglia ottimale → elenco dei putative match
♦ Downsampling dell’immagine di input al ≈ 10 % della dimensione originaria
♦ Esecuzione di un algoritmo di feature extraction e matching sui putative match
♦ Restituzione della migliore corrispondenza → immagine più simile
Soluzione di Image Matching proposta
* Downsampling dell’immagine di input ≈ 0.15 s
 Tuttavia, per dataset di dimensioni maggiori, in vari esperimenti in letteratura:
• BRISK ha una precision quasi pari a ORB e un runtime leggermente superiore
• ORB è il più efficiente algoritmo di feature matching in termini di precision con
un runtime secondo solo a quello di AKAZE
Alg. Image
Hashing
Distanza tra
stringhe hash
Alg. feature matching Precision Runtime
A-Hash (0.08 s) Levenshtein AKAZE (0.85 s) 98 % 1.10 s *
D-Hash (0.08 s) Hamming BRISK (1.15 s) 99 % 1.30 s *
D-Hash (0.08 s) Hamming ORB (1.60 s) 98 % 1.80 s *
Image Matching tramite OCR
Google Cloud Vision
 Riconosce correttamente ogni
area testuale
 Font molto stilizzati e particolari
 Scritte poco nitide, parole sfocate
 Numerosi formati supportati: JPEG,
PNG, GIF, Raw, WebP e altri
 Aree testuali non presenti, molto
spesso formate da un carattere
Amazon Rekognition Text In Image
 Rileva correttamente tutte e le
sole aree testuali
 Facile sfruttamento del servizio,
rapida configurazione Rekognition
API request
 Problemi nell’identificazione di font
stilizzati e parole sfocate
 Formati immagine supportati sono
solo JPEG e PNG
Sviluppi Futuri
 Soluzione ibrida combinando detector e descriptor diversi:
• FAST (det.) + ORB (des.) • CenSurE (det.) + ORB (des.)
• FAST (det.) + FREAK (des.)
 BEBLID (2020)
 Learning method:
• SuperPoint • LFNet (CNN)
Grazie per l’attenzione

More Related Content

Similar to Tecniche e Architetture per il Riconoscimento, il Confronto e la Ricerca di Corrispondenze di Immagini.pdf

Metodi_Iterativi_28_10_2016
Metodi_Iterativi_28_10_2016Metodi_Iterativi_28_10_2016
Metodi_Iterativi_28_10_2016Michele Scipioni
 
Content-based Image Retrieval con Relevance Feedback
Content-based Image Retrieval con Relevance FeedbackContent-based Image Retrieval con Relevance Feedback
Content-based Image Retrieval con Relevance Feedbackmrabbi
 
Informatica applicata ai beni culturali
Informatica applicata ai beni culturaliInformatica applicata ai beni culturali
Informatica applicata ai beni culturaliSalvatore Paone
 
Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...
Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...
Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...guestfe85ba
 
Presentazione prelaurea Antonio Procentese
Presentazione prelaurea  Antonio Procentese Presentazione prelaurea  Antonio Procentese
Presentazione prelaurea Antonio Procentese AntonioProcentese1
 
Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...
Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...
Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...laboratoridalbasso
 
Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...
Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...
Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...AntonioProcentese1
 
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Andrea Bidinost
 

Similar to Tecniche e Architetture per il Riconoscimento, il Confronto e la Ricerca di Corrispondenze di Immagini.pdf (13)

Metodi_Iterativi_28_10_2016
Metodi_Iterativi_28_10_2016Metodi_Iterativi_28_10_2016
Metodi_Iterativi_28_10_2016
 
Content-based Image Retrieval con Relevance Feedback
Content-based Image Retrieval con Relevance FeedbackContent-based Image Retrieval con Relevance Feedback
Content-based Image Retrieval con Relevance Feedback
 
Informatica applicata ai beni culturali
Informatica applicata ai beni culturaliInformatica applicata ai beni culturali
Informatica applicata ai beni culturali
 
Adobe Fireworks CS3 - Scheda corso LEN
Adobe Fireworks CS3 - Scheda corso LENAdobe Fireworks CS3 - Scheda corso LEN
Adobe Fireworks CS3 - Scheda corso LEN
 
Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...
Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...
Presentazione PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMA...
 
Graphics for dummies
Graphics for dummiesGraphics for dummies
Graphics for dummies
 
Graphics for dummies
Graphics for dummiesGraphics for dummies
Graphics for dummies
 
Presentazione prelaurea Antonio Procentese
Presentazione prelaurea  Antonio Procentese Presentazione prelaurea  Antonio Procentese
Presentazione prelaurea Antonio Procentese
 
Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...
Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...
Ldb 25 strumenti gis e webgis_2014-05-14 gullotta - 2 modelli di rappresentaz...
 
relazione
relazionerelazione
relazione
 
Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...
Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...
Sviluppo di un algoritmo in c++ per il riconoscimento di immagini ricatturate...
 
Presentazione ufficiale
Presentazione ufficialePresentazione ufficiale
Presentazione ufficiale
 
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
 

Recently uploaded

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniServizi a rete
 

Recently uploaded (7)

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
 

Tecniche e Architetture per il Riconoscimento, il Confronto e la Ricerca di Corrispondenze di Immagini.pdf

  • 1. Tecniche e Architetture per il Riconoscimento, il Confronto e la Ricerca di Corrispondenze di Immagini Laureando: Ulysse Rosset Relatore: Prof. Ing. Giovanni Ramponi Correlatori: Prof. Ing. Livio Tenze Ing. Alessandro Segatto Università degli Studi di Trieste Dipartimento di Ingegneria e Architettura LAUREA MAGISTRALE in INGEGNERIA INFORMATICA e ELETTRONICA
  • 2. Problema Affrontato e Obiettivo  Problema: trovare la migliore corrispondenza data un’immagine di input  Obiettivo: ricerca di metodi e tecniche di image matching che eseguano il confronto tra un’immagine di input e N immagini di un dataset Immagine raffigurante lo stesso oggetto dell’immagine di input  Tipologia di immagini: bottiglie o etichette di bottiglie di vino  Confronti basandosi solo su feature intrinseche alle stesse immagini (no OCR)
  • 3. Contesto • Tirocinio presso l’azienda ESTECO SpA in AREA Science Park (Trieste)
  • 4. ESTECO SpA  Azienda di software altamente specializzata nell'ottimizzazione numerica e nella gestione di processi e dati di simulazione  Risultati dei test eseguiti per valutare le performance dei metodi verranno analizzati dall’azienda → ricerca tramite immagine nell’app Vinnie  Immagine della bottiglia di vino utilizzata come input di ricerca invece della stringa testuale (nome del vino) da digitare nella barra di ricerca
  • 5. Vinnie Principali funzionalità di Vinnie:  Assistente virtuale in modalità chat che, sfruttando una AI ed in base alle indicazione dell’utente, trova l’abbinamento vino-cibo ideale  AI integrata per apprendere preferenze e gusti dell’utente e fornirgli consigli e suggerimenti sempre più personalizzati  Attribuire una valutazione personale (non pubblica) al vino  Compilare una scheda di degustazione con note visive, olfattive e gustative  Informazioni di degustazione, abbinamenti consigliati, informazioni di servizio
  • 6. App e Servizi Concorrenti Funzionalità non presenti in Vinnie ma disponibili in app e servizi concorrenti:  Inserire valutazioni e giudizi pubblici (Vivino, Wine-Searcher, CellarTracker)  Ampia raccolta di recensioni e giudizi su vini (Vivino, CellarTracker)  Store interno (Vivino, Delectable tramite Banquet) o store esterno (Wine-Searcher)  Contatti diretti con produttori di vino → prezzi competitivi (Wine-Searcher, TWIL)  Forum di discussione con anche utenti esperti e qualificati (CellarTracker)  Seguire consigli di esperti sommelier (Delectable)  Punto di forza Vinnie: assistente virtuale in modalità chat che sfrutta una AI
  • 7. Metodi Sperimentati • Descrizione delle principali caratteristiche e del funzionamento di ogni metodo • Risultati dei migliori metodi e soluzione di image matching proposta
  • 8. Metriche di Somiglianza tra Immagini  Metriche di somiglianza tra immagini utilizzate: • MSE • PSNR • SSIM index • UQI index • ERGAS • RASE • SAM 1. Lettura immagine di input e di un’immagine del dataset 2. Resize immagine input → immagine dataset e immagini dataset → immagine input 3. Calcolo della metrica tra immagine di input e ogni immagine del dataset 4. Memorizzazione dei valori in un dizionario (nome immagine, valore metrica) 5. Ordinamento dizionario e restituzione del 1° elemento → immagine più simile
  • 9. Firme di Immagini  Calcolo di un identificatore per ogni immagine → signature (firma)  Firma derivata da codifica della luminosità relativa delle regioni dell’immagine  Metrica di confronto: distanza normalizzata tra firme  Firme di versioni diverse della stessa immagine hanno una distanza vettoriale ridotta 1. Calcolo delle firme delle immagini 2. Calcolo della distanza normalizzata tra le firme 3. Memorizzazione dei valori distanze in dizionario (nome immagine, valore distanza) 4. Ordinamento dizionario e restituzione del 1° elemento → immagine più simile Formato Signature
  • 10. Algoritmi di Image Hashing  Algoritmi di image hashing utilizzati: • A-Hash (Average Hash) • P-Hash (Perceptual Hash) struttura immagine • D-Hash (Difference Hash) • W-Hash (Wavelet Hash) in base alla luminanza • HSV Color Hash (color hash) distribuzione del colore dell’immagine  Hash: stringhe alfanumeriche di simboli hex di lunghezza 16  Ad immagini simili per contenuto corrispondono hash simili per simboli (≠ MD5, SHA)  Metriche di distanza tra hash: distanza di Hamming, Levenshtein, Jaccard e Sorensen 1. Fase di setup: lettura immagini, calcolo hash, creazione dataframe |nome immagine|valore hash|, conversione in .csv e salvataggio in locale del file 2. Fase di evaluation: importazione .csv, conversione in un dataframe, calcolo distanza tra hash immagine di input e hash immagini del dataset, aggiunta distanze al dataframe 3. Ordinamento dataframe e restituzione della 1a riga → immagine più simile Formato Hash
  • 11. CNN pre-allenate  Reti neurali convoluzionali (CNN) pre-allenate su dataset Imagenet: • MobileNet • MobileNetV2 • InceptionV3 • ResNet • ResNetV2 • InceptionResNetV2 • Xception  Metrica di confronto tra immagini: cosine similarity 1. Calcolo della cosine similarity tra immagine di input e immagini del dataset 2. Memorizzazione valori in dizionario [immagine, (immagine simile, valore cosine similarity)] per immagini simili aventi valore > rispetto ad una soglia ottimale 3. Selezione lista (immagine simile, valore cosine similarity) dell’immagine di input 4. Ordinamento lista e restituzione della 1a coppia della lista → immagine più simile
  • 12. Confronto tra Istogrammi di Immagini  Calcolo e confronto degli istogrammi tramite le seguenti metriche o distanze: • Correlazione tra istogrammi • distanza Chi-Square usando metodi • Intersezione tra istogrammi • distanza di Hellinger nativi di OpenCV • Distanza Euclidea • Distanza di Manhattan • Distanza di Chebyshev usando SciPy  Istogrammi costituiti da bin → intervalli di valori assumibili dai pixel 1. Lettura immagini, conversione BGR → RGB 2. Estrazione istogrammi 3D RGB, 8 bin, intervallo [0, 255], normalizzazione min-max , concatenazione istogramma di ogni canale in un unico array → feature array da 512 dim 3. Creazione dizionario (immagine, istogramma) e calcolo metrica/distanza tra istogrammi 4. Creazione dizionario (immagine, valore metrica o distanza), ordinamento e restituzione del 1° elemento → immagine più simile
  • 13. Algoritmi di Feature Extraction e Matching  Varie tecniche di image matching con algoritmi AKAZE, BRISK, ORB e SIFT, SURF e una combinazione delle seguenti procedure: • Matching tra descriptor: 1) BF Matcher o 2) FLANN-based Matcher • Metrica per match tra descriptor: 1) Distanza di Manhattan o Euclidea o di Hamming 2) Algoritmi KD-TREE o LSH • Lowe’s ratio test: soglia 0.6 o 0.7 o 0.75 • Omografia: errore di riproiezione 2.0 o 5.0 • Algoritmi di mismatch removal: RANSAC o PROSAC 1. Lettura immagini, rilevazione keypoint, calcolo descriptor 2. Calcolo # match tra descriptor immagine di input e descriptor immagini del dataset 3. Creazione dizionario ed inserimento elementi (immagine, # match) per immagini aventi # match > rispetto ad una soglia ottimale 4. Ordinamento dizionario e restituzione del 1° elemento → immagine più simile Formato Descriptor
  • 14. Visualizzazione Risultati Immagine più simile Migliore Corrispondenza (best match) Migliori Corrispondenze
  • 15. Visualizzazione Risultati Immagine più simile Migliore Corrispondenza (best match) Migliori Corrispondenze
  • 16. Caso di Studio  Dataset: 160 immagini di bottiglie di vino diverse Test set: 1600 immagini  Applicazione di 10 tipi di trasformazioni - distorsioni alle immagini del dataset: • scaling (al 50 %, al 25 %) • rotation (+20°, +50°, -30°) • compression (downsampling 4:2:0) • cropping (del 30 %, zona random) • near (varie distorsioni presenti) • g_s (gamma correction, histogram stretching) • s_n_f (shifting, speckle noise, filtri mediano e gaussiano)  Valutazione delle performance dei metodi in termini di precision e runtime  Relativamente agli algoritmi di feature matching anche: # medio feature rilevate # medio di match tra feature ORB >> BRISK > SURF > SIFT > AKAZE ORB >> SIFT > BRISK > SURF > AKAZE
  • 17. Risultati Principali  Miglior metodo in termini di runtime: • D-Hash + distanza di Hamming / Levenshtein (Runtime: 0.08 s, Precision: 40 %)  Migliori metodi in termini di precision: • ORB, BRISK, SIFT (Runtime: 4-5 s, Precision: 98-99 %)  Migliori metodi in termini di precision e runtime: • Estrazione istogrammi RGB + distanza di Hellinger (Runtime: 0.45 s, Precision: 95 %) Tuttavia, non scalabile per dataset più ampi, peggioramento performance • ORB (BRISK) + LSH + Lowe’s RT 0.75 + omografia 5.0 (2.0) + RANSAC (PROSAC) (Runtime: 3.75 s (4.25 s), Precision: 98 % (99 %))
  • 18. Soluzione di Image Matching proposta  Setup: ♦ Downsampling delle immagini del dataset al ≈ 10 % della dimensione originaria ♦ Calcolo degli hash delle immagini del dataset e memorizzazione hash in un file .csv  Evaluation: ♦ Lettura dal .csv delle stringhe hash delle immagini, calcolo hash dell’immagine di input ♦ Calcolo delle distanze tra hash immagine di input e gli hash delle immagini del dataset ♦ Inserimento (immagine, distanza tra hash) in dataframe e ordinamento in ordine crescente ♦ Memorizzazione e scrittura in un file .txt del filename delle immagini aventi distanza < rispetto ad una soglia ottimale → elenco dei putative match ♦ Downsampling dell’immagine di input al ≈ 10 % della dimensione originaria ♦ Esecuzione di un algoritmo di feature extraction e matching sui putative match ♦ Restituzione della migliore corrispondenza → immagine più simile
  • 19. Soluzione di Image Matching proposta * Downsampling dell’immagine di input ≈ 0.15 s  Tuttavia, per dataset di dimensioni maggiori, in vari esperimenti in letteratura: • BRISK ha una precision quasi pari a ORB e un runtime leggermente superiore • ORB è il più efficiente algoritmo di feature matching in termini di precision con un runtime secondo solo a quello di AKAZE Alg. Image Hashing Distanza tra stringhe hash Alg. feature matching Precision Runtime A-Hash (0.08 s) Levenshtein AKAZE (0.85 s) 98 % 1.10 s * D-Hash (0.08 s) Hamming BRISK (1.15 s) 99 % 1.30 s * D-Hash (0.08 s) Hamming ORB (1.60 s) 98 % 1.80 s *
  • 20. Image Matching tramite OCR Google Cloud Vision  Riconosce correttamente ogni area testuale  Font molto stilizzati e particolari  Scritte poco nitide, parole sfocate  Numerosi formati supportati: JPEG, PNG, GIF, Raw, WebP e altri  Aree testuali non presenti, molto spesso formate da un carattere Amazon Rekognition Text In Image  Rileva correttamente tutte e le sole aree testuali  Facile sfruttamento del servizio, rapida configurazione Rekognition API request  Problemi nell’identificazione di font stilizzati e parole sfocate  Formati immagine supportati sono solo JPEG e PNG
  • 21. Sviluppi Futuri  Soluzione ibrida combinando detector e descriptor diversi: • FAST (det.) + ORB (des.) • CenSurE (det.) + ORB (des.) • FAST (det.) + FREAK (des.)  BEBLID (2020)  Learning method: • SuperPoint • LFNet (CNN)