ITMI20120003A1 - Analisi d'immagine - Google Patents

Analisi d'immagine Download PDF

Info

Publication number
ITMI20120003A1
ITMI20120003A1 IT000003A ITMI20120003A ITMI20120003A1 IT MI20120003 A1 ITMI20120003 A1 IT MI20120003A1 IT 000003 A IT000003 A IT 000003A IT MI20120003 A ITMI20120003 A IT MI20120003A IT MI20120003 A1 ITMI20120003 A1 IT MI20120003A1
Authority
IT
Italy
Prior art keywords
keypoint
keypoints
local characteristic
relevance
characteristic
Prior art date
Application number
IT000003A
Other languages
English (en)
Inventor
Massimo Balestri
Gianluca Francini
Skjalg Lepsoy
Original Assignee
Telecom Italia Spa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telecom Italia Spa filed Critical Telecom Italia Spa
Priority to IT000003A priority Critical patent/ITMI20120003A1/it
Priority to JP2014550677A priority patent/JP5845361B2/ja
Priority to US14/370,108 priority patent/US9269020B2/en
Priority to PCT/EP2012/076398 priority patent/WO2013102574A1/en
Priority to ES12816273T priority patent/ES2879937T3/es
Priority to CN201280069522.6A priority patent/CN104115162B/zh
Priority to EP12816273.2A priority patent/EP2801056B1/en
Priority to BR112014016400-2A priority patent/BR112014016400B1/pt
Priority to KR1020147021748A priority patent/KR102049078B1/ko
Priority to ARP120105058A priority patent/AR089531A1/es
Publication of ITMI20120003A1 publication Critical patent/ITMI20120003A1/it
Priority to US14/991,556 priority patent/US9373056B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)
  • Holo Graphy (AREA)
  • Investigating Or Analysing Materials By Optical Means (AREA)

Description

