View my account

Dynamic Calibration tool intrinsics

Comments

9 comments

  • MartyG

    Hi Karthikeyan Yuvraj  You can access the intrinsic and extrinsic information of a RealSense camera using the RealSense SDK's rs-enumerate-devices tool.  Launching the tool with the instruction rs-enumerate-devices -c provides calibration information.

     

    Using this mode with the D415 camera model returns the following results for the distortion model for each stream type:

    Depth: Brown-Conrady

    Infrared: Brown-Conrady

    Color: Inverse Brown-Conrady

     

     

    Further information about the distortion models can be found in the RealSense SDK's Projection documentation in the link below.

    https://dev.intelrealsense.com/docs/projection-in-intel-realsense-sdk-20#section-distortion-models

    1
    Comment actions Permalink
  • Karthikeyan Yuvraj

    MartyG: can you please read my question one more time and give a relevant answer?. this is not about rs-enumerate-devices -c

    0
    Comment actions Permalink
  • MartyG

    The reply is relevant.  You asked if the distortion parameters for all of the sensors are Brown-Conrady.  I responded that depth and infrared are Brown-Conrady and color is another model called Inverse Brown-Conrady.

    0
    Comment actions Permalink
  • Karthikeyan Yuvraj

    Perhaps I was not clear, my bad. The dynamic calibration tool mentions in its documentation that it uses brown's distortion model for all the sensors. does that mean the dynamic calibration tool expects the RGB calibration to be brown's distortion and not the inverse?.

    This is the dynamic calibration tool I am using: https://www.intel.com/content/www/us/en/download/645988/29618/intel-realsense-d400-series-dynamic-calibration-tool.html

     

     

    0
    Comment actions Permalink
  • MartyG

    The short answer would be to assume that the Dynamic Calibration Tool is working correctly when performing RGB calibration since it has been in use for years with few problems, and you do not need to think about the distortion model.

    A longer answer is that for the most part, the RGB distortion model has been detected correctly on 400 Series camera models since the tool was introduced some years ago.  There was an issue where there was a problem with the color distortion model on the D455 camera where the Modified Brown-Conrady model appeared to be used for color instead of Inverse Brown-Conrady but it got corrected with a fix this year.  This issue is described in the links below.

    https://github.com/IntelRealSense/librealsense/issues/7335

    https://github.com/IntelRealSense/librealsense/pull/8759

     

    In summary: you can use the Dynamic Calibration tool with confidence that it will automatically make the necessary calculations correctly.

    0
    Comment actions Permalink
  • Karthikeyan Yuvraj

    thanks for the reply.

    In my approach, I am not using the dynamic calibration tool for calibration. I am only using its read and write capability. The calibration is done by our custom-developed tool and it outputs distortion model as a Brown-Conrady model for rgb, ir1 and ir2. 

    so if I have a custom-developed calibration tool and just using the read/write of dynamic calibration tool, the input to dynamic calibration tool read/write for rgb intrinsics, expects the distortion model to be of inverse brown Conrady model ?.

    0
    Comment actions Permalink
  • MartyG

    Are you developing your tool using the Dynamic Calibration API's Programmer's Guide version of the user guide, please?

    https://dev.intelrealsense.com/docs/d400-dynamic-calibration-quick-start-guide

    Page 21 onwards of this PDF guide describes creating your own calibration tool but using the Dynamic Calibration API's read / write functions.

    This section of the guide also suggests referring to Intel's Custom Calibration White Paper for an implementation example.

    https://www.intel.com/content/www/us/en/support/articles/000026725/emerging-technologies/intel-realsense-technology.html

    The paper repeats the phrase you quoted earlier that distortion is "specified as Brown's distortion model ... for left, right and RGB cameras".

    I do not have any information that I can add to what is contained in these documents, unfortunately.  Basically though, if you write a custom calibration to the camera and then the values that you are receiving when depth is aligned to color are in line with your expectations of what the correct values are then the calibration is likely okay.

    0
    Comment actions Permalink
  • Karthikeyan Yuvraj
    Thanks for the reply MartyG.
     
    Regarding your question:
    Are you developing your tool using the Dynamic Calibration API's Programmer's Guide version of the user guide, please?
    No I am not using the dynamic calibration API. I am using my own algorithm. 
     
    Also from the white paper, it seems like the Brown Conrady should be uploaded to the camera (after estimating the coefficients using opencv). When we read the RGB distortion coefficients from the sensor using pyrealsense API, the coefficients are identical to those uploaded, but I was wondering why the coefficients are labeled as Inverse Brown Conrady? for example:
    rgb intrinsics:
    [ 1920x1080  p[960 540]  f[1920 1080]  Inverse Brown Conrady [0.16131450235843658, -0.49247947335243225, 0.0, 0.0, 0.41959837079048157] ]
    0
    Comment actions Permalink
  • MartyG

    The Projection documentation provides the only explanation I know of about the difference between Brown-Conrady and Inverse Brown Conrady.  The documentation states that, as the name suggests, Inverse Brown Conrady is an inverse of the model, meaning that it maps from distorted points to undistorted points.  The Brown-Conrady model, meanwhile, does the opposite and maps from undistorted points to distorted points.

     

    On the 400 Series stereo depth cameras though, the RealSense SDK usually deliberately forces all coefficients to be zero, for reasons described in the link below.

    https://github.com/IntelRealSense/librealsense/issues/1430

    An exception to this all-zero coefficients rule is the color stream on the D455 camera model, where the color coefficients are non-zero.

    0
    Comment actions Permalink

Please sign in to leave a comment.