--- tags: - super-resolution - image-enhancement - pytorch - deep-learning datasets: - DIV2K - Set5 license: mit model-index: - name: EDSR results: - task: name: Image Super-Resolution type: image-super-resolution dataset: name: DIV2K type: DIV2K metrics: - name: PSNR type: psnr value: 30.50 - name: SSIM type: ssim value: 0.85 --- # Super Resolution Model Comparison 🚀 **Super Resolution Model Comparison** is a web application built using **Streamlit** that allows users to upload a low-resolution image and compare its enhancement using various super-resolution models (SRCNN, VDSR, and EDSR). The application provides image quality metrics (PSNR and SSIM) and processing time for each model to assess their performance. --- ## Features - **Image Upload**: Upload low-resolution images in PNG, JPG, or JPEG formats. - **Model Comparison**: Enhance the uploaded image using three popular super-resolution models: - **SRCNN**: Super-Resolution Convolutional Neural Network. - **VDSR**: Very Deep Super-Resolution Network. - **EDSR**: Enhanced Deep Super-Resolution Network. - **Visual Comparison**: View the enhanced output for each model side-by-side. - **Performance Metrics**: - **Processing Time**: Time taken by each model to process the image. - **Image Quality**: - **PSNR** (Peak Signal-to-Noise Ratio): Measures the quality of the enhanced image compared to the original. - **SSIM** (Structural Similarity Index): Assesses structural similarity between the images. - **Download Enhanced Images**: Download the enhanced images generated by each model. --- ## Installation ### Prerequisites - Python 3.8 or above - Pip package manager ### Steps 1. **Clone the Repository** ```bash git clone cd ``` 2. **Install Dependencies** ```bash pip install -r requirements.txt ``` 3. **Download Pre-trained Weights** - Place the pre-trained model weights in the `checkpoints/` directory: - `srcnn_best.pth` for SRCNN - `vdsr_best.pth` for VDSR - `edsr_best.pth` for EDSR 4. **Run the Application** ```bash streamlit run app.py ``` --- ## Usage 1. Open the application in your browser (default URL: `http://localhost:8501`). 2. Upload a low-resolution image using the file uploader. 3. View the enhanced images generated by each model. 4. Compare the performance and quality metrics for each model. 5. Download the enhanced images for further use. --- ## File Structure ``` . ├── app.py # Main Streamlit application script ├── models/ # Directory for model definitions │ ├── srcnn.py # SRCNN model │ ├── vdsr.py # VDSR model │ └── edsr.py # EDSR model ├── checkpoints/ # Directory for storing pre-trained weights │ ├── srcnn_best.pth │ ├── vdsr_best.pth │ └── edsr_best.pth ├── requirements.txt # Python dependencies └── README.md # Documentation ``` --- ## Dependencies Install the required Python libraries: - `torch`: PyTorch for deep learning. - `torchvision`: Image transformations and utilities. - `streamlit`: Interactive web interface. - `pillow`: Image processing library. - `numpy`: Numerical operations. - `scikit-image`: Image quality metrics (PSNR, SSIM). --- ## Models ### 1. SRCNN - A shallow neural network for super-resolution. - Faster but may have lower performance on complex images. ### 2. VDSR - A deeper network providing improved results at the cost of longer processing time. ### 3. EDSR - Enhanced deep network specifically designed for high-quality super-resolution. --- ## Metrics - **PSNR**: Measures the similarity of the enhanced image to the original in terms of pixel-level accuracy. Higher values indicate better quality. - **SSIM**: Evaluates the structural similarity of the enhanced image to the original. Higher values indicate better preservation of structural features. --- ## Customization ### Adding New Models 1. Add the new model definition to the `models/` directory. 2. Update the `load_model()` function in `app.py` to include the new model. ### Updating Pre-trained Weights Place updated weights in the `checkpoints/` directory with the naming convention `_best.pth`. --- ## Future Enhancements - Support for real-time video super-resolution. - Integration with additional state-of-the-art super-resolution models. - GPU acceleration for faster processing. --- ## License This project is open-source and available under the MIT License. --- ## Contact For queries or contributions, reach out via GitHub or email. Happy enhancing! 🚀