Elaborazione delle immagini prima del rilevamento delle funzioni


9

Ho implementato un rilevatore di funzionalità basato sugli angoli di Harris . Funziona bene la maggior parte delle volte, ma ci sono casi in cui si comporta male. Devo farlo funzionare su molte immagini diverse senza configurarlo individualmente.

Il problema è con il valore di soglia del rivelatore. Se impostato su un valore troppo basso, il rilevatore si attiva troppe volte con conseguente numero enorme di funzioni. Se impostato troppo alto, ci sono troppo meno funzionalità.

Ho parzialmente risolto questo problema con ANMS (soppressione adattiva non massima) per ridurre il numero di funzioni prima di assegnare loro un vettore descrittore.

Tuttavia, immagini come questa sono il problema:

inserisci qui la descrizione dell'immagine

Hanno un basso contrasto e non posso "permettermi" di impostare una soglia troppo bassa per tutte le immagini. Farebbe funzionare il rivelatore su queste immagini, ma altre immagini conterrebbero centinaia di migliaia di funzionalità, che saranno lente da filtrare con ANMS e questo danneggerebbe le prestazioni complessive.

Stavo pensando di regolare l'immagine prima del rilevamento delle funzionalità. Forse l'equalizzazione dell'istogramma farebbe il lavoro. Potrebbe trattarsi di un'operazione valida poiché il cambiamento globale del contrasto non ha alcun effetto sui descrittori di funzioni (sono invarianti ai cambiamenti di luminosità e contrasto).

Forse lavorare con una soglia adattiva o un po 'euristico funzionerebbe meglio.

Altri suggerimenti?


@Seyhmus Güngören: Oh. Ho accettato le risposte che ho ottenuto finora da quando ho trovato soluzioni abbastanza soddisfacenti, ma sto ancora aspettando risposte migliori o più elaborate.
Libor,

@Libor È utile per le tue nuove domande perché potrebbe essere più interessante risolvere le tue domande nel caso attuale.
Seyhmus Güngören,

@Libor hai preso in considerazione la corrispondenza dell'istogramma scegliendo un istogramma gaussiano che ha una media intorno a 128?
Seyhmus Güngören,

@ SeyhmusGüngören Sì, ci stavo pensando. Probabilmente lo proverò con poche altre idee.
Libor,

@Libro Puoi dirmi come pensi di utilizzare le funzioni rilevate? Le mie uniche idee sono il recupero o la corrispondenza di immagini basate sul contenuto (ad es. Per la stima dell'omografia), ma poiché questa è l'unica cosa che io abbia mai fatto con loro, potrei sbagliarmi :) Se, d'altra parte, è quello che intendi usare per loro, potrei essere in grado di contribuire.
penelope,

Risposte:


1

Una possibilità sarebbe quella di fare un semplice rilevamento dei bordi (come Laplace) e usare l'intensità media del risultato come base per la soglia degli angoli di Harris. Quando si ha un basso contrasto, si ottengono meno spigoli e con intensità inferiore, con un contrasto elevato si ottengono più spigoli e con intensità più elevate.

Non sei l'unico a lottare con questo problema. Se hai accesso a database cartacei, questo potrebbe essere interessante:

Potrebbe valere la pena cercare di più il rilevamento dell'angolo harris (auto) adattivo.


Questa non è una contraddizione. Il rilevatore ha due fasi: 1) rileva le caratteristiche, 2) descrive le caratteristiche. L'equalizzazione dell'istogramma dovrebbe avere effetto sullo stage 1 (più funzionalità rilevate), non sullo stage 2. Ho bisogno di rilevare una quantità moderata di funzionalità, quindi non è necessario filtrarle molto.
Libor,

Ok, ci ho pensato, ma non è stato del tutto chiaro dalla tua domanda. Non intendo usare l'immagine del bordo come input per il rilevatore di caratteristiche, ma come misura personale di quale dovrebbe essere il valore della soglia.
Geerten,

Grazie, è un pensiero interessante. Il rilevatore angolare Harris utilizza immagini derivate (dx, dy, dxy) per costruire misure angolari in ciascun punto. Dato che questo è già basato su misure limite, ora sto pensando di prendere l'istogramma della funzione di risposta d'angolo e la soglia di calcolo di quell'istogramma. Mi hai ispirato, grazie :)
Libor,

Sono contento di poterti ispirare;) Aggiunto un documento che potrebbe essere utile.
Geerten

2

Devi davvero usare gli angoli di Harris? Ci sono molte funzionalità sviluppate dopo gli angoli di Harris, con proprietà migliori. Una buona panoramica è disponibile in questo articolo:

Sulla base di questo articolo e della mia esperienza personale, suggerirei di passare a MSER (Maximly Stable Extermal Regions) , o addirittura di combinarli con DoG (Difference of Gaussians) - le funzionalità presentate per la prima volta come parte della pipeline SIFT.

Se il problema è davvero a basso contrasto , le funzionalità MSER dovrebbero davvero renderti felice: sono (abbastanza) invarianti rispetto ai cambiamenti nell'illuminazione. In breve, sono regioni collegate dell'immagine stabili attraverso una serie di diverse binarizzazioni di soglia.