ANALISI D’IMMAGINI
Sfondo dell’invenzione
Campo dell’invenzione
La presente invenzione si riferisce al campo dell’analisi d’immagini.
Descrizione dello stato della tecnica
Nel campo dell’analisi di immagini, un’operazione comune prevede il confrontare due immagini allo scopo di trovare la relazione che intercorre tra loro in caso entrambe le immagini includano almeno una porzione di una stessa scena o di uno stesso oggetto.
Tra le numerose applicazioni, la comparazione d’immagini à ̈ della massima importanza per calibrare videocamere di un sistema multicamera, allo scopo di stimare il movimento che si manifesta tra due frame di una ripresa video, e per il riconoscimento di un oggetto in un’immagine (ad esempio una foto). L’ultima applicazione sta ora assumendo sempre più importanza a causa dei recenti sviluppi di algoritmi di riconoscimento oggetti progettati specificatamente per essere utilizzati nei cosiddetti motori di ricerca visuali, ovvero servizi automatizzati che, a partire da una foto, sono in grado di identificare l’oggetto(i) illustrato(i) in essa ed offrire informazioni relative all’oggetto(i) identificato(i). Esempi di servizi noti di questo tipo includono Google Goggles, Nokia Point&Find, and Kooaba Smart Visuals. Un’applicazione di riconoscimento oggetti tipicamente prevede che una prima immagine – in gergo identificata come “immagine di query†– illustrante un oggetto da identificare sia confrontata con una pluralità di immagini modello, ciascuna illustrante un rispettivo oggetto noto; questo permette di eseguire un confronto tra l’oggetto illustrato nella immagine di query e gli oggetti illustrati nelle immagini modello.
Le immagini modello sono tipicamente organizzate in un opportuno database modello. Per esempio, nel caso in cui il riconoscimento immagini sia sfruttato in uno scenario di shopping online, ciascuna immagine modello corrisponde ad un oggetto offerto da un negozio online (ad esempio la foto di una copertina di un libro, di una copertina di un DVD e/o la copertina di un CD). Il numero di immagini modello incluse in un database di questo tipo à ̈ elevato; ad esempio, un database modello di un servizio per lo shopping online può includere diversi milioni di immagini modello differenti.
Un modo molto efficiente per eseguire operazioni di comparazione tra due immagini prevede di selezionare un insieme di punti – in gergo, chiamati keypoints – nella prima immagine e quindi abbinare ciascun keypoint dell’insieme ad un corrispondente keypoint nella seconda immagine. La selezione di quale punto della prima immagine deve diventare un keypoint à ̈ vantaggiosamente eseguito estraendo caratteristiche locali dell’area dell’immagine che circonda il punto stesso, quali ad esempio la scala di estrazione del punto, l’orientamento privilegiato dell’area, ed il cosiddetto “descrittore†. Nel campo dell’analisi di immagini, un descrittore di un keypoint à ̈ un operatore matematico che descrive il gradiente di luminanza di un’area dell’immagine (chiamata “patch†) centrata attorno al keypoint, con tale patch che à ̈ orientata secondo il gradiente di luminanza principale della patch stessa.
In “Distinctive image features from scale-invariant keypoints†di David G. Lowe, International Journal of computer vision, 2004, à ̈ stato proposto un descrittore di tipo Scale-Invariant Feature Transform (SIFT); in breve, allo scopo di permettere un riconoscimento immagine affidabile, i descrittori SIFT sono generati tenendo conto che le caratteristiche locali estratte dall’immagine corrispondenti a ciascun keypoint dovrebbero essere rilevabili anche in presenza di cambiamenti della scala, del rumore ed illuminazione dell’immagine. I descrittori SIFT sono quindi invarianti rispetto allo scalamento uniforme, all’orientazione, e parzialmente invarianti alla distorsione affine ed ai cambiamenti di illuminazione.
Il descrittore SIFT à ̈ uno strumento potente, che permette di selezionare keypoint per eseguire confronti d’immagine accurati. Tuttavia,questa accuratezza può essere ottenuta solamente con l’utilizzo di una quantità di dati elevata; per esempio, un descrittore SIFT tipico à ̈ un vettore di 128 byte di dati. Dato che il numero di keypoint in ciascuna immagine à ̈ relativamente elevato (ad esempio, 1000-1500 keypoint per una immagine VGA standard), e dato che ciascun keypoint à ̈ associato ad un corrispondente descrittore SIFT, la quantità totale di dati da elaborare può diventare eccessiva per essere gestita in maniera efficiente.
Questo inconveniente à ̈ esacerbato in caso lo scenario riguardi l’uso di terminali mobili (ad esempio, identificazioni di oggetti estratti da foto prese dalla fotocamera di uno smartphone). Infatti, dato che le operazioni da eseguire per eseguire l’analisi delle immagini sono piuttosto complesse e pesanti da un punto di vista del carico computazionale, in questo caso molte delle operazioni sono eseguite di solito lato server; allo scopo di avere tutte le informazioni richieste per eseguire l’analisi, il server ha bisogno di ricevere dal terminale mobile tutti i dati richiesti, comprendenti i descrittori SIFT per tutti i keypoint. Di conseguenza, la quantità di dati da trasmettere dal terminale al server può diventare eccessiva affinché sia garantita una buona efficienza di servizio.
In accordo con una soluzione nota nello stato della tecnica, quale ad esempio la soluzione usata da Google Goggles, questo inconveniente à ̈ risolto alla radice trasmettendo direttamente l’immagine, e non i descrittori, dal terminale mobile al server. Infatti, a causa dell’elevato numero di keypoints, la quantità di dati dei descrittori SIFT corrispondenti può eccedere la dimensione (intermini di byte) di una immagine VGA standard.
Sommario dell’invenzione
La Richiedente ha trovato che gli approcci noti nello stato della tecnica non sono efficienti, richiedendo ancora la gestione di una grande quantità di dati e/o la concentrazione di una grande parte delle operazioni su lato server, limitando la scalabilità del sistema e le prestazioni complessive.
Per esempio, la soluzione impiegata da Google Goggles, che prevede di trasmettere direttamente l’immagine – e non i descrittori – dal terminale mobile al server richiede che l’intero carico computazionale sia mosso verso il server, che può diventare sovraccarico. Inoltre, la trasmissione dell’immagine compressa richiede ancora una quantità di dati considerevole (ad esempio, decine di Kbytes per un’immagine VGA).
La Richiedente ha affrontato il problema di come migliorare questi approcci in termini di quantità di dati da elaborare.
In particolare, la Richiedente ha affrontato il problema di fornire un metodo per elaborare un’immagine che richiede una quantità ridotta di dati da gestire.
La Richiedente ha trovato che la quantità di dati da elaborare per eseguire procedure di analisi d’immagine può essere ridotta vantaggiosamente selezionando un sottoinsieme ottimale di keypoint – tra i keypoint identificati nell’immagine – secondo probabilità di rilevanza di caratteristica locale calcolate sulla base di distribuzioni statistiche di riferimento.
In accordo con una forma di realizzazione della presente invenzione, à ̈ proposto un metodo per elaborare un’immagine. Il metodo comprende identificare un primo gruppo di keypoint nell’immagine. Per ciascun keypoint del primo gruppo, il metodo prevede di identificare almeno una corrispondente caratteristica locale di keypoint relativa a detto ciascun keypoint; per detta almeno una caratteristica locale di keypoint, calcolare una corrispondente probabilità di rilevanza di caratteristica locale; calcolare una probabilità di rilevanza di keypoint sulla base delle probabilità di rilevanza di caratteristica locale di detta almeno una caratteristica locale. Il metodo comprende ulteriormente selezionare keypoint, tra i keypoint del primo gruppo, aventi le probabilità di rilevanza di keypoint più alte per formare un secondo gruppo di keypoint, e sfruttare i keypoint del secondo gruppo per analizzare l’immagine. La probabilità di rilevanza di caratteristica locale per una caratteristica locale di un keypoint à ̈ ottenuta confrontando il valore assunto da detta caratteristica locale con una corrispondente distribuzione statistica di riferimento di valori di detta caratteristica locale.
In accordo con una forma di realizzazione della presente invenzione, ciascuna di dette corrispondenti distribuzioni statistiche di riferimento à ̈ statisticamente equivalente ad una corrispondente distribuzione statistica generata raccogliendo, tra una pluralità di keypoint di riferimento identificati in una pluralità di coppie di immagini di riferimento, i valori di caratteristica locale corrispondenti a quei keypoint di riferimento di ciascuna coppia di immagini di riferimento che à ̈ stata riconosciuta implicare un abbinamento corretto di caratteristiche tra le immagini di riferimento di detta coppia.
Preferibilmente, detta almeno una caratteristica locale di keypoint riferita a detto ciascun keypoint comprende almeno uno tra coordinate del keypoint, la scala al quale il keypoint à ̈ stato identificato, l’orientazione dominante del keypoint, il picco del keypoint, ed un descrittore del keypoint.
In accordo con una forma di realizzazione della presente invenzione ciascuna distribuzione statistica di riferimento à ̈ organizzata in forma di un corrispondente istogramma avente una pluralità di bin. Ciascun bin corrisponde ad un intervallo predefinito di valori della corrispondente caratteristica locale. La frequenza di ciascun bin corrisponde ad un rapporto tra:
a) il numero di keypoint di riferimento che sono stati accertati implicare un abbinamento di caratteristica corretto ed avente un valore della corrispondente caratteristica locale che cade entro detto bin, e
b) il numero totale di keypoint di riferimento aventi un valore della corrispondente caratteristica locale che cade entro detto bin.
In accordo con una forma di realizzazione della presente invenzione, detto calcolare la probabilità di rilevanza di caratteristica locale per una caratteristica locale di un keypoint comprende ispezionare l’istogramma corrispondente a tale caratteristica locale allo scopo di identificare il bin di esso che corrisponde al valore assunto dalla caratteristica locale del keypoint, ed impostare la probabilità di rilevanza di caratteristica locale alla frequenza del bin identificato.
Vantaggiosamente, detto calcolare una probabilità di rilevanza di keypoint di un keypoint del primo gruppo include combinare le probabilità di rilevanza di caratteristica locale di ciascuna di detta almeno una caratteristica locale del keypoint corrispondente.
Preferibilmente, detto calcolare una probabilità di rilevanza di keypoint di un keypoint del primo gruppo include moltiplicare tra loro le probabilità di rilevanza di caratteristica locale di ciascuna di detta almeno una caratteristica locale del keypoint corrispondente.
Un altro aspetto della presente invenzione prevede un sistema per elaborare un’immagine. Detto sistema comprende una prima unità di elaborazione configurata per identificare un primo gruppo di keypoint nell’immagine, ed una seconda unità di elaborazione configurata per eseguire le seguenti operazioni per ciascun keypoint del primo gruppo:
a) identificare almeno una corrispondente caratteristica locale di keypoint relativa a detto ciascun keypoint;
b) per detta almeno una caratteristica locale di keypoint, calcolare una corrispondente probabilità di rilevanza di caratteristica locale;
c) calcolare una probabilità di rilevanza di keypoint sulla base delle probabilità di rilevanza di caratteristica locale di detta almeno una caratteristica locale.
Il sistema comprende inoltre una terza unità di elaborazione configurata per selezionare keypoint, tra i keypoint del primo gruppo, aventi le probabilità di rilevanza di keypoint più alte per formare un secondo gruppo di keypoint, ed una quarta unità di elaborazione configurata per sfruttare i keypoint del secondo gruppo per analizzare l’immagine. La probabilità di rilevanza di caratteristica locale calcolata per una caratteristica locale di un keypoint à ̈ ottenuta confrontando il valore assunto da detta caratteristica locale con una corrispondente distribuzione statistica di riferimento di valori di detta caratteristica locale.
Un ancora ulteriore aspetto della presente invenzione si riferisce ad un metodo per generare una distribuzione statistica di riferimento di valori di una caratteristica locale di keypoint.
Breve descrizione dei disegni
Queste ed ulteriori caratteristiche e vantaggi della presente invenzione saranno rese evidenti dalla seguente descrizione di alcune forme di realizzazione a titolo esemplificativo e non limitativo, da leggersi congiuntamente alle figure allegate, in cui essa, da leggersi in congiunzione con i disegni allegati, in cui:
Figura 1 illustra in termini di blocchi funzionali una procedura di estrazione diretta ad estrarre da una immagine di query un insieme ottimo di keypoint e generare un insieme compresso di descrittori in accordo con una forma di realizzazione della presente invenzione;
le Figure 2A-2F sono distribuzioni statistiche di caratteristiche locali corrispondenti di keypoint in accordo con alcune forme di realizzazione alternative della presente invenzione;
Figura 2G Ã ̈ una foto esemplificativa elaborata in accordo con la procedura di estrazione di Figura 1;
Figura 3A illustra un descrittore esemplificativo di tipo SIFT;
Figura 3B illustra un vettore descrittore esemplificativo del descrittore di Figura 3A;
Figura 4A illustra una compressione esemplificativa di vettore descrittore in accordo con una soluzione nota nello stato della tecnica;
Figura 4B illustra una compressione esemplificativa di vettore descrittore in accordo con un’ulteriore soluzione nota nello stato della tecnica;
Figura 5 illustra un’organizzazione di sotto-istogrammi di un descrittore in famiglie di correlazione in accordo con una forma di realizzazione della presente invenzione;
le Figure 6A-6D mostrano come il vettore descrittore à ̈ compresso in accordo con forme di realizzazione esemplificative della presente invenzione;
Figura 7A illustra una distribuzione esemplificativa di keypoint;
Figura 7B illustra come una griglia possa essere sovraimpressa sulla immagine di query per quantizzare le coordinate dei keypoint di Figura 7A;
Figura 7C à ̈ una rappresentazione grafica esemplificativa di un istogramma ottenuto sovraimprimendo la griglia di Figura 7B sull’insieme di keypoint di Figura 7A;
Figura 7D identifica le colonne e le righe della griglia di Figura 7B che sono formate interamente da celle che non includono alcun keypoint;
Figura 7E illustra un istogramma esemplificativo su un rank-1 support;
Figura 7F illustra una mappatura istogramma corrispondente all’istogramma sul rank-1 support di Figura7E;
Figura 8A illustra un esempio di un istogramma di parola;
Figura 8B illustra un esempio di una mappa istogramma;
Figura 9 illustra in termini di blocchi funzionali una procedura di abbinamento diretta ad eseguire il confronto tra due immagini in accordo con una forma di realizzazione della presente invenzione, e
Figura 10 illustra in termini di blocchi funzionali una procedura di recupero diretta a recuperare da un database modello un’immagine modello che illustra lo stesso oggetto / la stessa scena mostrato/a nella immagine di query in accordo con una forma di realizzazione della presente invenzione.
Descrizione dettagliata di forme di realizzazione esemplificative dell’invenzione PROCEDURA DI ESTRAZIONE (FIGURA 1)
La Figura 1 illustra in termini di blocchi funzionali una procedura, d’ora in avanti denominata “procedura di estrazione†ed identificata con il riferimento 100, diretta ad elaborare un’immagine di ingresso allo scopo di ottenere un insieme ottimale di keypoint e generare un corrispondente insieme di descrittori in accordo con una forma di realizzazione della presente invenzione. I keypoint ed i descrittori saranno quindi sfruttati per finalità di analisi d’immagine. Nel seguito della presente descrizione, le generiche espressioni “analisi d’immagini†ed “analizzare un’immagine†sono da intendersi come comprendenti tutte quelle operazioni che prevedono di confrontare un’immagine con almeno un’altra immagine. Queste operazioni possono essere eseguite in una grande varietà di applicazioni, come ad esempio in un’applicazione di riconoscimento oggetti, come pure in un’applicazione che prevede la creazione di una singola foto panoramica a partire da una pluralità di foto differenti.
Come sarà descritto più avanti, le procedure di estrazione in accordo con una forma di realizzazione della presente invenzione prevedono inoltre il selezionare un insieme ottimale di keypoint ed il comprimere i descrittori di tali keypoint in modo da migliorare sensibilmente l’efficienza delle procedure successive.
Le fasi della procedura di estrazione 100 descritte in questa sezione possono essere eseguite da opportune unità di elaborazione, la cui struttura e funzione dipendono dallo specifico campo di applicazione alla quale sono destinate. Per esempio, ciascuna unità di elaborazione può essere una unità hardware specificamente progettata per eseguire una o più fasi del metodo. Inoltre, le fasi del metodo possono essere eseguite da una macchina programmabile (ad esempio un computer) sotto il controllo di un corrispondente insieme di istruzioni
Estrazione dei keypoint (fase 110)
La prima fase 110 della procedura di estrazione 100 prevede di ricevere una immagine di query 115 ed estrarre da essa un primo insieme di keypoint KP, ciascuno associato ad una corrispondente coppia di coordinate spaziali C identificative della posizione di tale keypoint KP entro l’immagine di query 115.
Questa operazione può essere eseguita sfruttando l’algoritmo noto di estrazione di keypoint denominato Differenze di Gaussiane (Difference of Gaussians, DoG); tuttavia, considerazioni simili possono applicarsi in caso siano utilizzati algoritmi di estrazione di keypoint differenti, quali ad esempio l’algoritmo denominato Determinante di Hessiane (Determinant of Hessians, DoH). Facendo riferimento all’algoritmo di estrazione di keypoint DoG, l’immagine di query 115 à ̈ convoluta con filtri gaussiani in sequenza a scale differenti. A questo punto, un’operazione di differenza viene eseguita tra coppie di immagini sfuocate mediante gaussiane nella sequenza. I keypoint KP sono quindi selezionati come quei punti che hanno valori massimi/minimi di Differenze di Gaussiane (DoG) in scale differenti. In particolare, ciascun pixel in una immagine DoG à ̈ confrontata con gli otto pixel vicini nella stessa scala e con nove pixel vicini in ciascuna delle scale vicine (ovvero, la scala successiva e la scala precedente nella sequenza). Se il valore del pixel à ̈ il massimo od il minimo di tutti i valori di pixel confrontati, quel punto à ̈ considerato un candidato ad essere un keypoint KP.
La fase 110 prevede inoltre che ciascun keypoint KP sia assegnato ad una o più orientazioni sulla base di direzioni di gradiente di illuminazione di immagine locale. Per esempio, si genera un istogramma di orientazione con una pluralità di bin, con ciascun bin che copre una corrispondente porzione d’angolo. Ciascun campione nella finestra vicina aggiunto in un bin dell’istogramma à ̈ pesato dalla propria ampiezza di gradiente e da una finestra circolare pesata mediante gaussiana. I picchi nell’istogramma corrispondente corrispondono alle orientazioni dominanti. Una volta che l’istogramma à ̈ completato, le orientazioni corrispondenti al picco più elevato ed ai picchi locali che cadono entro l’80% dei picchi più alti sono assegnate al keypoint KP stesso. Nel caso di assegnazione di orientazioni multiple, per ciascuna orientazione addizionale si crea un keypoint KP addizionale avente la stessa posizione e scala del keypoint originale.
Alla fine della fase 110 si genera quindi un insieme di keypoint KP, insieme alle corrispondenti coordinate C, la scala S alla quale il keypoint à ̈ stato estratto, la sua orientazione dominante O, ed il picco P, ovvero il valore assoluto della DoG corrispondente a tale keypoint (che à ̈ indicativo del contrasto).
Generazione dei descrittori (fase 120)
La fase seguente 120 prevede di elaborare l’immagine di query 115 allo scopo di calcolare per ciascun keypoint KP un corrispondente descrittore D. Nell’esempio considerato, i descrittori D calcolati nella fase 120 sono descrittori di tipo SIFT. Mentre i keypoint KP sono stati estratti in modo tale da garantire invarianza alla posizione, alla scala ed alla rotazione dell’immagine, i descrittori SIFT D sono calcolati in modo tale da essere altamente distintivi e parzialmente invarianti all’illuminazione ed al punto di vista. Specificamente, per ciascun keypoint KP un insieme di 16 sotto-istogrammi sono calcolati su una griglia 4x4 che à ̈ centrata sulla posizione del keypoint KP ed orientata in accordo con l’orientazione dominante del keypoint KP. Ciascun sotto-istogramma include 8 bin, ciascuno corrispondente ad un’orientazione avente un angolo n*Ï€/4 (n = 0,1,…,7) rispetto alla orientazione dominante; la frequenza di ciascun bin di un sotto-istogramma à ̈ proporzionale al gradiente di luminanza della cella della griglia (d’ora in avanti denominata sotto-regione) corrispondente a tale sotto-istogramma, considerata lungo la direzione identificata da tale bin. I valori di tali istogrammi di orientazione sono organizzati in un vettore, che forma il descrittore D del keypoint KP. Dato che ci sono 4x4 = 16 sotto-istogrammi, ciascuno con 8 bin, il descrittore D à ̈ un vettore avente 128 elementi.
I concetti della presente invenzione sono inoltre applicabili se il descrittore SIFT Ã ̈ calcolato su una griglia che include un numero diverso di celle, e/o con un diverso numero di bin per istogramma.
Inoltre, anche se nell’esempio considerato à ̈ stato fatto riferimento a descrittori di tipo SIFT, considerazioni simili possono applicarsi nel caso in si utilizzano descrittori di tipo differente, come ad esempio i descrittori di tipo Speeded Up Robust Feature (SURF) e di tipo Histogram of Oriented Gradients (HOG), o possibilmente di altri descrittori. Inoltre, anche se à ̈ stato fatto e si farà riferimento nel seguito a descrittori comprendenti dati relativi a gradienti di luminanza, considerazioni simili si applicano se si considerano gradienti di parametri differenti. Infatti, com’à ̈ noto ai tecnici esperti nel settore, la luminanza à ̈ solamente una della caratteristiche fisiche del colore. Così, anche se la luminanza à ̈ stata identificata essere la proprietà fisica migliore (ovvero la più robusta) da considerare per scopi di analisi d’immagine, si possono considerare anche descrittori di diverso tipo, per esempio comprendenti dati relativi ai gradienti di crominanza, ai gradienti di saturazione, o addirittura ai gradienti di colore (che include sia luminanza, saturazione e crominanza).
Come già menzionato in precedenza, eseguire operazioni di analisi d’immagine richiede la gestione di una quantità sensibilmente elevata di dati: infatti, ciascun keypoint KP à ̈ associato ad una pluralità di caratteristiche locali (qui, globalmente identificate con il riferimento LFkp), comprendenti le coordinate C, la scala S, l’orientazione dominante O, ed il picco P, così come un corrispondente descrittore D formato da un vettore di 128 elementi. Per questo motivo, allo scopo di ridurre la quantità totale di dati da gestire (ad esempio da memorizzare e/o trasmettere), la procedura di estrazione 100 in accordo con una forma di realizzazione della presente invenzione prevede due accorgimenti, ovvero:
1) ridurre il numero di keypoint KP generati precedentemente selezionando i keypoint KP più rilevanti (dal punto di vista della comparazione di immagini), allo scopo di ottenere un sottoinsieme ottimale SUB di keypoint KP, e
2) comprimere in maniera opportuna sia le coordinate C sia i descrittori D.
La fase 130 della procedura di estrazione 100 Ã ̈ dedicata alla selezione del sottoinsieme ottimale SUB, la fase 140 Ã ̈ dedicato alla compressione dei descrittori D, e la fase 150 Ã ̈ dedicata alla compressione delle coordinate C.
Selezione del sottoinsieme ottimale di keypoint (fase 130)
In accordo con una forma di realizzazione della presente invenzione, la selezione del sottoinsieme ottimale SUB à ̈ eseguito calcolando per almeno una caratteristica locale LFkp – le coordinate Cm, la scala S, l’orientazione dominante O, il picco P ed il descrittore D – di ciascun keypoint KP della immagine di query 115 almeno una corrispondente probabilità di rilevanza di caratteristica FRP, ordinando i keypoint KP in accordo con una probabilità di rilevanza di keypoint KRP basata sulle probabilità di rilevanza di caratteristica FRP delle proprie caratteristiche LFkp, e quindi selezionando i keypoint KP aventi le probabilità di rilevanza di keypoint KRP maggiori.
In accordo con una forma di realizzazione della presente invenzione, la probabilità di rilevanza di caratteristica FRP di ciascuna caratteristica locale LFkp del generico keypoint KP à ̈ calcolata sfruttando una corrispondente distribuzione statistica di riferimento Rsd, che à ̈ stata già predeterminata in anticipo dopo avere eseguito valutazioni statistiche su un database d’immagini di benchmark.
Le distribuzioni statistiche di riferimento Rsd sono fatte in modo tale da riflettere il comportamento statistico delle caratteristiche locali LFkp di keypoint KP considerati utili per scopi di analisi d’immagine.
Per esempio, nel caso delle procedure di riconoscimento oggetti, il database di immagini di benchmark à ̈ un database comprendente una pluralità di coppie di immagini, con ciascuna coppia di immagini che consiste di due foto che mostrano uno stesso oggetto/scena. In accordo con una forma di realizzazione della presente invenzione, le distribuzioni statistiche di riferimento sono generate nel modo seguente.
I keypoint sono prima estratti da tutte le immagini del database di benchmark. A questo punto, una prima analisi statistica à ̈ eseguita su una o più caratteristiche locali seleziona tedi tutti i keypoint estratti., in modo da generare prime distribuzioni statistiche di dette caratteristiche locali selezionate. Ciascuna prima distribuzione statistica di una caratteristica locale à ̈ organizzata nella forma di un istogramma, ottenuto contando il numero di keypoint (frequenza di keypoint) – tra la totalità di keypoint estratti dalle immagini del database di benchmark – aventi un valore di tale caratteristica locale che rientra entro ciascuno di una pluralità di intervalli di valore di caratteristica locale predefiniti (bin). Quindi, per ciascuna coppia di immagini, i keypoint di una immagine sono abbinati con keypoint dell’altra immagine. Gli abbinamenti tra detti keypoint sono elaborati usando una procedura di comparazione d’immagine (quale una qualsiasi tra le procedure note di comparazione di immagine basate su abbinamenti di caratteristiche di immagine) allo scopo di identificare quale abbinamento à ̈ corretto (inlier) e quale non à ̈ corretto (outlier). Una seconda analisi statistica à ̈ quindi eseguita sulla stessa caratteristica o caratteristiche considerate in precedenza allo scopo di generare le distribuzioni statistiche Rsd da utilizzare per calcolare le probabilità di rilevanza di caratteristica FRP. Questa volta, la generazione delle distribuzioni statistiche di riferimento Rsd à ̈ eseguita calcolando per ciascun bin un rapporto tra il numero di keypoint appartenenti ad inlier ed aventi un valore della corrispondente caratteristica locale che rientra entro detto bin, ed il numero totale di keypoint (sia appartenenti ad inlier sia appartenenti ad outlier) aventi un valore della corrispondente caratteristica locale che rientra entro lo stesso bin.
La richiedente ha osservato che le prime distribuzioni statistiche e le distribuzioni statistiche di riferimento Rsd sono sensibilmente diverse l’una dall’altra. Dato che le distribuzioni statistiche di riferimento Rsd sono generate tenendo in considerazione i keypoint che riguardano un corretto abbinamento di caratteristica (inlier), la Richiedente ha trovato che tali distribuzioni statistiche sono buoni rappresentanti del comportamento statistico di keypoint (d’ora in avanti “keypoint rilevanti†) che sono rilevanti per scopi di analisi d’immagine, e particolarmente adatte ad essere utilizzate in una procedura di comparazione d’immagine.
Le Figure 2A-2F illustrano alcune distribuzioni statistiche Rsd di corrispondenti caratteristiche locali LFkp selezionate di keypoint KP in accordo con alcune forme realizzative della presente invenzione. In particolare, le distribuzioni statistiche Rsd delle Figure 2A-2F sono state generate da immagini di un database di benchmark organizzato specificatamente per applicazioni di riconoscimento oggetti. Se si fosse considerata un’applicazione di analisi d’immagine diversa, quale ad esempio la creazione di una singola foto panoramica a partire da una pluralità di foto differenti, le immagini del database di benchmark e, quindi, le distribuzioni statistiche Rsd risultanti, sarebbero differenti.
La Figura 2A à ̈ una distribuzione statistica Rsd relativa alle coordinate C dei keypoint KP. Ciascun bin dell’istogramma corrispondente rappresenta la distanza (in pixel) del generico keypoint KP dal centro dell’immagine. Nell’esempio considerato, l’immagine considerata à ̈ di tipo VGA (ovvero avente una risoluzione di 640 x 480), cosicché il centro corrisponde alle coordinate (320, 240). In accordo con l’istogramma illustrato nella Figura 2A, il bin avente la frequenza di keypoint KP più alta à ̈ quello corrispondente al centro dell’immagine. Questo significa che più un keypoint KP à ̈ vicino al centro, maggiore à ̈ la probabilità che tale keypoint KP sia un keypoint rilevante; l’andamento delle frequenze dell’istogramma decresce in maniera monotona con l’incrementarsi della distanza dal centro. Questo può essere spiegato facilmente dal fatto che quando un oggetto à ̈ fotografato, à ̈ assai probabile che detto oggetto sia inquadrato nel centro della foto. Si deve apprezzare che in questo caso i bin dell’istogramma non hanno tutti la stessa larghezza; questo à ̈ dovuto al fatto che la larghezza di ciascun bin à ̈ stata opportunamente determinata da un quantizzatore (scalare e/o vettoriale) in modo da calcolare pochi bin, evitando così l’occorrenza di fenomeni di “overfitting†. I concetti della presente invenzione si applicano anche si utilizzi una quantizzazione (scalare e/o vettoriale) uniforme, ovvero con tutti i bin dell’istogramma che hanno la stessa larghezza.
La Figura 2B à ̈ una distribuzione statistica Rsd relativa all’orientazione dominante O dei keypoint KP. Ciascun bin dell’istogramma corrispondente rappresenta l’angolo (in radianti) della direzione dominante del generico keypoint KP rispetto all’orizzonte (corrispondente a 0 radianti). In accordo con l’istogramma illustrato nella Figura 2B, i bin aventi le frequenze di keypoint KP più alte sono quelli corrispondenti alle orientazioni parallele o perpendicolari all’orientazione dell’orizzonte (ovvero corrispondenti a Ï€/2, 0, -Ï€/2, -Ï€). Questo significa che più l’orientazione di un keypoint KP à ̈ vicina ad una di dette orientazioni, maggiore à ̈ la probabilità che tale keypoint KP sia un keypoint rilevante. Questo può spiegarsi con il fatto che quando un oggetto à ̈ fotografato, à ̈ altamente probabile che detto oggetto sia inquadrato in modo da estendersi principalmente parallelo e/o perpendicolare alla linea dell’orizzonte. Anche in questo caso, la larghezza dei bin à ̈ determinata per mezzo di un quantizzatore.
La Figura 2C à ̈ una distribuzione statistica Rsd relativa al picco P dei keypoint KP. Ciascun bin dell’istogramma corrispondente rappresenta il contrasto tra il generico keypoint KP ed il punto più simile tra i punti vicini. In accordo con l’istogramma illustrato nella Figura 2C, il bin avente la frequenza di keypoint KP maggiore à ̈ quello corrispondente ai valori di picco più elevati. Questo significa che più il contrasto di un keypoint KP à ̈ elevato, maggiore à ̈ la probabilità che tale keypoint KP sia un keypoint rilevante; l’andamento delle frequenze dell’istogramma cresce monotonicamente con l’incrementarsi del contrasto. Questo può essere facilmente spiegato dal fatto che un punto di una foto avente un contrasto elevato à ̈ facilmente riconoscibile ed identificabile. Anche in questo caso, la larghezza dei bin à ̈ determinata per mezzo di un quantizzatore.
La Figura 2D à ̈ una distribuzione statistica Rsd relativa alla scala S dei keypoint KP. Ciascun bin dell’istogramma corrispondente rappresenta una particolare scala S alla quale può essere estratto il keypoint KP. In accordo con l’istogramma illustrato nella Figura 2D, il bin avente la frequenza di keypoint KP maggiore corrisponde ad una scala medio-bassa. Anche in questo caso la larghezza dei bin à ̈ determinata per mezzo di un quantizzatore.
La Figura 2E à ̈ una prima distribuzione statistica Rsd relativa ai descrittori D dei keypoint KP. In questo caso, l’istogramma corrispondente à ̈ tridimensionale, con ciascuno bin di esso corrispondente a valori di intervallo di due parametri del descrittore D del generico keypoint KP, ovvero la media (asse x) e la varianza (asse y) del descrittore D. Valori di frequenza maggiori sono indicati da cerchi di diametro maggiore. La media e la varianza sono state considerate insieme per formare uno stesso istogramma, dato che sono collegate l’una all’altra. In accordo con tale istogramma, il bin avente la frequenza di keypoint KP, rappresentato dal cerchio più largo, à ̈ quello corrispondente alla media più alta ed alla varianza più bassa. Questo può essere spiegato dal fatto che maggiore à ̈ la media del descrittore D di un keypoint, maggiore il gradiente di luminanza corrispondente a tale keypoint KP, e minore à ̈ la varianza di un descrittore D di un keypoint KP, minore à ̈ il rumore indesiderato che disturba tale keypoint KP.
La Figura 2F à ̈ una seconda distribuzione statistica Rsd relativa ai descrittori D dei keypoint KP. In questo caso, ciascun bin corrisponde ad una particolare distanza massima tra il descrittore D di un keypoint KP ed i descrittori D degli altri keypoint KP della stessa immagine. Per esempio, tale distanza massima può essere calcolata sulla base della distanza euclidea tra descrittori. Altri metodi noti possono essere inoltre contemplati, quali ad esempio l’utilizzo della divergenza simmetrizata di Kullback-Leibler.
Ritornando alla Figura 1, in accordo con una forma di realizzazione della presente invenzione, la fase 130 della procedura di estrazione 100 prevede il calcolare, per ciascun keypoint KP estratto nella fase 110:
- Una prima probabilità di rilevanza di caratteristica FRP1, ottenuta dalla distribuzione statistica Rsd relativa alle coordinate C di detto keypoint KP. L’istogramma corrispondente a detta distribuzione à ̈ ispezionato per identificare il bin corrispondente alle coordinate C di detto keypoint KP; la probabilità di rilevanza di caratteristica FRP1 à ̈ quindi impostata alla frequenza di keypoint del bin identificato.
- Una seconda probabilità di rilevanza di caratteristica FRP2, ottenuta dalla distribuzione statistica Rsd relativa all’orientazione dominante O di detto keypoint KP. L’istogramma corrispondente a detta distribuzione à ̈ ispezionato per identificare il bin corrispondente alla orientazione dominante O di detto keypoint KP; la probabilità di rilevanza di caratteristica FRP2 à ̈ quindi impostata alla frequenza di keypoint del bin identificato.
- Una terza probabilità di rilevanza di caratteristica FRP3, ottenuta dalla distribuzione statistica Rsd relativa al picco P di detto keypoint KP. L’istogramma corrispondente a detta distribuzione à ̈ ispezionato per identificare il bin corrispondente al picco P di detto keypoint KP; la probabilità di rilevanza di caratteristica FRP3 à ̈ quindi impostata alla frequenza di keypoint del bin identificato. - Una quarta probabilità di rilevanza di caratteristica FRP4, ottenuta dalla distribuzione statistica Rsd relativa alla scala S di detto keypoint KP. L’istogramma corrispondente a detta distribuzione à ̈ ispezionato per identificare il bin corrispondente alla scala S di detto keypoint KP; la probabilità di rilevanza di caratteristica FRP4 à ̈ quindi impostata alla frequenza di keypoint del bin identificato.
- Una quinta probabilità di rilevanza di caratteristica FRP5, ottenuta dalla distribuzione statistica Rsd relativa alla media ed alla varianza del descrittore D di detto keypoint KP. L’istogramma corrispondente a detta distribuzione à ̈ ispezionato per identificare il bin corrispondente alla media ed alla varianza del descrittore D di detto keypoint KP; la probabilità di rilevanza di caratteristica FRP5 à ̈ quindi impostata alla frequenza di keypoint del bin identificato. - Una sesta probabilità di rilevanza di caratteristica FRP6, ottenuta dalla distribuzione statistica Rsd relativa alla distanza massima (ad esempio la distanza euclidea) tra il descrittore D di detto keypoint KP ed i descrittori D degli altri keypoint KP. L’istogramma corrispondente a detta distribuzione à ̈ ispezionato per identificare il bin corrispondente tale distanza; la probabilità di rilevanza di caratteristica FRP6 à ̈ quindi impostata alla frequenza di keypoint del bin identificato.
Per ciascun keypoint KP, una probabilità di rilevanza di keypoint KRP à ̈ quindi ottenuta da almeno una, o dalla combinazione, delle probabilità di rilevanza di caratteristica FRP delle caratteristiche locali di tale keypoint. Per esempio, partendo dall’assunto che le probabilità di rilevanza di caratteristica FRP siano indipendenti l’una dall’altra, la probabilità di rilevanza di keypoint KRP del generico keypoint KP à ̈ calcolata moltiplicando tra loro le sue corrispondenti probabilità di rilevanza di caratteristica FRP. In generale, maggiore à ̈ il numero di probabilità di rilevanza di caratteristica FRP usate per calcolare la probabilità di rilevanza di keypoint KRP, migliori sono i risultati ottenibili impiegando tale metodo. Considerando l’esempio di descrittori SIFT per applicazioni di ricerca visuale, à ̈ preferibile che le probabilità di rilevanza di caratteristica considerate per calcolare la probabilità di rilevanza di keypoint includano almeno quelle corrispondenti alla scala, al picco ed alla distanza dal centro.
La Figura 2G à ̈ una foto esemplificativa in cui sono stati identificati una pluralità di keypoint per mezzo di elementi circolari, ciascuno avente un diametro che à ̈ proporzionale alla probabilità di rilevanza KRP del keypoint.
Una volta che la probabilità di rilevanza di keypoint KRP di tutti i keypoint KP estratti nella fase 110 sono stati calcolati, detti keypoint KP sono ordinati in sequenza secondo un ordine decrescente di probabilità di rilevanza di keypoint KRP. Successivamente, il sottoinsieme ottimale SUB à ̈ formato prendendo un numero (basato sulla riduzione desiderata della quantità di dati da gestire) di keypoint KP dai primi della sequenza ordinata. I keypoint KP selezionati appartenenti al sottoinsieme ottimale SUB risultano essere i keypoint KP più rilevanti (dal punto di vista della comparazione di immagini) tra la totalità di keypoint KP estratti nella fase 110. In questo modo, la riduzione della quantità totale di dati à ̈ eseguita in una maniera intelligente ed efficiente, prendendo in considerazione solamente i keypoint KP rilevanti, e scartando quelli che sono meno utili.
Si sottolinea che sebbene la selezione del sottoinsieme ottimale di keypoint inj accordo con la forma di realizzazione dell’invenzione appena descritta preveda il calcolare ciascuna probabilità di rilevanza di caratteristica sfruttando una corrispondente distribuzione statistica Rsd ottenuta calcolando per ciascun bin di essa un rapporto tra i keypoint inlier aventi un valore della corrispondente caratteristica locale che cade entro detto bin, ed il numero totale di keypoint aventi un valore della corrispondente caratteristica locale che cade entro lo stesso bin, i concetti della presente invenzione sono inoltre applicabili in caso si utilizzino diverse, equivalenti distribuzioni statistiche, ottenute cin metodi differenti, anche manuali. Nella descrizione che segue, due distribuzioni statistiche si considerano equivalenti statisticamente l’una con l’altra se permettono di ottenere probabilità di rilevanza di caratteristica simili a partire da uno stesso insieme di keypoint.
Compressione dei descrittori (fase 140)
In accordo con una forma di realizzazione della presente invenzione, la compressione dei descrittori D à ̈ eseguita mediante quantizzazione vettoriale, sfruttando un ridotto numero di vocabolari (“codebook†) ottimizzati.
La Figura 3A illustra un descrittore D esemplificativo di tipo SIFT (uno dei descrittori D generati nella fase 120 della procedura di estrazione 100 di Figura 1 che à ̈ stato selezionato essere parte del sottoinsieme ottimale SUB) corrispondente ad un keypoint KP generico. Come già menzionato in precedenza, il descrittore D comprende sedici sotto-istogrammi shi (i= 1, 2, …, 16), ciascuno dei quali illustra come il gradiente di luminanza di una rispettiva sottoregione dell’immagine vicino al keypoint KP à ̈ distribuito lungo otto direzioni. Nello specifico, ciascun sottoistogramma shi à ̈ associato con una sottoregione corrispondente ad una di sedici celle di una griglia 4 x 4 centrata nella posizione del keypoint KP ed orientata secondo l’orientazione dominante O del keypoint KP; ciascun sottoistogramma shi include otto bin, ciascuno corrispondente ad un’orientazione avente un angolo n*Ï€/4 (n = 0, 1, …7) rispetto all’orientazione dominante O.
Come illustrato in Figura 3B, i valori di tutti gli istogrammi di orientazione shi di un descrittore D sono organizzati in un corrispondente vettore descrittore, identificato in figura con il riferimento DA. Il vettore descrittore DA comprende sedici elementi ai (i = 1, 2, …,16), ciascuno memorizzante i valori assunti da un corrispondente sottoistogramma shi (i = 1, 2, …,16); ciascun elemento ai comprende a sua volta otto rispettivi sottoelementi, ciascuno memorizzante un valore di frequenza corrispondente ad un rispettivo degli otto bin del sottoistogramma shi. Di conseguenza, ciascun vettore descrittore DA include 16*8 = 128 sottoelementi. Considerando che in un descrittore SIFT D una frequenza tipica può assumere un valore da 0 a 255, ciascun sottoelemento del vettore descrittore DA può essere rappresentato con un byte; di conseguenza, l’occupazione di memoria di un vettore descrittore à ̈ uguale a 128 byte. Facendo quindi riferimento ancora alla procedura di estrazione 100 di Figura 1, la quantità di dati (in byte) corrispondente a tutti i descrittori D dei keypoint KP appartenenti al sottoinsieme ottimale SUB à ̈ uguale a 128 moltiplicato per il numero di keypoint KP del sottoinsieme ottimale SUB.
Allo scopo di ridurre questa quantità di dati, i vettori descrittori DA corrispondenti a tali descrittori D sono compressi attraverso quantizzazione vettoriale.
Come à ̈ noto agli esperti del settore, comprimere un vettore di dati formato da n elementi (n-uple) sfruttando quantizzazione vettoriale prevede la quantizzazione complessiva dell’insieme di tutti i valori possibili di n-uple che il vettore descrittore può assumere in un insieme ridotto comprendente in numero inferiore di valori di nuple (i quali valori possono anche differire dai valori dell’insieme da quantizzare). Dato che l’insieme ridotto comprende un numero inferiore di valori di n-uple, esso richiede uno spazio d’immagazzinamento inferiore. I valori di n-uple che formano l’insieme ridotto sono inoltre note come parole codice (“codeword†). Ciascuna codeword à ̈ associata ad un corrispondente insieme di valori di n-uple che il vettore può assumere. Le relazioni di associazione tra valori di n-uple del vettore dati e codeword à ̈ determinato per mezzo di un corrispondente codebook.
Facendo riferimento in particolare al vettore descrittore DA, che include 16 elementi ai formati a loro volta da otto sottoelementi, ciascuno aventi valori da 0 a 255, il vettore descrittore DA può assumere un numero N = 256<128>di valori di 16-uple diversi. Effettuando una compressione mediante quantizzazione vettoriale, tali N valori di 16-uple sono approssimati con un numero N1 < N di codeword di un codebook. Il codebook determina relazioni di associazione tra ciascuna codeword ed un corrispondente insieme di valori di 16-uple del vettore descrittore DA. Di conseguenza, ciascuna codeword del codebook à ̈ un valore di 16-uple che à ̈ utilizzato per “approssimare†un corrispondente insieme di valori di 16-uple del vettore descrittore DA. La quantizzazione vettoriale à ̈ una compressione dati di tipo “lossy†, la cui accuratezza può essere misurata tramite un parametro chiamato distorsione. La distorsione può per esempio essere calcolata come la distanza euclidea tra una generica codeword del codebook e l’insieme di valori di 16-uple del vettore che sono approssimate da tale codeword. Considerazioni simili si applicano anche se la distorsione à ̈ calcolata con un metodo differente. In ogni caso, in generale, maggiore à ̈ il numero N1 di codeword di un codebook, minore à ̈ la distorsione della compressione.
Com’à ̈ noto agli esperti nel settore, la generazione delle codeword di un codebook à ̈ tipicamente eseguito eseguendo operazioni statistiche (chiamate operazioni di addestramento) su un database di addestramento che include un numero molto grande di vettori di addestramento. Facendo riferimento in particolare al vettore descrittore DA, il database di addestramento può includere svariati milioni di vettori descrittori di addestramento, in cui ciascun vettore descrittore di addestramento à ̈ uno dei possibili N = 256<128>valori di 16-tuple che il vettore descrittore DA può assumere.
In accordo con una soluzione illustrata nella Figura 4°, l’intero vettore descrittore DA à ̈ compresso utilizzando un singolo codebook CBK comprendente N1 codeword CWj (j = 1, 2, …, N1) a valori a 16-tuple. Di conseguenza, con N1 codeword CWj differenti, il numero minimo di bit richiesto per identificare le codeword à ̈ uguale a log2N1. Come già menzionato in precedenza, la generazione delle N1 codeword CWj differenti di tale singolo codebook CBK à ̈ effettuato eseguendo operazioni di addestramento su una pluralità di vettori descrittori di addestramento, in cui ciascun vettore descrittore di addestramento à ̈ uno dei possibili N = 256<128>valori di 16-tuple che il vettore descrittore DA può assumere.
Allo scopo di mantenere la distorsione di compressione sotto una soglia sufficientemente ridotta in modo tale da non compromettere l’esito delle operazioni di analisi d’immagine successive, il numero richiesto N1 di codeword può diventare molto elevato. Avendo un codebook formato da un numero troppo elevato N1 di codeword à ̈ svantaggioso sotto diversi punti di vista. Infatti, il numero di vettori di addestramento da utilizzare per generare le codeword diventerebbe eccessivo, ed i tempi di elaborazione diventerebbero troppo lunghi. Inoltre, allo scopo di eseguire operazioni di compressione sfruttando un codebook, le N1 codeword che formano il codebook devono essere memorizzate da qualche parte, occupando una quantità non trascurabile di spazio di memoria. L’ultimo inconveniente à ̈ abbastanza critico, dato che l’hardware utilizzato per applicazioni di analisi d’immagine (ad esempio unità di elaborazione grafiche, “Graphic Processing Units†, GPU) possono essere equipaggiate con memorie non così capaci.
Facendo riferimento alla Figura 4B, allo scopo di ridurre il numero di codeword CWj da gestire senza incrementare la distorsione, il vettore descrittore DA può essere suddiviso in una pluralità di sottovettori SDAk (k = 1, 2, …), ciascuno comprendente un rispettivo numero mk di elementi ai del vettore descrittore DA, e quindi ciascun sotto-vettore SDAk à ̈ compresso individualmente utilizzando un rispettivo codebook CBKk comprendente N2 codeword CWj (j = 1, 2, …, N2) a valori a mk-tuple.
Nell’esempio illustrato nella Figura 4B, il vettore descrittore DA à ̈ suddiviso in quattro sotto-vettori SDAk (k = 1, 2, 3, 4), ciascuno comprendente mk = 4 elementi ai del vettore descrittore DA:
- il primo sotto-vettore SDA1 Ã ̈ formato dalla sequenza di elementi a1, a2, a3, a4;
- il secondo sotto-vettore SDA2 Ã ̈ formato dalla sequenza di elementi a5, a6, a7, a8;
- il terzo sotto-vettore SDA3 Ã ̈ formato dalla sequenza di elementi a9,
a10, a11, a12, e
- il quarto sotto-vettore SDA4 Ã ̈ formato dalla sequenza di elementi a13, a14, a15, a16.
La compressione di ciascun sotto-vettore SDAk à ̈ eseguita utilizzando un rispettivo codebook CBKy (y = k) comprendente N2 codeword CWj (j = 1, 2, …, N2) a valori a 4-tuple. Di conseguenza, con 4*N2 codeword CWj differenti, il numero minimo di bit richiesto per identificare tutte le codeword à ̈ uguale a 4*log2N2. Anche se nel caso considerato ciascun sotto-vettore SDAk à ̈ stato compresso utilizzando un codebook CBKy comprendente uno stesso numero N2 di codeword CWj, considerazioni simili valgono nel caso in cui ciascun sotto-vettore SDAk à ̈ compresso utilizzando un rispettivo numero di codeword CWj differente.
Nel caso illustrato in Figura 4B, la generazione delle N2 codeword CWj differenti di ciascun codebook CBKy à ̈ eseguita eseguendo operazioni di addestramento su un rispettivo sottoinsieme di vettori descrittori di addestramento. Ciascun sottoinsieme di vettori descrittori di addestramento di un codebook CBKk corrisponde ad uno dei quattro sotto-vettori SDAk, e può essere ottenuto considerando in ciascun vettore descrittore di addestramento utilizzato per generare il codebook CBK singolo di Figura 4A solamente la porzione di esso corrispondente al sotto-vettore SDAk. Per esempio, allo scopo di generare il codebook CBK1, sono utilizzati solamente i primi quattro elementi a1, a2, a3, a4 dei vettori descrittori di addestramento a 16-tuple utilizzati per generare il singolo codebook CBK di Figura 4A.
Confrontato con l caso della Figura 4A, in cui l’intero vettore descrittore DA à ̈ compresso utilizzando un singolo codebook CBK formato da codeword CWj aventi la stessa dimensione dello stesso vettore descrittore DA (16 elementi), l’utilizzo di codebook CBKy formati da codeword CWj aventi una (più piccola) dimensione mk di un sotto-vettore SDAk (ad esempio, mk = 4 elementi) permette di ottenere, con uno stesso numero di codeword CWj, una distorsione minore.
Avendo fissato il numero totale di codeword CWj, maggiore à ̈ il numero di sotto-vettori SDAk in cui à ̈ suddiviso il vettore descrittore DA, minore à ̈ la distorsione, ma – allo stesso tempo – maggiore à ̈ il numero minimo di bit richiesto per identificare tutte le codeword CWj.
In accordo con una forma di realizzazione della presente invenzione, la suddivisione del vettore descrittore DA in sotto-vettori SDAk per scopi di compressione à ̈ eseguita prendendo in considerazione l’occorrenza di relazioni di correlazione tra gli elementi ai del vettore descrittore DA.
Come già descritto con riferimento alle Figure 3A e 3B, ciascun elemento ai del vettore descrittore DA immagazzina i valori presi dal sotto-istogramma shi associato alla sotto-regione rispettiva, la quale sotto-regione corrisponde a sua volta ad una cella della griglia 4 x 4 centrata nel keypoint KP corrispondente a tale vettore descrittore DA.
In accordo con una forma di realizzazione della presente invenzione illustrata in Figura 5, dopo avere eseguito un’analisi statistica comportamentale su una grande quantità di vettori descrittori DA (ad esempio sfruttando i vettori descrittori di addestramento del database di addestramento), si à ̈ trovato che i sotto-istogrammi shi di un generico keypoint KP possono essere organizzati in famiglie di correlazione CFx (x = 1, 2, 3, 4), con ciascuna famiglia di correlazione CFx comprendente un insieme di sotto-istogrammi shi con un comportamento statistico simile, ovvero con un andamento simile delle frequenze dei bin. Per esempio, due sotto-istogrammi shi appartenenti ad una stessa famiglia di correlazione CFx possono avere un numero simile di picchi di frequenza in corrispondenza di stessi (o simili) bin.
L’analisi statistica comportamentale impiegata per formare le famiglie di correlazione CFx mostra che, avendo fissato il numero massimo di codeword CWj da utilizzare per comprimere il vettore descrittore DA, se l’organizzazione dei sottoistogrammi shi in famiglie di correlazione CFx à ̈ variata (assegnando i sottoistogrammi shi a famiglie di correlazione CFx diverse), la distorsione risultante varia di conseguenza. LE famiglie di correlazione CFx sono quindi formate considerando, tra tutte le possibili suddivisioni in sotto-istogrammi shi, quella corrispondente alla distorsione minore.
Dopo avere eseguito tale analisi statistica comportamentale, si à ̈ inoltre trovato che la correlazione tra il comportamento statistico di due sotto-istogrammi shi dipende da due parametri principali, ovvero la distanza delle sotto-regioni associate ai sotto-istogrammi shi dal keypoint KP e dall’orientazione dominante di esso.
Facendo riferimento a Figura 5, i sedici sotto-istogrammi shi di un keypoint KP sono organizzati in quattro famiglie di correlazione, ovvero:
- una prima famiglia di correlazione CF1 comprendente i sottoistogrammi sh1, sh4, sh13 e sh16;
- una seconda famiglia di correlazione CF2 comprendente i sottoistogrammi sh2, sh3, sh14 e sh15;
- una terza famiglia di correlazione CF3 comprendente i sottoistogrammi sh5, sh8, sh9 e sh12, e
- una quarta famiglia di correlazione CF4 comprendente i sottoistogrammi sh6, sh7, sh10 e sh11.
In accordo con una forma di realizzazione della presente invenzione, le famiglie di correlazione CFx sopra identificate sono sfruttate vantaggiosamente allo scopo di comprimere il vettore descrittore DA utilizzando un numero ridotto di codebook CBKy ottimizzati. La suddivisione del vettore descrittore DA in sottovettori SDAk à ̈ eseguita in modo che almeno due sotto-vettori SDAk abbiano lo stesso comportamento statistico globale (ovvero considerando tutti gli elementi di esso); in questo modo, à ̈ possibile utilizzare un singolo codebook CBKy per comprimere più di un sotto-vettore SDAk. Per questo motivo, la suddivisione del vettore descrittore DA à ̈ eseguita in modo da ottenere gruppi di sotto-vettori SDAk in cui per ciascun gruppo gli elementi ai che occupano la stessa posizione in tutti i sotto-vettori SDAk del gruppo appartengono ad una stessa famiglia di correlazione CFx. Di conseguenza, tutti i sotto-vettori SDAk appartenenti ad uno stesso gruppo possono essere compressi vantaggiosamente utilizzando uno stesso codebook CBKy corrispondente, le cui codeword CWj sono ottenute considerando, per ciascun vettore descrittore di addestramento utilizzato per generare il singolo codebook CBK di Figura 4A, solamente gli elementi di esso appartenenti a famiglie di correlazione CFx a cui appartengono gli elementi ai dei sotto-vettori SDAk del gruppo.
In accordo con una forma di realizzazione esemplificativa della presente invenzione illustrata in Figura 6A, il vettore descrittore DA Ã ̈ suddiviso in quattro sotto-vettori SDA1-SDA4 che sono disposti in un singolo gruppo. Di conseguenza, tutti i sotto-vettori SDAk sono compressi utilizzando uno stesso codebook CBK1. Nello specifico:
- il primo sotto-vettore SDA1 Ã ̈ formato dalla sequenza di elementi a1, a2, a6, a5;
- il secondo sotto-vettore SDA2 Ã ̈ formato dalla sequenza di elementi a4, a3, a7, a8;
- il terzo sotto-vettore SDA3 Ã ̈ formato dalla sequenza di elementi a16, a15, a11, a12, e
- il quarto sotto-vettore SDA4 Ã ̈ formato dalla sequenza di elementi a13, a14, a10, a9.
In questo caso:
- i primi elementi ai di ciascun sotto-vettore SDAk appartengono alla prima famiglia di correlazione CF1;
- i secondi elementi ai di ciascun sotto-vettore SDAk appartengono alla seconda famiglia di correlazione CF2;
- i terzi elementi ai di ciascun sotto-vettore SDAk appartengono alla terza famiglia di correlazione CF3, e
- i quarti elementi ai di ciascun sotto-vettore SDAk appartengono alla quarta famiglia di correlazione CF4.
Il codebook CBK1 per comprimere il generico sotto-vettore SDA1-SDA4 include N3 codeword CWj, in cui ciascuna codeword CWj ha il primo elemento appartenente alla prima famiglia di correlazione CF1, il secondo elemento appartenente alla seconda famiglia di correlazione CF2, il terzo elemento appartenente alla quarta famiglia di correlazione CF4, ed il quarto elemento appartenente alla terza famiglia di correlazione CF3.
Con N3 codeword CWj differenti, il numero minimo di bit richiesti per identificare tutte le codeword à ̈ uguale a 4*(log2N3).
In accordo con un’altra forma di realizzazione esemplificativa della presente invenzione illustrata in Figura 6B, il vettore descrittore DA à ̈ suddiviso in due sottovettori SDA1, SDA2 che sono organizzati in un singolo gruppo. Di conseguenza, tutti i sotto-vettori SDAk sono compressi utilizzando uno stesso codebook CBK1. Nello specifico:
- il primo sotto-vettore SDA1 Ã ̈ formato dalla sequenza di elementi a1, a2, a3, a4, a5, a6, a7, a8, e
- il secondo sotto-vettore SDA2 Ã ̈ formato dalla sequenza di elementi a13, a14, a15, a16, a9, a10, a11, a12.
In questo caso:
- i primi e quarti elementi ai di ciascun sotto-vettore SDAk appartengono alla prima famiglia di correlazione CF1;
- i secondi e terzi elementi ai di ciascun sotto-insieme SDAk appartengono alla seconda famiglia di correlazione CF2;
- i quinti ed ottavi elementi ai di ciascun sotto-vettore SDAk appartengono alla terza famiglia di correlazione CF3, e
- i sesti e settimi elementi ai di ciascun sotto-vettore SDAk appartengono alla quarta famiglia di correlazione CF4.
Il codebook CBK1 per comprimere il generico sottovettore SDA1, SDA2 include N4 codeword CWj, in cui ciascuna codeword CWj ha il primo ed il quarto elemento che appartengono alla prima famiglia di correlazione CF1, il secondo ed il terzo elemento che appartendono alla seconda famiglia di correlazione CF2, il quinto e l’ottavo elemento che appartengono alla terza famiglia di correlazione CF3, ed il sesto ed il settimo elemento che appartengono alla quarta famiglia di correlazione CF4.
Con N4 codeword CWj differenti, il numero minimo di bit richiesti per identificare le codeword à ̈ uguale a 2*(log2N4).
In accordo con un’altra forma di realizzazione esemplificativa della presente invenzione illustrata in Figura 6C, il vettore descrittore DA à ̈ suddiviso in sei sottovettori SDA1-SDA6, quattro dei quali (SDA1-SDA4) sono organizzati in un primo gruppo, e due dei quali (SDA5-SDA6) sono organizzati in un secondo gruppo. Di conseguenza, i sotto-vettori SDA1-SDA4 sono compressi utilizzando uno stesso primo codebook CBK1, mentre i sotto-vettori SDA5-SDA6 sono compressi utilizzando uno stesso secondo codebook CBK2. Nello specifico:
- il primo sotto-vettore SDA1 Ã ̈ formato dalla sequenza di elementi a5, a1, a2;
- il secondo sotto-vettore SDA2 Ã ̈ formato dalla sequenza di elementi a8. a4. a3;
- il terzo sotto-vettore SDA3 Ã ̈ formato dalla sequenza di elementi a9, a13, a14;
- il quarto sotto-vettore SDA4 Ã ̈ formato dalla sequenza di elementi a12, a16, a15;
- il quinto sotto-vettore SDA5 Ã ̈ formato dalla sequenza di elementi a6, a7 e
- il sesto sotto-vettore SDA6 Ã ̈ formato dalla sequenza di elementi a10, a11.
In questo caso:
- i primi elementi ai di ciascun sotto-vettore SDA1-SDA4 del primo gruppo appartengono alla terza famiglia di correlazione CF3;
- i secondi elementi ai di ciascun sotto-vettore SDA1-SDA4 del primo gruppo appartengono alla prima famiglia di correlazione CF1;
- i terzi elementi ai di ciascun sotto-vettore SDA1-SDA4 del primo gruppo appartengono alla seconda famiglia di correlazione CF2, e - i primi e secondi elementi ai di ciascun sotto-vettore SDA5-SDA6
del secondo gruppo appartengono alla quarta famiglia di correlazione CF4.
Il codebook CBK1 per comprimere il generico sotto-vettore SDA1-SDA4 appartenente al primo gruppo include N5 codeword CWj, in cui ciascuna codeword CWj ha il primo elemento appartenente alla terza famiglia di correlazione CF3, il secondo elemento appartenente alla prima famiglia di correlazione CF1, ed il terzo elemento appartenente alla seconda famiglia di correlazione CF2. Il codebook CBK2 per comprimere il generico sotto-vettore SDA5-SDA6 appartenente al secondo gruppo include N6 codeword CWj, in cui ciascuna codeword CWj ha il primo ed il secondo elemento che appartengono alla quarta famiglia di correlazione CF4.
Con N5 N6 codeword differenti CWj, il numero minimo di bit richiesti per identificare tutte le codeword à ̈ uguale a 4*(log2N5)+2*(log2N6).
In accordo con un’altra forma di realizzazione esemplificativa della presente invenzione illustrata in Figura 6D, il vettore descrittore DA à ̈ suddiviso in otto sottovettori SDA1-SDA8, quattro dei quali (SDA1-SDA4) sono organizzati in un primo gruppo, e quattro dei quali (SDA5-SDA8) sono organizzati in un secondo gruppo. Di conseguenza, i sotto-vettori SDA1-SDA4 sono compressi utilizzando uno stesso primo codebook CBK1, mentre i sotto-vettori SDA5-SDA8 sono compressi utilizzando uno stesso secondo codebook CBK2. Nello specifico:
- il primo sotto-vettore SDA1 Ã ̈ formato dalla sequenza di elementi a5, a1;
- il secondo sotto-vettore SDA2 Ã ̈ formato dalla sequenza di elementi a8. a4;
- il terzo sotto-vettore SDA3 Ã ̈ formato dalla sequenza di elementi a9,
a13;
- il quarto sotto-vettore SDA4 Ã ̈ formato dalla sequenza di elementi a12, a16;
- il quinto sotto-vettore SDA5 Ã ̈ formato dalla sequenza di elementi a6, a2;
- il sesto sotto-vettore SDA6 Ã ̈ formato dalla sequenza di elementi a7,
a3;
- il settimo sotto-vettore SDA7 Ã ̈ formato dalla sequenza di elementi a10, a14, e
- l’ottavo sotto-vettore SDA8 à ̈ formato dalla sequenza di elementi a11, a15.
In questo caso:
- i primi elementi ai di ciascun sotto-vettore SDA1-SDA4 del primo gruppo appartengono alla terza famiglia di correlazione CF3;
- i secondi elementi ai di ciascun sotto-vettore SDA1-SDA4 del primo gruppo appartengono alla prima famiglia di correlazione CF1;
- i primi elementi ai di ciascun sotto-vettore SDA5-SDA8 del secondo gruppo appartengono alla quarta famiglia di correlazione CF4, e
- i secondi elementi ai di ciascun sotto-vettore SDA5-SDA8 del secondo gruppo appartengono alla seconda famiglia di correlazione CF2.
Il codebook CBK1 per comprimere il generico sotto-vettore SDA1-SDA4 appartenente al primo gruppo include N7 codeword CWj, in cui ciascuna codeword CWj ha il primo elemento appartenente alla terza famiglia di correlazione CF3, ed il secondo elemento appartenente alla prima famiglia di correlazione CF1. Il codebook CBK2 per comprimere il generico sotto-vettore SDA5-SDA8 appartenente al secondo gruppo include N8 codeword CWj, in cui ciascuna codeword CWj ha il primo elemento appartenente alla quarta famiglia di correlazione CF4 ed il secondo elemento appartenente alla seconda famiglia di correlazione CF2.
Con N7 N8 codeword differenti CWj, il numero minimo di bit richiesti per identificare tutte le codeword à ̈ uguale a 4*(log2N7)+4*(log2N8).
Naturalmente, i concetti della presente invenzione sono inoltre applicabili con suddivisioni in un numero diverso di sotto-vettori e/o con un numero diverso di codebook. Inoltre, anche se nella presente descrizione à ̈ stato fatto riferimento alla compressione di un descrittore SIFT calcolato su una griglia 4 x 4 con otto bin per istogramma, considerazioni simili valgono nel caso in cui il numero di celle e/o il numero di bin per istogramma fosse diverso, così come nel caso in cui si considerino altri tipi di descrittore.
Rispetto alle soluzioni note, con una stessa distorsione di compressione, l’uso combinato del suddividere il vettore descrittore DA in sotto-vettori SDAk ed impiegare uno stesso codebook CBKy per più di un sotto-vettore SDAk permette di ridurre drasticamente lo spazio di memoria richiesto per memorizzare il (i) codebook CBKy utilizzato(i) per comprimere il vettore descrittore DA. Questo à ̈ un grande vantaggio, dato che, come già menzionato precedentemente, l’hardware impiegato per applicazioni di analisi d’immagine (ad esempio, le GPU) possono essere equipaggiate con memorie non così capaci. Un altro vantaggio dato dall’uso combinato del suddividere il vettore descrittore DA in sotto-vettori SDAk ed utilizzare uno stesso codebook CBKy per più di un sotto-vettore SDAk consiste nel fatto che la procedura di addestramento per la generazione del codebook CBKy à ̈ più veloce.
Le operazioni di compressione eseguite nella fase 140 della procedura di estrazione 100 (vedere Figura 1) su ciascun descrittore D ricevuto genera come risultato un corrispondente vettore descrittore compresso CDA, che approssima il valore assunto dal rispettivo vettore descrittore DA. Più nello specifico, per ciascun codebook CBKy usato per comprimere il vettore descrittore DA, ciascuna codeword CWj di tale codebook CBKy à ̈ identificata da un corrispondente indice di compressione Cy; se il codebook CBKy à ̈ formato da un numero N di codeword CWj differenti, l’indice di compressione Cy à ̈ formato da almeno log2N bit. Per un vettore descrittore DA che à ̈ stato suddiviso in un insieme di sotto-vettori SDAk, il corrispondente vettore descrittore compresso CDA comprende un indice di compressione Cy per ciascun sotto-vettore SDAk dell’insieme, in cui ciascun indice di compressione Cy identifica la codeword CWj del codebook CBKy utilizzata per approssimare detto sotto-vettore SDAk.
Compressione delle coordinate (fase 150)
In accordo con una forma di realizzazione della presente invenzione, la quantità di dati da gestire (ad esempio da memorizzare e/o trasmettere) per eseguire operazioni di analisi d’immagine à ̈ ridotta ulteriormente comprimendo le coordinate C dei keypoint KP appartenenti al sottoinsieme ottimale SUB calcolato nella fase 130 della procedura di estrazione 100 (vedere Figura 1).
La Figura 7A illustra una distribuzione esemplificativa dei keypoint KP del sottoinsieme ottimale SUB entro uno spazio bidimensionale corrispondente alla immagine di query 115; ciascun keypoint KP à ̈ associato ad una corrispondente coppia di coordinate spaziali C che identificano la posizione di tal keypoint KP entro l’immagine di query 115.
Per prima cosa, le coordinate C di tutti i keypoint KP del sottoinsieme SUB sono quantizzati. Per questo motivo, una griglia n x m à ̈ sovrimposta sull’immagine di query 115. Nell’esempio illustrato in Figura 7B, la griglia ha n = 10 righe ed m = 15 colonne.
Un istogramma bidimensionale à ̈ quindi generato contando per ciascuna cella della griglia (corrispondente ad un bin dell’istogramma) il numero di keypoint KP che giacciono all’interno di tale cella. La Figura 7C à ̈ una rappresentazione grafica esemplificativa dell’istogramma ottenuto sovrapponendo la griglia della Figura 7B sull’insieme di keypoint KP di Figura 7A. Nella rappresentazione grafica di Figura 7C, le celle prive di keypoint KP sono colorate in nero, mentre le celle che includono almeno un keypoint KP sono colorate in grigio. Nell’esempio considerato (in cui le celle che includono il numero maggiore di keypoint includono due keypoint), le celle che includono un singolo keypoint KP sono colorate in grigio scuro, mentre quelle che includono due keypoint KP sono colorate in un grigio più chiaro.
L’istogramma ottenuto dal conteggio dei keypoint ha un numero elevato di bin la cui frequenza à ̈ pari a zero, ovvero con la cella corrispondente che non include alcun keypoint KP (le celle nere mostrate in Figura 7C).
I dati che rappresentano l’istogramma possono essere compressi vantaggiosamente tenendo in considerazione che le porzioni di esso che corrispondono ai bin a frequenza zero forniscono l’unica informazione che la cela corrispondente non include alcun keypoint.
Per questo motivo, le righe e le colonne della griglia che sono interamente formate da celle che non includono alcun keypoint KP possono essere vantaggiosamente rimosse. Tuttavia, dato che la rimozione di tali righe e/o colonne altererebbe le posizioni assolute e relative dei keypoint KP, un’indicazione delle posizioni di tutte le righe e colonne prive di keypoint KP (comprendenti quelle corrispondenti alle righe e/o colonne da rimuovere) andrebbe registrata.
Per questo motivo, sono definiti due vettori r e c nel seguente modo:
- il vettore r à ̈ un vettore che include un elemento per ciascuna riga della griglia, in cui l’elemento generico del vettore à ̈ impostato ad un primo valore (ad esempio, 0) se la corrispondente cella della griglia non include alcun keypoint KP, ed à ̈ impostato ad un secondo valore (ad esempio, 1) se la corrispondente cella della griglia include almeno un keypoint KP, e
- il vettore c à ̈ un vettore che include un elemento per ciascuna colonna della griglia, in cui il generico elemento del vettore à ̈ impostato ad un primo valore (ad esempio, 0) se la cella corrispondente della griglia non include alcun keypoint KP, ed à ̈ impostata ad un secondo valore (ad esempio, 1) se la corrispondente cella della griglia include almeno un keypoint KP
Una volta che i vettori r e c sono stati generati, la fase successiva prevede di identificare le righe e/o le colonne che sono interamente formate da celle che non includono alcun keypoint KP. Facendo riferimento all’esempio considerato, tali righe e colonne sono colorate in nero nella Figura 7D.
Le righe e/o le colonne della griglia che sono interamente formate da celle che non includono alcun keypoint KP sono quindi rimosse, e le porzioni risultanti della griglia sono compattate in modo da riempire gli spazi vuoti lasciati dalle rimozioni. Di conseguenza, nella griglia (compattata) risultante, denominata rank-1 support, tutte le righe e tutte le colonne includono almeno una cella comprendente almeno un keypoint KP. L’istogramma sul rank-1 support corrispondente all’esempio considerato à ̈ illustrato in Figura 7E.
Da tale istogramma si possono estrarre due diversi parti di informazione, ovvero:
1) le posizioni delle celle del rank-1 support che comprendono almeno un keypoint KP, e
2) per ciascuna cella del rank-1 support identificata al punto 1), il numero di keypoint KP inclusi in essa.
Vantaggiosamente, come proposto da S. Tsai, D. Chen, G. Takacs, V. Chandrasekhar, J. P. Singh, e B. Girod in “Location coding for mobile image retrieval†, Proc. Int. Mobile Multimedia Conference (MobiMedia), 2009, l’informazione corrispondente al punto 1) può essere estratta sfruttando una cosiddetta “mappa istogramma†, mentre l’informazione corrispondente al punto 2) può essere organizzata in un cosiddetto “istogramma di conteggio†.
La mappa istogramma à ̈ una mappatura bidimensionale dell’istogramma sul rank-1 support che identifica i bin di esso aventi una frequenza uguale o maggiore di 1. La mappa istogramma corrispondente all’istogramma sul rank-1 support di Figura 7E à ̈ illustrata nella Figura 7F.
La mappa istogramma può essere rappresentata con una matrice corrispondente, il cui generico elemento à ̈ uguale a zero se la corrispondente cella del rank-1 support non include alcun keypoint KP, ed à ̈ uguale ad uno se la cella corrispondente del rank-1 support include almeno un keypoint KP. La matrice della mappa istogramma illustrata in Figura 7F à ̈ la seguente:
In accordo con una forma di realizzazione della presente invenzione, l’informazione fornita dalla mappa istogramma può essere vantaggiosamente compressa utilizzando una codifica entropica ottimizzata basata sul comportamento statistico di istogrammi rank-1 support esemplificativi appresi dall’analisi di un grande numero di immagini d’addestramento.
Da tale analisi si à ̈ trovato che le posizioni dei keypoint KP nell’immagine generica sono tali da implicare una distribuzione statistica comune degli “1†entro la matrice della mappa istogramma.
La codifica entropica à ̈ eseguita nel seguente modo.
La matrice della mappa istogramma à ̈ scansionata (ad esempio colonna per colonna) in modo da suddividerla in una pluralità di parole ciascuna avente una stessa lunghezza x. Sulla base dell’analisi statistica eseguita sulle immagini di addestramento, si genera un istogramma di parola, che include un bin per ciascun possibile valore che la x-upla della generica parola può assumere, con la frequenza di ciascun bin che indica la probabilità che la x-tupla della parola assuma il valore associato a tale bin. In breve, tali analisi statistica à ̈ stata eseguita facendo l’assunzione che gli elementi della matrice della mappa istogramma sono indipendenti l’uno dall’altro. Analizzando un numero molto elevato di immagini di addestramento, si può identificare la probabilità che un “1†si verifichi nella matrice ogni n “0†; quindi, l’istogramma di parola à ̈ generato sulla base di tale probabilità.
La Figura 8A illustra un esempio di un istogramma di parola in cui la lunghezza x delle parole à ̈ uguale a sei, ed in cui ciascun bin à ̈ identificato dal valore decimale della corrispondente x-tupla. Come previsto, la frequenza maggiore corrisponde alla x-tupla (0,0,0,0,0,0), dato che vi à ̈ una probabilità molto elevata che la generica cella del rank-1 support non includa alcun keypoint KP. La probabilità più elevata successiva à ̈ quella corrispondente ad un singolo keypoint KP per cella (x-tuple (1,0,0,0,0,0), (0,1,0,0,0,0), (0,0,1,0,0,0), (0,0,0,1,0,0), (0,0,0,0,1,0), (0,0,0,0,0,1)), quindi la probabilità corrispondente a due keypoint KP per cella, e così via.
Le parole sono codificate con una tecnica di codifica entropica (ad esempio la tecnica di Huffman o la tecnica di codifica Aritmetica) utilizzando per ciascuna parola una parola codificata bci (i = 1, 2, …) avente un numero di bit che dipende dalla probabilità del corrispondente bin nell’istogramma di parola. Maggiore à ̈ la probabilità della parola, minore à ̈ il numero di bit della parola codificata bci usata per codificare tale parola.
L’altra informazione che può essere estratta dall’istogramma sul rank-1 support riguarda il numero di keypoint KP che sono inclusi in ciascuna cella della mappa istogramma comprendente almeno un keypoint KP. Tale informazione à ̈ organizzata in un istogramma corrispondente, denominato istogramma di conteggio. Ciascun bin dell’istogramma di conteggio corrisponde ad una corrispondente tra le celle del rank-1 support che include almeno un keypoint KP. L’istogramma di conteggio enumera per ciascun bin il numero di keypoint KP inclusi nella cella corrispondente. La mappa istogramma dell’esempio considerato à ̈ illustrata in Figura 8B, dove 11 celle includono un singolo keypoint KP ciascuna e due celle includono due keypoint KP ciascuna. I bin della mappa istogramma di Figura 8B sono ordinati secondo una scansione per colonne del rank-1 support.
L’informazione di conteggio dei keypoint fornita dall’istogramma di conteggio à ̈ codificata in un insieme di parole codificate wj (j = 1, 2, …) di lunghezza differente, con ciascuna parola codificata wj del gruppo che indica quale(i) bin di un rispettivo gruppo di bin dell’istogramma di conteggio corrisponde ad un numero di keypoint KP maggiore di, od uguale ad un certo valore.
Più nello specifico, se il numero più alto di keypoint KP contati in ciascun bin à ̈ uguale ad Nmax, tale insieme di parole codificate wj comprende un numero di parole codificate wj uguale a Nmax-2. La generazione di ciascuna parola codificata wj à ̈ realizzata eseguendo una fase corrispondente tra un insieme di Nmax-2 fasi procedurali. In accordo con una forma di realizzazione della presente invenzione, tali fasi procedurali sono descritte qui appresso.
Fase 1 – Una prima parola codificata w1 à ̈ impostata in modo da includere un elemento per ciascun bin della mappa istogramma. Di conseguenza, la prima parola codificata w1 include un numero di elementi uguale al numero di bin della mappa istogramma. Ciascun elemento della prima parola codificata w1 à ̈ impostato ad un primo valore (ad esempio, “1†) se il bin corrispondente dell’istogramma di conteggio corrisponde ad un numero di keypoint KP maggiore di uno, altrimenti à ̈ impostata ad un secondo valore (ad esempio, “0†). Se Nmax à ̈ maggiore di 2, una seconda fase à ̈ eseguita per generare una seconda parola codificata w2, altrimenti il processo à ̈ terminato, Nell’ultimo caso, l’intera informazione fornita dall’istogramma di conteggio risulta esser codificata solamente dalla prima parola codificata w1.
Fase j (j >1) – Una j-esima parola codificata wj à ̈ generata. La j-esima parola codificata wj à ̈ impostata in modo da includere un elemento per ciascun bin della mappa istogramma comprendente più di j keypoint KP. Di conseguenza, la j-esima parola codificata wj include un numero di elementi uguale a o minore del numero di elementi della j-1 parola codificata w(j-1). Ciascun elemento della j-esima parola codificata wj à ̈ impostata al primo valore il bin corrispondente dell’istogramma di conteggio corrisponde ad un numero di keypoint KP maggiore di j, altrimenti à ̈ impostata al secondo valore. Se Nmax à ̈ maggiore di j+1, una (j+1)-esima fase à ̈ eseguita, per generare una (j+1)-esima parola codificata w(j+1), altrimenti il processo à ̈ terminato. Nell’ultimo caso, l’intera informazione fornita dall’istogramma di conteggio à ̈ codificata con el parole codificate w1- wj.
Le operazioni di compressione eseguite nella fase 150 della procedura di estrazione 100 (vedere Figura 1) consentono di ottenere per le coordinate C dei keypoint KP appartenenti al sottoinsieme SUB un corrispondente insieme di coordinate compresse CC comprendente:
- il vettore r ed il vettore c;
- le parole codificate bci, e
- le parole codificate wj.
La quantità di dati richiesta per gestire (memorizzare e/o trasmettere) l’insieme di coordinate compresse CC à ̈ sensibilmente minore della quantità di dati richiesti per gestire l’insieme di coordinate C (non compresse).
Procedura di abbinamento (Figura 9)
La Figura 9 illustra in termini di blocchi funzionali una procedura di analisi d’immagine in accordo con una forma di realizzazione della presente invenzione, a cui ci si riferirà d’ora in avanti con il termine “procedura di abbinamento†ed identificata con il riferimento 900, diretta ad eseguire il confronto tra due immagini I1, I2, sfruttando per ciascuna immagine un rispettivo sottoinsieme ottimale di keypoint ed i corrispondenti descrittori compressi e coordinate compresse generati mediante la procedura di estrazione 100 di Figura 1.
Le fasi della procedura di abbinamento 900 possono essere eseguite da opportune unità di elaborazione; per esempio, ciascuna unità di elaborazione può essere una unità hardware progettata specificamente per eseguire una o più fasi della procedura. Uno scenario possibile può prevedere un utilizzatore (lato client) che desidera avvalersi di un servizio di comparazione d’immagini (lato server) per confrontare l’immagine I1 con l’immagine I2. In questo caso, le immagini I1 ed I2 possono essere elaborate lato client in accordo con la procedura di estrazione 100 di Figura 1 per la generazione del sottoinsieme ottimale di keypoint e dei corrispondenti descrittori compressi e coordinate compresse; in seguito, il sottoinsieme ottimale di keypoint ed i corrispondenti descrittori compressi e coordinate compresse sono inviate al server, che esegue procedure di abbinamento 900 sfruttando i dati ricevuti e quindi fornisce i risultati al client. In questo caso, la procedura di estrazione 100 può essere eseguita da unità di elaborazioni localizzate lato client , ad esempio per mezzo di uno smartphone dell’utilizzatore, mentre la procedura di abbinamento 900 può essere eseguita da unità di elaborazione localizzatelato server, ad esempio per mezzo di una o più unità server configurate per offrire servizi di comparazione immagini. Un altro scenario possibile può prevedere invece che la procedura di abbinamento 900 sia eseguita direttamente lato client. Sono inoltre contemplati scenari misti, in cui la procedura di abbinamento 900 à ̈ eseguita lato client con i descrittori compressi e le coordinate inviate dal server.
Le coordinate compresse dell’immagine I1 sono identificate con il riferimento CC1, mentre i descrittori compressi dell’immagine I1 sono identificati con il riferimento CDA1. Nello stesso modo, le coordinate compresse dell’immagine I2 sono identificate con il riferimento CC2, mentre i descrittori compressi dell’immagine I2 sono identificati con il riferimento CDA2.
I descrittori compressi CDA1 della prima immagine I1 sono decompressi allo scopo di recuperare corrispondenti descrittori (decompressi) D1 (fase 902). In maniera simile, i descrittori compressi CDA2 della seconda immagine I2 sono decompressi allo scopo di recuperare corrispondenti descrittori (decompressi) D2 (fase 904). La decompressione dei descrittori può essere eseguita per mezzo di versioni invertite delle operazioni di compressione eseguite nella fase 140 della procedura di estrazione 100. Facendo riferimento a descrittori di tipo SIFT, dopo le fasi 902 e 904 i descrittori D1 e D2 sono quindi rappresentati da corrispondenti vettori descrittori formati da 128 sotto-elementi.
Nella fase 906, sono formati abbinamenti tra descrittori D1 della prima immagine I1 e descrittori D2 della seconda immagine I2 sfruttando uno qualunque tra gli algoritmi di abbinamento di caratteristica noti nello stato della tecnica, quali ad esempio il test del rapporto di distanze euclidee.
In seguito, nella fase 908, sono eseguite delle operazioni di verifica geometrica per stabilire quali abbinamenti tra quelli formati nella fase 906 sono corretti (inlier) e quali abbinamenti sono scorretti (outlier). Come à ̈ noto ai tecnici esperti del settore, un’operazione di questo tipo richiede, in aggiunta ai descrittori, le coordinate di ciascun keypoint il cui descrittore corrispondente à ̈ stato abbinato con il descrittore di un altro keypoint. Per questo motivo, anche le coordinate compresse CC1 dell’immagine I1 e le coordinate compresse CC2 dell’immagine I2 dovrebbero essere decompresse, per esempio per mezzo di versioni invertire delle operazioni di compressione eseguite nella fase 150 della procedura di estrazione 100. La fase dedicata alla decompressione delle coordinate compresse CC1 à ̈ identificata in figura 9 con il riferimento 910, mentre la fase dedicata alla decompressione delle coordinate compresse CC2 à ̈ identificata in Figura 9 con il riferimento 912. Una volta che li inlier sono stati identificati, la verifica geometrica può fornire come risultato un parametro DOM indicativo del gradi di abbinamento tra l’immagine I1 e l’immagine I2. Per esempio, se tale parametro DOM à ̈ maggiore di una soglia predeterminata, le immagini I1 e I2 sono reputate mostrare uno stesso oggetto/scena.
In aggiunta, operazioni di localizzazione (fase 914) possono essere ulteriormente eseguite per recuperare le posizioni L di tale stesso oggetto/scena nelle due immagini I1, I2.
Facendo riferimento allo scenario di comparazione immagine client-server menzionato in precedenza, dato che la procedura di abbinamento 900 à ̈ configurata per operare con un numero ridotto di keypoint (solamente quelli che appartengono al sottoinsieme SUB generato per mezzo della procedura di estrazione 100), e dato che i descrittori e le coordinate di tale numero ridotto di keypoint sono ricevuti in una forma compressa, con la soluzione proposta la quantità complessiva di dati da inviare dal client al server à ̈ ridotta drasticamente rispetto alle soluzioni note.
Procedura di recupero (Figura 10)
La Figura 10 illustra in termini di blocchi funzionali una procedura di analisi d’immagine in accordo con una forma di realizzazione della presente invenzione, cui ci si riferirà d’ora in avanti con il termine “procedura di recupero†ed identificata con il riferimento 1000, in cui una immagine di query – quale l’immagine di query 115 di Figura 1 – che mostra un oggetto/scena da riconoscere à ̈ confrontata con una pluralità di immagini modello – ciascuna illustrante un rispettivo oggetto/scena noti – immagazzinati in un database modello, allo scopo di ritrovare la(le) immagine(i) modello che illustra(no) lo stesso oggetto/scena mostrati nella immagina di query.
Come la procedura di abbinamento 900 di Figura 9, le fasi della procedura di recupero 1000 possono essere eseguite da unità di elaborazione opportune; per esempio, ciascuna unità di elaborazione può essere una unità hardware progettata specificamente per eseguire una o più fasi della procedura. Uno scenario tipico può prevedere un utilizzatore (lato client) che desidera sfruttare un servizio di riconoscimento immagine (lato server) allo scopo di riconoscere automaticamente un oggetto/scena mostrato in una immagine di query 115. In questo caso, l’immagine di query 115 può essere elaborata lato client in accordo con la procedura di estrazione 100 di Figura 1 per la generazione del sottoinsieme ottimale di keypoint SUB e dei corrispondenti descrittori compressi CDA e coordinate compresse CC; successivamente, il sottoinsieme ottimale di keypoint ed i corrispondenti descrittori compressi e le corrispondenti coordinate compresse sono inviate al server, che esegue la procedura di recupero 1000 sfruttando i dati ricevuti e quindi fornisce i risultati al client. La pluralità di immagini modello da utilizzare per il riconoscimento dell’oggetto/scena mostrati nella immagine di query 115 à ̈ memorizzata in un database modello 1002, localizzato su lato server.
I descrittori compressi CDA sono decompressi allo scopo di recuperare corrispondenti descrittori (decompressi) DD (fase 1004). La decompressione dei descrittori può essere eseguita mediante versioni invertite delle operazioni di compressione eseguite nella fase 140 della procedura di estrazione 100. Ancora, facendo riferimento a descrittori di tipo SIFT, dopo la fase 1004 i descrittori DD sono quindi rappresentati da vettori descrittori corrispondenti formati da 128 sottoelementi.
Dato che una procedura standard di riconoscimento oggetti tipicamente richiede l’esecuzione di operazioni di comparazione tra la immagine di query ed un numero molto elevato di immagini modello (per esempio, le immagini modello incluse nel database modello 1002 possono essere qualche milione), tale procedura à ̈ esosa sia in termini di tempo che di consumo di memoria. Per questa ragione, una soluzione nota prevede di eseguire tali operazioni di confronto in due fasi distinte. Invece di confrontare direttamente i descrittori della immagine di query con i descrittori di tutte le immagini modello, un confronto veloce e grossolano à ̈ eseguito preliminarmente tra parole visuali estratte dalla immagine di query e parole visuali estratte dalle immagini modello; quindi, il confronto (fine) dei descrittori à ̈ eseguito solamente tra i descrittori dell’immagine di query ed i descrittori di un ridotto insieme di immagini modello scelto sulla base del confronto preliminare. Una parola visuale à ̈ un vettore ottenuto eseguendo una quantizzazione vettoriale di un descrittore; in altre parole, ciascuna parola visuale à ̈ una codeword di un codebook visuale. La generazione delle parole visuali à ̈ eseguita per ciascun descrittore dell’immagine di query e ciascun descrittore delle immagini modello. Per esempio, il confronto preliminare à ̈ eseguito contando il numero di parole visuali in comune tra l’immagine di query e ciascuna immagine modello. A questo punto, per ciascuna immagine modello, à ̈ calcolata una classificazione di similitudine sulla base dei conteggi del numero di parole visuali in comune. Considerazioni simili valgono se la classificazione di similitudine à ̈ generata confrontando le parole visuali utilizzando metodi alternativi. In questo modo, il confronto fine tra descrittori può essere vantaggiosamente effettuato solamente tra l’immagine di query e le immagini modello aventi le classificazioni di similitudine più alte (ovvero quelli aventi il numero maggiore di parole visuali in comune con l’immagine di query). Questo approccio, che à ̈ derivato dal campo dell’analisi testuale, à ̈ anche noto come “classificazione tramite Bag of Features (Bof)†.
Facendo riferimento ancora alla Figura 10, allo scopo di consentire la classificazione tramite BoF, si devono generare parole visuali VD per ciascun descrittore dell’immagine di query e parole visuali VDR per ciascun descrittore di ciascuna immagine modello.
Si sottolinea che allo scopo di consentire il confronto tra parole visuali, sia le parole visuali VD che le parole visuali VDR dovrebbero essere generate utilizzando uno stesso codebook.
Mentre le parole visuali VD della immagine di query 115 devono essere generate ogni volta che la procedura di recupero 1000 à ̈ eseguita (fase 1006), allo scopo di ridurre drasticamente i tempi operativi, la generazione delle parole visuali VDR delle immagini modello può essere eseguita vantaggiosamente una volta sola, e quindi la risultante pluralità di parole visuali VDR può essere immagazzinata direttamente nel database modello 1002; alternativamente, le parole visuali VDR possono essere aggiornate periodicamente.
Avendo generato per ciascun descrittore DD dell’immagine di query una corrispondente parola visuale VD, nella fase 1008 à ̈ quindi eseguita la procedura di classificazione tramite BoF. In questo modo, per ciascuna immagine modello, un indice di classificazione à ̈ calcolato contando il numero di parole visuali VDR di tale immagine modello che sono anche parole visuali VD dell’immagine di query. Tale conteggio può essere eseguito utilizzando l’implementazione nota di classificazione tramite BoF conosciuta anche come Invertedindex. Tuttavia, considerazioni simili si applicano in caso si utilizzino implementazioni differenti. Una volta che tutti gli indici di classificazione sono stati calcolati, una lista à ̈ generata in cui le immagini modello del database sono ordinate secondo un ordine di indice di classificazione decrescente. Quindi, un insieme SR di immagini modello aventi i valori di indice di classificazione più alti à ̈ selezionato per essere sottoposto alle successive operazioni di confronto (fine).
Si sottolinea che dato che in accordo con una forma di realizzazione della presente invenzione il numero di descrittori di ciascuna immagine à ̈ vantaggiosamente ridotto, corrispondendo solamente al sottoinsieme ottimale SUB di keypoint che sono considerati rilevanti (vedere fase 130 della procedura di estrazione 100 di Figura 1), la quantità di dati richiesta per eseguire la classificazione tramite la procedura BoF (fase 1008) che deve essere caricata nella memoria di lavoro (ad esempio, in banchi RAM localizzati lato server) à ̈ ridotta fortemente, migliorando drasticamente la velocità del processo. Inoltre, dato che i confronti sono eseguiti tenendo in considerazione solamente i descrittori dei keypoint ritenuti rilevanti, la precisione del confronto à ̈ incrementata, perché il rumore à ̈ ridotto. Allo scopo di migliorare ulteriormente la velocità e la precisione, sottoinsiemi ottimali comprendenti un numero ridotto di descrittori sono inoltre generati per ciascuna immagine modello inclusa nel database modello 1002.
E’ stato trovato che il numero di keypoint che formano il sottoinsieme ottimale SUB influenza fortemente l’esito della classificazione tramite BoF. Infatti, considerando uno stesso numero di immagini, la probabilità che l’oggetto/scena mostrato nella immagine di query 115 sia mostrato anche in almeno una delle immagini modello appartenenti all’insieme selezionato SR di immagini modello cresce con il decrementarsi del numero di keypoint del sottoinsieme ottimale SUB. Tuttavia, se tale numero di keypoint del sottoinsieme ottimale SUB fosse al di sotto di una soglia inferiore, le prestazioni della procedura peggiorerebbero, dato che il numero di keypoint inclusi nel sottoinsieme SUB diventerebbe troppo piccolo per rappresentare in maniera soddisfacente ciascuna immagine.
A questo punto, un secondo confronto (fine) à ̈ eseguito tra l’immagine di query 115 e l’insieme SR di immagini modello (fase 1010). Una delle procedure d’abbinamento di caratteristica note può quindi essere utilizzata per abbinare descrittori DD della immagine di query 115 con descrittori delle immagini modello dell’insieme SR (sottofase 1012), ad esempio calcolando le distanze euclidee tra i descrittori, ed inoltre à ̈ eseguita una verifica geometrica per stabilire quali abbinamenti sono inlier e quali sono outlier (sottofase 1014). In questo modo, se esiste, l’immagine modello RI dell’insieme SR che mostra un oggetto/scena mostrato anche nella immagine di query 115 viene identificata alla fine di questa fase.
In accordo con una forma di realizzazione della presente invenzione, invece di eseguire direttamente operazioni di abbinamento di caratteristiche sui descrittori DD della immagine di query 115 e sui descrittori delle immagini modello dell’insieme SR, le operazioni di abbinamento di caratteristica sono eseguite su versioni compresse di essi ottenute suddividendo i corrispondenti vettori descrittori in sotto-vettori e comprimendo ciascun sotto-vettore mediante un codebook basato su quantizzazione vettoriale. Per questo motivo, i descrittori DD della immagine di query 115 sono compressi nella fase 1016, ad esempio suddividendo i corrispondenti vettori descrittori in quattro sotto-vettori e comprimendo ciascuno di detti quattro sotto-vettori con un rispettivo codebook. In maniera simile alla generazione delle parole visuali, il database modello 1002 memorizza per ciascuna immagine modello versioni compresse e precalcolate di essa, che sono state compresse utilizzando gli stessi codebook usati per comprimere i descrittori DD della immagine di query 115. In accordo con questa forma di realizzazione, l’abbinamento di caratteristica (sottofase 1012) può essere eseguita in una maniera molto veloce ed efficiente. Infatti, dato che l’abbinamento di caratteristica à ̈ eseguito nello spazio compresso (sia i descrittori dell’immagine di query sia delle immagini modello sono compresse), e dato che il numero di descrittori da considerare à ̈ ridotto (corrispondendo solamente ai keypoint del sottoinsieme ottimale), à ̈ possibile caricare direttamente nella memoria principale anche i dati che rappresentano le immagini modello del database modello. Inoltre, dato che la compressione dei vettori descrittori à ̈ stata eseguita suddividendo i vettori descrittori in sotto-vettori, riducendo così fortemente il numero di codeword dal codebook corrispondente, si può calcolare in anticipo una lista comprendente tutte le possibili distanze euclidee tra ciascuna codeword di ciascun codebook, e caricarla nella memoria principale, incrementando ulteriormente la velocità della sottofase 1012. Considerazioni simili valgono se l’abbinamento di caratteristiche à ̈ eseguito sfruttando un algoritmo differente che non fa utilizzo delle distanze euclidee.
In accordo con una forma di realizzazione della presente invenzione, la sottofase 1012 può essere migliorata ulteriormente comprimendo i sotto-vettori di ciascun descrittore utilizzando uno stesso codebook, utilizzando un approccio simile a quello usato nella fase 140 della procedura di estrazione 100 di Figura 1.
Dato che la verifica geometrica (sotto-fase 1014) richiede, in aggiunta ai descrittori, le coordinate dei keypoint i cui descrittori corrispondenti sono stati abbinati con descrittori di altri keypoint, anche le coordinate compresse CC dei keypoint della immagine di query 115 devono essere decompresse (fase 1018).
La descrizione precedente presenta e discute in dettaglio diverse forme di realizzazione della presente invenzione; tuttavia, sono possibili diverse modifiche alle forme di realizzazione descritte, così come diverse forme di realizzazione dell’invenzione, senza allontanarsi dall’ambito definito dalle rivendicazioni allegate.

