ICCV 2023 Learning Continuous Exposure Value Representations for Single-Image HDR Reconstruction Sy-Kai Chen, Hung-Lin Yen, Yu-Lun Liu, Min-Hung Chen, Hou-Ning Hu, Wen-Hsiao Peng, Yen-Yu Lin
Paper is here
Demo website is here
⭐For fast evaluation, you download the data and script here ⭐
Deep learning is commonly used to reconstruct HDR images from LDR images. LDR stack-based methods are used for single-image HDR reconstruction, generating an HDR image from a deep learning-generated LDR stack. However, current methods generate the stack with predetermined exposure values (EVs), which may limit the quality of HDR reconstruction. To address this, we propose the continuous exposure value representation (CEVR), which uses an implicit function to generate LDR images with arbitrary EVs, including those unseen during training. Our approach generates a continuous stack with more images containing diverse EVs, significantly improving HDR reconstruction. We use a cycle training strategy to supervise the model in generating continuous EV LDR images without corresponding ground truths. Our CEVR model outperforms existing methods, as demonstrated by experimental results.
The ZIP file contain "results of each related work" and "the matlab script for evaluation". You can simply download the ZIP file and run the script to get the PSNR, HDR-VDP-2 score for tonemapped image and HDR file. (We evaluate on two datasets, VDS dataset and HDREye dataset, which are also in the ZIP file.)
⭐FILE_LINK is here ⭐
- torch: 1.12.1
- CUDA compilation tools: 10.1
- python 3.8.16
Deep chain HDRI github
Download the dataset and modify the --data_root
(path to the VDS dataset)
⭐ Note: Both VDS and HDREye dataset can be found in the Fast evaluation file ⭐
Run the inference code to get the LDR images with different EV!
Whole dataset and whole LDR stack inference:
CUDA_VISIBLE_DEVICES=7 python -u demo_VDS.py --model_name=CEVR_NormNoAffine_Maps --decode_name=mult_resizeUp_map --EV_info=1 --Float_Stack1 --resize --epoch=best --norm_type=GroupNorm --D_model_path=CEVR_NormNoAffine_Maps_GN_Dmodel/ --B_model_path=CEVR_NormNoAffine_Maps_GN_Bmodel/
- data_root: Remember to set the path to the VDS dataset (Ex:
/home/skchen/xxx/xxx/VDS_dataset/
) - model_name: Main model setting
- decode_name: Decoder setting
- resize: resize Image to 256x256
- Float_Stack1: If you want to generate floating point EV LDR, use this flag. Delete this flag if only the integer EV LDR image is needed.
- D_model_path, B_model_path: Find the model weight for the Bright model (EV up) and Dark model (EV down).
Whole dataset and whole LDR stack inference:
CUDA_VISIBLE_DEVICES=7 python -u demo_Eye.py --model_name=CEVR_NormNoAffine_Maps --decode_name=mult_resizeUp_map --EV_info=1 --Float_Stack1 --resize --epoch=best --norm_type=GroupNorm --D_model_path=CEVR_NormNoAffine_Maps_GN_Dmodel/ --B_model_path=CEVR_NormNoAffine_Maps_GN_Bmodel/
- data_root: Remember to set the path to the HDREye dataset (Ex:
'/home/skchen/xxx/xxx/HDREye/images/LDR/'
)