Code for "CRetinex: A Progressive Color-shift Aware Retinex Model for Low-light Image Enhancement" (IJCV 2024).
This method can keep the color constancy of the low-light image (as can be seen from the enhancement results of the low-light images captured of the same scene).
The framework of this method is shown below:
python=3.6
tensorflow-gpu=1.14.0
numpy=1.19
scikit-image=0.17.2
pillow=8.2
-
Training dataset:
- Download the training data: LOL, AGLIE, and SID datasets.
- Select part of the data for training, and put the low-light images and corresponding normal-light images in
./dataset/low/
and./dataset/high/
, respectively. - Can also put a small number of paired low-light and normal-light images in
./dataset/eval/low/
and./dataset/eval/high/
for validation during the training phase.
-
Train the decomposition network:
- Run
CUDA_VISIBLE_DEVICES=0 python train_decomposition_network.py
- The relevant files are stored in
./checkpoint/decom/
,./logs/decom/
, and./eval_result/decom/
- Run
-
Train the color shift estimation network:
- Run
CUDA_VISIBLE_DEVICES=0 python train_color_network.py
- The relevant files are stored in
./checkpoint/color_net/
,./logs/color_net/
, and./eval_result/color/
- Run
-
Train the spatially variant pollution estimation network:
- Run
CUDA_VISIBLE_DEVICES=0 python train_noise_network.py
- The relevant files are stored in
./checkpoint/noise_net/
,./logs/noise_net/
, and./eval_result/noise/
- Run
-
Train the illumination adjustment network:
- Run
CUDA_VISIBLE_DEVICES=0 python train_illu_adjust_network.py
- The relevant files are stored in
./checkpoint/illu_adjust/
,./logs/illu_adjust/
, and./eval_result/illu_adjust/
- Run
- Put the test data in
./test_images/
- Run
CUDA_VISIBLE_DEVICES=0 python test.py
If this work is helpful to you, please cite it as:
@article{xu2024CRetinex,
title={CRetinex: A Progressive Color-shift Aware Retinex Model for Low-light Image Enhancement},
author={Xu, Han and Zhang, Hao and Yi, Xunpeng and Ma, Jiayi},
journal={International Journal of Computer Vision},
year={2024},
publisher={Springer}
}