Skip to content

Hack2Future-IIIT-Dharwad/byte_bundits

Repository files navigation

Image Upscaling Application

UI

download pdf

Description

This application leverages advanced denoising and upscaling algorithms to improve the quality of low-resolution images. The implemented techniques include BM3D (Block-Matching and 3D Filtering), ESRGAN (Enhanced Super-Resolution Generative Adversarial Network), and FPGAN v1.3 (Feature-Preserving Generative Adversarial Network). These methods ensure high-quality image enhancement, preserving fine details and realistic textures.

MAIN STEP = After taking an input image, it is divided into smaller sections called "packs." Each model analyzes these packs individually to produce high-quality output.

Explanation: Input Image: You start with a single high-resolution image. Dividing into Packs: This image is segmented into smaller pieces (packs) to make processing easier and more efficient. Individual Analysis: Each pack is analyzed separately by the chosen model(s). This allows for more detailed processing, as the model can focus on smaller areas of the image. Output Quality: By handling the image in these smaller sections, the models can generate higher-quality results, enhancing clarity and detail in the final output. This step is crucial for managing large images and ensuring that the output meets the desired quality standards.

STEP 1: BM3D (Block-Matching and 3D Filtering) is a powerful denoising algorithm, particularly effective in image processing. It works by grouping similar 2D patches from a noisy image, stacking them into a 3D array, and applying collaborative filtering through a transform-domain approach. This process enhances signal structures while reducing noise. BM3D is known for its ability to preserve fine details, outperforming traditional methods, especially in Gaussian noise removal, making it popular in applications requiring high-quality denoising

step 2: ESRGAN (Enhanced Super-Resolution Generative Adversarial Network) is a deep learning model that improves low-resolution images by generating high-resolution outputs. Building on SRGAN, it uses a Residual-in-Residual Dense Block (RRDB) to capture finer details, while a GAN structure helps create realistic textures. ESRGAN incorporates perceptual loss, adversarial loss, and content loss for high-quality outputs, and uses a discriminator to ensure sharp, realistic images. Its combination of texture generation and fine-detail preservation makes ESRGAN popular in video game upscaling, media restoration, and AI art applications

STEP3:FPGANv1.3 (Feature-Preserving Generative Adversarial Network) is a GAN-based model tailored for high-quality face restoration from low-resolution or degraded images. Unlike basic GANs, FPGAN focuses on preserving facial features while enhancing overall image quality. It combines a global restoration network with a local network dedicated to maintaining important facial details (eyes, nose, mouth). By training on paired low- and high-quality images, FPGAN can generate sharp, realistic faces. FPGAN v1.3 is widely used for image editing, restoration, and applications needing high fidelity in facial features, like photo restoration..

here is plantuml chart-

flow chart

Before

Before Image

After

After Image

Before

Before Image

After

After Image

Before

Before Image

After

After Image

Table of Contents

Installation

To set up and run the application locally, follow these steps:

git clone https://github.com/Hack2Future-IIIT-Dharwad/Byte_bundits.git


cd your-repo


pip install -r requirements.txt


python app.py
>>>>>>> 4f898874b264cc4917769dc45c75c37259696a23
=======



## Description
This application leverages advanced denoising and upscaling algorithms to improve the quality of low-resolution images. The implemented techniques include BM3D (Block-Matching and 3D Filtering), ESRGAN (Enhanced Super-Resolution Generative Adversarial Network), and FPGAN v1.3 (Feature-Preserving Generative Adversarial Network). These methods ensure high-quality image enhancement, preserving fine details and realistic textures.


MAIN STEP = After taking an input image, it is divided into smaller sections called "packs." Each model analyzes these packs individually to produce high-quality output.

Explanation:
Input Image: We start with a single high-resolution image.
Dividing into Packs: This image is segmented into smaller pieces (packs) to make processing easier and more efficient.
Individual Analysis: Each pack is analyzed separately by the chosen model(s). This allows for more detailed processing, as the model can focus on smaller areas of the image.
Output Quality: By handling the image in these smaller sections, the models can generate higher-quality results, enhancing clarity and detail in the final output.
This step is crucial for managing large images and ensuring that the output meets the desired quality standards.

STEP 1:
BM3D (Block-Matching and 3D Filtering) is a powerful denoising algorithm, particularly effective in image processing. It works by grouping similar 2D patches from a noisy image, stacking them into a 3D array, and applying collaborative filtering through a transform-domain approach. This process enhances signal structures while reducing noise. BM3D is known for its ability to preserve fine details, outperforming traditional methods, especially in Gaussian noise removal, making it popular in applications requiring high-quality denoising

step 2: ESRGAN (Enhanced Super-Resolution Generative Adversarial Network) is a deep learning model that improves low-resolution images by generating high-resolution outputs. Building on SRGAN, it uses a Residual-in-Residual Dense Block (RRDB) to capture finer details, while a GAN structure helps create realistic textures. ESRGAN incorporates perceptual loss, adversarial loss, and content loss for high-quality outputs, and uses a discriminator to ensure sharp, realistic images. Its combination of texture generation and fine-detail preservation makes ESRGAN popular in video game upscaling, media restoration, and AI art applications

STEP3:FPGANv1.3 (Feature-Preserving Generative Adversarial Network) is a GAN-based model tailored for high-quality face restoration from low-resolution or degraded images. Unlike basic GANs, FPGAN focuses on preserving facial features while enhancing overall image quality. It combines a global restoration network with a local network dedicated to maintaining important facial details (eyes, nose, mouth). By training on paired low- and high-quality images, FPGAN can generate sharp, realistic faces. FPGAN v1.3 is widely used for image editing, restoration, and applications needing high fidelity in facial features, like photo restoration and video enhancement..

here is the results 


### Before
![Before Image](images/before_image.jpg)

### After
![After Image](images/after_image.jpg)  



### Before
![Before Image](images/before_image.jpg)

### After
![After Image](images/after_image.jpg)  



## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Algorithms](#algorithms)
  - [BM3D](#bm3d)
  - [ESRGAN](#esrgan)
  - [FPGAN v1.3](#fpgan-v13)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## Installation
To set up and run the application locally, follow these steps:

```bash
# Clone the repository
git clone https://github.com/Hack2Future-IIIT-Dharwad/Byte_bundits.git

# Navigate to the project directory
cd your-repo

# Install dependencies
pip install -r requirements.txt

# Start the Flask server
python app.py
>>>>>>> 4f898874b264cc4917769dc45c75c37259696a23
>>>>>>> 88f1ca129313f9b4f38c0d71d8d3f5eca2005956
# byte_bundits
# byte_bundits
=======
(Your changes)
=======
(Changes from the remote)
>>>>>>> (commit hash)
>>>>>>> 0f4bde046203c56ac26d461913ffe6d7e07e5511

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages