Panduan analisis tingkat keterisian

kartu model analisis hunian di konsol

Model Analisis okupansi memungkinkan Anda menghitung orang atau kendaraan berdasarkan input tertentu yang Anda tambahkan dalam frame video. Dibandingkan dengan model Detektor Orang dan Kendaraan, fitur lanjutan disediakan dalam model Analisis Okupansi. Fitur ini adalah penghitungan zona aktif, penghitungan persimpangan garis, dan deteksi tempat tinggal.

  • Zona aktif memungkinkan pengguna menghitung orang atau kendaraan di zona tertentu yang ditentukan pengguna.
  • Persimpangan garis memberikan kemampuan untuk menghitung arah objek melintasi garis tertentu.
  • Deteksi waktu tinggal dibuat berdasarkan zona aktif dan memberikan kemampuan untuk mendeteksi apakah objek tetap berada di zona selama waktu minimum atau tidak.

Model ini menerima streaming video sebagai input dan menampilkan a buffer protokol dengan jumlah orang dan kendaraan yang terdeteksi di setiap frame. Model ini berjalan pada enam FPS.

Kasus penggunaan: Analisis traffic kota pintar

Video berikut menunjukkan cara menggunakan Gemini Enterprise Agent Platform Vision untuk membuat, membangun, dan men-deploy aplikasi analisis okupansi.

Aplikasi ini menggunakan model yang menghitung mobil yang melintasi garis di persimpangan yang ditentukan pengguna di Google Cloud konsol. Selain itu, aplikasi ini menggunakan model blur orang untuk melindungi identitas siapa pun yang muncul di sumber feed video.

Aplikasi ini mengirimkan data yang dianalisis ke Media Warehouse Gemini Enterprise Agent Platform Vision untuk penyimpanan media, dan juga ke BigQuery untuk menyimpan data terstruktur dalam tabel. Warehouse memungkinkan Anda menelusuri data yang disimpan berdasarkan kriteria dari model, seperti jumlah kendaraan atau orang. Data tabel di BigQuery memungkinkan Anda membuat kueri data untuk informasi analisis.

Output model

Deteksi Orang dan Kendaraan menampilkan jumlah orang dan kendaraan yang terdeteksi dalam frame yang diproses saat ini. Jenis penghitungan didasarkan pada input anotasi yang diberikan pengguna. Hasil deteksi dan pelacakan mentah juga ada dalam output. Di bawah ini adalah definisi buffer protokol dari output prosesor. Frekuensi streaming output konstan: tiga frame per detik.

// 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;
}

Praktik terbaik dan batasan

  • Hindari sudut pandang kamera yang tidak biasa (misalnya, tampilan dari atas ke bawah) yang membuat orang dan kendaraan terlihat berbeda dari tampilan standar atau umum. Kualitas deteksi dapat sangat terpengaruh oleh tampilan yang tidak biasa.
  • Pastikan orang dan kendaraan terlihat sepenuhnya atau sebagian besar. Kualitas deteksi dapat terpengaruh oleh oklusi sebagian oleh objek lain.
  • Detektor orang dan kendaraan memiliki ukuran objek minimum yang dapat dideteksi. Ukuran ini kira-kira 2% dari ukuran tampilan kamera. Pastikan orang dan kendaraan target tidak terlalu jauh dari kamera. Ukuran objek utama yang dapat dilihat harus cukup besar.
  • Area yang diminati harus memiliki pencahayaan yang memadai.
  • Pastikan lensa kamera sumber video bersih.
  • Pastikan entitas (selain orang atau mobil) tidak menghalangi bagian mana pun dari kolom tampilan kamera.
  • Faktor berikut dapat menurunkan performa model. Pertimbangkan faktor-faktor ini saat Anda mendapatkan data:
    • Kondisi pencahayaan yang buruk.
    • Kepadatan dan oklusi objek.
    • Sudut pandang yang tidak umum atau kurang umum.
    • Ukuran objek kecil.