Nodeflux Central
Vehicle Analytics

Konfigurasi

Referensi lengkap format sub_analytics, parameter tiap logic, konfigurasi garis/zona, atribut, environment variable, dan argumen aplikasi Vehicle Analytics.

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). Struktur body berbeda antara varian multi-logic (NFV4-MVA, NFV4-MVAA, NFV4-MVAS) dan varian single-logic (NFV4-VC, NFV4-VC-HW, NFV4-VD, NFV4-VAS, NFV4-VCAT).

Vehicle Analytics tidak menyediakan preset konfigurasi (GET /config/preset/{analytic_id}/ mengembalikan daftar kosong) — berbeda dari Face Recognition.

Varian Multi-Logic (NFV4-MVA, NFV4-MVAA, NFV4-MVAS)

Body berisi object_confidence_threshold (default 0.4) dan array sub_analytics — satu objek per logic yang ingin diaktifkan. Setiap objek wajib memiliki name (counting, roi_counting, dwelling, density, atau speed khusus NFV4-MVAS) dan is_active (boolean) — pipeline gagal start dengan error JSON jika salah satu objek pada sub_analytics tidak memiliki is_active.

{
  "object_confidence_threshold": 0.4,
  "colordet_crop_w": 0.8,
  "colordet_crop_h": 0.8,
  "sub_analytics": [
    { "name": "counting", "is_active": true, "areas": [ /* garis */ ] },
    { "name": "roi_counting", "is_active": false },
    { "name": "dwelling", "is_active": false },
    { "name": "density", "is_active": false }
  ]
}

Parameter Global

ParameterFungsiDefaultKapan diubah
object_confidence_thresholdConfidence minimum deteksi kendaraan (0–1); dipakai oleh sub-analitik yang tidak mengirim override sendiri0.4Naikkan (0.5–0.6) untuk mengurangi false positive; turunkan (0.25–0.35) untuk menangkap motor kecil atau kondisi cuaca buruk
colordet_crop_wRasio lebar crop bounding box untuk klasifikasi warna (NFV4-MVAA)0.8Turunkan jika noise di tepi kendaraan memengaruhi deteksi warna
colordet_crop_hRasio tinggi crop bounding box untuk klasifikasi warna0.8Turunkan jika bagian atas/bawah kendaraan mengganggu klasifikasi

Sub-Analitik counting

ParameterFungsiDefaultKapan diubah
object_confidence_thresholdOverride confidence khusus countingmengikuti global (0.4)Sama seperti parameter global
dumping_sampling_timeInterval agregasi event saat objek melewati garis (ms)1000Turunkan (500–800) untuk kendaraan cepat di highway; naikkan (2000–3000) untuk toll gate
dump_ignore_iou_thresholdThreshold IoU untuk menghapus kandidat dump duplikat (0–1)0.2Naikkan (0.3–0.5) jika terjadi double counting pada kendaraan lambat
enable_group_trackingAktifkan group tracking untuk mendeteksi konvoifalseAktifkan untuk traffic padat dengan banyak motor berkelompok
minimum_tracking_heightTinggi minimum bounding box (rasio tinggi frame) agar kendaraan di-track0.05Turunkan untuk mendeteksi kendaraan yang jauh dari kamera
maximum_tracking_objectsJumlah maksimum objek yang di-track bersamaan30Naikkan (50–100) untuk jalan padat
enable_visual_labelTampilkan label kelas pada overlay live viewfalseAktifkan untuk debugging visual
areasDaftar garis counting — lihat format di bawahsatu garis default horizontal di y = 0.5Definisikan garis sesuai jalur/lajur yang ingin dihitung
attributesKonfigurasi klasifikasi atribut — lihat Atribut—Hanya diproses pada NFV4-MVAA

Sub-Analitik roi_counting

ParameterFungsiDefaultKapan diubah
object_confidence_thresholdOverride confidence khusus roi_countingmengikuti globalSama seperti parameter global
areasDaftar zona polygon — sisi polygon diperlakukan sebagai garis counting dua arahsatu zona default seluruh frameDefinisikan zona masuk/keluar
attributesKonfigurasi atribut—Hanya diproses pada NFV4-MVAA

