Reinvent The Wheel

Round is nice, but we can do better!

Primitive Hand and Fingertip detection with TKinect and Delphi

| 2 Comments

Yesterday, I received a comment here on my blog from a Mr. Victory Fernandes. Victory (which is an awesome name) is a professional Delphi developer based in Brazil. When he’s not programming, he rides motorcycles (just like me)… so in a sense we’re kindred spirits in our work, and our bikes.

hi,

I´m a software developer in Brazil. I´m working with your TKinect demo. Great stuff!

Thanks, Victory… though I can’t really take all the credit! Many people have been helping along the way, and their contributions and accomplishments must be recognized.

I found this nice hand-and-fingertip detection demo using Delphi and Kinect…

Oh? At this point I’m utterly intrigued…

…they did not use your TKinect unit, they used a pretty rough unit… so I integrated their code to yours and now we have TKinect detecting hand-and-fingertip patterns…

… and now I’m completely overcome with excitement!

I want to send the code to you so you can make it available at your website… please get in touch with me at…

I immediately e-mailed Victory to express my undying love for him (figuratively speaking, of course) and so that he could send me his work.

Indeed, he has wonderfully translated a non-TKinect demo found online into a demo we can relate to… more-to-the-point, a demo I can improve on and integrate into TKinect’s Gesture Engine!

So… let’s take a look at the unparalleled awesome Victory has brought to the table, shall we?

Real-time Hand and Fingertip Detection Demo

Real-time Hand and Fingertip Detection Demo

His first demo is a real-time Hand and Fingertip detection demo. I would like to point out that his demos do not leverage the Depth Extraction Data provided by TKinect itself. Instead, he has opted to use the pixel colours to perform contour detection.
Whilst I understand that he was doing a full translation of someone else’s demo, I would like to state (for the record) that using pixel colours to determine distance with the Kinect is a very inefficient way to do it. That’s not to impune Victory’s efforts, rather to point out that the performance and accuracy can be drastically improved by modifying his code to leverage the Depth Extraction Data (in millimeters) already provided by the TKinect component. Indeed, I shall be making those changes as I translate his methodology into my TKinect Gesture Engine. This will yield highly-responsive, significantly more accurate detection (and tracking, with prediction) of hands and fingers.

Still-frame Hand and Finger Detection

Still-frame Hand and Finger Detection

His second demo illustrates the entire process of detecting the hand and fingers, step-by-step, operating on a single still Kinect depth frame. It is from this demo that I shall be extracting and translating the fundamental processes involved, as it is far easier to understand his step-by-step breakdown of the process as segregated into individual buttons (numerated)

Hand and Finger detection (and tracking) are absolutely essential for wide-spread, practical integration of the Kinect hardware into real-world software applications.
It makes it possible for the user to traverse and manipulate the User Interface intuitively and accurately, using only hand and finger gestures as opposed to a mouse and keyboard. Imagine being able to close an application or delete a file simply by flipping “the bird” at your screen. Surely as software developers, we’ve all wanted to do that! Now we can!

Victory should be thanked profusely by all of you following (and, more specifically, utilizing) the TKinect for Delphi project. His hard work has saved us all a lot of time, and (more importantly) furthered the practical uses we can start to explore with the Kinect technology today.

At this moment in time, I would not recommend either TKinect or the content of any related demos as a basis for commercial endeavour. We all need to wait for Microsoft’s official Windows 7 drivers and Kinect SDK before this technology can be used in the field. What you should be doing is getting acquainted with the technology, as well as the concepts of 3D motion detection and tracking. Garnering a detailed understanding of these subjects will better prepare you to make professional use of the technology once it is ready for production purposes. As well, you will likely come up with innovative ideas to drastically transform the User Interaction Experience with your software.
The market is wide open for intuitive control systems! You never know, your ideas in this field may set you apart from your competitors, possibly even make you fairly wealthy.

For hobbyists intending to become professional developers, a head-start in this field will place you ahead of your peers. I have landed contracts based on the merits of my work on such things as TKinect! You could too!

Anyway, now the reason you’re here…

Delicious Downloads!

Kinect_Basics5_HandDetection.zip This is Victory’s amazing, real-time hand and fingertip detection demo for TKinect. Included in the zip are the full demo sources, as well as the require CLNUI DLL and a pre-compiled executable (freshly compiled by myself)

Still-frame Hand Detection This is Victory’s equally amazing still-frame hand and fingertip detection demo for TKinect. Again, you will find full demo sources, the required DLL, and a pre-compiled executable (also freshly compiled by myself).

Remember both of these demos require TKinect for Delphi to be installed in order for you to build from source.

Author: Simon J Stuart

Automation and Productivity Systems Specialist, Author of various Components, Libraries and Tools for Embarcadero Delphi, Embarcadero Technology Partner, Founder and CEO of LaKraven Studios Ltd, Father of 2 (+ 2 dogs), Credited Technical Editor, Published Technical Author, Seeker of peace!

2 Comments

  1. It is my pleasure to contribute to your great work in TKinect!!!
    I hope to hear from you as I´m at your service to help improve the TKinect project, make it use the official API, make new demos and stuff!
    Just let me know how can I help you!

Leave a Reply

Required fields are marked *.

*


*