Guide de filtrage du mouvement

Le modèle de filtre de mouvement vous permet de réduire le temps de calcul en découpant les 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 période d'analyse et la période d'attente pour ajuster les résultats 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 permettant d'ajuster les segments d'événements et la façon 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 pendant laquelle un événement de mouvement sera enregistré après la fin d'un événement de mouvement (en secondes). --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 des mouvements plus agressif, ce qui permet de détecter plus de mouvements. --motion-sensitivity STRING "medium" "high", "medium" ou "low"
Période d'analyse Quantité de contenu vidéo (en secondes) que le service capture avant un événement de détection de mouvement. --lookback-length INT 3 secondes 0 – 300
Période d'attente Une fois un événement de mouvement terminé, une période de refroidissement de la durée spécifiée se produit. Pendant la période d'attente, le modèle n'enregistre pas les é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 de segment 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 petits mouvements.  Ce paramètre de sensibilité plus élevé est recommandé pour les paramètres qui contiennent un éclairage stable et montrent de petits objets en mouvement (comme 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 convient aux situations où les interférences lumineuses sont plus importantes, comme dans un environnement extérieur. Comme ce paramètre est l'option de filtrage la plus agressive, il ignore les mouvements des petits objets.

Durée minimale des événements

La durée minimale d'un é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 cadre. 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 pour la durée du nouvel événement de mouvement plus 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 arrive deux secondes plus tard. Si vous définissez la durée minimale de l'événement sur une seconde, deux segments vidéo présentent des mouvements. Un segment vidéo contient la première voiture, tandis que l'autre segment contient la deuxième voiture. Toutefois, si vous définissez l'événement de mouvement sur trois secondes, il n'y aura qu'un seul segment vidéo avec mouvement. La deuxième voiture apparaît dans le cadre seulement deux secondes après la première.

Lorsque vous définissez la durée minimale des événements, 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 sont peu fréquents, mais que vous souhaitez les regrouper, définissez une durée minimale plus longue pour capturer plusieurs événements dans le même segment vidéo.

Période d'analyse

La période d'analyse correspond à la période précédant immédiatement le moment où un événement de mouvement est détecté. 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 de rétrospection 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 cadre quelques secondes avant l'événement de mouvement. Une fenêtre de rétrospection est utile dans les situations où de petits objets en mouvement se trouvent dans le cadre et 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 qui ont été détectés.

Période d'attente

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

La période d'attente est conçue pour permettre aux utilisateurs de réduire les coûts de calcul. Si des mouvements sont attendus dans un cadre et que vous souhaitez uniquement savoir quand le mouvement se produit, mais que ce qui se passe ensuite ne vous intéresse pas, une période de refroidissement est un paramètre utile.

Utiliser le modèle

Vous pouvez utiliser le modèle de filtre de mouvement à l'aide du SDK Gemini Enterprise Agent Platform 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 Vision Gemini Enterprise Agent Platform

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

Effectuez les substitutions de variables suivantes :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION_ID : ID de zone géographique. Exemple :us-central1 Régions où le service est disponible. En savoir plus
  • LOCAL_FILE.EXT : nom 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 d'attente 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 vous souhaitez enregistrer les fichiers MP4 des segments 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 le résultat à 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 pour être un modèle léger qui permet de 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 une caméra fixe directement sur les objets qui vous intéressent. Évitez d'inclure des objets en mouvement sans importance en arrière-plan du cadre. Par exemple, une image contenant des objets en arrière-plan tels que des arbres qui bougent, un flux de voitures constant 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 avec un mouvement constant. En résumé :

  • Utilisez un appareil photo.
  • Évitez d'utiliser 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 pour l'intérieur

Pour les environnements intérieurs avec un éclairage constant et un mouvement de fond minimal, suivez ces bonnes pratiques :

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

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

Bonnes pratiques pour les activités en extérieur

Pour les environnements extérieurs, les scènes comportent plus de variables qui peuvent affecter les performances du filtre. Par exemple, l'ombre d'un arbre en mouvement ou les changements de luminosité dans le cadre sont détectés comme des mouvements par le modèle de filtre de mouvement. Tenez compte des conditions suivantes et de la meilleure façon d'y répondre.

Situation 1 :

Prenons l'exemple d'une vidéo montrant un trottoir sur lequel des piétons passent de temps en temps. Ces mouvements peuvent être aussi lents qu'une marche décontractée ou aussi rapides qu'un skateboard qui passe. Suivez les conseils suivants :

  • Définissez une durée minimale et une période d'analyse plus longues. La plage de vitesse des mouvements est plus large que dans le scénario en intérieur. Par conséquent, l'augmentation de la durée minimale de la fenêtre et de la période d'analyse permet au modèle de capturer l'intégralité de l'événement de mouvement.
  • 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 qui vous intéressent, comme les personnes et les vélos, augmentez la sensibilité au mouvement afin d'éviter la détection constante des objets en arrière-plan.

Situation 2 :

Prenons l'exemple d'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 » : une sensibilité plus faible permet au modèle de capturer différentes tailles d'objets en mouvement dans le cadre.
  • Définissez une période d'analyse et une durée minimale des événements plus courtes. Les voitures et autres véhicules dans la rue se déplacent à une vitesse nettement supérieure à celle des humains et des vélos. Définir une valeur plus courte pour ces paramètres tient compte du fait que la vitesse de déplacement est plus élevée et que les objets entrent et sortent rapidement du cadre.
  • Définissez un temps de retour au calme court. En raison de la vitesse de déplacement plus élevée, l'objet suivant peut entrer dans le cadre peu de temps après le premier objet. Par conséquent, un temps de recharge plus court est prévu à cet effet.

Limites

Étant donné que le filtre de mouvement dépend en grande partie du vecteur de mouvement dans chaque frame, il existe certaines limites à prendre en compte.

  1. Angle de la caméra : utilisez une caméra fixe, car une caméra en mouvement a constamment du mouvement dans son cadre.
  2. Taille de l'objet : essayez de cadrer les sujets de sorte que les objets clés apparaissent suffisamment grands dans le cadre pour obtenir les meilleures performances du filtre de mouvement.
  3. Éclairage : les changements d'éclairage, comme une variation soudaine de la luminosité dans le cadre ou des mouvements d'ombre intenses, peuvent dégrader les performances du modèle. Une plage dynamique faible qui entraîne une 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 les objets hors cadre qui créent des ombres. Si une grande partie du cadre pointe vers des objets en arrière-plan qui créent ces mouvements, cela peut avoir un impact sur les performances du modèle.