Nella visione artificiale , l' estrazione di caratteristiche visive (o estrazione di caratteristiche visive in inglese) consiste in trasformazioni matematiche calcolate sui pixel di un'immagine digitale . Le caratteristiche visive in genere consentono di meglio rendere conto di alcune proprietà visive dell'immagine, utilizzata per successive elaborazioni nell'ambito di applicazioni quali il rilevamento di oggetti o la ricerca di immagini da parte del contenuto . Dagli anni 2010, la stragrande maggioranza del lavoro nella visione artificiale si basa su caratteristiche apprese da reti convoluzionali su grandi database di immagini, in conformità con i principi del deep learning .
Di solito viene fatta una distinzione tra le caratteristiche globali che sono calcolate sull'intera immagine e le caratteristiche locali che sono calcolate intorno ai punti di interesse . Si può parlare anche di caratteristiche semilocali quando queste vengono estratte in aree ristrette dell'immagine, risultanti da una segmentazione dell'immagine in regioni o semplicemente secondo una griglia arbitraria.
La distinzione tra caratteristiche globali e locali è di interesse tassonomico . Le caratteristiche locali si distinguono per il fatto che sono distinte, resistenti alle occlusioni (perché ce ne sono molte in un'immagine o in una regione) e non richiedono segmentazione. Un descrittore locale calcolato ad ogni pixel di un'immagine o di una regione ottenuta per segmentazione, quindi accumulato in un istogramma è quindi una descrizione globale dell'immagine o della regione .
La presa in considerazione del colore delle immagini è stata storicamente una delle prime caratteristiche utilizzate per la ricerca di immagini basata sui contenuti e produce ancora risultati a volte spettacolari su determinate basi. Fu nel 1991 che Swain e Ballard proposero di utilizzare un istogramma a colori per questo tipo di attività. Rappresenta la distribuzione complessiva dei colori nell'immagine. Il suo calcolo consiste in una quantificazione dello spazio colore scelto ( ad esempio RGB ) seguita dal calcolo dell'istogramma dei pixel così trasformati. Ad esempio, se consideriamo un'immagine RGB classica e quantizziamo ogni piano di colore in 4 bin, l'istogramma risultante avrà una dimensione . Se l'immagine è originariamente codificata su 24 bit (il valore di ogni piano è nell'intervallo ), l'istogramma del colore su 64 bit potrebbe essere rappresentato da un "cubo" :
Rosso | |||||||||||||||||
0-63 | 64-127 | 128-191 | 192-255 | ||||||||||||||
verde | verde | verde | verde | ||||||||||||||
0-63 | 64-127 | 128-191 | 192-255 | 0-63 | 64-127 | 128-191 | 192-255 | 0-63 | 64-127 | 128-191 | 192-255 | 0-63 | 64-127 | 128-191 | 192-255 | ||
Blu | 0-63 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
64-127 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
128-191 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
192-255 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
Ciascun colore rappresenta uno dei 64 bin quantizzati e x è quindi il numero di pixel dell'immagine corrispondente a questo bin. In pratica, questo descrittore è generalmente rappresentato da un vettore monodimensionale a 64 dimensioni.
codice di ottava che calcola un istogramma di colore % I = double ( imread('xxx.jpg')); quant=4; nb_bin=quant^3; Iq = floor(I/nb_bin); Iq = Iq(:,:,1) + quant*Iq(:,:,2) + quant*quant*Iq(:,:,3); [NN, XX] = hist(Iq(:),nb_bin);Molti descrittori possono essere derivati dalla rappresentazione dell'istogramma, molti dei quali sono stati inclusi nel modello sperimentale dello standard MPEG-7 . Questi includono:
Già nel 1995 si proponeva di utilizzare i momenti calcolati in un dato spazio colore per caratterizzare le immagini. Generalmente ci limitiamo ai primi due o tre momenti ( media , varianza , asimmetria o anche il momento del 4 ° ordine chiamato curtosi ) ma sono calcolati in ciascuno dei tre piani dello spazio colore scelto. Un possibile perfezionamento è dividere l'immagine secondo una griglia e calcolare questi momenti in ogni cella.
Il colore di un pixel rilevato , definiamo l'insieme . Quindi significa che il pixel p dell'immagine I ha un colore c . Considera un valore di distanza tra i pixel fissato a priori. La distanza utilizzata è ad esempio definita per due pixel e da . Il correlogramma per e è quindi definito da:
Ciò riflette la probabilità che un pixel a una distanza k dal pixel considerato sia colorato . La dimensione del correlogramma è .
L'autocorrelogramma è definito da:
Richiede spazio per gli ordini .
La descrizione delle forme richiede l'identificazione preventiva delle regioni. Questo può essere il risultato della segmentazione dell'immagine o del rilevamento dei loro contorni. Possiamo quindi caratterizzare le regioni per mezzo di vari indici come il loro orientamento principale (ad esempio il loro primo asse proprio ), la loro simmetria oi loro momenti di Zernike .
Un metodo di descrizione particolarmente utilizzato è quello proposto da Mokhtarian, chiamato Curvature Scale Space. Consiste nel descrivere una regione in funzione delle variazioni di curvatura del suo contorno. Per una curva piana in coordinate parametriche in un sistema di coordinate ortonormali , la curvatura è espressa da:
.Questa descrizione è invariante in rotazione e traslazione. Per quanto riguarda lo zoom, è necessario standardizzare almeno per la lunghezza del contorno. Ancora più importante, il descrittore viene solitamente calcolato su scale diverse, ciascuna corrispondente alla convoluzione da parte di un kernel gaussiano.
La definizione della texture non è ovvia e dipende dalla scala. Esistono tre approcci per definire la nozione di texture. Sulla scia del lavoro pionieristico di Haralick, un primo approccio considera una texture come il risultato di un processo stocastico e cerca di descriverle in relazione alle proprietà statistiche dei valori relativi e delle posizioni dei pixel.
Il secondo approccio presuppone l'esistenza di primitive fondamentali che consentono di descrivere le trame, come i Textons definiti da Julesz. Quindi, una data texture è descritta come una combinazione complessa di queste primitive, espressa ad esempio con i grafici .
Un approccio più recente attinge maggiormente alla percezione visiva e tende a spiegare il processo di formazione della trama dal punto di vista umano.
Una trama può essere descritta statisticamente, tenendo conto di come i livelli di grigio dell'immagine si organizzano in relazione l'uno con l'altro. Consideriamo un operatore di posizione p che consente di definire una matrice che conta il numero di volte che un pixel di livello di grigio i è presente alla posizione p di un pixel di livello j . Se la matrice è normalizzata tra 0 e 1, si parla di una matrice di co-occorrenza a livello di grigio . La posizione relativa di due pixel può anche essere definita da un angolo e una distanza d . Ad esempio, se consideriamo tre possibili livelli di grigio e l'immagine che ho definito da:
E l'operatore è a destra di (definito anche da un angolo e una distanza in pixel), quindi la matrice di co-occorrenza (non normalizzata) è:
Il 3 della matrice sta a significare che troviamo tre volte un pixel di valore 2 (quindi nella terza colonna) a destra di un pixel di valore 1 (quindi nella seconda riga).
Da questa matrice di co-occorrenza è possibile definire molti descrittori, come quelli elencati in questa tabella:
Operatore | Formulazione |
---|---|
Massimo | |
Differenza di ordine k | |
Entropia | |
Uniformità |
Un altro approccio statistico ampiamente utilizzato è il modello MSAR (Multiresolution Simultaneous Autoregressive Models) utilizzato, oltre al riconoscimento delle texture, per riconoscere scene naturali.
Approccio strutturaleQuesto approccio presuppone l'esistenza di primitive fondamentali per descrivere le trame. Uno dei primi esempi di tali primitive furono i Textons proposti da Julesz. Una data texture è descritta come una combinazione complessa di queste primitive, espressa ad esempio con grafici . Questi grafici possono quindi essere utilizzati come descrittori della trama.
Approccio spettraleL'espressione di periodicità e altre regolarità in un'immagine o in un segnale avviene naturalmente nell'ambito dell'analisi spettrale . Quindi una trasformata di Fourier discreta dell'immagine può essere una base per creare descrittori. Tuttavia, è più comune utilizzare una serie di filtri Gabor disposti su diverse scale e orientamenti. Ciò consente in particolare di identificare i “principali tratti percettivi”. Il lavoro ha dimostrato che un descrittore basato su tale descrizione spettrale potrebbe spiegare la struttura spaziale dominante di una scena naturale.
Un'alternativa alla trasformata di Fourier è calcolare la trasformata discreta del coseno (DCT). In pratica, i descrittori basati sui coefficienti DCT hanno permesso di discriminare immagini di interni ed esterni, immagini di paesaggi urbani contro paesaggi naturali e, combinati con altri descrittori, diverse categorie di scene naturali contemporaneamente.
La caratterizzazione di un'immagine può essere calcolata in un numero limitato di pixel. Per questo, è prima necessario rilevare le aree di interesse dell'immagine e quindi calcolare un vettore caratteristico in ciascuna di queste aree. Queste aree di interesse sono ad esempio i bordi oi punti salienti dell'immagine (aree ad alto contrasto). Possono anche essere punti presi a caso o regolarmente nell'immagine (cosiddetto campionamento denso ).
Il vettore della caratteristica a volte contiene dati dal rilevamento, come l'orientamento del bordo o l'ampiezza del gradiente nell'area di interesse. Generalmente, il vettore caratteristico in un pixel viene calcolato su un quartiere di questo pixel, vale a dire da un'immagine centrata su questo pixel. Può essere calcolato a scale diverse in modo da eliminare il fattore di zoom. Tra le caratteristiche locali attualmente calcolate, ci sono modelli precedentemente utilizzati a livello globale, come istogrammi di colore o vettori che tengono conto dell'orientamento dei gradienti dei livelli di grigio.
Alcuni metodi come SIFT o SURF includono sia il rilevamento di un'area di interesse che il calcolo di un vettore caratteristico in ciascuna di queste aree. Per quanto riguarda il vettore caratteristico, i SIFT sono più o meno un istogramma degli orientamenti del gradiente e i SURF consistono nel calcolo dell'approssimazione wavelet di Haar . Allo stesso modo, i pattern di bit locali sono un calcolo di co-occorrenza dei livelli di grigio locale di un'immagine e gli HOG sono istogrammi di gradienti orientati, abbastanza simili ai SIFT, calcolati utilizzando un campionamento denso.
La descrizione di un'immagine mediante caratteristiche locali ha generalmente una dimensione variabile, a seconda del numero di punti di interesse estratti (questo numero infatti moltiplicato per la dimensione del descrittore locale). Una tale rappresentazione non è quindi adatta per alimentare algoritmi di apprendimento convenzionalmente usati ( SVM , boosting, ecc.). Per tornare a una rappresentazione in uno spazio vettoriale di dimensione fissa, utilizza tecniche di aggregazione dei descrittori come quelle dei sacchi di parole ( sacchi di visterms ). Il risultato di tale accumulo è quindi una caratteristica complessiva di un'immagine o di una parte dell'immagine (regione).
Nel 2012, la campagna di valutazione internazionale ImageNet Large Scale Visual Recognition Challenge è stata vinta utilizzando un approccio di rete convoluzionale (CNN) appreso grazie ai recenti progressi nel deep learning . Il miglioramento della performance è particolarmente marcato rispetto agli anni precedenti. Poco dopo, viene dimostrato che uno strato di una rete convoluzionale pre-appresa su ImageNet può essere utilizzato come vettore di rappresentazione di un'immagine, secondo uno schema di trasferimento dell'apprendimento , e quindi ottenere prestazioni mai viste prima. immagini dal campo della visione artificiale. A partire da questo periodo, la stragrande maggioranza del lavoro sul campo utilizza quindi vettori caratteristici appresi su immagini naturali per mezzo di una rete convoluzionale e le caratteristiche "designate a mano" diventano molto minoritarie, tranne che per domini di applicazione molto specifica.
Le caratteristiche delle immagini estratte secondo i metodi sopra spiegati sono utilizzate in molti campi della visione artificiale.
Associati a immagini annotate, possono essere utilizzati come input per un algoritmo di apprendimento supervisionato per la classificazione . Questo può essere utilizzato in particolare per rilevare il loro contenuto e in particolare gli oggetti presenti nell'immagine . Allo stesso modo, ma in aree più specifiche, possono essere utilizzati per rilevare volti o persone .
Essendo in grado di fungere da firma dell'immagine, questi descrittori vengono utilizzati anche nella ricerca di immagini in base al contenuto .
In generale, queste sono le tecnologie di base utilizzate in molti campi in cui è coinvolto computer vision: la robotica , videosorveglianza , visione artificiale , riconoscimento ottico dei caratteri , ecc