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