Skip to content

riotu-lab/DG-Mamba

Repository files navigation

DG-Mamba: Dual-Granularity Mamba Network for Low-Light Remote Sensing Image Enhancement

Official PyTorch implementation of DG-Mamba, a dual-branch encoder–decoder framework designed for low-light and nighttime remote sensing image enhancement.


🔥 Overview

Low-light and nighttime remote sensing images often suffer from severe underexposure, strong noise, low contrast, and color distortion, which significantly degrade both visual quality and downstream vision tasks (e.g., object detection).

DG-Mamba addresses these challenges through:

  • Dual-Branch Encoder–Decoder Architecture (U-Net style)
    for jointly modeling illumination enhancement and structural refinement
  • Mamba-based Selective State Space Modeling
    to efficiently capture long-range spatial dependencies with low computational cost
  • Context-Aware Feature Fusion
    integrating local details and global contextual information
  • Composite Enhancement Loss
    combining pixel-level, perceptual, and frequency-aware constraints

🧠 Architecture & Visual Results

DG-Mamba Architecture
Figure 1: Overall architecture of the proposed DG-Mamba framework.

Qualitative Results
Figure 2: Qualitative comparisons on low-light remote sensing images.

Quantitative Results
Figure 3: Quantitative performance comparison.


📦 Datasets

DG-Mamba is evaluated on both paired (reference-based) and unpaired (no-reference) low-light datasets, following the experimental setup used in the paper.

🔹 Paired / Supervised Datasets

🔹 Unpaired / No-Reference Datasets

Evaluation Notes

  • Paired datasets: PSNR ↑ / SSIM ↑ / LPIPS ↓
  • Unpaired datasets: NIQE ↓ + qualitative comparison

📊 Results and Outputs

We provide comprehensive qualitative and quantitative results for both paired and unpaired datasets to demonstrate the robustness and generalization capability of DG-Mamba.


🔹 Paired Datasets (Reference-Based Evaluation)

📁 Datasets

  • iSAID-dark
  • iSAID-dark (high-pixel resolution)

📥 Results Download Links

Dataset Resolution Results
iSAID-dark Standard 🔗 Download
iSAID-dark (High-Pixel) High 🔗 Download

🔹 Unpaired Datasets (No-Reference Evaluation)

📁 Datasets

  • darkrs
  • LIME
  • NPE
  • DICM

📥 Results Download Links

Dataset Results
darkrs 🔗 Download
LIME 🔗 Download
NPE 🔗 Download
DICM 🔗 Download

🎯 Downstream Task: Object Detection with YOLOv12

To verify that enhancement improves practical vision tasks, we evaluate object detection performance using YOLOv12 on three image versions:

  • Night: original low-light images
  • DG-Mamba: enhanced images
  • GT: ground-truth / well-lit images (upper bound)

📥 YOLOv12 Detection Results

Version Description Link
Night Original low-light images 🔗 Download
DG-Mamba Enhanced images 🔗 Download
GT Reference images 🔗 Download

🗂️ Repository Structure

DG-Mamba/
├── checkpoints/            # empty (saved checkpoints)
├── configs/                # training / evaluation configs
├── data/                   # dataset loaders (no raw data)
├── figures/                # paper figures
├── losses/                 # loss functions
├── models/                 # DG-Mamba architecture
├── results/                # empty (output placeholders)
├── utils/                  # metrics and helpers
├── weights/                # empty (pretrained models)
├── train.py
├── evaluate.py
├── test.py
├── requirements.txt
└── README.md


⚙️ Installation

git clone https://github.com/AnasHXH/DG-Mamba.git
cd DG-Mamba

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt


📁 Data Preparation (Recommended Format)

  1. Paired datasets (LOL / iSAID-dark) Use the following layout:
   data/LOL/
├── train/
│   ├── low/
│   └── high/
└── test/
    ├── low/
    └── high/
data/iSAID-dark/
├── train/
│   ├── low/
│   └── high/
└── val/
  ├── low/
  └── high/

Update your config paths in configs/*.yaml accordingly.

🚀 Training

python train.py --config configs/config.yaml

Common options you may expose (depending on your code):

--config

--device cuda

--batch_size 4

--epochs 500

--lr 2e-4

✅ Evaluation (Paired: PSNR/SSIM/LPIPS)

python evaluate.py \
--config configs/eval_isai_dark.yaml \
--ckpt checkpoints/dg_mamba_best.pth


🖼️ Inference (Single Folder)

python test.py \
--ckpt checkpoints/dg_mamba_best.pth \
--input_dir path/to/low_light_images \
--output_dir outputs/


📌 Citation

If you use this work, please cite:

@article{ali_dgmamba_2025,
title   = {DG-Mamba: Dual-Granularity Mamba Network for Low-Light Remote Sensing Image Enhancement},
author  = {Ali, Anas M. and Benjdira, Bilel and Aloqayli, Hamad and Othman, Esam and Boulila, Wadii},
journal = {Under Review},
year    = {2025}
}


About

DG-Mamba

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors