NEW! Version 3 of iPi Motion Capture is available. iPi Motion Capture 3 delivers new features for improved workflow including support of Kinect 2, improved arms tracking, simplified calibration and others. Read more >>
This documentation corresponds to version 2 of iPi Motion Capture. The latest documentation for version 3 can be found at https://docs.ipisoft.com/
User Guide for Dual Depth Sensor Configuration
(→Recording video from two Depth Sensors) |
|||
| Line 25: | Line 25: | ||
== Recording video from two Depth Sensors == | == Recording video from two Depth Sensors == | ||
| + | |||
| + | === Environment === | ||
| + | |||
| + | It is convenient to put each Kinect Sensor on a chair or a table. The picture below will help you to understand sensor field of view and possible distance from actor: | ||
| + | <center><table border=0><tr> | ||
| + | <td>[[Image:KSensor-scene-side-view.png|center|385px|Click to enlarge]]</td> | ||
| + | <td>[[Image:KSensor-scene-top-view.png|center|394px|Click to enlarge]]</td> | ||
| + | </tr><tr> | ||
| + | <td><center>'''Side view'''</center></td><td><center>'''Top view'''</center></td> | ||
| + | </tr></table></center> | ||
| + | |||
| + | Below you will find information on possible sensor mutual positions. | ||
| + | |||
| + | {{:Actor Clothing Kinect}} | ||
'''Important!''' Each Kinect Sensor must be plugged in through separate USB controllers. If both Kinects are plugged in through one USB controller then the second Kinect will not work. How it looks in the Device Manager: | '''Important!''' Each Kinect Sensor must be plugged in through separate USB controllers. If both Kinects are plugged in through one USB controller then the second Kinect will not work. How it looks in the Device Manager: | ||
Revision as of 17:18, 9 December 2011
Contents |
System Requirements
- Computer (desktop or laptop):
- CPU: x86 compatible (Intel Pentium 4 or higher, AMD Athlon or higher), dual- or quad- core is preferable
- Operating system: Windows 7 (x86 or x64), Windows Vista (x86 or x64), Windows XP SP3 (x86 or x64)
- Video card: Direct3D 10-capable (Shader Model 4.0) gaming-class graphics card
- for more info see Cameras and accessories#Video_Card
- USB: at least two USB 2.0 or USB 3.0 controllers
- for more info see USB controllers
- Storage system: HDD or SSD or RAID with write speed at least 55 Mb/sec
- Two Microsoft Kinect Sensors with separate power adapters
- If you bought "XBox 360 + Kinect" bundle then you need to order power adapter
- Optional: active USB 2.0 extension cables
- Optional: Kinect Adjustable Tripod Stands
- Minimum required space: 3m by 3m (10 by 10 feet)
Note that before you start working with two Kinects it's highly recommended to get appropriate results with single Kinect solution: Quick Start Guide with MS Kinect Sensor.
Software Installation
iPi Recorder
Before installation:
- unplug all cameras from computer
Download and run the setup package of the latest version of iPi Recorder. You will be presented with the following dialog.
- Select needed components
- Read and accept the license agreement by checking appropriate checkbox
- Press the Install button to begin installation
- Note. Most of the components require administrative privileges because they install device drivers or write to Program Files and other system folders. On Windows Vista/7 you will be presented with UAC prompts when appropriate during installation. If you plan to use iPi Recorder under user which has no administrative rights, you can pre-install other components separately using administrator's account.
- Important!
- You can plug only one MS Kinect / ASUS Xtion / PrimeSense Carmine sensor to one USB controller. 1 USB controller bandwidth is not enough to record from 2 sensors.
- You can plug not more than 2 Sony PS Eye cameras to one USB controller, otherwise you will not be able to capture at 60 fps with 640 x 480 resolution.
- For more info see USB controllers.
Upon installation is complete, iPi Recorder will launch automatically. Continue with user's guide to get a knowledge of using the software.
Components
If some of the components is already installed, it has no checkbox and is marked with ALREADY INSTALLED label. You should not install all optional components in advance, without necessity. All of them can be installed separately at later time. Components descriptions below contain corresponding download links.
- Microsoft .NET Framework 4 - Client. This is required component and cannot be unchecked.
This is basic infrastructure for running .NET programs. iPi Recorder is a .NET program.- Web installer: http://www.microsoft.com/en-us/download/details.aspx?id=17113
- Standalone installer: http://www.microsoft.com/en-us/download/details.aspx?id=24872
- Playstation3 Eye Webcam :: WinUSB Drivers Registration. Check if you plan to work with Sony PS Eye cameras.
Device drivers for PS Eye camera.
- ASUS Xtion / PrimeSense Carmine :: OpenNI Redistributable and ASUS Xtion / PrimeSense Carmine :: PrimeSense Sensor. Check if you plan to work with ASUS Xtion, or ASUS Xtion Live, or PrimeSense Carmine depth sensors.
Device drivers and software libraries for ASUS Xtion / ASUS Xtion Live / PrimeSense Carmine.
- (Windows 7, 8) Microsoft Kinect :: MS Kinect SDK 1.8. Check if you plan to work with Microsoft Kinect depth sensors.
Device drivers and software libraries for Microsoft Kinect. Requires Windows 7 and later.
- (Windows XP, Vista) Microsoft Kinect :: PrimeSense psdrv3.sys Driver Registration. Check if you plan to work with Microsoft Kinect depth sensors.
Alternative device drivers for Microsoft Kinect.- 64-bit OS: http://files.ipisoft.com/drivers/KinectPsdrv3_iPi-x64.msi
- 32-bit OS: http://files.ipisoft.com/drivers/KinectPsdrv3_iPi-x86.msi
- Note. iPi Recorder does support working with Kinect sensors on Windows 7 using PrimeSense driver. If you have installed and used it for Kinect with iPi Recorder 1.x, you can continue using it with iPi Recorder 2.
- iPi Recorder 2.x.x.x. This is required component and cannot be unchecked.
iPi Recorder itself.
Important! Each Kinect Sensor must be plugged in through separate USB controllers. If both Kinects are plugged in through one USB controller then the second Kinect will not work. How it looks in the Device Manager:
![]() |
![]() | |
Make sure that you can see correct colored “depth video” from both sensors and
- that you can change motor position for each sensor using appropriate slider and “Motor of” combobox
- that you can switch between RGB and “depth” video using “View RGB/Depth” button
- that actual frame rate is 30 fps (or 29.9) and frames drop is in range from 0 to 5 for each sensor
Note that values of Tilt and Roll are updated with a time lag. During recording these values cannot be updated assuming that in this case sensor should be static.
Recording video from two Depth Sensors
Environment
It is convenient to put each Kinect Sensor on a chair or a table. The picture below will help you to understand sensor field of view and possible distance from actor:
Below you will find information on possible sensor mutual positions.
Actor Clothing
Current version uses only depth information to track motions. So clothes requirements are:
- no restrictions on clothes colors (just avoid shiny fabrics)
- please use slim clothes to reduce noise in resulted animation
Important! Each Kinect Sensor must be plugged in through separate USB controllers. If both Kinects are plugged in through one USB controller then the second Kinect will not work. How it looks in the Device Manager:
![]() |
![]() | |
Make sure that you can see correct colored “depth video” from both sensors and
- that you can change motor position for each sensor using appropriate slider and “Motor of” combobox
- that you can switch between RGB and “depth” video using “View RGB/Depth” button
- that actual frame rate is 30 fps (or 29.9) and frames drop is in range from 0 to 5 for each sensor
Note that you can turn off RGB streaming using appropriate checkbox in the Advanced Options section of Camera Selector dialog. Also you can change the position of cameras output and motor controls in the interface in case they are positioned in the wrong order:
Calibration
There are two possible arrangements of the two sensors:
- angle between sensors is between 60 and 90 degrees;
- angle between sensors in near to 180 degrees that means that sensors are placed opposite to each other.
The first configuration
Preparations
For calibration purposes flat rectangular veneer/plywood/cardboard/pasteboard is used:
- horizontal size should be at least 0.5m (1m - 1.3m is recommended);
- vertical size should be at least 0.7m (1m - 1.5m is recommended);
- hold it vertically in front of yourself on outstretched arms;
- make sure that this calibration board is good visible in both sensors (the amount of yellow is low in the area of the veneer/plywood/cardboard/pasteboard).
![]() |
![]() | |
good depth data | too small too close to human body |
Important! Yellow color in the depth map means "depth here is unknown". Thus it is important to minimize the amount of yellow points using appropriate materials and clothes.
Recording
After you finished preparations and sensors setup you're ready to record the calibration video:
- Start recording by pressing the "Start Video Recording" button.
- Initial two seconds of video should contain only background and static objects. Presence of actor or any moving objects in the initial two seconds of recorded video is unacceptable.
- Go to the capture area with prepared calibration plane (flat rectangular veneer/plywood/cardboard/pasteboard).
- Turn the veneer/plywood/cardboard/pasteboard to the left and to the right thus view angle is changing but the veneer/plywood/cardboard/pasteboard is still visible in both sensors.
- Stop the recording by pressing the "Stop Video Recording" button.
Note that is important to have variety in angles from one hand and good visibility of the calibration plane in each camera from the other hand. It is not so easy to reach good results for 90 degrees angle thus 60-80 degrees angles could be more practical.
Please open the captured video in the iPi Studio and check the following:
- At least two initial seconds of video contains only background and static objects (no actor, no calibration plane)
- The floor (ground) is good visible on the depth maps from both sensors
- The calibration plane is good visible on the depth maps most the time
- The calibration plane is moving and has at least 30 degrees variety in the horizontal view angle
- The amount of yellow points is relatively small
Processing
- Please make sure that the ground plane is determined correctly for both sensors after calibration video opening in the iPi Studio (to switch between sensors use buttons "Camera 1" and "Camera 2" in the top toolbar).
- After that it is convenient to turn off visualization of background points (View -> Hide Background).
- Set the beginning of Region of Interest (ROI) to the point where calibration plane is good visible in both sensors.
- Adjust the end of ROI:
- the length of ROI should be at leat 5 seconds (150 frames)
- ROI should contain good variety of horizontal view angles for the calibration plane
- Go to the Calibration tab, select "Angle between sensors is 30 - 90 degrees" option and click "Calibrate Based on 3D Plane" button
- Please wait for the end of calibration process
- Evaluate the result:
- turn on "Show Depth From All Sensors" option in the "View" menu
- rotate the scene and check how 3D-points from different sensors fit with each other
- Save the result:
- go to the Scene tab
- click "Save scene..." button
- choose file name for your scene parameters
Video tutorial from TrueBones
The second configuration
Preparations
In this case flat rectangular veneer/plywood/cardboard/pasteboard is also used. But this box is held in one near-straight arm side by side with body. Each Kinect sensor sees different sides of board. Thus thickness of the board should not exceed 3 cm.
Recording
It is also important to have variety in angles from one hand and good visibility of the calibration plane in each camera from the other hand:
Processing
It's mostly similar to processing of the first configuration. The only difference is that before pressing "Calibrate Based on 3D Plane" button you should choose "Angle between sensors is 100 - 180 degrees" radio button.
Tracking
Recording and processing of performance video is generally the same as for single Kinect solution: Quick Start Guide with MS Kinect Sensor#Processing Video from Depth Sensor.
The main difference is that after loading captured video into iPi Studio you should load your scene parameters:
- switch to the Scene tab
- click "Load scene..." button
- select file with scene parameters which has been saved during calibration process
That's all. After that you're ready for the processing:
- Position timeline slider to the frame where actor is in T-pose
- Adjust actor height using appropriate slider on tab “Actor”
- Select “Move” tool on toolbar.
- Move actor model to left or right to match roughly actor silhouette on video.
- etc.
Next Steps
Materials
Video
- From Greenlaw:
- From argus1000:
- From TrueBones:
Users' Feedback
Brilliant work guys. We just tested our setup with two Kinects at 90 degrees. As imagined, most of the occlusion issues are solved.
I'm seeing that dKS tracking is just slightly slower than with single Kinect tracking, but the time difference is negligible. With a single Kinect, I was getting about 0.67 sec per frame; with dKS I'm seeing about 0.7 sec per frame. I think that's very good for my graphics card. (My graphics card is a Nvidia GTX 460, which these days is probably considered a mid-range card.) At a glance, the dKS tracking results appears to be more stable than with a single Kinect.
Okay, I have several tracked dKS motions now and I just finished applying iPi Studio's Configurable Jitter Removal to a few clips. I have to say, this mocap looks incredibly solid! The results are far superior to the data I was getting using a single Kinect.
I have successfully calibrated the 180 degree angle with iPiSoft. It is great, it calibrates at 180 degrees producing a full 360 Hologram of myself in iPiSoft. The tracking is rock solid and the results are out of this world. I am utterly astonished. http://www.youtube.com/watch?v=WTyzFGJNGEo











