All Projects → fubel → sparselandtools

fubel / sparselandtools

Licence: MIT License
✨ A Python package for sparse representations and dictionary learning, including matching pursuit, K-SVD and applications.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to sparselandtools

ClassifierToolbox
A MATLAB toolbox for classifier: Version 1.0.7
Stars: ✭ 72 (+30.91%)
Mutual labels:  sparse-coding, dictionary-learning
ksvd reg
Regularized K-SVD Algorithm
Stars: ✭ 29 (-47.27%)
Mutual labels:  sparse-coding, dictionary-learning
dictlearn
Dictionary Learning for image processing
Stars: ✭ 23 (-58.18%)
Mutual labels:  sparse-coding, dictionary-learning
gproshan
geometry processing and shape analysis framework
Stars: ✭ 48 (-12.73%)
Mutual labels:  sparse-coding, dictionary-learning
Awesome-ICCV2021-Low-Level-Vision
A Collection of Papers and Codes for ICCV2021 Low Level Vision and Image Generation
Stars: ✭ 163 (+196.36%)
Mutual labels:  image-denoising
Reproducible Image Denoising State Of The Art
Collection of popular and reproducible image denoising works.
Stars: ✭ 1,776 (+3129.09%)
Mutual labels:  image-denoising
SwinIR
SwinIR: Image Restoration Using Swin Transformer (official repository)
Stars: ✭ 1,260 (+2190.91%)
Mutual labels:  image-denoising
Image-Denoising-with-Deep-CNNs
Use deep Convolutional Neural Networks (CNNs) with PyTorch, including investigating DnCNN and U-net architectures
Stars: ✭ 54 (-1.82%)
Mutual labels:  image-denoising
prosper
A Python Library for Probabilistic Sparse Coding with Non-Standard Priors and Superpositions
Stars: ✭ 17 (-69.09%)
Mutual labels:  sparse-coding
Uformer
[CVPR 2022] Official repository for the paper "Uformer: A General U-Shaped Transformer for Image Restoration".
Stars: ✭ 415 (+654.55%)
Mutual labels:  image-denoising
sparse
Sparse matrix formats for linear algebra supporting scientific and machine learning applications
Stars: ✭ 136 (+147.27%)
Mutual labels:  sparse-representations
MIRT.jl
MIRT: Michigan Image Reconstruction Toolbox (Julia version)
Stars: ✭ 80 (+45.45%)
Mutual labels:  sparse-coding
Awesome-low-level-vision-resources
A curated list of resources for Low-level Vision Tasks
Stars: ✭ 35 (-36.36%)
Mutual labels:  image-denoising
R2Net
Pytorch code for "Attention Based Real Image Restoration", IEEE Transactions on Neural Networks and Learning Systems, 2021
Stars: ✭ 19 (-65.45%)
Mutual labels:  image-denoising
cr-sparse
Functional models and algorithms for sparse signal processing
Stars: ✭ 38 (-30.91%)
Mutual labels:  sparse-representations
PRIDNet
Code for the paper "Pyramid Real Image Denoising Network"
Stars: ✭ 47 (-14.55%)
Mutual labels:  image-denoising
DudeNet
Designing and Training of A Dual CNN for Image Denoising (Knowledge-based Systems, 2021)
Stars: ✭ 45 (-18.18%)
Mutual labels:  image-denoising
FaceRecognition
Face Recognition in real-world images [ICASSP 2017]
Stars: ✭ 36 (-34.55%)
Mutual labels:  sparse-coding
NLRN
Code for Non-Local Recurrent Network for Image Restoration (NeurIPS 2018)
Stars: ✭ 165 (+200%)
Mutual labels:  image-denoising
strollr2d icassp2017
Image Denoising Codes using STROLLR learning, the Matlab implementation of the paper in ICASSP2017
Stars: ✭ 22 (-60%)
Mutual labels:  image-denoising

Sparselandtools

PyPI - Python Version PyPI PyPI - Implementation Build Status PyPI - Downloads

Sparselandtools is a Python 3 package that provides implementations for sparse representations and dictionary learning. In particular, it includes implementations for

For Sparse Representations:

  • Matching Pursuit
  • Orthogonal Matching Pursuit
  • Thresholding Pursuit
  • Basis Pursuit

For Dictionaries in General:

  • Mutual Coherence
  • DCT Dictionary
  • Haar Dictionary
  • Overcomplete DCT Dictionary
  • Visualization Tools for Dictionaries

For Dictionary Learning:

  • K-SVD Algorithm
  • Approximate K-SVD Algorithm

For Application:

  • Approximate K-SVD Image Denoiser

Note: I did this project mainly to generate plots for my Master's thesis. Some of the implementations are more educational than efficient. If you want to learn more about sparse representations and dictionary learning using Python, or use dictionary learning algorithms in small dimensions, this package is for you. If you want to use these functions for industrial applications, you should have a look at more efficient C++-based implementations:

Warning: I'm currently pursuing my PhD in computer vision and have no time to keep this project up-to-date. Any pull requests for new features or bug fixes are welcome!

Getting Started

Sparselandtools is available as a PyPI package. You can install it using

pip install sparselandtools

DCT and Haar Dictionary

The following code creates a redundant (=overcomplete) DCT-II dictionary and plots it. It also prints out the dictionaries mutual coherence.

from sparselandtools.dictionaries import DCTDictionary
import matplotlib.pyplot as plt

# create dictionary
dct_dictionary = DCTDictionary(8, 11)

# plot dictionary
plt.imshow(dct_dictionary.to_img())
plt.show()

# print mutual coherence
print(dct_dictionary.mutual_coherence())

More examples can be found in the corresponding Jupyter Notebook.

Reference

If you find my implementations useful for your academic projects, feel free to cite

@software{fabian_herzog_2021_4916395,
  author       = {Fabian Herzog},
  title        = {{sparselandtools: A Python package for sparse 
                   representations and dictionary learning, including
                   matching pursuit, K-SVD and applications.}},
  month        = jun,
  year         = 2021,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.4916395},
  url          = {https://doi.org/10.5281/zenodo.4916395}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].