Hey everyone, Im the guy working on implementing blob detection on the gpu for google summer of code. I just now saw this thread, sorry I didnt get involved in this discussion earlier.
I still have quite some work to do before everything is going to be usable and integrated into touchlib. I have most of the image processing done, and am working on the most effective way to extract blob location (and maybe size/contour stuff). I am pretty convinced that the tracking algorithm (determining whether the blob found in the current frame was there before and which one it was) should be left on the CPU. I dont see any use cases where we have the amount of concurrent blobs where this algorithm would see an improvement on the GPU. My focus has been one doing the image pre-processing and blob detection on the gpu. The blob locations can be transfered back to the gpu in a small image that encodes the information for one frame (i.e. how many blobs and where they are)...yay for geometry shaders and variable length output!
I am not using CUDA or anything else like that for any of the development, because it only is supported on NVIDIA chips. So I have been implementing all of the gpu code as fragment and geometry shaders written in glsl, which will run on linux, OSX, and windows..or anything that supports OpenGL and the necessary shader extensions for that matter. i should get the code integarted into touchlib and ready for testing within the next month for sure. Feel free to pm or email me if you are interested in the project or want to contribute
! I’d love to hear what other people think about this!
btw: project blog @ tehansen.wordpress.com