Le modèle Données analytiques sur l'occupation vous permet de compter les personnes ou les véhicules à partir des entrées spécifiques que vous ajoutez dans les images vidéo. Par rapport au modèle de détecteur de véhicules et de personnes, le modèle d'analyse de l'occupation fournit des fonctionnalités avancées. Il s'agit du comptage des zones actives, du comptage des franchissements de ligne et de la détection de présence.
- Les zones actives permettent aux utilisateurs de compter les personnes ou les véhicules dans des zones spécifiques qu'ils ont définies.
- Le franchissement de ligne permet de compter le nombre de fois qu'un objet franchit une ligne donnée dans une direction spécifique.
- La détection du temps passé s'appuie sur les zones actives et permet de détecter si des objets sont restés dans une zone pendant une durée minimale.
Le modèle accepte un flux vidéo en entrée et génère un tampon de protocole avec le nombre de personnes et de véhicules détectés dans chaque frame. Le modèle s'exécute à six FPS.
Cas d'utilisation : analyse du trafic dans une ville intelligente
La vidéo suivante montre comment utiliser Gemini Enterprise Agent Platform Vision pour créer, développer et déployer une application d'analyse de l'occupation.
Cette application utilise un modèle qui compte les voitures qui traversent les lignes des intersections que l'utilisateur spécifie dans la consoleGoogle Cloud . De plus, l'application utilise un modèle de floutage des personnes pour protéger l'identité de toute personne apparaissant dans les sources du flux vidéo.
L'application envoie les données analysées à l'entrepôt de contenus multimédias de Gemini Enterprise Agent Platform Vision pour le stockage des contenus multimédias, ainsi qu'à BigQuery pour stocker les données structurées dans un tableau. L'entrepôt vous permet de rechercher des données stockées en fonction de critères issus des modèles, tels que le nombre de véhicules ou de personnes. Les données de table dans BigQuery vous permettent d'interroger les données pour obtenir des informations analytiques.
Sortie du modèle
La détection de personnes et de véhicules indique le nombre de personnes et de véhicules détectés dans le frame traité actuel. Le type de décompte est basé sur les annotations fournies par l'utilisateur. Les résultats bruts de la détection et du suivi sont également inclus dans la sortie. Vous trouverez ci-dessous la définition du tampon de protocole de la sortie du processeur. La fréquence du flux de sortie est constante : trois images par seconde.
// 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;
}Bonnes pratiques et limites
- Évitez les points de vue inhabituels (par exemple, une vue plongeante) où les personnes et les véhicules apparaissent différemment d'une vue standard ou courante. La qualité de la détection peut être fortement affectée par des vues inhabituelles.
- Assurez-vous que les personnes et les véhicules sont entièrement ou presque entièrement visibles. La qualité de la détection peut être affectée par une occlusion partielle par d'autres objets.
- Le détecteur de personnes et de véhicules a une taille d'objet détectable minimale. Cette taille représente environ 2% de la taille de la vue de la caméra. Assurez-vous que les personnes et les véhicules ciblés ne sont pas trop éloignés de la caméra. La taille visible de ces objets clés doit être suffisamment grande.
- Les zones d'intérêt doivent être correctement éclairées.
- Assurez-vous que l'objectif de la caméra de la source vidéo est propre.
- Assurez-vous que les entités (autres que les personnes ou les voitures) n'obstruent aucune partie du champ de vision de la caméra.
- Les facteurs suivants peuvent dégrader les performances du modèle. Tenez compte des facteurs suivants lorsque vous recherchez des données :
- Les conditions d'éclairage sont mauvaises.
- Encombrement et occlusion d'objets.
- Points de vue peu communs ou moins courants.
- Petites tailles d'objets.