Configurazione: Rilevamento del movimento

Informazioni

Il rilevamento del movimento in Agent svolge un ruolo cruciale nell'avviare Avvisi e facilitare l'elaborazione AI. È possibile configurare Agent per registrare al rilevamento del movimento o quando viene attivato un avviso. Per impostare queste opzioni, passare al menu Registrazione e fare riferimento all'impostazione Modalità. Inoltre, il rilevamento del movimento può essere utilizzato per attivare varie Azioni.

È importante notare che il rilevamento del movimento può talvolta portare a falsi allarmi a causa della sua incapacità di distinguere tra movimenti effettivi degli oggetti e fattori ambientali come vento, pioggia o variazioni di luminosità. Per ridurre tali falsi allarmi, è possibile migliorare l'accuratezza del rilevamento del movimento integrando Agent con CodeProject.AI per un filtraggio degli allarmi più sofisticato.

Configurazione del rilevamento del movimento

Il controllo dell'area del rilevatore di movimento in Agent è accessibile modificando una telecamera e selezionando Detector dal menu in alto a destra. Per impostare un rilevatore, inizi definendo le zone da monitorare. Agent supporta fino a 9 zone, ognuna rappresentata da un colore diverso, selezionabile tramite il menu a discesa Zone. Per creare una zona, fai clic sullo strumento penna e disegna sulla anteprima del video. Usa il pulsante sinistro del mouse o il tocco per disegnare, e sul desktop, il pulsante destro del mouse per cancellare. Lo strumento nib regola la dimensione del nib di disegno, mentre lo strumento gomma rimuove le aree disegnate. Lo strumento reset può essere utilizzato per riempire l'intera area con la zona selezionata. Agent quindi monitora queste aree colorate per il movimento.

  • Abilitato: Attiva l'uso del rilevatore.
  • Detector: Scegli un tipo di rilevatore di movimento e configuralo utilizzando il pulsante . I vari rilevatori di movimento sono spiegati nelle rispettive sezioni.
  • Colore: Regola il colore della sovrapposizione del rilevamento del movimento (non applicabile per tutti i rilevatori).
  • Timeout: Imposta la durata (in secondi, tra 1 e 60, il predefinito è 3) per la quale la telecamera rimane in uno stato di movimento dopo che il rilevamento del movimento si ferma. Questo aiuta a ridurre gli eventi ripetuti rapidamente.
Utilizzo delle Zone

Le zone sono fondamentali per i rilevatori AI (Riconoscimento di volti/ LPR/ Oggetti) e i rilevatori di tracciamento degli oggetti (come filo triplo, velocità, tracciamento degli oggetti). Puoi selezionare quali zone attiveranno un allarme nella configurazione del rilevatore, o specificare Azioni per gli allarmi in zone specifiche.

Il rilevatore semplice attiva un allarme se viene rilevato un movimento sufficiente in tutte le zone.

Alcuni tipi di rilevatori non utilizzano le impostazioni della zona, come MQTT, ONVIF o il movimento attivato tramite chiamate API.

Utilizzando Aree di Movimento

Le aree di movimento sono gruppi configurabili di zone che puoi nominare e salvare per un uso futuro. Per salvare la tua configurazione corrente delle zone di movimento come una nuova area, fai clic sull'icona di modifica accanto a Area. Questi strumenti ti consentono di aggiungere, modificare ed eliminare aree.

Per applicare un'area di movimento quando sposti la tua telecamera PTZ in una posizione preimpostata PTZ (usando l'interfaccia utente di Agent):

  • Crea e salva una nuova configurazione della zona di movimento con un nome specifico, come "parcheggio".
  • Aggiungi una nuova Azione:

    Se: "Applicata preimpostazione PTZ"
    Seleziona il Comando di Preimpostazione PTZ (ad es., "Vai a Preimpostazione 1"). Nota: La tua telecamera deve supportare le preimpostazioni PTZ affinché ciò funzioni.
    Fai clic per Aggiungere un Compito:
    Compito: "Imposta Area Rilevamento Movimento"
    Seleziona la tua nuova area ("parcheggio").
    Fai clic su OK due volte. Ora, ogni volta che selezioni la preimpostazione, o se Agent imposta la preimpostazione tramite la pianificazione o un altro evento, questa area di movimento verrà applicata automaticamente.

