Esaurita tutta la casistica delle problematiche hardware, a questo punto occorre iniziare a lavorare sul software, occorre cioè qualche programma in grado di catturare opportunamente le immagini di eventuali intrusi, che attraversino il campo di ripresa della webcam.
Anche se una soluzione ovvia può essere quella di attivare il classico programma di video capture fornito normalmente con le webcam, è altrettanto ovvio che una simile soluzione è assolutamente inefficiente e dispersiva, principalmente a causa della grande quantità di dati inutili che verrebbero memorizzati.
A noi interessa infatti catturare gli istanti in cui un eventuale malintenzionato cerca di introdursi nel campo visivo sorvegliato dalla nostra webcam; ciò può capitare molto sporadicamente con il risultato che si riprenderebbero muri o edifici, insomma immagini uguali ora dopo ora, giorno dopo giorno.
E' ovvio che un simile spreco di memoria per immagazzinare dati praticamente inutili rischia di essere antieconomico. Una soluzione però esiste e si chiama Motion Detection: detto in parole povere, è una tecnica che permette, basandosi su un'immagine ripresa da una videocamera o webcam - come ad esempio una porta, un cancello o una stanza senza alcuna presenza umana - di rilevare i cambiamenti nei pixel costituenti l'immagine e quindi di rilevare i cambiamenti dovuti all'attraversamento nel campo visivo di entità estranee. Ho semplificato molto il discorso, ma è possibile rintracciare innumerevoli fonti su tale argomento in Rete.
Tornando alla nostra applicazione, si può decidere di realizzare da sé un programma ad hoc con una funzione di motion capture, nel qual caso posso suggerire come punto di partenza un interessante articolo di Andrew Kirillow, Motion Detection Algorithms, che spiega come implementare il motion detection in uno stream video.
L'autore utilizza AForge.NET, un framework in C# appositamente implementato allo scopo di aiutare programmatori e ricercatori, che lavorino nel campo dell'image processing, computer vision, sistemi esperti di ricognizione, robotica, ecc. Il codice presentato è interessante dal punto di vista della resa finale e inoltre offre materia di riflessione ed approfondimento su argomenti assolutamente non banali.
Per i più pigri, invece, esistono pacchetti software già pronti, anche freeware e open source. Ma di questo ne riparleremo nelle prossime puntate.
Fonte Programmazione.it
venerdì 15 maggio 2009
Iscriviti a:
Commenti sul post (Atom)

Nessun commento:
Posta un commento