microsoft / Azure-Kinect-Sensor-SDK

A cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device.
https://Azure.com/Kinect
MIT License
1.49k stars 619 forks source link

Multiple Kinect devices connected to min requirements PC do not work properly #971

Closed tesych closed 4 years ago

tesych commented 4 years ago

Describe the bug When trying to connect multiple Azure Kinect DK devices to the single min requirements PC, see significant frames drops and high impact on the GPU. What PC to use with multiple devices?

Desktop (please complete the following information): Windows 10 7th Gen Intel® CoreTM i3 Processor (Dual Core 2.4 GHz with HD620 GPU or faster) 4GB Memory Dedicated USB3 port

tesych commented 4 years ago

During the Microsoft ignite conference we created a volumetric capture experience booth in partnership with Scatter and their DepthKit.

The set up included:

CPU/ GPU usage With 10 devices at these settings, the CPU utilization was around 43% and the GPU utilization was around 50% with zero dropped frames; with only 5 Devices, utilization is roughly half of that. In this scenario the work being done by Depthkit is an optimized pipeline that handles frame acquisition from the device, frame synchronization, 3D viewport rendering of the depth and color data, as well as local GPU texture memory sharing to other applications, like the Unity based Ignite demo app.

There were some issues where a device may fail to properly open, and cause other devices on the system to "disappear" and not be recognized until a physical unplug/replug cycle happens. There were not much testing done on this, but it is something to be aware of when working with multiple devices. By far the biggest expense in this multi-camera processing pipeline is copying video frames from the device SDK buffer to the rest of the pipeline, especially when using color resolutions above 720p. As for synchronization, we used the SDK to automatically determine the sync cable connection topology, and assign sync delay offsets to each subordinate in the chain.

Hope it helps to answer any of the questions about multicamera synchronization.

UnaNancyOwen commented 4 years ago

@tesych Thank you for share it. I have one question. (Sorry, that question is not related to main problem of this issue.)

For power, the Monoprice 5 Meter USB 2.0 extension and the power adapters that come with the Azure Kinect

Is it active extension type cable (https://www.monoprice.com/product?p_id=6149) or non-active extension type cable (https://www.monoprice.com/product?p_id=5432)?

tim-depthkit commented 4 years ago

Hi @UnaNancyOwen

I can speak to this as a Scatter teammate involved in this production. We used an active USB 2.0 extender for power, this one specifically

UnaNancyOwen commented 4 years ago

@tim-depthkit Thanks! 👍

phg1024 commented 4 years ago

@tesych Wanted to confirm with you, the setup you mentioned is a single PC to drive 5 Kinects, right?

tesych commented 4 years ago

@phg1024 it is correct. One host with 5 Azure Kinect devices.

SaraHackett13 commented 3 years ago

Is this cable the same USB 3.0 data extension used in your testing?

If so, did you power each extension cable as well as powering each Kinect camera?

tim-depthkit commented 3 years ago

@SaraHackett13 Yes that is the one! We did not need to power the data cable, but we did use a separate USB extender to extend the Azure Kinect's factory power cable.

MaxPalmer-UH commented 3 years ago

In this setup was data being recorded? If so, how did the system cope with data being written to disk as the number of sensors increased? Did it become a limiting factor?

Ahmed-KASAPBASI commented 2 years ago

I have the same question but for kinect v2, I want to connect 2 or 3 Kinect v2 to one Computer, is that possible?