# HG changeset patch # User idamnjanovic # Date 1272375193 0 # Node ID cbf3521c25eb30fd642b2b6a1a89ad9ff337852b # Parent fc395272d53e089e16e1d2b7c308d195c660a5fd diff -r fc395272d53e -r cbf3521c25eb examples/Automatic Music Transcription/SMALL_AMT_DL_test.m --- a/examples/Automatic Music Transcription/SMALL_AMT_DL_test.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Automatic Music Transcription/SMALL_AMT_DL_test.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR AUTOMATIC MUSIC TRANSCRIPTION EXAMPLE 1 +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2010 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test diferent % dictionary learning techniques in Automatic Music Transcription problem. % It calls generateAMT_Learning_Problem that will let you to choose midi, @@ -9,7 +19,6 @@ % Problem.p notes spectrograms from training set Problem.b using % dictionary learning technique defined in DL structure. % -% Ivan Damnjanovic 2010 %% clear; @@ -40,7 +49,7 @@ % dictionary elements. Type help ksvd in MATLAB prompt for more options. SMALL.DL(1).param=struct(... - 'Tdata', 3,... + 'Tdata', 10,... 'dictsize', SMALL.Problem.p,... 'iternum', 100); @@ -68,18 +77,19 @@ % Defining the parameters needed for sparse representation -SMALL.solver(1).toolbox='SPAMS'; -SMALL.solver(1).name='mexLasso'; +SMALL.solver(1).toolbox='SMALL'; +SMALL.solver(1).name='SMALL_cgp'; % Here we use mexLasso mode=2, with lambda=2, lambda2=0 and positivity % constrain (type 'help mexLasso' for more information about modes): % % min_{alpha_i} (1/2)||x_i-Dalpha_i||_2^2 + lambda||alpha_i||_1 + (1/2)lambda2||alpha_i||_2^2 -SMALL.solver(1).param=struct(... - 'lambda', 2,... - 'pos', 1,... - 'mode', 2); +SMALL.solver(1).param='20, 1e-2'; +% struct(... +% 'lambda', 2,... +% 'pos', 1,... +% 'mode', 2); % Call SMALL_soolve to represent the signal in the given dictionary. % As a final command SMALL_solve will call above defined reconstruction @@ -99,82 +109,83 @@ %% -% Here we solve the same problem using non-negative sparse coding with -% SPAMS online dictionary learning (Julien Mairal 2009) -% -% Initialising Dictionary structure -% Setting Dictionary structure fields (toolbox, name, param, D and time) -% to zero values - -SMALL.DL(2)=SMALL_init_DL(); - - -% Defining fields needed for dictionary learning - -SMALL.DL(2).toolbox = 'SPAMS'; -SMALL.DL(2).name = 'mexTrainDL'; - -% Type 'help mexTrainDL in MATLAB prompt for explanation of parameters. - -SMALL.DL(2).param=struct(... - 'K', SMALL.Problem.p,... - 'lambda', 3,... - 'iter', 300,... - 'posAlpha', 1,... - 'posD', 1,... - 'whiten', 0,... - 'mode', 2); - -% Learn the dictionary - -SMALL.DL(2) = SMALL_learn(SMALL.Problem, SMALL.DL(2)); - -% Set SMALL.Problem.A dictionary and reconstruction function -% (backward compatiblity with SPARCO: solver structure communicate -% only with Problem structure, ie no direct communication between DL and -% solver structures) - -SMALL.Problem.A = SMALL.DL(2).D; -SMALL.Problem.reconstruct=@(x) SMALL_midiGenerate(x, SMALL.Problem); - -%% -% Initialising solver structure -% Setting solver structure fields (toolbox, name, param, solution, -% reconstructed and time) to zero values -% As an example, SPAMS (Julien Mairal 2009) implementation of LARS -% algorithm is used for representation of training set in the learned -% dictionary. - -SMALL.solver(2)=SMALL_init_solver; - -% Defining the parameters needed for sparse representation - -SMALL.solver(2).toolbox='SPAMS'; -SMALL.solver(2).name='mexLasso'; - -% Here we use mexLasso mode=2, with lambda=3, lambda2=0 and positivity -% constrain (type 'help mexLasso' for more information about modes): -% -% min_{alpha_i} (1/2)||x_i-Dalpha_i||_2^2 + lambda||alpha_i||_1 + (1/2)lambda2||alpha_i||_2^2 - -SMALL.solver(2).param=struct('lambda', 3, 'pos', 1, 'mode', 2); - -% Call SMALL_soolve to represent the signal in the given dictionary. -% As a final command SMALL_solve will call above defined reconstruction -% function to reconstruct the training set (Problem.b) in the learned -% dictionary (Problem.A) - -SMALL.solver(2)=SMALL_solve(SMALL.Problem, SMALL.solver(2)); - -%% -% Analysis of the result of automatic music transcription. If groundtruth -% exists, we can compare transcribed notes and original and get usual -% True Positives, False Positives and False Negatives measures. - -if ~isempty(SMALL.Problem.notesOriginal) - AMT_res(2) = AMT_analysis(SMALL.Problem, SMALL.solver(2)); -end +% % Here we solve the same problem using non-negative sparse coding with +% % SPAMS online dictionary learning (Julien Mairal 2009) +% % +% +% % Initialising Dictionary structure +% % Setting Dictionary structure fields (toolbox, name, param, D and time) +% % to zero values +% +% SMALL.DL(2)=SMALL_init_DL(); +% +% +% % Defining fields needed for dictionary learning +% +% SMALL.DL(2).toolbox = 'SPAMS'; +% SMALL.DL(2).name = 'mexTrainDL'; +% +% % Type 'help mexTrainDL in MATLAB prompt for explanation of parameters. +% +% SMALL.DL(2).param=struct(... +% 'K', SMALL.Problem.p,... +% 'lambda', 3,... +% 'iter', 300,... +% 'posAlpha', 1,... +% 'posD', 1,... +% 'whiten', 0,... +% 'mode', 2); +% +% % Learn the dictionary +% +% SMALL.DL(2) = SMALL_learn(SMALL.Problem, SMALL.DL(2)); +% +% % Set SMALL.Problem.A dictionary and reconstruction function +% % (backward compatiblity with SPARCO: solver structure communicate +% % only with Problem structure, ie no direct communication between DL and +% % solver structures) +% +% SMALL.Problem.A = SMALL.DL(2).D; +% SMALL.Problem.reconstruct=@(x) SMALL_midiGenerate(x, SMALL.Problem); +% +% %% +% % Initialising solver structure +% % Setting solver structure fields (toolbox, name, param, solution, +% % reconstructed and time) to zero values +% % As an example, SPAMS (Julien Mairal 2009) implementation of LARS +% % algorithm is used for representation of training set in the learned +% % dictionary. +% +% SMALL.solver(2)=SMALL_init_solver; +% +% % Defining the parameters needed for sparse representation +% +% SMALL.solver(2).toolbox='SPAMS'; +% SMALL.solver(2).name='mexLasso'; +% +% % Here we use mexLasso mode=2, with lambda=3, lambda2=0 and positivity +% % constrain (type 'help mexLasso' for more information about modes): +% % +% % min_{alpha_i} (1/2)||x_i-Dalpha_i||_2^2 + lambda||alpha_i||_1 + (1/2)lambda2||alpha_i||_2^2 +% +% SMALL.solver(2).param=struct('lambda', 3, 'pos', 1, 'mode', 2); +% +% % Call SMALL_soolve to represent the signal in the given dictionary. +% % As a final command SMALL_solve will call above defined reconstruction +% % function to reconstruct the training set (Problem.b) in the learned +% % dictionary (Problem.A) +% +% SMALL.solver(2)=SMALL_solve(SMALL.Problem, SMALL.solver(2)); +% +% %% +% % Analysis of the result of automatic music transcription. If groundtruth +% % exists, we can compare transcribed notes and original and get usual +% % True Positives, False Positives and False Negatives measures. +% +% if ~isempty(SMALL.Problem.notesOriginal) +% AMT_res(2) = AMT_analysis(SMALL.Problem, SMALL.solver(2)); +% end %% % Plot results and save midi files diff -r fc395272d53e -r cbf3521c25eb examples/Automatic Music Transcription/SMALL_AMT_KSVD_Err_test.m --- a/examples/Automatic Music Transcription/SMALL_AMT_KSVD_Err_test.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Automatic Music Transcription/SMALL_AMT_KSVD_Err_test.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR AUTOMATIC MUSIC TRANSCRIPTION +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2010 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test diferent % dictionary learning techniques in Automatic Music Transcription problem. % It calls generateAMT_Learning_Problem that will let you to choose midi, @@ -9,7 +19,7 @@ % Problem.p notes spectrograms from training set Problem.b using % dictionary learning technique defined in DL structure. % -% Ivan Damnjanovic 2010 + %% clear; diff -r fc395272d53e -r cbf3521c25eb examples/Automatic Music Transcription/SMALL_AMT_KSVD_Sparsity_test.m --- a/examples/Automatic Music Transcription/SMALL_AMT_KSVD_Sparsity_test.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Automatic Music Transcription/SMALL_AMT_KSVD_Sparsity_test.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR AUTOMATIC MUSIC TRANSCRIPTION EXAMPLE 1 +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2010 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test diferent % dictionary learning techniques in Automatic Music Transcription problem. % It calls generateAMT_Learning_Problem that will let you to choose midi, @@ -9,7 +19,6 @@ % Problem.p notes spectrograms from training set Problem.b using % dictionary learning technique defined in DL structure. % -% Ivan Damnjanovic 2010 %% clear; diff -r fc395272d53e -r cbf3521c25eb examples/Automatic Music Transcription/SMALL_AMT_SPAMS_test.m --- a/examples/Automatic Music Transcription/SMALL_AMT_SPAMS_test.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Automatic Music Transcription/SMALL_AMT_SPAMS_test.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR AUTOMATIC MUSIC TRANSCRIPTION EXAMPLE 1 +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2010 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test diferent % dictionary learning techniques in Automatic Music Transcription problem. % It calls generateAMT_Learning_Problem that will let you to choose midi, @@ -9,7 +19,6 @@ % Problem.p notes spectrograms from training set Problem.b using % dictionary learning technique defined in DL structure. % -% Ivan Damnjanovic 2010 %% clear; diff -r fc395272d53e -r cbf3521c25eb examples/Image Denoising/SMALL_ImgDenoise_DL_test_KSVDvsSPAMS.m --- a/examples/Image Denoising/SMALL_ImgDenoise_DL_test_KSVDvsSPAMS.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Image Denoising/SMALL_ImgDenoise_DL_test_KSVDvsSPAMS.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR IMAGE DENOISING +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2009 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test different % dictionary learning techniques in Image Denoising problem. % It calls generateImageDenoiseProblem that will let you to choose image, @@ -16,7 +26,6 @@ % Conference on Machine Learning,Montreal, Canada, 2009 % % -% Ivan Damnjanovic 2010 %% clear; diff -r fc395272d53e -r cbf3521c25eb examples/Image Denoising/SMALL_ImgDenoise_DL_test_SPAMS_lambda.m --- a/examples/Image Denoising/SMALL_ImgDenoise_DL_test_SPAMS_lambda.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Image Denoising/SMALL_ImgDenoise_DL_test_SPAMS_lambda.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR IMAGE DENOISING +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2010 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test different % dictionary learning techniques in Image Denoising problem. % This example can be used to test SPAMS for different values of @@ -6,7 +16,6 @@ % denoising. It should only give an idea how SMALL structure can be used % for testing. % -% Ivan Damnjanovic 2010 %% clear all; diff -r fc395272d53e -r cbf3521c25eb examples/Image Denoising/SMALL_ImgDenoise_DL_test_Training_size.m --- a/examples/Image Denoising/SMALL_ImgDenoise_DL_test_Training_size.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Image Denoising/SMALL_ImgDenoise_DL_test_Training_size.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% DICTIONARY LEARNING FOR IMAGE DENOISING +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 20100 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This file contains an example of how SMALLbox can be used to test different % dictionary learning techniques in Image Denoising problem. % It calls generateImageDenoiseProblem that will let you to choose image, @@ -17,7 +27,6 @@ % Conference on Machine Learning,Montreal, Canada, 2009 % % -% Ivan Damnjanovic 2010 %% clear all; diff -r fc395272d53e -r cbf3521c25eb examples/Pierre Villars/Pierre_Villars_Example.m --- a/examples/Pierre Villars/Pierre_Villars_Example.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/Pierre Villars/Pierre_Villars_Example.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,4 +1,14 @@ %% Pierre Villars Example +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2010 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % This example is based on the experiment suggested by Professor Pierre % Vandergheynst on the SMALL meeting in Villars. % The idea behind is to use patches from source image as a dictonary in @@ -6,8 +16,6 @@ % Calling Pierre_Problem function to get src image to be used as dictionary % and target image to be represented using MP with 3 paches from source image % -% -% Ivan Damnjanovic 2010 %% clear all; diff -r fc395272d53e -r cbf3521c25eb examples/SMALL_solver_test.m --- a/examples/SMALL_solver_test.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/SMALL_solver_test.m Tue Apr 27 13:33:13 2010 +0000 @@ -2,6 +2,16 @@ % Example test of solvers from different toolboxes on Sparco compressed % sensing problems % +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2009 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % The main purpose of this example is to show how to use SMALL structure % to solve SPARCO compressed sensing problems (1-11) and compare results % from different solvers. @@ -40,11 +50,8 @@ % polynomial signal" from Sparco. % % -% Ivan Damnjanovic 2009% -% -% SPARCO Copyright 2008, Ewout van den Berg and Michael P. Friedlander -% http://www.cs.ubc.ca/labs/scl/sparco -% $Id: exGPSR.m 1040 2008-06-26 20:29:02Z ewout78 $ + + fprintf('\n\nExample test of SMALL solvers against their counterparts on Sparco problems.\n\n'); diff -r fc395272d53e -r cbf3521c25eb examples/SMALL_solver_test_Audio.m --- a/examples/SMALL_solver_test_Audio.m Tue Apr 27 13:33:00 2010 +0000 +++ b/examples/SMALL_solver_test_Audio.m Tue Apr 27 13:33:13 2010 +0000 @@ -1,5 +1,15 @@ function SMALL_solver_test_Audio -% Example test of solvers on Sparco audio source separation problems +%%% Example test of solvers on Sparco audio source separation problems +% +% Centre for Digital Music, Queen Mary, University of London. +% This file copyright 2009 Ivan Damnjanovic. +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of the +% License, or (at your option) any later version. See the file +% COPYING included with this distribution for more information. +% % % The main purpose of this example is to show how to use SMALL structure % to solve SPARCO audio source3 separation problems (401-402) and to @@ -36,11 +46,7 @@ % reconstructed signal as well as mixed signal. % % -% Ivan Damnjanovic 2009% -% -% SPARCO Copyright 2008, Ewout van den Berg and Michael P. Friedlander -% http://www.cs.ubc.ca/labs/scl/sparco -% $Id: exGPSR.m 1040 2008-06-26 20:29:02Z ewout78 $ +%% fprintf('\n\nExample test of solvers on Sparco Audio problems (401,402).\n\n');