Guia de filtragem de movimento

O modelo de filtro de movimento permite reduzir o tempo de cálculo ao dividir as secções de vídeo longas em segmentos mais pequenos que contêm um evento de movimento. Este modelo permite-lhe definir a sensibilidade ao movimento, a duração mínima do evento, o período de análise, e o período de repouso para ajustar os resultados dos eventos de movimento ao seu exemplo de utilização.

Parâmetros do modelo

O modelo de filtro de movimento tem quatro parâmetros de controlo para ajustar os segmentos de eventos e a forma como o modelo os devolve.

Parâmetro Descrição Bandeira Valor predefinido Valores disponíveis
Duração mínima do evento A duração mínima de um evento de movimento após o fim de um evento de movimento, em segundos. --min-event-length INT 10 (segundos) 1 - 3600
Sensibilidade da deteção de movimentos A sensibilidade da filtragem de eventos de movimento do modelo. A sensibilidade elevada é mais reativa ao movimento e oferece uma filtragem de movimento mais agressiva, o que resulta na deteção de mais movimento. --motion-sensitivity STRING "medium" "high", "medium" ou "low"
Período de análise A quantidade de conteúdo de vídeo (em segundos) que o serviço captura antes de um evento de movimento detetado. --lookback-length INT 3 (segundos) 0 - 300
Período de repouso Após o fim de um evento de movimento, ocorre um período de repouso com a duração especificada. Durante o período de repouso, o modelo não regista eventos de movimento. --cooldown-length INT 300 (segundos) 0 - 3600

Sensibilidade de movimentos

Quando executa o filtro de movimento, a sensibilidade ao movimento desempenha o papel mais importante na determinação do número de vídeos de segmentos que o modelo cria a partir de uma stream de vídeo.

Quanto maior for a sensibilidade à deteção de movimentos, mais sensível é a deteção do modelo ao ruído e a movimentos mais pequenos. Esta definição de sensibilidade mais elevada é recomendada para definições que contenham iluminação estável e mostrem objetos em movimento mais pequenos (como vistas de pessoas vistas à distância).

Por outro lado, a sensibilidade baixa é a menos sensível a interferências de iluminação e a pequenos movimentos. Esta definição é adequada para situações com mais interferência de iluminação, como um ambiente exterior. Uma vez que esta definição é a opção de filtragem mais agressiva, ignora os movimentos de objetos pequenos.

Duração mínima do evento

A duração mínima do evento é a duração do vídeo que o modelo captura depois de parar de detetar um evento de movimento no frame. O valor predefinido é 10 segundos, mas pode especificar um tempo entre 1 segundo e 3600 segundos. Se for detetado um novo movimento durante a duração mínima do evento, o novo movimento é adicionado ao segmento de vídeo atual durante a duração do evento de movimento recém-detetado mais uma nova contagem decrescente da duração mínima do evento.

Diagrama da duração mínima do evento

Por exemplo, considere um vídeo de um cruzamento com dois carros em movimento no frame. O primeiro carro passa nos primeiros três segundos e o segundo carro aparece dois segundos depois. Se definir a duração mínima do evento para um segundo, existem dois segmentos de vídeo com movimento. Um segmento de vídeo contém o primeiro carro, enquanto o outro segmento contém o segundo carro. No entanto, se definir o evento de movimento para três segundos, só existe um segmento de vídeo resultante com movimento. O segundo carro aparece no frame apenas dois segundos depois do primeiro.

Quando define a duração mínima do evento, pense na frequência com que os eventos de movimento ocorrem normalmente no vídeo e quantos segmentos de vídeo quer guardar. Se os eventos de movimento ocorrerem com frequência, mas quiser que a maioria dos eventos de movimento seja guardada em segmentos de vídeo separados, defina a duração mínima do evento para um período mais curto. Se os eventos de movimento ocorrerem com pouca frequência, mas quiser agrupá-los, defina a duração mínima do evento para um período mais longo de modo a capturar vários eventos no mesmo segmento de vídeo.

Período de análise

