Skip to content

Repository files navigation

🌉 Street Object Detection and GeoMapping App

This project is a smart object detection system that identifies buildings, doors, and windows from panoramic street images and maps them to accurate real-world coordinates using camera metadata.

Built with:

  • 🧠 Roboflow for object detection
  • 🖥️ Streamlit for the web interface
  • 🌍 GeoPandas for exporting GeoJSON
  • 📷 Camera metadata (pitch, heading, GPS) to calculate real UTM positions

🚀 Features

  • ✅ Detects buildings, doors, windows from street view images
  • ✅ Displays bounding boxes with confidence scores
  • ✅ Calculates approximate real-world locations (UTM projection)
  • ✅ Exports results as downloadable GeoJSON
  • ✅ Supports multiple detection models (e.g., precision 60%+ version)
  • ✅ Visual and interactive web interface with Streamlit

📷 Demo & Screenshots

Below are some screenshots from the app showcasing detections and GeoJSON output:

Main Detection Interface

Detection Interface

Output of Model Detection on Building and Select the version of Model and Download the geojson file

Download & Model Selection

GeoJSON Export Example in QGIS

GeoJSON in QGIS


🎥 Watch the demo video on YouTube: ![YouTube Demo]


🛠️ How to Run

  1. Clone the repository
git clone https://github.com/ahmedshehta/street-object-detection.git
cd street-object-detection
  1. Install required packages
pip install -r requirements.txt
  1. Place your camera metadata CSV

Create a file named image_metadata.csv with the following format:

image_name,timestamp,cam_x,cam_y,cam_z,heading,pitch,roll
Image001.jpg,1746800048,234528.817,2016450.6,2266.498,-103.176,-86.824,-18.445
  1. Run the app
streamlit run app.py
  1. Upload your panoramic images via the web interface

Then download the generated GeoJSON files for GIS use.


📁 Project Structure

street-object-detection/
│
├── app.py                  # Main Streamlit app code
├── image_metadata.csv      # Camera metadata CSV file (must be added by user)
├── requirements.txt        # Python dependencies
├── README.md               # Project documentation
├── LICENSE                 # MIT License file
└── screenshots/            # Folder for screenshot images

🧠 Models

Two Roboflow models are supported:

  • Model 1: x1-ve1ly-d7yt7/3 (default)
  • Model 2: x1-ve1ly-d7yt7/4 (higher precision)

You can switch between models in the UI or change the model ID in the code to compare performance.


🗚️ Output Example

Each detected building is exported as a polygon with attributes like:

  • Confidence
  • Number of windows
  • Number of doors

The output is in GeoJSON format, and can be opened in GIS tools like QGIS, Mapbox, or Leaflet.


📢 Contact

Ahmed Shehta 📧 Email: ashehta700@gmail.com 🔗 LinkedIn 🔗 Website


📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

About

This app detects buildings, windows, and doors from street images and maps them using geospatial metadata. I used Roboflow for object detection, Streamlit for the interface, and GeoPandas to export accurate building positions as GeoJSON for mapping.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages