Leitfaden zur Belegungsanalyse

Modellkarte für die Analyse der Belegung in der Console

Mit dem Modell Belegungsanalyse können Sie Personen oder Fahrzeuge anhand bestimmter Eingaben zählen, die Sie in Videoframes hinzufügen. Im Vergleich zum Modell zur Personen-/Fahrzeugerkennung bietet das Modell zur Analyse der Belegung erweiterte Funktionen. Dazu gehören das Zählen von Aktivzonen, das Zählen von Linienüberquerungen und die Erkennung von Verweilzeiten.

  • Mit aktiven Zonen können Nutzer Personen oder Fahrzeuge in bestimmten benutzerdefinierten Zonen zählen.
  • Mit der Funktion „Linienüberquerung“ kann die Richtung gezählt werden, in der ein Objekt eine bestimmte Linie überquert.
  • Die Erkennung der Verweildauer basiert auf aktiven Zonen und ermöglicht es, zu erkennen, ob sich Objekte für eine Mindestzeit in einer Zone aufgehalten haben.

Das Modell akzeptiert einen Videostream als Eingabe und gibt einen Protokollpuffer mit der Anzahl der erkannten Personen und Fahrzeuge in jedem Frame aus. Das Modell wird mit sechs FPS ausgeführt.

Anwendungsfall: Verkehrsanalysen für Smart Cities

Im folgenden Video wird gezeigt, wie Sie mit Agent Platform Vision eine Anwendung zur Analyse der Belegung erstellen, entwickeln und bereitstellen können.

Diese Anwendung verwendet ein Modell, das Autos zählt, die Linien an Kreuzungen überqueren, die der Nutzer in derGoogle Cloud -Konsole angibt. Außerdem wird in der Anwendung ein Modell zum Unkenntlichmachen von Personen verwendet, um die Identität von Personen zu schützen, die in den Video-Feed-Quellen zu sehen sind.

Die Anwendung sendet analysierte Daten an das Media Warehouse von Agent Platform Vision zur Medienspeicherung und auch an BigQuery, um strukturierte Daten in einer Tabelle zu speichern. Im Warehouse können Sie gespeicherte Daten anhand von Kriterien aus den Modellen durchsuchen, z. B. anhand der Anzahl der Fahrzeuge oder Personen. Mit den Tabellendaten in BigQuery können Sie die Daten nach Analyseinformationen abfragen.

Modellausgabe

Die Personenerkennung und Fahrzeugerkennung zeigt die Anzahl der Personen und Fahrzeuge an, die im aktuell verarbeiteten Frame erkannt wurden. Die Art der Zählung basiert auf den vom Nutzer bereitgestellten Anmerkungen. Die rohen Erkennungs- und Tracking-Ergebnisse sind ebenfalls in der Ausgabe enthalten. Unten sehen Sie die Protocol Buffer-Definition der Prozessorausgabe. Die Frequenz des Ausgabestreams ist konstant: drei Frames pro Sekunde.

