Awesome
HDNet: High-resolution Dual-domain Learning for Spectral Compressive Imaging
The source code of the CVPR2022 paper: HDNet: High-resolution Dual-domain Learning for Spectral Compressive Imaging
Architecture
The architecture of HDNet. Spatial-spectral domain learning (SDL) includes HR spectral attention, HR spatial attention, and efficient feature fusion (EFF). In frequency domain learning (FDL), the 2D Discrete Fourier Transform (DFT) is used to obtain the HSI frequency spectrum. The adaptive weight θ(u,v) of each frequency coordinate (u,v) is dynamically determined by the frequency distance.
Result
The PSNR in dB (left entry in each cell) and SSIM (right entry in each cell) results of the test methods on 10 scenes.
Simulated HSI reconstruction comparisons of Scene 7 with 4 (out of 28) spectral channels. We show the spectral curves (topmedium) corresponding to the selected green boxes of the RGB image. Our HDNet reconstructs more visually pleasant detailed contents.
The simulated HSI reconstruction results are available here.
Requirement
Python=3.5+
PyTorch=1.0+
gcc (GCC) 4.8.5
CUDA 8.0
OS: Ubuntu 16.04
CUDA: 9.0/10.0
pillow
matplotlib
Prepare training data
Simulation Data
-
Download HSI training data
-
Specify the data path in train_HDNet.py
data_path = "/data/train_data/" mask_path = "/data/simu_data/" test_path = "/data/simu_data/Truth/"
Train
Training simulation model
- Put hyperspectral datasets (Ground truth) into corrsponding path. For our setting, the training data and validation datashould be scaled to 0-65535 and 0-1, respectively, with a size of 256×256×28.
- Run train_HDNet.py.
Training real data model
- Put hyperspectral datasets (Ground truth) into corrsponding path. For our setting, the training data and validation datashould be scaled to 0-1 with a size of 660×660×28.
- Run train_HDNet.py.