Domanda

Dopo aver chiesto qui e cercando sia SURF e SIFT, nessuno dei due cuciture essere abbastanza efficace per generare punti di interesse abbastanza veloce per tenere traccia di un corso d'acqua dalla fotocamera.

SURF, per esempio, richiede circa 3 secondi per generare i punti di interesse per un'immagine, che è troppo lento per tenere traccia di un video proveniente da una web cam, e sarà ancora peggio quando lo si utilizza su un telefono cellulare.

Ho solo bisogno di un algoritmo che tiene traccia di una certa area, la sua scala, inclinazione, ecc .. e posso costruire in cima a quello.

Grazie

È stato utile?

Soluzione

Ho il sospetto che l'uso SURF potrebbe essere necessaria una modifica?

Ecco un link a un documento del MIT sull'uso SURF per applicazioni di realtà aumentata su dispositivi mobili.

Estratto:

  

In questa sezione, vi presentiamo il nostro   attuazione del SURF al-gorithm   e il suo adattamento al cellulare   Telefono. Avanti, si discute l'impatto   che la precisione sulla velocità del   Ricerca Nearest Neighbor e spettacolo che   possiamo ottenere un ordine di grandezza   Speed-up con un impatto minimo sulla   corrispondenti precisione. Infine, abbiamo Dis   cuss i dettagli del telefono cellulare   attuazione del corrispondente dell'immagine   pipeline. Studiamo le prestazioni,   l'utilizzo della memoria, e il consumo di banda   al telefono.

Si potrebbe anche voler guardare in algoritmi di OpenCV perché sono provati e testati.

A seconda delle vincoli della vostra applicazione, si può essere in grado di ridurre la genericità di questi algoritmi per cercare POI noti e marcatori all'interno dell'immagine.

Parte del monitoraggio un PDI sta valutando il suo vettore da un punto dell'immagine 2D all'altro, e quindi opzionalmente confermando che esiste ancora (attraverso caratteristiche pixel). Lo stesso approccio può essere utilizzato per monitorare (non ripetere la scansione dell'intera immagine) per POI e PDI gruppo / oggetto prospettiva e rotazione modifiche.

Ci sono tonnellate di documenti on-line per il monitoraggio degli oggetti su una proiezione 2D (fino ad un disallineamento servere in molti casi).

Buona fortuna!

Altri suggerimenti

Stiamo usando SURF per un progetto e abbiamo trovato OpenSURF per sorpassare implementazione SURF di OpenCV in velocità prime e le prestazioni. Abbiamo ancora leggere documenti ripetibilità e precisione testato, ma è il modo più veloce.


Aggiornamento: Volevo solo far notare che non è necessario eseguire un passo SURF partita in ogni fotogramma, si può semplicemente farlo ogni altro telaio e interpolare la posizione dell'oggetto nel fotogramma non eseguite navigare su.

È possibile utilizzare un algoritmo più semplice se si desidera creare delle restrizioni più severe sulla zona che si desidera essere rintracciato. Come sicuramente saprete, ARToolKit è abbastanza veloce, ma solo le tracce marcatori in bianco e nero con una cornice molto distinto.

Se si desidera una (un po ') general purpose inseguitore, si consiglia di controllare PTAM. Il sito ( http://www.robots.ox.ac.uk/~ gk / PTAM / ) è attualmente in giù, ma ecco un video sgargianti di farlo funzionare su un iPhone ( http://www.youtube.com/watch?v=pBI5HwitBX4 )

Come altri hanno già detto, tre secondi sembra insolitamente lungo. Durante il test l'attuazione di surf nella Mahotas biblioteca, ho scoperto che ci sono voluti in media 0.36sec, anche con un po ' abbastanza grandi immagini (es 1024x768). Ed è con un mix di Python e C, quindi mi immagino alcune altre implementazioni puro-C sarebbero ancora più veloce.

Ho trovato questo bel confronto di ogni algoritmi di rilevamento funzione a http://computer-vision-talks.com/2011/01/comparison-of-the-opencvs-feature-detection-algorithms-2/

Date un'occhiata. Potrebbe essere utile!

In base a tale confronto, e come mirror2image ha anche suggerito, veloce è la scelta migliore. Ma dipende da cosa si vuole veramente raggiungere.

Una possibilità che ho usato in sistemi embedded vincolati è quello di utilizzare un rilevatore di punto di interesse più semplice: FAST o Shi-Tomasi per esempio. Ho usato Shi-Tomasi, come mi è stato rivolto ad un FPGA e potrebbe facilmente farlo funzionare a velocità di pixel senza buffer significativo richiesto.

Quindi utilizzare SURF per generare i descrittori per la patch immagine attorno le caratteristiche individuate e usare quelli per la corrispondenza e scopi di monitoraggio.

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