Posted: November 6, 2011 in Music
Here’s a weird coincidence: earlier roday I recalled a magician act from the 1980s. Some guy dressed in futuristic gear basically waving a false leg behind a sheet to the Peter Gunn tune. This passed as entertainment for an eight year old in the 80s. I thoght I would look him up online later but forgot.
Instead I started looking through an audio library and found a jazz violin piece in a 1930s dance hall style. It reminded me of the Jeeves and Wooster music. I remembered that the theme was written by Ann Dudley of Art of Noise fame, so I looked her up on Wikipedia. Then I saw that Art of Noise did a cover of Peter Gunn.
Searched to find that their cover of Peter Gunn was performed to by a magician called Rudy Coby. Ooooh…spooky.
The Jeeves and Wooster theme is pure awesome:
As is Anne Dudley and Art of Noise:
However, Rudy Coby was best left to memory:
Posted: October 3, 2011 in Dissertation, Kinect
…and shooting some Bieber outside of the school. The cops caught me, and this explains my recent absence from the world of blogging.
Actually, I took a little break because my inspiration had just about dried up. Working 70-hour weeks for three years does that to ya.
But I’m back, and I’ll keep posting about cool stuff that I make and do. Here’s one such thing:
This shows a comparison between two normalised sequences. The straighter and more diagonal the line, the closer the match. Dotted lines show periodic samples of time warping (note irregular spacing shows that warping has occurred in one direction or another). The difficulty here is making this understandable to a broad audience.
Here’s another sequence comparison, visualised differently. This time the graphs are overlaid (albeit offset) and time warping events are shown by the orange dots. If you can imagine a perfect match between two sequences, there would be no time warping and thus the orange lines would all be vertical. Add the overall ‘lengths’ of the orange lines and you get the 100% match ‘cost’. Now consider the above graph. The sum lengths of the orange lines indicate the ‘cost’ of the transformation. When comparing multiple queries against a single reference, the shortest ‘distance’ is the best match. Hey presto! Gesture recognition!
Posted: September 4, 2011 in Dissertation, Kinect
Tags: dtw, graph, plot
I have made good progress in writing up some of the more mathematical aspects of my project. I’m having difficulty knowing at which level to pitch the work. I have to assume a reasonable mathematical understanding otherwise I’ll just burn up my word count describing simple principles. However, if I pitch it too highly then I could miss marks for not being explanatory enough. I’ll talk about this with my supervisor. After all, she’ll be marking the work, so it’s best to ask what she would like to see.
Needless to say, there will be lots of graphs. I’m trying to work out a good way of displaying multi-variate dataset comparisons on one graph. DTW works equally well with flat arrays or 2D arrays of data. This project uses 2D arrays because, firstly, we’re dealing with co-ordinates (i.e. data pairs, so I’m forces to use multi-variate data) but also because I’m tracking six joints, so I have 12 pieces of data per time frame.
I think I’ll show an aggregated view like this, but properly labelled. I’ll then extract a few individual columns and use a three-way plot of some description to show slopes, lines of least cost etc for several sequences (i.e. similar, dissimilar etc.).
It’s too late for this. The graph looks wrong somehow but I can’t see why. I’ll work it out tomorrow.
It’s three days since I somehow managed to get my KinectDTW project onto the SlashDot front page, and I’m still trying to get my head around the response. 220 release downloads and 60 grabbed the source from the repo. Ok, so far from Earth-shattering figures, but I think it shows healthy enthusiasm for what I’m trying to achieve here. That is to say I wanted to give people a tool to get them started with making their own Kinect-based gesture control systems.
I’ve had lots of feedback to, almost universally positive. And any detractors just don’t like Microsoft or the Kinect, nothing bad about the KinectDTW project itself. So the next challenge must be to become established in the community, rather than just a novelty factor. I’ve no idea how to do this, but I’ll work something out. A few well-placed links will be a good start, but then I will need to follow this up with improving the system, perhaps making it open-standards, and definitely by responding to feedback.
So if you’re yet to see it, check out KinectDTW.codeplex.com. It’s far from perfect, but that’s kind of the point: I’d love the community to pick this up and roll with it.
Posted: July 30, 2011 in Dissertation, Kinect
Tags: c#, codeplex, coding4fun, dtw, dynamic time warping, gesture, gesture recognition, kinect, microsoft, open source, recogniser, recognizer, xbox, xbox 360
This evening I finally published the gesture recording and recognition project I’ve been working on. With the help of the Kinect community, especially a member who goes by the name of Rhemyst, we have produced a library which introduces developers to vector-based gesture recognition.
May of the approaches I’ve seen elsewhere use specific positional tracking to recognising gestures – i.e. tracking a hand and matching its movement profile against a series of coordinates or something. This is great, of course, and can actually offer very good recognition. But the Dynamic Time Warping approach is more flexible in that it can be very easily programmed by a novice. It’s great for rapid prototying and, with the help of the community, I hope this can grow into a production-capable recognition engine. It’s not quite there yet, though…
So what are you waiting for? Grab a copy of the first release of KinectDTW from Codeplex now!
Please share your recorded gestures and recognition parameters with the community so that we can all learn and benefit from your experience!
Posted: July 25, 2011 in Dissertation, Kinect
Tags: animated, easing, gesture, inertia, kinect, mediator, recognition, scroller, sdk, swipe, wpf, xaml
Another little piece of the jigsaw: controlling a WPF ScrollViewer (with added animated easing wizardry) using swipe gestures. Freakin’ yah!