Software Archive
Read-only legacy content
17061 Discussions

Face tracking - Frame Rate problem

valerian_g_
Beginner
1,019 Views

Hello to all,

I want to do face tracking with color and depth stream at 60 fps. But after test of homemade code and Intel example, I have a 60 fps color stream (640x480 pixel) but the depth stay around 30 fps (in the clip editor, I have an average of 23.3 fps). I have check the profile  of my stream and I have :

  • For color stream : 640x480, 60 fps.
  • For depth stream : 640x480, 60 fps.

For me the depth stream is correct but is seems the frame rate is lock by the face tracking module.
I want to know if it possible to have 60 fps for the both stream because the hand tracking example can do it and how to do it.

Can you help me ?
Thanks

Regards,
Valerian.

0 Kudos
6 Replies
Xusheng_L_Intel
Employee
1,019 Views

Yes, it is possible to run @60fps. You can add this line code after senseManager init().

senseManager->QueryCaptureManager()->QueryDevice()->SetIVCAMMotionRangeTradeOff(0);

0 Kudos
valerian_g_
Beginner
1,019 Views

It works.

Thanks for your help.

0 Kudos
Jean-Etienne_G_
Beginner
1,019 Views

Hello Valerian,

I'm looking to do face tracking at 60 fps using realSense (F200 is limited to 30Hz) and I wonder which camera are you using to get 60 fps color and the depth.

Thanks in advance,

Jeg

0 Kudos
Xusheng_L_Intel
Employee
1,019 Views

Only a few RGB streams resolution were limited to 30fps. 

Jean-Etienne G. wrote:

Hello Valerian,

I'm looking to do face tracking at 60 fps using realSense (F200 is limited to 30Hz) and I wonder which camera are you using to get 60 fps color and the depth.

Thanks in advance,

Jeg

0 Kudos
valerian_g_
Beginner
1,019 Views

Hello Jean-Etienne,

The 60 fps face tracking is done with this resolution :

- 960x540 or less for the color camera

- 640x480 or less for the depth camera

You need to set the capture manager with this value.

Example (insert before the initialisation of the capture manager):

PXCCapture::Device::StreamProfileSet set;

memset(&set, 0, sizeof(set));

set.color.imageInfo.height = 540;
set.color.imageInfo.width = 960;
set.color.frameRate.min = 60;
set.color.frameRate.max = 60;
set.color.imageInfo.format = PXCImage::PIXEL_FORMAT_YUY2;

set.depth.imageInfo.height = 480;
set.depth.imageInfo.width = 640;
set.depth.frameRate.min = 60;
set.depth.frameRate.max = 60;
set.depth.imageInfo.format = PXCImage::PIXEL_FORMAT_DEPTH;

set.ir.imageInfo.height = 480;
set.ir.imageInfo.width = 640;
set.ir.frameRate.min = 60;
set.ir.frameRate.max = 60;
set.ir.imageInfo.format = PXCImage::PIXEL_FORMAT_Y8;

senseManager->QueryCaptureManager()->FilterByStreamProfiles(&set);

After the initialisation of the capture manager ( g_senseManager->Init() ), you set the motion range of the camera at 0. If you don't change this value the fps will stay at 30 fps :

senseManager->QueryCaptureManager()->QueryDevice()->SetIVCAMMotionRangeTradeOff(0);

With this code I have a steady 55 fps for the face tracking (with color and depth camera).

Hope it's help.

Regards,
Valerian

 

0 Kudos
Jean-Etienne_G_
Beginner
1,019 Views

Yes, it help.

Best regards,

Jeg

0 Kudos
Reply