View my account

Disparity between RGB and depth field of view in the D455

Comments

8 comments

  • Matan

    Sorry for the line spacing being stripped upon submit. 

    0
    Comment actions Permalink
  • MartyX Grover

    Hi Matan  Don't worry about line spacing, as that is how this forum formats text automatically.

    The data sheet document for the 400 Series cameras explains the +- 3 degrees value with the following statement: "Due to mechanical tolerances of +/-5%, Max and Min FOV values can vary from lens to lens and module to module by ~ +/- 3 degrees".

    The RealSense SDK's align processing block is able to align the field of view size to that of the source that it is aligning to.  When aligning depth to color, for example, it aligns depth to the color field of view size.

    If the depth field of view size is larger than the color field of view then when aligning depth to color, some of the outer depth detail may be excluded.  These principles and others are discussed in the documentation of Intel's rs-align alignment example program.

    https://github.com/IntelRealSense/librealsense/tree/master/examples/align

    0
    Comment actions Permalink
  • Matan

    Okay, I will read there, thanks for pointing out where to look!

    It is actually the opposite case with this model, the the color field of view is larger than the depth.

    0
    Comment actions Permalink
  • Matan

    I'm slightly troubled whether people really get good results with this kind of interpolation with OpenGL. Was kind of expecting that the device/SDK will merge the two images using its own optimized technique. I'll stay open to other insights should they emerge here or elsewhere.

    0
    Comment actions Permalink
  • MartyX Grover

    Alignment is a very widely used technique by RealSense projects.  Depth to color alignment can provide the benefit of being able to more easily distinguish between background and foreground pixels, whch can aid distance measurement accuracy.  

    It is also possible to apply graphics acceleration to alignment operations by offloading processing from the computer's processor to its graphics GPU.  This can be done on Nvidia GPUs with the RealSense SDK's support for CUDA, or with the GLSL acceleration system that can work with any brand of GPU ('vendor-neutral').

    The method demonstrated in rs-align is certainly not the only way to perform alignment between depth and color.  For example, another sample program called rs-align-advanced demonstrates how color can be mapped to depth coordinates in order to remove and re-add color background detail at will in sync with the depth detail instead of only the depth detail being affected.

    https://github.com/IntelRealSense/librealsense/tree/master/examples/align-advanced

    Another example is the mapping of color to a three-dimensional depth point cloud.  Such a mapping in the RealSense Viewer's 3D point cloud mode is shown below.

     

    0
    Comment actions Permalink
  • Matan

    Thanks again, and I assume that that the alignment is very equivalently supported in the python SDK just the same.

    0
    Comment actions Permalink
  • MartyX Grover

    The Python wrapper has an example alignment program called align_depth2color.py

    https://github.com/IntelRealSense/librealsense/blob/master/wrappers/python/examples/align-depth2color.py

    There are also RealSense Python tutorials by Intel based around Jupyter Notebook that performs depth to color alignment using RGB and depth data from a pre-recorded bag file.

    https://github.com/IntelRealSense/librealsense/blob/jupyter/notebooks/distance_to_object.ipynb

    https://github.com/IntelRealSense/librealsense/blob/jupyter/notebooks/depth_under_water.ipynb

    1
    Comment actions Permalink

Please sign in to leave a comment.