Gesture based control using a Laser pointer and Image Recognition
As my previous experiments were too simple
(anyone could do this) i whipped this up on a sunday to distract me of my high fever
and a terrible headace.
This is way more comfortable than even remote controls. You don't have to
find the right button on your remote control in the dark, just take the
laser pointer and draw some gestures somewhere on the wall. Very comfortable,
i will never use a normal remote control again.
This has some industrial uses, too. With a filter you can isolate the
exact frequence of the laser, so light conditions in the room don't matter.
You could even use an infrared laser (or a sharply focused infrared LED-beam)
so nobody gets distracted when you "control" your equipment.
The camera delivers only 50 halfframes per second, but the image
processing thread is not synchronized to the frame delivery thread,
to allow me to judge (from the fps-meter) how fast my (still
fairly unoptimized) code is.
[ Lars Krahl | 17.12.06 16:04 ] I can imagine that as very useful in a presentation, where you could draw stuff with the laserpointer instead of a mouse. Or control the slides or whatever. Good job!
[ Spencer | 18.12.06 03:49 ] could you also integrate a wireless webcam into a remote like object, and have it so that you could just draw holding the camera and laser pointer together, then you wouldn't be restricted to only the position of the webcam?
[ n3rrd | 18.12.06 04:03 ] Spencer, the problem with that would be that, from the looks of this movie, the camera has to have a point of reference... if it moves with the pointer, it'd have to work differently.
[ eric | 18.12.06 04:18 ] maybe for your next laser-camera project you could make it so that if you have a powerpoint presentation on a projector, you could draw stuff with a laser on the screen and have it draw it on the slide itself (like the pencil tool). just an idea...
[ Yosh | 18.12.06 05:59 ] Nice use for some old webcam, I like alot :) Keep up the good work!
[ Daniel | 18.12.06 12:04 ] This has some serious applications for many people who are physically disabled. One of my friends, a quadriplegic might welcome this.
[ yon | 18.12.06 12:20 ] sorry, i meant keep up the good work
[ Terramoto | 18.12.06 14:44 ] sorry for the silly question...but where can i get info about working with image recognition? tks
[ Mitch | 18.12.06 16:14 ] How about a how-to?
Cuz this is frakking brilliant
[ Kawter | 18.12.06 19:40 ] Great idea, Sorry it has already been patented
[ fricy | 18.12.06 23:40 ] Just dropped by to say: keep up the good work! Brilliant!
ps: and please don't send me the code :D
[ nick09 | 18.12.06 23:58 ] Hey this looks amazing!! you should really make it available for download. Helps us out and is easier for you as there is no need in sending to all these addys.
[ Martin | 19.12.06 09:23 ] I started looking at this as I would love to have this stuff running on my computer.
DirectShow.net gives you access to the images coming in from your webcam. You need to process each frame and look for the brightest point in each image.
Once you have those points you can feed them into some gesture recognition code. Here are somelinks to source code that deals with mice gestures.
[ JeremyM | 20.12.06 18:14 ] Hey there. I really think this is pretty damn cool. I'd love to have it for my studio. When listening to tracks, we sit back on the couch but the couch is too far away and forces me to get up every time we want to hear something again. Visit my link for contact information. I'd really appreciate it.
[ Max | 25.12.06 12:54 ] I aint someone asking for a copy, would u be able to explain how to do it? (for us adventurous coders)
[ Martin | 16.01.07 18:47 ] Here it is, somebody else has actually done something similar but this one comes with source and details.
[ Jonas | 21.09.08 13:35 ] hey man! just saw your softwear and got kind of impressed, and my mind started thinking. so I tought of making the cursor moving with a gesture of my hand. so i googled and saw that i were not the only one who tought that would be cool, but all programs i tried was not so good. then i saw a clip on youtube
( http://www.youtube.com/watch?v=AtmwQnUlEmc )
and tought out that this must be the best thing to do. so i googled a bit more and found this project
( http://www.debralauterbach.com/GestureRecognitionFinalPaper.pdf )
but i could not find any kind of program to download or anything. and since i dont know how to write code i feel kind of stuck here.
So, here to my question, maby you could make some kind of program like those and maby put it out for downloading?
please mail me and tell me what you think aboute it, JonasJR_92hotmail.com
[ R0lanD | 25.12.09 13:07 ] Hi man!
Which camera do you use? I see 221fps in a conner and it's disturbing me. I have some duties with gesture recognition and sometime get bad results on fast motion. Could you send me a link where I can buy such camera?
[ mnt | the codeninja, 30.12.09 17:14 ] See last sentence, the framerate shown is only the processing rate, not the camera rate.
[ Cosmin | 21.01.10 20:25 ] Hello, i would like to do such things, but i don't know how to start. I have some experience with image recognition (more specific with captcha braking / recognition) with PHP, i know real time image recognition (via a webcam) can't be done with PHP.
What programming language are you using? can you recommend some articles or tutorials to start with and to create a basic view over the real time computer vision.
[ mnt | the codeninja, 25.01.10 10:33 ] I'm using C++. Try python, it's easy.
If you want to simplify this project just buy a filter that only lets the color red pass, then it's just searching for a bright pixel inside a bitmap.
[ Joel | 22.04.10 03:25 ] I'd really like to use this program with my own webcam, have you released it anywhere or are you willing to share the program?
Please contact me at joel.tn () gmail.com
[ dalton | 29.04.11 12:34 ] try Aforge.Net framework.....to get the video input from the webcam....n dn process each frame received....:-)i.e find the brightest point in each frame..and save it in an array..dn take the 1st and the last point in the array n recognize the movement..:-)
[ dalton | 29.04.11 12:37 ] cursor movement can be done...but its nt user friendly..:-)i hav tried it...
[ mark | 19.09.11 00:53 ] I imagine it python and openCV. Great combination very powerful.
[ Iwan | 03.10.11 08:26 ] Hi there I have been searching for this for a while and have found a few, but they didn't work on my pc, i have even found one for linux! but unfortunately not for windows 7 even a site where you can program it myself, but the language i,m using is OLD! and im a newbe, had to teach myself! no teathers in homescooling...
can you maby send me a copy?
thanx in advance!