Leitfaden zum Filtern von Bewegungen

Mit dem Bewegungsfiltermodell können Sie die Berechnungszeit verkürzen, indem Sie lange Videoabschnitte in kleinere Segmente aufteilen, die ein Motion-Event enthalten. Mit diesem Modell können Sie die Bewegungsempfindlichkeit, die Mindestlänge des Ereignisses, das Lookback-Window, und die Abkühlphase festlegen, um die Ausgaben der Bewegungsereignisse an Ihren Anwendungsfall anzupassen.

Modellparameter

Das Bewegungsfiltermodell hat vier Steuerungsparameter, mit denen Sie die Ereignissegmente und die Art und Weise anpassen können, wie das Modell sie zurückgibt.

Parameter Beschreibung Flag Standardwert Verfügbare Werte
Mindestlänge des Ereignisses Die Mindestlänge in Sekunden, die ein Motion-Event erfasst wird, nachdem es beendet wurde. --min-event-length INT 10 Sekunden 1–3600
Empfindlichkeit der Bewegungserkennung Die Empfindlichkeit der Filterung von Motion-Events durch das Modell. Bei hoher Empfindlichkeit reagiert das Modell empfindlicher auf Bewegungen und führt eine aggressivere Bewegungs filterung durch, wodurch mehr Bewegungen erkannt werden. --motion-sensitivity STRING "medium" "high", "medium" oder "low"
Lookback-Window Die Menge an Videoinhalten (in Sekunden), die der Dienst vor einem erkannten Motion-Event erfasst. --lookback-length INT 3 Sekunden 0–300
Abkühlphase Nach dem Ende eines Bewegungsereignisses tritt eine Abkühlphase mit der angegebenen Dauer ein. Während der Abkühlphase erfasst das Modell keine Bewegungsereignisse. --cooldown-length INT 300 Sekunden 0–3600

Bewegungsempfindlichkeit

Beim Ausführen des Bewegungsfilters spielt die Bewegungsempfindlichkeit die wichtigste Rolle bei der Bestimmung der Anzahl der Videosegmente, die das Modell aus einem Videostream erstellt.

Je höher die Empfindlichkeit der Bewegungserkennung ist, desto empfindlicher reagiert das Modell auf Rauschen und kleinere Bewegungen. Diese höhere Empfindlichkeitseinstellung wird für Umgebungen empfohlen, in denen die Beleuchtung stabil ist und kleinere bewegte Objekte zu sehen sind (z. B. Ansichten von Personen aus der Ferne).

Umgekehrt ist eine niedrige Empfindlichkeit am wenigsten empfindlich gegenüber Beleuchtungsstörungen und kleinen Bewegungen. Diese Einstellung eignet sich gut für Situationen mit mehr Beleuchtungsstörungen, z. B. in einer Außenumgebung. Da diese Einstellung die aggressivste Filteroption ist, werden Bewegungen von kleinen Objekten ignoriert.

Mindestlänge des Ereignisses

Die Mindestlänge des Ereignisses ist die Dauer des Videos, das das Modell erfasst, nachdem es keine Bewegung mehr im Frame erkannt hat. Der Standardwert beträgt 10 Sekunden, Sie können aber eine Zeit zwischen 1 und 3.600 Sekunden angeben. Wenn während der Mindestlänge des Ereignisses eine neue Bewegung erkannt wird, wird sie dem aktuellen Videosegment für die Dauer des neu erkannten Motion-Events plus einem neuen Countdown der Mindestlänge des Ereignisses hinzugefügt.

Diagramm zur Mindestlänge von Ereignissen

Nehmen wir ein Video einer Kreuzung, auf der sich zwei Autos bewegen. Das erste Auto fährt in den ersten drei Sekunden vorbei und das zweite Auto kommt zwei Sekunden später. Wenn Sie die Mindestlänge des Ereignisses auf eine Sekunde festlegen, gibt es zwei Videosegmente mit Bewegung. Ein Videosegment enthält das erste Auto, das andere das zweite. Wenn Sie das Motion-Event jedoch auf drei Sekunden festlegen, gibt es nur ein resultierendes Videosegment mit Bewegung. Das zweite Auto erscheint erst zwei Sekunden nach dem ersten Auto im Frame.

Wenn Sie die Mindestlänge des Ereignisses festlegen, sollten Sie überlegen, wie oft Bewegungsereignisse in Ihrem Video auftreten und wie viele Videosegmente Sie speichern möchten. Wenn Bewegungsereignisse häufig auftreten, Sie aber die meisten Bewegungsereignisse in separaten Videosegmenten speichern möchten, legen Sie die Mindestlänge des Ereignisses auf einen kürzeren Zeitraum fest. Wenn Bewegungsereignisse selten auftreten, Sie aber Ereignisse gruppieren möchten, legen Sie die Mindestlänge des Ereignisses auf einen längeren Zeitraum fest, um mehrere Ereignisse im selben Videosegment zu erfassen.

Lookback-Window

