Hi, I've got a Oak-D Pro AF, installed directly above a product (3cm thick) with a sheet-metal top, placed on a cart with a brown mat. Below are the disparity (left), RGB (right).

  • Ground truth depth, camera to brown mat: 67.5 cm; Oak-D (average): 69.5 cm
  • Ground truth depth, camera to metal top: 64.5 cm; Oak-D (average) 67.1 cm

Questions:

  1. The difference between the depth provided by camera is quite big, is this normal?
  2. Are there any other methods to increase the accuracy?
  3. Suggestions for reflection/glare issue that will cause depth calculation to go abnormal?

Camera settings:

  • depth aligned with RGB at 12MP
  • mono cam: 400P
  • stereo settings: LeftRightCheck: True, ExtendedDisparity: True,
  • erik replied to this.

    Hi glitchyordis ,
    Depth looks ok everywhere, except where you have reflection:

    Any kind of stereo system will have a big problem estimating depth with such reflection, so I would first suggest minimizing that.

    1. No, it should be more accurate (where depth is valid), I'd suggest reading Improving depth accuracy tutorial. Instead of LR check I'd suggest Disparity Shift. And perhaps enable subpixel (not that important at close range though).
    2. Tutorial above🙂
    3. This is a big challenge. There's no easy fix for this, perhaps you could try Stereo Neural Inference approach and run eg. corner keypoint detection on left/right imgs, and triangulate the results to get 3D coordinates on all 4 corners, and by assuming object is flat you could get the whole metal top plane from this.

    Thoughts?
    Thanks, Erik

      Hi erik, I've covered the top to remove the reflected region. However, even with this, using a disparity shift of >=30 did not increase the accuracy. To double-check, stereo.initialConfig.setDisparityShift(42) is the only line required to shift the disparity right?

      • erik replied to this.

        Hi glitchyordis ,
        Yep, that's the only needed line. Since depth inaccuracy is 2cm, this could also be a GT measurement issue as well, or a small rotation of the camera. Could you provide full recording (with lef/right), so we can cross-check ourselves?
        Usually, for such plane measurement (table, metal plate), you'd also want to add pointcloud plane fitting and pointcloud rotation to eliminate the potential rotations of the camera (wrt the plane).
        Thanks, Erik

          erik locked the discussion .