← all repositories
swz30/MPRNet

Restoring photos by passing notes between processing stages

MPRNet breaks image repair into a multi-stage pipeline where early and late layers trade information to balance fine details with global context.

1.4k stars Python Computer Vision
MPRNet
Not currently ranked — collecting fresh signals.
star history

What it does

MPRNet is a PyTorch implementation of a CVPR 2021 architecture that tackles image deblurring, deraining, and denoising. Instead of attempting restoration in a single pass, it chains multiple stages where each stage refines the output of the previous one. The authors report PSNR gains of 4 dB on Rain100L, 0.81 dB on GoPro, and 0.21 dB on DND against prior state-of-the-art methods.

The interesting bit

The architecture mixes encoder-decoder blocks for high-level context with a high-resolution branch that preserves local detail, but the real twist is how stages talk to each other. Information flows sequentially from early to late stages while lateral connections shuttle data between feature blocks inside each stage, aiming to prevent information loss. Each stage also uses a supervised attention module to reweight local features pixel-by-pixel based on intermediate supervision.

Key highlights

  • Multi-stage progressive design splits restoration into manageable steps rather than one-shot recovery.
  • Two-faceted information exchange: sequential stage-to-stage flow plus lateral connections within feature blocks.
  • Per-pixel supervised attention modules adaptively reweight features at each stage.
  • Pre-trained models and training code provided for deblurring, deraining, and denoising.
  • Reportedly inspired the winning solutions in two NTIRE 2021 challenges.

Caveats

  • The codebase targets PyTorch 1.1.0, Python 3.7, and CUDA 9.0 on Ubuntu 16.04, so expect dependency archaeology if you are on modern hardware.
  • The README does not quantify inference speed, memory footprint, or model size.

Verdict

Worth a look if you need a well-documented baseline for low-level vision tasks and do not mind wrestling with legacy PyTorch versions. Skip it if you are hunting for the latest transformer-based restorer—the authors’ own Restormer or MIRNetv2 might be more current.

Frequently asked

What is swz30/MPRNet?
MPRNet breaks image repair into a multi-stage pipeline where early and late layers trade information to balance fine details with global context.
Is MPRNet open source?
Yes — swz30/MPRNet is an open-source project tracked on heatdrop.
What language is MPRNet written in?
swz30/MPRNet is primarily written in Python.
How popular is MPRNet?
swz30/MPRNet has 1.4k stars on GitHub.
Where can I find MPRNet?
swz30/MPRNet is on GitHub at https://github.com/swz30/MPRNet.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.