O período de análise é o tempo imediatamente anterior ao momento em que é detetado um evento de movimento. Esta janela é útil quando quer ver o que acontece nos segundos anteriores ao momento em que o modelo deteta um evento de movimento. O valor predefinido para o período de análise é de três segundos, mas pode especificar entre zero e 300 segundos.

Pode usar um período de análise para ver a origem dos objetos em movimento. Também pode usar um período de análise para ver o que estava no enquadramento segundos antes de o evento de movimento ocorrer. Uma janela de análise retrospetiva é útil em situações em que existem pequenos objetos em movimento no enquadramento que não são detetados como um evento de movimento. No entanto, os pequenos objetos em movimento no enquadramento podem ter causado os eventos de movimento maiores que foram detetados.

Período de repouso

Um período de repouso é uma duração que ocorre após a captura de um evento de movimento e de um comprimento mínimo do evento. Durante o período de repouso, o movimento detetado não aciona o filtro de movimento. O intervalo deste período é entre zero segundos e 3600 segundos. A predefinição é de 300 segundos.

O período de repouso foi concebido para que os utilizadores poupem custos de computação. Se esperar movimentos num frame e só tiver interesse em saber quando o movimento ocorre, mas não se importar com o que acontece depois, um período de repouso é uma definição útil.

Use o modelo

Pode usar o modelo de filtro de movimento através do Vertex AI Vision SDK.

Use a ferramenta de linha de comandos vaictl para ativar o modelo especificando applying encoded-motion-filter e transmitindo valores para definir parâmetros de controlo.

SDK Vertex AI Vision

Para enviar um pedido através do modelo de filtro de movimento, tem de instalar o SDK Vertex AI Vision.

Faça as seguintes substituições de variáveis:

  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION_ID: o ID da sua localização. Por exemplo, us-central1. Regiões suportadas. Mais informações.
  • LOCAL_FILE.EXT: o nome do ficheiro de um ficheiro de vídeo local. Por exemplo, my-video.mp4.
  • STREAM_ID: o ID da stream que criou no cluster. Por exemplo, input-stream.
  • --motion-sensitivity: a sensibilidade da filtragem de eventos de movimento. As opções são high, medium e low.
  • --min-event-length: a duração mínima de um evento de movimento em segundos. O valor predefinido é de 10 segundos. Valores disponíveis: 1-3600.
  • --lookback-length: a duração do período de análise antes do início do evento de movimento em segundos. O valor predefinido é de 3 segundos. Valores disponíveis: 0-300.
  • --cooldown-length: o período de repouso após a ocorrência de um evento de movimento em segundos. O valor predefinido é 300 segundos (5 minutos). Valores disponíveis: 0-3600.
  • --continuous-mode: se deve enviar no modo contínuo. O valor predefinido é true.
  • OUTPUT_DIRECTORY: o diretório onde quer guardar os ficheiros MP4 do segmento de vídeo de saída.

Veja informações de comandos

Use o seguinte comando para ver mais informações sobre o comando e os respetivos parâmetros opcionais:

vaictl send video-file applying motion-filter -h

Filtre o conteúdo de ficheiros locais através do modelo de filtro de movimento

Este comando envia apenas secções de vídeo onde o modelo deteta 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

Filtre o conteúdo de ficheiros locais e guarde o resultado com o modelo de filtro de movimento

Este comando usa a flag --continuous_mode para gerar ficheiros de vídeo separados para cada segmento de 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

Práticas recomendadas

O filtro de movimento foi concebido para ser um modelo leve que ajuda a reduzir o tempo de cálculo na descodificação de vídeos codificados durante a transmissão. Para usar o filtro da melhor forma, posicione uma câmara estática diretamente nos objetos de interesse. Evite incluir objetos em movimento sem importância no fundo do enquadramento. Por exemplo, um fotograma que contém objetos de fundo, como árvores em movimento, fluxo constante de carros ou sombras de objetos em movimento, deteta o movimento destes objetos sem importância.

