Software Archive
Read-only legacy content
17061 Discussions

SR300 precision

Vivien_D_
Beginner
371 Views

I made a 3D pattern using 3 planes. The first one is horizontal and support the 2 other ones that are vertical with an angle of 120°. When I save a point cloud of this scene and fit some planes to these points, I obtain 122.8° between both vertical planes, 90.6° and 86.7° between each vertical plane and the horizontal one. I bought 3 SR300 (last version August 2016) at the same time and obtains similar results with the two other cameras (122.9/89.2/87.2 and 124.1/89.5/90.2)

I am sure that the problem does not come from the physical scene.

Computing the measurement error of the points with respect to the fitted planes shows a low error with most points at +/- 1mm.

To give a better idea of the scene the pattern is 35-50 cm away from cameras and planes are 15x20cm, i.e., 3° = 1cm error at 15 cm.

I also have an F200 and two SR300 from the previous series that gives better results 123/90.6/90.3 for the F200 and 120.5/89.8/89.6 // 121.3/90.7/89.2 for both SR300.

I did not find any information about the precision that I can expect from these camera. In fact I was expecting better results with the newest SR300, but it's clearly not the case. Does I have no luck and got 3 cameras with a bad calibration ?

0 Kudos
5 Replies
samontab
Valued Contributor II
371 Views

I wouldn't expect excellent precision with a cheap mass produced camera.

It is a great device for its price though. You could improve the precision by calibrating each camera manually, as it seems that they have a generic calibration for all the cameras.

0 Kudos
Vivien_D_
Beginner
371 Views

samontab wrote:

I wouldn't expect excellent precision with a cheap mass produced camera.

Me neither, but the fact that a plane stay a plane but with an orientation issue is kind of strange to me. I would expect a deformed or noisy plane but not an incoherent geometry between well fit planes. If I compute it well, my 15 cm plane with 2 degree error implies 5.2 mm error which is far above noise around the fitted plane (approx 0.3 mm).

samontab wrote:

It is a great device for its price though. You could improve the precision by calibrating each camera manually, as it seems that they have a generic calibration for all the cameras.

Why do you think that it is a generic calibration for all the cameras ? We used he SDK to dump camera's parameters and they seems to be different for each of our camera even if three of them have been ordered at the same time.

0 Kudos
samontab
Valued Contributor II
371 Views

Last time I checked was a long time ago (when they just released them), so maybe something has changed. But then I started searching for the internal parameters, and in particular the optical centre was located at exactly the middle of the image. That's why I assumed they were using a generic calibration, but this may have changed, or maybe I was just looking at the wrong function as the SDK was still being developed.

In terms of the plane changing, I vaguely remember someone posting something similar here. I think they had an issue with temperature. The more time the camera was running, the more pronounced the error was. Have you measured the effect of temperature?

 

0 Kudos
mitsuru_n_
Beginner
371 Views

Hi

I am also strongly interested in this topic for my research.

 

I have used not SDK, but librealsense.

In librealsense, there is a function get_stream_intrinsics(rs::stream) to get intrinsic parameters.

I got intrinsic parameters of two RS300 sensors that I bought at the same time as follows.

------

[Sensor A] 

Color

fx: 6.1962475585937500e+02

fy: 6.1962481689453125e+02

cx: 3.1217816162109375e+02

cy: 2.4312277221679688e+02 

IR 

fx: 4.7477270507812500e+02

fy: 4.7477258300781250e+02

cx: 3.1191931152343750e+02

cy:2.4584956359863281e+02

------

[Sensor B]

Color

fx: 6.1750561523437500e+02

fy: 6.1750567626953125e+02 

cx: 3.1487939453125000e+02

cy: 2.3480590820312500e+02 

 

IR

fx: 4.7628070068359375e+02

fy:4.7628057861328125e+02 

cx:3.0887435913085938e+02 

cy: 2.4592071533203125e+02

0 Kudos
Vivien_D_
Beginner
371 Views

samontab wrote:

Last time I checked was a long time ago (when they just released them), so maybe something has changed. But then I started searching for the internal parameters, and in particular the optical centre was located at exactly the middle of the image. That's why I assumed they were using a generic calibration, but this may have changed, or maybe I was just looking at the wrong function as the SDK was still being developed.

mitsuru n. wrote:

I have used not SDK, but librealsense.

In librealsense, there is a function get_stream_intrinsics(rs::stream) to get intrinsic parameters.

I got intrinsic parameters of two RS300 sensors that I bought at the same time as follows.

Same as you, we checked parameters with both SDK and librealsense (that we use in our application) and got different results for the 3 camera that we bought at the same time.

samontab wrote:

In terms of the plane changing, I vaguely remember someone posting something similar here. I think they had an issue with temperature. The more time the camera was running, the more pronounced the error was. Have you measured the effect of temperature?

I saw this post and it was more about a deforming plane over time. I our case this problem seems to be solved since planes do not exhibit any high error area with respect to the fitted planes and this fact does not change over time. The problem is really related to the overall geometry of the scene. Intel's support told us that it's probably an issue with the camera's calibration and that we should return them. We will try to improve the calibration ourselves as we already start working on it and then we will return our cameras. I will post what we found here.

0 Kudos
Reply