Coder Social home page Coder Social logo

sunaa's Introduction

SUnAA

Sparse Unmixing using Archetypal Analysis (SUnAA) is an innovative semi-supervised unmixing technique that leverages the assumption that real endmembers can be represented as convex combinations of the library endmembers. Building upon the principles of archetypal analysis, we propose a new model formulation for sparse unmixing. The motivation behind this method is to address mismatches commonly encountered between endmembers from spectral libraries and endmembers from a dataset, which often manifest as scaling factors. These mismatches can arise from various sources such as noise, atmospheric effects, illumination variations, and the intrinsic variability of materials. In contrast to conventional sparse unmixing methods, SUnAA estimates both the endmembers and abundances by utilizing the endmember library as a reference.

Citation

If you use this code please cite the following paper

B. Rasti, A. Zouaoui, J. Mairal and J. Chanussot, "SUnAA: Sparse Unmixing using Archetypal Analysis," in IEEE Geoscience and Remote Sensing Letters, doi: 10.1109/LGRS.2023.3284221.

Installation instructions

  1. Clone the repository and move to the repository
git clone [email protected]:BehnoodRasti/SUnAA.git
cd SUnAA
  1. We recommend using conda to install the package, as follows:
conda create --name sunaa python=3.10
  1. Activate your freshly created environment
conda activate sunaa
  1. Install the required python packages:
pip install -r requirements.txt
  • In case you face some issues regarding the installation of spams, we recommend installing it from source using the instructions found on the official PyPI package website.
  • For windows users, we suggest removing the line 4 in the requirements.txt (spams==2.6.5.4) and after installing the requirements, install spams using pip install spams-bin.

Running the demo

We provide a simple demo script alongside the data to run it (DC1 in our paper).

You can run it at the desired SNR (here 20) using the following command:

python demo.py --SNR 20

Take a look at the demo.py file to better understand the parameters that can be tweaked as well as changing the dataset to fit your needs.

sunaa's People

Contributors

azouaoui-cv avatar behnoodrasti avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.