Konfigurasi
Referensi lengkap parameter pipeline PPE Analytics, sub-analytic (counting, ROI counting, dwelling, density), threshold atribut, dan environment variable.
Parameter di halaman ini dikirim sebagai body JSON saat membuat pipeline (POST /pipeline/{node_num}/{stream_id}/NFV4-PPE) atau mengubahnya (PUT pada endpoint yang sama). PPE Analytics memakai arsitektur multi-logics Visionaire: satu deteksi orang dan satu klasifikasi atribut PPE dibagikan ke empat sub-analytic (counting, roi_counting, dwelling, density) yang dapat diaktifkan/nonaktifkan secara independen lewat is_active pada masing-masing entri sub_analytics.
Tidak ada preset konfigurasi (GET /config/preset/{analytic_id}/) yang terdaftar untuk NFV4-PPE — berbeda dari Face Recognition. Setiap nilai harus dikirim eksplisit atau memakai default di bawah.
Parameter Global
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
object_confidence_threshold | Confidence minimum deteksi orang | 0.53 | Turunkan ke 0.4 jika banyak pekerja terlewat; naikkan untuk mengurangi false detection. Dapat juga dikirim per sub-analytic (lihat masing-masing bagian di bawah) untuk override hanya pada logic tersebut. |
Atribut PPE
Setiap orang yang terdeteksi diklasifikasikan pada 11 atribut. Empat bersifat biner (Yes/No), tujuh bersifat multi-kelas. Bila confidence atribut di bawah threshold-nya, label diganti menjadi Unknown — berlaku sama untuk atribut biner maupun multi-kelas (src/handler/helper/snapshot.hpp, postprocess_ppe_attributes).
| Atribut | Tipe | Nilai yang mungkin |
|---|---|---|
safety_glasses | Biner | Yes, No, Unknown |
face_shield | Biner | Yes, No, Unknown |
gloves | Biner | Yes, No, Unknown |
safety_harness | Biner | Yes, No, Unknown |
head_protection | Multi-kelas | Hard helmet, Hairnet, None, Unknown |
helmet_color | Multi-kelas | Black, White, Grey, Red, Green, Blue, Brown, Pink, Orange, Yellow, None, Unknown |
face_mask | Multi-kelas | Respirator, Surgical/Cloth, None, Unknown |
protective_clothing | Multi-kelas | Safety vest, Hazmat, Lab coat, Apron, Coverall, None, Unknown |
protective_clothing_color | Multi-kelas | Sama seperti helmet_color |
footwear_type | Multi-kelas | Safety boots, Rubber boots, Shoe cover, Sneakers, Dress shoes, Sandals, Barefoot, Unknown |
work_context | Multi-kelas | Construction, Manufacturing, Laboratory, Healthcare, Food handling, Mining, Electrical, Unknown |
Nilai persis setiap label ditentukan oleh model yang dibundel dalam rilis Visionaire (src/handler/paddle/include/postprocess.h, PPEAttributeHelper) dan dapat berbeda antar versi. Perlakukan label sebagai string bebas di sisi integrasi — jangan hardcode enum penuh.
Threshold Atribut
Kirim objek attributes pada body pipeline berisi threshold confidence per atribut (0.0–1.0). Semua default 0.5.
{
"attributes": {
"head_protection_confidence_threshold": 0.7,
"safety_harness_confidence_threshold": 0.7
}
}| Parameter | Atribut yang dipengaruhi | Default |
|---|---|---|
safety_glasses_confidence_threshold | safety_glasses | 0.5 |
face_shield_confidence_threshold | face_shield | 0.5 |
gloves_confidence_threshold | gloves | 0.5 |
safety_harness_confidence_threshold | safety_harness | 0.5 |
head_protection_confidence_threshold | head_protection | 0.5 |
helmet_color_confidence_threshold | helmet_color | 0.5 |
face_mask_confidence_threshold | face_mask | 0.5 |
protective_clothing_confidence_threshold | protective_clothing | 0.5 |
protective_clothing_color_confidence_threshold | protective_clothing_color | 0.5 |
footwear_type_confidence_threshold | footwear_type | 0.5 |
work_context_confidence_threshold | work_context | 0.5 |
Threshold kustom belum diterapkan ke event real-time
Nilai *_confidence_threshold yang Anda kirim tersimpan dan tampil kembali di GET /config/pipeline/NFV4-PPE/, tetapi routine yang benar-benar membangun event (MultiLogicAnalyticsRoutine di src/packages/multi_logics/routines.hpp) tidak meneruskan nilai kustom tersebut ke proses labeling — hanya threshold default 0.5 per atribut yang aktif saat event dibuat, berapa pun nilai yang Anda kirim. Anggap parameter ini sebagai dokumentasi kontrak API untuk saat ini; jangan bergantung padanya untuk tuning production.
Tidak ada toggle aktif/nonaktif per atribut
Struktur konfigurasi internal PPE Analytics memiliki flag enabled per atribut (src/handler/helper/snapshot.hpp, struct PPEAttrCfg, default semua true), tetapi tidak ada jalur di body pipeline yang mengubahnya — berbeda dari atribut kendaraan (color/type/brand pada NFV4-MVAA) yang memang bisa di-enable/disable dari API. Untuk PPE, satu-satunya kontrol yang tersedia dari API adalah threshold confidence di atas.
Counting
Menghitung orang yang melewati garis virtual, beserta atributnya.
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
areas | Daftar garis hitung: [{ "name", "points": [{x,y},{x,y}], "direction", "bidirection" }], koordinat ternormalisasi 0–1 | satu garis horizontal di tengah frame | Tentukan posisi garis sesuai gate/pintu masuk area kerja. direction menentukan sisi mana yang dihitung "in"; bidirection: true menghitung kedua arah. |
dumping_sampling_time | Interval agregasi event saat orang melewati garis (ms) | 500 | Naikkan untuk mengurangi frekuensi event; turunkan untuk respons lebih cepat. |
dump_ignore_iou_threshold | Threshold IoU untuk deduplication crossing | 0.8 | Naikkan jika terjadi double count. |
enable_group_tracking | Aktifkan tracking rombongan/grup | false | Aktifkan di gate dengan traffic padat agar orang yang berjejalan tidak menghasilkan banyak track terpisah. |
minimum_tracking_height | Tinggi minimum bounding box (rasio terhadap tinggi frame) | 0.05 | Turunkan jika pekerja terlihat kecil di frame (kamera jauh/overview). |
maximum_tracking_objects | Jumlah maksimum objek yang di-track bersamaan | 30 | Naikkan untuk area dengan banyak pekerja sekaligus. |
enable_visual_label | Tampilkan label pada visualisasi live view | false | Aktifkan untuk debugging. |
ROI Counting
Menghitung orang yang masuk/keluar polygon (area kerja), tanpa garis.
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
areas | Daftar polygon: [{ "name", "roi_type": "whitelist"|"blacklist", "points": [{x,y}, ...] }] (minimal 3 titik, ternormalisasi 0–1) | seluruh frame (whitelist) | Gambar polygon mengelilingi zona kerja yang diaudit. |
enable_group_tracking | Aktifkan tracking rombongan/grup | false | Sama seperti Counting. |
minimum_tracking_height | Tinggi minimum bounding box (rasio terhadap frame) | 0.05 | Sama seperti Counting. |
maximum_tracking_objects | Jumlah maksimum objek yang di-track | 30 | Sama seperti Counting. |
enable_visual_label | Tampilkan label pada visualisasi | false | Aktifkan untuk debugging. |
dump_ignore_iou_threshold yang dikirim di dalam entri roi_counting diterapkan dengan benar. dumping_sampling_time, meski diterima dan disimpan di konfigurasi, tidak berpengaruh pada ROI Counting di versi kode ini — kode internal memeriksa kunci yang salah eja (src/packages/multi_logics/routines.hpp) sehingga nilainya tidak pernah terbaca. Jangan mengandalkan parameter ini untuk mengatur ROI Counting; interval agregasi event mengikuti perilaku default internal handler.
Dwelling
Mendeteksi orang yang berdiam di suatu area (mis. stasiun kerja statis) melewati durasi tertentu.
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
areas | Daftar polygon area dwelling (format sama seperti ROI Counting) | seluruh frame | Gambar polygon di stasiun kerja atau area yang diawasi. |
dwelling_treshold_alert_sec | Durasi (detik) sebelum alert dump dikirim meski orang masih di dalam ROI; 0 = nonaktif | 0 | Set sesuai kebutuhan audit "sudah berapa lama pekerja di area ini". Ejaan treshold mengikuti kunci di source code. |
minimum_dwelling_sec | Durasi minimum dwelling agar event dihasilkan (detik) | 2 (environment variable DWELLING_MINIMUM_DWELLING_SEC) | Naikkan untuk mengabaikan orang yang hanya lewat sekilas. |
idle_time_sec | Waktu maksimum objek tidak terupdate setelah keluar ROI sebelum dianggap tidak aktif (detik) | 1 | Naikkan untuk toleransi gerakan kecil/oklusi singkat. |
object_intersect_threshold | Rasio interseksi minimum orang dengan ROI agar dianggap "di dalam" | 0.85 | Turunkan jika orang di tepi ROI sering tidak terdeteksi masuk. |
minimum_object_area_size | Luas minimum bounding box orang (piksel²) | 2000 | Turunkan jika pekerja jauh dari kamera. |
sharpness_filter_threshold | Ambang ketajaman gambar untuk dump dwelling (0–10) | 0 | Naikkan jika banyak frame buram ikut ter-dump. |
only_dump_exit | Hanya kirim event saat orang keluar ROI | false (environment variable DWELLING_ONLY_DUMP_EXIT) | Aktifkan jika Anda hanya butuh laporan akhir (bukan alert selama masih di dalam). |
enable_group_tracking | Aktifkan tracking rombongan/grup | false | Sama seperti Counting. |
minimum_tracking_height | Tinggi minimum bounding box (rasio terhadap frame) | 0.05 | Sama seperti Counting. |
maximum_tracking_objects | Jumlah maksimum objek yang di-track | 30 | Sama seperti Counting. |
Density
Estimasi periodik jumlah orang dalam sebuah area.
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
areas | Daftar polygon area density (format sama seperti ROI Counting) | seluruh frame | Gambar polygon pada area yang ingin dihitung occupancy-nya. |
interval | Interval pelaporan (detik) | 10 | Naikkan untuk audit periodik jarang; turunkan untuk pemantauan hampir real-time. |
inside | Hitung orang di dalam polygon (true) atau di luar (false) | true | Ubah ke false untuk menghitung orang di luar zona tertentu. |
dump_attributes | Sertakan atribut PPE per orang pada event density | true | Nonaktifkan untuk menghemat bandwidth jika hanya butuh angka occupancy. |
enable_group_tracking | Aktifkan tracking rombongan/grup | false | Sama seperti Counting. |
minimum_tracking_height | Tinggi minimum bounding box (rasio terhadap frame) | 0.05 | Sama seperti Counting. |
maximum_tracking_objects | Jumlah maksimum objek yang di-track | 30 | Sama seperti Counting. |
Field interval pada GET /config/pipeline/NFV4-PPE/ menampilkan default dokumentasi 5, tetapi perilaku runtime yang sebenarnya memakai default 10 detik ketika interval tidak dikirim (src/packages/multi_logics/routines.hpp). Kirim interval secara eksplisit jika Anda butuh nilai pasti.
Environment Variable
| Variable | Setara parameter API | Default | Cakupan |
|---|---|---|---|
DWELLING_MINIMUM_DWELLING_SEC | minimum_dwelling_sec | 2 | Semua analitik multi-logics dengan sub-analytic Dwelling, termasuk NFV4-PPE. |
DWELLING_ONLY_DUMP_EXIT | only_dump_exit | 0 (false) | Sama seperti di atas. |
Tidak ada argumen CLI (--ppe-*) maupun environment variable khusus NFV4-PPE selain dua variable Dwelling di atas — berbeda dari Face Recognition yang memiliki banyak argumen --fr-*. Alamat model dan resource dikonfigurasi lewat mekanisme node yang sama untuk semua analitik multi-logics; lihat Configuration Reference.