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 - 10.5m: below 6% absolute depth error
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
800P, Wide FOV, 75mm baseline distance OAKs
For wide FOV cameras with 800P (OV9282) stereo pair resolution;OAK-D W, OAK-D Pro W, OAK-D Pro W PoE, OAK-D W PoE.Depth accuracy of a median device (in terms of depth performance) would be:- below 3.5m: below 2% absolute depth error
- 3.5m - 6.5m: below 4% absolute depth error
- 6.5m - 9m: below 6% absolute depth error
800P, 150mm baseline distance OAK-D LR
For OAK-D LR with AR0234 sensors, using the widest baseline (15cm). Depth accuracy of a median device (in terms of depth performance) would be:- below 7.5m: below 1.5% absolute depth error
- 7.5m - 12.5m: below 2.5% absolute depth error
Due to stereo matching limitation of max 1280 pixels in width on RVC2-based cameras,
ispScale
was used to downscale AR0234's 1920x1200 frames to 1280x800 frames, which provides the full FOV, but with lower resolution. Alternatively, you could middle-crop the 1920x1200 frames to get the best long-range depth accuracy (but lose some FOV).800P, 20mm baseline distance OAKs
For OAK cameras with 800P (OV9782) stereo pair resolution and 2cm stereo baseline distance:- OAK-D SR
- OAK-D SR PoE (Also has ToF depth sensor, which typically has better accuracy)
- 30cm - 1.8m: below 2% absolute depth error
- 1.8m - 2.8m: below 4% absolute depth error
- 2.8m - 4m: below 6% absolute depth error
ToF Depth Accuracy
Compared to stereo depth error profile, ToF depth error does not (exponentially) increase with distance, but it's constant.For this evaluation we have configured the ToF node as following:- Median filter: 5x5
- Phase unwrapping level: 3 (max distance: 6m)
- Phase unwrapping error threshold: 300
- Phase shuffle temporal filter: enabled
Accuracy comparison
We have also compared the depth accuracy of different stereo cameras with OAK-D Pro. The comparison is done with the same setup, process, and conditions as mentioned in Measurement setup, and the results can be seen below.For comparison, we took accuracy of OAK-D-Pro with median depth accuracy (in terms of depth performance), and for other stereo cameras we only have 1 of each.Measurement data can be found on Google Sheets, on tabs800P,75mm
(OAK-D Pro), Zed 2i
, D435
, and D455
.Parameters
We used the following parameters:- OAK-D Pro: Using
depthai
library, subpixel mode, LR-mode, and with 800P resolution. No post-processing filters. - RealSense™ D455 and D435: Using
pyrealsense2
, 720P resolution withHigh Accuracy
preset - Stereolabs™ Zed 2i: Using
pyzed
,RESOLUTION.HD2K
resolution withDEPTH_MODE.ULTRA
preset.
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:- Capture the image, find ROI of the noise pattern board (via markers)
- Remove invalid pixels and outliers (top/bottom 5% of values)
- Calculate median of remaining depth values
- Repeat 10 times, average the median values to remove noise