You can download it here [binary] or [source].
Upgrade to Kinect SDK 1.6
I've updated the dll in the lib folder to the new version. No other changes were necessary.
IDisposable for IDataSourceFactoryIDataSourceFactory now implements IDisposable (call Dispose() instead of DisposeAll())
http://candescentnui.codeplex.com/workitem/1194
Near Mode Optional
The near mode is now optional (the Kinect SDK DataSourceFactory now takes an optional parameter in the constructor.
this.dataSourceFactory = new SDKDataSourceFactory(useNearMode: false);And... stay tuned for some other news! :-)
your work is cited by some papers, do you know about that?
ReplyDeletehttp://digital.library.louisville.edu/utils/getfile/collection/etd/id/2375/filename/5172.pdf
http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=06269439
Hi Tcboy
ReplyDeleteThanks for the links! I didn't know that. The first article has a nice summary of how the algorithm works.
The second link doesn't work unfortunately...
- Stefan
Hi, great work! In Core\Shape\DepthMap.cs (http://candescentnui.codeplex.com/SourceControl/changeset/view/20148#228884), in FillRate { ... for (int x... { for (int y... , I wonder whether IsSet(y,y) is correct or should be IsSet(x,y).
ReplyDeleteHi Anton
ReplyDeleteThanks!
Yes, that looks like it's obviously wrong. I'll correct it!
- Stefan
https://dl.dropbox.com/u/18371015/06269439.pdf
ReplyDeletesome how i think she was just using your application without much improvement
ReplyDeletei think you deserve more credits for that
but she didnt even informed you...
Hi TcBoy
ReplyDeleteThanks for the download!
Actually I've exchanged some e-mails with Yi Li. I gave her permission to publish papers that are based on my project and the reference to the project site is okay, too. I didn't write any papers myself, so that's okay.
She promised to send me a draft of the paper, but unfortunately that never happened.
- Stefan
Hi stefan..
ReplyDeletecurrrently my final year project is about develop an interactive surface that interact with finger tips. i want to ask if u can help me tell how to implements your hand tracking in my project. some how i dont know where to ask. i totally lost. if kindly u can give some tips for the touch detection.
which is better using openni or kinect sdk? which one a lot easy and had many tutorial to refer?
hope to receive ur feedback soon.
u can email me at mriduwan@gmail.com
-zach
Hi zach
ReplyDeleteIf you have a Kinect for Windows hardware you should use Kinect SDK, if you have a Kinect for Xbox you should use OpenNI. You can use Candescent NUI with both (given the right hardware).
You should start by downloading it and then having a look at the samples project.
- Stefan
Hi. how do i make this work on 32 bit? thanks
ReplyDeleteHello Stefan.
ReplyDeleteI just want to ask.. Did you use Open CV or Emgu CV in this project? because i'm working on something like this with Kinect+Emgu and I'm really having a hard time. I hope you could help me. Thank you very much.
@klomster
ReplyDeleteYou could download the source and compile it yourself. Just replace the DLLs in the lib folder with the 32 bit versions and set the project output to x86.
@UST
I didn't use any 3rd party graphics library (pure .NET + OpenNI / Kinect SDK)
This comment has been removed by the author.
ReplyDeletehey stefan..
ReplyDeletethank for answering my question.
now i already started my project. but i have some PROBLEM to use your finger tips detection to enable me to control window apps such paint. i want to ask u that how can i use your finger tips detection to control windows. did i need to use an third party driver such multi-touch vista. secondly, i got no idea how to develop the multi-touch apps such as your image manipulation. did u got an tutorial that i can refer with..
hope that u can help me.
thank..
For controlling windows please have a look at the project CCT.NUI.MouseControl
ReplyDeleteThere is also a sample for MultiTouch in CCT.NUI.WPFSamples (TouchWindow)
hey stefan..
ReplyDeleteim zach, i want to ask how to enable mouse control to detect multi-touch from finger tips in window. i want to use mouse control to detect multiple finger point and use it in window apps such as paint. can help me give same sample? that translate fingertips point into window.
thank you.
The multi-touch sample only works in applications you write yourself.
ReplyDeleteThe mouse control sample uses Win32 functions to control the mouse, which can't be used for multiple touch points.
hi stefan..
ReplyDeletei want to ask how to change the video control size in wpf sample. your using 640x480 currently. i to reduce it to 320x240.
thanks.
hello stefan..
ReplyDeletesory for interupt..but i want to ask..can i specific kinect multitouch point in KinectMultiTouchDevice.cs to trigger with the z-point value..
urgent..need ur help..
thank.
For OpenNI you can change the resolution in config.xml,
ReplyDeletefor KinectSDK you can change it in the class SDKDataSourceFactory.
About triggering touch at a specific range:
You can for example change Minimum and Maximum Depth Threshold in ClusterDataSourceSettings. Or you could add a filter in the class KinectMultiTouchDevice.
if i just want to resize the window..and make another window in same xaml file..how? i want a window with 640x480 and 320x240 size..want to have both..how can i manipulate the video control. other thing..how can i specific touch gesture for example like flick, pan, rotate based on number of finger.
ReplyDeletethank in advanced.
Hello,stefan..
ReplyDeletei ran your code and find i can detect my finger only if stand at one meter.I want to detect finger When stand at about two meters away.
hope that u can help me.
thank..
http://yanwen.us/docs/kinect.pdf
ReplyDeletefound some random paper using your work
I didnt read it though
Not sure whether if he cited you, or did not give you any credits.
Hi TcBoy
ReplyDeleteThanks for the paper! They are clearly using my code and there's no reference to me or my project in the paper. And they are claiming this to be their work:
"Different from any existing approaches, our methods are
based on inexpensive commodity depth sensor such as Kinect
or Xtion, and our methods do not require any additional tools,
databases or machine training process. Furthermore, not only
are we able to detect the position of palms and fingertips, but
also we can find the direction of each finger correctly, so that
users can acquire more comprehensive gesture information."
That's what I'd call plagiarism.
- Stefan
Hah, I didn't have time to read through it yet.
DeleteWill read it later~
but the original link I pasted here seems to be down
Luckily, I found it in IEEE Xplore library
And luckily I can access it via my university network.
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=6374441
Anyway, are you going to pursue on this matter?
Or just ignore it?
A quick glance on the paper and I noticed several things
Delete1) As Chinese, their writing skill and English level is considered not bad.
2) While they clearly using your code, but they did provide explanation on the techniques, like K-means and Convex Hull. And they provide some mathematical equations to make the paper seems professional.
3) I am not sure why they need the skin color hand segmentation part (section 2A). It is their own technique, but it seems no benefits at all.
First they extract skin color objects, and then from these skin objects, they find the nearest one from the sensor. (they should just skip the skin part, and straight away find the nearest objects)
4) The rest should be just using your code. (Did your code works like what they explain in Section 3A & 3B?)
Since your code is open source (BSD license), they can pretty much do anything with it as long as they do not distribute it.
But they should at least give you credits for that. =(
Hi TcBoy
ReplyDeleteYes, my code works exactly like they describe it. Minus the skin detection part. You can easily look up how a K-means or Graham scan algorithm works.
The open source license is one thing. But you've also got rules for academic publishing which they violated.
I wrote them an e-mail telling them to add a reference. One of them answered and told me he did so. Since then this gives the 404: http://yanwen.us/docs/kinect.pdf
I don't know if it's possible to change a document when it's been added to the ieeexplore site.
- Stefan
This comment has been removed by the author.
ReplyDeleteAs far as I know, I think it is NOT possible to change a published paper.
ReplyDeleteThe only possibility is to add some kind of Errata.
But different publisher may have different rules... so that's the tricky part.
If you need the PDF from ieeexplore:
https://dl.dropboxusercontent.com/u/18371015/06374441.pdf