Jump to: navigation, search

Multikinect:Qualisys

To increase the quality of the fusion algorithm in the Skeleton suite[1], a simultaneous recording via the Qualisys[2] allows us to test different fusion methods and compare ths result to the hig-quality one.

Setup

A 6 points kinect setup is used. The points are placed at the top of an hexagon.

Multikinect-qualisys-panoramic-001-web.jpg

Multikinect-qualisys-panoramic-002-web.jpg

Saliency map by Julien Leroy, press [SPACE] for RGB view.

Calibration

The calibration tool is developped by Radhwan BM.

  • screenshot_2016-03-30_14-49-37
  • screenshot_2016-03-30_14-49-58
  • screenshot_2016-03-30_14-51-23
  • screenshot_2016-03-30_14-52-27
  • screenshot_2016-04-04_16-38-58
  • screenshot_2016-04-04_16-39-09
  • screenshot_2016-04-04_16-39-24
  • screenshot_2016-04-04_16-44-50
  • screenshot_2016-04-04_16-49-07
  • screenshot_2016-04-04_16-52-02
  • screenshot_2016-04-04_16-52-17
  • screenshot_2016-04-04_16-52-22


Recording test

After 2 days of fine-tuning, meaning debugging the apps, adding the required functionalities and resolving the computers limitations, we are able to make a first complete test with 6 calibrated kinects.

 

Recording analysis

A skeleton seen by 2 kinects has been recorded.

Each message is time-stamped at emission (streamer[3] level) and also time-stamped at reception (recorder[4] level).

The recording is 16764 milliseconds long and has the same duration as the longest streamer emission received. 488 frames has been received from one streamer[3], 487 from the other.

Remarks:

  • Kinect SDK 2.0 is not time-consistent : the delta between 2 frames can go up to 67 milliseconds. This case happened 14 and 15 times.
  • Average difference between emission thread and reception thread is 2 microseconds in one streamer, 0 in the other. This means the reception is following the emission.
  • Strandard deviations:
    • streamer[3] id 5 : 7.09 microseconds at emission, 7.11 at reception
    • streamer[3] id 6 : 8.21 microseconds at emission, 8.21 at reception


Data: File:Out 20160404130118.ods

Conclusions: The main time lags are caused by the Kinect SDK that drops frames. We have no guarantees at reception that a frame emitted after 67 milliseconds contains has a time t0 or a time t-33. We'll have to live with it even if can cause inconsistencies in the merger[5].

Network architecture

High-level-RT-K2Streamer-K2Merger.png

References

  1. Skeletons suite: a suite of software for multi-kinect calibration and realtime tracking. Skeletons repository on bitbucket
  2. Qualisys: a marker-based motion tracking system. qualisys.com
  3. 3.0 3.1 3.2 3.3 A streamer is a point made of one kinect and one nano-computer type Intel Nuc that retrieves, prepares and sends perceived skeletons throught OSC. It runs the application K2Streamer in this case (folder: kinect_v2_MSDK/app_streamer/ in Skeletons) from the Skeletons suite
  4. OscRecorder (folder: osc_recorder/ in Skeletons) is a custom application built to save messages coming from a lot of ports into a single log file. Source Skeletons suite
  5. A merger centralises all the OSC messages emitted by the streamers. It merges them into new skeletons and emit the results of this fusion in OSC. K2Merger is used in this case (folder: kinect_v2_MSDK/app_merger/ in Skeletons) - source:Skeletons suite