4 Replies Latest reply on Mar 22, 2018 1:35 AM by MartyG

    The SR300 can't see skeleton

    Ai.N

      I'm working on the SR300 and SDK R2, I do person tracking and skeleton tracking at the same time. The problem I encounter is that my person tracking works pretty well but the skeleton is barely detectable.

       

      This is my config:

      This is my code to detect skeleton:

      What is wrong?

      I need your help. thank you!

        • 1. Re: The SR300 can't see skeleton
          Ai.N

          When I was facing the camera, numPerson = 1, but numJoints = 0.

          • 2. Re: The SR300 can't see skeleton
            MartyG

            This problem with detecting the skeleton in the old RealSense Windows SDKs has been around for a very long time.  Getting it working is possible but not easy.  Development on the '2016 R2' and '2016 R3' SDKs has ended, so there will not be an update for this problem, unfortunately.

             

            Basically, if you are getting a zero value then it can indicate that skeleton tracking has not been enabled in your application.  There is a long discussion on the subject in the link below that may be helpful to you.

             

            queryNumJoints() only returns 0

             

            An alternative option for you may be to move on to using SDK 2.0, which is compatible with the SR300.  A RealSense executive said in an online seminar yesterday that skeletal tracking middleware is now available for the 400 Series cameras and recommends checking out 3divi and its Nuitrack software.

             

            Intel RealSense D415/D435 and Nuitrack skeletal tracking SDK replace Kinect SDK - YouTube

            • 3. Re: The SR300 can't see skeleton
              Ai.N

              Thank for your reply,

               

              I read this conversation yesterday. The solution is to set the tracking mode to TRACKING_MODE_INTERACTIVE. And the next problem is that the realsense R2 library does not support this function, I also found the solution is to edit libpxccpp2c.dll but I can not afford to do that.

              I'm developing an application that has both 3D scanning and bone detection. I have researched through the D415 and realsense 2.0 library but this camera almost does not support 3D scanning. I chose the SR300 but it looks like I'm going into the dead end.

              Do you have any suggestions for me on editing DLL files overhead? Or if you have the edited file, please share it with me.

              • 4. Re: The SR300 can't see skeleton
                MartyG

                The Person Tracking feature (of which Skeleton Tracking is a sub-feature) in the 2016 R2 SDK was classed as a Preview feature.  This is a pre-alpha (very early development) feature with limited functionality.  Unfortunately the number of people who I can recall who got Skeleton Tracking working in that SDK is less than the fingers on one hand.  And I do not have the facilities to edit and recompile libpxccpp2c.dll, unfortunately.

                 

                Your best option is likely going to be to migrate to the SR300-compatible SDK 2.0.  I acknowledge that 3D model scanning is currently more difficult with that SDK than previous SDKS, as you have to save the data as a Point Cloud and then convert that point cloud into a mesh.  The mesh conversion is usually done with external software, which would be a complicating factor for you if you wanted to create the model within your application.

                 

                There is though a method for converting a point cloud into a mesh with scripting via a technique called Poisson Surface Reconstruction.  Here's an example:

                 

                GitHub - daeyun/poisson-surface-reconstruction: CMake build of http://www.cs.jhu.edu/~misha/Code/PoissonRecon/ with MATL…

                 

                And a paper on the subject.

                 

                http://hhoppe.com/poissonrecon.pdf