Konfigurasi
Referensi lengkap parameter pipeline People Analytics untuk varian Multi-Logics (MPA/MPAA/MPA2) dan varian Counting/Dwelling/Density sederhana (PC/PCA/HC/PD/HD).
Parameter di halaman ini dikirim sebagai body JSON saat membuat pipeline (POST /pipeline/{node_num}/{stream_id}/{analytic_id}) atau mengubahnya (PUT pada endpoint yang sama). Bentuk body berbeda antara varian Multi-Logics (NFV4-MPA, NFV4-MPAA, NFV4-MPA2) dan varian sederhana (NFV4-PC, NFV4-PCA, NFV4-HC, NFV4-PD, NFV4-HD) — lihat Varian & Cara Kerja untuk perbedaannya.
Prioritas konfigurasi: parameter API (tertinggi) → environment variable (hanya berlaku untuk sedikit parameter, lihat Environment Variable) → nilai default bawaan struct pipeline.
Multi-Logics (NFV4-MPA, NFV4-MPAA, NFV4-MPA2)
Body pipeline berisi object_confidence_threshold (opsional, level atas) dan array sub_analytics — setiap elemen mewajibkan name dan is_active. Aktifkan sub-analytic dengan is_active: true dan area yang sesuai; sub-analytic yang tidak Anda kirim di array tidak akan diproses sama sekali.
Parameter Umum per Sub-Analytic
Field berikut berlaku pada counting, roi_counting, dwelling, dan density:
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
object_confidence_threshold | Confidence minimum deteksi orang untuk sub-analytic ini (override nilai level atas) | 0.53 | Turunkan ke 0.4 jika banyak orang terlewat; naikkan ke 0.7 untuk mengurangi false positive |
minimum_tracking_height | Tinggi minimum bounding box sebagai rasio terhadap tinggi frame | 0.05 | Turunkan jika orang terlihat kecil di frame (kamera jauh) |
maximum_tracking_objects | Jumlah maksimum objek yang dilacak sekaligus | 30 | Naikkan ke 50–100 untuk area sangat ramai |
enable_group_tracking | Aktifkan pelacakan kelompok/kerumunan | false | Aktifkan di area padat agar tracker lebih stabil saat orang saling menutupi |
enable_visual_label | Tampilkan label kelas pada overlay visual | false | Aktifkan untuk debugging visual |
counting (garis virtual)
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
dumping_sampling_time | Interval agregasi event saat objek melintasi garis (ms) | 500 | Naikkan untuk mengurangi frekuensi event pada traffic padat |
dump_ignore_iou_threshold | Threshold IoU untuk membuang salah satu dari dua kandidat dump yang tumpang tindih | 0.8 | Naikkan ke 0.9 jika masih terjadi double count |
areas | Array garis virtual — lihat format areas (garis) | Satu garis default di tengah frame (y=0.5, horizontal, direction: "both") | Selalu kirim eksplisit untuk produksi |
roi_counting (crossing tepi polygon)
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
dump_ignore_iou_threshold | Threshold IoU untuk deduplication crossing | 0.8 | Naikkan ke 0.9 jika masih terjadi double count |
areas | Array polygon ROI — tepinya otomatis dihitung sebagai garis crossing dua arah. Lihat format areas (polygon) | ROI penuh satu frame | Selalu kirim eksplisit |
dumping_sampling_time tidak berlaku pada roi_counting
Kode pemrosesan roi_counting memeriksa kunci dumpling_sampling_time (typo — huruf "l" tambahan) alih-alih dumping_sampling_time, sehingga nilai yang Anda kirim di dumping_sampling_time untuk roi_counting tidak pernah terbaca. Interval agregasi efektifnya selalu 2000 ms (default internal), terlepas dari apa pun yang Anda kirim.
dwelling (durasi tinggal di ROI)
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
dwelling_treshold_alert_sec | Ambang durasi (detik) untuk memicu event alert lebih awal, walau objek masih di dalam ROI (0 = nonaktif) | 0 | Set 30–120 untuk alert loitering di area terbatas |
minimum_dwelling_sec | Durasi minimum agar event dihasilkan | 2 (env DWELLING_MINIMUM_DWELLING_SEC) | Naikkan untuk memfilter orang yang hanya lewat sebentar |
idle_time_sec | Jeda maksimum setelah objek meninggalkan ROI sebelum dianggap tidak aktif dan di-dump | 1 | Naikkan ke 3–5 agar gerakan kecil di tepi ROI tidak mereset/memutus sesi dwelling |
object_intersect_threshold | Rasio interseksi minimum antar deteksi untuk dianggap objek yang sama | 0.85 | Turunkan ke 0.7 jika objek di tepi ROI sering gagal diasosiasikan |
minimum_object_area_size | Luas minimum bounding box (piksel²) agar event di-dump | 2000 | Turunkan jika orang jauh dari kamera |
sharpness_filter_threshold | Kekuatan filter ketajaman gambar dump (skala 0–10) | 0 untuk varian people (lihat catatan di bawah) | Naikkan ke 3–6 jika hasil dump sering buram |
only_dump_exit | Hanya kirim event saat objek keluar ROI (bukan saat threshold alert/timeout) | false (env DWELLING_ONLY_DUMP_EXIT) | Aktifkan jika Anda hanya butuh satu event ringkasan per kunjungan |
areas | Array polygon ROI. Lihat format areas (polygon) | ROI penuh satu frame | Selalu kirim eksplisit |
sharpness_filter_threshold dipetakan ke skor ketajaman mentah lewat tabel internal (0→0, 5→600, 10→5000). Nilai default 0 berarti tidak ada dump dwelling yang ditolak karena buram pada varian People Analytics.
density (estimasi periodik)
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
interval | Interval pelaporan kepadatan (detik) | 10 | Naikkan ke 60 untuk occupancy monitoring; turunkan untuk respons lebih cepat |
inside | Hitung orang di dalam ROI (true) atau di luar ROI (false) | true | Ubah ke false untuk menghitung orang di luar zona tertentu |
dump_attributes | Sertakan ringkasan atribut per objek dalam event (hanya berlaku jika with_attribute — NFV4-MPAA/NFV4-MPA2) | true | Nonaktifkan untuk hemat bandwidth pada NFV4-MPAA/NFV4-MPA2 |
areas | Array polygon ROI. Lihat format areas (polygon) | ROI penuh satu frame | Selalu kirim eksplisit |
Format areas (garis)
Dipakai oleh sub-analytic counting. Setiap elemen array areas:
{
"name": "Main Entrance",
"points": [{ "x": 0.2, "y": 0.5 }, { "x": 0.8, "y": 0.5 }],
"direction": "both",
"bidirection": true
}| Field | Fungsi | Default |
|---|---|---|
name | Nama tampilan garis, muncul di pipeline_data.area_name | wajib |
points | Tepat dua titik {x, y} dalam koordinat normalized (0.0–1.0) | wajib |
direction | "in", "out", atau "both" | "both" |
bidirection | Hitung dua arah sekaligus | true |
Format areas (polygon)
Dipakai oleh sub-analytic roi_counting, dwelling, dan density. Setiap elemen array areas:
{
"name": "Restricted Zone",
"roi_type": "whitelist",
"points": [
{ "x": 0.0, "y": 0.0 },
{ "x": 0.3, "y": 0.0 },
{ "x": 0.3, "y": 0.3 },
{ "x": 0.0, "y": 0.3 }
]
}| Field | Fungsi | Default |
|---|---|---|
name | Nama tampilan zona, muncul di pipeline_data.area_name/area | wajib |
points | Minimal tiga titik {x, y} dalam koordinat normalized (0.0–1.0), membentuk polygon | wajib |
roi_type | Diterima sebagai "whitelist"/"blacklist" tetapi tidak memengaruhi hasil roi_counting/dwelling/density pada versi ini | "whitelist" |
Gunakan inside pada sub-analytic density untuk membalik cakupan (dalam vs luar ROI) — roi_type per area tidak melakukan itu untuk People Analytics, walau field-nya diterima tanpa error.
Atribut (NFV4-MPAA, NFV4-MPA2)
Kirim objek attributes di dalam salah satu elemen sub_analytics yang aktif (mis. di dalam objek counting). Objek ini hanya berisi threshold confidence — tidak ada cara mengaktifkan/menonaktifkan atribut tertentu lewat API; semua atribut yang didukung varian selalu dihitung.
{
"name": "counting",
"is_active": true,
"areas": [{ "name": "Main Entrance", "points": [{ "x": 0.2, "y": 0.5 }, { "x": 0.8, "y": 0.5 }] }],
"attributes": { "gender_confidence_threshold": 0.7, "age_confidence_threshold": 0.6 }
}Tidak ada 'aktif/nonaktifkan atribut' via API
Berbeda dari Face Recognition (<atribut>_enabled), People Analytics tidak membaca flag enable/disable per atribut dari body API — hanya <atribut>_confidence_threshold yang dibaca. Semua atribut yang didukung varian akan selalu muncul di event.
Threshold Bersama (NFV4-MPAA & NFV4-MPA2)
| Parameter | Default |
|---|---|
age_confidence_threshold | 0.5 |
gender_confidence_threshold | 0.5 |
mask_confidence_threshold | 0.5 |
glasses_confidence_threshold | 0.5 |
head_covering_confidence_threshold | 0.5 |
upper_color_confidence_threshold | 0.5 |
lower_color_confidence_threshold | 0.5 |
Threshold Tambahan (NFV4-MPA2 saja)
| Parameter | Default |
|---|---|
gloves_confidence_threshold | 0.5 |
upper_cloth_confidence_threshold | 0.5 |
lower_cloth_confidence_threshold | 0.5 |
body_type_confidence_threshold | 0.5 |
face_expression_confidence_threshold | 0.5 |
footwear_color_confidence_threshold | 0.5 |
belonging_confidence_threshold | 0.5 |
Perilaku di Bawah Threshold
Perilaku berbeda per jenis atribut ketika confidence hasil klasifikasi berada di bawah threshold-nya:
| Jenis atribut | Perilaku di bawah threshold |
|---|---|
gender | Dipaksa menjadi "Female" dengan confidence = 1 - confidence_asli — bukan "Unknown" |
mask, glasses (MPAA & MPA2), gloves (MPA2 saja) | Dinegasikan menjadi "No <label>" dengan confidence = 1 - confidence_asli |
belonging (MPA2 saja) | Item difilter/dihapus dari array — bukan diberi label, tetap tidak muncul sama sekali |
Atribut lain (age, head_covering, upper_color, lower_color, upper_cloth, lower_cloth, body_type, face_expression, footwear_color) | Diberi label "Unknown" |
Perlakukan kasus gender di atas sebagai kuirk source code, bukan bug yang akan diperbaiki tanpa pemberitahuan — jangan mengandalkan gender: "Female" sebagai sinyal identifikasi gender aktual jika confidence yang menyertainya rendah.
Nilai Atribut yang Didukung
Bersama (MPAA & MPA2):
| Atribut | Nilai |
|---|---|
age (MPAA) | Child, Adult, Elderly |
age (MPA2) | Child, Teen, Adult, Elderly |
gender | Male, Female |
mask | Mask, No mask |
glasses | Glasses, No glasses |
head_covering (MPAA) | Hat, Hijab, None |
head_covering (MPA2) | Hat, Hijab, Helmet, Hoodie cap, Other, No head covering, Unknown |
upper_color/lower_color (MPAA) | Yellow, White, Red, Grey, Blue, Brown, Green, Pink, Purple, Orange, Black |
upper_color/lower_color (MPA2) | Black, White, Grey, Red, Green, Blue, Brown, Pink, Purple, Orange, Yellow, Beige, Unknown |
Eksklusif MPA2:
| Atribut | Nilai |
|---|---|
gloves | Gloves, No gloves |
upper_cloth | T-shirt, Shirt, Jacket, Hoodie, Sweater, Dress, Robe, Safety vest, Other, Unknown |
lower_cloth | Trousers, Shorts, Short skirt, Long skirt, Other, Unknown |
body_type | Slim, Average, Heavy-set |
face_expression | Happy, Angry, Sad, Neutral, Unknown |
footwear_color | (sama dengan palet warna MPA2 di atas) |
belonging (multi-label, array) | Backpack, Handbag, Shoulder bag, Suitcase, Box, Carrying baby, Accompanying baby, Carrying child, Accompanying child, Firearms, Sharp weapon, Handphone, Other |
Model MPA2 juga menghitung atribut internal pregnant, tetapi hasilnya selalu difilter sebelum sampai ke event — jangan mengandalkan field ini karena tidak akan pernah muncul di pipeline_data.attributes.
Counting Sederhana (NFV4-PC, NFV4-PCA, NFV4-HC)
Body pipeline jauh lebih sederhana — tidak ada sub_analytics, semua field dikirim di level atas:
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
object_confidence_threshold | Confidence minimum deteksi | 0.53 (NFV4-PC/NFV4-PCA), 0.55 (NFV4-HC) | Turunkan jika banyak orang/kepala terlewat |
dumping_sampling_time | Interval agregasi event crossing (ms) | 2000 | Turunkan untuk event lebih cepat pada traffic padat |
areas | Array garis virtual — format sama seperti format areas (garis) | Satu garis default di tengah frame | Selalu kirim eksplisit |
NFV4-PCA menerima parameter yang sama seperti NFV4-PC, tetapi tidak ada parameter tambahan untuk atribut — atributnya diproses secara internal via snapshot API dan, seperti dijelaskan di Varian & Cara Kerja, hasilnya tidak pernah tergabung ke event pada versi ini.
Dwelling & Density Sederhana (NFV4-PD, NFV4-HD)
| Parameter | Berlaku untuk | Fungsi | Default |
|---|---|---|---|
object_confidence_threshold | NFV4-PD, NFV4-HD | Confidence minimum deteksi | 0.53 (NFV4-PD), 0.55 (NFV4-HD) |
interval | NFV4-HD saja | Interval pelaporan kepadatan (detik) | 10 |
areas | NFV4-PD, NFV4-HD | Array polygon ROI — format sama seperti format areas (polygon) | ROI penuh satu frame |
NFV4-PD tidak menerima parameter tuning dwelling
NFV4-PD tidak membaca dwelling_treshold_alert_sec, idle_time_sec, minimum_dwelling_sec, maupun object_intersect_threshold — hanya object_confidence_threshold dan areas yang berpengaruh. Jika Anda mengirim parameter tersebut, nilainya diabaikan begitu saja tanpa error. Untuk dwelling yang bisa di-tuning, gunakan sub-analytic dwelling pada NFV4-MPA/NFV4-MPAA/NFV4-MPA2.
Preset Konfigurasi
Tidak ada preset konfigurasi bawaan untuk People Analytics pada versi ini — tidak seperti Face Recognition, tidak ada satu pun varian People Analytics yang mendaftarkan preset (add_config_preset). Endpoint GET /config/preset/{analytic_id}/ akan mengembalikan daftar kosong untuk seluruh analytic ID di halaman ini.
Environment Variable
Hanya dua environment variable yang memengaruhi nilai default People Analytics, dan keduanya hanya berlaku untuk sub-analytic dwelling pada varian Multi-Logics (NFV4-MPA, NFV4-MPAA, NFV4-MPA2) — tidak berlaku untuk NFV4-PD.
| Variable | Setara parameter API | Default |
|---|---|---|
DWELLING_MINIMUM_DWELLING_SEC | minimum_dwelling_sec | 2 |
DWELLING_ONLY_DUMP_EXIT | only_dump_exit | 0 (false) |
Parameter lain (object_confidence_threshold, dumping_sampling_time, dsb.) tidak memiliki environment variable — nilai defaultnya tertanam langsung di source code per analytic ID dan hanya bisa dioverride lewat body API.
Argumen Aplikasi
| Argumen | Default | Fungsi |
|---|---|---|
--fremis-coordinator-address | 127.0.0.1:4006 | Alamat endpoint atribut yang dipanggil NFV4-PCA (lihat catatan fungsionalitas di Varian & Cara Kerja). Tidak digunakan oleh varian lain. |
Penjelasan lengkap ada di Configuration Reference.