Yesterday we of Immotionar have announced the support of Kinect v1 for our full-body virtual reality system. To implement it, I had to work with this sensor, after more than 2 years of work with only the v2 version. A curious fact is that i had never worked with Kinect v1 before, I started directly with the v2… so I made the path in the reverse way of all other people. But… how are this sensors different?
Well, first of all if you look at them, Kinect v2 seems a more refined version of Kinect v1, but its defect is that it is bigger and has lots of annoying cables and power converters, while Kinect v1 is surely more lightweight and easy to carry and to install.
About technical specifications, this chart found on the great blog Zugara is a good resumée:
As you can see from the chart, Kinect v2 performs awesomely better than its little brother: increase in resolution has been impressive, with the v2 reaching the full-HD res. Even the field of view has been greately increased: the Kinect v2 is awesome on how big is its FOV: if you move in front of it, it always catches you, while Kinect v1 loses you if you move too much on a side.
Both of devices completely work on Windows 10 and they can also work together connected at the same PC. I thought that leaving both on would have caused some kind of interferences, but I noticed almost no issues on using multiple Kinects v2 with a Kinect v1 together. Of course there are more problems if you use multiple Kinect v1, since they interfere a lot with each other. Kinects v1 interfere because they calculate depth using a IR light pattern projection, while Kinects v2 do not because they use another way to compute depth: time-of-flight. This means that Kinect v2 computes the depth of objects it has in front of it throwing some infrared light rays and looking how much time these rays need to bounce on surfaces and come back. This method is more stable, precise and less prone to interferences.
So, you can use more Kinect v2 together, but you can’t connect them to the same PC. Since the depth sensor streams data like crazy to your PC, there’s a problem with USB 3 controller bandwith and you’re forced to have maximum one Kinect v2 connected to a PC. With Kinect v1 you can connect up to 4 to the same PC.
We use a lot the skeletal tracker and this is another point where Kinect v2 truly outperforms its previous version. It tracks more people, with more joints, faster and with greater precision. Kinect v2 tracking has been trained with a shitload of people and its results are pretty amazing indeed. Its precision is really impressive. While switching to v1 from v2 I’ve seen a lot more errors in pose detection and an overall slower response-time of the system: the detection is surely less smooth.
I’ve tried to put a v1 and a v2 side-by-side and to compare the skeletons. As you can see, the detected skeleton is almost the same, but v1 version appears more raw and with non-natural shape of shoulders and basin.
One thing that is truly missing in v1 skeleton is hands thumbs tracking: this means that you have no way to detect how the user hand is rotated and this is a serious issue if you want to control an avatar with this device (and that made me spend some time with math calculations while making the porting of our system…).
Kinect v2 for Windows (Xbox one version + adapter) costs 250$; Kinect v1 is not produced anymore, but you can buy a refurbished version (Xbox 360 version + adapter) for $70 on Amazon.
What these sensors seem to share is a common destiny: Microsoft has discontinued the Kinect project, abandoning it to follow its new cool project: HoloLens glasses. This is so sad, because these have been sensors with which a lot of research and cool projects have been made.
Long life to Kinects, they’re really awesome devices.
UPDATE: as Dyll has pointed out on Twitter, in Windows 10 Kinect v2 has also an additional feature: it can be used with Windows Hello, so you can login into Windows just showing your face in front of your Kinect sensor! Cool, isn’t it?