// The prediction result proto for Person/Vehicle Detection.
message OccupancyCountingPredictionResult {

 // Current timestamp.
 google.protobuf.Timestamp current_time = 1;

 // The entity info for annotations from the processor.
 message Entity {
   // Label id.
   int64 label_id = 1;
   // Human readable string of the label.
   string label_string = 2;
 }

 // Identified box contains location and the entity of the object.
 message IdentifiedBox {
   // An unique id for this box.
   int64 box_id = 1;
   // Bounding Box in the normalized coordinates.
   message NormalizedBoundingBox {
     // Min in x coordinate.
     float xmin = 1;
     // Min in y coordinate.
     float ymin = 2;
     // Width of the bounding box.
     float width = 3;
     // Height of the bounding box.
     float height = 4;
   }

   // Bounding Box in the normalized coordinates.
   NormalizedBoundingBox normalized_bounding_box = 2;

   // Confidence score associated with this box.
   float score = 3;

   // Entity of this box.
   Entity entity = 4;

   // A unique id to identify a track. It must be consistent across frames.
   // It only exists if tracking is enabled.
   int64 track_id = 5;
 }

 // A list of identified boxes.
 repeated IdentifiedBox identified_boxes = 2;

 // The statistics info for annotations from the processor.
 message Stats {
   // The object info and count for annotations from the processor.
   message ObjectCount {
     // Entity of this object.
     Entity entity = 1;
     // Count of the object.
     int32 count = 2;
   }

   // Counts of the full frame.
   repeated ObjectCount full_frame_count = 1;

   // Message for Crossing line count.
   message CrossingLineCount {
     // Line annotation from the user.
     StreamAnnotation annotation = 1;
     // The direction that follows the right hand rule.
     repeated ObjectCount positive_direction_counts = 2;
     // The direction that is opposite to the right hand rule.
     repeated ObjectCount negative_direction_counts = 3;
   }

   // Crossing line counts.
   repeated CrossingLineCount crossing_line_counts = 2;

   // Message for the active zone count.
   message ActiveZoneCount {
     // Active zone annotation from the user.
     StreamAnnotation annotation = 1;
     // Counts in the zone.
     repeated ObjectCount counts = 2;
   }

   // Active zone counts.
   repeated ActiveZoneCount active_zone_counts = 3;
 }

 // Detection statistics.
 Stats stats = 3;

 // The track info for annotations from the processor.
 message TrackInfo {
   // A unique id to identify a track. It must be consistent across frames.
   string track_id = 1;
   // Start timestamp of this track.
   google.protobuf.Timestamp start_time = 2;
 }

 // The dwell time info for annotations from the processor.
 message DwellTimeInfo {
   // A unique id to identify a track. It must be consistent across frames.
   string track_id = 1;
   // The unique id for the zone in which the object is dwelling/waiting.
   string zone_id = 2;
   // The beginning time when a dwelling object has been identified in a zone.
   google.protobuf.Timestamp dwell_start_time = 3;
   // The end time when a dwelling object has exited in a zone.
   google.protobuf.Timestamp dwell_end_time = 4;
 }

 // Track related information. All the tracks that are live at this timestamp.
 // It only exists if tracking is enabled.
 repeated TrackInfo track_info = 4;

 // Dwell time related information. All the tracks that are live in a given
 // zone with a start and end dwell time timestamp
 repeated DwellTimeInfo dwell_time_info = 5;
}

Best Practices und Einschränkungen

  • Vermeiden Sie ungewöhnliche Kameraperspektiven (z. B. eine Draufsicht), bei denen Personen und Fahrzeuge anders aussehen als in einer Standard- oder üblichen Ansicht. Die Erkennungsqualität kann durch ungewöhnliche Ansichten stark beeinträchtigt werden.
  • Personen und Fahrzeuge müssen vollständig oder größtenteils sichtbar sein. Die Erkennungsqualität kann durch teilweise Verdeckung durch andere Objekte beeinträchtigt werden.
  • Der Personen- und Fahrzeugdetektor hat eine minimal erkennbare Objektgröße. Diese Größe entspricht etwa 2% der Größe der Kameraansicht. Achte darauf, dass die erfassten Personen und Fahrzeuge nicht zu weit von der Kamera entfernt sind. Die sichtbaren Größen dieser Schlüsselobjekte müssen ausreichend groß sein.
  • Die Bereiche von Interesse müssen richtig beleuchtet sein.
  • Achten Sie darauf, dass das Kameraobjektiv der Videoquelle sauber ist.
  • Achten Sie darauf, dass Objekte (außer Personen oder Autos) keinen Teil des Sichtfelds der Kamera verdecken.
  • Die folgenden Faktoren können die Leistung des Modells beeinträchtigen. Berücksichtigen Sie beim Beschaffen von Daten die folgenden Faktoren:
    • Schlechte Lichtverhältnisse
    • Dichte und Verdeckung von Objekten
    • Ungewöhnliche oder weniger häufige Standpunkte.
    • Kleine Objektgrößen