hello@bytesgenx.com
←Back to selected work
Case 20 · Parkr · parking management · Real-time CV
// Case 20 · 2025 · Computer Vision

Parkrevery bay, accounted for.

A real-time CV system that reads parking-lot occupancy from the cameras already on the poles — no ground sensors, no per-bay hardware. It detects each vehicle the moment it parks, tracks every bay's state live, and flags the cars that have overstayed.

EngagementCV build
StackYOLO11 · ByteTrack
RuntimeOn the feed
StatusLive
parkr.internal/live
Parkr — live parking bay occupancy feed
Chapter 01 · The Brief

Knowing the lot meant
circling the lot.

Drivers circled for a spot while attendants guessed at occupancy from a clipboard, and no one could say which car had overstayed the two-hour zone. Sensor-based systems existed, but they meant burying a loop detector or magnetometer under every bay — a dig-up nobody wanted to fund.

The brief: read occupancy from the cameras already on the light poles. Detect when a vehicle parks, track each bay's state, time how long it's held — and surface free spots, counts, and overstays on one live screen, processed straight on the feed.

Brief at a glance
Domain
Parking ops · pole cameras
Detect
Vehicles → bay zones
Constraint
No ground sensors · no dig-up
Engagement
CV build · on-feed
Runtime
Python · real-time
REC · DETECT · YOLO11ByteTrack · 16 bays
A1 · 00:42
A2 · FREE
A3 · 01:18
A4 · 00:09
A5 · 02:31
A6 · 00:55
A7 · FREE
A8 · 01:47
B1 · FREE
B2 · 00:21
B3 · 01:02
B4 · FREE
B5 · 00:38
B6 · 01:30
B7 · 00:14
B8 · FREE
// Live state
16
Bays
10
Occupied
6
Free
1
Overstay
// Zone A · 8
A100:42
A2—
A301:18
A400:09
A502:31
A600:55
A7—
A801:47
REC · BAYS · ROI MAPByteTrack · 16 bays
A1 · 00:42
A2 · FREE
A3 · 01:18
A4 · 00:09
A5 · 02:31
A6 · 00:55
A7 · FREE
A8 · 01:47
B1 · FREE
B2 · 00:21
B3 · 01:02
B4 · FREE
B5 · 00:38
B6 · 01:30
B7 · 00:14
B8 · FREE
// Live state
16
Bays
10
Occupied
6
Free
1
Overstay
// Zone A · 8
A100:42
A2—
A301:18
A400:09
A502:31
A600:55
A7—
A801:47
REC · LIVE · DASHBOARDByteTrack · 16 bays
A1 · 00:42
A2 · FREE
A3 · 01:18
A4 · 00:09
A5 · 02:31
A6 · 00:55
A7 · FREE
A8 · 01:47
B1 · FREE
B2 · 00:21
B3 · 01:02
B4 · FREE
B5 · 00:38
B6 · 01:30
B7 · 00:14
B8 · FREE
// Live state
16
Bays
10
Occupied
6
Free
1
Overstay
// Zone A · 8
A100:42
A2—
A301:18
A400:09
A502:31
A600:55
A7—
A801:47
Feature · 01

Detect & track
every vehicle.

YOLO11 detects every vehicle on the feed with per-detection confidence, and ByteTrack holds a stable ID on each one across frames — so a car edging into a bay isn't double-counted as it settles.

DetectionYOLO11 · confidence
TrackingByteTrack · stable IDs
InputPole-mounted cameras
Feature · 02

Map vehicles
to bays.

Each bay is drawn once as a polygon ROI mapped to the camera's perspective. A detection settled inside a zone marks that bay occupied; a per-bay state machine runs Free → Occupied → Overstay against the lot's time limit.

ZonesPolygon ROI · per bay
MappingDetection → bay
LogicFree → Occupied → Overstay
Feature · 03

One screen,
the whole lot.

A live panel shows all sixteen bays, their state, free-spot count, and dwell time per vehicle — counting from the second it parked. Bays past the time limit raise an overstay alert, rendered straight onto the feed with OpenCV.

DwellPer-bay timer
Dashboard16 bays · live
RenderOpenCV · on-feed overlays
“
We used to send someone out to walk the lot. Now one screen tells me exactly how many bays are free, where they are, and which car's overstayed its limit — live.
Facility ManagerFacility Manager · Parking ops · Parkr
Chapter 04 · By the numbers
16
Coverage
Bays monitored,
one camera.

Every bay mapped as a polygon zone on a single pole-mounted feed — occupancy, dwell time, and overstays, all read from one frame.

0
Hardware
Sensors buried
under the asphalt.

No loop detectors, no per-bay magnetometers, no trenching. The system runs on the cameras the lot already had on its poles.

<1s
Latency
From a bay opening
to the screen.

Detection, tracking, zone logic, and dashboard rendering all run at frame rate — a spot freeing up shows almost the instant it happens.

Chapter 05 · Inside the feed

One feed,
three layers.

Live bay status, detection overlay, and zone map — everything the lot operator needs in one screen.

// 01 · Live
Parkr — Live bay occupancy dashboard

16 bays, dwell time, and overstay alerts in one dashboard.

// 02 · Detect
Parkr — YOLO11 vehicle detection overlay

YOLO11 vehicle bounding boxes stabilised by ByteTrack.

// 03 · Bays
Parkr — Polygon bay zone map

Bay polygons mapped to camera perspective — green free, red taken.

// 04 · Alerts
Parkr — Overstay alert and notification

Configurable time limits with instant operator notifications.

// Analytics
Parkr — Occupancy analytics and trends

Peak hours, turnover rates, and revenue opportunity gaps.

click to expand · drag to explore→
Closing

The
credits.

  • Engagement
    CV build · single-camera
  • Detection
    YOLO11 · per-detection confidence
  • Tracking
    ByteTrack · via Ultralytics
  • Zones
    Polygon ROI · per-bay, perspective-mapped
  • Logic
    State machine · Free → Occupied → Overstay · dwell timing
  • Render
    OpenCV · live overlays + dashboard
  • Runtime
    Python · Ultralytics · custom business logic
  • Hardware
    None · standard camera feed
  • Status
    Live · 16 bays, real-time
  • Next case study

    Ansaanswers, grounded.

    A RAG support copilot that answers from your own docs — and cites them

    →