https://github.com/darkfanxing/admm-adam
https://github.com/darkfanxing/admm-adam
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/darkfanxing/admm-adam
- Owner: darkfanxing
- Created: 2022-01-01T10:46:40.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-10-06T02:34:50.000Z (about 2 years ago)
- Last Synced: 2025-01-26T14:24:47.266Z (9 months ago)
- Language: Python
- Size: 73.7 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Table of contents
- [Project Description](#project-description)
- [ADMM-ADAM workflow](#admm-adam-workflow)
- [Project Setup](#project-setup)
- [How To Restore Images In this Project](#how-to-restore-images-in-this-project)
- [Reference](#reference)
## Project Description
ADMM-ADAM is a powerful hyperspectral image (HSI) restoration framework designed by Dr. Chia-Hsiang in 2021 ([Journal Link](https://ieeexplore.ieee.org/document/9546991)). It's based on "convex optimization", "feature extractor" and "ADMM optimizer" to make a high reducibility image.### ADMM-ADAM workflow
ADMM-ADAM workflow as follows:
1. Train a Deep Learning model with ADAM optimizer (GAN in here), and get a Deep Learning olution (image)
2. Extract the most important information of Deep Learning solution by PCA (or some other feature extractor)
3. design a convex optimization problem with ADMM optimizer as follows:
where,
- X:
-  be an M-band hyperspectral (target) image with L pixels
- Y:
-  be the observed image, meaning that some of its entries are missing
- Ω:
-  denote the index set of those available data.
- X_{DL}:
-  can be obtained using ADAM optimizer (GAN model with ADAM optimizer in here, you can get it by [darkfanxing/GAN](https://github.com/darkfanxing/GAN))
- λ:
-  is called regularization parameter empirically set as 0.01
in this work
- Q:
- Q-qudratic norm, which extracts useful features from  for effective regularization
- feature extractor is PCA in hereAssume we have N materials, each pixel can be modeled as a linear combination of N spectral signature vectors in R^{M}. In other words, all the hyperspectral pixel vectors belong to a N-dimensional subspace if we ignore some non-linearity or noise effects, so the target image X can be represented as follows:

where,
- : the most important N component (eigenvector), i.e. N material
- : some coefficient matrix  and we can simplify the objective function:
so convex optimization problem can be represented as follows:
the meaning of F-norm is:

Once  is available, it can be used to reconstruct the
complete hyperspectral image as 
Hehe... it is happy time for reformulating convex optimization
problem into the standard ADMM form:

and give a augmented Lagrangian term :

where,
- :
-  is the scaled dual variable
- 
-  is the penalty parameter, empirically set as 0.001
Then, ADMM optimizer solves the problem as detailed as follows:

where,
- 
- 
- where,
- 
- 
- 
- ## Project Setup
To avoid Python package version conflicts, the project use pipenv (Python vitural environment) to install Python packages.```console
rm Pipfile
pip install pipenv
pipenv shell
pipenv install
```## How To Restore Images In This Project
```console
python src/main.py
```## Reference
Lin, Chia-Hsiang, Yen-Cheng Lin, and Po-Wei Tang. "ADMM-ADAM: A New Inverse Imaging Framework Blending the Advantages of Convex Optimization and Deep Learning." IEEE Transactions on Geoscience and Remote Sensing (2021).