Il modello Filtro movimento consente di ridurre il tempo di calcolo tagliando le sezioni video lunghe in segmenti più piccoli che contengono un evento di movimento. Questo modello ti consente di impostare la sensibilità al movimento, la durata minima dell'evento, la finestra temporale e il periodo di attesa per regolare le uscite 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 il modo in cui il modello li restituisce.
Parametro | Descrizione | Bandiera | Valore predefinito | Valori disponibili |
---|---|---|---|---|
Durata minima evento | La durata minima in secondi di un evento di movimento che verrà acquisito al termine di un evento di movimento. | --min-event-length INT |
10 (secondi) | 1 - 3600 |
Sensibilità del rilevamento dei movimenti | La sensibilità del filtro degli eventi di movimento del modello. La sensibilità elevata è più reattiva al movimento e fornisce un filtraggio più aggressivo del movimento, con un conseguente aumento del movimento rilevato. | --motion-sensitivity STRING |
"medium" |
"high" , "medium" o "low" |
Finestra temporale | La quantità di contenuti video (in secondi) acquisita dal servizio prima che venga rilevato un evento di movimento. | --lookback-length INT |
3 (secondi) | 0 - 300 |
Periodo di attesa | Al termine di un evento di movimento, viene applicato 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 viene eseguito il filtro di movimento, la sensibilità al movimento svolge il ruolo più importante nel determinare il numero di video in segmenti creati dal modello da uno stream video.
Maggiore è la sensibilità del rilevamento del movimento, più il rilevamento del modello è sensibile al rumore e ai movimenti più piccoli. Questa impostazione di sensibilità più elevata è consigliata per scenari con illuminazione stabile e che mostrano oggetti in movimento più piccoli (ad esempio persone viste da lontano).
Al contrario, la sensibilità bassa è la meno sensibile alle interferenze dell'illuminazione e ai piccoli movimenti. Questa impostazione è ideale per situazioni con più interferenze di illuminazione, come un ambiente all'aperto. Poiché questa impostazione è l'opzione di filtro più aggressiva, ignora i movimenti di oggetti di piccole dimensioni.
Durata minima evento
La durata minima dell'evento è la durata del video acquisita dal modello dopo che ha smesso di rilevare un evento di movimento nell'inquadratura. Il valore predefinito è 10 secondi, ma puoi specificare un intervallo di tempo compreso tra 1 e 3600 secondi. Se viene rilevato un nuovo movimento durante la durata minima dell'evento, questo 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.
Ad esempio, prendiamo il caso di un video di un incrocio con due auto in movimento nell'inquadratura. La prima auto passa nei primi tre secondi e la seconda due secondi dopo. Se imposti la durata minima dell'evento su 1 secondo, esistono due segmenti video con movimento. Un segmento video contiene la prima auto, mentre l'altro contiene la seconda auto. Tuttavia, se impostate l'evento di movimento su tre secondi, viene generato un solo segmento video con movimento. La seconda auto viene visualizzata nel frame solo due secondi dopo la prima.
Quando imposti la durata minima dell'evento, pensa alla frequenza con cui si verificano solitamente gli eventi di movimento nel video e a quanti segmenti video vuoi salvare. Se gli eventi di movimento si verificano di frequente, ma vuoi che la maggior parte venga salvata in segmenti video separati, imposta una durata minima dell'evento 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 momento immediatamente precedente a quello 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 l'origine degli oggetti in movimento. Puoi anche utilizzare una finestra temporale per vedere cosa c'era nell'inquadratura pochi secondi prima dell'evento di movimento. Una finestra di ricerca a ritroso è utile in situazioni in cui esistono piccoli oggetti in movimento nel fotogramma che non vengono rilevati come evento di movimento. Tuttavia, i piccoli oggetti in movimento nell'inquadratura potrebbero aver causato gli eventi di movimento più grandi rilevati.
Periodo di attesa
Un periodo di attesa è una durata che si verifica dopo che sono stati acquisiti un evento di movimento e una durata minima dell'evento. Durante il periodo di attesa, il movimento rilevato non attiva il filtro dei movimenti. L'intervallo di questo periodo è compreso tra 0 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 avviene il movimento, ma non ti interessa cosa succede dopo, un periodo di tempo di attesa è un'impostazione utile.
usa il modello
Puoi utilizzare il modello di filtro di movimento con l'SDK Vertex AI Vision.
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 Vertex AI Vision
Per inviare una richiesta utilizzando il modello di filtro di movimento, devi installare l'SDK Vertex AI Vision.
Apporta le seguenti sostituzioni delle variabili:
- PROJECT_ID: il tuo ID progetto Google Cloud .
- LOCATION_ID: il tuo ID posizione. Ad esempio,
us-central1
. Regioni supportate. Scopri di più. - LOCAL_FILE.EXT: il nome di un file video locale. Ad esempio,
my-video.mp4
. - STREAM_ID: l'ID stream che hai creato nel cluster.
Ad esempio,
input-stream
. --motion-sensitivity
: la sensibilità del filtro degli eventi di movimento. Le opzioni sonohigh
,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 del periodo di tempo prima dell'inizio dell'evento di movimento, espressa in secondi. Il valore predefinito è3
secondi. Valori disponibili:0
-300
.--cooldown-length
: il periodo di attesa dopo 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.
Visualizzare le informazioni sul comando
Utilizza il seguente comando per visualizzare ulteriori informazioni sul comando e sui suoi parametri facoltativi:
vaictl send video-file applying motion-filter -h
Filtrare i contenuti dei file locali utilizzando il modello di filtro di 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
Filtrare i contenuti dei file locali e salvare l'output utilizzando il modello di filtro di 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 di movimento è progettato per essere un modello leggero che contribuisce a ridurre il tempo di calcolo necessario per decodificare i video codificati durante la trasmissione. Per utilizzare al meglio il filtro, posiziona una fotocamera direttamente sugli oggetti di interesse. Evita di includere oggetti in movimento non importanti nello sfondo del frame. Ad esempio, un fotogramma che contiene oggetti sullo 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 al minimo la quantità di oggetti di sfondo con movimento costante. In sintesi:
- Utilizza una fotocamera.
- Evita uno sfondo in continuo movimento.
- I movimenti minimi non verranno rilevati.
- Assicurati che gli oggetti siano sufficientemente grandi.
Best practice per gli ambienti interni
Per gli ambienti interni con illuminazione costante e movimento minimo in background, segui queste best practice per gli interni:
- Aumenta la sensibilità. Gli oggetti nell'inquadratura tendono ad essere più grandi e anche il rumore è minore.
- Utilizza finestre temporali più brevi e una durata dell'evento inferiore. I movimenti al chiuso sono più lenti e lo spazio in cui possono verificarsi è limitato.
Se segui queste best practice per gli interni, il filtro movimento può registrare il movimento degli oggetti in un tempo minimo.
Best practice per le foto all'aperto
Per gli ambienti esterni, le scene esterne presentano più variabili che potrebbero influire sul rendimento del filtro. Ad esempio, l'ombra di un albero in movimento o le variazioni della luce solare nell'inquadratura vengono rilevate come movimento per il modello di filtro movimento. Prendi in considerazione le seguenti condizioni e il modo migliore per rispondere.
Situazione 1:
Immagina un video che riprende un marciapiede su cui passano occasionalmente dei pedoni. Questi movimenti possono essere lenti come una passeggiata o veloci come un passaggio su skateboard. Segui le indicazioni riportate di seguito:
- Imposta una durata minima della finestra e una finestra temporale su un valore più lungo. La velocità degli spostamenti ha un intervallo più ampio rispetto allo scenario interno, pertanto l'aumento della durata minima della finestra e della finestra temporale consente al modello di acquisire l'evento di movimento completo.
- Aumenta la sensibilità al movimento. Un ambiente all'aperto contiene più oggetti in movimento naturale, come alberi e ombre in movimento. Per concentrarti solo su oggetti di interesse come persone e biciclette, imposta una sensibilità al movimento più elevata per evitare il rilevamento costante degli oggetti sullo sfondo.
Situazione 2:
Prendiamo in considerazione un altro video incentrato su una strada in cui le auto passano costantemente e i pedoni passano di tanto in tanto. Segui le indicazioni riportate di seguito:
- Imposta la sensibilità su media o bassa: un'impostazione di sensibilità più bassa consente al modello di acquisire una serie di dimensioni di oggetti in movimento nell'inquadratura.
- 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à molto più elevata 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 e escono rapidamente dall'inquadratura.
- Imposta un tempo di attesa breve. A causa della maggiore velocità del movimento, l'oggetto successivo potrebbe entrare nel fotogramma poco dopo il primo. Di conseguenza, viene preso in considerazione un tempo di attesa più breve.
Limitazioni
Poiché il filtro di movimento dipende in gran parte dal vettore di movimento in ogni fotogramma, bisogna tenere presente alcune limitazioni.
- Angolo della fotocamera: utilizza una fotocamera fissa, poiché una in movimento ha costantemente movimento nell'inquadratura.
- Dimensioni degli oggetti: cerca di inquadrare i soggetti in modo che gli oggetti chiave siano sufficientemente grandi inquadratura per ottenere le migliori prestazioni dal filtro movimento.
- Illuminazione: le variazioni di illuminazione, ad esempio un cambiamento improvviso della luminosità nell'inquadratura o movimenti intensi delle ombre, potrebbero peggiorare il rendimento del modello. Un intervallo dinamico ridotto che comporta un tono di luminosità simile per l'intero video, il che influisce sul modo in cui il modello interpreta il movimento e ne peggiora il rendimento.
- Posizionamento della videocamera: il modello è progettato per rilevare il movimento nell'inquadratura. Sono inclusi i movimenti sullo sfondo, ad esempio il vento che fa muovere un albero o oggetti fuori dall'inquadratura creando ombre. Una grande porzione dell'inquadratura rivolta a oggetti sullo sfondo che creano questi movimenti potrebbe influire sul rendimento del modello.