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
  1. 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.