Claims (8)

  1. RIVENDICAZIONI 1. Un metodo per elaborare un’immagine, comprendente: - identificare un primo gruppo di keypoint nell’immagine; - per ciascun keypoint del primo gruppo: a) identificare almeno una corrispondente caratteristica locale di keypoint relativa a detto ciascun keypoint; b) per detta almeno una caratteristica locale di keypoint, calcolare una corrispondente probabilità di rilevanza di caratteristica locale; c) calcolare una probabilità di rilevanza di keypoint sulla base delle probabilità di rilevanza di caratteristica locale di detta almeno una caratteristica locale. - selezionare keypoint, tra i keypoint del primo gruppo, aventi le probabilità di rilevanza di keypoint più alte per formare un secondo gruppo di keypoint, e - sfruttare i keypoint del secondo gruppo per analizzare l’immagine, in cui: - la probabilità di rilevanza di caratteristica locale calcolata per una caratteristica locale di un keypoint à ̈ ottenuta confrontando il valore assunto da detta caratteristica locale con una corrispondente distribuzione statistica di riferimento di valori di detta caratteristica locale.
  2. 2. Il metodo della rivendicazione 2, in cui ciascuna di dette corrispondenti distribuzioni statistiche di riferimento à ̈ statisticamente equivalente ad una corrispondente distribuzione statistica generata raccogliendo, tra una pluralità di keypoint di riferimento identificati in una pluralità di coppie di immagini di riferimento, i valori di caratteristica locale corrispondenti a quei keypoint di riferimento di ciascuna coppia di immagini di riferimento che à ̈ stata riconosciuta implicare un abbinamento corretto di caratteristiche tra le immagini di riferimento di detta coppia.
  3. 3. Il metodo della rivendicazione 1 o 2, in cui detta almeno una caratteristica locale di keypoint riferita a detto ciascun keypoint comprende almeno uno tra: - le coordinate del keypoint; - la scala al quale il keypoint à ̈ stato identificato; - l’orientazione dominante del keypoint; - il picco del keypoint, e - un descrittore del keypoint.
  4. 4. Il metodo di rivendicazione 2 o rivendicazione 3 quando dipendente dalla rivendicazione 2, in cui: - ciascuna distribuzione statistica di riferimento à ̈ organizzata in forma di un corrispondente istogramma avente una pluralità di bin, ciascun bin corrispondendo ad un intervallo predefinito di valori della corrispondente caratteristica locale, e la frequenza di ciascun bin corrispondendo ad un rapporto tra: a) il numero di keypoint di riferimento che sono stati accertati implicare un abbinamento di caratteristica corretto ed avere un valore della corrispondente caratteristica locale che cade entro detto bin, e b) il numero totale di keypoint di riferimento aventi un valore della corrispondente caratteristica locale che cade entro detto bin, - detto calcolare la probabilità di rilevanza di caratteristica locale per una caratteristica locale di un keypoint comprende: c) ispezionare l’istogramma corrispondente a tale caratteristica locale allo scopo di identificare il bin di esso che corrisponde al valore assunto dalla caratteristica locale del keypoint, ed d) impostare la probabilità di rilevanza di caratteristica locale alla frequenza del bin identificato.
  5. 5. Il metodo di una qualunque delle rivendicazioni precedenti, in cui detto calcolare una probabilità di rilevanza di keypoint di un keypoint del primo gruppo include combinare le probabilità di rilevanza di caratteristica locale di ciascuna di detta almeno una caratteristica locale del keypoint corrispondente.
  6. 6. Il metodo della rivendicazione 5, in cui detto calcolare una probabilità di rilevanza di keypoint di un keypoint del primo gruppo include moltiplicare tra loro le probabilità di rilevanza di caratteristica locale di ciascuna di detta almeno una caratteristica locale del keypoint corrispondente.
  7. 7. Un sistema per elaborare un’immagine, comprendente: - una prima unità di elaborazione configurata per identificare un primo gruppo di keypoint nell’immagine; - una seconda unità di elaborazione configurata per eseguire le seguenti operazioni per ciascun keypoint del primo gruppo: a) identificare almeno una corrispondente caratteristica locale di keypoint relativa a detto ciascun keypoint; b) per detta almeno una caratteristica locale di keypoint, calcolare una corrispondente probabilità di rilevanza di caratteristica locale; c) calcolare una probabilità di rilevanza di keypoint sulla base delle probabilità di rilevanza di caratteristica locale di detta almeno una caratteristica locale; - una terza unità di elaborazione configurata per selezionare keypoint, tra i keypoint del primo gruppo, aventi le probabilità di rilevanza di keypoint più alte per formare un secondo gruppo di keypoint, ed - una quarta unità di elaborazione configurata per sfruttare i keypoint del secondo gruppo per analizzare l’immagine, in cui: - la probabilità di rilevanza di caratteristica locale calcolata per una caratteristica locale di un keypoint à ̈ ottenuta confrontando il valore assunto da detta caratteristica locale con una corrispondente distribuzione statistica di riferimento di valori di detta caratteristica locale.
  8. 8. Un metodo per generare una distribuzione statistica di riferimento di valori di una caratteristica locale di keypoint da utilizzare nel metodo in accordo con una qualunque tra le rivendicazioni da 1 a 6, comprendente: - raccogliere, tra una pluralità di keypoint di riferimento identificati in una pluralità di coppia di immagini di riferimento, i valori di caratteristica locale corrispondenti a quei keypoint di riferimento di ciascuna coppia di immagini di riferimento che à ̈ stata riconosciuta implicare un abbinamento di caratteristica corretto tra le immagini di riferimento di tale coppia.
