none
Tracking error using Kinect Fusion to get a Cloud Mesh RRS feed

  • Question

  • I need to get a Cloud Mesh Model from an object and displaye it. I am trying to use Kinect Fusion as it is done on the basic example provided by the SDK: http://msdn.microsoft.com/en-us/library/dn188700.aspx but I always get a tracking error when I start moving the object.

    Debugging I saw that the method Reconstruction.ProcessFrame returns false everytime I move the object and I wonder how to fix it. I am just using the original code from the example... neither it works properly on the example so I am stuck, may anyone help me?.

                    // Convert the depth image frame to depth float image frame
                    this.volume.DepthToDepthFloatFrame(
                        this.depthImagePixels,
                        this.depthFloatBuffer,
                        FusionDepthProcessor.DefaultMinimumDepth,
                        FusionDepthProcessor.DefaultMaximumDepth,
                        false);

                    // ProcessFrame will first calculate the camera pose and then integrate
                    // if tracking is successful
                    bool trackingSucceeded = this.volume.ProcessFrame(
                        this.depthFloatBuffer,
                        FusionDepthProcessor.DefaultAlignIterationCount,
                        FusionDepthProcessor.DefaultIntegrationWeight,
                        this.volume.GetCurrentWorldToCameraTransform());

                    // If camera tracking failed, no data integration or raycast for reference
                    // point cloud will have taken place, and the internal camera pose
                    // will be unchanged.
                    if (!trackingSucceeded)
                    {
                        // Show tracking error on status bar
                        this.statusBarText.Content =
                            "Kinect Fusion camera tracking failed. Align the camera to the last tracked position.";
                    }

    Thank you.




    • Edited by Mastersierra Thursday, December 18, 2014 3:09 PM
    Thursday, December 18, 2014 3:04 PM

All replies

  • How are you moving the object? Fusion only works on static spaces. If you are trying to scan a rotating object you need to ensure that you try to trick it into thinking it is moving, not the object. The only alternative is for you to slowly move around the object.

    Keep in mind, this is going to be very GPU intensive. If you are not running 30fps or the changes in movement are too large, you will continuously loose tracking. You will also find in the Fusion Explorer sample, you can turn off "Use Camera Pose Finder" that might help.


    Carmine Sirignano - MSFT


    Monday, January 5, 2015 11:39 PM