1 of 2
1
Blob tracking on GPU
Posted: 17 June 2008 11:53 AM   [ Ignore ]
New Member
Rank
Total Posts:  36
Joined  2008-04-16

I seem to remember reading a while ago somewhere that someone was working on code that would make all the blob tracking being done on the graphics card. Has any progress been made in this area?

Profile
 
 
Posted: 17 June 2008 12:42 PM   [ Ignore ]   [ # 1 ]
Sr. Member
Avatar
RankRankRank
Total Posts:  265
Joined  2007-09-22

Opencv is ported to run on GPUs , i’ve seen the code , it’s called opeNvidia or something similar.

Edit:

Here ---> http://openvidia.sourceforge.net/

Profile
 
 
Posted: 17 June 2008 07:53 PM   [ Ignore ]   [ # 2 ]
New Member
Rank
Total Posts:  36
Joined  2008-04-16

That is interesting, but I run an ATI card :S I thought someone was going to implement this into Touchlib.

Edit: Found a link… http://code.google.com/soc/2008/nuig/appinfo.html?csaid=E60783312855647E
No information about whether this is being worked on, or anything from what I could tell.

Profile
 
 
Posted: 18 June 2008 12:26 AM   [ Ignore ]   [ # 3 ]
New Member
Avatar
Rank
Total Posts:  36
Joined  2008-05-07

That will definitely be really cool to test it out.

 Signature 

chris szadkowski

interactive design | creative direction
cell: +310.913.5263 | web: http://www.szadkowski.com
email: 

Profile
 
 
Posted: 18 June 2008 12:42 AM   [ Ignore ]   [ # 4 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  1349
Joined  2007-04-08

Yes, as GSoC project, touchlib is being ported to GPU wink

 Signature 

My Multitouch Blog
My Youtube
Multitouch FAQ - Need Help? Click here!

Profile
 
 
Posted: 18 June 2008 03:05 AM   [ Ignore ]   [ # 5 ]
New Member
Rank
Total Posts:  54
Joined  2007-10-06

And summer is saturday, Yeah :D

Profile
 
 
Posted: 18 June 2008 03:21 AM   [ Ignore ]   [ # 6 ]
Sr. Member
Avatar
RankRankRank
Total Posts:  265
Joined  2007-09-22

Well i think it’s really a waste of time , it’d clog up the GPU just for 10-20% of the CPU?On a decent CPU you can get touchlib to run under 10% at VGA resolutions.

Profile
 
 
Posted: 18 June 2008 04:55 AM   [ Ignore ]   [ # 7 ]
New Member
Rank
Total Posts:  38
Joined  2007-03-30

GPU’s are just made for image processing tasks. CPU’s ain’t. With GPU acceleration it’s quite possible to make TL or any other blob tracking algorithm immensely fast. Still this means that the way you would design this algorithm would be totally different then a CPU based one. The quickest route home for TL would be to use GPUCV which is completely compatible to OpenCV. Still this would imply some serious code work. There are also allot of people like me trying out there own blob tracking algorithms and finding out that the openCV ones are not always the fastest way to go. They provide you with allot of features like countour shape etc, but just for finding blobs it might me a bit to much..

 Signature 

"An idea is salvation by imagination.”
Frank Lloyd Wright

SITE: Intactlab, multi-touch systems

Profile
 
 
Posted: 18 June 2008 04:05 PM   [ Ignore ]   [ # 8 ]
Jr. Member
Avatar
RankRank
Total Posts:  188
Joined  2007-09-13

CUDA could actually make a world of difference, IMO. Instead of having 2 or 4 cores as in current CPUs to handle the image processing, you could have the 100+ independent stream processors on current GPUs to do the processing.

The latest openVIDIA already takes advantage of this. This is exciting news, for sure.

Profile
 
 
Posted: 18 June 2008 04:31 PM   [ Ignore ]   [ # 9 ]
New Member
Rank
Total Posts:  40
Joined  2007-04-16

It’s just a shame that ATI and Nvidia both have their own approach to programming on the GPU.
Unless I’m wrong there is no standard way to code the apps.

GPUCV seems to work on both types but openVIDIA seems to just be CUDA (Nvidia).

Profile
 
 
Posted: 18 June 2008 07:34 PM   [ Ignore ]   [ # 10 ]
New Member
Rank
Total Posts:  36
Joined  2008-04-16

It’s just a shame that ATI and Nvidia both have their own approach to programming on the GPU.
Unless I’m wrong there is no standard way to code the apps.

Not on the machine code level, but this is what OpenGL was designed for. If the code were to be created in OpenGL that would be great.

@cerupcat: Is there a development blog for the projects going on for touchlib? I’d love to know when this project gets completed, how it is done, etc.

Profile
 
 
Posted: 19 June 2008 04:48 AM   [ Ignore ]   [ # 11 ]
New Member
Rank
Total Posts:  38
Joined  2007-03-30

You could use BrookGPU which is an alternative to CUDA (nvidia) and CTM (ATI) or come up with youw own use of GLSL shaders for GPGPU. I still think for TL we need GPUCV, since there is a heavy dependence on openCV for the moment.

 Signature 

"An idea is salvation by imagination.”
Frank Lloyd Wright

SITE: Intactlab, multi-touch systems

Profile
 
 
Posted: 19 June 2008 11:00 AM   [ Ignore ]   [ # 12 ]
New Member
Rank
Total Posts:  24
Joined  2008-04-01

I have recently profiled touchlib when looking at GPUCV to see what the major bottlenecks are and if it would be wise to implement GPUCV. In our setup (Quadcore) the image processing algorithms were doing less than 3% of the total TUIO-frame time. The main bottle necks for the framerate we have seen so far are flash and the xml communication with flash, which has quite a high latency.

So although it would definitely be faster to do image processing by use of GPU, it will probably not get that much speed improvements.

my 2 cents.

 Signature 

canTouch tangible interfaces - Amsterdam - http://www.cantouch.nl

Profile
 
 
Posted: 19 June 2008 06:02 PM   [ Ignore ]   [ # 13 ]
New Member
Rank
Total Posts:  36
Joined  2008-04-16

@Erik2003: Interesting perspective, thanks for sharing that.

Profile
 
 
Posted: 18 July 2008 01:50 AM   [ Ignore ]   [ # 14 ]
New Member
Avatar
Rank
Total Posts:  91
Joined  2007-11-29

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 rasberry!  I’d love to hear what other people think about this!

btw: project blog @ tehansen.wordpress.com

 Signature 

http://cs.uiowa.edu/~tehansen

Profile
 
 
Posted: 18 July 2008 02:00 AM   [ Ignore ]   [ # 15 ]
Sr. Member
RankRankRank
Total Posts:  286
Joined  2007-07-14

Can GPU simultaniosly process blobs and 3D?

Profile
 
 
   
1 of 2
1