IT000003A 2012-01-02 2012-01-02 Analisi d'immagine ITMI20120003A1 (it)

Priority Applications (11)

Application Number Priority Date Filing Date Title
IT000003A ITMI20120003A1 (it) 2012-01-02 2012-01-02 Analisi d'immagine
CN201280069522.6A CN104115162B (zh) 2012-01-02 2012-12-20 图像分析
US14/370,108 US9269020B2 (en) 2012-01-02 2012-12-20 Image analysis
PCT/EP2012/076398 WO2013102574A1 (en) 2012-01-02 2012-12-20 Image analysis
ES12816273T ES2879937T3 (es) 2012-01-02 2012-12-20 Análisis de imágenes
JP2014550677A JP5845361B2 (ja) 2012-01-02 2012-12-20 画像分析
EP12816273.2A EP2801056B1 (en) 2012-01-02 2012-12-20 Image analysis
BR112014016400-2A BR112014016400B1 (pt) 2012-01-02 2012-12-20 Método e sistema para processar uma imagem, e, método para gerar uma distribuição estatística de referência de valores de uma característica local de ponto chave
KR1020147021748A KR102049078B1 (ko) 2012-01-02 2012-12-20 이미지 분석
ARP120105058A AR089531A1 (es) 2012-01-02 2012-12-28 Analisis de imagenes
US14/991,556 US9373056B2 (en) 2012-01-02 2016-01-08 Image analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000003A ITMI20120003A1 (it) 2012-01-02 2012-01-02 Analisi d'immagine

