
Microsoft Announces "Kinect Accelerator" to Turn Hacks into Businesses  - wglb
http://www.technologyreview.com/blog/helloworld/27369/?ref=rss
======
joelthelion
So can anyone use the Kinect for commercial applications now, or is this just
about Microsoft helping 10 startups? If it's the latter, it's barely
newsworthy, and it shows how hard it is for Microsoft to imagine losing even a
bit of control on their products and what you do with them.

~~~
pavlov
The licensing situation with the various SDKs used for the Kinect is
complicated. This effectively prevents many kind of commercial applications at
the moment. (I've done a commercial UI prototype using the Kinect, so I've
researched this a bit.)

There are two high-level SDKs that you can use to build Kinect applications
relatively easily. The first is OpenNI+NITE by PrimeSense, the company that
designed the sensor used in the Kinect. The other is Microsoft's own Kinect
SDK which is based on C#.

Both of these have very restrictive licenses. If you're not a hobbyist or an
academic, there's no clear path to acquiring a license that would allow you to
deploy applications. I imagine PrimeSense is happy to license their toolkit,
but I have no idea about the price -- I'd imagine it's not cheap. The
Microsoft SDK is going to be available for commercial licensing next year, but
the terms are not known yet (AFAIK).

There is a third option for building Kinect applications, and this is the one
I chose for my software. Instead of using the high-level SDKs, you can access
the raw depth camera data from the sensor using a free driver. The data is
quite clean because the Kinect does a lot of processing internally, so all you
need to do is build the high-level interface -- i.e. interpreting the depth
data to detect people and gestures, or whatever it is that your app needs to
do. This way, the resulting app is not tied to the PrimeSense or Microsoft
SDKs.

~~~
rbanffy
Why use a Kinect instead of building your product on the PrimeSense device?

~~~
pavlov
PrimeSense doesn't make devices, they just build the sensor and SDK.

Asus has licensed the sensor for a Kinect-like product for PCs, but it's still
not available off-the-shelf. It also won't work with the existing free Kinect
drivers, so porting will be needed to switch to the Asus.

~~~
rbanffy
If you are the one building a product, then it makes sense using the
PrimeSense thingie instead of a fully assembled Kinect.

Asus should embrace the free drivers, BTW, and make whatever they build
compatible with them.

But that would, probably, have a very negative impact on their Windows OEM
pricing...

~~~
pavlov
Sure, if the budget is big enough, it makes sense to go to PrimeSense directly
rather than messing around with Kinects.

Unfortunately the project I made was nothing like that. The client was a major
Finnish multinational tech company (one that doesn't make phones), but their
R&D is so backwards and completely oriented towards incremental improvements
that this project had to be sneaked in through the marketing budget, using
whatever crumbs of money they had left.

~~~
rbanffy
I understand your pain. I have my own long history of projects that flew from
start to finish below corporate radar.

------
mikeknoop
"Eventually it [Microsoft] came around, releasing a software development kit,
with the caveat that the SDK was only for non-commercial use".

So now you can use the SDK to build commercial products, but only if chosen
and willing to give up 6%? Why the "walled garden"?

~~~
marshallp
Someone should train a neural network to be able to do what the kinect does
without the kinect (create 3d depth map from 2d images). Obviously microsoft
won't do it since then their hardware won't be needed, but with all the
millions of kinects out there collecting enough data for this shouldn;t be
that difficult.

~~~
shriphani
Pose estimation from just the 3D depth data took 24 hours on 1000-node
cluster. I can't even begin to imagine the massive dataset + computing
resources needed to pull this off.

Also, (I might be completely off here since I am not competent enough with the
ML) but to take a webcam image and then append the Z coord to a pixel would
require someone to sit and label their dataset before it is useful to train
the classifier (in which btw, the Z-coord can take anything between 80 - 300
cm - so > 200 classes). This definitely does not look so trivial to me.

~~~
marshallp
The pose estimation you're referring to is not the same a raw depth map. Also,
when creating that they had limited data (they used actors and some graphics
techniques). For the just the raw depth there is now practically unlimited
data available (millions of kinect boxes everywhere). No hand labelling of
data needs to be done, it's what the kinect outputs 30 times or more per
second.

~~~
shriphani
Oh no. my 2nd paragraph was about the raw depth data. From what I see, the
web-cam view doesn't seem to contribute to the depth data (firing up the
streams and viewing them shows different perspectives and there isn't any way
to query how far a pixel in the web-cam view is from the camera).

I remember reading somewhere that the depth sensor projects something (infra-
red?) on a surface and then the transformation of the image is used to build
the 3D model. So it might still need some specialized hardware (not
necessarily MS hardware since Asus seems to have a similar device out in the
market).

EDIT : NVM I just looked up the video of Andrew Ng's class where they
discussed this. So it is possible.

~~~
marshallp
There's a google tech talk video on it by the student on youtube
<http://www.youtube.com/watch?v=bWbEsDbfayc>

------
smortaz
If you like Python, our group just released PyKinect which enables you write
Kinect games/apps using Python as the name suggests (note: CPython, not
IronPython). You can check it out at <http://pytools.codeplex.com> and click
on the PyKinect link. (disclaimer - msft guy)

~~~
rbanffy
Does it run on something other than Windows?

~~~
smortaz
It's a wrapper around the Kinect SDK, so not in its current form. But being
OSS & Python, anyone can take it & massage it into something similar for
Linux/Mac Kinect libraries.

------
wingerlang
The Kinect can impossibly be so accurate that it can play violin and such
things .. right? It looks ridiculous. The doctor-things looked as good use
though.

~~~
pyre
Even if the Kinect could be accurate enough to allow someone to play an 'air
violin,' there's the lack of tactile feedback that one would have to adjust
to. Even moreso than the transition from buttons to a touchscreen, as there
isn't even a device at all.

------
skrebbel
Completely off topic question: the background song of the video sounds
horribly familiar, but I can't put my finger on it. Anyone care to give me
pointers?

~~~
Pfiffer
Some kind of remix/cover of Where is my Mind by the Pixies.

~~~
brain5ide
And that always reminds me of the final scene of "Fight Club" with crumbling
financial buildings.

------
NHQ
OH: "But something amazing is happening. _The world is starting to imagine
things we hadn't even thought of_."

(Emphasis mine.)