dumping_sampling_time dan dump_ignore_iou_threshold diterima pada body roi_counting, tetapi karena kode pengecekannya memakai kunci yang salah eja (dumpling_sampling_time, bukan dumping_sampling_time — lihat src/packages/multi_logics/routines.hpp:156-161), nilai yang Anda kirim tidak pernah diterapkan. roi_counting selalu memakai nilai bawaan internal handler untuk kedua parameter ini. Ini adalah keterbatasan kode saat ini, bukan kesalahan konfigurasi Anda.

Sub-Analitik dwelling

ParameterFungsiDefaultKapan diubah
object_confidence_thresholdOverride confidence khusus dwellingmengikuti globalSama seperti parameter global
dwelling_treshold_alert_secEjaan treshold sesuai kunci JSON yang dibaca kode. Durasi (detik) sebelum event alert dikirim saat objek masih di zona; 0 menonaktifkan alert dini0Set mis. 60 untuk alert parkir ilegal setelah 1 menit
minimum_dwelling_secDurasi minimum (detik) di zona agar event dihasilkan2 (dari DWELLING_MINIMUM_DWELLING_SEC)Naikkan untuk mengurangi noise dari kendaraan yang sekadar melambat
idle_time_secJeda (detik) setelah objek tak lagi terdeteksi sebelum dianggap keluar1Naikkan (10–30) jika kendaraan sering hilang sesaat (occlusion singkat)
object_intersect_thresholdThreshold interseksi untuk mencocokkan deteksi baru dengan objek yang di-track (0–1)0.85Turunkan ke 0.7 jika kendaraan di tepi zona tidak terdeteksi
minimum_object_area_sizeLuas minimum bounding box (piksel²) agar kendaraan dihitung; untuk motorcycle, threshold efektif dibagi 105000Turunkan untuk kendaraan yang lebih kecil/jauh dari kamera
sharpness_filter_thresholdFilter ketajaman crop sebelum dump (0–10)0Naikkan untuk menolak crop buram
enable_group_trackingAktifkan group trackingfalseAktifkan untuk konvoi kendaraan
only_dump_exitHanya kirim event saat objek benar-benar keluar zona (alasan dump = Exit Line); dump akibat time-over/tracker-mati/inaktif diabaikanfalse (dari DWELLING_ONLY_DUMP_EXIT)Aktifkan jika Anda hanya ingin event ringkasan per kunjungan
areasDaftar zona polygon — lihat format di bawah, termasuk entry_lines/exit_linessatu zona default seluruh frameDefinisikan zona dwelling
attributesKonfigurasi atribut—Hanya diproses pada NFV4-MVAA

Sub-Analitik density

ParameterFungsiDefaultKapan diubah
object_confidence_thresholdOverride confidence khusus densitymengikuti globalSama seperti parameter global
intervalInterval pelaporan kepadatan (detik)10Naikkan (30–120) untuk mengurangi volume event; turunkan untuk update lebih sering
insideHitung kendaraan di dalam (true) atau di luar (false) zonatrueSet false untuk menghitung kendaraan di luar zona
dump_attributesSertakan atribut per kendaraan pada pipeline_data.detectedtrueSet false jika rincian atribut tidak diperlukan (lebih ringan). Hanya efektif pada NFV4-MVAA
areasDaftar zona untuk estimasi kepadatansatu zona default seluruh frameDefinisikan zona okupansi

Sub-Analitik speed (NFV4-MVAS saja)

