2013-04-22 12 views
8

OpenCV versione 2.4.5 offre diverse implementazioni che possono essere utilizzate per il tracciamento di oggetti in movimento che utilizzano metodi statistici per stimare lo sfondo. OpenCV ha classi BackgroundSubtractorMOG, BackgroundSubtractorMOG2 implementate sulla CPU. Inoltre, ha implementazioni GPU di BackgroundSubtractorMOG e BackgroundSubtractorMOG2, ovvero gpu::MOG_GPU e gpu::MOG2_GPU rispettivamente. Ci sono anche altri due algoritmi gpu::GMG_GPU e gpu::FGDStatModel.Differenza tra i metodi di segmentazione in primo piano in OpenCV

Nella mia applicazione voglio segmentare gli oggetti in movimento non appena entrano nella scena. Mi piacerebbe evitare falsi positivi come le ombre. Questi 4 algoritmi sembrano concentrarsi sullo stesso obiettivo: separano lo sfondo dal primo piano creando un modello dello sfondo nel tempo. Stavo vagando se qualcuno che avesse esperienza con queste implementazioni può aiutarmi a decidere quale implementazione (GPU) usare. In che modo questi algoritmi - MOG, MOG2, GMG e FGDStatModel - differiscono tra loro? Quali sono i vantaggi dell'utilizzo di uno o dell'altro algoritmo? Come si confrontano queste implementazioni in termini di velocità, possibilità di configurare i loro parametri, accuratezza, rilevamento ombra (falso positivo), ecc.?

risposta

5

Mi sono imbattuto in un codice sorgente demo bgfg_segm.cpp situato in {opencv_folder}\samples\gpu. La demo mostra l'utilizzo e visualizza l'uscita per le seguenti fondo-in primo piano le classi di segmentazione

FGDStatModel 
MOG_GPU 
MOG2_GPU 
VIBE_GPU <- listed under `non-free functionality` in OpenCV documentation 
GMG_GPU 

Questo è esattamente quello che mi serviva per confrontare gli algoritmi. Ovviamente, è necessario sintonizzare i parametri per gli algoritmi per trovare l'algoritmo (insieme a un set di parametri) che si adatta a una determinata applicazione.

confronto Velocità:

FGDStatModel ~60 frames per second (fps) <-slowest 
MOG_GPU  ~650 fps 
MOG2_GPU  ~650 fps 
VIBE_GPU  ~1000 fps <- fastest 
GMG_GPU  ~190 fps 
+0

e che dire di tutti i parametri di messa a punto? – nkint

+0

@nkint Vero, la precisione dipende dall'applicazione e dai parametri scelti per un determinato algoritmo. Non ho fatto una ricerca approfondita. – Alexey

+0

e quale parametro hai usato? messa a punto manualmente? – nkint