Switching limited FOV depending on where object is
I am successfully using the highspeed capture mode described in the white paper. While the 300 FPS mode is great the restriction on a field of view of 848x100 is limiting the success of the application as I am attempting to capture the position of a baseball at 80+ MPH and it spends very little time in the 100 pixels of the FOV. While I understand the FOV is limited to 848x100 for bandwidth and number of depth calculations purposes I'm wondering if there is a way to change what part of the original image I am viewing at 848x100. For example, if the original image is 848x480 it would be nice to be able to change which segment of the height (100 pixels) I am receiving depth calculations for (ie pixels 480-380 or 380-280 or 280-180 or any variation of 100 pixels...). That way I could switch which 100 pixels FOV the depth image I'm receiving is for depending on where the ball is in space. For example, it could start with the top 100 pixels of the image and then switch the FOV to a middle part of the image and finish with the bottom part of the image for a baseball traveling from top to bottom of the camera's view. Is this possible? Any help or guidance would be appreciated.
-
Hi @Jbmayor4 I would speculate that a workaround, though a somewhat expensive one, may be to arrange three cameras in a vertical stack so their FOVs overlap and combine their individual FOVs together into a single wide view. This is a technique that can be used to capture the vertical height of the human body (if observing one person), or capture multiple persons (if arranging the cameras horizontally).
Intel demonstrated this "volumetric capture" method in January 2018 at the Sundance Festival, arranging four D435 cameras horizontally to create an 180 degree wide FOV.
https://www.intelrealsense.com/intel-realsense-volumetric-capture/
-
MartyG thanks for the quick and helpful response. The method you suggested seems like a great possibility and may very well indeed end up being the best choice but before we take the more expensive route I'm curious if there are any software workarounds that exist in the SDK to pull specific pixel data rather than just the 100 most middle pixels by default as the camera currently does in 300 FPS 848x100 mode.
-
As the 300 FPS mode is largely based on firmware settings rather than SDK code, I can't think of a single-camera solution to improve the situation. There may be a way to get 848x480 from all cameras though.
Intel recently introduced a system called External Synchronization (genlock). One of the ways it can be used is to amplify the FPS. You arrange multiple cameras to observe the same scene, and they activate in a time-staggered firing sequence. So by firing 3 cameras at 90 FPS and 840x480, you can achieve 270 FPS at 840x480. 10 cameras at 90 FPS gives 900 FPS. And ten cameras at 300 FPS and 848x100 gives 3000 FPS at 848x100.
The details are in point 5 of the section of the genlock white paper that I have linked to below:
Please sign in to leave a comment.
Comments
3 comments