ParkPulse
Mapping & Counting Parking Spots from Aerial Imagery
Inspiration
Urban infrastructure planning relies heavily on accurate parking data, yet obtaining real-time or up-to-date parking capacity and utilization information is often expensive and manual. Airports, stadiums, and large commercial hubs operate massive parking facilities without transparent visibility into usage patterns.
ParkPulse was inspired by the question:
Can we estimate parking capacity and occupancy using only aerial imagery and publicly available geospatial data?
The goal was to build a scalable, automated system that eliminates manual surveys and costly sensor deployments.
What it does
ParkPulse is an automated pipeline that:
- Accepts a place name or address.
- Identifies nearby parking areas using OpenStreetMap.
- Fetches high-resolution aerial imagery.
- Detects parked vehicles using YOLO-based object detection.
- Estimates:
- Total parking capacity
- Occupied spots
- Free spots
- Occupancy percentage
- Visualizes:
- Parking polygons on an interactive map
- Vehicle detections on aerial imagery
- Area-wise and aggregated metrics
It works around a specific point of interest (e.g., airports, stadiums, malls) and scales to multiple parking areas automatically.
How I built it
1. Geospatial Mapping Layer
- Geocoding: Converts place name → latitude/longitude.
- OpenStreetMap query: Fetches parking polygons within a specified radius.
- Sorts parking areas by size and selects top-K lots.
- Renders polygons on an interactive map.
2. Aerial Imagery Pipeline
- Fetches satellite imagery (Esri World Imagery).
- Automatically retries with higher zoom if resolution is insufficient.
- Crops imagery to parking polygon boundaries.
- Ensures resolution is suitable for small-object detection.
3. Vehicle Detection (Computer Vision)
- Uses Ultralytics YOLO.
- Fine-tuned for aerial/VisDrone-style vehicle detection.
- Implements CPU-optimized tiled inference.
Key enhancements:
- Tiled inference for small-object recall.
- Global NMS across tiles.
- Size/aspect filtering to remove false positives.
- Confidence averaging.
- Cap on maximum detections to prevent truncation.
Outputs:
- Bounding boxes
- Class labels
- Detection confidence scores
4. Capacity Estimation Strategy
I combined two independent estimation approaches:
Area-Based Estimate
- Derived from parking lot area (m²).
- Uses assumed average area per parking spot.
Detection-Based Estimate
- Based on detected vehicles.
- Adjusted by assumed occupancy rate.
A blended capacity estimate is computed using:
- Detection coverage threshold.
- Weighted blending between area-based and detection-based estimates.
- Uncertainty bounds (± values).
This improves robustness when detection quality varies.
5. Final Metrics
For each parking area:
- Estimated capacity
- Vehicles detected
- Estimated occupied spots
- Estimated free spots
- Estimated occupancy %
- Detection confidence level
- Parking type (from OSM)
Aggregated totals:
- Total capacity
- Total vehicles
- Total free spots
- Overall occupancy %
Challenges I ran into
- Detecting small vehicles in high-altitude aerial imagery.
- Balancing precision vs. recall.
- Handling very large parking lots without memory overflow.
- Preventing detection truncation from model limits.
- Ensuring acceptable runtime on CPU-only systems.
- Avoiding capacity distortion from imperfect detection.
Accomplishments that I'm proud of
- Built a fully automated end-to-end geospatial + CV pipeline.
- Achieved improved recall using tiled inference.
- Designed a blended capacity estimation strategy.
- Added uncertainty bounds for transparency.
- Optimized inference to run on CPU.
- Successfully scaled to multiple parking areas around major POIs.
What I learned
- Small-object detection requires tiling and resolution management.
- Pure detection-based capacity estimation can be unstable.
- Blending independent estimators improves robustness.
- Post-processing (NMS, filtering) is as important as model accuracy.
- Geospatial data quality significantly affects downstream results.
- Interpretability and uncertainty estimation are critical in infrastructure tools.
What's next for ParkPulse
- Line-based parking spot detection (true spot counting).
- Multi-frame temporal analysis for trend estimation.
- GPU acceleration for faster processing.
- Historical occupancy tracking.
- Heatmap-based utilization visualization.
- Fine-tuning on airport-specific parking datasets.
- Expansion to city-scale parking analytics.
Log in or sign up for Devpost to join the conversation.