Das Lookback-Window ist die Zeit kurz vor dem Moment, in dem ein Motion-Event erkannt wird. Dieses Fenster ist nützlich, wenn Sie sehen möchten, was in den Sekunden vor dem Erkennen eines Motion-Events durch das Modell im Frame passiert. Der Standardwert für das Lookback-Window beträgt drei Sekunden, Sie können aber einen Wert zwischen null und 300 Sekunden angeben.

Mit einem Lookback-Window können Sie sehen, woher sich bewegende Objekte stammen. Sie können auch ein Lookback-Window verwenden, um zu sehen, was in den Sekunden vor dem Motion-Event im Frame war. Ein Lookback-Window ist in Situationen hilfreich, in denen sich kleine bewegte Objekte im Frame befinden, die nicht als Motion-Event erkannt werden. Die kleinen bewegten Objekte im Frame könnten jedoch die größeren Bewegungsereignisse verursacht haben, die erkannt wurden.

Abkühlphase

Eine Abkühlphase ist ein Zeitraum, der nach der Erfassung eines Bewegungsereignisses und einer Mindestlänge des Ereignisses eintritt. Während der Abkühlphase löst die erkannte Bewegung den Bewegungsfilter nicht aus. Der Zeitraum liegt zwischen null und 3.600 Sekunden. Der Standardwert ist 300 Sekunden.

Die Wartefrist soll Nutzern helfen, Rechenkosten zu sparen. Wenn Bewegungen in einem Frame erwartet werden und Sie nur wissen möchten, wann die Bewegung stattfindet, aber nicht, was danach passiert, ist eine Abkühlphase eine nützliche Einstellung.

Modell verwenden

Sie können das Bewegungsfiltermodell mit dem Gemini Enterprise Agent Platform Vision SDK verwenden.

Verwenden Sie das Befehlszeilentool vaictl, um das Modell zu aktivieren. Geben Sie dazu applying encoded-motion-filter an und übergeben Sie Werte, um Steuerungsparameter festzulegen.

Gemini Enterprise Agent Platform Vision SDK

Wenn Sie eine Anfrage mit dem Bewegungsfiltermodell senden möchten, müssen Sie das Gemini Enterprise Agent Platform Vision SDK installieren.

Ersetzen Sie die folgenden Variablen:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • LOCATION_ID: Ihre Standort-ID Beispiel: us-central1. Unterstützte Regionen. Weitere Informationen.
  • LOCAL_FILE.EXT: Der Dateiname einer lokalen Videodatei. Beispiel: my-video.mp4.
  • STREAM_ID: Die Stream-ID, die Sie im Cluster erstellt haben. Beispiel: input-stream.
  • --motion-sensitivity: Die Empfindlichkeit der Filterung von Motion-Events. Optionen sind high, medium, low.
  • --min-event-length: Die Mindestdauer eines Bewegungsereignisses in Sekunden. Der Standardwert ist 10 Sekunden. Verfügbare Werte: 13600.
  • --lookback-length: Die Dauer des Lookback-Windows vor dem Start des Bewegungsereignisses in Sekunden. Der Standardwert ist 3 Sekunden. Verfügbare Werte: 0-300.
  • --cooldown-length: Die Wartefrist nach einem Motion-Event in Sekunden. Der Standardwert ist 300 Sekunden (5 Minuten). Verfügbare Werte: 0-3600.
  • --continuous-mode: Gibt an, ob im kontinuierlichen Modus gesendet werden soll. Der Standardwert ist true.
  • OUTPUT_DIRECTORY: Das Verzeichnis, in dem Sie die Ausgabe Videosegment-MP4-Dateien speichern möchten.

Befehlsinformationen ansehen

Mit dem folgenden Befehl können Sie weitere Informationen zum Befehl und seinen optionalen Parametern aufrufen:

vaictl send video-file applying motion-filter -h

Inhalte lokaler Dateien mit dem Bewegungsfiltermodell filtern

Mit diesem Befehl werden nur Videoabschnitte gesendet, in denen das Modell eine Bewegung erkennt.

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

Inhalte lokaler Dateien filtern und Ausgabe mit dem Bewegungsfiltermodell speichern

Mit diesem Befehl wird das Flag --continuous_mode verwendet, um für jedes Bewegungssegment separate Videodateien auszugeben.

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 Practices

Der Bewegungsfilter ist als leichtgewichtiges Modell konzipiert, um die Berechnungszeit beim Decodieren codierter Videos während der Übertragung zu verkürzen. Um den Filter optimal zu nutzen, platzieren Sie eine statische Kamera direkt auf den Objekten von Interesse. Vermeiden Sie es, unwichtige bewegte Objekte in den Hintergrund des Frames einzubeziehen. In einem Frame mit Hintergrundobjekten wie sich bewegenden Bäumen, konstantem Autoverkehr oder Schatten von bewegten Objekten wird beispielsweise die Bewegung dieser unwichtigen Objekte erkannt.

Platzieren Sie Objekte von Interesse im Vordergrund und reduzieren Sie die Anzahl der Hintergrundobjekte mit konstanter Bewegung so weit wie möglich. Zusammenfassung:

  • Verwenden Sie eine statische Kamera.
  • Vermeiden Sie einen sich ständig bewegenden Hintergrund.
  • Minimale Bewegungen werden nicht erkannt.
  • Achten Sie darauf, dass die Objekte ausreichend groß sind.

