Inspiration

Atlanta is highly car-dependent, yet lacks a comprehensive public map of parking infrastructure. Businesses choosing between neighborhoods like Buckhead and Midtown often rely on consultants or guesswork. CitySpot was built to automatically detect parking lots from satellite imagery and make this data accessible.

What it does

CitySpot uses deep learning on NAIP satellite imagery to automatically detect and map every surface parking lot in Atlanta. It overlays 1,900+ ML-detected parking polygons on an interactive map alongside structured garage data from Google Places and OpenStreetMap. Users can filter by confidence, view density heatmaps by neighborhood, and explore analytics on parking distribution across the city. The centerpiece is our Business Advisor chatbot — powered by Claude Sonnet 4 and a RAG pipeline backed by Actian VectorAI DB. Ask it "Where should I open a shoe store?" and it returns a concise, data-grounded recommendation with exact parking counts, neighborhood demographics, and foot traffic context pulled from our knowledge base.

How we built it

ML Pipeline:

  • Trained DeepLabV3+ (ResNet34 encoder) on ParkSeg12k aerial data
  • 4-band (RGB + NIR) 512×512 tiles at 1m resolution
  • DiceBCE loss to address class imbalance
  • Postprocessed masks into GeoJSON polygons with confidence, size, and estimated spot counts

RAG Chatbot:

  • all-MiniLM-L6-v2 embeddings + Actian VectorAI DB
  • Knowledge base from Wikipedia (6 neighborhoods), OpenStreetMap Overpass API, and ML parking stats
  • Cosine similarity retrieval injects top context into Claude for grounded responses

Frontend:

  • HTML/CSS/JS with Leaflet.js, Chart.js
  • Flask API for chat, health checks, and lot removal

Challenges we ran into

  • Corrupted vector DB payloads: Added text validation and fallback context to prevent broken chatbot outputs.
  • Class imbalance: Solved with Dice loss to improve segmentation overlap.
  • Imagery licensing: Used free NAIP (1m, 4-band) via Google Earth Engine.
  • Rooftop false positives: Built an edit mode to permanently remove incorrect detections.

Accomplishments that we're proud of

  • Detected 1,900+ lots at ~0.78 IoU accuracy
  • Built full end-to-end pipeline in 36 hours
  • Delivered precise, data-backed chatbot recommendations
  • Implemented robust demo-safe fallbacks
  • Polished, production-quality UI

What we learned

  • NIR significantly reduces false positives.
  • RAG performance depends heavily on clean retrieval and chunking.
  • Actian VectorAI DB enables sub-10ms local similarity search.
  • Defensive coding is critical for live demos.

What's next for CitySpot

  • Real-time garage occupancy integration
  • Expansion to other US cities (e.g., Charlotte, Nashville, Austin)
  • Stall-level detection using higher-resolution imagery
  • Predictive analytics linking parking density to business success
  • Public REST API for commercial real estate and city planners
Share this project:

Updates