Kinect for testing algorithms - kinect

Can I use kinect sensor for testing my algorithms related to depth measurement? Have someone already tried this?
I have researched a bit, and have thus few questions -
is there a linux driver to work with kinect?
Which kinect is advisable? Kinect v1 or v2?
is there a way that I can get the data on my computer using a USB cable? As far as I have seen, the kinect needs to be modified ( i.e add a 12 V power supply ). Does anyone know the specifications of this power supply? How many ampere should the power supply support?
lastly why is there is such a massive price difference between the usb adaptor for Kinect V1 ( for xBox 360 - 4 pounds ) and Kinect V2 ( for Xbox one - 50 pounds), although both of them simply divert power and data cable as far as I understand.

I'm not sure whether the Kinect sensor is appropriate for testing your algorithms given that I don't know the specifics, but to answer your other questions:
Yes, there are drivers such as OpenKinect's libfreenect for Kinectv1 or libfreenect2 for Kinectv2 for Linux.
Note that I only have experience with the official Kinect SDK. If you care about skeletal tracking quality, you should probably use the official Kinect SDK on Windows. If you don't care about the skeleton tracking, that gives you a lot more options.
Kinect v2 - it has better specs. Certain requirements might call for using Kinect v1, but generally, Kinect v2 is the default choice.
No, you need the adapter/power supply to connect it to a PC. The official power supply is 2.67A at 12V. There are many tutorials online for DIY, such as this YouTube video: How to Hack Xbox One Kinect to Work on Windows 10 PC
Supply and demand. The adapters are no longer being manufactured and there is more demand for the Kinect v2 adapters.

Related

Opening Kinect datasets and/or SDK Samples

I am very new to Kinect programming and am tasked to understand several methods for 3D point cloud stitching using Kinect and OpenCV. While waiting for the Kinect sensor to be shipped over, I am trying to run the SDK samples on some data sets.
I am really clueless as to where to start now, so I downloaded some datasets here, and do not understand how I am supposed to view/parse these datasets. I tried running the Kinect SDK Samples (DepthBasic-D2D) in Visual Studio but the only thing that appears is a white screen with a screenshot button.
There seems to be very little documentation with regards to how all these things work, so I would appreciate if anyone can point me to the right resources on how to obtain and parse depth maps, or how to get the SDK Samples work.
The Point Cloud Library (or PCL) it is a good starting point to handle point cloud data obtained using Kinect and OpenNI driver.
OpenNI is, among other things, an open-source software that provides an API to communicate with vision and audio sensor devices (such as the Kinect). Using OpenNI you can access to the raw data acquired with your Kinect and use it as a input for your PCL software that can process the data. In other words, OpenNI is an alternative to the official KinectSDK, compatible with many more devices, and with great support and tutorials!
There are plenty of tutorials out there like this, this and these.
Also, this question is highly related.

How to Connect Kinect 2 for Xbox One with PC

I have an Xbox One with Kinect 2. I want to know if I can connect it to my PC, and if so, how to do it ?
Microsoft Finally came up with a sane solution to Xbox Kinect One problem
Check this out
http://www.microsoftstore.com/store/msca/en_CA/pdp/Kinect-Adapter-for-Windows/productID.308878000
You can un-officially connect the XBone Kinect to a PC.
Although you'll invalidate your warranty on the Kinect you should still be able to use it with the XBone afterwards.
Not sure if its a great idea for your project though - you'll still need a Windows 8 PC with the right USB 3.0 controller for it to work and you are at risk of non-windows Kinect SKUs being blocked/nerfed in future.
But basically:
Disconnect the USB lead from the Kinect
Take the Kinect apart
Solder a 12v power supply to the USB 3.0 powered-B side pins where the connector joins the PCB (these are extra pins in addition to the standard USB 3.0 spec for "special" device power input/output)
Connect the Kinect to the PC with a standard USB 3.0 B cable
A picture of where to solder the 0v/12v wires is here.
I connected them to a barrel connector to fit a spare laptop PSU.
This works for me with Windows 8.1 and the MS KinectSDK public preview 1407.
To connect Kinect 2 (Xbox One) to your PC, you need a 12 V power supply and this cable:
(source: diskdoctors.com)
Using information from this picture:
Kinect 2 cables:
Change standard Kinect cable with a new cable USB 3.0 A, other cables (grey and brown is 12 V power).
Sorry, but there is no official way to connect the XBOX One Kinect with a PC. A hack might be available one day, but I would not recommend going that way.
Buy a "Kinect for Windows V2 Sensor" - that includes the license and SDK to develop your own applications with the Kinect V2.
I connected the 12 V DC , as it must be in some photos;I used a Renesas USB 3.0 PCI-EXPRESS card and a 3m cable;and Kinect XBOX ONE was not detected by windows;I cut and re -made the long USB3 cable to 1m cable; and again nothing detected by PC.
It looks that a POWER ENABLE signal STRAP(CONNECTION) must be made somehow(in the kinect 2)
The "distinct" hackers forgot to explain that signal (how to).
I didn't have the time to analyze the good images of the original USB3 HUB with the industrial USB3 B male connectors uploaded on web(by the way some photos disappeared meanwhile) This industrial USB3 cable of Microsoft has USB3 standard-5 pins, USB2 standard-4 pins + another additional 4 pins (of course one is ground and one is 12 V, and at least one not documented.
Fortunately I have about 4 projects to work till connecting the sensor and Microsoft did
something interesting. It manufactured and sells the adapter for the sensor separately.
A bit expensive, at 50$ but however we speak about one power adapter, a USB3.0 HUB and a USB 3.0 cable. ( the price had to be better at 30$) , even so it is not killing price.
http://www.microsoft.com/en-us/kinectforwindows/purchase/default.aspx#tab=2
and it looks already available for purchase.
Make sure hardware matches standards if you are using a PCIe USB 3 adapter - your motherboard will probably have to support PCIe 2.0 (PCI Express).

