Depth Accuracy

Stereo Depth Accuracy

Stereo depth accuracy (Z-Accuracy) depends on number of factors that are documented at Improving stereo accuracy. In a nutshell, the most important factors are:

  • Camera calibration: Accuracy results below were obtained with the default factory calibration.

  • FOV of the camera: Wider FOV results in less accurate depth.

  • Resolution of stereo pair: Higher resolution results in more accurate depth.

  • Baseline distance: Wider baseline distance results in more accurate depth, but also higher MinZ (minimal depth distance the camera can detect).

800P, 75mm baseline distance OAKs

For normal FOV cameras with 800P (OV9282 or OV9782) stereo pair resolution; OAK-D, OAK-D S2, OAK-D Pro, OAK-D Pro PoE, OAK-D S2 PoE, OAK-D-PoE.

Depth accuracy of a median device (in terms of depth performance) would be:

  • below 4m: below 2% absolute depth error

  • 4m - 7m: below 4% absolute depth error

  • 7m - 10m: below 6% absolute depth error

Loading…

Depth accuracy of a 800P, 75mm baseline OAK camera

480P, 75mm baseline distance OAKs

For normal FOV cameras with 480P (OV7251) stereo pair resolution; OAK-D-Lite.

Depth accuracy of a median device (in terms of depth performance) would be:

  • below 3m: below 2% absolute depth error

  • 3m - 6m: below 4% absolute depth error

  • 6m - 8m: below 6% absolute depth error

Loading…

Depth accuracy of a 480P, 75mm baseline OAK camera

Measurement setup

We are using random noise pattern to measure depth accuracy, so the lighting/texture (documentation here) is near-ideal. This means that random dot projector (on Pro versions) won’t make a difference. The noise pattern board is parpendicular to the camera, and the camera is looking at the center of the board. We are using highest stereo resolution possible, always have subpixel enabled with 5 disparity bits (to provide the best accuracy), and aren’t using any On-Device Stereo Postprocessing Filters).

Here is the process for each step of the measurement, which is similar to how other companies measure their depth accuracy:

  1. Capture the image, find ROI of the noise pattern board (via markers)

  2. Remove invalid pixels and outliers (top/bottom 5% of values)

  3. Calculate median of remaining depth values

  4. Repeat 10 times, average the median values to remove noise

Raw data of the depth accuracy evaluation can be found on Google Sheets here.

Accuracy oscillation

From the graphs it’s clear that the depth accuracy oscillates with distances. This is due to the nature of disparity matching, and is a common thing in stereo depth cameras.

You can see data & graphs in Gsheets here in Theoretical tab. Let’s first look at ideal measured distance (for OAK-D-Lite) at different distances:

Loading…

Theoretical depth accuracy

You can see oscillation around the ground truth, easily seen for full-pixel depth. Let’s focus on that: there are discrete “steps”/”stairs” in the graph. One is at 6.6m, then 8.25m, then 11m. These correspond to disparity distance of 5, 4, and 3 pixels. This means that a feature on the left stereo frame is 5/4/3 pixels to the left of the same feature on the right stereo frame.

With Subpixel mode, you can achieve better accuracy, as we can estimate the disparity distance with higher precision, so eg. 3.5, or 4.125 pixels. This will make estimations more accurate, but oscillation is still there.

Let’s also look at the same data, but for depth error in %:

Loading…

Theoretical depth error

And if we look at the absolute error, the ideal 1/2 pixel accuracy (below) will look somewhat similar to the chart above (480P, 75mm baseline distance OAKs). Note that every camera is different, and for the graph below we set focal distance to 440pix.

Loading…

Theoretical absolute depth error