ParameterFungsiDefaultKapan diubah
object_confidence_thresholdOverride confidence khusus speedmengikuti globalSama seperti parameter global
speed_threshold_kmhKecepatan minimum (km/jam) agar event dipancarkan; 0 = kirim semua0Naikkan untuk hanya mendapat event kendaraan yang melebihi batas kecepatan
minimum_tracking_heightSama seperti pada counting0.05—
maximum_tracking_objectsSama seperti pada counting30—
speed_smoothing_alphaFaktor smoothing exponential moving average (0–1)0.5Naikkan agar estimasi lebih responsif tapi lebih noisy
min_time_delta_msDelta waktu minimum antar pengukuran kecepatan (ms)30Naikkan jika hasil kecepatan terlalu noisy pada frame rate tinggi
use_average_speedPakai kecepatan rata-rata (total jarak/total waktu) alih-alih EMA instantrueSet false untuk kecepatan instan yang lebih responsif terhadap perubahan
min_displacement_mPerpindahan minimum (meter) sebelum event kecepatan dihasilkan1.0Naikkan untuk menyaring kendaraan yang hampir diam
average_speed_frame_countJumlah frame terakhir untuk menghitung rata-rata kecepatan; 0 = semua frame5Sesuaikan dengan frame rate stream
bbox_stability_thresholdPerubahan fraksional maksimum lebar/tinggi bbox antar frame sebelum pengukuran dilewati (redam noise oklusi)0.5Turunkan jika kecepatan sering melonjak akibat bbox tidak stabil
plane_calibration.length_01_23Jarak dunia nyata (meter) antara titik kalibrasi 0-1 dan 2-310.0Ukur langsung di lapangan sesuai jarak dua garis referensi
plane_calibration.width_03_12Jarak dunia nyata (meter) antara titik kalibrasi 0-3 dan 1-25.0Ukur langsung di lapangan
plane_calibration.points4 titik kalibrasi {x, y} ternormalisasi pada frame, urut mengelilingi area kalibrasi[] (kosong)Wajib diisi tepat 4 titik — tanpa ini, homography tidak dapat dihitung (log Speed estimation: failed to compute homography, src/logics/speed_estimation/speed_estimation.hpp:217) dan estimasi kecepatan tidak valid

Layanan atribut kendaraan (invoke_service<attribute_classification<vehicle_attribute>>) dipanggil untuk setiap kandidat dump pada NFV4-MVAS, sama seperti NFV4-MVAA. Namun fungsi yang menggabungkan hasilnya ke pipeline_data.attributes (src/handler/helper/snapshot.hpp:379-395, pipeline_data_append) hanya menangani analytic_id NFV4-MPAA, NFV4-MPA2, NFV4-MVAA, dan NFV4-PPE — tidak ada cabang untuk NFV4-MVAS. Akibatnya, meski Anda mengirim attributes pada body NFV4-MVAS, field color/type/brand tidak akan muncul pada event; hanya attributes.vehicle (label + confidence deteksi) yang selalu ada. Jika Anda butuh atribut kendaraan yang lengkap, gunakan NFV4-MVAA tanpa speed, atau jalankan NFV4-MVAA dan NFV4-MVAS berdampingan pada stream yang sama.

Format areas

Field areas dikirim di dalam masing-masing objek sub-analitik, bukan di level atas body.

Garis (counting) — array objek:

{ "name": "Gate A", "points": [{"x": 0.2, "y": 0.5}, {"x": 0.8, "y": 0.5}], "direction": "both", "bidirection": true }
FieldFungsiDefault
nameNama garis; muncul kembali di area_name pada eventwajib
pointsTepat 2 titik {x, y} ternormalisasi (0–1)wajib
directionin, out, atau bothboth
bidirectionHitung crossing kedua arahtrue

Zona (roi_counting, dwelling, density) — array objek:

{
  "name": "Parking Zone A",
  "roi_type": "whitelist",
  "points": [{"x":0,"y":0.3}, {"x":0.4,"y":0.3}, {"x":0.4,"y":0.8}, {"x":0,"y":0.8}],
  "entry_lines": [[0, 1]],
  "exit_lines": [[2, 3]]
}
FieldFungsiDefault
nameNama zona; muncul kembali di area_name/area pada eventwajib
pointsMinimal 3 titik {x, y} ternormalisasi, urut mengelilingi zonawajib
roi_typewhitelist/blacklist — diterima tetapi pada kode saat ini tidak ada logic yang membaca nilai iniwhitelist
entry_lines / exit_linesHanya untuk dwelling: pasangan indeks titik (0-based, sesuai urutan points) yang menandai sisi polygon tersebut sebagai entry/exit. Sisi yang tidak terdaftar dianggap exit secara default[]

Jika areas tidak dikirim sama sekali pada sub-analitik yang aktif: counting memakai satu garis horizontal default di y = 0.5; roi_counting/dwelling/density memakai satu zona default yang mencakup seluruh frame.

Atribut Kendaraan (NFV4-MVAA)

Dikirim di dalam field attributes pada entri sub-analitik counting atau roi_counting.

