Il motion detection è una funzionalità disponibile nativamente sulla stragrande maggioranza di telecamere, encoder, NVR, VMS attualmente in commercio e ha lo scopo di segnalare se è intervenuta una variazione significativa della scena presumibilmente dovuta ad un evento di interesse.
In questa pillola ci occuperemo della problematica relativa alla taratura degli algoritmi di motion detection. Per far questo sarà opportuno innanzitutto ricordarne il meccanismo di funzionamento, al fine di comprendere il significato dei parametri di base da configurare; quindi ci soffermeremo su alcuni semplici criteri per ottenere una taratura soddisfacente rispetto agli obiettivi che si intendono conseguire. Nel seguito faremo riferimento ad un insieme di parametri minimale utilizzato dalla maggior parte dei sistemi di motion detection. Tale insieme è costituito da sensibilità, dimensione degli oggetti e aree di rilevamento. E’ tuttavia opportuno evidenziare che in taluni casi i produttori di dispositivi di videosorveglianza corredano i loro prodotti della funzione di motion detection con un insieme di parametri personalizzati al fine di garantire una maggiore flessibilità di configurazione (a volte anche per motivare o “blindare” la fornitura dei propri prodotti). D’altro canto sono presenti sul mercato anche dispositivi, tipicamente di fascia bassa, che mettono a disposizione un motion detection semplificato, in cui è presente solo un sottoinsieme dei parametri precedentemente specificati.
Sensibilità: gli algoritmi di motion detection eseguono la differenza tra i pixel omologhi del fotogramma corrente e del fotogramma precedente; con riferimento ad un generico pixel dell’immagine, nel caso in cui tale differenza sia superiore ad un valore minimo di soglia, si segnala il pixel in questione come oggetto di una variazione significativa (motion -> SI), altrimenti si dice che il pixel non è variato (motion -> NO). La sensibilità dell’algoritmo di motion detection è determinata dalla scelta del valore della suddetta soglia: maggiore è la soglia, minore è la sensibilità. Da un punto di vista pratico, impostando un valore elevato della sensibilità l’algoritmo di motion detection tende a segnalare più frequentemente la presenza di variazioni sui singoli pixel aumentando la probabilità di avere delle segnalazioni di eventi che si traduce in un minore rischio di perdere qualche evento significativo, ma maggiore rischio di avere dei falsi allarmi (si dice che il tal caso il motion detection ha un comportamento più “spregiudicato”); viceversa con una valore più basso della sensibilità l’algoritmo di motion detection indica variazioni significative sui singoli pixel con minore frequenza di fatto riducendo la probabilità di avere delle segnalazioni di allarmi con conseguenti riduzione dei falsi allarmi e aumento delle mancate rilevazioni di eventi significativi (si dice che il tal caso il motion detection ha un comportamento più “cauto”).
Dimensione degli oggetti: questo parametro rappresenta il numero minimo di pixel che deve cambiare per poter dire che la variazione sia significativa. Spesso tale parametro è rappresentato come frazione (o percentuale) della dimensione dell’area di rilevamento. Il parametro di dimensione degli oggetti è solitamente usato per discriminare tra le variazioni dovute a piccoli oggetti in movimento (ad esempio un animale domestico che si muove nell’ambiente, un uccello in volo nell’area di vista della telecamera, …) a cui normalmente non siamo interessati e le variazioni nella scena introdotte invece da oggetti di dimensioni paragonabili a quelle di una persona, per le quali ovviamente ci si attende che il sistema generi una segnalazione di allarme. Anche in questo caso la scelta del valore della soglia sulla dimensione degli oggetti consente di impostare il comportamento del sistema verso uno più cauto, allorquando si selezioni una soglia più alta in quanto in tal caso solo oggetti molto grandi potranno causare la generazione di un allarme, ed uno più spregiudicato usando una soglia più bassa nel qual caso anche oggetti piccoli possono dar luogo alla generazione di un evento di motion detection.
Area di rilevamento: in genere i software per il motion detection disponibili sui sistemi di videosorveglianza consentono di impostare una o più aree in cui effettuare il rilevamento dei cambiamenti della scena. Questa funzionalità è molto importante in quanto consente di limitare l’analisi solo a delle aree con la possibilità di escluderne altre non rilevanti. Inoltre in genere è possibile effettuare una taratura del motion detection specifica per ogni area; questa caratteristica risulta molto importante in quanto consente di impostare differenti comportamenti del motion detection (più cauti o spregiudicati) per ogni singola area operando sul parametro della sensibilità e/o sul parametro relativo alla dimensione degli oggetti. Ad esempio, in un contesto di sorveglianza all’interno dell’abitazione, si immagini la sala, l’utente potrà impostare un’area di rilevazione sulla porta di ingresso impostando una alta sensibilità e bassa dimensione degli oggetti in modo da garantire un comportamento più spregiudicato in quanto la porta costituisce un’area molto critica essendo il punto d’accesso all’abitazione; inoltre nel caso si volesse impostare un’altra area che copra la parte restante della sala, si potranno utilizzare per essa parametri che garantiscano un comportamento più cauto onde evitare che ad esempio ogni movimento del gatto possa essere registrato come un allarme.
Errori di rilevazione: dopo questa breve introduzione al principio di funzionamento ed ai parametri principali dell’algoritmo di motion detection, individuiamo alcune linee guida per la sua configurazione sul campo. Idealmente ci si aspetta che il motion si attivi esclusivamente in quei casi in cui accade un evento di interesse senza quindi generare falsi allarmi, anche detti falsi positivi, (generazione di un allarme senza che sia accaduto nulla di rilevante) o falsi negativi (sta accadendo qualcosa ed il sistema non segnala alcun allarme). Purtroppo nei casi reali questi due requisiti sono difficilmente conciliabili; di fatto qualsiasi sforzo di configurazione teso a ridurre i falsi allarmi comporta intrinsecamente e quindi inesorabilmente un aumento dei falsi negativi, e viceversa.
La attività di configurazione del motion detection è tesa ad individuare il giusto compromesso tra le due opposte esigenze tenendo conto dell’impatto pratico delle due tipologie di errori. E’ evidente che il secondo tipo di errore (falso negativo) è molto più grave del primo. Il falso negativo determina la mancata segnalazione e registrazione dell’evento, quindi la impossibilità di verificare ex-post quanto sia realmente successo. I falsi allarmi sono molto meno gravi in quanto essi determinano la registrazione di un evento irrilevante comportando uno spreco di spazio per la memorizzazione e di tempo per l’operatore che effettua la verifica visuale. D’altro canto i falsi allarmi sebbene meno gravi delle mancate rilevazioni, nascondono una pericolosa insidia che è ben sintetizzata nella morale della favola attribuita ad Esopo “Al lupo! Al lupo!”, per cui “chi dà sempre falsi allarmi, non è più creduto neanche quando dice la verità” (da http://it.wikipedia.org/wiki/Al_lupo!_Al_lupo!): è confermato dai fatti che l’operatore di sorveglianza sommerso di falsi allarmi tende a non verificare più le segnalazioni fornite dal sistema riducendo sensibilmente l’utilità del sistema.
Configurazione del motion detection: veniamo a questo punto alla fase in cui dobbiamo impostare il motion detection. La taratura dovrà consentire di trovare la migliore configurazione dei parametri in grado di azzerare i falsi negativi e minimizzare quanto più possibile i falsi positivi.
La prima operazione consiste nella definizione delle aree di rilevazione. Il primo suggerimento è di impostare le aree sulle sole zone in cui interessa rilevare un evento cercando di evitare regioni in cui vi possano essere variazioni frequenti ma non interessanti. Ad esempio se si intende ricevere una segnalazione di allarme quando qualcuno sosta di fronte alla porta di casa, sarà meglio evitare di estendere la regione di interesse anche alla porta del vicino o dell’ascensore. Un esempio è mostrato in figura 1. Tale considerazione, sebbene possa apparire scontata, è spesso trascurata con la conseguente generazione di numerosi ed falsi allarmi.
A questo punto per ogni area d’interesse è necessario impostare i parametri che si riferiscono alla sensibilità e alla dimensione degli oggetti. Il suggerimento è di configurare separatamente i due parametri provvedendo prima a impostare il valore della sensibilità. Ricordiamo che una bassa sensibilità può essere motivo di mancate rilevazioni, viceversa un’elevata sensibilità può causare falsi allarmi. In genere i valori di default forniti dai vari software risultano validi nella maggior parte dei casi, tuttavia se ciò non dovesse essere vero si può procedere come segue: si imposta inizialmente al minimo la sensibilità per poi innalzarla progressivamente fin quando, in assenza di variazioni nella scena, il sistema non segnali variazioni sui pixel. Ovviamente è necessario verificare anche che al passaggio di una persona il sistema rilevi una significativa variazione sui pixel.
Infine, come ultimo passo, si procede a impostare il parametro relativo alla dimensione dell’oggetto. Normalmente un buon valore si assesta intorno al 50% della dimensione minima dell’oggetto più piccolo per il quale si vuole generare l’allarme. Ad esempio se si vuole monitorare un ambiente per segnalare la presenza di una persona sarà sufficiente impostare la soglia sulla dimensione dell’oggetto intorno alla metà del massimo valore registrato al passaggio di una persona di corporatura medio-piccola. Una tale scelta consentirà di evitare falsi negativi, ma allo stesso tempo di limitare i falsi positivi dovuti al movimento di oggetti piccoli (quali animali domestici). Durante tale fase bisogna porre attenzione al fatto che, a causa della prospettiva, lo stesso oggetto apparire tanto più piccolo quanto più è distante dalla telecamera. Per questa ragione è opportuno tarare la soglia sulla dimensione considerando l’oggetto alla massima distanza dalla telecamera (sempre restando all’interno dell’area) e se necessario suddividendo l’area di rilevazione in più aree riferite a distanze differenti per ognuna delle quali sarà necessario fare la taratura completa descritta nei passi precedenti.
Conclusioni: è opportuno evidenziare che fare una buona taratura dell’algoritmo di motion detection è un passaggio cruciale per poter ottimizzare l’impiego delle risorse di storage consentendo la registrazione solo al verificarsi di cambiamenti nella scena inquadrata potenzialmente significativi. E’ altresì da ribadire che il motion detection per l’elevato numero di falsi allarmi generati il più delle volte nonostante sia stata fatta una buona taratura non consente di utilizzare la telecamera come un reale sensore anti-intrusione. Per tale scopo sono necessari dei veri algoritmi di analisi video intelligente, come AI-Intrusion, in grado di operare non sulle variazioni del singolo pixel, ma interpretando aggregati di pixel come oggetti che intervengono nella scena inquadrata e, quindi, riconoscendo quando effettivamente la variazione è associata alla presenza di un intruso distinguendolo dal banale movimento di un cespuglio o di una tenda, dal passaggio di un animale domestico, ecc.
Figura 1: La telecamera inquadra la porta su un pianerottolo. In questo scenario si è interessati al rilevamento di persone che sostino dinanzi alla porta, mentre non si vuole ricevere un allarme nel caso in cui le persone escono dall’ascensore per accedere alle altre abitazioni sul piano. Nell’immagine a sinistra si vede un’area di rilevamento impostata in maniera errata in quanto genererà un allarme ogni qualvolta una persona aprirà la porta dell’ascensore; nella immagine a destra invece la regione è specificata correttamente.