Publications (1)

Publication Number Publication Date
ITMI20120003A1 true ITMI20120003A1 (it) 2013-07-03

Family

ID=45809455

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000003A ITMI20120003A1 (it) 2012-01-02 2012-01-02 Analisi d'immagine

Country Status (10)

Country Link
US (2) US9269020B2 (it)
EP (1) EP2801056B1 (it)
JP (1) JP5845361B2 (it)
KR (1) KR102049078B1 (it)
CN (1) CN104115162B (it)
AR (1) AR089531A1 (it)
BR (1) BR112014016400B1 (it)
ES (1) ES2879937T3 (it)
IT (1) ITMI20120003A1 (it)
WO (1) WO2013102574A1 (it)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6474210B2 (ja) * 2014-07-31 2019-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 大規模画像データベースの高速検索手法
US9613273B2 (en) * 2015-05-19 2017-04-04 Toyota Motor Engineering & Manufacturing North America, Inc. Apparatus and method for object tracking
EP3239896B1 (en) 2016-04-28 2018-11-28 Joanneum Research Forschungsgesellschaft mbH Data structure for describing an image sequence, and methods for extracting and matching these data structures
WO2017207015A1 (en) * 2016-05-30 2017-12-07 The Graffter S.L. Localization of planar objects in images bearing repetitive patterns
US10909369B2 (en) 2017-07-14 2021-02-02 Mitsubishi Electric Research Laboratories, Inc Imaging system and method for object detection and localization
GB201803795D0 (en) * 2018-03-09 2018-04-25 Prisymid Ltd Label data processing system
WO2019205069A1 (en) * 2018-04-27 2019-10-31 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for updating 3d model of building
KR102772554B1 (ko) * 2021-12-28 2025-02-24 성균관대학교산학협력단 역색인 구조 및 벡터 양자화의 협력적 최적화 장치 및 방법
CN117275130B (zh) * 2023-11-17 2024-01-26 长春金融高等专科学校 基于人脸识别的智慧门禁验证系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4613617B2 (ja) * 2005-01-07 2011-01-19 ソニー株式会社 画像処理システム、学習装置および方法、並びにプログラム
US8358840B2 (en) * 2007-07-16 2013-01-22 Alexander Bronstein Methods and systems for representation and matching of video content
JP2011257963A (ja) * 2010-06-08 2011-12-22 Canon Inc 画像処理装置、その処理方法及びプログラム
US20120051647A1 (en) * 2010-09-01 2012-03-01 Hong Kong Applied Science and Technology Research Institute Company Limited Icon design and method of icon recognition for human computer interface
CN102004916B (zh) * 2010-11-15 2013-04-24 无锡中星微电子有限公司 图像特征提取系统及其方法
CN102096827A (zh) * 2011-01-18 2011-06-15 东华大学 一种基于尺度不变和向量机分类的异形纤维自动识别方法
CN102201063B (zh) * 2011-06-13 2013-05-01 中国科学院自动化研究所 基于纹理图像局部特征的形变虹膜匹配方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
HONGPING CAI ET AL: "Learning weights for codebook in image classification and retrieval", 2010 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), 13-18 JUNE 2010, SAN FRANCISCO, CA, USA, IEEE, PISCATAWAY, NJ, USA, 13 June 2010 (2010-06-13), pages 2320 - 2327, XP031725747, ISBN: 978-1-4244-6984-0 *
JURIE F ET AL: "Creating Efficient Codebooks for Visual Recognition", COMPUTER VISION, 2005. ICCV 2005. TENTH IEEE INTERNATIONAL CONFERENCE ON BEIJING, CHINA 17-20 OCT. 2005, PISCATAWAY, NJ, USA,IEEE, LOS ALAMITOS, CA, USA, vol. 1, 17 October 2005 (2005-10-17), pages 604 - 610, XP010854841, ISBN: 978-0-7695-2334-7, DOI: 10.1109/ICCV.2005.66 *
MARSZAEK M ET AL: "Spatial Weighting for Bag-of-Features", CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 2006 IEEE COMPUTER SOCIETY , NEW YORK, NY, USA 17-22 JUNE 2006, IEEE, PISCATAWAY, NJ, USA, vol. 2, 17 June 2006 (2006-06-17), pages 2118 - 2125, XP010923114, ISBN: 978-0-7695-2597-6, DOI: 10.1109/CVPR.2006.288 *
PIERRE TIRILLY ET AL: "A review of weighting schemes for bag of visual words image retrieval", PUBLICATIONS INTERNES DE L'IRISA, 1 May 2009 (2009-05-01), XP055006510, Retrieved from the Internet <URL:http://hal.inria.fr/docs/00/38/07/06/PDF/PI-1927.pdf> [retrieved on 20110907] *
SKJALG LEPSOY ET AL: "Statistical modelling of outliers for fast visual search", MULTIMEDIA AND EXPO (ICME), 2011 IEEE INTERNATIONAL CONFERENCE ON, IEEE, 11 July 2011 (2011-07-11), pages 1 - 6, XP031964858, ISBN: 978-1-61284-348-3, DOI: 10.1109/ICME.2011.6012184 *

