UHDDIP: Ultra-High-Definition Image Restoration: New Benchmarks and A Dual Interaction Prior-Driven Solution [IEEE TCSVT2025]

September 26, 2025 · View on GitHub

Updates

[2025-09-18] Our paper is accepted to IEEE TCSVT !

Our proposed UHD-Snow dataset and UHD-Rain dataset

Example

Download LinkDescription
Google Drive (https://drive.google.com/drive/u/1/folders/1LaQvEBdjH5MwTwkfCZh3UJUGl8mYfvke?hl=zh_CN))A total of 3000 pairs for training and 200 pairs for testing.

UHDDIP Framework

Example

Requirements

  • CUDA 10.1 (or later)
  • Python 3.9 (or later)
  • Pytorch 1.8.1 (or later)
  • Torchvision 0.19
  • OpenCV 4.7.0
  • tensorboard, skimage, scipy, lmdb, tqdm, yaml, einops, natsort

Data preparation

  1. Please download the following datasets:
TaskTraining datasetTesting dataset
UHD LLIEUHD-LL (2000)UHD-LL (150)
UHD DesnowingUHD-Snow (3000)UHD-Snow (200)
UHD DerainingUHD-Rain (3000)UHD-Rain (200)
UHD DehazingUHD-Haze (2290)UHD-Haze (231)
UHD DeblurringUHD-Blur (1964)UHD-Blur (300)
  1. To obtain the normal prior images, all training data and testing data are processed through Omnidata, and the obtained normal prior images are placed under the same path as the corresponding input image and GT image above.

Training

  1. To train UHD LLIE model, modify the path where the UHD-LL dataset (including input, gt, normal) is located in the /src/Options/train_UHDDIP_LLIE.yml, then run

    cd UHDDIP
    python -m torch.distributed.launch --nproc_per_node=2 --master_port=4321 basicsr/train.py -opt src/Options/train_UHDDIP_LLIE.yml  --launcher pytorch
    
  2. To train UHD desnowing/deraining/dehazing model, modify the path where the UHD-Snow/UHD-Rain/UHD-Haze dataset (including input, gt, normal) is located in the /src/Options/train_UHDDIP.yml, then run

    cd UHDDIP
    python -m torch.distributed.launch --nproc_per_node=2 --master_port=4321 basicsr/train.py -opt src/Options/train_UHDDIP.yml  --launcher pytorch
    
  3. To train UHD deblurring model, modify the path where the UHD-Blur dataset (including input, gt, normal) is located in the /src/Options/train_UHDDIP_deblur.yml, then run

    cd UHDDIP
    python -m torch.distributed.launch --nproc_per_node=2 --master_port=4321 basicsr/train.py -opt src/Options/train_UHDDIP_deblur.yml  --launcher pytorch
    

Testing

  1. Download all pre-trained models and place them in ./pretrained_models/

  2. Testing

    cd src
    python test_uhd.py
    
  3. Calculating PSNR/SSIM/LPIPS scores, run

    python calculate_psnr_ssim.py
    

Pre-trained models and visual results

Task Model Visual Results
UHD LLIE Download Download
UHD Desnowing Download Download
UHD Deraining Download Download
UHD Dehazing Download Download
UHD Deblurring Download Download
UHD Image LLIE (click to expand)

UHD Image Dehazing (click to expand)

UHD Image Deblurring (click to expand)

UHD Image Desnowing (click to expand)

UHD Image Deraining (click to expand)