Coloque objetos de interesse em primeiro plano e reduza ao máximo a quantidade de objetos de fundo com movimento constante. Para resumir:

  • Use uma câmara fotográfica.
  • Certifique-se de que evita um fundo em movimento constante.
  • Os movimentos mínimos não são detetados.
  • Certifique-se de que os objetos são suficientemente grandes.

Práticas recomendadas para interiores

Para ambientes interiores com iluminação constante e movimento mínimo no fundo, siga estas práticas recomendadas para interiores:

  • Aumente a sensibilidade. Os objetos na moldura tendem a ser maiores e também há menos ruído na moldura.
  • Use períodos de análise mais pequenos e uma duração dos eventos mais curta. Os movimentos no interior são mais lentos e o espaço em que os movimentos podem ocorrer é limitado.

Seguir estas práticas em interiores permite que o filtro de movimento grave o movimento de objetos num tempo mínimo.

Práticas recomendadas para atividades ao ar livre

Para ambientes exteriores, existem mais variáveis em cenas exteriores que podem afetar o desempenho do filtro. Por exemplo, a sombra de uma árvore em movimento ou as alterações na luz solar no enquadramento são detetadas como movimento para o modelo de filtro de movimento. Considere as seguintes condições e a melhor forma de responder a elas.

Situação 1:

Considere um vídeo que capta uma rua onde os peões passam ocasionalmente. Estes movimentos podem ser tão lentos como uma caminhada casual ou tão rápidos como a passagem de um skate. Siga as seguintes orientações:

  • Defina uma duração mínima da janela e um período de análise para um valor mais longo. A velocidade dos movimentos tem um intervalo maior do que no cenário interior, pelo que aumentar a duração mínima do intervalo e o período de análise permite ao modelo captar o evento de movimento completo.
  • Defina a sensibilidade ao movimento para um valor mais elevado. Um ambiente exterior contém mais objetos em movimento natural, como árvores e sombras em movimento. Para se focar apenas em objetos de interesse, como humanos e bicicletas, defina a sensibilidade ao movimento como mais alta para evitar a deteção constante de objetos de fundo.

Situação 2:

Considere um vídeo diferente que se foque numa rua onde os carros passam constantemente e os peões passam ocasionalmente. Siga as seguintes orientações:

  • Defina a sensibilidade como média ou baixa: uma definição de sensibilidade mais baixa permite ao modelo captar uma variedade de tamanhos de objetos em movimento no enquadramento.
  • Defina o período de análise e a duração mínima do evento para um valor mais curto. Os carros e outros veículos na rua movem-se a uma velocidade significativamente mais rápida do que os humanos e as bicicletas. A definição de um valor mais curto para estes parâmetros tem em conta o facto de a velocidade do movimento ser maior e de os objetos entrarem e saírem rapidamente do enquadramento.
  • Defina um tempo de repouso curto. Devido à maior velocidade de movimento, o objeto seguinte pode entrar no enquadramento pouco depois do primeiro objeto. Consequentemente, um tempo de repouso mais curto explica esta situação.

Limitações

Como o filtro de movimento depende em grande parte do vetor de movimento em cada fotograma, existem determinadas limitações a ter em atenção.

  1. Ângulo da câmara: use uma câmara estática, uma vez que uma câmara em movimento tem constantemente movimento no respetivo enquadramento.
  2. Tamanho do objeto: tente enquadrar os motivos de forma que os objetos principais apareçam suficientemente grandes no enquadramento para alcançar o melhor desempenho com o filtro de movimento.
  3. Iluminação: as alterações de iluminação, como uma alteração repentina do brilho no enquadramento ou movimentos intensos de sombras, podem degradar o desempenho do modelo. Uma amplitude dinâmica baixa que resulta num tom de brilho semelhante para o vídeo geral, o que afeta a forma como o modelo interpreta o movimento e degrada o desempenho do modelo.
  4. Posicionamento da câmara: o modelo foi concebido para detetar movimento no enquadramento. Isto inclui movimentos de fundo, como o vento a mover uma árvore ou objetos fora do enquadramento a criar sombras. Ter uma grande parte do enquadramento a apontar para objetos de fundo que criam estes movimentos pode afetar o desempenho do modelo.