Puoi anche modificare l'area del rilevatore di movimento utilizzando il Programmatore. Questa funzione consente diverse configurazioni delle zone di movimento a seconda dell'ora del giorno, della settimana o di date specifiche.

Semplice Rilevatore

Semplice

Il rilevatore semplice si concentra sull'identificazione di qualsiasi tipo di movimento all'interno del campo visivo della telecamera. È l'opzione più efficiente in termini di CPU tra i rilevatori, seconda solo al rilevatore ONVIF. I movimenti rilevati sono evidenziati in rosso, consentendoti di distinguere facilmente la fonte del movimento nella scena.

  • Avanzato: Per impostazioni e opzioni aggiuntive, fare riferimento alla sezione avanzata qui sotto.
  • Sensibilità: Regola il livello di movimento necessario per attivare il rilevamento. Impostando valori minimi e massimi è possibile perfezionare il rilevamento — ad esempio, un valore massimo di 80 potrebbe aiutare a ignorare cambiamenti di luminosità su larga scala. I numeri sotto lo slider rappresentano la percentuale di pixel modificati.
  • Guadagno: Applica un moltiplicatore ai pixel modificati per aumentare o diminuire la sensibilità del rilevamento del movimento.

Rilevatore di Oggetti HAAR

Questo metodo utilizza file noti come cascate HAAR per riconoscere oggetti nel feed video. Tuttavia, potresti ottenere risultati migliori utilizzando il semplice rilevatore di oggetti insieme alla configurazione di un Server AI.

  • Dimensione Frame: Seleziona la dimensione del frame da elaborare. Frame più piccoli riducono l'utilizzo della CPU ma potrebbero essere meno precisi.
  • Intervallo di Rilevamento: Imposta la frequenza di elaborazione dei frame, in millisecondi. Ad esempio, 200 equivale a 5 volte al secondo, e 1000 equivale a una volta al secondo.
  • Limiti di Larghezza e Altezza: Definisci l'intervallo di dimensioni degli oggetti da rilevare per Agent, espresso come percentuale della larghezza o altezza del frame. Regolando queste barre scorrevoli verrà visualizzata una sovrapposizione sul video, indicando l'intervallo di dimensioni degli oggetti presi di mira.
  • Usa GPU: Opzione per utilizzare la GPU per l'elaborazione, disponibile solo se la tua GPU supporta Cuda e i driver necessari sono installati.
  • File: Scegli il file della cascata HAAR per configurare il rilevatore di oggetti. Sono forniti file predefiniti per rilevare volti e volti di gatti.
  • Condizione di Allarme e Numero di Allarmi: Configura Agent per generare allarmi basati sul rilevamento degli oggetti a seconda del numero di oggetti rilevati. Ad esempio, per attivare un allarme al riconoscimento di un volto, imposta la condizione su "Più Di" e il Numero di Allarmi su 0.
  • Zone di Allarme (v4.4.8.0+): Specifica le zone di movimento da includere nell'area di monitoraggio.
  • Controlla Angoli: Per ulteriori dettagli, consulta Controllo degli Angoli.

Verifica degli angoli

Agent utilizza un metodo sofisticato per determinare se gli oggetti rilevati dovrebbero attivare avvisi o azioni in base alla configurazione della zona. Fa ciò controllando il punto centrale dell'oggetto rilevato e, facoltativamente, una griglia che si espande fino agli angoli del rettangolo delimitatore dell'oggetto. È possibile regolare questa funzione impostando una percentuale che rappresenta la distanza dal punto centrale all'angolo del rettangolo delimitatore per i controlli di zona. Fondamentalmente, un'impostazione di 0 significa che viene controllato solo il punto centrale, 100 controlla fino a tutti gli angoli e 50 controlla fino ai punti medi tra il centro e ciascun angolo del rettangolo delimitatore. Se ricevi numerose notifiche di eventi in cui l'oggetto non sembra trovarsi all'interno della zona designata, impostare il Controllo degli angoli su 0 potrebbe essere vantaggioso.

MQTT

Possiedi la capacità di avviare il rilevamento del movimento dal tuo server MQTT. Per prima cosa, assicurati di aver configurato MQTT correttamente. Successivamente, per attivare il rilevamento degli oggetti, passa semplicemente il comando indicato nella schermata di configurazione del rilevatore al canale SERVER/comandi dove SERVER è il nome del tuo server (visualizzato nel menu del server che puoi modificare nelle Impostazioni). Questa integrazione consente un sistema di rilevamento del movimento più versatile e reattivo, sfruttando le capacità del tuo server MQTT.