Best Practices für Innenbereiche

Für Innenbereiche mit konstanter Beleuchtung und minimaler Hintergrundbewegung sollten Sie die folgenden Best Practices für Innenbereiche beachten:

  • Erhöhen Sie die Empfindlichkeit. Objekte im Frame sind in der Regel größer und es gibt auch weniger Rauschen im Frame.
  • Verwenden Sie kleinere Lookback-Windows und eine kürzere Ereignislänge. Bewegungen in Innenbereichen sind langsamer und es gibt nur wenig Platz für Bewegungen.

Wenn Sie diese Best Practices für Innenbereiche befolgen, kann der Bewegungsfilter die Objektbewegung in kürzester Zeit aufzeichnen.

Best Practices für Außenbereiche

In Außenbereichen gibt es mehr Variablen in Außenszenen, die sich auf die Leistung des Filters auswirken können. So werden beispielsweise der Schatten eines sich bewegenden Baums oder Änderungen des Sonnenlichts im Frame als Bewegung für das Bewegungsfiltermodell erkannt. Berücksichtigen Sie die folgenden Bedingungen und die beste Reaktion darauf.

Situation 1 :

Nehmen wir ein Video auf, in dem ein Bürgersteig zu sehen ist, an dem gelegentlich Fußgänger vorbeigehen. Diese Bewegungen können so langsam wie ein normaler Spaziergang oder so schnell wie ein vorbeifahrendes Skateboard sein. Beachten Sie die folgenden Hinweise:

  • Legen Sie eine längere Mindestfensterlänge und ein längeres Lookback-Window fest. Die Geschwindigkeit der Bewegungen hat einen größeren Bereich als im Innenbereich. Wenn Sie die Mindestfensterlänge und das Lookback-Window erhöhen, kann das Modell das gesamte Motion-Event erfassen.
  • Legen Sie eine höhere Bewegungsempfindlichkeit fest. In einer Außenumgebung gibt es mehr natürlich bewegte Objekte wie sich bewegende Bäume und Schatten. Wenn Sie sich nur auf Objekte von Interesse wie Menschen und Fahrräder konzentrieren möchten, legen Sie eine höhere Bewegungsempfindlichkeit fest, um die ständige Erkennung von Hintergrundobjekten zu vermeiden.

Situation 2 :

Nehmen wir ein anderes Video auf, das sich auf eine Straße konzentriert, auf der ständig Autos vorbeifahren und gelegentlich Fußgänger vorbeigehen. Beachten Sie die folgenden Hinweise:

  • Legen Sie die Empfindlichkeit auf „Mittel“ oder „Niedrig“ fest: Mit einer niedrigeren Empfindlichkeitseinstellung kann das Modell eine Vielzahl von bewegten Objekten unterschiedlicher Größe im Frame erfassen.
  • Legen Sie für das Lookback-Window und die Mindestlänge des Ereignisses einen kürzeren Wert fest. Autos und andere Fahrzeuge auf der Straße bewegen sich deutlich schneller als Menschen und Fahrräder. Wenn Sie für diese Parameter einen kürzeren Wert festlegen, wird berücksichtigt, dass die Bewegungsgeschwindigkeit höher ist und Objekte schnell in den Frame eintreten und ihn wieder verlassen.
  • Legen Sie eine kurze Abkühlphase fest. Aufgrund der höheren Bewegungsgeschwindigkeit kann das nächste Objekt kurz nach dem ersten Objekt in den Frame eintreten. Eine kürzere Abkühlphase berücksichtigt dies.

Beschränkungen

Da der Bewegungsfilter weitgehend vom Bewegungsvektor in jedem Frame abhängt, sind bestimmte Einschränkungen zu beachten.

  1. Kamerawinkel: Verwenden Sie eine statische Kamera, da eine bewegte Kamera ständig Bewegungen im Frame hat.
  2. Objektgröße: Versuchen Sie, Motive so zu rahmen, dass wichtige Objekte groß genug im Frame erscheinen, um die beste Leistung des Bewegungsfilters zu erzielen.
  3. Beleuchtung: Änderungen der Beleuchtung, z. B. eine plötzliche Änderung der Helligkeit im Frame oder intensive Schattenbewegungen, können die Leistung des Modells beeinträchtigen. Ein niedriger Dynamikbereich führt zu einem ähnlichen Helligkeitston für das gesamte Video, was sich auf die Interpretation von Bewegungen durch das Modell auswirkt und die Leistung des Modells beeinträchtigt.
  4. Kamerapositionierung: Das Modell ist so konzipiert, dass es Bewegungen im Frame erkennt. Dazu gehören Hintergrundbewegungen wie der Wind, der einen Baum bewegt, oder Objekte außerhalb des Frames, die Schatten erzeugen. Wenn ein großer Teil des Frames auf Hintergrundobjekte gerichtet ist, die diese Bewegungen erzeugen, kann sich dies auf die Leistung des Modells auswirken.