Best Practices & Troubleshooting
Panduan penempatan kamera, tuning threshold, keterbatasan sistem, dan runbook untuk pesan error PPE Analytics.
Best Practices
Penempatan Kamera
Kualitas klasifikasi atribut PPE ditentukan oleh seberapa jelas tubuh pekerja terlihat, bukan resolusi kamera. Ikuti panduan di Persyaratan — Penempatan Kamera: sudut 30–45° dari horizontal, tinggi 2,5–4 m, dan pastikan tubuh bagian atas maupun bawah tidak terhalang.
Menentukan Compliance di Sisi Downstream
PPE Analytics menghasilkan klasifikasi atribut per orang, bukan keputusan "compliant"/"non-compliant". Bangun rule di sistem Anda berdasarkan field attributes pada event, misalnya non-compliant jika attributes.head_protection.label bukan "Hard helmet". Pertimbangkan label Unknown sebagai kasus terpisah (butuh review manual), bukan otomatis non-compliant, karena Unknown bisa berarti confidence rendah, bukan berarti orang tersebut tidak memakai APD.
Sub-Analytic Sesuai Use Case
- Counting — gate atau pintu masuk area kerja, untuk audit compliance setiap pekerja yang lewat.
- ROI Counting — audit masuk/keluar zona kerja berbentuk polygon (welding bay, area ketinggian, dsb.).
- Dwelling — stasiun kerja statis; gunakan
dwelling_treshold_alert_secuntuk alert pekerja yang lama berada di area tanpa keluar dulu. - Density — snapshot occupancy periodik; aktifkan
dump_attributesjika butuh rincian PPE per orang, matikan jika hanya butuh jumlah.
Threshold Atribut Saat Ini Belum Efektif
Seperti dijelaskan di Konfigurasi, nilai *_confidence_threshold kustom belum diterapkan ke event real-time pada versi kode ini — event selalu memakai threshold default 0.5. Jangan mengandalkan tuning threshold per atribut untuk mengurangi false positive/negative sampai hal ini terkonfirmasi berubah pada rilis berikutnya.
Keterbatasan
- Bukan mesin keputusan compliance — modul ini hanya menghasilkan klasifikasi atribut; logika "boleh masuk/tidak" harus diimplementasikan di sistem downstream.
- Tidak ada toggle nonaktifkan atribut per API — seluruh 11 atribut selalu dihitung untuk setiap orang yang terdeteksi (lihat Konfigurasi).
- Threshold custom belum berpengaruh ke event — lihat Callout di atas.
- Oklusi berat — jika sebagian besar tubuh tertutup, seluruh atribut (bukan hanya yang berada di bagian tertutup) berisiko salah klasifikasi karena crop tubuh yang dikirim ke model tidak representatif.
- Sudut top-down penuh — kamera yang hampir tegak lurus ke bawah menyembunyikan vest depan, face mask, dan gloves dari pandangan.
- Warna pada motif/pattern —
helmet_colordanprotective_clothing_colormendeteksi warna dominan; helm/vest bermotif dapat menghasilkan warna yang tidak representatif. footwear_typebutuh kaki terlihat — atribut ini hanya andal jika seluruh tubuh, termasuk kaki, berada dalam frame.- Tidak ada cross-camera tracking — setiap kamera berjalan independen; PPE Analytics tidak mengaitkan identitas orang yang sama di kamera berbeda.
- Model atribut masih dalam pengembangan — kode menandai model
ppe_attributesebagai model yang akan digantikan begitu model produksi tersedia (src/services/attribute_classification/attribute_classification.hpp, komentarTODO: replace OV model ... once available). Validasi akurasi di lingkungan Anda sebelum mengandalkan hasil untuk keputusan otomatis.
Troubleshooting
Runbook berikut berdasarkan log dan error yang benar-benar dihasilkan oleh kode PPE Analytics dan komponen multi-logics yang dipakainya. Gunakan docker logs visionaire4 untuk melihat log lengkap.
Konfigurasi
Referensi lengkap parameter pipeline PPE Analytics, sub-analytic (counting, ROI counting, dwelling, density), threshold atribut, dan environment variable.
API Reference — PPE Analytics
Endpoint REST API untuk membuat, mengelola, dan memantau pipeline PPE Analytics (NFV4-PPE), serta struktur event JSON.