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.
Log in or sign up for Devpost to join the conversation.