ParkingSpotter App

Inspiration

During my internship, I watched drivers waste time circling the Johns Hopkins Applied Physics Laboratory (JHU APL) parking lots and wondered: could AI solve this problem using just overhead imagery? The frustration of parking search is inconvenient and the costs are manifold, ranging from fuel to hours of time. I wanted to build a scalable, low-cost alternative to expensive sensor-based systems that could help users anywhere, not just at APL, find parking spots effectively.

What it does

ParkingSpotter is an AI-powered web application that detects available parking spots from overhead images in real-time. Users upload a satellite image of a parking lot, and the system instantly analyzes it using computer vision to identify every car present. The app draws bounding boxes around detected vehicles and provides an instant, accurate count of occupied versus available spots.

How I built it

Stage 1 - Capturing Image Data

  • Captured satellite imagery of APL campus using MATLAB's geoaxes
  • Automatically annotated dozens of parking spots in Roboflow with bounding boxes
  • Applied data augmentation (rotation, brightness, noise) for robustness, creating up to 100 test images total.

Stage 2 - Actually training the model

  • Trained on YOLOv8 nano
  • 100 epochs optimized for overhead vehicle detection
  • Achieved 98.8% mAP@50, 97.5% precision, 94.4% recall on test data

Stage 3 - Web Dev

  • Built with Python and Streamlit for the user interface (no HTML/CSS, hooray)
  • Integrated Roboflow API for model inference
  • Used Git/GitHub for version control

Challenges I ran into

  1. Dataset Limitations. My model initially only worked on APL campus parking lots, so I had to diversify the training data with the knowledge that computer vision models are only as good as what they've seen. To do this, I captured images over known parking lots (airports, malls etc.) around the USA using MATLAB and then used rotation and brightness augmentation.

  2. Taking a basic model to a live website involved virtual environments, API key security (.env files, .gitignore), Git workflows, and understanding localhost vs. production deployment, skills I was able to master over the course of this project, albeit with a little bit of head-bashing.

  3. The app doesn't take real-time data. It relies on the user taking a screenshot and uploading it to the app.

  4. The model excels on directly overhead views but massively struggles with angled photos that may be taken by a security camera. This is something to work on in the future.

Accomplishments that I am proud of

  • 98.8% mAP@50 levels up to many professional systems
    • I built an end-to-end deployable web application through Streamlit.
    • Able to understand CNNs, object detection, and deployment pipelines much more after 2 weeks
    • Being able to potentially solve a real-world problem millions, including myself, have experienced.

What I learned

  • Deep learning fundamentals like CNNs, YOLO, transfer learning
  • Deployment differs significantly from development
  • Git workflow and proper development practices. I previously did not sync all my versions, leading to a loss of code (which was later solved)
  • How to problem solve (I used StackOverflow and AI!)

What's next for ParkingSpotter

  • This is the big one: Add real-time video feed support for continuous monitoring
  • Build iOS and android versions for easier accessibility
  • Implement distance calculation to nearest available spot
  • Create analytics dashboard tracking occupancy patterns over time
  • Develop multi-lot management system with comparative analysis of each

My ultimate goal is to make searching for parking a problem of the past by reducing emissions, saving time, and improving urban planning.

Share this project:

Updates