Home

Awesome

Unsupervised Hyperspectral Pansharpening via Low-rank Diffusion Model (Information Fusion 2024)

<p align="center"> Xiangyu Rui, <a href="https://github.com/xiangyongcao">Xiangyong Cao</a>, <a href="https://github.com/LiPang">Li Pang</a>, <a href="https://github.com/Zeyu-Zhu">Zeyu Zhu</a>, <a href="https://github.com/zsyOAOA">Zongsheng Yue</a>, <a href="https://gr.xjtu.edu.cn/web/dymeng">Deyu Meng</a> </p> <p align="center">

[Main formal] [Draft arxiv]

Flowchat Figure 1: The flowchart of the proposed method (PLRDiff). First, we estimate the coefficient matrix $E$ from the LRHS image. Second, the LRHS image, PAN image and the coefficient matrix $E$ served as conditions are sent into a discretization of an SDE, where we reconstruct the base tensor $\mathcal{A}$ by gradually sampling through a series of parameterized distributions. Finally, the predicted $\mathcal{A}$ and $E$ are multiplied to form the desired HRHS image.

1. Load pretrained Model

Pretrained diffusion model can be downloaded from

https://github.com/wgcban/ddpm-cd?tab=readme-ov-file#7-links-to-download-pre-trained-models

*Retraining or finetuning this model is not mandatory.

2. Dataset

Reproduce the results

All datasets used in this work can be found in Google Driver or BaiduCloud.

These datasets can be directly used to reproduce the results presented in the manuscript.

2.1. Origianl dataset links

Here are the links to the original datasets. You can download them, crop the data and generate your own datasets if interested.

Chikusei: https://naotoyokoya.com/Download.html

Houston: https://hyperspectral.ee.uh.edu/?page id=459

Pavia: https://github.com/liangjiandeng/HyperPanCollection

2.2. How do we generate the datasets

We generate our Chikusei and Houston datasets by 'data/generate_data.m'. Pavia can be directly downloaded from the above link for use.

3. Testing

3.1. Run the code

run python3 demo_syn.py -res opt

Before you running the script, please first download the pre-trained diffusion model, put it to your file and change the --resume in demo_syn.py.

3.2. Important Options

-dn: dataname,str. e.g. 'Chikusei'. The dataset should contain "HRMS", "LRMS" and "PAN".

-krtype: int. Set 0 for the first time in order to estimate kernel and srf. Set 1 if you have already save them in './estKR'.

-res: str. Set 'opt' for estimating the residual and 'no' for R=0.

Other options include eta1, eta2, scale, ks, step, accstep. Please refer to demo_syn.py.

4. Connections

<a href="mailto:xyrui.aca@gmail.com">xyrui.aca@gmail.com</a>