Guida al filtro del movimento

Il modello Filtro movimento ti consente di ridurre il tempo di calcolo riducendo le sezioni video lunghe in segmenti più piccoli che contengono un evento di movimento. Questo modello ti consente di impostare la sensibilità di rilevamento del movimento, la durata minima dell'evento, la finestra temporale, e il periodo di attesa per regolare gli output degli eventi di movimento in base al tuo caso d'uso.

Parametri del modello

Il modello di filtro movimento ha quattro parametri di controllo per regolare i segmenti di eventi e la modalità di restituzione del modello.

Parametro Descrizione Flag Valore predefinito Valori disponibili
Durata minima evento La durata minima in secondi di un evento di movimento dopo la fine di un evento di movimento ha avuto fine. --min-event-length INT 10 (secondi) 1 - 3600
Sensibilità di rilevamento del movimento La sensibilità del filtro degli eventi di movimento del modello. La sensibilità elevata è più reattiva al movimento e fornisce un filtro di movimento più aggressivo, con conseguente rilevamento di più movimenti. --motion-sensitivity STRING "medium" "high", "medium" o "low"
Finestra temporale La quantità di contenuti video (in secondi) acquisita dal servizio prima di un evento di movimento rilevato. --lookback-length INT 3 (secondi) 0 - 300
Periodo di attesa Al termine di un evento di movimento, si verifica un periodo di attesa con la durata specificata Durante il periodo di attesa, il modello non registra gli eventi di movimento. --cooldown-length INT 300 (secondi) 0 - 3600

Sensibilità di rilevamento del movimento

Quando esegui il filtro movimento, la sensibilità di rilevamento del movimento svolge il ruolo più importante nel determinare il numero di video di segmenti creati dal modello da uno stream video.

Maggiore è la sensibilità di rilevamento del movimento, maggiore è la sensibilità del rilevamento del modello al rumore e ai movimenti più piccoli. Questa impostazione di sensibilità più elevata è consigliata per le impostazioni che contengono un'illuminazione stabile e mostrano oggetti in movimento più piccoli (ad esempio, visualizzazioni di persone viste da lontano).

Al contrario, la sensibilità bassa è meno sensibile alle interferenze luminose e ai piccoli movimenti. Questa impostazione è adatta per le situazioni con maggiori interferenze luminose, ad esempio un ambiente esterno. Poiché questa impostazione è l'opzione di filtro più aggressiva, ignora i movimenti di piccoli oggetti.

Durata minima evento

La durata minima dell'evento è la durata del video acquisito dal modello dopo che ha smesso di rilevare un evento di movimento nel frame. Il valore predefinito è 10 secondi, ma puoi specificare un tempo compreso tra 1 secondo e 3600 secondi. Se viene rilevato un nuovo movimento durante la durata minima dell'evento, il nuovo movimento viene aggiunto al segmento video corrente per la durata dell'evento di movimento appena rilevato più un nuovo conto alla rovescia della durata minima dell'evento.

diagramma della durata minima dell'evento

Ad esempio, considera un video di un incrocio con due auto che si muovono nel frame. La prima auto passa nei primi tre secondi e la seconda auto arriva due secondi dopo. Se imposti la durata minima dell'evento su un secondo, ci sono due segmenti video con movimento. Un segmento video contiene la prima auto, mentre l'altro segmento contiene la seconda auto. Tuttavia, se imposti l'evento di movimento su tre secondi, il risultato è un solo segmento video con movimento. La seconda auto appare nel frame solo due secondi dopo la prima auto.

Quando imposti la durata minima dell'evento, pensa alla frequenza con cui gli eventi di movimento si verificano di solito nel video e al numero di segmenti video che vuoi salvare. Se gli eventi di movimento si verificano di frequente, ma vuoi che la maggior parte degli eventi di movimento venga salvata in segmenti video separati, imposta la durata minima dell'evento su un periodo più breve. Se gli eventi di movimento si verificano di rado, ma vuoi raggrupparli, imposta la durata minima dell'evento su un periodo più lungo per acquisire più eventi nello stesso segmento video.

Finestra temporale

La finestra temporale è il periodo di tempo immediatamente precedente al momento in cui viene rilevato un evento di movimento. Questa finestra è utile quando vuoi vedere cosa succede nel frame secondi prima che il modello rilevi un evento di movimento. Il valore predefinito per la finestra temporale è di tre secondi, ma puoi specificare un valore compreso tra zero e 300 secondi.

