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.?
e che dire di tutti i parametri di messa a punto? – nkint
@nkint Vero, la precisione dipende dall'applicazione e dai parametri scelti per un determinato algoritmo. Non ho fatto una ricerca approfondita. – Alexey
e quale parametro hai usato? messa a punto manualmente? – nkint