NPPE3 4x Super-Resolution + Denoising
CNN (RRDB-lite / EDSR-style) that jointly denoises low-light images and performs 4x super-resolution (256x160 -> 1024x640).
Architecture
- Head conv (3 -> 96 channels)
- 16 residual blocks (conv-relu-conv, residual scale 0.2)
- 2x PixelShuffle upsampling blocks (x2 each, total x4)
- Global residual connection to bicubic-upsampled input
- Trained with EMA (decay 0.999) of weights
Training
- Loss: L1 pixel loss
- Optimizer: Adam, lr 2e-4, cosine annealed over 150 epochs
- Patch-based training: 64x64 LR patches -> 256x256 HR patches, random flips
- Dataset: 1105 train pairs, 267 val pairs (low-light noisy LQ -> clean HQ)
Validation results (competition metric-style PSNR: grayscale, flattened, every 8th pixel)
- Full validation set (267 images): 39.245 dB
- With flip test-time augmentation (4-way self-ensemble): 39.271 dB
Files
best.ptโ best EMA checkpoint (state_dict)last.ptโ final EMA checkpoint (state_dict)
Usage
import torch
from model import SRNet # see training notebook for the class definition
model = SRNet(ch=96, n_blocks=16, scale=4)
model.load_state_dict(torch.load("best.pt", map_location="cpu"))
model.eval()
Trained for the DLP 26T2 NPPE-3 Kaggle competition (low-light image denoising + 4x super-resolution).
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support