/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
pytorch
Опубликована
7 сен 2026

nppe3-lowlight-sr

Преобразование изображенийИзображение, текст → изображение

Сеть восстановления изображений в стиле NAFNet, которая за один проход очищает шумные изображения при слабом освещении и увеличивает их разрешение в 4 раза.

0скачиваний за 30 дней0лайковвеса обновлены7 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

NPPE-3 — разработанная участником соревнования DLP 26T2 NPPE-3 сеть восстановления изображений в стиле NAFNet, обученная с нуля на данных соревнования. Она за один проход принимает шумное изображение при слабом освещении размером 160 × 256 и выдаёт очищенное изображение, увеличенное в 4 раза, до 640 × 1024. В сети 16 блоков NAF шириной 64 и два этапа PixelShuffle; модель содержит 0,83 млн параметров и использует билинейно увеличенный вход как основу для корректировки.

Модель предназначена для совместного шумоподавления и сверхразрешения изображений с низкой освещённостью и шумом, соответствующим обучающим данным. Она оптимизирована по PSNR на оттенках серого: на валидации соревнования указаны значения 39,213 дБ после дообучения и 39,038 дБ при ансамблировании восьми преобразований. Обучение с нуля проведено на 1105 парных изображениях. Лицензия репозитория — Apache-2.0.

Модель ожидает конкретный тип деградации — слабое освещение, сенсорный шум и уменьшение разрешения в 4 раза — и поддерживает только увеличение в 4 раза. Оптимизация по PSNR даёт консервативное восстановление: мелкие текстуры могут выглядеть сглаженными по сравнению с результатами генеративных моделей.

Сценарии применения

  • шумоподавление изображений при слабом освещении
  • увеличение разрешения тёмных шумных изображений в 4 раза
  • восстановление деталей изображений с сенсорным шумом
  • подготовка изображений к оценке по PSNR на оттенках серого

Ограничения

Модель обучена на данных соревнования и рассчитана на конкретное сочетание слабого освещения, сенсорного шума и уменьшения разрешения в 4 раза; другая степень увеличения не поддерживается. Оптимизация по PSNR приводит к консервативному восстановлению, поэтому мелкие текстуры могут быть сглажены.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

NPPE-3: Low-Light Denoising + 4x Super Resolution

A NAFNet-style restoration network that takes a low-resolution, noisy, low-light image and produces a 4x larger, denoised image in a single forward pass.

Trained from scratch for the DLP 26T2 NPPE-3 competition, where submissions are scored by PSNR on grayscale pixels of the restored images.

Task

InputOutput
Resolution160 x 256640 x 1024
Conditionnoisy, low lightdenoised, 4x upscaled

Denoising and upscaling are handled jointly by one network rather than as two stages.

Architecture

  • 16 NAF blocks at width 64, operating at the low resolution
  • each block: LayerNorm → 1x1 conv → 3x3 depthwise conv → SimpleGate → simplified channel attention → 1x1 conv, followed by a small gated feed-forward part
  • two PixelShuffle stages (2x each) for the 4x upsampling
  • a bilinear upscale of the input is added to the output, so the network only learns the correction rather than the whole image
  • 0.83 M parameters, no GAN and no perceptual loss, since both trade PSNR for sharpness

Data

1105 paired training images, 267 held out for validation, 60 test images. Inputs average a brightness of 43/255, and their targets 43.5/255, so the task is dominated by denoising and detail recovery rather than global brightening.

Training

Single Tesla T4, mixed precision, roughly 3.6 hours total.

Stage 1 — restoration (30,000 iterations, 155 min)

  • Charbonnier (smooth L1) loss on RGB
  • random 64x64 input crops (256x256 targets), random flips and 90° rotations
  • AdamW, lr 2e-4 with a cosine schedule to 1e-7, batch 16
  • EMA of the weights (decay 0.999); validation is scored with the averaged weights

Stage 2 — metric-aligned fine-tuning (6,000 iterations, 62 min)

  • loss switched to grayscale MSE + 0.1 × Charbonnier, because the competition scores PSNR on grayscale rather than RGB
  • larger 128x128 crops for more context per step
  • AdamW, lr 5e-5 with a cosine schedule, batch 8
  • the checkpoint is only overwritten when validation PSNR actually improves

Results

Validation grayscale PSNR, measured on full images the way the competition scores them.

CheckpointVal gray PSNR (20 images)
After stage 139.147 dB
After stage 239.213 dB

Final model on a larger 30-image validation subset:

InferenceVal gray PSNR
Single pass38.991 dB
8x self-ensemble (flips + rotations)39.038 dB

The self-ensemble was the better of the two on identical images, so it was used for the test predictions. Both fine-tuning and the self-ensemble are small gains (+0.07 dB and +0.05 dB respectively) — the model had largely converged after stage 1.

Inference runs as a single pass over the whole 160x256 input, with no tiling. The image is small enough to fit in one forward pass, which also avoids blending seams between tiles.

Files

FileDescription
best_model.pthtrained weights (state dict, 3.4 MB)
model.pymodel definition and a load_model helper

Usage

import numpy as np
import torch
from PIL import Image
from model import load_model

model = load_model("best_model.pth", device="cpu")

img = np.array(Image.open("low_light_input.png").convert("RGB"))
x = torch.from_numpy(img).permute(2, 0, 1).float().div(255).unsqueeze(0)

with torch.no_grad():
    out = model(x).clamp(0, 1)

out = (out[0].permute(1, 2, 0).numpy() * 255).round().astype(np.uint8)
Image.fromarray(out).save("restored.png")

Weights can also be pulled directly:

from huggingface_hub import hf_hub_download
path = hf_hub_download("vikas-06978/nppe3-lowlight-sr", "best_model.pth")

Limitations

  • trained only on this competition's data, so it expects the same degradation: low light plus sensor-like noise at a 4x downscale
  • fixed 4x factor — the PixelShuffle head cannot produce other scales
  • optimised purely for PSNR, so outputs are faithful but smoother than a GAN-based model would produce; fine textures are reconstructed conservatively

License

Apache 2.0.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pytorch

Нельзя запустить

Модели «картинка → картинка» пока не запускаются.

Ревизия весов
c2b559f

0 моделей