Il processo di estrazione delle caratteristiche è indipendente dal calcolo dei descrittori, quindi non dovrebbe essere troppo difficile integrare nuovi modi di estrazione delle caratteristiche nel tuo processo.

Inoltre, ho sentito parlare (ma in realtà non ho mai lavorato) degli angoli Multiscale Harris come estensione degli angoli Harris. Non ne so molto su di loro e personalmente non posso raccomandare alcun materiale di lettura su questo argomento, quindi lascio la ricerca agli articoli e la scelta dei materiali più interessanti per te.


Inoltre, potrei suggerire che l'immagine che hai pubblicato potrebbe avere altri problemi oltre al basso contrasto . Nella mia esperienza personale, la vegetazione come cespugli o forse il campo che hai, così come le belle nuvole frizzanti tendono a produrre "caratteristiche generiche" - caratteristiche che tendono ad avere descrittori ugualmente simili (o diversi) come molte altre caratteristiche.

In pratica, ciò significa che quando si esegue la corrispondenza delle caratteristiche su due immagini da una prospettiva diversa, le caratteristiche estratte da questo tipo di superfici tendevano ad essere erroneamente abbinate. Ho fatto un tesi di laurea che tratta in gran parte dell'estrazione di funzionalità da utilizzare nella corrispondenza di funzionalità ulteriormente utilizzata per calcolare una trasformazione dell'omografia tra due immagini quando ho riscontrato questo problema. Non ho trovato altri articoli che descrivono questo problema al momento, ma la mia tesi potrebbe essere utile per il tuo approccio generale.

Infine, come hai impostato, le soglie e le tecniche che funzionano perfettamente sulla maggior parte delle immagini si estendono a piccole funzionalità in questo tipo di immagini, a causa delle sue aree per lo più omogenee. Questo tipo di immagini presenta problemi nella corrispondenza delle caratteristiche (che può essere estesa alla cucitura di immagini), nel recupero di immagini basate sul contenuto, e presumo il tracciamento e applicazioni simili. Nessun metodo attualmente funziona abbastanza bene su di essi.

I metodi che funzionano bene su questo tipo di immagini, nonché i casi tipici, sono attualmente esplorati e studiati, come un approccio su cui ho iniziato a lavorare brevemente descritto in questa risposta .


Grazie per la risposta dettagliata, esaminerò i documenti quando avrò del tempo libero. Stavo implementando un rilevatore di funzionalità con due problemi: complessità di implementazione e problemi di brevetto. La mia applicazione è una libreria di allineamento e cucitura di immagini commerciali e quindi ho risorse e tempo limitati per l'implementazione e non posso permettermi di pagare per SIFT o SURF. Probabilmente passerò a MSER o ad altri rivelatori / descrittori avanzati, ma finora gli angoli di Harris funzionano bene con l'eccezione delle immagini con scarsa illuminazione.
Libor

@Libor Questa è la bellezza: non devi cambiare. Puoi semplicemente aggiungere le nuove funzionalità alla pipeline di rilevamento-> descrizione esistente. Indipendentemente da come vengono estratte le funzionalità, puoi sempre calcolare i loro descrittori con la stessa tattica. Di tutte le cose che ho scritto, forse il primo articolo menzionato confrontando varie opzioni per il rilevamento / descrizione potrebbe rivelarsi il più utile.
penelope,

Ho usato raccogliere descrittori di grandi dimensioni e poi ho usato PCA per migliorare la velocità e il potere discriminatorio dei descrittori. Il PCA, tuttavia, è piuttosto costoso per set di dati di grandi dimensioni. Questo lavoro mi ha attratto a causa del miglioramento generico dei descrittori. Finora tutto quello che uso è il "Rifiuto anomalo dello spazio delle caratteristiche", che è semplicemente il limite sulle corrispondenze delle caratteristiche basate sulla distanza 1-nn / 2-nn. Questo è descritto da D. Lowe nei suoi articoli e ha un ottimo potere discriminatorio in quanto sfrutta la proprietà shell delle distanze in spazi scarsamente illuminati.
Libor

Per quanto riguarda i rivelatori, grandi cambiamenti di punto di vista e invarianza della scala non sono un problema, poiché con il mosaico di immagini (panorami, microscopi) lo zoom viene generalmente mantenuto invariato e le deformazioni affini o proiettive sono piuttosto piccole tra le immagini corrispondenti. Il problema principale è che sono state rilevate troppe funzionalità o descrittori insufficienti.
Libor

Personalmente non so molto sulla scelta del descrittore, ho lavorato solo con SIFT. Ma il link che hai fornito ha indicato che sono simili ai descrittori DAISY, che ricordo anche di essere stato valutato molto bene. La combinazione di più estrattori di funzionalità dovrebbe sperare di fornirti più funzionalità e scalare l'invarianza può essere solo un vantaggio, anche se non ne hai bisogno. Ho letto alcuni lavori che menzionano che lavorare con più estrattori di funzioni aumenta i poteri discriminatori (posso cercare i collegamenti se vuoi).
penelope,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.