ONVIF

Molti dispositivi compatibili con ONVIF sono dotati delle proprie capacità di rilevamento del movimento. Quando si seleziona questa modalità e si abbina a una telecamera compatibile con ONVIF (utilizzando il tipo di connessione ONVIF in Agent), Agent si affiderà al dispositivo stesso per fornire eventi di rilevamento del movimento e attivare azioni basate su di essi. Se riscontri problemi con questa funzionalità, è consigliabile controllare i log (accessibili su /logs.html sul server locale) poiché è possibile che la tua telecamera non supporti il rilevamento ONVIF. Per ulteriori informazioni sulla configurazione di queste impostazioni, consulta Impostazioni server ONVIF.

Rilevatore di persone

Questo metodo utilizza un algoritmo specializzato progettato specificamente per rilevare i pedoni. Tuttavia, potresti scoprire che utilizzare il semplice rilevatore di oggetti e integrare IA per il filtraggio degli allarmi fornisce risultati migliori.

  • Utilizza GPU: Decidi se utilizzare la GPU per l'elaborazione, disponibile solo se la tua GPU supporta Cuda e sono installati i driver necessari.
  • Dimensione Frame: Seleziona la dimensione del frame per l'elaborazione. Nota che i frame più piccoli richiedono meno CPU ma potrebbero produrre risultati meno accurati.
  • Intervallo Rilevamento: Imposta la frequenza per l'elaborazione del frame, in millisecondi. Ad esempio, 200 corrisponde a 5 volte al secondo, mentre 1000 corrisponde a una volta al secondo.
  • Condizione Allarme e Numero Allarmi: Configura i criteri per generare allarmi in base al numero di oggetti rilevati. Ad esempio, per attivare un allarme al riconoscimento di un volto, imposta la condizione su "Più di" e inserisci 0 nel campo Numero Allarmi.
  • Zone Allarme (v4.4.8.0+): Scegli le specifiche zone di movimento che dovrebbero essere monitorate all'interno dell'area di rilevamento.
  • Controlla Angoli: Per impostazioni più dettagliate, consulta Controllo degli Angoli.

Reolink

Alcune telecamere Reolink offrono un endpoint API che Agent può interrogare per ricevere stati di allerta per movimento o intelligenza artificiale. Se la tua telecamera supporta questa funzionalità, puoi utilizzare questo rilevatore. Per verificare se la tua telecamera ha questa capacità, prova ad accedere all'URL: `http://[IP ADDRESS]/api.cgi?cmd=GetMdState&channel=0&rs=Get&user=[USERNAME]&password=[PASSWORD]` (sostituisci `[IP ADDRESS]`, `[USERNAME]` e `[PASSWORD]` con l'indirizzo IP della tua telecamera e le credenziali di accesso, rispettivamente). Una connessione riuscita restituirà un testo formattato JSON anziché una pagina di errore.

  • Intervallo: Determina la frequenza con cui Agent interroga la tua telecamera per gli avvisi o i dati di movimento.
  • Modalità: Seleziona tra 'Movimento' e 'IA'. Entrambe le modalità attivano eventi del rilevatore di movimento in Agent, che possono essere utilizzati per la registrazione (imposta la modalità di registrazione su Rilevamento). L'opzione 'IA' attiva il rilevamento del movimento se la telecamera identifica specifiche classi di oggetti (come cane_gatto, volto, persone, veicolo).

Puoi configurare azioni per eseguire compiti quando vengono rilevati oggetti contrassegnati come cane_gatto, volto, persone o veicolo, a partire dalla versione 4.6.6.0.

Nota: Per abilitare la funzione IA, potresti dover attivare il tracciamento nell'interfaccia web della telecamera e impostare i parametri di dimensione minima e massima degli oggetti. Agent contrassegnerà quindi le tue registrazioni con gli oggetti identificati da Reolink.

rilevamento della velocità