Puoi utilizzare una finestra temporale per vedere da dove provengono gli oggetti in movimento. Puoi anche utilizzare una finestra temporale per vedere cosa c'era nel frame secondi prima che si verificasse l'evento di movimento. Una finestra temporale è utile nelle situazioni in cui nel frame sono presenti piccoli oggetti in movimento che non vengono rilevati come evento di movimento. Tuttavia, i piccoli oggetti in movimento nel frame potrebbero aver causato gli eventi di movimento più grandi rilevati.

Periodo di attesa

Un periodo di attesa è una durata che si verifica dopo l'acquisizione di un evento di movimento e di una durata minima dell'evento. Durante il periodo di attesa, il movimento rilevato non attiva il filtro movimento. L'intervallo di questo periodo è compreso tra zero secondi e 3600 secondi. Il valore predefinito è 300 secondi.

Il periodo di attesa è progettato per consentire agli utenti di risparmiare sui costi di calcolo. Se i movimenti in un frame sono previsti e ti interessa solo sapere quando si verifica il movimento, ma non ti interessa cosa succede dopo, un periodo di attesa è un'impostazione utile.

Usa il modello

Puoi utilizzare il modello di filtro movimento utilizzando l'SDK Vision di Gemini Enterprise Agent Platform.

Utilizza lo strumento a riga di comando vaictl per attivare il modello specificando applying encoded-motion-filter e passando i valori per impostare i parametri di controllo.

SDK Vision di Gemini Enterprise Agent Platform

Per inviare una richiesta utilizzando il modello di filtro movimento, devi installare l'SDK Vision di Gemini Enterprise Agent Platform.

Esegui le seguenti sostituzioni di variabili:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION_ID: l'ID località. Ad esempio, us-central1. Regioni supportate. Ulteriori informazioni.
  • LOCAL_FILE.EXT: il nome file di un file video locale. Ad esempio, my-video.mp4.
  • STREAM_ID: l'ID stream creato nel cluster. Ad esempio, input-stream.
  • --motion-sensitivity: la sensibilità del filtro degli eventi di movimento. Le opzioni sono high, medium, low.
  • --min-event-length: la durata minima di un evento di movimento in secondi. Il valore predefinito è 10 secondi. Valori disponibili: 1-3600.
  • --lookback-length: la durata della finestra temporale prima dell'inizio dell'evento di movimento in secondi. Il valore predefinito è 3 secondi. Valori disponibili: 0-300.
  • --cooldown-length: il periodo di attesa dopo che si verifica un evento di movimento in secondi. Il valore predefinito è 300 secondi (5 minuti). Valori disponibili: 0-3600.
  • --continuous-mode: indica se inviare in modalità continua. Il valore predefinito è true.
  • OUTPUT_DIRECTORY: la directory in cui vuoi salvare i file MP4 dei segmenti video di output.

Visualizza le informazioni sui comandi

Utilizza il seguente comando per visualizzare ulteriori informazioni sul comando e sui relativi parametri facoltativi:

vaictl send video-file applying motion-filter -h

Filtra i contenuti dei file locali utilizzando il modello di filtro movimento

Questo comando invia solo le sezioni video in cui il modello rileva il movimento.

vaictl -p PROJECT_ID \
      -l LOCATION_ID \
      -c application-cluster-0 \
      --service-endpoint visionai.googleapis.com \
send video-file  --file-path LOCAL_FILE.EXT \
applying motion-filter --motion-sensitivity=medium \
      --min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to streams STREAM_ID --loop

Filtra i contenuti dei file locali e salva l'output utilizzando il modello di filtro movimento

Questo comando utilizza il flag --continuous_mode per generare file video separati per ogni segmento di movimento.

vaictl -p PROJECT_ID \
      -l LOCATION_ID \
      -c application-cluster-0 \
      --service-endpoint visionai.googleapis.com \
send video-file --file-path LOCAL_FILE.EXT --continuous-mode=false \
applying motion-filter --motion-sensitivity=medium \
      --min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to mp4file --mp4-file-path=OUTPUT_DIRECTORY

Best practice

Il filtro movimento è progettato per essere un modello leggero che consente di ridurre il tempo di calcolo nella decodifica dei video codificati durante la trasmissione. Per utilizzare al meglio il filtro, posiziona una videocamera fissa direttamente sugli oggetti di interesse. Evita di includere oggetti in movimento non importanti sullo sfondo del frame. Ad esempio, un frame che contiene oggetti di sfondo come alberi in movimento, flusso costante di auto o ombre di oggetti in movimento rileva il movimento di questi soggetti non importanti.

