Items with no label
3335 Discussions

Using *my own* calibration parameters for SR300 in mapping depth/color with *Windows* SDK

SNoh4
Beginner
1,691 Views

Hello RealSense community,

I need a very-accurate depth-color mapping between cameras, but the factory setting of my camera is not enough, unfortunately .

To look around the SDK, I found the following method in "RealSense/Projection.h" in the official SDK (2016-R3).

static __inline Projection* CreateInstance(rs_intrinsics *colorIntrinsics, rs_intrinsics *depthIntrinsics, rs_extrinsics *extrinsics) {

return (Projection*)RS_Projection_CreateInstanceFromIntrinsicsExtrinsics(colorIntrinsics, depthIntrinsics, extrinsics);

}

However, I am not sure it is supported or not, and I cannot activate this block because it is wrapped with # ifndef _WIN32 block which is not activated in Windows environment.

So My question is like this;

Is there anyway to instantiate PXCProjection (Intel::RealSense::Projection) module without using PXCDevice::Device::CreateProjection(void) ?

Especially, I would like to instantiate it with my own calibration parameters. To me, it is quite natural to support this kind of activity in the SDK, but I cannot find it...

I also found that librealsense (https://github.com/IntelRealSense/librealsense GitHub - IntelRealSense/librealsense: Cross-platform API for Intel® RealSense™ devices ) supports similar functionality,

but my code is largely based on official SDK, so it is hard to transit my code base to librealsense.

Please do not tell me to replicate the functionality in librealsense . It is too obvious and I can do it, but I just would like to find more elegant solution.

Thank you in advance.

0 Kudos
7 Replies
MartyG
Honored Contributor III
367 Views

A couple of years ago, RealSense expert Samontab created a utility for customizing the laser parameters and has improved it over a series of versions. It was originally designed for the F200 camera, the SR300's direct predecessor, so I'm not certain if it will function properly with the SR300. An SR300 user did report earlier this year that they were able to use the utility though.

Here's the forum entry that documents the changes across the versions as time goes by.

https://software.intel.com/en-us/forums/realsense/topic/537872 Utility for changing laser camera parameters (IVCAM v0.5)

The download link, which launches the zip file download automatically in the browser, is:

http://www.samontab.com/web/files/ivcam.zip http://www.samontab.com/web/files/ivcam.zip

0 Kudos
SNoh4
Beginner
367 Views

MartyG,

Actually I also found that IVCAM program (yes, it means I can run it in SR300), but I think it aims to calibrate "laser" parameters, not "camera" parameters.

You can certificate that it only provides UI knob in the side of laser projector and there is no adjustment tool in the side IR Camera focal length / principal point, etc.

Even if it may supports *depth* camera parameter calibration, I still cannot find the COLOR-DEPTH extrinsic calibration from that program.

I also mention that I found the official camera calibrator app ( https://downloadcenter.intel.com/download/24958/Intel-RealSense-Camera-Calibrator-for-Windows- Download Intel® RealSense™ Camera Calibrator for Windows* ),

but both x86 and x64 program only generate "DSAPI.dll" error, like this thread ( ).

Unfortunately, there is no further information to fix this error...

0 Kudos
MartyG
Honored Contributor III
367 Views

The camera calibrator app is for the R200 model of camera. The SR300 does not have a calibrator program, unfortunately.

The new RealSense SDK 2.0 was launched yesterday. It can run on Windows 10 and is SR300-compatible. Its introductory information says that it can provide intrinsic and extrinsic calibration information. I know you were understandably reluctant to use Librealsense because of the effort you had put into your Windows app. Using the new 2.0 SDK in Windows 10 may be an easier transition though.

https://github.com/IntelRealSense/librealsense/tree/development GitHub - IntelRealSense/librealsense at development

0 Kudos
SNoh4
Beginner
367 Views

MartyG,

So, is there no way to achieve what I mentioned in the first question ?

By the way, the SDK 2.0 what you mentioned is librealsense, right?

Before transition, I would like to know one ;

Can I expect that all of the further releases will be updated on librealsense and there is no more release of Windows SDK ?

Thank you in advance.

0 Kudos
MartyG
Honored Contributor III
367 Views

I apologize for not providing a further suggestion for solving your problem in the current Windows SDK. This topic is somewhat outside of my knowledge base. I did find a post by a person who had a problem with Projection and CreateColorMappedtoDepth though.

https://stackoverflow.com/questions/32424660/realsense-projectioncreatecolorimagemappedtodepth-returns-null-if-one-of-the-p c++ - RealSense Projection::CreateColorImageMappedToDepth returns Null if one of the parameters internals were accessed …

I have posted a documentation list for SDK 2.0, which I have established this morning is indeed a 'development' branch of Librealsense.

The Windows SDKs as we known them have been discontinued. The SDK 2.0 will now be the means of providing Windows support to RealSense.

0 Kudos
SNoh4
Beginner
367 Views

MartyG,

The problem what I have is quite similar to this thread:

If I had enough time, I just transit my code to librealsense, but in this moment it is not an option (may be later).

So what I wanted to do was quick-and-elegant to fix this problem just utilizing the Windows SDK functionalities.

Anyway, it is likely that there is no such a solution, so I just determine to fix in quick-and-dirty way ...

Thank you in anyway

0 Kudos
MartyG
Honored Contributor III
367 Views

You are welcome.

If the R200 camera calibrator tool cannot be used, the only other means of calibration I know of is a C# calibration script that was provided by an Intel support staff member. I do not know if it works with SR300 though, as it was published on a discussion about the R200 camera model.

0 Kudos
Reply