Questo metodo utilizza le informazioni sulla scena fornite da te per tracciare gli oggetti in movimento, stimarne la velocità e generare avvisi se gli oggetti si stanno muovendo troppo velocemente o troppo lentamente.

  • Avanzate: Per impostazioni più dettagliate, consulta la sezione avanzata qui sotto.
  • Limiti di larghezza e limiti di altezza: Definisci l'intervallo di dimensioni per la rilevazione degli oggetti nella scena, con valori espressi come percentuale della larghezza o altezza della scena. Regolando questi cursori verrà visualizzato un sovrapposizione sul video, indicando l'intervallo di dimensioni degli oggetti target.
  • Spostamento minimo: Imposta la distanza minima che un oggetto deve percorrere per essere considerato in movimento, basata su una percentuale della larghezza della scena.
  • Tempo minimo: Specifica la durata temporale per cui un oggetto deve essere in movimento per essere tracciato, in decimi di secondo (es. 1 = 0,1 secondi, 10 = 1 secondo).
  • Misurazione della velocità: Seleziona l'unità di misura preferita per la velocità nella sovrapposizione.
  • Limiti di velocità: Determina i limiti inferiore e superiore della rilevazione della velocità. I movimenti al di fuori di questo intervallo attiveranno eventi di rilevamento del movimento.
  • Distanza orizzontale e verticale: Inserisci la distanza totale attraverso la scena in metri. Agent utilizza questa misurazione per calcolare la velocità degli oggetti in movimento.
  • Zone di avviso (v4.4.8.0+): Scegli quali zone di movimento sono incluse nell'area di monitoraggio.
  • Controlla gli angoli: Per impostazioni aggiuntive, consulta Controllo degli angoli.

Tracciamento oggetti

Questo rilevatore identifica e traccia oggetti in movimento, attivando eventi di rilevamento del movimento in base alla durata della loro presenza nella scena e alla distanza percorsa.

  • Avanzate: Per impostazioni e opzioni più dettagliate, fare riferimento alla sezione avanzata qui sotto.
  • Limiti di larghezza e limiti di altezza: Specificare l'intervallo di dimensioni per il rilevamento degli oggetti, con valori espressi come percentuale della larghezza o altezza della scena. Regolando queste barre scorrevoli, verrà sovrapposta una rappresentazione visiva dell'intervallo di dimensioni dell'oggetto mirato sul video.
  • Spostamento minimo: Definire la distanza minima che un oggetto deve percorrere per essere riconosciuto come oggetto in movimento, in relazione alla larghezza della scena.
  • Tempo minimo: Impostare la durata minima in cui un oggetto deve essere in movimento per essere considerato per il tracciamento, in decimi di secondo (es. 1 = 0,1 secondi, 10 = 1 secondo).
  • Visualizza totale: Aggiungere un contatore al feed video in diretta per tenere traccia degli oggetti in movimento.
  • Mappa di calore: Visualizzare i modelli di movimento nel tempo aggiungendo linee agli oggetti tracciati.
  • Zone di allerta (v4.4.8.0+): Scegliere quali zone di movimento includere nell'area di monitoraggio.
  • Controlla angoli: Per ulteriori informazioni, vedere Controllo angoli.

Mentre Agent monitora e traccia il movimento nella scena, visualizza rettangoli colorati intorno agli oggetti rilevati. I colori hanno i seguenti significati:

  • Bianco: Oggetto appena rilevato ed è in fase di considerazione.
  • Giallo: Oggetto rilevato per più fotogrammi.
  • Arancione: Oggetto si è mosso per almeno il tempo minimo specificato nelle impostazioni di tracciamento.
  • Rosso: Oggetto ha soddisfatto tutti i requisiti di tracciamento per attivare un evento di rilevamento del movimento.

Cavi di viaggio

