sayed99's picture
initialized both deblurer
61d360d
# Debluring Application
This application provides tools for deblurring images using deep learning. The system consists of:
1. A **DeblurGAN module** for image deblurring using deep learning
2. A **FastAPI backend** for processing images via API endpoints
3. A **Streamlit frontend** for a user-friendly web interface
## Features
- Upload and deblur images with a single click
- Modern web interface with side-by-side comparison of original and deblurred images
- Download deblurred results
- GPU-accelerated processing (with fallback to CPU)
- Command-line interface for batch processing
## Requirements
- Python 3.7+
- PyTorch
- CUDA (optional, for GPU acceleration)
- Other dependencies listed in requirements.txt
## Setup Instructions
1. Clone this repository:
```
git clone <repo-url>
cd Debluring
```
2. Install dependencies:
```
pip install -r requirements.txt
```
**Note**: This application requires the `pretrainedmodels` package for the deblurring model. If you encounter any issues, you can manually install the required packages:
```
pip install pretrainedmodels torchsummary albumentations opencv-python-headless
```
## Running the Application
You can run the application in three different ways:
### 1. Standalone DeblurGAN Module
Process all images in the `inputs/` directory and save results to `outputs/`:
```
python deblur_module.py
```
### 2. API Server
Start the FastAPI server:
```
python api.py
```
The API will be available at: http://localhost:8001
- POST `/deblur/` - Upload an image for deblurring
- GET `/status/` - Check API status
- GET `/diagnostics/` - Get system diagnostics
### 3. Web Interface
First, ensure the API server is running, then start the Streamlit interface:
```
python app.py
```
The web UI will be available at: http://localhost:8501
### 4. All-in-One (Optional)
Use the run.py script to start both the API server and the Streamlit interface:
```
python run.py
```
## Using the Application
1. **Command-line mode**:
- Place your blurry images in the `inputs/` directory
- Run `python deblur_module.py`
- Find the deblurred results in the `outputs/` directory
2. **Web interface mode**:
- Start both the API and the Streamlit app
- Upload an image through the web interface
- Click "Deblur Image" and wait for processing
- Download the deblurred image when ready
## Troubleshooting
If you encounter any issues:
1. Check the API diagnostics endpoint: http://localhost:8001/diagnostics/
2. Review logs in the `logs/` directory for detailed error information.
3. Make sure your system has sufficient resources for running the deblurring model.
4. If you're experiencing CUDA errors, the application will automatically fall back to CPU processing.
5. For large images, the application will automatically resize them to a maximum dimension of 2000 pixels to avoid memory issues.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgements
This application is based on the DeblurGAN architecture for image deblurring with modifications to create a user-friendly interface and robust error handling.