Simultaneous Codeword Optimisation (SimCO) for Dictionary Update and Learning


Introduction

This software package is a Matlab implementation of the SimCO dictionary learning algorithms, including Primitive SimCO, Regularized SimCO, and the comparison of these algorithms with MOD and K-SVD (including both dictionary update, sparse coding and denoising stages). SimCO is a novel framework that generalizes two methods: KSVD and MOD. It can update an arbitrary set of codewords and the corresponding sparse coefficients simultaneously.


The core files for SimCO include the following three functions:

'DictUpdate03.m' implements the SimCO dictionary update stage. Using this function, the dictionary matrix can be produced from the training data. This function implements the second stage (i.e. dictionary update stage) of Algorithm 1, which iteratively calls "DictLineSearch03.m" and "fg_tilde_eval01.m", i.e. the implementation of Algorithm 2 in the SimCO paper (http://arxiv.org/abs/1109.5302).

'DictLineSearch03.m' updates the atoms of the dictionary in each iteration. This function implements Algorithm 2 in Section IV.A of the SimCO paper (http://arxiv.org/abs/1109.5302).

'fg_tilde_eval01.m' computes the gradient descent direction to be called by 'DictLineSearch03.m' in regularized SimCO version. In other words, this function computes equation (11) and (9) in Section IV.A of the SimCO paper (http://arxiv.org/abs/1109.5302).

'OMP.m' is the sparse coding algorithm to produce the coefficients from training data given the dictionary matrix.


The core file for K-SVD is included below for comparison purpose:

'K_DictUpdate02.m' the code for dictionary update stage in K-SVD.


The core file for MOD is included below for comparison purpose: 'M_DictUpdate02.m' the code for dictionary update stage in MOD.


The test files are shown below:

'Main_test.m' tests the performance of denoising an image by Primitive SimCO, Regularized SimCO, MOD or K-SVD.

'denoisingImage.m' is the image denoising program developed Michael Elad and Michal Aharon in 'Image Denoising Via Sparse and Redundant Representations Over Learned Dictionaries'.


The folder 'ResultsPlot' includes all results data and plot file.


More details can be found in the following paper:

  • W. Dai, T. Xu, and W. Wang, "Simultaneous Codeword Optimisation (SimCO) for Dictionary Update and Learning", IEEE Transactions on Signal Processing, vol. 60, no. 12, pp. 6340-6353, 2012. [PDF]


    Matlab toolbox

    The software package can be downloaded from here.

    Copyright 2011 W. Dai, T. Xu, and W. Wang

    If you have any questions or comments regarding this package, or if you want to report any bugs or unexpected error messages, please send an e-mail to w.wang@surrey.ac.uk

    This software is a free software distributed under the terms of the GNU Public License version 3 (http://www.gnu.org/licenses/gpl.txt). You can redistribute it and/or modify it under the terms of this licence, for personal and non-commercial use and research purpose.


    References

  • W. Dai, T. Xu, and W. Wang, "Simultaneous Codeword Optimisation (SimCO) for Dictionary Update and Learning", IEEE Transactions on Signal Processing, vol. 60, no. 12, pp. 6340-6353, 2012. [PDF] [code]


    [Home] [Publications] [Research] [Teaching] [Short Bio] [Demo & Data] [Codes]

    Last updated on 14 March 2016
    First Created on 14 March 2016