Kinect Setup
Updated: 22 Mar 2024
Updated: 22 Mar 2024
Notch can read both RGB and Depth data from both the Kinect 1, Kinect 2 and Kinect 4 depth sensors. You can use this data in a whole variety of ways, from generating meshes, emitting particles, generating fields, and using the depth and colour images in video processing chains.
For Kinect 1 and Kinect 2 you will need a Kinect 1 or a Kinect 2 sensor with a Kinect for Windows Adapter. Notch uses the official Microsoft SDKs to integrate with the Kinect cameras, so you may also need to download the relevant drivers from Microsoft Kinect 1 Drivers v1.8 and Kinect 1 SDK v1.8, Kinect 2 Drivers.
Connect your Kinect to your PC and open Notch Builder. Go to menu Devices > VideoIn/Camera/Kinect Settings to find the Video In settings. Depending on which Kinect sensor you have, tick “Kinect Enabled” underneath the corresponding device, hit apply, and you should notice your Kinect light up. It is possible to read only the colour or depth channel from the Kinect camera if the other channels are not required in order to improve performance.
Kinect 4 is engineered to only require a power connection and a USB connection (no adapter or separate driver download required), a USB 3.0+ port is required. With Kinect 4, If you are experiencing unstable / glitchy frames, please insert the Kinect 4 into another USB 3.0+ port.
We are currently running 1.4.1 of the Kinect4 SDK, you will need to update your device firmware before using it within Notch.
Using Kinect 4 in exported blocks requires k4a.dll and depthengine_2_0.dll (found in the Notch installation folder) to be copied to the media server.
For Skeleton Tracking and Body Index Segmentation you must install the Azure Kinect Body Tracking SDK. Click on the “msi” link to download version 1.1.1.
Some caveats to use Kinect 4 Body tracking (k4abt):
Please check your machine specification when using body tracking according to these guidelines.
You will need to activate the Kinect camera you want to use by going to Devices > VideoIn/Camera/Kinect Settings and enabling it. Otherwise, it will not be initialized by Notch. This is by design, so Notch does not lock the device from the use by other software when you are not actively using it in Notch.
Add a Depth Camera Source Node to the Nodegraph (Video Processing > Input Output). This is the source node for any Kinect related outputs. This node contains both the RGB and depth image from the Kinect. Connecting it to a Kinect Mesh node will allow you to visualize what the Kinect sensor can see in 3D space. You need one Video Kinect Source for each physical Kinect camera in use.
By default, this node generates an alpha channel which is clipped using the depth image and the near and far planes set on the node. You may also output depth from this node as luminance in the RGB channel.
Video nodes can use Kinect RGB or Depth images as source as inputs. However, the following nodes are specifically made for use with the Kinect:
While Notch supports multiple Kinect 1’s (up to 4), the PC hardware / USB buses have limitations on the number of Kinects that they support simultaneously. Users have successfully used up to 4 Kinect 1’s on a single machine but this is dependent on the PC hardware itself. Only one Kinect 1 camera may be used per USB bus lane; on a typical PC, multiple USB ports share a single lane, so it is usually necessary to add additional USB add-on cards to make up to 4 Kinects work.
Only one Kinect 2 is supported per PC. This is a driver restriction, not a Notch restriction.
Use of Kinect 1 and Kinect 2 is mutually exclusive - only one or other’s drivers may be installed on the PC at any one time and only one or other may be used in Notch at once, so it is not possible to mix Kinect1 and Kinect2 in one project.
Use of Kinect 2 and Kinect 4 has been tested to work simultaneously as the Kinect 4 has no driver restriction as with Kinect 1.
Use of multiple Kinect 4’s is possible, on the same machine, with appropriate pci-express based USB controller cards (to ensure bandwidth isn’t hindered to the motherboard). In testing with an extra US controller card only one pci-e slot worked reliably so be aware that testing hardware setup is crucial to success with using multiple Kinect 4’s on a single machine.
Notch supports the Microsoft Skeletal data from Kinect 1, 2 and 4 (Azure). However, we have not found it to be suitable in production environments. The conditions required for Microsoft’s skeletal data don’t lend themselves to the stage or public spaces. Specifically, it requires a control pose at the beginning and the user to stay in a control space in view. Notch does not also support more than one Skeletal data at a time.
Notch is able to record a stream of Kinect data for playback when there is no camera connected. In order to do this, use the “Capture Kinect1/2/4 Data” option in the Devices menu (Builder Pro only). Recording begins immediately and continues until the option is used again to switch it off. The resulting file may be loaded into Notch as a “Kinect Stream” resource. The Video Kinect Source node has a parameter which takes a pre-recorded stream which will then be used as a substitute for the live Kinect camera feed.
Kinect recordings are currently limited to 15fps on all devices.
For recorded Kinect stream data (colour and depth data) a <filename>.kinect file will be produced which can be used by loading as a resource and then dragging onto the Kinect Source node “Kinect Stream” parameter. This will playback and override the real-time streaming from a sensor.
For recorded Kinect skeleton data a <filename>.kskel file will be produced which can be used by loading as a resource and applying to the “Kinect Stream” parameter on the Kinect <1|2|4> Skeleton node, as per the Kinect stream data, this will override real-time tracking of skeleton joints when playing.
Using Kinect cameras takes care and planning. It was designed as a gaming controller, not for performance work. If you are inexperienced with their use, we strongly recommend you engage with an experienced interaction/integration specialist. Specific considerations:
My Kinect camera doesn’t show up in Notch. What do I do?
My Kinect camera doesn’t show up in exported blocks. What do I do?
The frame rate of the camera appears poor, even though Notch’s frame rate is fine.