Downloads · 30 days
8
2% of all-time downloads
dronefreak/clearview-derain-resnet34-unet
clearview-derain-resnet34-unet is a image-to-image model from dronefreak. Use it when you need one image transformed into another. It is set up for pytorch. The card lists the license as apache-2.0.
<p align="center" <img src="demoshowcase.jpg" alt="ClearView demo showcase: rainy input vs. derained output across four scenes (ResNet34-UNet)"/ </p
Downloads · 30 days
8
2% of all-time downloads
All-time downloads
483
Public
Repo size
98.8 MB
Likes
0
Public
Click a slice to open those files.
.pth98.4 MB · 100%
From the Hugging Face model README
A U-Net [8] with a ResNet-34 [9] encoder (ImageNet-pretrained, fine-tuned end to end), trained on a blended synthetic + real-world rain set, selecting checkpoints against a blended real-world validation metric rather than a single benchmark, for a model that holds up across domains instead of maxing out one dataset's quirks. Not a mirror of someone else's checkpoint, see Citation.
Requires the ClearView library:
pip install git+https://github.com/dronefreak/clearview.git
from clearview.api import DerainingModel
from huggingface_hub import hf_hub_download
weights = hf_hub_download(repo_id="dronefreak/clearview-derain-resnet34-unet", filename="clearview-derain-resnet34-unet.pth")
model = DerainingModel.from_pretrained("resnet34_unet", weights=weights)
clean = model.process("rainy_image.png", output_path="derained.png")
5 sources combined via ClearView's --mix-config (recipe), oversampling the real-world sources 2x:
| Source | Type | Weight | Pairs |
|---|---|---|---|
| Rain13K [1] | Synthetic | 1.0 | 13,711 |
| DDN-Data / Rain1400 [4] | Synthetic | 1.0 | 12,600 |
| SPA-Data [5] | Real-world | 2.0 | 6,385 |
| RealRain-1k-H [6] | Real-world | 2.0 | 784 |
| RealRain-1k-L [6] | Real-world | 2.0 | 784 |
~62% synthetic / ~38% real by effective sampling weight (before oversampling: ~77%/23% by raw pair count).
Checkpoint selection uses a separate blended validation set (recipe): SPA-Data val (capped to 150 of 1,000 pairs so it can't dominate), RealRain-1k-H/L validation (112 each), and Rain100L (100) as a synthetic sanity anchor.
Full per-dataset breakdown across all 6 tracked metrics, computed on each source's own held-out test/eval split (not the blended validation set used for checkpoint selection during training).
| Test Set | Domain | PSNR | SSIM | MAE | MSE | Rain Removal Rate | NIQE |
|---|---|---|---|---|---|---|---|
| Rain100L [2] | Synthetic | 29.00 | 0.894 | 0.0239 | 0.00153 | -0.034 | 10.61 |
| Rain100H [2] | Synthetic | 24.67 | 0.774 | 0.0433 | 0.00426 | 0.665 | 12.56 |
| Test100 [3] | Synthetic | 26.38 | 0.839 | 0.0372 | 0.00281 | 0.404 | 9.55 |
| Test1200 [3] | Synthetic | 28.19 | 0.852 | 0.0312 | 0.00225 | 0.300 | 7.58 |
| Test2800 [4] | Synthetic | 28.31 | 0.875 | 0.0277 | 0.00169 | 0.224 | 791.37 |
| DDN-Data [4] | Synthetic | 28.47 | 0.879 | 0.0274 | 0.00166 | 0.202 | 1032.63 |
| SPA-Data [5] | Real-world | 36.97 | 0.971 | 0.0096 | 0.00042 | -0.570 | 6.52 |
| RealRain-1k-H [6] | Real-world | 35.21 | 0.969 | 0.0128 | 0.00066 | 0.735 | 4.51 |
| RealRain-1k-L [6] | Real-world | 36.88 | 0.977 | 0.0101 | 0.00041 | 0.664 | 4.66 |
| AllWeather (rain+fog) [7] | Cross-domain (stress) | 13.54 | 0.558 | 0.1904 | 0.05614 | 0.110 | 223.11 |
Two negative Rain Removal Rate values here (Rain100L: -0.034, SPA-Data: -0.570) are worth calling out explicitly: PSNR/SSIM are still decent on both, but the Sobel-residual metric says this checkpoint added slightly more high-frequency error than it removed on those two sets specifically, likely mild over-sharpening/artifacting from the ResNet encoder path rather than a training failure. See Use Cases below.
Metric definitions:
1 - (residual after) / (residual before). 1.0 means perfect rain removal, 0.0 means no change, negative means the model added more high-frequency error than it removed (e.g. hallucinated detail or over-sharpening). Higher is better.How this model compares to the rest of the ClearView model zoo (PSNR / SSIM), same test sets and evaluation protocol for every model. Columns sorted highest to lowest by average PSNR across the 9 rain-only test sets.
| Test Set | Domain | Restormer | NAFNet (Large) | NAFNet (Mid) | Restormer-Small | UNet (Vanilla) | NAFNet (Small) | ResNet50-UNet | ResNet34-UNet | ResNet18-UNet | Histoformer |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Rain100L [2] | Synthetic | 36.04 / 0.969 | 34.59 / 0.961 | 34.14 / 0.957 | 31.57 / 0.933 | 30.96 / 0.932 | 30.20 / 0.922 | 29.79 / 0.906 | 29.00 / 0.894 | 28.87 / 0.893 | 25.83 / 0.836 |
| Rain100H [2] | Synthetic | 27.78 / 0.868 | 27.65 / 0.856 | 27.72 / 0.849 | 25.92 / 0.806 | 26.41 / 0.823 | 25.02 / 0.763 | 25.37 / 0.794 | 24.67 / 0.774 | 24.95 / 0.776 | 12.22 / 0.364 |
| Test100 [3] | Synthetic | 28.65 / 0.881 | 27.71 / 0.865 | 27.96 / 0.873 | 26.10 / 0.842 | 24.91 / 0.836 | 25.26 / 0.820 | 26.16 / 0.839 | 26.38 / 0.839 | 25.99 / 0.833 | 22.01 / 0.684 |
| Test1200 [3] | Synthetic | 31.91 / 0.906 | 31.37 / 0.898 | 31.28 / 0.898 | 30.66 / 0.882 | 29.08 / 0.868 | 30.43 / 0.874 | 28.44 / 0.856 | 28.19 / 0.852 | 28.03 / 0.845 | 24.20 / 0.727 |
| Test2800 [4] | Synthetic | 32.05 / 0.928 | 31.75 / 0.924 | 31.66 / 0.923 | 31.00 / 0.914 | 30.61 / 0.909 | 30.58 / 0.906 | 28.67 / 0.883 | 28.31 / 0.875 | 28.34 / 0.875 | 24.71 / 0.785 |
| DDN-Data [4] | Synthetic | 32.21 / 0.931 | 31.90 / 0.927 | 31.84 / 0.926 | 31.28 / 0.918 | 30.67 / 0.912 | 30.83 / 0.910 | 28.72 / 0.886 | 28.47 / 0.879 | 28.42 / 0.878 | 25.04 / 0.784 |
| SPA-Data [5] | Real-world | 44.67 / 0.989 | 41.99 / 0.986 | 41.77 / 0.986 | 38.46 / 0.978 | 39.01 / 0.980 | 37.13 / 0.973 | 37.07 / 0.973 | 36.97 / 0.971 | 36.55 / 0.970 | 32.18 / 0.929 |
| RealRain-1k-H [6] | Real-world | 40.28 / 0.985 | 39.34 / 0.982 | 38.68 / 0.980 | 35.29 / 0.969 | 35.98 / 0.971 | 34.33 / 0.957 | 34.94 / 0.970 | 35.21 / 0.969 | 34.64 / 0.966 | 21.86 / 0.761 |
| RealRain-1k-L [6] | Real-world | 42.35 / 0.989 | 41.17 / 0.987 | 40.64 / 0.986 | 37.56 / 0.978 | 38.04 / 0.980 | 36.59 / 0.970 | 36.52 / 0.978 | 36.88 / 0.977 | 36.25 / 0.975 | 25.47 / 0.867 |
| AllWeather (rain+fog) [7] | Cross-domain (stress) | 13.72 / 0.584 | 13.53 / 0.576 | 13.64 / 0.579 | 13.59 / 0.572 | 13.66 / 0.570 | 13.59 / 0.574 | 13.61 / 0.555 | 13.54 / 0.558 | 13.66 / 0.558 | 30.75 / 0.923 |
All ClearView models trained under the identical mixed-domain recipe, only batch size/accumulation steps vary per architecture size. Histoformer is included as an external, inference-only reference point (original authors' checkpoint, not trained under this recipe), its strong AllWeather (rain+fog) score and comparatively weak scores on the rain-only test sets reflect that it was trained on a rain+fog+snow mix, while ClearView's current mix is rain-only. ResNet34-UNet currently trails the rest of the ClearView-native lineup on every rain-only test set, at 24.5M params it isn't the smallest option either (NAFNet Small is 1.1M), so treat it as a baseline/reference point within the zoo rather than the model to reach for by default.
Good for: dashcam/surveillance footage, photo restoration, real-world rain (not just synthetic-style streaks); a reference point for how a plain ImageNet-pretrained ResNet encoder compares against ClearView's purpose-built architectures on this task.
Limitations: no temporal consistency for video (processes frames independently); AllWeather rain+fog is an explicit out-of-scope stress test, fog was not in the training mix and this model is not expected to handle it; trails every other ClearView model on rain-only test sets; negative Rain Removal Rate on Rain100L and SPA-Data specifically, PSNR/SSIM are still reasonable there but the residual high-frequency error metric suggests mild over-sharpening/artifacting rather than clean streak removal on those two sets.
clearview-train --model resnet34_unet --mix-config configs/mix/rain_mixed_synthetic_real.yaml --mix-sampler \
--val-mix-config configs/mix/rain_mixed_val.yaml --loss custom --loss-config '{"charbonnier": {"weight": 1.0}}' \
--crop-size 256 --batch-size 64 --epochs 100 --mixed-precision --ema --compile \
--output-dir ./runs/rain_mixed_resnet34_unet
@software{saksena2025clearview,
author = {Saksena, Saumya Kumaar},
title = {ClearView: Practical Image Deraining},
year = {2025},
url = {https://github.com/dronefreak/clearview}
}
Architecture and datasets this model builds on:
Full bibtex for each: main repo README.
Saumya Kumaar Saksena, GitHub Issues