0
$\begingroup$

In my setting I am using a stereo camera which has a baseline of b = 0.092m and a focal lenght in pixels of fx = 256.667.

So that when I want to constrain my setup to detect points up to a maximum depth of 7 meters I would need a minimum disparity of min_disp = b * fx / 7m = 3.373337714 pixels . So that allowing a bit of slack a min. disparity of 3 pixels should restrict the maximum depth of the algorithm's output to 7.something meters.

However when I run stereoSGBM with the following parameters:

minDisparity: 3 #allows for max depth of 7.87m
numDisparity: 80
Blocksize: 11
P1: 100
P2: 500
disp12MaxDiff: 3
preFilterCap: 2
uniquenessRatio: 10
speckleWindowSize: 150
speckleRange: 1

and I convert the disparity values to depth values using:

depth = (params_.baseline * params_.fx) / disp;

I still get bigger depth maxima of 11.8 and beyond.

Where is my error?

My underlying problem is bigger than this if you are interested:

My setup looks like this: I have downward facing stereo camera pair of above mentioned baseline which has this problem only when on the ground (I'm using gazebo garden's simulation environment) as soon as the drone goes up as little as 30cm into the air the problems are resolved and I get a max depth of 0.5 or so. (The terrain is very even)

The map is not of highest quality which might be a reason. However then I don't think an ascend of such little distance should make such a difference.

$\endgroup$

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.