/CAMNS

Convex Analysis of Mixture Non-negative Sources implementation in Python

Primary LanguageJupyter NotebookMIT LicenseMIT

CAMNS

This repository contains an implementation of non-negative Blind Source Separation method based on the following paper

File camns.py contains implementation of the method relying on CVXPY as an optimizer.

File demo.ipynb contains demonstration of the method using mixing and separating images of wolves as an example. Note: demonstration requires you to have plenty of RAM available for the Convex Optimization solver to run.

Fluffy example from the notebook🐺

Originally, we have eight source images:

Sources

By applying random mixture matrix, we obtain eight mixed signals

Mixed

Finally, applying our implementation of the algorithms allows us to retrieve the approximation of the original ones

Restored

This is it! Please check out the implementation of the algorithm and sample notebook.