Guia de filtragem de movimento

O modelo de filtro de movimento permite reduzir o tempo de computação ao cortar seções de vídeo longas em segmentos menores que contêm um evento de movimento. Esse modelo permite definir a sensibilidade de movimento, a duração mínima do evento, a janela de lookback e o período de espera para ajustar as saídas dos eventos de movimento ao seu caso de uso.

Parâmetros do modelo

O modelo de filtro de movimento tem quatro parâmetros de controle para ajustar os segmentos de evento e como o modelo os retorna.

Parâmetro Descrição Sinalização Valor padrão Valores disponíveis
Duração mínima do evento A duração mínima de um evento de movimento que será capturada após o evento ter terminado em segundos. --min-event-length INT 10 (segundos) 1 a 3.600
Sensibilidade da detecção de movimento A sensibilidade da filtragem de eventos de movimento do modelo. A alta sensibilidade é mais responsiva ao movimento e oferece uma filtragem de movimento mais agressiva, resultando em mais movimentos detectados. --motion-sensitivity STRING "medium" "high", "medium" ou "low"
Janela de lookback A quantidade de conteúdo de vídeo (em segundos) que o serviço captura antes de um evento de movimento detectado. --lookback-length INT 3 (segundos) 0 a 300
Período de espera Após o término de um evento de movimento, ocorre um período de espera com a duração especificada. Durante o período de resfriamento, o modelo não registra eventos de movimento. --cooldown-length INT 300 (segundos) 0 a 3.600

Sensibilidade de movimento

Ao executar o filtro de movimento, a sensibilidade de movimento tem o papel mais importante na determinação de quantos vídeos de segmento o modelo cria a partir de um fluxo de vídeo.

Quanto maior a sensibilidade da detecção de movimento, mais sensível a detecção do modelo é ao ruído e a movimentos menores. Essa configuração de sensibilidade mais alta é recomendada para configurações com iluminação estável e que mostram objetos em movimento menores (como pessoas vistas à distância).

Por outro lado, o de baixa sensibilidade é menos sensível à interferência de iluminação e a pequenos movimentos. Essa configuração é boa para situações com mais interferência de iluminação, como um ambiente externo. Como essa configuração é a opção de filtragem mais agressiva, ela ignora 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 detectar um evento de movimento no frame. O valor padrão é de 10 segundos, mas você pode especificar um tempo entre 1 e 3.600 segundos. Se um novo movimento for detectado durante o comprimento mínimo do evento, ele será adicionado ao segmento de vídeo atual durante a duração do evento de movimento recém-detectado mais uma nova contagem regressiva do comprimento mínimo do evento.

diagrama de duração mínima do evento

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

Ao definir o comprimento mínimo do evento, pense na frequência com que os eventos de movimento geralmente ocorrem no vídeo e em quantos segmentos de vídeo você quer salvar. Se os eventos de movimento ocorrerem com frequência, mas você quiser que a maioria deles seja salva 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 você quiser agrupar eventos, defina a duração mínima do evento para um período mais longo para capturar vários eventos no mesmo segmento de vídeo.

Janela de lookback

A janela de lookback é o tempo imediatamente anterior ao momento em que um evento de movimento é detectado. Essa janela é útil quando você quer saber o que acontece no frame segundos antes de o modelo detectar um evento de movimento. O valor padrão para a janela de lookback é de três segundos, mas você pode especificar entre zero e 300 segundos.

Você pode usar uma janela de lookback para saber de onde os objetos em movimento se originaram. Também é possível usar uma janela de lookback para conferir o que estava no frame segundos antes de o evento de movimento ocorrer. Uma janela de lookback é útil em situações em que há pequenos objetos em movimento no frame que não são detectados como um evento de movimento. No entanto, os pequenos objetos em movimento no frame podem ter causado os eventos de movimento maiores que foram detectados.

Período de espera

Um período de espera é uma duração que acontece depois que um evento de movimento e um comprimento mínimo de evento são capturados. Durante o período de espera, o movimento detectado não aciona o filtro de movimento. O intervalo desse período é entre zero e 3.600 segundos. O padrão é definido como 300 segundos.

O período de espera foi criado para que os usuários economizem custos de computação. Se os movimentos em um frame são esperados e você só quer saber quando o movimento acontece, mas não se importa com o que acontece depois, um período de resfriamento é uma configuração útil.

use o modelo

É possível usar o modelo de filtro de movimento com o SDK da Vertex AI Vision.

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

SDK da Vertex AI Vision

Para enviar uma solicitação usando o modelo de filtro de movimento, é necessário instalar o SDK da Vertex AI Vision.

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

  • PROJECT_ID: o ID do projeto do Google Cloud .
  • LOCATION_ID: o ID do local. Por exemplo, us-central1. Regiões com suporte. Mais informações.
  • LOCAL_FILE.EXT: o nome de um arquivo de vídeo local. Por exemplo, my-video.mp4.
  • STREAM_ID: o ID do stream que você 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 padrão é de 10 segundos. Valores disponíveis: 1-3600.
  • --lookback-length: a duração da janela de lookback antes do início do evento de movimento em segundos. O valor padrão é de 3 segundos. Valores disponíveis: 0-300.
  • --cooldown-length: o período de resfriamento após um evento de movimento ocorrer em segundos. O valor padrão é de 300 segundos (cinco minutos). Valores disponíveis: 0-3600.
  • --continuous-mode: se o envio será feito no modo contínuo. O valor padrão é true.
  • OUTPUT_DIRECTORY: o diretório em que você quer salvar os arquivos MP4 do segmento de vídeo de saída.

