Friday, February 12, 2010

Google Image Swirl ... Matlab version!!

Today, I implement what is so called Google Image Swirl in Google Lab webpage. I developed this without even knowing that Google has similar applications. After checking out the techniques they use in a paper from Google, it is EXACT the same method! But anyway it still worth logging my experiment.
I programmed a Matlab version (well, not pure Matlab, the main function is in C, will move to CUDA later) of image search engine, using SIFT features and network analysis techniques similar to what Google are using.
A simple test result is shown as above, the engine successfully rank images such that images from the same scene are grouped together. Codes are currently efficient enough and ready to tackle bigger image databases. If anyone interested, contact me. Google Image Swirl: http://image-swirl.googlelabs.com/

Update: the CUDA version with Matlab interface is here!! 200 images 'swirl' for just merely 30 seconds on my GTX295. I am only use one chip in 295 so it can further improve. 200 images, that's 40000 comparisons.That's about 100 times speed up to my c implementation with Matlab interface, Yay!

2 comments:

melonakos said...

Saw your post and just wanted to let you know that we've been thinking about similar things with Jacket, our GPU engine for MATLAB that is based on CUDA (http://www.accelereyes.com).

We recently did some work to accelerate SIFT stuff (probably very similar to what you've done), all in MATLAB using Jacket to speed it all up. Don't know if this is useful to you, but feel free to EM me if you've got questions: john.melonakos accelereyes.com

GoGoStudio said...

Thanks for your notice :). I will give it a try soon.
I have been using GPU based SIFT from UNC and i am writing a Matlab interface for it.