Saturday, May 01, 2010

CS: MATLAB Programming Contest on Compressive Sensing


Just for fun, I entered in the MATLAB Programming Contest on Compressive Sensing during the daylight period, i.e anybody can see the codes that is entered:

The SL0 version is here:



The CoSamp version is here:


The main program goes through a series of images to reconstruct (you do not need to write that part) and the maximum time seems to be 3 minutes. Both of my entries failed because they timed out. From the looks of it, it may have to do with the svd (pinv) as some of these images are large (400 and up).


To make a better version you just need to:
  • change the measurement matrix (they must have element in {0,1} set.)
  • replace the solver (CoSamp or SL0 in the examples above)
from the examples given in the links above (you may have to register to see them).

Update 1: This entry using CoSamp has not timed out. The current best score for the whole contest is 28309.5 (lower score is better). The score with version 2 is 434453.0 and the score with version 3 is 411359.0 while the score for version 4 is 433258.0 and version 5 did 1935450.0 bleh....

Anybody want to try it out ?

5 comments:

R said...

Igor,

You might want to try to take the first measurement to be the sum of all the pixels (i.e., mask is all ones). Divide the answer by two, and subtract if from all the other queries. Now you you have a {-1/2,1/2} measurement matrix. That might make a difference.

R said...
This comment has been removed by the author.
R said...

Also, Igor, I just noticed, you are assuming the image is sparse in the spatial domain!! Am i missing something in your code?

Igor said...

R,

Thanks for the first info.

Yes I am assuming something sparse in the space domain as it looks to me that the best competitors seems to go after some sort of group testing procedure. But please modify the code to handle the sparse case in fourier or wavelet and let me know it goes. Or you can send me your version ( I am not pushing the boundaries here as you can see).

Cheers

Igor.

The Vlad said...

Hi Igor,

I ran the CoSamp code that you entered in the competition (version 14), and I also ran the CoSamp optimizer with my own wavelet-based sensor. In both cases, however, the images that are reconstructed are basically gibberish (a few random non-zero pixels, and the rest are black; you can see this via the plot function that is supplied in the 'runcontest' function supplied at the contest website). Any ideas why this occurs?

Cheers

Tony

Printfriendly