none
Is it possible to turn off the infrared emitter without closing the sensor RRS feed

  • Question

  • Hi,

    The Kinect v1 SDK had a function ForceInfraredEmitterOff(), which could be called to turn off the infrared emitter without having to close the Kinect. This was very useful for applications using multiple Kinects as it provided an easy way of preventing interference.

    I am using 3 kinects with overlapping field of views to create a large field of view for a project and I would like to be able to control the infrared emitter like I did with the v1.

    I looked in the SDK documentation and on the web, but found no method that could do what I want. So, did I miss something ?

    Thanks.

    Tuesday, March 3, 2015 5:28 PM

Answers

  • Closing all instances of the KinectSensor would be the only way of preventing the emitters from turning on. Remember, Kinect v2 is a shared instance amongst many application; the device is shared. The runtime(KinectService) controls whether the sensor is on/off because it is the only one aware of all applications acquiring data. Basically if you are an application that needs Kinect Data, the only way it knows no application needs the data is for it to close its instance.


    Carmine Sirignano - MSFT

    Tuesday, March 3, 2015 6:45 PM

All replies

  • Closing all instances of the KinectSensor would be the only way of preventing the emitters from turning on. Remember, Kinect v2 is a shared instance amongst many application; the device is shared. The runtime(KinectService) controls whether the sensor is on/off because it is the only one aware of all applications acquiring data. Basically if you are an application that needs Kinect Data, the only way it knows no application needs the data is for it to close its instance.


    Carmine Sirignano - MSFT

    Tuesday, March 3, 2015 6:45 PM
  • I suspected as much. Thanks for the quick answer.

    This is actually unacceptable; I already had a lot of difficulties accepting the fact that the Kinect v2 SDK supports only one Kinect, now you are telling me that the SDK cannot allow me to turn OFF the IR emitter, although this was a feature supported by the Kinect v1 ....

    How do you suggest I go about preventing my Kinect v2s from interfering each others ? After doing some benchmark tests, I estimate that it can take up to 2 seconds between calling KinectSensor.Open() and actually receiving a non-null Depth frame.

    Tuesday, March 3, 2015 7:40 PM
  • We have exactly the same problem.  We are attempting to place 6 kinect 2 systems in the same room. Even having two on at a time causes interference that makes the system unusable.  We need a solution that takes milliseconds, not seconds.  We will be investigating placing shutters in front of the infrared LEDs to block the light when we don't need the depth feed from a specific camera.  Infrared shutters are expensive (5X the cost of the Kinect) and mechanical shutters would be difficult to integrate.  

    Is there a way to disable the diodes in hardware?  For example, insert an electronic switch somewhere in the circuit?

    Friday, March 13, 2015 12:13 AM
  • I am planning something similar to you two guys, William and Daniel. And I am now a bit concerned regarding the content of your posts. I just learned in another thread that there are no input parameters to Kinect v2, so there is no way to calibrate two cameras. The solution suggested was to drop invalid frames and simply wait for good frames. Daniel however states, that two cameras already interfere so much, that the system is unusable :( I guess, we are lacking a good solution here!

    William was stating that the SDK only supports one Kinect v2 at the same time. Does that mean it is impossible to use two Kinect v2 with the same computer?

    Friday, March 13, 2015 8:18 AM
  • That is exactly what it means: to have a system using two Kinects you will need two computers with two Windows 8 licenses (one each), one communication path between these computers (TCP/IP seems like an obvious choice) and some way to make sure they don't interfere each other...

    As far as Carmine answer goes, it is not satisfactory: OK, I understand that my Kinect is shared by all the applications running on my computer .... MY computer, meaning that I know which applications need the sensor and which ones don't (unless some unknown background program is spying on me.... wouldn't want to shut off the IR to prevent that program from working now...)

    So, why not give programmers a way to shut off the IR and if someone runs many programs on the same computer and does not want to shut off the IR then they just don't call that function ... this way everyone is happy.

    SO, in the end here is the solution my company decided to implement: we used to put 3 kinects on each of our system to have a very wide field of view. This year we plan on selling about 75 of these systems, that would have meant buying 225 Kinects. Now, since we can't turn off the IR (a functionality that would take any programmer about 10 minutes to implement by the way), we will buy only 75 Kinects (one per system) and mount them on a linear axis. It is acutally going to cost less money to buy one linear axis and move the camera instead of buying 3 cameras with 3 computers with 3 windows licenses and developping some sort of anti-interference solution.

    Thursday, March 19, 2015 11:46 AM
  • Unfortunately a similar debate started in early pre-release about control over the color camera exposure.
    With a similar answer, multiple apps using the sensor at once.

    Several suggestions for solutions were made, and by talking to the dev guys it seemed they had ideas and were willing to move forward.
    Unfortunately nothing changed in the following months during pre-release, so I can only assume a marketing decision blocked innovation.

    Actually we haven't seen any updates since the 2.0 release at all, and it's been almost half a year.
    So it seems we're stuck with what we have while the dev team has probably moved onto HoloLens.

    A shame really because I know of people that are now looking at other sensors due to the lack color camera exposure control.
    In the same way that you found a solution involving buying less Kinects.


    Sorry for my off-topic rant.

    Brekel

    Thursday, March 19, 2015 12:24 PM
    Moderator