Konfigurasi
Referensi lengkap parameter pipeline License Plate Recognition dan urutan prioritasnya.
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).
Tidak ada environment variable maupun preset konfigurasi untuk LPR. Berbeda dari Face Recognition, src/packages/lpr/lpr.cpp dan lpr3.cpp tidak memanggil utils::get_env(...) sama sekali, dan fungsi registrasi preset (add_configuration_lpr, add_configuration_lpr_exp) sengaja dikosongkan ({}). Prioritas konfigurasinya hanya dua tingkat: parameter API → default hardcoded. GET /config/preset/{analytic_id}/ untuk keempat varian LPR tidak akan mengembalikan preset apa pun.
Parameter Deteksi & Dedup
Berlaku untuk keempat varian kecuali disebutkan lain.
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
plate_confidence_threshold | Confidence minimum agar deteksi plat diterima | 0.6 | Turunkan ke 0.4–0.5 untuk kondisi cahaya rendah; naikkan ke 0.7–0.8 untuk mengurangi false detection |
vehicle_confidence_threshold | Confidence minimum agar deteksi kendaraan diterima | 0.6 | Turunkan bersamaan dengan plate_confidence_threshold pada kondisi sulit |
vehicle_score_threshold | Confidence minimum kendaraan agar tetap di-dump saat enable_dump_non_plate aktif dan tidak ada plat terasosiasi | 0.51 | Naikkan untuk mengurangi false positive event kendaraan tanpa plat |
enable_dump_non_plate | Kirim event untuk kendaraan terdeteksi meskipun platnya tidak terbaca | false | Aktifkan untuk monitoring seluruh kendaraan tanpa terkecuali |
bbox_offset | Toleransi offset untuk asosiasi bounding box plat ke kendaraan; nilai dari body di-clamp otomatis ke rentang [0, 0.5] | 0.1 | Jarang perlu diubah |
plate_cache_lifetime | Durasi (detik) sebuah nomor plat disimpan di cache dedup sebelum boleh di-dump ulang | 5 | Naikkan ke 10–15 untuk parkir (kendaraan diam lama); turunkan ke 2–3 untuk toll/highway volume tinggi |
max_group_member | Batas maksimum sampel yang disimpan per grup (LPR2/LPRS) atau per track kendaraan (LPR3/LPR3S) sebelum sampel lama/confidence rendah dibuang | 30 | Kurangi untuk hemat memori pada pipeline dengan banyak kendaraan bersamaan |
Parameter Khusus Single-stage (NFV4-LPR2, NFV4-LPRS)
Parameter berikut diterima oleh keempat varian tanpa error, tetapi hanya memengaruhi perilaku NFV4-LPR2/NFV4-LPRS. Pada NFV4-LPR3/NFV4-LPR3S, nilai ini disimpan tetapi tidak pernah dibaca ulang di luar log debug dan GET /config/pipeline/.../ — tidak ada efek pada output.
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
similarity_score_threshold | Toleransi kemiripan (Levenshtein distance) untuk mengelompokkan hasil OCR ke grup yang sama | 0.7 | Naikkan ke 0.8 untuk hasil grouping lebih ketat; turunkan ke 0.6 untuk toleransi noise OCR lebih tinggi |
no_input_period_threshold | Jumlah frame tanpa anggota baru sebelum grup dianggap selesai dan di-dump | 2 | Naikkan untuk kendaraan yang berhenti lama di area pemantauan |
min_group_member | Jumlah sampel minimum dalam grup agar boleh di-dump | 2 | Naikkan ke 3–5 untuk hasil lebih akurat; turunkan untuk throughput lebih cepat |
Parameter Khusus Two-stage (NFV4-LPR3, NFV4-LPR3S)
| Parameter | Fungsi | Default | Kapan diubah |
|---|---|---|---|
plate_recognition_fps | FPS throttling untuk deteksi plat tahap kedua (deteksi kendaraan tetap berjalan tiap frame) | 4 | Naikkan ke 6–8 untuk kendaraan cepat (toll/highway); turunkan ke 2–3 untuk hemat GPU pada area lambat |
plate_recognition_fps dibaca langsung dari body request di dalam loop utama pipeline (src/packages/lpr/lpr3.cpp), bukan lewat registry konfigurasi verbose seperti parameter lain — nilainya diterima dan berfungsi normal, tetapi tidak akan muncul pada respons GET /pipeline/{node_num}/{stream_id}/{analytic_id}. Ambang confidence OCR untuk keputusan output-langsung (0.95) vs buffer (0.85–0.95) juga tetap (hardcoded), tidak dapat dikonfigurasi lewat API.
Area ROI (areas)
Field areas wajib disertakan minimal satu entri saat POST. Setiap entri berbentuk:
{
"areas": [
{
"name": "Gate A",
"roi_type": "whitelist",
"points": [
{ "x": 0.1, "y": 0.3 },
{ "x": 0.9, "y": 0.3 },
{ "x": 0.9, "y": 0.9 },
{ "x": 0.1, "y": 0.9 }
]
}
]
}| Field | Wajib | Fungsi |
|---|---|---|
name | Ya | Nama area — dipakai sebagai area_name pada event, dan sebagai suffix primary_text (mis. car|Gate A) saat mode whitelist |
roi_type | Tidak (default whitelist) | whitelist memproses kendaraan di dalam polygon; blacklist mengabaikan kendaraan di dalam polygon dan memproses sisanya di area bernama default |
points | Ya, minimal 3 titik | Titik sudut polygon, koordinat dinormalisasi [0,1]. Nilai di luar rentang otomatis di-clamp ke tepi frame |
entry_lines / exit_lines | Tidak — tidak berefek untuk LPR | Diterima oleh parser payload umum Visionaire, tetapi pipeline LPR tidak pernah membacanya. Lihat Varian & Cara Kerja — Direction Bukan In/Out |
Jika key areas tidak dikirim sama sekali, Visionaire otomatis membuat satu area whitelist penuh-frame bernama default. Namun jika key areas dikirim tapi array-nya kosong, atau ada entri dengan kurang dari 3 points, pipeline akan gagal karena assertion pada payload parser (src/handler/helper/payload.hpp) — selalu sertakan minimal satu area valid.
Argumen CLI & Environment Level Aplikasi
Tidak ditemukan argumen CLI khusus LPR pada src/master_controller.cpp add_options(), dan tidak ada environment variable seperti FR_* pada Face Recognition. Pengaturan level aplikasi umum (base URL, node number, dsb.) mengikuti Configuration Reference yang berlaku untuk seluruh Visionaire4, bukan spesifik LPR.