{ "attributes": { "color": true, "color_confidence_threshold": 0.5, "brand": true, "brand_confidence_threshold": 0.4 } }
ParameterFungsiDefault
colorAktifkan klasifikasi warnatrue
color_confidence_thresholdThreshold confidence warna (0–1)0.4
typeAktifkan klasifikasi tipe kendaraan. Tidak berlaku untuk motorcycletrue
type_confidence_thresholdThreshold confidence tipe (0–1)0.4
brandAktifkan klasifikasi merek. Tidak berlaku untuk motorcyclefalse
brand_confidence_thresholdThreshold confidence merek (0–1)0.3

Nilai atribut yang mungkin: color — black, white, gray, silver, red, blue, yellow, orange, brown, green, maroon, golden, purple, other; type — SUV, MPV, wagon, hatchback, sedan, pickup, convertible, van, truck, other; brand — 24 merek umum (Toyota, Honda, Mercedes-Benz, BMW, Suzuki, Daihatsu, Mitsubishi, Nissan, Hyundai, Mazda, Wuling, Lexus, MINI, Land Rover, Porsche, Ford, Volkswagen, Chevrolet, KIA, Jeep, Chery, Isuzu, MG, Audi) atau other.


Varian Single-Logic

NFV4-VC, NFV4-VC-HW (Vehicle Counting)

Body hanya berisi object_confidence_threshold (default 0.4) dan areas (format garis, sama seperti sub-analitik counting di atas) di level atas — tidak ada sub_analytics.

{
  "object_confidence_threshold": 0.4,
  "dumping_sampling_time": 2000,
  "areas": [
    { "name": "Lane 1", "points": [{"x": 0.2, "y": 0.5}, {"x": 0.8, "y": 0.5}], "direction": "both" }
  ]
}

NFV4-VC-HW menggunakan body yang identik, tetapi mengabaikan label motorcycle selain pedestrian.

NFV4-VD (Vehicle Dwelling)

Body berisi object_confidence_threshold (default 0.4) dan areas (format zona polygon) di level atas — tanpa dwelling_treshold_alert_sec, minimum_dwelling_sec, atau parameter dwelling lain yang tersedia pada varian multi-logic.

{
  "object_confidence_threshold": 0.4,
  "areas": [
    { "name": "No Parking Zone", "points": [{"x":0.1,"y":0.2}, {"x":0.6,"y":0.2}, {"x":0.6,"y":0.9}, {"x":0.1,"y":0.9}] }
  ]
}

NFV4-VAS (Vehicle Aerial Surveilance, POC)

Tidak menerima areas — pipeline memproses seluruh frame.

ParameterFungsiDefault
overlap_thresholdIoU minimum antara dua bounding box agar dianggap tumpang-tindih0
active_dump_thresholdJumlah frame minimum overlap harus bertahan sebelum event di-dump saat overlap berakhir3
inactive_dump_thresholdJumlah frame overlap boleh terputus sebelum pasangan objek dianggap benar-benar berpisah4

NFV4-VCAT (Vehicle Counting Attribute, POC)

Body berisi areas (format garis, sama seperti counting) — kendaraan yang melewati garis dicocokkan terhadap database embedding kendaraan yang telah di-enroll. Tidak menerima parameter atribut warna/tipe/merek.


Environment Variable

VariableBerlaku untukDefaultFungsi
DWELLING_MINIMUM_DWELLING_SECSemua sub-analitik dwelling pada NFV4-MVA/NFV4-MVAA/NFV4-MVAS2Nilai default minimum_dwelling_sec jika tidak dikirim di body
DWELLING_ONLY_DUMP_EXITSama seperti di atas0 (false)Nilai default only_dump_exit jika tidak dikirim di body

Argumen Aplikasi

ArgumenDefaultFungsi
--fremis-coordinator-address127.0.0.1:4006Dilewatkan ke routine multi-logic saat pipeline dibuat. Relevan untuk varian analitik lain yang memanggil layanan koordinator eksternal; layanan atribut kendaraan sendiri dipanggil sebagai service internal pipeline, bukan lewat alamat ini.
--db-disable-event-storefalseJika true, event tidak disimpan ke database lokal node — hanya dipancarkan ke event channel WebSocket.

Penjelasan lengkap ada di Configuration Reference.

On this page