ITTO20130835A1 - Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti - Google Patents

Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti

Info

Publication number
ITTO20130835A1
ITTO20130835A1 IT000835A ITTO20130835A ITTO20130835A1 IT TO20130835 A1 ITTO20130835 A1 IT TO20130835A1 IT 000835 A IT000835 A IT 000835A IT TO20130835 A ITTO20130835 A IT TO20130835A IT TO20130835 A1 ITTO20130835 A1 IT TO20130835A1
Authority
IT
Italy
Prior art keywords
points
interest
descriptors
frame
compact
Prior art date
Application number
IT000835A
Other languages
English (en)
Inventor
Danilo Pietro Pau
Original Assignee
St Microelectronics Srl
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 St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT000835A priority Critical patent/ITTO20130835A1/it
Priority to US14/516,310 priority patent/US9501713B2/en
Publication of ITTO20130835A1 publication Critical patent/ITTO20130835A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

DESCRIZIONE
“Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti”
TESTO DELLA DESCRIZIONE
Campo tecnico
La presente descrizione è relativa all’elaborazione di immagini digitali.
Una o più forme di attuazione possono applicarsi alla rimozione anticipata ed alla rilevazione di punti di interesse da contenuti di immagini fisse e di video.
Una o più forme di attuazione possono essere usate in applicazioni di ricerca e di recupero.
Sfondo tecnologico
Ogni giorno viene prodotta e consumata una quantità crescente di contenuti di immagini fisse e video digitali.
Le applicazioni di ricerca (search) e di recupero (retrieval) delle immagini fisse e dei video sono diventate sempre più importanti per il recupero di immagini basato sul contenuto e la ricerca di oggetti, luoghi o persone che sono parte dei contenuti delle immagini.
L’estrazione di punti di interesse e di descrittori compatti dai segnali di immagini fisse e video può rivestire un ruolo apprezzabile in tali applicazioni.
L’articolo di Miroslaw Bober et al. “Test Model 4: Compact Descriptors for Visual Search, Video Subgroup”, Shanghai 2012, Cina, ISO/IEC JTC1/SC29/WG11/W13145, descrive un modello di Descrittori Compatti per Ricerca Visiva (CDVS, “Compact Descriptors for Visual Search”) MPEG.
Per esempio, la Figura 1 di tale documento presenta un modulo di estrazione che produce un descrittore compatto con due elementi principali, vale a dire un numero selezionato di descrittori, locali, compressi e un singolo descrittore , globale, per es. un “digesto” di descrittori locali, che rappresentano un’immagine complessiva.
Questo modello noto può presentare una seria carenza di efficienza sul lato dei punti di interesse (per esempio DoG, Differenza di Gaussiana (“Difference of Gaussian”)), ad es. quando si elaborata un’immagine fissa o video.
Questa carenza di efficienza può diventare sempre più grave all’aumentare del numero delle DoG per ottava. Per esempio, se si elaborano 4 ottave con 5 scale calcolate per ciascuna ottava, allora si calcolano 4 risposte di DoG per ciascuna ottava per un totale di 20.
Evitare il più possibile un calcolo delle DoG può ridurre la complessità dell’elaborazione e dei calcoli. In effetti, ciascuna DoG è una differenza per pixel tra scale consecutive calcolate a loro volta usando filtri gaussiani complessi applicati una pluralità di volte all’immagine complessiva.
Inoltre, il Modello di Test (Test Model) considerato in precedenza implica un blocco di Selezione dei Punti Chiave (“Keypoint”) che usa una combinazione di elementi distintivi (feature) statistiche. Queste comprendono le distanze dei punti chiave dal centro dell’immagine al fine di ponderare (e quindi di classificare per la selezione) i punti chiave prima di passarli allo stadio di descrizione e allo stadio di descrizione del vettore globale.
Un tale approccio può avere vantaggi, ad es. una adattatività “nativa” alla natura statistica dei dati di ingresso senza alcun genere di conoscenza a priori. Tuttavia, tale approccio non riesce a dimostrare adattatività alla differente natura dei descrittori visivi che alimentano i processi di codifica dei descrittori locali e globali. Questo può svolgere un ruolo nella predizione dei punti di interesse nelle immagini fisse e video dal punto di vista semantico (per es. la posizione dei visi o di altri oggetti), allo scopo di calcolare i descrittori locali e/o globali.
L’articolo di Duy-Nguyen Ta et al. “SURFTrac: Efficient Tracking and Continuous Object Recognition using Local Feature Descriptors”, IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), giugno 2009, descrive un algoritmo (SURFTrac) per estrarre descrittori di una serie di immagini video digitali.
Per la prima immagine, l’algoritmo inizializza un elenco di punti di interesse effettuando una rilevazione completa. Alla ricezione di nuove immagini, i punti di interesse vengono aggiornati. I descrittori sono ai fini del riconoscimento e l’algoritmo li calcola secondo necessità.
Più specificamente, l’algoritmo in questione costruisce dapprima una mappa di elementi distintivi (feature) SURF estratti da un insieme di immagini di frame chiave acquisite dall’ambiente circostante. Dopo l’estrazione e la verifica di corrispondenza con questi elementi distintivi SURF della mappa del primo frame video, l’algoritmo insegue localmente tali elementi distintivi nei frame successivi. Il frame chiave che ha l’area più grande in sovrapposizione con il frame video corrente è detto nodo chiave.
Le aree in sovrapposizione di frame chiave vicini sono aggiornate in ogni frame in base alle loro omografie interframe, e così il nodo chiave è commutato continuamente all’immagine più simile nella banca dati: ciò consente un inseguimento costante e un’esplorazione di nuove regioni nelle sequenze video. Inoltre, durante l’inizializzazione, l’algoritmo in questione calcola i descrittori completi degli elementi distintivi SURF dalla prima immagine video e ne verifica la corrispondenza rispetto alle immagini.
Questo procedimento costruisce un albero approssimato dei vicini più prossimi per tutti gli elementi distintivi dell’immagine nella banca dati seguito da una verifica geometrica (algoritmo RANSAC “RANdom SAmple Consensus”).
Quando identificano con successo immagini che corrispondono, la migliore immagine è contrassegnata come il nodo chiave corrente, e l’insieme di immagini in riproduzione è ridotto alle sole immagini che sono connesse da un percorso nella banca dati. La banca dati delle immagini è organizzata come segue: V è una raccolta di immagini; G è un grafo non direzionato nel quale le immagini formano i nodi nel grafo, e gli archi descrivono le relazioni tra le immagini.
Un arco tra due immagini indica una relazione geometrica quando queste due immagini possono essere messe in relazione attraverso una verifica di corrispondenza delle immagini a coppie standard. Ciascuna immagine è anche identificata con uno o più identificatori e due immagini che condividono lo stesso identificatore sono anche connesse da un arco aggiuntivo. Questa organizzazione è simile a un grafo di immagini costruito a fini di navigazione (“browsing”) gerarchica.
Documenti di interesse aggiuntivi possono comprendere, per es.:
- Agrawal et al.: “Censure: Center Surround Extremas for Realtime Feature Detection and Matching”, in European Conference on Computer Vision - ECCV , pagine da 102 a 115, 2008; DOI: 10.1007/978-3-540-88693-8_8
- Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool: “SURF: Speeded Up Robust Features”, Computer Vision and Image Understanding (CVIU), Vol. 110, No. 3, pagine da 346 a 359, 2008
- Rosten et al.: “Machine Learning for High-Speed Corner Detection”, in Conference: European Conference on Computer Vision - ECCV , vol. 1, pagine da 430 a 443, 2006 DOI: 10.1007/11744023_34
- Salti, S.; Tombari, F.; Di Stefano, L.A: “Performance Evaluation of 3D Keypoint Detectors 3D Imaging, Modeling, Processing, Visualization and Transmission (3DIMPVT)”, 2011 International Conference on Digital Object Identifier: 10.1109/3DIMPVT.2011.37 Anno di Pubblicazione: 2011 , Pagine: da 236 a 243.
Scopo e sintesi
La precedente discussione indica la necessità di soluzioni perfezionate che possano per es. permettere una riduzione della ridondanza temporale in una sequenza video, una predizione delle aree di interesse nelle immagini dal punto di vista semantico (posizione dei visi, per esempio), un’analisi completa dei contenuti predetti, e simili.
Uno scopo di una o più forme di attuazione è di soddisfare una tale necessità.
Una o più forme di attuazione raggiungono tale scopo grazie a un procedimento che ha le caratteristiche elencate nelle rivendicazioni seguenti.
Una o più forme di attuazione possono essere relative a un corrispondente sistema, a una corrispondente apparecchiatura comprendente un dispositivo di acquisizione di immagini digitali per produrre frame/immagini digitali per l’elaborazione da parte di un tale sistema, così come a un prodotto informatico caricabile nella memoria di almeno un computer e comprendente porzioni di codice software per eseguire le fasi del procedimento quando il prodotto è eseguito su almeno un computer. Come qui usato, si comprende che un riferimento a un tale prodotto informatico è equivalente a un riferimento a mezzi leggibili da computer contenenti istruzioni per controllare il sistema di elaborazione al fine di coordinare una implementazione del procedimento secondo l’invenzione. Un riferimento a “almeno un computer” intende evidenziare la possibilità che la presente invenzione sia implementata in forma modulare e/o distribuita.
Le rivendicazioni sono parte integrante dell’insegnamento tecnico qui fornito con riferimento all’invenzione.
Una o più forme di attuazione possono essere applicate all’estrazione di punti di interesse da un contenuto di immagini fisse o video, per es. a scopo di ricerca e di recupero.
In una o più forme di attuazione, l’estrazione di punti di interesse può implicare uno scarto (rejection) anticipato delle aree di un’immagine che possono non comprendere punti di interesse e descrittori contrassegnati successivamente come inlier.
Una o più forme di attuazione possono basarsi sul riconoscimento che certe parti dell’immagine sorgente possono non comprendere informazioni di interesse da un punto di vista statistico; di conseguenza, mentre aumenta la complessità computazionale, la loro elaborazione non offre alcun contributo apprezzabile al risultato finale.
Una o più forme di attuazione possono implicare l’elaborazione di punti di interesse soltanto a un livello di scala, la loro selezione essendo dipendente dal fatto che possano contribuire alla codifica di un descrittore locale o alla codifica di un descrittore globale da un contenuto di immagini fisse o di video.
Una o più forme di attuazione possono comprendere:
- un blocco di scarto anticipato, configurato per scartare senza una ulteriore elaborazione blocchi di immagini senza contenuto significativo, tali blocchi essendo rappresentativi per es. di una regione spaziale o temporale di un segnale di immagine fissa o video che è visivamente omogeneo;
- un blocco di rilevazione configurato per calcolare i punti di interesse dei blocchi nei quali è stata scomposta una immagine;
- un blocco selettore dei punti di interesse, atto a essere implementato in modi differenti usando strategie differenti.
Una o più forme di attuazione possono così implicare, per es.:
- selezionare, tra i dati candidati inclusi in un blocco, dati di punti chiave per una ulteriore elaborazione per una codifica dei descrittori locali e globali, eventualmente usando soglie regolate differenti,
- un processo di selezione accoppiato a una fase di rilevazione dei punti di interesse.
Breve descrizione delle Figure
Una o più forme di attuazione saranno descritte ora, a puro titolo di esempio non limitativo, con riferimento alle figure annesse, in cui:
- le Figure 1 e 2 sono schemi a blocchi funzionali che illustrano un esempio di elaborazione o trattamento di immagini in base all’estrazione di elementi distintivi;
- le Figure 3 e 4 sono schemi a blocchi funzionali di esempi di forme di attuazione;
- la Figura 5 è uno schema a blocchi funzionale della cernita (“culling”) di un blocco in forme di attuazione;
- le Figure 6 e 7 sono esempi dell’elaborazione relativa all’estrazione di descrittori globali e di descrittori locali in forme di attuazione;
- la Figura 8 è uno schema a blocchi di un processo di selezione in forme di attuazione;
- la Figura 9 è una rappresentazione schematica di un processo di selezione multi-stadio in forme di attuazione.
Descrizione dettagliata
Nella descrizione che segue sono illustrati uno o più dettagli specifici, mirati a fornire una comprensione approfondita di esempi di forme di attuazione. Le forme di attuazione possono essere ottenute senza uno o più dei dettagli specifici, o con altri procedimenti, componenti, materiali, ecc. In altri casi, strutture, materiali o operazioni note non sono illustrate o descritte in dettaglio in modo da non rendere poco chiari certi aspetti delle forme di attuazione.
Un riferimento a “una forma di attuazione” nel quadro della presente descrizione intende indicare che una particolare configurazione, struttura o caratteristica descritta con riferimento alla forma di attuazione è compresa in almeno una forma di attuazione. Per cui, frasi come “in una forma di attuazione” che possono essere presenti in uno o più punti della presente descrizione non fanno necessariamente riferimento proprio alla stessa forma di attuazione. Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in un modo adeguato qualsiasi in una o più forme di attuazione.
I riferimenti qui usati sono forniti semplicemente per convenienza del lettore e quindi non definiscono l’ambito di protezione o l’ambito delle forme di attuazione.
Le Figure 1 e 2 sono schemi a blocchi di esempi di architetture funzionali per effettuare una verifica di corrispondenza a coppie M o un recupero (ricerca) S di immagini digitali, per es. di frame video digitali.
Una funzione/modulo di verifica di corrispondenza (matching) M come esemplificato nella Figura 1 può permettere di verificare in modo automatizzato (per esempio, tramite un computer) se due immagini rappresentano gli stessi oggetti o la stessa scena.
Questo risultato può essere ottenuto operando su una immagine di interrogazione (“query”) QI e su una immagine di riferimento RI. A tale scopo, entrambe le immagini possono essere sottoposte a un’operazione di estrazione dei descrittori (indicata nel suo complesso con 10) e a un’operazione di confronto effettuata in M operando su questi descrittori così come estratti in 10, il confronto essendo mirato a rilevare una possibile corrispondenza. Il risultato dell’operazione di verifica della corrispondenza, indicata con R, indica che l’immagine di interrogazione QI rappresenta oppure no gli stessi oggetti o la stessa scena, vale a dire “corrisponde” all’immagine di riferimento RI.
La funzione di recupero (retrieval) della Figura 2 può operare secondo gli stessi criteri eccetto che, nel caso di un recupero, il confronto in S è realizzato con un numero di immagini di riferimento RIiestratte da una banca dati DB. In tal modo, è possibile ricercare e recuperare, all’interno della banca dati DB, una o più immagini che riproducono gli stessi oggetti o la stessa scena dell’immagine di interrogazione QI.
Varie forme di attuazione, come qui esemplificato, possono assumere la forma di sistemi di elaborazione (atti ad essere strutturati per es. come una pipeline di elaborazione) per estrarre elementi distintivi da un segnale di immagine in modo da produrre descrittori compatti CD di immagini digitali I (per es. di frame video digitali). Tali descrittori possono comprendere, in aggiunta a un certo numero di descrittori locali LD, un singolo descrittore globale GD che fa riferimento all’immagine nel suo complesso.
Come qui utilizzato, il termine “immagine” comprende sia immagini fisse sia frame in una sequenza video. Nel contesto della descrizione che segue, “video” comprende dunque anche ad es. immagini fisse, stream video 2D e stream video 3D, per es. un video 2D più la profondità per ciascuna immagine, come una matrice aggiuntiva della stessa dimensione dell’immagine che può contenere informazioni di profondità per pixel.
In modo simile, mentre tre matrici possono contenere informazioni di pixel video sulle componenti “Y”, “U” e “V”, per frame temporale, in una o più forme di attuazione possono essere usati spazi di colori equivalenti.
Più specificamente, le Figure 3 e 4 rappresentano uno schema a blocchi di esempi di forme di attuazione di un estrattore di CDVS (Compact Descriptors for Visual Search) configurato per operare su “immagini” prodotte da un dispositivo di acquisizione video C.
Ai fini della presente descrizione, il blocco C sarà qui considerato rappresentativo di un qualsiasi dispositivo di acquisizione di immagine atto a produrre immagini digitali per l’elaborazione così come esemplificata nel seguito, per es. per generare uno stream di uscita di descrittori compressi di immagini di ingresso I.
A titolo di esempio, le immagini di ingresso I possono essere comprese in una sequenza video con un certo frame rate e con una certa risoluzione, per es. immagini (frame) con una distanza nel tempo che è l’inverso (il reciproco) di un frame rate associato.
Per semplicità, in tutta questa descrizione si ipotizzerà che ad essere estratte per essere inoltrate a una elaborazione successiva siano le componenti di luminanza. Gli esperti del settore apprezzeranno peraltro che la stessa elaborazione qui esemplificata può essere applicata ad uno qualsiasi dei canali delle componenti dell’immagine o a qualsiasi combinazione (lineare) di questi.
In una o più forme di attuazione, le immagini I possono essere fornite in ingresso a una funzione/modulo di ridimensionamento o resizing 100 (opzionale) per modificare la risoluzione delle immagini, in modo tale che le immagini I fornite in uscita dalla funzione/modulo di resizing 100 possano avere una risoluzione differente dalla risoluzione delle immagini originali di ingresso.
In una o più forme di attuazione, le immagini I (eventualmente ridimensionate in 100) possono essere inoltrate a una funzione/modulo di culling (cernita) dei blocchi 102 nella quale possono essere scomposte per es. in blocchi non in sovrapposizione di dimensione fissa.
L’azione della funzione/modulo 102 è indicata come azione di “culling” per il fatto che soltanto alcuni dei blocchi nei quali sono decomposte le immagini di ingresso I possono essere forniti in uscita verso una successiva funzione/modulo di rilevazione 104.
In una o più forme di attuazione, il culling (vale a dire la selezione di uno o più blocchi in vista di una ulteriore elaborazione, mentre gli altri blocchi sono scartati) effettuato nel blocco 102 della Figura 3 può implicare una elaborazione come esemplificato nello schema a blocchi della Figura 5.
In un tale esempio di forma di attuazione, la funzione/modulo 102 può comprendere un insieme di funzioni/moduli 1020, 1022 e 1024. Nella Figura 5, il blocco 1020 è un esempio di una funzione/modulo di decomposizione in blocchi, in cui le immagini di ingresso I (eventualmente ridimensionate in 100) possono essere decomposte per es. in blocchi quadrati o rettangolari.
In una o più forme di attuazione, i blocchi di immagine così prodotti possono essere forniti a una funzione/modulo di calcolo dell’energia dei blocchi 1022, dove si calcola l’energia (varianza) Var(x) dei blocchi.
La varianza è un’entità ben definita in statistica, che può essere calcolata in differenti modi. Un esempio di una formula per calcolare l’energia o la varianza di un blocco può essere il seguente:
dove la variabile casuale X è discreta con una funzione di massa di probabilità x1 ↦ p1, ..., xn ↦ pn, µ è il valore atteso, cioè
Specificamente, pipuò rappresentare un coefficiente moltiplicativo che condivide lo stesso indice i di xi, dove xiè il valore (per es. l’intensità) di pixel in una iesima posizione nel blocco come scansionato per es. riga dopo riga o colonna dopo colonna. Per esempio, in un blocco 8x8 (8 righe e 8 colonne), i può variare tra 1 e 64 (per es. i = 1, ..., 8 per la prima riga; i = 9, ..., 16 per la seconda riga e così via).
In una o più forme di attuazione, i valori per l’energia (per es. la varianza) dei blocchi possono quindi essere inviati a una funzione/modulo di decisione sul culling dei blocchi 1024, per cui solo quei blocchi che hanno un’energia (varianza) che passa una certa soglia (eventualmente regolabile) possono essere mantenuti per una ulteriore elaborazione (per es. una rilevazione dei punti di interesse e una elaborazione successiva). Al contrario, se la soglia non è passata, per es. l’energia (la varianza) è inferiore a una data soglia impostata in 1024, il rispettivo blocco non sarà ulteriormente elaborato, riducendo così la complessità computazionale.
In una o più forme di attuazione, (soltanto) i blocchi di immagine che passano la soglia di energia (di varianza) sono così mantenuti per un’eventuale uso nella generazione di descrittori compatti. Il dispositivo in questione implementa così, per così dire, un’azione di “scarto anticipato” per cui quei blocchi di immagine che ci si aspetta non avere alcun contenuto significativo sono scartati, evitando così che questi debbano essere ulteriormente elaborati.
L’azione selettiva della funzione/modulo 1024 è rappresentata schematicamente nella Figura 5 sotto forma di uno “switch” 1024a che è aperto (cioè reso non conduttivo) dalla funzione/modulo di decisione 1024 se la soglia di energia non è passata, per es. se l’energia è inferiore alla soglia. Se, al contrario, la soglia è passata, per es. l’energia è uguale o superiore alla soglia, la funzione/modulo di decisione 1024 chiuderà lo switch (cioè lo renderà conduttivo), in modo tale che il blocco “che sopravvive” all’analisi dell’energia possa essere inoltrato a una funzione/modulo di rilevazione (basata su blocchi) come esemplificato da un blocco 104.
In una o più forme di attuazione, essendo basata su blocchi, l’elaborazione qui descritta può essere “parallelizzata” (per es. con una pluralità di blocchi che sono elaborati in parallelo), il che può condurre a prestazioni migliorate nei termini della velocità di elaborazione e di un consumo di potenza ridotto.
In una o più forme di attuazione, i blocchi di immagine “che sopravvivono” all’azione di culling dei blocchi effettuata in 102 possono essere sottoposti in 104 a una elaborazione di rilevazione dei punti di interesse per trovare punti distintivi (punti chiave o key points) delle immagini.
Un certo numero di implementazioni di una rilevazione dei punti di interesse è descritto per es. in vari documenti già citati nella parte introduttiva di questa descrizione (Agrawal et al.; Bay et al.; Rosten et al. e Tombari et al.).
In una o più forme di attuazione come qui esemplificate, l’uscita della funzione/modulo di rilevazione 104 può comprendere punti di interesse (soltanto) per quei blocchi di immagine che sono stati mantenuti dopo l’azione di culling in 102.
In una o più forme di attuazione, questi punti di interesse possono essere rappresentati dalle loro coordinate [x, y], scala, picco, distanza dagli estremi rilevati, patch circostante (per es. M x N) di pixel.
In una o più forme di attuazione, l’uscita dalla funzione/modulo di rilevazione 104 può essere fornita a una funzione/modulo di selezione 106. Nella funzione/modulo di selezione 106, i punti di interesse forniti in uscita dalla funzione/modulo di rilevazione 104 possono essere ulteriormente selezionati così come descritto meglio in dettaglio nel seguito per produrre punti distintivi (punti chiave) per un uso ulteriore in una funzione/modulo di generazione dei descrittori locali (visivi) 108.
In una o più forme di attuazione, l’uscita della funzione/modulo 108 può essere fornita alle funzioni/moduli da 110 a 120 della Figura 4 per essere sottoposta a una elaborazione così come descritta in ulteriore dettaglio nella parte finale di questa descrizione.
In una o più forme di attuazione, l’uscita dalla funzione/modulo 108 può comprendere per es. un numero di vettori per es. di 128 elementi di 1 byte ciascuno.
In una o più forme di attuazione, la funzione/modulo 108 può implementare una procedura come descritta per es. in Calonder M. et al.: “BRIEF: Binary robust independent elementary features”, in Proc. of European Conference on Computer Vision (ECCV), Creta, Grecia, 2010, (si vedano specialmente i paragrafi 3.1, 3.2). Tale procedura usa stringhe binarie quali descrittori efficienti dei punti degli elementi distintivi, e un tale descrittore può basarsi su un numero relativamente piccolo di test di differenza dell’intensità per rappresentare un patch dell’immagine come una stringa binaria di K bit. Un descrittore può essere valutato in modo similmente usando la distanza di Hamming tra queste stringhe.
In una o più forme di attuazione, la funzione/modulo dei descrittori locali 108 può implementare una procedura così come descritta nel documento ISO/IEC JTC1/SC29/WG11/W13758 agosto 2013, Vienna, Austria - Test Model 7: Compact Descriptors for Visual Search per es. calcolando l’orientamento del gradiente in un patch MxN di pixel assegnati a bin (“binned”) in un numero fisso di istogrammi per calcolare un descrittore di 16x8 byte.
In una o più forme di attuazione così come qui descritte, l’elaborazione dell’uscita dalla funzione/modulo di rilevazione 104 può implicare una memorizzazione temporanea dei dati in una memoria locale basata su blocchi evitando così una memorizzazione di un frame video completo o una ricomposizione di una immagine completa in questo stadio.
La Figura 6 è uno schema a blocchi di un processo di selezione che, in una o più forme di attuazione, può essere effettuato in 106 sull’uscita dalla funzione/modulo di rilevazione 104 (questo è rappresentato sia nella Figura 5 sia nella Figura 6 per un riferimento immediato), alimentando la funzione/modulo rappresentata dal blocco 108 nella Figura 3.
A tale riguardo, si apprezzerà che, sebbene nella Figura 3 sia rappresentata per semplicità una singola linea di connessione del blocco 108 al blocco 106, il blocco 108 può essere connesso per es. alle linee indicate con LD e GD nella Figura 6.
Più specificamente, la Figura 6 si riferisce a un esempio di selezione su due stadi effettuata in 106 che coinvolge stadi 1060 e 1062 configurati per effettuare, per es. in base a rispettive soglie (eventualmente regolabili), processi di selezione suscettibili di essere “regolati” positivamente in vista di un possibile uso rispettivamente per i descrittori locali e i descrittori globali.
In una o più forme di attuazione, i risultati della selezione (effettuata per es. così come illustrato nella Figura 6) possono essere memorizzati in una memoria locale basata su blocchi 1064, dalla quale possono essere recuperati i dati per un calcolo dei descrittori locali LD e dei descrittori globali GD.
Una possibile elaborazione così come rappresentata dal blocco 108 è esemplificata schematicamente nella Figura 7, che rappresenta cosiddetti bin SIFT per es. blocchi 4x4, per es. 8 (otto) possibili orientamenti per i blocchi 4x4, facendo riferimento a una elaborazione SIFT (Scale Invariant Feature Transform) così come descritta per es. in D.G. Lowe: “Distinctive Image Features from Scale-Invariant Keypoints”, International Journal of Computer Vision, 60, da 91 a 110 (2004), con descrittori locali di SIFT intorno ai gradienti di ciascun punto di interesse. Questi possono rappresentare un bin con un orientamento relativo di 45 gradi che può essere usato per produrre un descrittore di SIFT nello stadio 108.
Le Figure 8 e 9 si riferiscono a una o più possibili forme di attuazione della funzione/modulo di selezione 106 (per es. così come delineato con riferimento alla Figura 6).
In una o più forme di attuazione, la probabilità che un punto di interesse candidato divenga un punto chiave da inoltrare per es. a un blocco 108 (e 118) di elaborazione della descrizione locale/globale può essere determinata come segue:
- i) per ciascuna coordinata x, y e per ciascun orientamento possibile, calcolare una probabilità che la coordinata x, y sia un punto chiave;
- ii) se la probabilità così calcolata passa, per es. è (uguale) o superiore a, una certa soglia (per es. 1) >>> allora il punto in questione è un punto chiave;
iii) altrimenti, se la probabilità così calcolata non passa, per es. è inferiore a, una certa soglia (per es. 1), allora il punto in questione non è considerato un punto chiave ed è scartato.
In una o più forme di attuazione, le soglie applicate al fine di selezionare i punti chiave per l’elaborazione dei descrittori locali o dei descrittori globali possono essere differenti.
Come indicato, la Figura 7 esemplifica 8 (otto) possibili orientamenti per i blocchi 4x4 facendo riferimento ai descrittori locali SIFT calcolati dai gradienti dei punti di interesse. Per esempio un patch orientato di 16x16 pixel può essere ricavato per i pixel vicini e diviso in patch di 4x4 pixel. Per ciascuno di questi, gli orientamenti dei gradienti sono calcolati e assegnati a bin per es. in 8 bin che rappresentano orientamenti relativi di 45 gradi (per es. 0, 45, 90, 135, 180, 225, 270 e 315 gradi).
La Figura 8 è un esempio di una implementazione pratica di una strategia di selezione atta a essere implementata nell’uno o nell’altro o in entrambi i blocchi 1060 e 1062: per tale motivo i vari elementi nella Figura 8 sono indicati collettivamente come 1060/1062.
In una o più forme di attuazione, una tale strategia può implicare delle capacità di memoria 1066-1, 1066-2 e 1066-3 (per es. tabelle di ricerca o LUT (“Look Up Table”)) per la scala S, le coordinate D e gli orientamenti O. Una tale strategia di selezione può implicare una combinazione (per es., come esempio non limitativo, una combinazione lineare) di queste entità al fine di decidere quali punti di interesse candidati possono essere inoltrati all’elaborazione della descrizione locale/globale.
Un principio logico alla base dell’esempio della forma di attuazione della Figura 8 può essere espresso come segue:
- per ciascuna scala S (memorizzata in 1066-1)
- per ciascuna coppia C di coordinate x, y (memorizzata in 1066-2)
- per ciascun orientamento possibile O (memorizzato in 1066-3)
- calcolare (per es. tramite una combinazione lineare espressa da pesi W1, W2, W3 e da somme A1, A2) un valore di probabilità [0, 1] che la coordinata x, y possa corrispondere a un punto chiave.
- se la combinazione passa, per es. è (uguale o) superiore a) una soglia (come impostata in 1060-1/1060-2: come indicato, le soglie per l’elaborazione dei descrittori locali e dei descrittori globali possono essere differenti), allora il punto viene selezionato come un punto chiave.
- se la combinazione non passa, per es. è inferiore a, la soglia, allora il punto non è considerato un punto chiave ed è scartato (“eliminato”).
In una o più forme di attuazione, i selettori 1060-1 e 1060-2 (un singolo blocco nella Figura 8 è etichettato “doppiamente” 1060-1/1062-1 per indicare che una tale funzione/modulo è atta a essere implementata nell’uno o nell’altro o in entrambi i selettori 1060 e 1062) possono decidere quali punti possono diventare punti chiave da recuperare dalla memoria 1064 e da inoltrare all’elaborazione dei descrittori locali e globali (linee LD e GD nella Figura 6).
Una tale azione selettiva è rappresentata di nuovo schematicamente nella Figura 8 sotto forma di “switch” 1060-2/1062-2. Quando chiuso dal rispettivo selettore 1060-1/1062-1, il commutatore 1060-2/1062-2 connetterà la memoria 1064 all’elaborazione dei descrittori locali (linea LD) o all’elaborazione dei descrittori globali (linea GD).
Si apprezzerà che uno schema a blocchi come rappresentato nella Figura 8 può anche implementare una strategia di selezione come discusso con riferimento alla Figura 7 (per es. una selezione basata su coordinate e orientamenti) se si fa a meno degli elementi esemplificati dalle entità 1066-1, W1 e A1.
Più in generale, in una o più forme di attuazione, la selezione in 106 può essere funzione di qualsiasi combinazione di entità selezionate tra la scala, le coordinate e gli orientamenti.
Una o più forme di attuazione possono adottare un dispositivo così come esemplificato nella Figura 9 al fine di valutare la “utilità” dei punti di interesse rilevati in 104 per l’elaborazione dei descrittori in base alle loro coordinate, ai loro orientamenti e alla loro scala.
Nel decidere quali punti di interesse candidati possano essere inoltrati all’elaborazione dei descrittori (per es. 108, 118), un tale dispositivo può anche prevedere un anello di retroazione verso la funzione/modulo di rilevazione al fine di influenzare il suo comportamento. Per tale motivo, lo schema a blocchi della Figura 9 descrive in dettaglio un esempio di una struttura di un rilevatore/funzione 104 che comprende due stadi 104a e 104b, con la funzione/modulo di selezione dei punti chiave 106 posta subito dopo lo stadio 104b.
In una o più forme di attuazione, il secondo stadio 104b può eseguire su una pluralità di “ottave” (per es. 1<a>ottava o fondamentale, 2<a>ottava, 3<a>ottava, 4<a>ottava, ...) sostanzialmente lo stesso genere di elaborazione esemplificato in seguito.
Tale elaborazione su una pluralità di ottave è nota di per sé da varie implementazioni, per es. dall’articolo di Miroslaw Bober et al. discusso nella parte introduttiva di questa descrizione evidenziando che una tale implementazione può diventare sempre più inefficiente all’aumentare del numero delle DoG per ottava.
In una o più forme di attuazione, il primo stadio 104a può così avere lo scopo principale di “distribuire” i dati dei blocchi dalla funzione/modulo di culling 102 (così come ricavati eventualmente da una memoria tampone di sincronizzazione 1040) su una pluralità di (sotto)stadi 1041, 1042, 1043, 1044, ... connessi per es. tramite uno streaming di 1 pixel che inoltrano a loro volta al secondo stadio 104b rispettivi dati per l’elaborazione della 1<a>ottava, della 2<a>ottava, della 3<a>ottava, della 4<a>ottava, ....
In una o più forme di attuazione, il secondo stadio 104b può cooperare con la funzione/modulo di selezione dei punti chiave 106 decidendo la quantità di punti di interesse da considerare come prodotti all’uscita di un motore di Differenza di Gaussiana (DoG) implementato nel secondo stadio 104b, per es. tramite un motore di rilevazione degli estremi.
In una o più forme di attuazione, il funzionamento del dispositivo esemplificato nella Figura 9 può essere basato sul concetto seguente:
- se tra un certo numero di punti di interesse rilevati per un i-esimo frame (una i-esima immagine), è stato selezionato solo un (primo) numero L di elementi distintivi per es. L_prev_frame;
allora il selettore può essere portato a conoscenza di questo numero L e, per il successivo (i+1-esimo) frame, può essere impostato un nuovo numero di obiettivo (“target”) L_next_frame.
In una o più forme di attuazione, questo può verificarsi in funzione del numero dei punti rilevati ottenuti nel frame precedente (points_detected_prev_frame) e del nuovo valore di target per il numero di quei punti (points_target_next_frame), vale a dire:
L_next_frame=f(points_detected_prev_frame,points_target_next_frame).
Un esempio di una formula che attua tale concetto può essere il seguente:
L_next_frame = L_prev_frame· [k1+k2·(points_target_next_frame–points_detected_prev_frame)/(points_target_next_frame)]
dove k1 e k2 sono parametri (eventualmente regolabili) che possono essere definiti (per es. empiricamente) a seconda dell’applicazione considerata.
Inoltre, come indicato precedentemente, in una o più forme di attuazione, possono essere adottati differenti criteri di selezione in considerazione dell’elaborazione dei descrittori locali (LD) e dei descrittori globali (GD). In una o più forme di attuazione, un meccanismo di selezione adattativa come discusso in precedenza può essere implementato differentemente nella selezione dei punti chiave per l’elaborazione dei descrittori locali (LD) e dei descrittori globali (GD).
In una o più forme di attuazione, il secondo stadio 104b può così essere configurato secondo una struttura “gemella”, per es. in considerazione dell’implementazione di differenti criteri di selezione in considerazione dell’elaborazione dei descrittori locali (LD) e dei descrittori globali (GD).
In una o più forme di attuazione, una tale struttura può comprendere:
- un primo e un secondo stadio di rilevazione degli estremi 1046a, 1046b: questi possono essere alimentati dai (sotto)stadi 1041, 1042, 1043, 1044, ... con dati per la rispettiva elaborazione di ottava e possono ricevere una retroazione dalla funzione/modulo di selezione dei punti chiave 106 come descritto meglio in dettaglio nel seguito;
- un primo e un secondo registro della posizione degli estremi 1047a, 1047b che possono essere alimentati rispettivamente dal primo e dal secondo stadio di rilevazione degli estremi 1046a, 1046b e possono ricevere una retroazione dalla funzione/modulo di selezione dei punti chiave 106 come descritto meglio in dettaglio nel seguito;
- un primo e un secondo stadio di gradiente 1048a, 1048b che possono essere alimentati rispettivamente dal primo e dal secondo registro della posizione degli estremi 1047a, 1047b così come da un primo e un secondo registro di patch 1049a, 1049b rispettivi; l’uscita dal primo e dal secondo stadio di gradiente 1048a, 1048b può rappresentare i risultati della rilevazione (selettiva), per es. i punti di interesse candidati e i loro orientamenti da inoltrare alla funzione/modulo di selezione dei punti chiave 106.
Le linee di retroazione dalla funzione/modulo di selezione agli stadi di rilevazione degli estremi 1046a, 1046b e ai registri della posizione degli estremi 1047a, 1047b sono esempi della possibile implementazione del concetto/formula di selezione adattativa, vale a dire del fatto che lo stadio selettore 104b è portato a conoscenza del numero dei punti rilevati ottenuti nel frame precedente al fine di permettere di impostare un nuovo valore di target per il numero di quei punti per il frame successivo, cioè al fine di influenzare il numero di rilevazione in fase di esecuzione (“run time”) dei punti di interesse.
In una o più forme di attuazione, l’elaborazione di rilevazione degli estremi così come implementata nello stadio 104b, con i (sotto)stadi di gradiente 1047a, 1047b che forniscono le loro uscite alla funzione/modulo di selezione dei punti chiave 106, può implicare due azioni di confronto con soglia rispetto a rispettive soglie (eventualmente regolabili), in base rispettivamente a una valutazione dei punti con basso contrasto e all’eliminazione della risposta dei bordi.
In una o più forme di attuazione, uno stadio di filtro dei punti con basso contrasto può adottare un approccio come descritto in D.G. Lowe: “Distinctive Image Features from Scale-Invariant Keypoints”, International Journal of Computer Vision, 60, da 91 a 110 (2004) – già citato - in cui posizioni stabili dei punti chiave nello spazio della scala possono essere rilevate in modo efficiente usando estremi dello spazio della scala nella funzione di Differenza di Gaussiana sottoposta a convoluzione con l’immagine, indicata con D(x,y,σ).
In una o più forme di attuazione che adottano tale approccio, filtrare i punti con basso contrasto può così implicare per es. valutare l’espansione di Taylor del 2° ordine di D(x,y,σ) allo scostamento (“offset”) (x) usando il valore dello spazio della scala nella posizione trovata precedentemente, per es.
e quindi, per es.:
- se il valore è minore di una prima soglia, di basso contrasto, (per es. 0,03) → il punto è scartato;
- altrimenti: punto chiave candidato KP @ (x+x), scala σ dove x è la posizione originale del candidato nella scala σ.
In una o più forme di attuazione, una seconda azione di confronto con soglia può implicare l’eliminazione della risposta dei bordi usando Autovalori Hessiani poiché quelli sono proporzionali alle curvature principali di D (cioè gli elementi di una matrice Hessiana H 2 x 2 calcolata nella posizione e nella scala del punto chiave) usando la traccia Tr(H) e il Determinante Det (H) della matrice Hessiana, dove:
Tr(H)= Dxx+ Dyy= α β, Det(H) = DxxDyy– (Dxy)<2>= αβ
R = Tr(H)<2>/Det(H) < (r 1)<2>/r
Per esempio, per qualche valore di soglia rth, se R per un candidato è maggiore di una seconda soglia, di risposta dei bordi, (rth+1)<2>/rthquel punto chiave può essere considerato come posizionato male e quindi rifiutato. Un esempio di valore può essere rth= 10.
Un tale approccio può essere implementato in un dispositivo come esemplificato nella Figura 9 per es. nel primo e nel secondo stadio di gradiente 1048a, 1049b in base a un ingresso dal primo e dal secondo registro della posizione degli estremi 1047a, 1047b che sono alimentati rispettivamente dal primo e dal secondo stadio di rilevazione degli estremi 1046a, 1046b così come in base a un ingresso dal primo e dal secondo registro di patch 1049a, 1049b.
In una o più forme di attuazione, le soglie di valutazione dei punti con basso contrasto e di eliminazione della risposta dei bordi (eventualmente differenti in considerazione dell’elaborazione dei descrittori locali e dei descrittori globali) possono adottare l’approccio di selezione adattativa (per es. pilotato da retroazione a partire dalla funzione/modulo di selezione dei punti chiave 106) discusso in precedenza, per cui una qualsiasi di queste soglie per un frame “successivo”, per es. Th_next_frame può essere resa funzione di L_next_frame e di L_prev_frame, vale a dire:
Th_next_frame = f(L_next_frame, L_prev_frame)
influenzando dinamicamente in tal modo il numero di punti di interesse rilevati dal rilevatore dei punti di interesse.
Di nuovo, un esempio di una formula che attua tale concetto può essere il seguente:
Th_next_frame = Th_prev_frame· [k3+k4·(L_prev_frame)/abs(L_prev_frame - L_new_frame)]
dove k3 e k4 sono parametri (eventualmente regolabili) che possono essere definiti (per es. empiricamente) a seconda dell’applicazione considerata e abs() indica il valore assoluto.
In una o più forme di attuazione, il confronto con soglia adattativa (pilotato da retroazione) qui esemplificato con riferimento al dispositivo della Figura 9 può implicare anche solo uno (e non entrambi) tra il filtraggio dei punti con basso contrasto e l’eliminazione della risposta dei bordi come esemplificato in ciò che precede.
Si apprezzerà che, in una o più forme di attuazione, il confronto con soglia adattativa (pilotato da retroazione) qui esemplificato con riferimento al dispositivo della Figura 9 può anche essere applicato ai dispositivi delle Figure 6 e 8.
In una o più forme di attuazione, il numero di punti che passano le soglie di valutazione dei punti con basso contrasto e dell’eliminazione della risposta dei bordi considerate in precedenza possono dettare quanti dei punti di interesse rilevati su una immagine/frame sono rifiutati e quanti sono passati alla (ulteriore) selezione nella funzione/modulo 106.
Una o più forme di attuazione come qui descritte possono mirare a ridurre (eventualmente in maniera regolabile/adattativa) il numero dei punti chiave che sono sottoposti a una elaborazione (locale e/o globale) al fine di generare descrittori (compatti) di immagini digitali, riducendo così il carico di lavoro di calcolo associato.
In una o più forme di attuazione, questo può verificarsi per es.:
- a livello di culling dei blocchi, per es. nella funzione/modulo 102, per cui soltanto i blocchi che “passano” una soglia di energia (varianza) sono inoltrati a una ulteriore elaborazione, mentre i blocchi che non riescono a passare una tale soglia sono scartati;
- a livello della selezione, per cui soltanto quei punti di interesse che “passano” certe soglie (come impostate per es. nella funzione/modulo 106 nei blocchi 1060, 1062) sono inoltrati a una ulteriore elaborazione, mentre quei punti che non riescono a passare tali soglie sono scartati.
In una o più forme di attuazione, come esemplificato nella Figura 9, un confronto con soglia, con i punti di interesse che “passano” certe soglie inoltrati a una ulteriore elaborazione e quei punti che non riescono a passare tali soglie sono scartati, può essere effettuato (per es. rispetto a soglie variate in modo adattativo) nello stadio di rilevatore 104b.
Generalmente, per soglie “più stringenti”, un numero maggiore di blocchi/punti non riuscirà a passare la soglia (le soglie) e potrà essere scartato; viceversa per soglie “meno stringenti”, un numero maggiore di blocchi/punti passerà la soglia (le soglie) e potrà essere mantenuto.
In tutta questa descrizione dettagliata di esempi di forme di attuazione, per semplicità e facilità di comprensione, si è assunto che un’entità “passi” una soglia se (uguale o) superiore alla soglia e “non passi” una soglia se inferiore. Si apprezzerà che, in una o più forme di attuazione, il fatto che un valore o un’entità sia in grado di “passare” una soglia può essere in generale riferito al fatto che tale valore o tale entità sia --conforme -- ad una certa soglia: un certo valore o una certa entità può così “passare” una soglia essendo inferiore oppure superiore (o eventualmente inferiore o uguale, cioè non superiore, o eventualmente superiore o uguale, cioè non inferiore) alla soglia, secondo il caso considerato.
In una o più forme di attuazione, i risultati dall’elaborazione, come discusso precedentemente con riferimento alle Figure da 5 a 9, possono essere sottoposti a una elaborazione dei descrittori come esemplificato nella Figura 4, che può essere “messa in cascata” all’elaborazione esemplificata nella Figura 3.
Così come indicato, in una o più forme di attuazione, l’uscita dalla funzione/modulo 108 può comprendere per es. un numero di vettori di per es. 128 elementi di 1 byte ciascuno.
In una o più forme di attuazione, l’uscita dalla funzione/modulo 108 può derivare da una elaborazione di SIFT (Scale Invariant Feature Transform) per es. come descritto in D.G. Lowe: “Distinctive Image Features from Scale-Invariant Keypoints”, International Journal of Computer Vision, 60, da 91 a 110 (2004) - già citato).
In una o più forme di attuazione, l’uscita dalla funzione/modulo 108 può essere inoltrata a:
- una funzione/modulo di trasformazione 110, seguita da una funzione/modulo di codifica 112 con Quantizzazione Scalare (SQ) - può applicarsi similmente una Quantizzazione Vettoriale (VQ) - che ha in cascata una funzione/modulo di codifica aritmetica (in alternativa di prefisso o di entropia) 114,
- una funzione/modulo di codifica delle coordinate 116 per produrre coordinate x e y compresse per ciascun punto di interesse,
- una funzione/modulo dei descrittori globali 118 per effettuare una procedura di aggregazione (per es. Vettore di Fisher Compresso Scalabile o SCFV (“Scalable Compressed Fisher Vector”)) in modo da produrre per es. descrittori globali GD discriminativi compatti.
In una o più forme di attuazione, la funzione/modulo di trasformazione 110 può essere come esemplificato per es. in ISO/IEC JTC1/SC29/WG11/W13758 agosto 2013, Vienna, Austria Test Model 7: Compact Descriptors for Visual Search Paragrafo 2.4 o una qualsiasi tra una Trasformata di Fourier (per es. FFT), una Trasformata Coseno Discreta (DCT, “Discrete Cosine Transform”), Karhunen-Loeve.
In una o più forme di attuazione, partendo da vettori di per es. 128 elementi ciascuno di 1 byte o più, la funzione/modulo di quantizzazione 112 può produrre vettori di elementi ciascuno di meno di 1 byte (fino a 0).
In una o più forme di attuazione, partendo da vettori di per es. 128 elementi ciascuno di meno di 1 byte, una funzione/modulo di codifica, come esemplificato in 114, può produrre un numero di vettori codificati usando per es. 0, 1, 2 bit.
In una o più forme di attuazione, una funzione/modulo di codifica delle coordinate 116 può generare una stringa di bit per una pluralità di coppie di x, y.
In una o più forme di attuazione, una funzione/modulo dei descrittori globali 118 può generare una stringa di bit per un numero di vettori di per es. 128 elementi di 1 byte ciascuno.
Le uscite dalle funzioni/moduli 114, 116 e 118 possono quindi essere consolidate in una funzione/modulo di sfruttamento 120 per es. per un possibile uso nelle operazioni di verifica della corrispondenza/recupero come rappresentato schematicamente nelle Figure 1 e 2.
Ulteriori dettagli concernenti quanto precede possono essere ricavati dal documento ISO/IEC già menzionato in precedenza, anche alla luce dell’articolo di D.G. Lowe come citato in precedenza. Per cui, la corrispondente descrizione dettagliata non è qui ripetuta per motivi di brevità, anche perché di per se stessa non è essenziale ai fini della comprensione delle forme di attuazione.
Fermi restando i principi alla base dell’invenzione, i particolari di realizzaione e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto è qui illustrato puramente a titolo di esempio non limitativo, senza uscire per questo dall’ambito di protezione. L’ambito di protezione è determinato dalle rivendicazioni seguenti.

