Skip to content
Back to projects

Image Restoration with Deep Learning

Super-resolution (ESPCN) and denoising (U-Net) in PyTorch on DIV2K, benchmarked against bicubic and bilateral-filter baselines with PSNR, SSIM and LPIPS. Denoising gains about 9.8 dB over the baseline; 4x super-resolution is only marginally better than bicubic.

PythonPyTorchOpenCVscikit-imagepiqLPIPSDIV2K

Overview

Two image-restoration tasks behind one training and evaluation interface. ESPCN (five convolutions plus PixelShuffle) upsamples 4x-downscaled DIV2K images; a two-level U-Net removes Gaussian noise (sigma 0.03). The data pipeline uses random 256x256 patches with flips and rotations for training and deterministic, index-seeded crops for validation, so evaluation runs are comparable. Evaluation reports PSNR, SSIM and LPIPS against classical baselines and writes CSV tables and side-by-side comparison images. On validation crops the U-Net reached 33.96 dB against 24.17 dB for the bilateral filter, ESPCN x4 reached 27.81 dB against 27.74 dB for bicubic, and ESPCN x2 did not beat bicubic in PSNR (33.01 vs 33.66 dB).

Key Highlights

  • ✓ESPCN sub-pixel super-resolution and U-Net denoising in one CLI
  • ✓Deterministic validation crops for comparable runs
  • ✓PSNR, SSIM and LPIPS against bicubic and bilateral-filter baselines
  • ✓MSE or L1 loss, checkpoint resume and best-model saving
  • ✓Honest reporting: x2 super-resolution did not beat bicubic

Technical Deep Dive

Problem & Goal

Compare small learned models with classical restoration methods on the same degraded inputs and measure where learning actually helps.

My Role & Scope

Team project of two students (report in Polish in the repository). The repository does not record per-person contributions, so no split is claimed here.

Screenshots & Images

Image Restoration with Deep Learning - Image 1
Click to expand
1 / 1Use arrow keys to navigate