Persyaratan
Spesifikasi kamera, panduan penempatan kamera untuk estimasi kepadatan, dan dependensi lisensi/GPU Crowd Estimation.
Crowd Estimation memproses setiap frame melalui dua model yang bekerja pada resolusi yang jauh lebih kecil dari resolusi kamera — 768×384 untuk model crowd counting utama, dan 512×352 untuk model deteksi orang pelengkap. Artinya kualitas estimasi ditentukan oleh cakupan dan sudut kamera, bukan oleh resolusi mentah stream. Halaman ini menjelaskan spesifikasi minimum dan cara menempatkan kamera agar hasil estimasi tetap dapat diandalkan.
Spesifikasi Kamera
| Persyaratan | Minimum | Rekomendasi |
|---|---|---|
| Resolusi | 1080p (1920×1080) | 1080p sudah cukup — kedua model tetap memproses frame yang di-resize ke 768×384 dan 512×352, jadi 4K tidak memberi keuntungan akurasi. Investasikan pada lensa dan sensor, bukan resolusi. |
| Frame rate stream | Stabil, tanpa drop berkepanjangan | 10–15 fps agar live view (/visual/...) tetap mulus, meski pipeline sendiri hanya mengambil 1 frame per detik |
| Lensa | Fixed, sesuai cakupan area yang dipantau | Wide-angle atau varifocal lebar agar satu kamera dapat mencakup seluruh area kerumunan tanpa banyak blind spot |
| FOV | Mencakup seluruh area yang ingin diestimasi | Cakupan disesuaikan dengan ROI — hindari FOV jauh lebih luas dari area yang benar-benar dipantau |
| Pencahayaan | Cukup terang, tanpa siluet berat | Merata di seluruh area; hindari sumber cahaya langsung ke arah lensa |
Karena frame di-resize ke 768×384 (model utama) dan 512×352 (model pelengkap) sebelum diproses, memperbesar cakupan FOV kamera membuat setiap orang menempati lebih sedikit pixel setelah resize. Crowd Estimation tidak memiliki parameter ukuran minimum objek seperti fr_min_face_size pada Face Recognition — jika FOV terlalu luas untuk kepadatan yang dipantau, estimasi menjadi kurang stabil tanpa ada mekanisme filter yang bisa Anda tuning. Batasi FOV/ROI senyaman mungkin pada area yang relevan.
Penempatan Kamera
Sudut pemasangan: elevated overview, bukan top-down murni
Model deteksi orang pelengkap (person_detection, aktif saat kerumunan renggang) mengasumsikan bounding box tubuh yang masih terlihat utuh — bukan hanya bagian atas kepala. Kode fit_bbox_to_head mengonversi bounding box orang menjadi area kepala dengan mengambil separuh lebar dan seperempat tinggi bounding box tersebut; heuristik ini hanya valid jika siluet tubuh (bukan cuma ubun-ubun) terlihat oleh kamera.
Karena itu:
- Gunakan sudut elevated/overview — kamera dipasang tinggi dan menunduk ke arah kerumunan — bukan sudut bird's-eye langsung ke bawah. Sudut bird's-eye murni membuat tubuh orang tampak sebagai lingkaran kecil di sekitar kepala, sehingga bounding box deteksi orang tidak proporsional dan estimasi pada kondisi renggang (saat model pelengkap ini yang dominan) menjadi kurang akurat.
- Model crowd counting utama tetap dapat bekerja pada berbagai sudut elevated karena mengeluarkan titik kepadatan, bukan bounding box — tetapi sudut yang sama (elevated overview) juga meminimalkan occlusion antar orang pada kerumunan padat.
Cakupan vs ukuran orang di frame
- Tentukan dulu area yang benar-benar perlu diestimasi kepadatannya, baru pilih kamera/lensa yang cakupannya sesuai — jangan sebaliknya (memasang kamera overview seadanya lalu memotong ROI belakangan). ROI yang jauh lebih kecil dari FOV kamera membuang resolusi efektif yang tersedia untuk area tersebut setelah frame di-resize ke 768×384/512×352.
- Untuk area yang sangat luas (lapangan, alun-alun besar), pertimbangkan beberapa kamera dengan ROI berbeda per kamera dan pipeline terpisah per kamera, daripada memaksakan satu kamera mencakup segalanya.
Pencahayaan
- Usahakan pencahayaan merata di seluruh area yang dipantau. Tidak ada mekanisme koreksi cahaya khusus (semacam WDR level) di dalam pipeline ini — kualitas gambar input sepenuhnya bergantung pada kamera.
- Hindari kondisi backlit berat (sumber cahaya kuat tepat di belakang kerumunan menghadap lensa) karena membuat siluet orang sulit dibedakan dari latar.
Yang perlu dihindari
- Sudut bird's-eye langsung ke bawah subjek (lihat penjelasan di atas).
- FOV yang jauh lebih luas dari ROI yang sebenarnya dipantau — mengurangi resolusi efektif per orang tanpa manfaat.
- Objek statis besar yang menutupi sebagian ROI (tenda, kanopi, pilar) — area yang tertutup tidak dapat dihitung dan dapat menyebabkan estimasi yang konsisten lebih rendah dari kondisi sebenarnya.
- Kamera fisheye/PTZ yang ikut dipakai untuk keperluan lain — pergerakan/distorsi PTZ mengubah koordinat ROI relatif yang sudah dikonfigurasi.
Dependensi
| Komponen | Keterangan |
|---|---|
| Lisensi | Lisensi seat NFV4-CE aktif pada deployment Visionaire. |
| GPU | NVIDIA (Default, A100, A2, A30, T4, Orin AGX 32GB, L4, L40) atau Intel Arc — daftar tipe GPU yang memiliki alokasi fraksi resource terdaftar untuk pipeline ini. |
| Resource orkestrasi pipeline | ±3 CPU, 2000 MB RAM per instance pipeline (proses utama yang menggambar overlay dan mengagregasi statistik). |
| Resource model crowd counting (Service 0) | ±2 CPU, 2000 MB RAM, 2 unit GPU, 2000 MB GPU RAM. |
Resource model deteksi orang pelengkap (Service 1, person_detection) | ±2 CPU, 2000 MB RAM, 2 unit GPU, 2000 MB GPU RAM — dialokasikan meskipun model ini tidak selalu aktif memproses. |
Total kebutuhan resource per pipeline adalah gabungan ketiga komponen di atas, karena kedua service (crowd counting dan deteksi orang) selalu teregistrasi bersama pipeline meskipun salah satunya bisa dalam keadaan idle secara logis.
Setelah persyaratan terpenuhi, buat pipeline sesuai API Reference — Manajemen Pipeline dengan parameter dari Konfigurasi.