Case study 05 · Operational computer vision · 2026
Jukir: Parked Vehicle Counting from CCTV Frames
Roadside parked vehicles, dwell time, and daily fee estimates are still logged by hand on site. This prototype crops vehicle candidates with local YOLOv8, reads the entire street from a single VLM Contact Sheet, and deterministically repairs Indonesian Samsat licence plates.
- Camera input
- RTSP stream / frame samples with ROI polygon
- Stage 1 detection (local)
- YOLOv8n · 494 ms per street frame
- Stage 2 reading (VLM)
- 1 Contact Sheet request for 8–12 vehicles
- Session dedup & repair
- Samsat parser + Levenshtein <= 1
- Occluded plate handling
- Logged as UNREADABLE session + crop proof
One crowded street frame, eight vehicle candidates processed in a single pass.
In the Pasar Baru frame below, seven motorbike plates and their month.year tax expiry dates are read cleanly. One motorbike whose plate is blocked by a bajaj (#5) is still logged as an active vehicle session so physical counts and daily collection estimates never leak.
Photo source & license
Base photograph of Pasar Baru, Jakarta by Midori via Wikimedia Commons (CC BY 3.0), cropped and annotated by the Jukir YOLOv8 + VLM pipeline.
| Tile | Samsat Plate Read | Tax Exp | Score | Session Note |
|---|---|---|---|---|
| #1 | B 5179 HO | 09.14 | 0.95 | Motorbike · Valid session, Rp 2,000 tariff applied |
| #2 | B 1739 BWK | 03.14 | 0.95 | Motorbike · Valid session, Rp 2,000 tariff applied |
| #3 | B 6453 CC | 03.14 | 0.92 | Motorbike · Valid session, Rp 2,000 tariff applied |
| #4 | B 6233 SMB | 01.13 | 0.95 | Motorbike · Valid session, Rp 2,000 tariff applied |
| #5 | UNREADABLE | --.-- | 0.40 | Motorbike · Plate occluded by bajaj, counted as 1 session + crop proof |
| #6..#8 | B 6760 VCH (+2) | 12.15 | 0.95 | B 6760 VCH, B 6245 POL (06.14), and B 6908 POL (07.13) |
Stage-2 Numbered Contact Sheet: 1 VLM call for the entire street.
Calling a VLM separately for every motorbike inflates latency and API cost. Jukir stitches each paired vehicle crop and zoomed licence plate into a single numbered sheet (#1 to #8) so the entire street resolves in one request.
Attendant post queue: valid plates, OCR character repair, and occluded plate detection in one frame.
In the attendant post queue below, the VLM read the middle motorbike plate as "3 919 TBX" because a mounting bolt merged with the leading letter. The deterministic Samsat parser recognizes Indonesian regional prefixes and repairs it to "B 919 TBX".
How deterministic code keeps the parking ledger accurate
- Slot-aware letter vs. digit character repair "3 919 TBX" -> "B 919 TBX"
- Indonesian licence plates strictly follow [Regional Letter Prefix] [1-4 Digits] [Letter Suffix]. A "3" or "8" in the prefix slot is repaired to "B", while an "O" or "I" in the digit slot is repaired to "0" and "1".
- Repeat sightings merged within Levenshtein distance <= 1 Levenshtein <= 1 · 1 session
- When a camera scans the same motorbike at 08:02 ("B 1O34 XYZ") and 08:17 ("B 1034 XYZ"), the ledger merges both into a single active session and computes 15 minutes of dwell time without double-billing.
- Automatic dwell-time alert for overstaying vehicles Dwell 45.1 m > 30 m limit
- Each location configures operating hours, base/progressive tariffs, and a dwell-time threshold (e.g. 30 minutes on Jl. Sabang). Vehicles exceeding the threshold are flagged immediately for review.
More Case Studies
-
Tax Withholding PDF Extraction & Duplicate Checker
Tax documents, live demo. Opening hundreds of Coretax PDFs one by one to copy tax IDs, base amounts, and PPh into Excel.
-
Bank-to-Invoice Matching for Monthly Close
Finance ops, monthly close. Manually matching hundreds of bank statement lines to open receivables at month-end.
-
Cloud Usage vs Contract & Draft Invoice Audit
Data pipeline, billing audit. Checking hourly cloud usage, contract discounts, and mid-month seat proration in spreadsheets.
-
4-Year Accounting & CRM Migration Without Downtime
ERP migration, 4 years of history. Moving 4 years of Business Central & D365 history into a unified ERP without halting daily operations.
Have a CCTV feed or field logging workflow to test?
Send us one sample clip or camera frame from your site. We will run it through this pipeline and walk through the plate reads and session ledger.