2012-09-20 15 views
7

Come posso dire a BackgroundSubtractorMOG2 quali pixel aggiornare al modello di sfondo e quali pixel non dovrebbero.Maschera per BackgroundSubtractorMOG2

Sono di fronte a un problema quando un oggetto entra nella scena e si ferma per alcuni dieci secondi, l'oggetto sarà assorbito nel modello di sfondo.

Volevo ridurre il tasso di apprendimento o interrompere l'apprendimento intorno al particolare oggetto fermato, ma come posso farlo? BackgroundSubtractorMOG2 supporta l'uso della maschera nella sua funzione di aggiornamento?

Sto usando OpenCV 2.4.1.

Grazie, Alvin.

+0

Buona domanda ... sto affrontando lo stesso identico problema. –

+0

Non esiste alcun meccanismo per il feedback di alto livello agli algoritmi di sottrazione dello sfondo di OpenCV. Il mio suggerimento per una funzione di aggiornamento un po 'generica includerebbe una maschera di aggiornamento. – killogre

risposta

3

BackgroundSubtractorMOG2 non supporta il mascheramento dell'input. Ma, se conosci i pixel che desideri mascherare, puoi mascherare l'output: ad esempio hai chiamato subtractor(input, fg, learningRate); e in qualche modo sai dove si trova ora l'oggetto (potresti averlo rintracciato utilizzando lo spostamento medio o il riconoscimento di pattern) fg |= mask; dove mask è dove, come sapete da una fonte diversa, l'oggetto è.

+0

che aiuta nel tracciamento in primo piano che viene assorbito in background. ma questa non è la risposta che sto cercando, vorrei mantenere il mio modello di base pulito, se possibile. –

+1

Anche la mia prima frase non è la risposta che cerchi? Se i tuoi oggetti sono tali da entrare e rimanere immobili, il modello MOG2 non è sufficiente per rintracciarli. farebbe meglio a combinare MOG2 per il rilevamento degli oggetti iniziali e qualche algoritmo di tracciamento degli oggetti per rintracciarlo successivamente. O frainteso il tuo problema? – artm

2

È possibile ottenere questo risultato impostando il tasso di apprendimento verso il basso molto basso

cioè:

mog(input, output, 0.00000001);