Guide de filtrage du mouvement

Le modèle Filtre de mouvement vous permet de réduire le temps de calcul en réduisant de longues sections vidéo en segments plus petits contenant un événement de mouvement. Ce modèle vous permet de définir la sensibilité au mouvement, la durée minimale de l'événement, la fenêtre de suivi et la période de stabilisation pour ajuster les sorties des événements de mouvement à votre cas d'utilisation.

Paramètres du modèle

Le modèle de filtre de mouvement comporte quatre paramètres de contrôle pour ajuster les segments d'événements et la manière dont le modèle les renvoie.

Paramètre Description Option Valeur par défaut Valeurs disponibles
Durée minimale des événements Durée minimale (en secondes) pendant laquelle un événement de mouvement est capturé après la fin de l'événement. --min-event-length INT 10 (secondes) 1 à 3 600
Sensibilité de la détection des mouvements Sensibilité du filtrage des événements de mouvement du modèle. La sensibilité élevée est plus réactive aux mouvements et offre un filtrage plus agressif des mouvements, ce qui entraîne une détection plus fréquente des mouvements. --motion-sensitivity STRING "medium" "high", "medium", ou "low"
Période d'analyse Quantité de contenu vidéo (en secondes) que le service enregistre avant la détection d'un événement de mouvement. --lookback-length INT 3 secondes 0 à 300
Période d'attente Une fois qu'un événement de mouvement se termine, une période de refroidissement de la durée spécifiée se produit. Pendant la période de stabilisation, le modèle n'enregistre pas d'événements de mouvement. --cooldown-length INT 300 secondes 0 à 3 600

Sensibilité du capteur de mouvement

Lorsque vous exécutez le filtre de mouvement, la sensibilité au mouvement joue le rôle le plus important pour déterminer le nombre de vidéos segmentées que le modèle crée à partir d'un flux vidéo.

Plus la sensibilité de la détection de mouvement est élevée, plus la détection du modèle est sensible au bruit et aux mouvements plus petits. Ce paramètre de sensibilité plus élevé est recommandé pour les scènes qui comportent un éclairage stable et qui montrent des objets plus petits en mouvement (par exemple, des vues de personnes vues de loin).

À l'inverse, la sensibilité faible est la moins sensible aux interférences lumineuses et aux petits mouvements. Ce paramètre est adapté aux situations où il y a plus d'interférences lumineuses, comme dans un environnement extérieur. Étant donné que ce paramètre est l'option de filtrage la plus agressive, il ignore les mouvements de petits objets.

Durée minimale des événements

La durée minimale de l'événement correspond à la durée de la vidéo que le modèle capture après avoir cessé de détecter un événement de mouvement dans le frame. La valeur par défaut est de 10 secondes, mais vous pouvez spécifier une durée comprise entre 1 et 3 600 secondes. Si un nouveau mouvement est détecté pendant la durée minimale de l'événement, il est ajouté au segment vidéo actuel pendant la durée de l'événement de mouvement nouvellement détecté et un nouveau compte à rebours de la durée minimale de l'événement.

Diagramme de la durée minimale des événements

Par exemple, imaginons une vidéo d'un carrefour avec deux voitures en mouvement dans le cadre. La première voiture passe dans les trois premières secondes, et la deuxième passe deux secondes plus tard. Si vous définissez la durée minimale de l'événement sur une seconde, il y a deux segments vidéo avec mouvement. Un segment vidéo contient la première voiture, tandis que l'autre contient la deuxième voiture. Toutefois, si vous définissez l'événement de mouvement sur trois secondes, un seul segment vidéo avec mouvement est généré. La deuxième voiture n'apparaît dans le cadre que deux secondes après la première.

Lorsque vous définissez la durée minimale de l'événement, réfléchissez à la fréquence à laquelle les événements de mouvement se produisent généralement dans votre vidéo et au nombre de segments vidéo que vous souhaitez enregistrer. Si des événements de mouvement se produisent fréquemment, mais que vous souhaitez que la plupart d'entre eux soient enregistrés dans des segments vidéo distincts, définissez la durée minimale des événements sur une période plus courte. Si les événements de mouvement se produisent rarement, mais que vous souhaitez les regrouper, définissez la durée minimale des événements sur une période plus longue pour capturer plusieurs événements dans le même segment vidéo.

Période d'analyse

