Crowd Estimation
Estimasi jumlah orang dan kepadatan kerumunan berbasis density map — analitik NFV4-CE untuk area sangat padat.
Crowd Estimation (NFV4-CE) adalah modul analitik Visionaire yang memperkirakan jumlah orang dalam area pengawasan menggunakan pendekatan density map regression — bukan tracking individu. Model memproses setiap frame, menghasilkan peta kepadatan piksel, lalu mengintegrasikan nilai kepadatan di dalam setiap ROI untuk menghasilkan estimasi jumlah orang secara periodik.
Kapan menggunakan NFV4-CE versus People Analytics?
Gunakan People Analytics (NFV4-MPAA / NFV4-MPA2) jika Anda membutuhkan tracking per-individu, counting berbasis line-crossing, atau klasifikasi atribut demografis — dan jumlah orang dalam frame tidak melebihi sekitar 50 orang.
Gunakan Crowd Estimation (NFV4-CE) jika area Anda berpotensi sangat padat (konser, stasiun transit, alun-alun, tempat wisata, atau pasar) dan Anda membutuhkan estimasi kepadatan yang andal meski tracking individu tidak memungkinkan. Lihat People Analytics untuk perbandingan lengkap.
Apa yang Dilakukan
Kemampuan
- Estimasi jumlah orang per ROI — setiap ROI polygon yang Anda definisikan menghasilkan estimasi jumlah orang secara independen.
- Density map regression — model menghasilkan peta kepadatan piksel yang lebih akurat dari counting berbasis bounding box pada kerumunan padat karena tidak bergantung pada deteksi bounding box per orang yang saling tumpang tindih.
- Mode hibrida kepadatan rendah — pada kerumunan kecil (di bawah ambang batas internal), pipeline secara otomatis mengaktifkan deteksi tambahan berbasis person detection untuk meningkatkan akurasi.
- Event periodik — setiap interval (default 10 detik), pipeline menerbitkan event berisi estimasi rata-rata, nilai minimum, dan nilai maksimum selama interval tersebut.
- Visualisasi overlay — frame yang ditampilkan via MJPEG menampilkan titik kepadatan dan label estimasi per ROI secara real-time.
Yang TIDAK Dilakukan
- Tidak melakukan tracking individu — tidak ada
tracker_idper orang; gunakan People Analytics jika Anda memerlukan identitas atau rute individu. - Tidak melakukan counting line-crossing.
- Tidak menghasilkan atribut demografis (usia, gender, warna pakaian, dll.).
- Tidak mengenali identitas wajah — gunakan Face Recognition untuk itu.
Use Cases
Konser dan Event Publik
Pantau kepadatan penonton secara real-time untuk manajemen kapasitas venue dan keselamatan massa.
Stasiun dan Terminal Transit
Monitor kepadatan peron, hall, atau pintu masuk untuk optimasi alur penumpang dan deteksi overcrowding.
Tempat Wisata dan Landmark
Ukur kepadatan pengunjung di area terbuka atau tertutup untuk manajemen antrian dan pengalaman pengunjung.
Ibadah dan Kegiatan Keagamaan
Estimasi jumlah jamaah di masjid, gereja, atau area ibadah terbuka untuk keperluan keselamatan dan logistik.
Pasar dan Pusat Perbelanjaan
Pantau kepadatan pengunjung per zona untuk keperluan tata kelola kapasitas dan analitik bisnis.
Cara Kerja
Pipeline bekerja dalam dua tahap komplementer:
-
Density map regression (selalu aktif) — model utama memproses seluruh frame dan menghasilkan peta distribusi kepala orang dalam bentuk titik-titik kepadatan (bukan bounding box). Pendekatan ini tidak terganggu oleh occlusion parah karena mengestimasi probabilitas distribusi kepadatan, bukan mendeteksi setiap individu secara eksplisit.
-
Secondary person detection (aktif secara adaptif) — ketika estimasi kerumunan rendah (di bawah ambang batas internal ~10 orang), pipeline mengaktifkan deteksi orang berbasis bounding box sebagai pelengkap untuk meningkatkan akurasi pada kerumunan kecil. Deteksi ini dinonaktifkan secara otomatis ketika kerumunan sangat padat (lebih dari ~500 estimasi).
Setiap interval, rata-rata estimasi dari seluruh frame selama interval tersebut dihitung dan dipublikasikan sebagai Event bersama nilai minimum dan maksimum historis selama interval tersebut.
Persyaratan
Kamera
- Posisi elevated atau wide-angle — kamera harus mencakup seluruh area kerumunan yang ingin dipantau. Posisi tinggi (di atas kerumunan, misalnya dari atap atau tiang setinggi 5–10 meter) memberikan visibilitas terbaik.
- Sudut top-down atau semi-top-down lebih dianjurkan untuk Crowd Estimation dibandingkan untuk People Analytics, karena pendekatan density map tidak bergantung pada silhouette tubuh penuh.
- FOV lebar — gunakan lensa wide-angle jika area yang dipantau sangat besar.
- Resolusi minimal 720p — resolusi lebih tinggi meningkatkan akurasi pada area besar.
Lingkungan
- Pencahayaan minimal 100 lux untuk akurasi model yang optimal.
- Hindari kondisi backlit parah (cahaya matahari langsung dari belakang kerumunan ke lensa).
Dependensi
- Lisensi seat
NFV4-CEaktif pada deployment Visionaire. - GPU yang didukung: NVIDIA (T4, A2, A30, A100, L4, L40, Orin AGX) atau Intel Arc.
- Minimum RAM: 2 GB per instance pipeline.
- CPU: 3 core per instance pipeline.
Setting Up
Pasang Kamera di Posisi Elevated
Pastikan kamera mencakup seluruh area kerumunan yang ingin dipantau dari posisi elevated. Sudut pandang semi-top-down (45–80 derajat dari horizontal) memberikan keseimbangan antara cakupan area dan visibilitas kepala orang.
Daftarkan Stream
Daftarkan sumber video kamera sebagai Stream pada Node Visionaire:
POST /node/{node_num}/stream
Content-Type: application/json
Authorization: Basic <credentials>
{
"stream_url": "rtsp://camera-ip/stream",
"stream_id": "crowd-area-1"
}Spawn Pipeline NFV4-CE
Buat Pipeline Crowd Estimation pada Stream yang telah terdaftar:
POST /pipeline/{node_num}/{stream_id}/NFV4-CE
Content-Type: application/json
Authorization: Basic <credentials>
{
"areas": {
"Plaza Utama": [
{"x": 0.1, "y": 0.1},
{"x": 0.9, "y": 0.1},
{"x": 0.9, "y": 0.9},
{"x": 0.1, "y": 0.9}
]
},
"interval": 10
}Koordinat ROI menggunakan nilai relatif (0.0–1.0) terhadap dimensi frame.
Subscribe Event Channel
Berlangganan event melalui WebSocket untuk menerima estimasi secara real-time:
wss://{host}/event/{node_num}/{stream_id}/NFV4-CEAtau berlangganan di tingkat stream untuk menerima semua event dari Stream tersebut:
wss://{host}/event/{node_num}/{stream_id}Verifikasi dengan MJPEG Preview
Buka MJPEG stream untuk memverifikasi overlay visualisasi berjalan dengan benar — titik kepadatan dan label estimasi per ROI akan terlihat pada frame:
http://{host}/mjpeg/{node_num}/{stream_id}Konfigurasi
Parameter API
Berikut parameter yang dapat dikonfigurasi saat membuat atau memperbarui Pipeline:
| Parameter | Tipe | Default | Keterangan |
|---|---|---|---|
areas | object | — | ROI polygon per area. Key adalah nama area (string), value adalah array titik {x, y} dalam koordinat relatif (0.0–1.0). Wajib diisi. |
interval | integer | 10 | Interval dalam detik antara setiap event dump. Rentang valid: 1–99999. |
Contoh konfigurasi dengan beberapa ROI:
{
"areas": {
"Pintu Masuk": [
{"x": 0.0, "y": 0.0},
{"x": 0.4, "y": 0.0},
{"x": 0.4, "y": 1.0},
{"x": 0.0, "y": 1.0}
],
"Area Tengah": [
{"x": 0.4, "y": 0.0},
{"x": 1.0, "y": 0.0},
{"x": 1.0, "y": 1.0},
{"x": 0.4, "y": 1.0}
]
},
"interval": 30
}Setiap ROI akan menghasilkan Event terpisah pada setiap interval. Jika Anda mendefinisikan 3 ROI, setiap interval akan menerbitkan 3 event.
Output yang Dihasilkan
Field Utama
Setiap event yang diterbitkan oleh pipeline berisi field pipeline_data dengan struktur berikut:
| Field | Tipe | Keterangan |
|---|---|---|
area | string | Nama ROI area sesuai yang didefinisikan dalam konfigurasi areas. |
estimation | integer | Estimasi rata-rata jumlah orang dalam ROI selama interval terakhir. |
history_min | integer | Estimasi minimum yang tercatat selama interval terakhir. |
history_max | integer | Estimasi maksimum yang tercatat selama interval terakhir. |
interval | integer | Durasi interval dalam detik (nilai konfigurasi saat pipeline dibuat). |
Contoh Event
{
"analytic_id": "NFV4-CE",
"stream_id": "crowd-area-1",
"pipeline_data": {
"area": "Plaza Utama",
"estimation": 23,
"history_min": 18,
"history_max": 31,
"interval": 10
},
"timestamp": "2026-05-04T08:30:00Z"
}{
"analytic_id": "NFV4-CE",
"stream_id": "crowd-area-1",
"pipeline_data": {
"area": "Plaza Utama",
"estimation": 347,
"history_min": 290,
"history_max": 412,
"interval": 30
},
"timestamp": "2026-05-04T20:15:00Z"
}Best Practices
Penempatan Kamera
- Posisikan kamera setinggi mungkin di atas area kerumunan — idealnya 5–10 meter atau lebih.
- Sudut semi-top-down (60–80 derajat dari horizontal) memberikan cakupan area terbaik untuk density map.
- Pastikan tidak ada objek besar (pohon, tiang, atap) yang menghalangi FOV secara signifikan.
- Untuk area yang sangat luas, pertimbangkan beberapa kamera dengan ROI yang tumpang tindih sedikit sebagai redundansi.
Definisi ROI
- Batasi ROI pada area yang benar-benar ingin dipantau kepadatannya — ROI yang terlalu besar mencakup area kosong akan mengencerkan estimasi.
- Gunakan koordinat relatif (0.0–1.0) sehingga ROI tetap proporsional meski resolusi stream berubah.
- Beri nama ROI yang deskriptif (
"Pintu Masuk Utara","Area Panggung") agar mudah diidentifikasi pada event.
Tuning Interval
- Default
interval: 10cocok untuk monitoring real-time. - Naikkan ke
interval: 30atauinterval: 60untuk skenario analitik historis yang tidak memerlukan respons cepat — ini juga mengurangi volume event yang harus diproses aplikasi Anda. - Turunkan ke
interval: 5jika Anda memerlukan respons cepat untuk alert overcrowding (misalnya pada sistem keselamatan massa).
Threshold Overcrowding
Karena NFV4-CE tidak memiliki built-in alerting threshold, implementasikan logika alert di sisi aplikasi Anda:
# Contoh: alert jika estimasi melebihi batas kapasitas
KAPASITAS_MAKSIMAL = 500
if event["pipeline_data"]["estimation"] > KAPASITAS_MAKSIMAL:
kirim_alert(f"Overcrowding terdeteksi: {event['pipeline_data']['estimation']} orang")Limitations
- Tidak ada tracker_id / identitas individu — NFV4-CE hanya menghasilkan angka estimasi agregat per ROI. Jika Anda memerlukan data per-individu, gunakan People Analytics.
- Estimasi statistik, bukan hitungan exact — pipeline menggunakan density map regression yang menghasilkan estimasi probabilistik. Akurasi biasanya ±10–20% tergantung kondisi.
- Akurasi turun pada pencahayaan sangat rendah — di bawah 50 lux, akurasi model menurun signifikan.
- Sangat bergantung pada posisi kamera — model dilatih untuk sudut elevated; kamera setinggi bahu atau horizontal akan menghasilkan estimasi yang tidak akurat.
- Objek non-manusia — bayangan besar, objek berwarna gelap, atau pola lantai tertentu dapat memengaruhi density map.
- Frame rate pipeline rendah — pipeline berjalan pada 1 FPS untuk efisiensi komputasi; ini cukup untuk estimasi kepadatan tetapi tidak untuk analitik gerakan cepat.
Modul Terkait
People Analytics
Tracking individu, line-crossing counting, dwelling, dan atribut demografis untuk kerumunan kecil hingga sedang (NFV4-MPAA / NFV4-MPA2).
Face Recognition
Deteksi dan pengenalan wajah real-time dengan database identitas (NFV4-FR, NFV4-FRA, NFV4-LFR).
Snapshot Detection
Deteksi event berbasis snapshot — kebakaran, asap, kerumunan berpotensi konflik, dan lainnya (NFV4D-*).
API Reference — Vehicle Analytics
Referensi endpoint REST API untuk pipeline Vehicle Analytics (MVA/MVAA) — spawn, status, update konfigurasi, hapus, MJPEG stream, dan snapshot.
API Reference — Crowd Estimation
Endpoint REST API untuk membuat, mengelola, dan memantau pipeline Crowd Estimation (NFV4-CE).