Smart Parking from Existing Cameras

🚗 Inspiration

What really inspired this project is something simple:
I hate trying to find parking on campus.

There’s nothing more frustrating than circling a lot, thinking it might have space, only to discover it’s completely full. It wastes time, creates traffic, and adds stress to something that should be simple.

So I asked myself:

What can I build to fix this — not just for me, but for everyone?

Instead of adding expensive sensors or new infrastructure, I wondered if we could use what already exists: security cameras.


🏗 How I Built It

The core idea was to turn existing parking lot cameras into a smart availability system using computer vision.

1️⃣ Vehicle Detection

I trained a custom YOLO26 object detection model to recognize vehicles in parking lots. For each frame, the model predicts bounding boxes:

$$ \text{Detection} = (x, y, w, h, c) $$

Where:

  • \((x, y)\) is the center of the vehicle
  • \(w, h\) are width and height
  • \(c\) is the confidence score

Detections are filtered using a confidence threshold:

$$ c > \tau $$

to reduce false positives.


2️⃣ Zone-Based Space Estimation

Instead of manually labeling every parking spot (which doesn’t scale), I built a zone-based system.

Each parking area:

  • Has a defined capacity \(N\)
  • Automatically infers orientation from the zone geometry
  • Generates a virtual grid of parking spaces

If \(D\) vehicles are detected inside the zone:

$$ \text{Open Spaces} = \max(0, N - D) $$

Vehicles are assigned to the nearest virtual space to estimate which spots are occupied.

This hybrid geometric + AI approach dramatically reduces setup effort while maintaining strong accuracy.


3️⃣ Smart Filtering

Parking isn’t just “full or not.” Some spots are:

  • Handicapped
  • Metered
  • Reserved

Users can filter by type, meaning someone can ignore lots that only have metered spots remaining.

Everything is displayed on a live, map-based dashboard for quick decision-making.


🧠 What I Learned

  • GPU power doesn’t matter if you're memory-limited.
  • HPC resource allocation can silently kill training jobs.
  • Early stopping is better than guessing the perfect epoch count.
  • Infrastructure reuse is often smarter than adding new hardware.
  • The hardest problems are often UX, not ML.

I also learned how to:

  • Train YOLO26 efficiently on an H100 GPU
  • Tune batch size and DataLoader workers in SLURM
  • Balance inference speed with detection quality

⚙️ Challenges

🔹 Limited Training Resources

Initial training runs were killed due to memory constraints. Increasing RAM allocation and adjusting worker settings solved the issue.

🔹 Proprietary Video Formats

The surveillance system exported .ave files, which had to be converted before processing.

🔹 Avoiding Manual Space Labeling

Most parking AI projects require labeling each space individually. I instead built a geometric reconstruction system using zone capacity and orientation inference.


🌆 Impact

This project demonstrates that smart cities don’t require new hardware — just smarter use of existing systems.

If cities can use cameras they already own to reduce congestion and improve accessibility visibility, we can make everyday frustrations — like finding parking — significantly better.

And it started with one simple thought:

There has to be a better way to park.

Built With

Share this project:

Updates