neural-guided bilateral filter (nbf)
tiny unet (93k params) that predicts per-pixel sigma_s, sigma_r and a range guide for two passes of a differentiable bilateral filter (7x7 disc window). the output is always a normalised weighted average of noisy neighbours, so it behaves like a bilateral filter that picks its own parameters. trained blind on BSD400 patches with gaussian noise sigma in [0, 55] (grayscale, one channel, for rgb run each channel as a batch item).
part of a university lab task, code and report: https://github.com/manasrpandya/NLP_CV_Lab/tree/main/projects/07-bilateral-denoising live demo (runs this file in the browser): https://nlp-cv-lab.vercel.app/p/bilateral-denoising
io
- input
x: float32 (n, 1, h, w) in [0, 1], any h, w - output
y: float32 (n, 1, h, w) denoised - output
maps: float32 (n, 5, h, w) = sigma_s pass 1, sigma_s pass 2, sigma_r pass 1, sigma_r pass 2, guide
results (PSNR dB, gaussian noise, gray)
| set | s=15 | s=25 | s=50 |
|---|---|---|---|
| set12 | 31.93 | 29.60 | 26.44 |
| bsd68 | 30.82 | 28.38 | 25.48 |
| kodak24 | 32.11 | 29.79 | 26.84 |
opset 17, 462 kB, max abs diff vs pytorch 7.6e-06.
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support