Claims (14)

  1. RIVENDICAZIONI 1. Procedimento per produrre (108, 118) descrittori compatti di immagini digitali (I), il procedimento comprendendo: - rilevare (104) in dette immagini digitali (I) punti di interesse rappresentativi di dette immagini digitali (I), e - selezionare (106) tra detti punti di interesse rappresentativi di dette immagini digitali (I) punti chiave per produrre (108, 118) detti descrittori compatti, in cui il procedimento comprende: - scomporre (1020) dette immagini digitali (I) in blocchi, - calcolare (1022) una energia (varianza) per ciascun detto blocco, - sottoporre detti blocchi a una cernita o culling (102) scartando (1024a) quei blocchi che hanno un’energia che non riesce a passare una soglia di energia, - rilevare (104) detti punti di interesse nei blocchi risultanti da detto culling (102), e - selezionare (106) detti punti chiave per produrre (108, 118) detti descrittori compatti tra i punti di interesse rilevati (104) nei blocchi risultanti da detto culling (102).
  2. 2. Procedimento secondo la rivendicazione 1, per produrre (108, 118) descrittori compatti locali (LD) e globali (GD) di immagini digitali (I), in cui detto selezionare (106) detti punti chiave tra i punti di interesse rilevati (104) nei blocchi risultanti da detto culling (102) è rispetto a soglie di selezione (1060, 1062) diverse rispettivamente per detti descrittori compatti locali (LD) e globali (GD).
  3. 3. Procedimento secondo la rivendicazione 1 o la rivendicazione 2, comprendente selezionare (106) detti punti chiave tra detti punti di interesse rilevati (104) in funzione di entità selezionate tra la scala (S), le coordinate (C) e l’orientamento (O) di detti punti di interesse.
  4. 4. Procedimento secondo la rivendicazione 3, in cui detto selezionare (106) detti punti chiave tra detti punti di interesse rilevati (104) comporta confrontare una combinazione (W1, W2, W3, A1, A2), preferibilmente lineare, della scala (S), delle coordinate (C) e dell’orientamento (O) di detti punti di interesse rispetto ad almeno una soglia di selezione (1060-1; 1060-2).
  5. 5. Procedimento secondo qualsiasi delle rivendicazioni precedenti comprendente variare in modo adattativo (106; 1046a, 1046b; 1047a, 1047b) il numero di detti punti chiave per produrre (108, 118) detti descrittori compatti.
  6. 6. Procedimento secondo la rivendicazione 5, in cui detto variare in modo adattativo il numero di detti punti chiave per produrre (108, 118) detti descrittori compatti comprende variare in modo adattativo (106; 1046a, 1046b; 1047a, 1047b) il numero dei punti di interesse rilevati (104b) nei blocchi risultanti da detto culling (102).
  7. 7. Procedimento secondo la rivendicazione 6, in cui variare in modo adattativo (106; 1046a, 1046b; 1047a, 1047b) il numero dei punti di interesse rilevati (104) nei blocchi risultanti da detto culling (102) comprende impostare un numero L_next_frame di punti di interesse di target da rilevare (104) per un successivo i+1-esimo frame a partire da un numero L_prev_frame di punti di interesse rilevati per un precedente i-esimo frame in funzione del numero points_detected_prev_frame di punti di interesse selezionati per detto precedente i-esimo frame e di un nuovo numero di target points_targeted_next_frame di punti di interesse selezionati per detto successivo i+1-esimo frame.
  8. 8. Procedimento secondo la rivendicazione 6 o la rivendicazione 7, in cui rilevare (104b) i punti di interesse nei blocchi risultanti da detto culling (102) è tramite almeno uno tra: - filtrare i punti con basso contrasto, - eliminare la risposta dei bordi.
  9. 9. Procedimento secondo la rivendicazione 8, in cui detto filtrare i punti con basso contrasto comprende: - rilevare posizioni di punti di interesse stabili nello spazio della scala usando estremi dello spazio della scala nella funzione di Differenza di Gaussiana in convoluzione con l’immagine D(x,y,σ), - determinare un valore di una espansione di Taylor, preferibilmente del 2° ordine, di D(x,y,σ) a un offset x usando il valore dello spazio della scala in una posizione trovata precedentemente, e - filtrare quei punti per i quali il valore determinato non riesce a passare una soglia di basso contrasto.
  10. 10. Procedimento secondo la rivendicazione 8 o la rivendicazione 9, in cui detta eliminazione della risposta dei bordi comprende: - determinare Autovalori Hessiani di una matrice Hessiana H, preferibilmente 2 x 2, calcolata nella posizione e nella scala di un punto di interesse che è considerato, - calcolare un rapporto R, preferibilmente del quadrato, tra la traccia Tr(H) e il Determinante Det (H) di detta matrice Hessiana, e - eliminare quei punti per i quali detto rapporto R non riesce a passare una soglia di risposta dei bordi.
  11. 11. Procedimento secondo la rivendicazione 9 o la rivendicazione 10, comprendente rendere almeno una tra detta soglia di basso contrasto e detta soglia di risposta dei bordi adattativa su base trama per trama.
  12. 12. Sistema per produrre descrittori compatti di immagini digitali (I), il sistema (da 100 a 120) essendo configurato per funzionare secondo il procedimento di qualsiasi delle rivendicazioni da 1 a 11.
  13. 13. Apparecchiatura comprendente: - un sistema (da 100 a 120) per generare descrittori compatti secondo la rivendicazione 11, e - un dispositivo di acquisizione di immagini (C) per generare immagini digitali (I) e per fornire dette immagini digitali a detto sistema (da 100 a 120) per generare loro descrittori compatti.
  14. 14. Prodotto informatico, caricabile nella memoria di almeno un computer e comprendente porzioni di codice software per implementare il procedimento di qualsiasi delle rivendicazioni da 1 a 11 quando eseguito su detto almeno un computer.
