API Reference — Vehicle Analytics
Referensi endpoint REST API untuk pipeline Vehicle Analytics (MVA/MVAA) — spawn, status, update konfigurasi, hapus, MJPEG stream, dan snapshot.
← Kembali ke Vehicle Analytics
Panduan operator: cara kerja, konfigurasi, output, dan best practices.
People Analytics
Sub-analitik serupa (counting, dwelling, density) untuk pejalan kaki.
Semua endpoint di halaman ini menggunakan basis URL Visionaire API (VISIONAIRE_API_URL, default http://localhost:4004) — bukan URL Lenz/dashboard. Tidak ada autentikasi header yang diperlukan pada pemanggilan langsung ke Visionaire API; autentikasi dikelola di layer gateway jika dikonfigurasi.
Manajemen Pipeline
Endpoint untuk membuat, membaca status, memperbarui konfigurasi, dan menghapus pipeline Vehicle Analytics. Setiap pipeline diidentifikasi oleh kombinasi node_num, stream_id, dan analytic_id.
Authorization
bearerAuth In: header
Path Parameters
Nomor node. Gunakan 0 untuk deployment single-node.
ID stream video yang akan dianalisis.
ID analitik: NFV4-MVA atau NFV4-MVAA.
"NFV4-MVA" | "NFV4-MVAA"Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "http://localhost:4004/pipeline/0/stream_001/NFV4-MVA" \ -H "Content-Type: application/json" \ -d '{ "object_confidence_threshold": 0.4, "sub_analytics": [ { "name": "counting", "is_active": true, "dumping_sampling_time": 1000, "lines": [ { "id": "gate_1", "name": "Gate A", "points": [ [ 0.2, 0.5 ], [ 0.8, 0.5 ] ], "direction": "both" } ] }, { "name": "roi_counting", "is_active": false }, { "name": "dwelling", "is_active": false }, { "name": "density", "is_active": false } ] }'{ "code": 200, "message": "Pipeline created successfully", "data": { "pipeline_id": "NFV4-MVA", "stream_id": "stream_001", "status": "running" }}{ "code": 400, "message": "Invalid configuration: lines array is required for counting"}Authorization
bearerAuth In: header
Path Parameters
Nomor node. Gunakan 0 untuk deployment single-node.
ID stream video yang akan dianalisis.
ID analitik: NFV4-MVA atau NFV4-MVAA.
"NFV4-MVA" | "NFV4-MVAA"Response Body
application/json
application/json
curl -X GET "http://localhost:4004/pipeline/0/stream_001/NFV4-MVA"{ "code": 200, "data": { "analytic_id": "NFV4-MVA", "stream_id": "stream_001", "status": "running", "uptime_seconds": 3600, "processed_frames": 43200 }}{ "code": 404, "message": "Pipeline not found"}Authorization
bearerAuth In: header
Path Parameters
ID analitik Vehicle Analytics. Gunakan NFV4-MVA untuk counting/dwelling/density tanpa atribut, atau NFV4-MVAA untuk menambahkan klasifikasi warna, tipe, dan merek kendaraan.
"NFV4-MVA" | "NFV4-MVAA"Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "http://localhost:4004/pipeline/0/stream_001/NFV4-MVA/config" \ -H "Content-Type: application/json" \ -d '{ "object_confidence_threshold": 0.5, "sub_analytics": [ { "name": "counting", "is_active": true, "object_confidence_threshold": 0.5 } ] }'{ "code": 200, "message": "Configuration updated successfully"}{ "code": 400, "message": "Cannot update configuration: invalid parameter value"}Authorization
bearerAuth In: header
Path Parameters
Nomor node. Gunakan 0 untuk deployment single-node.
ID stream video yang akan dianalisis.
ID analitik: NFV4-MVA atau NFV4-MVAA.
"NFV4-MVA" | "NFV4-MVAA"Response Body
application/json
curl -X DELETE "http://localhost:4004/pipeline/0/stream_001/NFV4-MVA"{ "code": 200, "message": "Pipeline deleted successfully"}Visual Monitoring
Endpoint untuk mengambil output visual dari pipeline yang sedang berjalan. Berguna untuk verifikasi posisi garis counting dan zona ROI, serta monitoring langsung di dashboard.
Authorization
bearerAuth In: header
Path Parameters
ID analitik Vehicle Analytics. Gunakan NFV4-MVA untuk counting/dwelling/density tanpa atribut, atau NFV4-MVAA untuk menambahkan klasifikasi warna, tipe, dan merek kendaraan.
"NFV4-MVA" | "NFV4-MVAA"Query Parameters
Kualitas JPEG untuk setiap frame (1–100).
801 <= value <= 100Target frame rate stream MJPEG.
121 <= value <= 30Response Body
multipart/x-mixed-replace
curl -X GET "http://localhost:4004/pipeline/0/stream_001/NFV4-MVA/mjpeg""string"Authorization
bearerAuth In: header
Path Parameters
ID analitik Vehicle Analytics. Gunakan NFV4-MVA untuk counting/dwelling/density tanpa atribut, atau NFV4-MVAA untuk menambahkan klasifikasi warna, tipe, dan merek kendaraan.
"NFV4-MVA" | "NFV4-MVAA"Response Body
image/jpeg
curl -X GET "http://localhost:4004/pipeline/0/stream_001/NFV4-MVA/snapshot""string"Event Streaming (WebSocket)
Visionaire4 mengirim setiap event hasil deteksi/inferensi melalui WebSocket. Untuk berlangganan event yang dihasilkan oleh pipeline Vehicle Analytics pada stream tertentu, buka koneksi WebSocket ke endpoint berikut:
ws://<host>:4004/event_channel/{node_num}/{stream_id}/NFV4-MVASetelah koneksi terbuka, server akan langsung mendorong (push) setiap event ke client tanpa perlu handshake atau pesan subscribe. Tutup koneksi untuk berhenti menerima event.
Parameter Path
| Parameter | Tipe | Deskripsi |
|---|---|---|
node_num | integer | Nomor node tempat stream berjalan (0 = master) |
stream_id | string | ID stream yang akan dipantau |
Query Parameter (Opsional)
| Parameter | Tipe | Deskripsi |
|---|---|---|
logic | string | Filter event berdasarkan nama logic rule yang aktif pada pipeline. Tanpa parameter ini, semua event dari analitik akan dikirim. |
Format Pesan
Setiap event yang diterima berbentuk JSON dengan struktur berikut:
{
"event_id": "evt_123456",
"stream_id": "<stream_id>",
"analytic_id": "NFV4-MVA",
"node_num": 0,
"timestamp_ms": 1674123456789,
"primary_text": "SUV",
"secondary_text": "Northbound",
"pipeline_data": {
/* field spesifik module — lihat "Output yang Dihasilkan" pada index.mdx */
},
"image_jpeg": "base64-encoded JPEG..."
}Detail field pipeline_data untuk Vehicle Analytics dijelaskan pada Output yang Dihasilkan di halaman utama.
Contoh Koneksi
const ws = new WebSocket(
'ws://localhost:4004/event_channel/0/<stream_id>/NFV4-MVA'
);
ws.onmessage = (msg) => {
const event = JSON.parse(msg.data);
console.log(event.primary_text, event.pipeline_data);
};
ws.onerror = (err) => console.error('WebSocket error', err);
ws.onclose = () => console.log('Disconnected');import asyncio
import json
import websockets
async def listen():
url = "ws://localhost:4004/event_channel/0/<stream_id>/NFV4-MVA"
async with websockets.connect(url) as ws:
async for msg in ws:
event = json.loads(msg)
print(event["primary_text"], event["pipeline_data"])
asyncio.run(listen())Filter Berdasarkan Logic
Jika pipeline menjalankan beberapa logic rule (misalnya line-counting, ROI density), Anda dapat memfilter event hanya untuk satu logic dengan menambahkan query parameter:
ws://<host>:4004/event_channel/{node_num}/{stream_id}/NFV4-MVA?logic=<logic_name>Endpoint Channel Lainnya
Untuk mendengarkan event yang lebih luas (lintas analitik atau lintas stream), gunakan endpoint berikut yang dijelaskan pada Developer Guide:
| Endpoint | Cakupan |
|---|---|
WS /event_channel/ | Semua event dari seluruh node |
WS /event_channel/{node_num}/ | Semua event dari satu node |
WS /event_channel/{node_num}/{stream_id} | Semua event dari satu stream (semua analitik) |
Vehicle Analytics (MVA/MVAA)
Analitik kendaraan real-time dengan counting, ROI counting, dwelling, density, dan klasifikasi atribut (warna, tipe, merek) untuk berbagai skenario traffic dan parkir.
Crowd Estimation
Estimasi jumlah orang dan kepadatan kerumunan berbasis density map — analitik NFV4-CE untuk area sangat padat.