CDAN: Convolutional Dense Attention-guided Network for Low-light Image Enhancement

March 9, 2025 · View on GitHub

Hossein Shakibania*, Sina Raoufi*, and Hassan Khotanlou

* Equal contribution

Open in Spaces Huggine Face paper paper

Abstract: Low-light images, characterized by inadequate illumination, pose challenges of diminished clarity, muted colors, and reduced details. Low-light image enhancement, an essential task in computer vision, aims to rectify these issues by improving brightness, contrast, and overall perceptual quality, thereby facilitating accurate analysis and interpretation. This paper introduces the Convolutional Dense Attention-guided Network (CDAN), a novel solution for enhancing low-light images. CDAN integrates an autoencoder-based architecture with convolutional and dense blocks, complemented by an attention mechanism and skip connections. This architecture ensures efficient information propagation and feature learning. Furthermore, a dedicated post-processing phase refines color balance and contrast. Our approach demonstrates notable progress compared to state-of-the-art results in low-light image enhancement, showcasing its robustness across a wide range of challenging scenarios. Our model performs remarkably on benchmark datasets, effectively mitigating under-exposure and proficiently restoring textures and colors in diverse low-light scenarios. This achievement underscores CDAN's potential for diverse computer vision tasks, notably enabling robust object detection and recognition in challenging low-light conditions.

Figure 1: The overall structure of the proposed model.

Experimental Results

In this section, we present the experimental results obtained by training our CDAN model using the LOw-Light (LOL) dataset and evaluating its performance on multiple benchmark datasets. The purpose of this evaluation is to assess the robustness of our model across a spectrum of challenging lighting conditions.

Datasets

DatasetNo. of ImagesPairedCharacteristics
LOL500:white_check_mark:Indoor
ExDark7363:x:Extremely Dark, Indoor, Outdoor
DICM69:x:Indoor, Outdoor
VV24:x:Severely under/overexposed areas

Quantitative Evaluation

Learning methodMethodAvg. PSNR ↑Avg. SSIM ↑Avg. LPIPS ↓
SupervisedLLNET17.9590.7130.360
LightenNet10.3010.4020.394
MBLLEN17.9020.7150.247
Retinex-Net16.7740.4620.474
KinD17.6480.7790.175
Kind++17.7520.7600.198
TBEFN17.3510.7860.210
DSLR15.0500.5970.337
LAU-Net21.5130.8050.273
Semi-supervisedDRBN15.1250.4720.316
UnsupervisedEnlightenGAN17.4830.6770.322
Zero-shotExCNet15.7830.5150.373
Zero-DCE14.8610.5890.335
RRDNet11.3920.4680.361
Proposed (CDAN)20.1020.8160.167

Qualitative Evaluation

Figure 2: Visual comparison of state-of-the-art models on ExDark dataset.

Figure 3: Visual comparison of state-of-the-art models on DICM dataset.

Getting Started

To get started with the CDAN project, follow these steps:

1. Clone the Repository

You can clone the repository using Git. Open your terminal and run the following command:

git clone git@github.com:SinaRaoufi/CDAN.git

2. Configure Settings

After cloning, navigate to the project directory and locate the `config/default.json` file. This file contains all the configuration settings for the CDAN model, including model architecture, training parameters, and dataset paths. You can customize these settings according to your requirements.

Key configuration settings:

  • Model Settings: Define the model architecture and its parameters
  • Training Settings:
    • device: Training device (cuda/mps/cpu)
    • n_epoch: Number of training epochs
    • lr: Learning rate
    • Dataset paths and dataloader configurations
  • Testing Settings:
    • Dataset paths and configurations
    • Post-processing options
    • Output paths for generated images

Modify these settings according to your setup, particularly:

  1. Update the dataset paths to point to your data
  2. Adjust the training parameters if needed
  3. Configure the output paths for saved models and results

3. Install Dependencies

You can install project dependencies using pip:

pip install -r requirements.txt

4. Run the Project

You are now ready to run the CDAN project. To start the training, use the following command:

python run.py -p train -c config/default.json

To test the trained model, run:

python run.py -p test -c config/default.json

Experimental setup

The following hardware and software were used for training the model:

  • GPU: NVIDIA GeForce RTX 3090
  • RAM: 24 GB SSD
  • Operating System: Ubuntu 22.04.2 LTS
  • Python version: 3.9.15
  • PyTorch version: 2.0.1
  • PyTorch CUDA version: 11.7

Citation

@article{SHAKIBANIA2025104802,
  title = {CDAN: Convolutional dense attention-guided network for low-light image enhancement},
  journal = {Digital Signal Processing},
  volume = {156},
  pages = {104802},
  year = {2025},
  issn = {1051-2004},
  doi = {https://doi.org/10.1016/j.dsp.2024.104802},
  url = {https://www.sciencedirect.com/science/article/pii/S1051200424004275},
  author = {Hossein Shakibania and Sina Raoufi and Hassan Khotanlou},
}