Conferir informações do comando

Use o comando a seguir para conferir mais informações sobre o comando e os parâmetros opcionais:

vaictl send video-file applying motion-filter -h

Filtrar conteúdo de arquivos locais usando o modelo de filtro de movimento

Esse comando envia apenas as seções de vídeo em que o modelo detecta 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

Filtrar o conteúdo do arquivo local e salvar a saída usando o modelo de filtro de movimento

Esse comando usa a flag --continuous_mode para gerar arquivos 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 projetado para ser um modelo leve que ajuda a reduzir o tempo de computação na decodificação de vídeos codificados durante a transmissão. Para operar melhor o filtro, coloque uma câmera fotográfica diretamente nos objetos de interesse. Evite incluir objetos em movimento sem importância no segundo plano do frame. Por exemplo, um frame que contém objetos de segundo plano, como árvores em movimento, fluxo constante de carros ou sombras de objetos em movimento, detecta o movimento desses sujeitos sem importância.

Coloque objetos de interesse em primeiro plano e reduza a quantidade de objetos de segundo plano com movimento constante o máximo possível. Para resumir:

  • Use uma câmera fotográfica.
  • Evite um plano de fundo em movimento constante.
  • Movimentos mínimos não serão detectados.
  • Verifique se os objetos são suficientemente grandes.

Práticas recomendadas para ambientes internos

Para ambientes internos com iluminação constante e movimento mínimo de plano de fundo, siga estas práticas recomendadas:

  • Aumente a sensibilidade. Os objetos no frame tendem a ser maiores e há menos ruído no frame também.
  • Use janelas de lookback menores e uma duração de evento mais curta. Os movimentos em ambientes internos são mais lentos, e há um espaço limitado em que os movimentos podem ocorrer.

Ao seguir essas práticas internas, o filtro de movimento pode registrar o movimento de objetos em um tempo mínimo.

Práticas recomendadas para ambientes externos

Para ambientes externos, há mais variáveis em cenas externas que podem afetar o desempenho do filtro. Por exemplo, a sombra de uma árvore em movimento ou mudanças na luz solar no frame são detectadas como movimento para o modelo de filtro de movimento. Considere as condições a seguir e a melhor maneira de responder a elas.

Situação 1:

Considere um vídeo que captura uma calçada por onde os pedestres passam ocasionalmente. Esses movimentos podem ser tão lentos quanto uma caminhada casual ou tão rápidos quanto um skateboard passando. Siga estas orientações:

  • Defina um comprimento mínimo da janela e uma janela de lookback com um valor maior. A velocidade dos movimentos tem um alcance maior do que o cenário interno. Portanto, aumentar a duração mínima da janela e a janela de lookback permite que o modelo capture o evento de movimento completo.
  • Aumente a sensibilidade de movimento. Um ambiente externo contém objetos que se movem de forma mais natural, como árvores e sombras em movimento. Para se concentrar apenas em objetos de interesse, como pessoas e bicicletas, defina uma sensibilidade de movimento mais alta para evitar a detecção constante de objetos em segundo plano.

Situação 2:

Considere um vídeo diferente que se concentra em uma rua por onde os carros passam constantemente e os pedestres passam ocasionalmente. Siga estas orientações:

  • Defina a sensibilidade como média ou baixa: uma configuração de sensibilidade mais baixa permite que o modelo capte vários tamanhos de objetos em movimento no frame.
  • Defina a janela de lookback e a duração mínima do evento como um valor mais curto. Os carros e outros veículos na rua se movem a uma velocidade muito maior do que humanos e bicicletas. A definição de um valor menor para esses parâmetros leva em consideração o fato de que a velocidade do movimento é maior e que os objetos entram e saem do frame rapidamente.
  • Defina um tempo de espera curto. Devido à maior velocidade do movimento, o próximo objeto pode entrar no frame logo após o primeiro. Por isso, um tempo de redução menor é responsável por isso.

Limitações

Como o filtro de movimento depende em grande parte do vetor de movimento em cada frame, é preciso considerar algumas limitações.

  1. Ângulo da câmera: use uma câmera fixa, já que uma câmera em movimento mostra movimento constante no frame.
  2. Tamanho do objeto: tente enquadrar os sujeitos para que os objetos principais apareçam grandes o suficiente no frame para alcançar o melhor desempenho pelo filtro de movimento.
  3. Iluminação: mudanças na iluminação, como uma mudança repentina no brilho do frame ou movimentos intensos de sombra, podem prejudicar a performance do modelo. Um alcance dinâmico baixo que resulta em um tom de brilho semelhante para o vídeo geral, o que afeta a forma como o modelo interpreta o movimento e degrada o desempenho.
  4. Posicionamento da câmera: o modelo foi projetado para detectar movimentos no frame. Isso inclui movimentos de fundo, como o vento movendo uma árvore ou objetos fora do enquadramento, criando sombras. Ter uma grande parte do frame apontando para objetos de segundo plano que criam esses movimentos pode afetar o desempenho do modelo.