|
| 1 | +# Erasing Clouds from Satellite Imagery |
| 2 | + |
| 3 | +This project focuses on developing a deep learning model to remove clouds from satellite imagery. Clouds obstruct critical information in satellite images, making it difficult to analyze geographic, agricultural, and environmental features. By building a model that can effectively "erase" clouds, this project aims to provide clearer, more accurate satellite images for better analysis and decision-making. |
| 4 | + |
| 5 | +## Overview |
| 6 | + |
| 7 | +Satellite images are essential for various industries such as agriculture, weather forecasting, environmental monitoring, and more. However, clouds often cover parts of these images, obstructing the view of the Earth's surface. This project provides a solution by processing satellite images and removing clouds, resulting in a clearer image of the terrain below. |
| 8 | + |
| 9 | +The process involves training a deep learning model on paired images — one set of images containing clouds and another set of the same location without clouds. Through multiple training iterations, the model learns how to predict and generate cloud-free images, enhancing the usability of satellite imagery. |
| 10 | + |
| 11 | +## Features |
| 12 | + |
| 13 | +- **Cloud Removal from Satellite Images**: The model removes cloud cover from satellite images to reveal the underlying terrain. |
| 14 | +- **Loss Visualization**: Training progress is visualized using loss plots for both the generator and discriminator components. |
| 15 | +- **Customizable Design**: The model's training parameters can be adjusted to enhance performance based on specific datasets. |
| 16 | +- **Visual Representation**: The model provides visual feedback on training progress, with clear indications of where improvements are being made. |
| 17 | + |
| 18 | +## Setup |
| 19 | + |
| 20 | +To run this project locally, follow these steps: |
| 21 | + |
| 22 | +### Prerequisites |
| 23 | + |
| 24 | +- Python 3.x |
| 25 | +- Required libraries: |
| 26 | + - `matplotlib` |
| 27 | + - `numpy` |
| 28 | + - `torch` |
| 29 | + - `PIL` |
| 30 | + |
| 31 | +Install the required libraries using pip: |
| 32 | + |
| 33 | +```bash |
| 34 | +pip install matplotlib numpy torch pillow |
| 35 | +``` |
| 36 | + |
| 37 | +### Clone the Repository |
| 38 | + |
| 39 | +Clone this repository to your local machine: |
| 40 | + |
| 41 | +```bash |
| 42 | +git clone <repository-url> |
| 43 | +cd <repository-directory> |
| 44 | +``` |
| 45 | + |
| 46 | +### Running the Project |
| 47 | + |
| 48 | +1. Place the training and validation datasets in the appropriate folder (dataset structure to be defined based on your use case). |
| 49 | +3. Losses for both the generator and discriminator are plotted and saved as images after training. |
| 50 | + |
| 51 | +### Visualizing Losses |
| 52 | + |
| 53 | +The loss curves for the training process can be visualized using `matplotlib`: |
| 54 | + |
| 55 | +```python |
| 56 | +plt.show() |
| 57 | +``` |
| 58 | + |
| 59 | +You can find the generated loss plots in the project directory as `Loss.jpg`. |
| 60 | + |
| 61 | +## Usage |
| 62 | + |
| 63 | +After training, the model can be used to process new satellite images and remove cloud cover: |
| 64 | + |
| 65 | +```python |
| 66 | +python inference.py --input_image <path_to_cloudy_image> |
| 67 | +``` |
| 68 | + |
| 69 | +This will output a cloud-free image that can be used for further analysis. |
| 70 | + |
0 commit comments