- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello all,
I'm programming in C# , and capturing the depth, colour and pointcloud information from a realsense D435 camera. I'm projecting the depth data into 3D space using a standard function which requires the intrinsic camera parameters of the camera.
I was getting the intrinsics of the depth camera and noticed that the distortion coefficients were zero (as others have mentioned). Given the wide angle of the camera I thought this was unlikely but perhaps the factory calibration didn't include distortion...
To improve this I went about looking at https://www.intel.com/content/dam/support/us/en/documents/emerging-technologies/intel-realsense-technology/RealSense_D400%20_Custom_Calib_Paper.pdf custom calibrations so I could get a better lens model. When I was working through the instructions I used the command line tool which can read and write the parameters.
I wrote the intrinsic parameters using the command:
Intel.Realsense.CustomRW.exe -r > params.txt
I got the paramers:
I was suprised to see that the left and right infrared cameras have distortion coefficients! It then occured to me that perhaps I should be using the intrinsice from the infrared stream rather than the depth stream. I did that and got:
This is definitely the IR camera as there is no depth stream at full resolution (1280 x 800 matches the resolution given by the calibration software).
Thing to note:
- Still no distortion coefficients!
- focal length and principal points don't match!
A few questions:
- Is this a software bug?
- Are the parameters different because the image has been manipulated in the hardware?
- Given all this, what parameters should I use to project the point cloud?
- Does a different implementation of the SDK return distortion coefficients?
If anyone knows the answer to this, or has solved a similar problem I'd be really grateful. I'm not sure what to trust!
- Tags:
- Memory
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Wiredchop,
Thanks for posting in the RealSense community.
The SDK software reports the image coefficients which are 0, because the streams are rectified: https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0# d400-series. The calibration sw shows the calibration coeffs for the unrectified images.
Regarding your question why focal length and principal points do not match:
The calibration software is reporting the intrinsics for the 1280 x 800 resolution for the Y16 (unrectified) format. If you use the rs_sensor_control.exe example, you will see that you cannot retrieve the intrinsics for this resolution and format. The rs_sensor_control.exe example gives you intrinsics for rectified image, which will be slightly different.
You can use the utilities described in this webpage ( https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0) to do your projection and deprojection without having to use the unrectified parameters.
Best Regards,
Juan N.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Wiredchop,
Thanks for posting in the RealSense community.
The SDK software reports the image coefficients which are 0, because the streams are rectified: https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0# d400-series. The calibration sw shows the calibration coeffs for the unrectified images.
Regarding your question why focal length and principal points do not match:
The calibration software is reporting the intrinsics for the 1280 x 800 resolution for the Y16 (unrectified) format. If you use the rs_sensor_control.exe example, you will see that you cannot retrieve the intrinsics for this resolution and format. The rs_sensor_control.exe example gives you intrinsics for rectified image, which will be slightly different.
You can use the utilities described in this webpage ( https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0) to do your projection and deprojection without having to use the unrectified parameters.
Best Regards,
Juan N.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page