IT000835A 2013-10-16 2013-10-16 Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti ITTO20130835A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT000835A ITTO20130835A1 (it) 2013-10-16 2013-10-16 Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti
US14/516,310 US9501713B2 (en) 2013-10-16 2014-10-16 Method of producing compact descriptors from interest points of digital images, corresponding system, apparatus and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000835A ITTO20130835A1 (it) 2013-10-16 2013-10-16 Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti

Publications (1)

Publication Number Publication Date
ITTO20130835A1 true ITTO20130835A1 (it) 2015-04-17

Family

ID=49596402

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000835A ITTO20130835A1 (it) 2013-10-16 2013-10-16 Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti

Country Status (2)

Country Link
US (1) US9501713B2 (it)
IT (1) ITTO20130835A1 (it)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805289B2 (en) * 2015-12-18 2017-10-31 Ricoh Co., Ltd. Color-based post-processing of images
EP3185138A1 (en) 2015-12-22 2017-06-28 Thomson Licensing Method and apparatus for accelerating a feature point-based image comparison, and method and apparatus for identifying origin images of a query image among video images in a database
SG10202110833PA (en) * 2017-03-29 2021-11-29 Agency Science Tech & Res Real time robust localization via visual inertial odometry
RU2668717C1 (ru) * 2017-12-13 2018-10-02 Общество с ограниченной ответственностью "Аби Продакшн" Генерация разметки изображений документов для обучающей выборки
CN110555352B (zh) * 2018-06-04 2022-11-08 百度在线网络技术(北京)有限公司 一种兴趣点识别方法、装置、服务器和存储介质
CN111047217B (zh) * 2019-12-27 2022-05-24 中国科学院城市环境研究所 一种结合电子地图兴趣点的城市功能空间紧凑性测度方法
CN111444826B (zh) * 2020-03-25 2023-09-29 腾讯科技(深圳)有限公司 视频检测方法、装置、存储介质及计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100254573A1 (en) * 2009-04-07 2010-10-07 Centre National De La Recherche Scientifique Method for measuring the dissimilarity between a first and a second images and a first and second video sequences

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978519A (en) * 1996-08-06 1999-11-02 Xerox Corporation Automatic image cropping
AU2003301737A1 (en) * 2002-10-31 2004-05-25 Electronics And Telecommunications Research Institute Non-linear quantization and similarity matching methods for retrieving video sequence having a set of image frames
US20070237387A1 (en) * 2006-04-11 2007-10-11 Shmuel Avidan Method for detecting humans in images
US8666169B2 (en) * 2011-10-24 2014-03-04 Hewlett-Packard Development Company, L.P. Feature descriptors
TWI542201B (zh) * 2013-12-26 2016-07-11 智原科技股份有限公司 降低視訊畫面抖動的方法與裝置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100254573A1 (en) * 2009-04-07 2010-10-07 Centre National De La Recherche Scientifique Method for measuring the dissimilarity between a first and a second images and a first and second video sequences

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Test Model 7: Compact Descriptors for Visual Search", 105. MPEG MEETING;29-7-2013 - 2-8-2013; VIENNA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. N13758, 12 August 2013 (2013-08-12), XP030020506 *
RYSZARD S CHORAS ET AL: "Integrated color, texture and shape information for content-based image retrieval", PATTERN ANALYSIS AND APPLICATIONS, SPRINGER-VERLAG, LO, vol. 10, no. 4, 21 April 2007 (2007-04-21), pages 333 - 343, XP019545408, ISSN: 1433-755X, DOI: 10.1007/S10044-007-0071-0 *