Also Published As

Publication number Publication date
EP2801056A1 (en) 2014-11-12
CN104115162B (zh) 2018-05-08
BR112014016400A2 (pt) 2017-06-13
US20150036936A1 (en) 2015-02-05
BR112014016400A8 (pt) 2017-07-04
JP2015503800A (ja) 2015-02-02
AR089531A1 (es) 2014-08-27
EP2801056B1 (en) 2021-04-14
KR20140110044A (ko) 2014-09-16
JP5845361B2 (ja) 2016-01-20
KR102049078B1 (ko) 2019-11-26
ES2879937T3 (es) 2021-11-23
BR112014016400B1 (pt) 2021-11-16
US9373056B2 (en) 2016-06-21
US9269020B2 (en) 2016-02-23
US20160125261A1 (en) 2016-05-05
CN104115162A (zh) 2014-10-22
WO2013102574A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
ITMI20120003A1 (it) Analisi d&#39;immagine
US9412037B2 (en) Method and system for image analysis based upon correlation relationships of sub-arrays of a descriptor array
KR101971114B1 (ko) 이미지 분석 방법 및 시스템
US8019165B2 (en) Image processing apparatus, image processing method, defect detection method, semiconductor device manufacturing method, and program
JP2014029732A (ja) 画像の検索および読み出しに関する基準を用いて画像内容の描写を生成する方法
JP2017529584A (ja) 指紋照合及びカメラ識別を向上させる方法、デバイス、及びそのシステム
EP2742486A2 (en) Coding of feature location information
US20140133550A1 (en) Method of encoding and decoding flows of digital video frames, related systems and computer program products
WO2021007999A1 (zh) 视频帧处理方法及装置
Suryawanshi Image Recognition: Detection of nearly duplicate images
Khwildi et al. A new retrieval system based on low dynamic range expansion and SIFT descriptor
Valsesia et al. Image retrieval based on compressed camera sensor fingerprints
Ashwini et al. Enhancement of Efficient Image Searching by using Advance Hashing Method
Deshmukh Exploration of Log of RGB Space in Object Detection With Faster R-CNN
Xin et al. Chapter 21. An empirical study on fabric image retrieval with multispectral images using colour and pattern features
KR20210023600A (ko) 특징점 기반 영상처리 장치 및 그 영상 처리 방법