Posiziona gli oggetti di interesse in primo piano e riduci il più possibile la quantità di oggetti di sfondo con movimento costante. In sintesi:

  • Utilizza una videocamera fissa.
  • Assicurati di evitare uno sfondo in movimento costante.
  • I movimenti minimi non verranno rilevati.
  • Assicurati che gli oggetti siano sufficientemente grandi.

Best practice per gli interni

Per gli ambienti interni con illuminazione costante e movimento di sfondo minimo, segui queste best practice per gli interni:

  • Aumenta la sensibilità. Gli oggetti nel frame tendono a essere più grandi e anche il rumore nel frame è minore.
  • Utilizza finestre temporali più piccole e una durata dell'evento più breve. I movimenti interni sono più lenti e lo spazio in cui possono verificarsi i movimenti è limitato.

Seguendo queste best practice per gli interni, il filtro movimento può registrare il movimento degli oggetti in un tempo minimo.

Best practice per gli esterni

Per gli ambienti esterni, nelle scene esterne sono presenti più variabili che potrebbero influire sul rendimento del filtro. Ad esempio, l'ombra di un albero in movimento o le variazioni della luce solare nel frame sono movimenti rilevati per il modello di filtro movimento. Considera le seguenti condizioni e il modo migliore per rispondere.

Situazione 1:

Considera un video che riprende un marciapiede su cui i pedoni passano di tanto in tanto. Questi movimenti possono essere lenti come una passeggiata casuale o veloci come il passaggio di uno skateboard. Utilizza le seguenti indicazioni:

  • Imposta una durata minima della finestra e una finestra temporale su un valore più lungo. La velocità dei movimenti ha un intervallo più ampio rispetto allo scenario interno, quindi l'aumento della durata minima della finestra e della finestra temporale consente al modello di acquisire l'intero evento di movimento.
  • Imposta una sensibilità di rilevamento del movimento più elevata. Un ambiente esterno contiene più oggetti in movimento naturale, come alberi e ombre in movimento. Per concentrarti solo sugli oggetti di interesse, come persone e biciclette, imposta una sensibilità di rilevamento del movimento più elevata per evitare il rilevamento costante degli oggetti di sfondo.

Situazione 2:

Considera un altro video incentrato su una strada in cui le auto passano costantemente e i pedoni passano di tanto in tanto. Utilizza le seguenti indicazioni:

  • Imposta la sensibilità su media o bassa: un'impostazione di sensibilità inferiore consente al modello di acquisire una varietà di dimensioni di oggetti in movimento nel frame.
  • Imposta la finestra temporale e la durata minima dell'evento su un valore più breve. Le auto e gli altri veicoli sulla strada si muovono a una velocità notevolmente superiore rispetto a persone e biciclette. L'impostazione di un valore più breve per questi parametri tiene conto del fatto che la velocità del movimento è maggiore e che gli oggetti entrano ed escono rapidamente dal frame.
  • Imposta un periodo di attesa breve. A causa della maggiore velocità del movimento, l'oggetto successivo potrebbe entrare nel frame poco dopo il primo oggetto. Di conseguenza, un periodo di attesa più breve tiene conto di questo.

Limitazioni

Poiché il filtro movimento dipende in gran parte dal vettore di movimento in ogni frame, è necessario tenere presente alcune limitazioni.

  1. Angolo della videocamera: utilizza una videocamera fissa, poiché una videocamera in movimento ha costantemente movimento nel frame.
  2. Dimensioni dell'oggetto: prova a inquadrare i soggetti in modo che gli oggetti chiave appaiano abbastanza grandi nel frame per ottenere il miglior rendimento dal filtro movimento.
  3. Illuminazione: le variazioni di illuminazione, come un'improvvisa variazione di luminosità nel frame o movimenti intensi delle ombre, potrebbero peggiorare il rendimento del modello. Una gamma dinamica bassa che genera un tono di luminosità simile per l'intero video, che influisce sul modo in cui il modello interpreta il movimento e peggiora il rendimento del modello.
  4. Posizionamento della videocamera: il modello è progettato per rilevare il movimento nel frame. Sono inclusi i movimenti di sfondo, come il vento che muove un albero o gli oggetti fuori dal frame che creano ombre. Se una parte significativa del frame punta a oggetti di sfondo che creano questi movimenti, il rendimento del modello potrebbe risentirne.