Come estrarre i segnali stradali da una fotografia?


15

Quali tecniche di analisi delle immagini posso usare per estrarre i segnali stradali da un'immagine come quella qui sotto?

Colpo esterno di una strada metropolitana

Modificare:

Dopo la diffusione anisotropica: lo sfondo che non voglio viene cancellato un po '

inserisci qui la descrizione dell'immagine

Dopo dilatazione:

inserisci qui la descrizione dell'immagine

Soglia dopo diffusione: non è in grado di capire la soglia migliore per questo scopo

inserisci qui la descrizione dell'immagine

Tuttavia non sono in grado di capire come rimuovere lo sfondo?

Modifica: voglio solo queste parti della mia immagine

inserisci qui la descrizione dell'immagine

Scatto di un'altra immagine di input:

inserisci qui la descrizione dell'immagine

Applicazione del filtro mediano e rilevamento dei bordi:

inserisci qui la descrizione dell'immagine

Dopo il filtro del cappello inferiore:

inserisci qui la descrizione dell'immagine

Come posso isolare i segnali stradali per favore aiutatemi?


Per me "segnale stradale" significa un dispositivo illuminato justsymbol.com/images/traffic-signal-sign-6.png , non un segnale. Intendi solo segni?
endolith

Sì, solo i segni
vini

Quale approccio hai provato tu stesso?
Maurits,

Sì, ho dei modelli
vini,

Ho curato @mauritis
vini il

Risposte:


17

Hai provato qualcosa di semplice come la correlazione?

( EDIT ). L'idea alla base della correlazione è quella di utilizzare un modello (nel tuo caso un campione di segnale stradale addestrato) e confrontarlo con ogni posizione nell'immagine di prova. L'operazione di confronto che ho usato per generare le immagini seguenti si chiama correlazione incrociata normalizzata . In parole povere, si standardizzano (media = 0, deviazione standard = 1) i pixel nel modello e la parte dell'immagine che si desidera abbinare, moltiplicandoli pixel per pixel e calcolando il valore medio dei prodotti. In questo modo si ottiene un "punteggio di corrispondenza", ovvero una misura di somiglianza tra il modello e l'immagine di prova in ogni posizione dell'immagine di prova. La posizione con la migliore corrispondenza (massima correlazione) è probabilmente la candidata per la posizione del segnale stradale. (In realtà, ho usato la funzione MathematicaCorrelazione Distanza per generare l'immagine qui sotto, che è 1 - (correlazione normalizzata). Quindi il punto più scuro nell'immagine della partita corrisponde alla migliore corrispondenza).

Non ho altri modelli, quindi ho semplicemente ritagliato il segno dalla seconda foto che hai pubblicato:

inserisci qui la descrizione dell'immagine

Anche se il modello è leggermente ruotato, la correlazione incrociata sembra ancora utilizzabile

inserisci qui la descrizione dell'immagine

e la migliore corrispondenza si trova nella posizione giusta:

inserisci qui la descrizione dell'immagine

(Avresti bisogno di più versioni in scala di ogni modello per rilevare segni di qualsiasi dimensione, ovviamente)


1
@nikie: potresti spiegare il processo che hai usato?
smokris,

Sì, questo aiuterebbe un po 'di più. L'idea sembra buona
vini

@vini Se hai modelli e stai provando a trovarne istanze nella tua immagine, la correlazione incrociata è l'approccio più naturale e dovrebbe essere tra i primi approcci che provi. Ecco una risposta qui (codice Mathematica) e un'altra su SO (codice MATLAB) in cui utilizzo questo approccio.
Lorem Ipsum,

7

Durante i miei Master, il progetto in cui era coinvolto il mio supervisore si occupava di rilevare e riconoscere tutti i tipi di diversa segnalazione del traffico in una sequenza video (ad esempio rilevamento della strada, rilevamento della linea centrale della strada, ma anche rilevamento e riconoscimento dei segnali stradali ). I fotogrammi video su cui stavamo lavorando sono per molti versi simili alle immagini di esempio.

Mentre personalmente non ho lavorato sui segnali stradali, penso che i migliori risultati siano stati ottenuti usando l' algoritmo Viola-Jones (carta) . In breve, si tratta di un algoritmo che utilizza una cascata di classificatori deboli (con un'accuratezza appena superiore a quella di un algoritmo casuale) per costruire un classificatore forte che sia robusto anche in compiti difficili.

Il progetto si chiamava MASTIF (Mappatura e valutazione dello stato del traffico in infrastruttura) e ha svolto un ottimo lavoro. La pagina di pubblicazione del progetto potrebbe essere davvero utile perché fornisce collegamenti a tutti gli articoli pubblicati relativi al progetto. Giusto per darti un'idea, lasciami individuare alcune delle pubblicazioni (in ordine cronologico):

Ancora una volta, non ho lavorato personalmente sui segnali stradali, ma penso che qui puoi trovare molto materiale utile. Inoltre, suggerirei di consultare i riferimenti citati nei documenti in quanto possono anche essere di aiuto.


6

Bene, googling road way signs detection ti dà un sacco di buoni documenti su questo argomento.

Alcuni usano la segmentazione del colore grazie a particolari colori blu, verde, rosso ecc.

Alcuni applicano prima il livellamento gaussiano, quindi il rilevamento del bordo astuto e la ricerca del contorno per estrarre il cartello.

Prova a seguire due collegamenti: Link 1 , Link 2


collegamenti morti, sfortunatamente
Charles B,

In realtà entrambi i collegamenti funzionano per me.
Abid Rahman K,

@CharlesB: i collegamenti vengono aggiornati :)
Anoop KP,

5

Non sono sicuramente un esperto qui, ma puoi iniziare con il rilevamento dei bordi (come astuto), quindi trasformarlo per rilevare cerchi, rettangoli, quadrati o triangoli (in base al segno che vuoi rilevare), quindi puoi fare un modello matching o istogramma, se i colori sono abbastanza distinti (sopra i candidati restituiti dalla trasformazione hough).

Il primo passo (rilevare i candidati usando hough Transform) è il passo più difficile. Posso pensare a molti modi per provare a rilevare se quel candidato è il segno o meno. Questo è un problema divertente Divertiti a risolverlo :)

A proposito, sono sicuro che puoi trovare buoni articoli di ricerca che sono altamente correlati

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.