La période d'analyse correspond au moment juste avant la détection d'un événement de mouvement. Cette fenêtre est utile lorsque vous souhaitez voir ce qui se passe dans le frame quelques secondes avant que le modèle ne détecte un événement de mouvement. La valeur par défaut de la période d'analyse est de trois secondes, mais vous pouvez spécifier une valeur comprise entre zéro et 300 secondes.

Vous pouvez utiliser une fenêtre d'analyse du passé pour voir d'où proviennent les objets en mouvement. Vous pouvez également utiliser une période d'analyse pour voir ce qui se trouvait dans le frame quelques secondes avant l'événement de mouvement. Une fenêtre de retour en arrière est utile dans les situations où de petits objets en mouvement dans le cadre ne sont pas détectés comme un événement de mouvement. Toutefois, les petits objets en mouvement dans le cadre peuvent avoir provoqué les événements de mouvement plus importants détectés.

Période d'attente

Un délai de refroidissement est une durée qui se produit après la capture d'un événement de mouvement et d'une durée d'événement minimale. Pendant la période de stabilisation, le mouvement détecté ne déclenche pas le filtre de mouvement. La plage de cette période est comprise entre zéro seconde et 3 600 secondes. La valeur par défaut est de 300 secondes.

La période de stabilisation est conçue pour permettre aux utilisateurs de réduire les coûts de calcul. Si des mouvements dans un frame sont attendus et que vous ne souhaitez apprendre que quand le mouvement se produit, mais que vous ne vous souciez pas de ce qui se passe ensuite, une période de stabilisation est un paramètre utile.

Utiliser le modèle

Vous pouvez utiliser le modèle de filtre de mouvement à l'aide du SDK Vertex AI Vision.

Utilisez l'outil de ligne de commande vaictl pour activer le modèle en spécifiant applying encoded-motion-filter et en transmettant des valeurs pour définir les paramètres de contrôle.

SDK Vertex AI Vision

Pour envoyer une requête à l'aide du modèle de filtre de mouvement, vous devez installer le SDK Vertex AI Vision.

Effectuez les substitutions de variables suivantes :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION_ID: ID de votre emplacement. Exemple :us-central1 Régions où le service est disponible En savoir plus
  • LOCAL_FILE.EXT: nom de fichier d'un fichier vidéo local. Exemple : my-video.mp4.
  • STREAM_ID: ID du flux que vous avez créé dans le cluster. Exemple :input-stream
  • --motion-sensitivity: sensibilité du filtrage des événements de mouvement. Les options sont high, medium et low.
  • --min-event-length: durée minimale d'un événement de mouvement en secondes. La valeur par défaut est de 10 secondes. Valeurs disponibles: 1-3600.
  • --lookback-length: durée de la période d'analyse avant le début de l'événement de mouvement, en secondes. La valeur par défaut est de 3 secondes. Valeurs disponibles : 0-300.
  • --cooldown-length: période de stabilisation après un événement de mouvement en secondes. La valeur par défaut est de 300 secondes (5 minutes). Valeurs disponibles: 0-3600.
  • --continuous-mode: indique si l'envoi doit être effectué en mode continu. La valeur par défaut est true.
  • OUTPUT_DIRECTORY: répertoire dans lequel enregistrer les fichiers MP4 de la séquence vidéo de sortie.

Afficher les informations sur la commande

Utilisez la commande suivante pour afficher plus d'informations sur la commande et ses paramètres facultatifs:

vaictl send video-file applying motion-filter -h

Filtrer le contenu d'un fichier local à l'aide du modèle de filtre de mouvement

Cette commande n'envoie que les sections vidéo où le modèle détecte un mouvement.

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

Filtrer le contenu d'un fichier local et enregistrer la sortie à l'aide du modèle de filtre de mouvement

Cette commande utilise l'option --continuous_mode pour générer des fichiers vidéo distincts pour chaque segment de mouvement.

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

Bonnes pratiques

Le filtre de mouvement est conçu comme un modèle léger pour réduire le temps de calcul lors du décodage des vidéos encodées pendant la transmission. Pour utiliser au mieux le filtre, placez un appareil photo fixe directement sur les objets d'intérêt. Évitez d'inclure des objets en mouvement sans importance en arrière-plan du cadre. Par exemple, un frame contenant des objets en arrière-plan tels que des arbres en mouvement, un flux constant de voitures ou des ombres d'objets en mouvement détecte le mouvement de ces sujets sans importance.