Also Published As

Publication number Publication date
US9501713B2 (en) 2016-11-22
US20150103199A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
ITTO20130835A1 (it) Procedimento per produrre descrittori compatti a partire da punti di interesse di immagini digitali, sistema, apparecchiatura e prodotto informatico corrispondenti
Zhong et al. An end-to-end dense-inceptionnet for image copy-move forgery detection
Wang et al. Video modeling with correlation networks
US20230196837A1 (en) Action recognition method and apparatus, and device and storage medium
Shi et al. Photo album compression for cloud storage using local features
ITMI20121210A1 (it) A method and an apparatus for the extraction of descriptors from video content, preferably for search and retrieval purpose
CN112085123B (zh) 基于显著点采样的点云数据分类和分割方法
CN101887457A (zh) 基于内容的复制图像检测方法
Wang et al. Exploring hybrid spatio-temporal convolutional networks for human action recognition
CN104115162B (zh) 图像分析
Song et al. Multi-focus image fusion with PCA filters of PCANet
CN109359530B (zh) 一种智能视频监控方法及装置
Li et al. MANet: Multi-scale aggregated network for light field depth estimation
Zemcik et al. High performance architecture for object detection in streamed videos
Wang et al. Deep Image Compression Towards Machine Vision: A Unified Optimization Framework
Peng et al. New network based on D-LinkNet and densenet for high resolution satellite imagery road extraction
Dai et al. HEVC Video Steganalysis Based on PU Maps and Multi-Scale Convolutional Residual Network
Babaee et al. Assessment of dimensionality reduction based on communication channel model; application to immersive information visualization
Ling et al. TaiJiNet: Towards partial binarized convolutional neural network for embedded systems
Liu et al. PCHM-Net: A New Point Cloud Compression Framework for Both Human Vision and Machine Vision
Van Opdenbosch et al. A joint compression scheme for local binary feature descriptors and their corresponding bag-of-words representation
Dyer et al. Subspace clustering with dense representations
Hu et al. Fast camera fingerprint search algorithm for source camera identification
Chang et al. Color image compressive sensing reconstruction by using inter-channel correlation
Huang et al. An efficient coding framework for compact descriptors extracted from video sequence