Kinect For XBOX360 and hand tracking

I have a question about Kinect Xbox360: it can track the hand movement and fingers? I am searching on the web and I dont found any interesting about this. Another camera that I am thinking to use is the Asus Movement Sensor, but I dont know if this is better than Kinect (more options, I know that both uses OpenNI) or if both are the same.
Thanks for your time!
I would see these links:
Finger tracking in Kinect
http://www.kinecthacks.com/kinect-hand-tracking-gesture-experiment/
http://makematics.com/code/FingerTracker/
http://social.msdn.microsoft.com/Forums/en-US/c128197f-6925-49c6-bedc-d7692d03c0a9/fingers-tracking-using-kinect
http://channel9.msdn.com/coding4fun/kinect/Finger-Tracking-with-Kinect-SDK-and-the-Kinect-for-XBox-360-Device
These should get you started and give you many options. You can use the SDK or OpenNI, however my personal preference is the SDK, OpenNI or OpenKinect may be better in this case, expecially because of the FingerTracker API (3). Although the sdk has source code for finger tracking with an xbox kinect (5).

Libfreenect VS OpenNI

So I know this question has been done before but most of the other time it was still when both OpenNI and Libfreenect where being diveloped. My question are:
1)I want to know it what state the are now.
2)The differences between this two (pros, cons and anything else)
3)Specifically for skeleton tracking, which is better and give more data about the skeleton (for example in Microsoft SDK they give data for 20 joints, is it the same in this two, more, less?)
Libfreenect is mainly a driver which exposes the Kinect device's features:
- depth stream
- IR stream
- color(RGB) stream
- motor control
- LED control
- accelerometer
It does not provide any advanced processing features like scene segmentation, skeleton tracking, etc.
On the other hand, OpenNI allows generic access to Kinect's feature (mainly the image streams), but also provides rich processing features such as:
- scene segmentation
- skeleton tracking
- hand detection and tracking
- gesture recognition
- user interface elements
etc.
but no low level controls to device features like motor/LED/accelerometer.
As opposed to libfreenect which AFAIK works only with the Kinect sensor, OpenNI
works with Kinect but with other sensors as well like Asus Xtion Pro, Carmine, etc.
You've mentioned the Kinect SDK. It's good to bare in mind the are multiple Kinect sensors:
- Kinect for Xbox
- Kinect for Windows
The Kinect for Windows sensor for example allows a close mode and has a longer range.
I don't know how the skeleton tracking differs.
Also, there is a MS Kinect-OpenNI bridge bridge project and OpenNI2 works plays nice with Kinect

Can the Kinect SDK be run with saved Depth/RGB videos, instead of a live Kinect?

This question relates to the Kaggle/CHALEARN Gesture Recognition challenge.
You are given a large training set of matching RGB and Depth videos that were recorded from a Kinect. I would like to use the Kinect SDK's skeletal tracking on these videos, but after a bunch of searching, I haven't found a conclusive answer to whether or not this can be done.
Is it possible to use the Kinect SDK with previously recorded Kinect video, and if so, how? thanks for the help.
It is not a feature within the SDK itself, however you can use something like the Kinect Toolbox OSS project (http://kinecttoolbox.codeplex.com/) which provides Skeleton record and replace functionality (so you don't need to stand in front of your Kinect each time). You do however still need a Kinect plugged in to your machine to use the runtime.