Placez les objets d'intérêt au premier plan et réduisez autant que possible le nombre d'objets en arrière-plan en mouvement constant. En résumé :

  • Utilisez un appareil photo.
  • Veillez à éviter un arrière-plan en mouvement constant.
  • Les mouvements minimes ne seront pas détectés.
  • Assurez-vous que les objets sont suffisamment grands.

Bonnes pratiques en intérieur

Pour les environnements intérieurs où l'éclairage est constant et où le mouvement en arrière-plan est minimal, suivez ces bonnes pratiques:

  • Augmentez la sensibilité. Les objets dans le cadre ont tendance à être plus grands, et le bruit est également moins important.
  • Utilisez des périodes d'analyse des données plus courtes et une durée d'événement plus courte. Les mouvements en intérieur sont plus lents et l'espace dans lequel ils peuvent se produire est limité.

En suivant ces bonnes pratiques en intérieur, le filtre de mouvement peut enregistrer le mouvement des objets en un temps minimal.

Bonnes pratiques pour les activités en plein air

Pour les environnements extérieurs, les scènes extérieures comportent davantage de variables pouvant affecter les performances du filtre. Par exemple, l'ombre d'un arbre en mouvement ou les changements de lumière du soleil dans le cadre sont détectés comme des mouvements pour le modèle de filtre de mouvement. Réfléchissez aux conditions suivantes et à la meilleure façon de les gérer.

Situation 1 :

Imaginons une vidéo qui montre un trottoir sur lequel des piétons passent de temps en temps. Ces mouvements peuvent être aussi lents que la marche normale ou aussi rapides qu'un passage de skate. Suivez les conseils suivants:

  • Définissez une longueur de période minimale et une période d'analyse sur une valeur plus longue. La vitesse des mouvements a une plage plus large que le scénario intérieur. Par conséquent, en augmentant la durée minimale de la fenêtre et la période d'analyse, le modèle peut capturer l'événement de mouvement complet.
  • Augmentez la sensibilité du capteur de mouvement. Un environnement extérieur contient plus d'objets en mouvement naturel, comme des arbres et des ombres. Pour vous concentrer uniquement sur les objets d'intérêt tels que les personnes et les vélos, définissez la sensibilité au mouvement sur une valeur plus élevée afin d'éviter la détection constante des objets en arrière-plan.

Situation 2 :

Prenons une autre vidéo qui se concentre sur une rue où les voitures passent constamment et où les piétons passent de temps en temps. Suivez les conseils suivants:

  • Définissez la sensibilité sur "Moyenne" ou "Faible" : un réglage de sensibilité plus faible permet au modèle de capturer différentes tailles d'objets en mouvement dans le cadre.
  • Définissez la période d'analyse et la durée minimale des événements sur une valeur plus courte. Les voitures et les autres véhicules qui circulent dans la rue se déplacent à une vitesse nettement plus élevée que les humains et les vélos. Définir une valeur plus courte pour ces paramètres tient compte du fait que la vitesse de mouvement est plus élevée et que les objets entrent et sortent du cadre rapidement.
  • Définissez un temps de retour au calme court. En raison de la plus grande vitesse de mouvement, l'objet suivant peut entrer dans le frame peu de temps après le premier objet. Par conséquent, un temps de pause plus court est pris en compte.

Limites

Étant donné que le filtre de mouvement dépend largement du vecteur de mouvement dans chaque frame, certaines limites doivent être prises en compte.

  1. Angle de la caméra: utilisez un appareil photo fixe, car un appareil photo en mouvement est constamment en mouvement dans son cadre.
  2. Taille des objets: essayez de cadrer les sujets de sorte que les objets clés apparaissent suffisamment grands dans le cadre pour que le filtre de mouvement offre les meilleures performances.
  3. Éclairage: les changements d'éclairage (comme une modification soudaine de la luminosité du frame ou des mouvements d'ombre intenses) peuvent dégrader les performances du modèle. Une plage dynamique faible qui se traduit par un ton de luminosité similaire pour l'ensemble de la vidéo, ce qui affecte la façon dont le modèle interprète le mouvement et dégrade ses performances.
  4. Positionnement de la caméra: le modèle est conçu pour détecter les mouvements dans le cadre. Cela inclut les mouvements en arrière-plan, comme le vent qui fait bouger un arbre ou des objets hors du cadre, créant des ombres. Une grande partie du cadre pointant vers des objets en arrière-plan qui créent ces mouvements peut avoir un impact sur les performances du modèle.