Questo rilevatore riconosce e traccia oggetti in movimento, attivando eventi di rilevamento del movimento quando attraversano le linee di attraversamento predefinite nella scena. Per aggiungere linee di attraversamento, basta fare clic e trascinare sul video in diretta. È possibile creare più linee di attraversamento secondo necessità. Per rimuovere una linea di attraversamento, fare clic e trascinare uno dei suoi punti fuori dalla scena.

  • Avanzate: Per impostazioni e opzioni più dettagliate, fare riferimento alla sezione avanzata qui sotto.
  • Limiti di larghezza e limiti di altezza: Imposta l'intervallo di dimensioni degli oggetti da rilevare, con valori espressi come percentuale della larghezza o altezza della scena. Regolando questi cursori sovrapporrà una rappresentazione visiva dell'intervallo di dimensioni desiderato sul video.
  • Spostamento minimo: Specifica la distanza minima che un oggetto deve percorrere per essere riconosciuto come oggetto in movimento, in relazione alla larghezza della scena.
  • Tempo minimo: Definisci la durata minima in cui un oggetto deve essere in movimento per essere tracciato, in decimi di secondo (es. 1 = 0,1 secondi, 10 = 1 secondo).
  • Ripeti attivazione: Abilita questa opzione per consentire a un oggetto di attivare più volte la stessa linea di attraversamento. Per impostazione predefinita, un oggetto può attivare una linea di attraversamento una sola volta.
  • Conteggio: Mostra un conteggio del numero di volte in cui gli oggetti hanno attraversato la linea di attraversamento, insieme alla direzione di attraversamento. Le opzioni includono conteggio a sinistra, a destra, entrambi o attraversamenti totali.
  • Allarme: Configura il sistema per generare un allarme se la linea di attraversamento viene attraversata in una direzione specificata o in qualsiasi direzione.
  • Zone di allarme (v4.4.8.0+): Scegli quali zone di movimento sono incluse nell'area di monitoraggio.
  • Controlla angoli: Per ulteriori informazioni, consultare Controllo degli angoli.

Via API

Per avviare il rilevamento di movimento per una telecamera utilizzando una chiamata API, è necessario specificare il tipo di oggetto (ot) e l'ID dell'oggetto (oid). Ad esempio, per una telecamera (ot=2) con un ID di 1 (oid=1 - questo ID è mostrato nella parte superiore del controllo di modifica durante la modifica di un dispositivo), la chiamata API sarebbe formattata come segue:
http://localhost:8090/command/detect?ot=2&oid=1

Impostazioni Avanzate

Le impostazioni predefinite per i rilevatori sono generalmente adatte per la maggior parte delle scene, ma è possibile ottimizzarle per prestazioni migliorate se necessario.

  • Analizzatore: L'analizzatore attualmente disponibile è il sottrattore di sfondo CNT, noto per la sua elevata precisione e basso utilizzo della CPU.
  • Dimensione Frame: Seleziona la dimensione del frame per l'elaborazione. Frame più piccoli riducono l'utilizzo della CPU ma potrebbero diminuire la precisione.
  • Tracker: Scegli il tracker OpenCV per il tracciamento degli oggetti. Le opzioni includono:
    • Mosse: Questo tracker offre il minor utilizzo della CPU ma è il meno preciso (predefinito).
    • KCF: Più preciso di Mosse, ma leggermente più intensivo per la CPU.
    • CSRT: L'opzione più precisa, ma utilizza anche di più la CPU. Ideale per situazioni di tracciamento complesse.
  • Oggetti Massimi: Imposta un limite sul numero di oggetti da tracciare contemporaneamente. Più oggetti significano un maggiore utilizzo della CPU.
  • Intervallo Rilevamento: Definisci la frequenza di elaborazione del frame per il rilevamento del movimento, in millisecondi (ad esempio, 200 per 5 volte al secondo, 1000 per una volta al secondo).
  • Intervallo Tracciamento: Imposta la frequenza di elaborazione del tracker. Un intervallo più alto potrebbe perdere oggetti in movimento veloce (ad esempio, 200 per 5 volte al secondo, 1000 per una volta al secondo).
  • Stabilità Pixel: Determina il numero di campioni affinché un pixel sia considerato stabile e il massimo 'credito' che un pixel può guadagnare per rimanere dello stesso colore. Queste impostazioni sono cruciali per una sottrazione efficace dello sfondo e il rilevamento del movimento. Maggiori informazioni
  • Utilizza Cronologia: Abilita questa opzione per apprendere sugli oggetti in movimento costante nella scena. Di solito è consigliabile mantenere questa opzione disabilitata a meno che non sia necessario.
  • Processo Parallelo: Attiva l'elaborazione parallela nell'algoritmo di rilevamento del movimento. È consigliabile mantenere questa opzione abilitata.
  • Timeout Tracciamento: Specifica il tempo di attesa (in secondi) affinché un oggetto riappaia prima di smettere di tracciarlo.
  • Timeout Movimento: Imposta la durata (in secondi) per attendere che un oggetto stazionario si muova di nuovo prima di interrompere il suo tracciamento.