2012-11-17 10 views
5

Devo implementare un software per il tracciamento degli oggetti in movimento nei flussi di immagini utilizzando l'algoritmo di condensazione e la libreria OpenCV. Ho letto che OpenCV include un'implementazione di questo algoritmo, ma non ho trovato esempi o tutorial che spieghino come utilizzare le funzioni corrispondenti disponibili in OpenCV.Come utilizzare l'algoritmo di condensazione disponibile in OpenCV?

La funzione cvCreateConDensation alloca la struttura CvConDensation e richiede la dimensione del vettore di stato (dynam_params), la dimensione del vettore di misura (measure_params) e il numero di campioni (sample_count).

  • La dimensione del vettore di stato dovrebbe fare riferimento allo stato oggetto: per esempio, se lo stato potrebbe essere il punto centrale dell'oggetto monitorato, allora il vettore di stato deve contenere le due coordinate del centro dell'oggetto quindi la dimensione del vettore di stato dovrebbe essere 2 in questo caso; in modo simile, se lo stato di un oggetto è formato da S punti appartenenti alla sua forma, allora si specificano 2 * S come dynam_params valore (cioè il numero di coordinate è uguale a 2 * S). È corretto?
  • Il numero di campioni è il numero di particelle, pertanto il parametro sample_count deve essere impostato con il numero di particelle da utilizzare per il tracciamento dell'oggetto.
  • E la dimensione del vettore di misurazione? Qual è lo scopo del parametro measure_params?

La funzione cvConDensInitSampleSet inizializza il set di campioni per l'algoritmo di condensazione. Quale regola viene utilizzata per inizializzare il set di campioni? Quale distribuzione viene utilizzata per inizializzare il set di campioni? Data la posizione iniziale e il riquadro di delimitazione dell'oggetto da tracciare, in che modo questa funzione inizializza il set di campioni?

Qual è la funzione che esegue una completa interazione (selezionare, prevedere e misura) dell'algoritmo? Come vengono aggiornati i campioni?

Esiste un tutorial che spiega in dettaglio come utilizzare le funzioni disponibili in OpenCV?

+1

http: // risposte .opencv.org/question/6985/syntax-per-particle-filter-in-opencv-243/potrebbe aiutare? – nkint

+0

Negli ultimi mesi sono riuscito a risolvere il problema implementando l'algoritmo senza utilizzare OpenCV, ma il tuo collegamento potrebbe essere utile ad altri utenti. – enzom83

+0

hai rilasciato il tuo codice? (Sto lavorando su multi target tracking con opencv e sto cercando metodi di implementazione riferimenti cartacei qualunque) – nkint

risposta

1

Here è un'altra implementazione di un filtro particelle e sono state utilizzate le librerie OpenCV e GSL. Il codice sorgente fornito dall'autore è facile da leggere. Forse puoi imparare qualcosa da esso.

+1

Benvenuti in SO. Sarebbe stato bello avere una risposta più specifica, in particolare includendo esempi di come vengono utilizzate esattamente le funzioni menzionate nella domanda. – jogojapan

+1

Sfortunatamente, il file contenente il codice sorgente non è più presente su quel sito. – enzom83