Lumina v2 β perceptual image quality with spatial explanations
No-reference image quality assessment (NR-IQA). Given a photograph, Lumina predicts the mean opinion score (0β100, KonIQ-10k scale) a panel of human viewers would give it, and explains the score:
- quality map: local quality for every 16Γ16 region
- attention map: where viewers look; the score is the attention-weighted mean of the quality map
- six defect maps + scores: blur, noise, artifacts, exposure, contrast, colour
- five perceptual attributes (SPAQ-calibrated): sharpness, noise-free, contrast, colourfulness, brightness
Architecture
CLIP-pretrained ConvNeXt-Base (convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384), stride-8/16/32 features fused on the 1/16 grid, four light
heads. 92M parameters. Fully convolutional: images are scored at native aspect (long side β€ 512 px, short β€ 384 px).
Training
Joint multi-source training on an RTX 5090 (bf16, EMA, AdamW, cosine schedule, 40 epochs): KonIQ-10k MOS (official 7,058 train split) Β· KonIQ++ defect votes Β· SPAQ MOS + attributes (8,900) Β· KADID-10k MOS + distortion families (8,190, reference-disjoint split) Β· on-the-fly synthetic degradations with a self-supervised ranking constraint (degraded copy must score below its original). Losses: smooth-L1 + PLCC + pairwise rank on MOS, masked BCE on defects, L1 on attributes; per-dataset affine calibration.
Results
| Test set | v2 SRCC | v2 PLCC | v1 SRCC | v1 PLCC |
|---|---|---|---|---|
| KonIQ-10k (official test, 2,015) | 0.940 | 0.950 | 0.894 | 0.919 |
| LIVE Challenge (zero-shot, 1,169) | 0.830 | 0.837 | 0.742 | 0.776 |
| SPAQ (held-out 20%, 2,225) | 0.930 | 0.934 | 0.851 | 0.843 |
| KADID-10k (held-out reference scenes) | 0.882 | 0.887 | 0.521 | 0.543 |
v1 = the original EfficientNet-B0 regressor. It was trained on a random split of all of KonIQ, so its KonIQ test number is inflated by train/test overlap; LIVE-C and SPAQ are the fair comparisons. v2 numbers use horizontal-flip TTA.
Files
lumina_v2.int8.onnx: dynamic int8 (MatMul) for CPU servinglumina_v2.onnx: fp32lumina_v2.json: normalisation, KonIQ score quantiles (for percentiles), label namesmetrics.json,history.json: evaluation and per-epoch validation
Input: image float32 RGB in [0, 255], shape (N, 3, H, W). Outputs: mos, qmap, wmap, defects, dmap, attrs.
Source & training code: https://github.com/DarainHyder/Image_Quality_Assessment