2 Replies Latest reply on Jul 14, 2015 1:57 PM by george.profenza

    Questions for the Intel RealSense SDK Java/Processing wrapper

    george.profenza

      Hello,

       

      I've just started playing with the F200 camera and I have a few initial questions as I began with the Java Wrapper:

      1. Is the Processing Wrapper the same thing as the Java library ? (It appears this way, but I could use a confirmation)
      2. How can I retrieve the Face landmarks using Java ? (snippet bellow)
      3. Can I use the heart rate features in Java ? If so, how ?
      4. Can I use the BlobModule in Java ? If so, how ? (snippet bellow)
      5. Where can I get an updated documentation (including what's currently supported or not in Java) ?

       

      For Issue 2, retrieving facial landmarks, I've tried using both the non-grouped and grouped methods:

      int npoints = detectData.QueryNumPoints();
                  PXCMFaceData.LandmarkPoint[] points=new PXCMFaceData.LandmarkPoint[npoints];
                  detectData.QueryPoints(points);
                  println(points);
      

      This returns an empty list, similar to retrieving grouped points (which returns true):

      int numPtsLE = detectData.QueryNumPointsByGroup(LandmarksGroupType.LANDMARK_GROUP_LEFT_EYE);
                  LandmarkPoint[] ptsLE = new LandmarkPoint[numPtsLE];
                  boolean hasLEPoints = detectData.QueryPointsByGroup(LandmarksGroupType.LANDMARK_GROUP_LEFT_EYE,ptsLE);
                  if(hasLEPoints){
                    for(int le = 0; le < numPtsLE; le++){
                    if(ptsLE[le] != null) ellipse(ptsLE[le].image.x,ptsLE[le].image.y,3,3);
                    }
                  }
                  println(hasLEPoints);
                  println(ptsLE);
      

               

      prints

      true
      [0] null
      [1] null
      [2] null
      [3] null
      [4] null
      [5] null
      [6] null
      [7] null
      [8] null
      

      When setting up, I've enabled landmark using the PXCMFaceConfiguration instance:

      faceConfig.landmarks.isEnabled = true;
      

       

      For issue 3, using hearRate, calling QueryPulse as the documentation suggests

      // cfg is a PXCMFaceConfiguration instance
      cfg.QueryPulse().Enable();
      

      ends up with a NullPointerException

      Exception in thread "Animation Thread" java.lang.NullPointerException
        at intel.rssdk.PXCMFaceConfiguration$PulseConfiguration.Enable(PXCMFaceConfiguration.java:335)
      

       

      I was expecting to write something like

      faceConfig.pulse.isEnabled = true;
      

      but pulse doesn't appear to be a property of PXCMFaceConfiguration

       

      For issue 4, using the Blob Algorithm, I tried following the documentation:

      // Create an instance of the SenseManager
      PXCMSenseManager sm = PXCMSenseManager.CreateInstance();
      
      // Enable the blob module
      sm.EnableBlob();
      
      // Get an instance of PXCMBlobModule 
      PXCMBlobModule blobModule = sm.QueryBlob();
      

      but EnableBlob() isn't present. I'm guessing EnableModule(int,ImplDesc) might work,

      but I'm not sure what arguments to pass. Again, QueryBlob() is missing (perhaps QueryModule(int) should be used) ? If so, how ?

       

      Regarind issue 5, I'm trying to use as the SDK as much I can, but it would be a huge time saver

      knowing what I can an can not use for now (and when to expect currently unsupported features).

       

      I am using the latest Intel RealSense Drivers and SDK AFAIK:

      Intel RealSense Depth Camera Manager F200 1.3.20.55679

      Intel RealSense SDK 2014 5.0.3.187777

      on Windows 8 (version 6.2, build 9200)

       

      Thank you,

      George