Dictionary Learning Improvements
The work reported in this paper describes a fascinating joint work with Leslie N. Smith from the Naval Research Laboratory (NRL) in Washington DC. This work proposes two simple yet very effective ways to improve dictionary learning algorithms: (i) improving the dictionary update stage by fixing the supports and seeking the best non-zero values AND the corresponding atoms; and (ii) propagating the pursuit results form one iteration to the next, thereby saving computations. The following freely available package contains all our Matlab code to reproduce the results of the above-mentioned paper.
The work reported in this paper describes a dictionary learning algorithm for the analysis model, an alternative viewpoint to sparse and redundant representations. This model assumes that multiplication of the signal by an appropriate analysis operator (dictionary) leads to a sparse outcome. Specifically, the signal lies in a low-dimensional subspace determined by the dictionary atoms (rows in the operator) indexed in the signal's co-support (the indices of the zeros in the sparse representation). To learn the analysis dictionary, we take an approach that is parallel and similar to the one adopted by the K-SVD algorithm that serves the corresponding problem in the synthesis model. The effectiveness of our proposed dictionary learning is demonstrated both on synthetic data and real images, showing a successful and meaningful recovery of the analysis dictionary. The following freely available package contains all our Matlab code to reproduce the results of the above-mentioned paper.
The Boltzmann Machine Model
The work reported in this paper describes a statistical model that takes into account dependencies between the dictionary atoms and shows how this model can be used for sparse signal recovery. We follow the suggestion of several recent works (see the paper for more details) and model the sparsity pattern by a Boltzmann machine (BM), a commonly used graphical model. In this work we address topics like pursuit of the sparse representations and learning of the Boltzmann parameters. The effectiveness of our proposed approach is demonstrated both on synthetic data and image patches. The following freely available package contains all our Matlab code to reproduce the results of the above-mentioned paper.
The work reported in this paper describes a single-image super-resolution algorithm based on a pair of dicitonaries and sparse represenations. This work is a direct extension of an earlier work done by Yang, Wright, Huang and Ma from UIUC (see the paper for more details). The following freely available package contains all our Matlab code to reproduce the results of the above-mentioned paper, along with the comparisons to Yang's work. This package contains the K-SVD and OMP code, so as to keep it complete. Furthermore, it also contains the software supplied to us by Jianchao Yang for reproducing their results. We would like to thank Jianchao for sharing his code with us and allowing us to include it in this package. We should note that Jianchao has a more updated version of his code, which has been posted more recnetly on his webpage.
My Book's Matlab Package
My book Sparse and Redundant Representations: From Theory to Applications in Signal and Image Processing (Springer, 2010) is accompanied by a Matlab package that can be downloaded freely from HERE [This is a RAR file format like ZIP. It can be opened using winrar software freeware]. This package contains a long series of functions and scripts that cover most of the algorithms described in the book. Also, this package reproduces most of the figures in it. More information on the book itself can be found in Amazon - Books.
SparseLab is a Matlab software package managed by David L. Donoho and his team. It provides various tools for sparse solution of linear systems, least-squares with sparsity, various pursuit algorithms, and more. It also includes Matlab simulation that reproduce recenlty published papers (including several that I coauthored). For more information and downloaded, see HERE.
In a joint work with Michal Aharon and Freddy Bruckstein, we studied ways to train a dictionary to lead to sparse representation of training signals. The developed algorithm, called K-SVD, along with some demonstration of its use for denoising, are available as Matlab toolbox package, and can be downloaded HERE. A newer version with various improvements, created by Ron Rubinstein, is available in his webpage - see HERE.
A joint work with Prof. Peyman Milanfar and his students, Sina Farsiu and Dirk Robinson, resulted in a MATLAB software package for super-resolution. This package contains various algorithms we developed in our joint work (robust super-resolution, mosaiced-super-resolution, dynamic super-resolution) and more. The software is available at http://www.cse.ucsc.edu/~milanfar/SR-Software.htm and is managed by Sina and Dirk.
Our (joint work with Amir Averbuch, Raphy Coifman, David Donoho, and Moshe Israeli) Polar-FFT Matlab package can be downloaded HERE. This is the first version we release, which means that we will probably need to update it based on feedback we will get. The current package contains many functions and programs that we have used as part of the development of the fast polar Fourier transform, and those include the software that was used to generate the figures in the PAPER. I suggest that you start by looking at the file A_Content.m to see the various functions supplied. Two things that are still very much missing are the inverse transform, and MEX implementation of the main parts, which we hope to add soon.