This project presents the implementation and final testing for the paper "Deep Learning for Detecting Tilt Angle and Orientation of Photovoltaic Panels on Satellite Imagery", published in the 42nd SGAI International Conference on Artificial Intelligence (AI 2022), Cambridge, UK, December 13–15, 2022.
This research develops a comprehensive deep learning pipeline to analyze rooftop solar panel installations from satellite imagery. The system performs multiple tasks including:
- Rooftop detection and localization
- Solar panel presence classification
- Orientation (direction) estimation
- Tilt angle classification
- Solar panel area segmentation and measurement
Creating a suitable rooftop dataset proved challenging, requiring us to build a custom dataset that, while modest in size, effectively validated our methodology.
Dataset Specifications:
- Size: 430 images
- Source: Google Maps satellite imagery
- Capture Height: Approximately 10 meters above ground level
- Geographic Coverage: 6 cities across 5 European countries
- Oldenburg, Germany
- Wilhelmshaven, Germany
- Liverpool, England
- Bordeaux, France
- Milan, Italy
- Vigo, Spain
We utilized the free, open-source tool LabelImg to accelerate the image annotation process.
Dataset Examples:
Our pipeline consists of five main stages:
- Rooftop Detection: YOLOv4-based object detection to identify rooftop regions
- Solar Panel Classification: Binary classification to determine solar panel presence
- Orientation Classification: Multi-class classification for panel direction
- Tilt Angle Classification: Roof type-based angle range estimation
- Area Segmentation: Semantic segmentation for precise solar panel area calculation
For comprehensive results and detailed analysis, please refer to the ultimate test.ipynb notebook or the published paper.
Using YOLOv4, we detect rooftops in the image and classify whether they are equipped with solar panels.
We classify the directional orientation of rooftops equipped with solar panels.
The tilt angle is classified based on rooftop type. In this example, the rooftop is a gable type, indicating an angle range of 22.5° to 45°.
The final stage segments solar panels (shown as white pixels) to calculate their area. The segmentation enables precise area computation by counting white pixels and converting to real-world measurements.
Example Result: 0.00011137690535388095 m²
# Clone the repository
git clone https://github.com/yourusername/DeepLearningSolarEnergy.git
cd DeepLearningSolarEnergy
# Install dependencies
pip install -r requirements.txtOpen and run the Jupyter notebook for the complete pipeline:
jupyter notebook "ultimate test.ipynb"DeepLearningSolarEnergy/
├── images/ # Dataset and labeling examples
├── result_images/ # Pipeline output examples
├── ultimate test.ipynb # Main implementation notebook
├── DeepLearningSolarEnergy.pdf # Research paper
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
└── README.md # This file
If you use this code or dataset in your research, please cite our paper:
@inproceedings{solar2022ai,
title={Deep Learning for Detecting Tilt Angle and Orientation of Photovoltaic Panels on Satellite Imagery},
author={[Your Name]},
booktitle={42nd SGAI International Conference on Artificial Intelligence},
pages={[page numbers]},
year={2022},
organization={Springer},
address={Cambridge, UK},
month={December},
doi={10.1007/978-3-031-21441-7_18}
}Read the full paper: Deep Learning for Detecting Tilt Angle and Orientation of Photovoltaic Panels on Satellite Imagery
- Google Maps for satellite imagery
- LabelImg tool for data annotation
- SGAI International Conference on Artificial Intelligence
This project is licensed under the MIT License - see the LICENSE file for details.
Note: This research contributes to renewable energy monitoring and planning by enabling automated analysis of solar panel installations at scale.