Varian & Cara Kerja
Empat varian pipeline License Plate Recognition, perbedaan arsitektur single-stage vs two-stage, dan alur pemrosesan dari frame video sampai event.
Visionaire4 menyediakan empat varian LPR yang teregistrasi: NFV4-LPR2, NFV4-LPRS, NFV4-LPR3, NFV4-LPR3S. Pilih berdasarkan kebutuhan klasifikasi plat dan volume kendaraan.
Tabel Varian
| Analytic ID | Nama | Arsitektur | Klasifikasi Plat | Direction | Use case singkat |
|---|---|---|---|---|---|
NFV4-LPR2 | License Plate Recognition 2 | Single-stage — deteksi kendaraan + plat dalam satu inferensi, hasil OCR dikelompokkan (grouping) | Sipil (plate) saja | up / down / none | Parkir, access control umum |
NFV4-LPRS | LPR with Special Multi Classes | Single-stage, sama seperti LPR2 | Sipil, pemerintah, militer, diplomatik | up / down / none | Gedung pemerintah/militer, checkpoint |
NFV4-LPR3 | License Plate Recognition 3 | Two-stage — deteksi kendaraan tiap frame, deteksi plat di-throttle, per-kendaraan di-track individual | Sipil (plate) saja | Selalu unknown | Toll gate, highway, volume tinggi |
NFV4-LPR3S | LPR3 with Special Multi Classes | Two-stage, sama seperti LPR3 | Sipil, pemerintah, militer, diplomatik | Selalu unknown | Traffic analytics multi-class volume tinggi |
Tidak ada varian bernama NFV4-LPR polos
Hanya empat ID di atas yang teregistrasi sebagai pipeline (register_package_lpr dan register_package_lpr_exp pada src/packages/lpr/lpr.cpp dan lpr3.cpp). String NFV4-LPR memang muncul di whitelist internal VERBOSE_CONFIG_AID pada src/http_server.cpp, tetapi tidak pernah didaftarkan sebagai pipeline yang bisa di-spawn — jangan gunakan ID tersebut.
Single-stage vs Two-stage
Single-stage (NFV4-LPR2, NFV4-LPRS)
Setiap frame diturunkan resolusinya ke 416×224 lalu diproses satu kali oleh model deteksi yang mengenali kendaraan dan plat sekaligus. Hasil deteksi plat dari beberapa frame dikumpulkan ke dalam grup berdasarkan kemiripan teks (Levenshtein distance) dan posisi kendaraan; grup di-dump menjadi satu event ketika sudah memiliki cukup anggota (min_group_member) atau tidak menerima anggota baru selama beberapa frame (no_input_period_threshold). Pendekatan ini toleran terhadap noise OCR sesaat pada frame individual.
Two-stage (NFV4-LPR3, NFV4-LPR3S)
Deteksi kendaraan (model terpisah) berjalan pada setiap frame yang diturunkan ke 416×224, sedangkan deteksi plat berjalan pada crop per-kendaraan dan di-throttle ke plate_recognition_fps (default 4 FPS) — bukan pada frame penuh, sehingga plat tetap punya resolusi efektif lebih besar dibanding pendekatan single-stage. Setiap kendaraan ditrack secara individual; begitu confidence OCR karakter mencapai ambang tinggi (0.95, nilai tetap) hasil langsung di-output, sedangkan hasil dengan confidence 0.85–0.95 dibuffer sampai kendaraan keluar dari frame sebelum dipilih sampel terbaiknya. Pendekatan ini lebih efisien untuk volume kendaraan tinggi karena tidak menunggu proses grouping multi-frame.
Cara Kerja
Detail yang membedakan tiap kotak di atas antar varian dijelaskan pada bagian "Single-stage vs Two-stage". Model OCR karakter (cct_s_char_recognition) sama untuk keempat varian.
Direction Bukan In/Out
Field direction pada event bukan hasil logika "melintasi garis masuk/keluar". Untuk NFV4-LPR2/NFV4-LPRS, nilainya dihitung murni dari perpindahan vertikal (sumbu Y) titik tengah plat antar sampel dalam satu grup (src/packages/lpr/handler/platesample_group.hpp, fungsi get_direction()):
down— plat bergerak turun (menjauh secara vertikal ke bawah frame) melebihi ambang pergerakan minimum.up— plat bergerak naik.none— riwayat sampel kurang dari 2 titik, pergerakan terlalu kecil, atau pergerakan dominan horizontal.
Untuk NFV4-LPR3/NFV4-LPR3S, direction selalu bernilai string "unknown" — di-hardcode, tidak dihitung sama sekali.
Field entry_lines/exit_lines yang bisa dikirim di dalam definisi areas diterima tanpa efek: helper parsing ROI umum Visionaire (src/handler/helper/payload.hpp) mengisi struktur line_area dari field tersebut, tetapi kode LPR (src/packages/lpr/lpr.cpp, lpr3.cpp) tidak pernah membaca line_area — tidak ada garis virtual yang benar-benar difungsikan untuk LPR.
Jika kebutuhan Anda adalah logika "kendaraan masuk vs keluar" yang presisi (mis. dua gerbang terpisah), gunakan dua area ROI terpisah (satu untuk jalur masuk, satu untuk jalur keluar) dan bedakan berdasarkan area_name pada event — bukan berdasarkan direction.
Memilih Varian
- Plat sipil standar, volume kendaraan normal (parkir, gerbang gedung) →
NFV4-LPR2 - Campuran plat sipil + pemerintah/militer/diplomatik, butuh klasifikasi →
NFV4-LPRS - Volume kendaraan tinggi, latensi rendah, tanpa kebutuhan klasifikasi (toll, highway) →
NFV4-LPR3 - Volume kendaraan tinggi dengan klasifikasi multi-class →
NFV4-LPR3S
Setelah varian ditentukan, lanjutkan ke Persyaratan.
License Plate Recognition
Deteksi kendaraan dan pengenalan plat nomor (OCR) secara real-time untuk access control, manajemen parkir, dan monitoring lalu lintas.
Persyaratan
Spesifikasi kamera, panduan penempatan kamera agar plat nomor terbaca jelas, dan dependensi resource untuk License Plate Recognition.