Domanda

Spero di ottenere qualche aiuto con il rilevamento di oggetti 2D. Darò una breve panoramica del contesto in cui questo sarà attuato.

Ci sarà un immagine presa del soffitto. Il soffitto avrà marker posizionati su di esso così l'orientamento della telecamera può essere determinato. Le immagini saranno sempre presi rivolto verso l'alto. Il mio obiettivo è quello di rilevare uno di questi marcatori nel dell'immagine e determinare la sua rotazione. Così rotazione e scala (in misura minore) saranno i due fattori primari utilizzati nel rilevamento di immagini. Scriverò il software sia in C # o MATLAB (non ancora del tutto sicuro).

Ad esempio, l'indicatore potrebbe essere una freccia in questo modo:

Reference Arrow

L'immagine presa del soffitto conterrebbe marcatori. Il software ha bisogno di rilevare un singolo marcatore e determinare che è stato ruotato di 170 gradi.

Frecce soffitto

Non ho esperienza precedente con l'analisi delle immagini. So che l'elaborazione delle immagini è un argomento piuttosto ampio e speravo di ottenere qualche consiglio su quale direzione dovrei prendere e quali tecniche sarebbe meglio per la mia applicazione. Grazie!

È stato utile?

Soluzione

Mi raccomando MATLAB o se siete intenti a utilizzare C #, Emgu CV è piuttosto buona.

Hough trasforma sono una grande idea. Una volta che si rilevano i bordi della vostra immagine, utilizzando, per esempio un Canny edge detector , si ottiene un immagine bordo (che è immagine binaria con solo 1 o 0 per i valori).

Quindi, la retta trasformata di Hough (essenzialmente) gira una linea su ciascun pixel bianco nell'immagine bordo in (risoluzione della linea dipende da voi) usando una funzione parametrica per la linea e calcola il numero totale di bianco (valutate a 1) pixel lungo ciascuna linea filata e memorizza queste informazioni in un grande accumulatore che memorizza i dati indicizzati dai parametri della linea.

alt text http://upload.wikimedia.org/wikipedia /en/a/af/Hough_space_plot_example.png

Nell'esempio precedente, la forma parametrica per una linea è:

rho = x*cos(theta) + y*sin(theta)
  

dove rho è la distanza e theta è   l'angolo

Quindi, come si può vedere il, se si guarda al bidone in un particolare orientamento si può scoprire quante linee sono orientati a quel punto di vista. Naturalmente, dovrete fare un po 'di lavoro extra per capire quali linee sono orientati in quel angolo da quando hai 5 altre righe per freccia, ma che non dovrebbe essere troppo difficile.

Altri suggerimenti

Io non sono direttamente in questo campo, ma io vi direi di iniziare a guardare in modo specifico il rilevamento dei bordi. Se si dispone di un background in matematica / ingegneria dei materiali sono abbastanza facile da capire:

Questo sembrava scintilla alcune idee: http://www.cfar.umd.edu/~fer/ cmsc426 / conferenze / edge1.ppt

come sempre nella visione computer, il primo problema è l'illuminazione di immagine e di acquisizione. prima di andare avanti, di stabilire come i vostri marcatori verranno stampate sul soffitto, ciò che la loro forma sarà, quale luce si prevede di utilizzare per vederli, e ciò che l'installazione della telecamera si scelto di guardare ai marcatori.

dato un buon materiale, una buona luce e una buona macchina fotografica, si può avere alcun problema a tutti per elaborare l'immagine. per esempio, è possibile stampare una freccia piena in un materiale retroriflettente, con una coda più lunga del tuo esempio, utilizzare una luce colorata e un corrispondente filtro sulla fotocamera. ora tutto quello che avete sulla vostra immagine è frecce ... ci sono molti altri modi di acquisire l'immagine che vi aiuterà a lì.

una volta che hai frecce normali, una semplice analisi blob (che consistono di calcolare momenti statistici di oggetti nell'immagine) vi darà un sacco di informazioni: ogni freccia dovrebbe avere valori quasi uguali per le hu momenti 7, che consente per filtrare oggetti in modo efficiente, anche l'orientamento calcolato dai momenti centrali darà l'angolo della freccia. analisi blob essendo statistica solo, è estremamente veloce.

Diversi sistemi sono stati sviluppati per individuare i marcatori e il loro orientamento robustamente:

Se il vostro obiettivo primario non è quello di imparare, ma per rendere il lavoro di applicazione, vorrei suggerire di usare uno di questi. Non è un compito banale per un principiante per rilevare robusto la posizione e l'orientamento di un marcatore casuale in un'immagine.

D'altra parte, se siete interessati a saperne di virile , vorrei anche che si dirigo a ARToolKit e le sue pubblicazioni (ed i loro riferimenti) che spiegano come implementare robusto rilevamento marcatore.

Sarà necessario per esplorare il rilevamento dei bordi, in modo da guardare in filtri Hough. Dopo che avrete bisogno di guardare in classificatori di pattern e estrazione delle caratteristiche.

Questo documento ha un algoritmo che sembra funzionare senza rilevamento di fronte. Questo libro estratto è più orientato verso il tipo di rilevazione simbolo che si intende, una volta che avete fatto il rilevamento dei bordi.

Un modo rigoroso per determinare l'orientamento di un immaginata acquisite in geometria proiettiva (la maggior parte delle telecamere) sta usando punti di fuga e linee di fuga . Buone notizie per voi: il marcatore può essere utilizzato per trovare queste informazioni! Altre notizie buone, la vostra immagine può essere raddrizzato , in modo che le colonne di immagine (l'asse Y) corrisponderanno alla direzione up-down. Troverete di più su questa roba nel capitolo 8 del libro di Hartley e Zisserman di, Multiple geometria della vista in Computer Vision .

Si ricorda inoltre che, probabilmente, si dovrà lavorare sulla radiale problema di distorsione , la distorsione causata dalla lente della fotocamera. Gli altri ragazzi sono di destra circa il problema di rilevamento freccia: è necessario utilizzare il rilevamento bordo e, dopo di che, trasformata di Hough o template matching . Fare riferimento a Gonzalez e Woods' libro Immagine Elaborazione digitale per i dettagli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top