Gemini 435Le — Per-pixel depth bias correction for sub-mm plane fitting at 800mm

Hi Orbbec team,

I’m evaluating the Gemini 435Le for precision surface extracting plane normals from depth point clouds with sub-arcminute angular accuracy.

Setup: Gemini 435Le, SDK v2 (Python), Ubuntu 24, depth precision 0.1mm, 1280×800 @10fps, temporal + spatial HW filters, working distance 500–900mm.

What I observe:

When I capture a known flat surface (precision ground plate) at 800mm and fit a plane (~50,000 points, robust least-squares), the residual map shows a spatially structured pattern — not random noise, but a smooth repeatable bias. Some pixel regions consistently read 0.3–0.8mm deeper, others shallower.

This creates a “systematic tilt” of 2–8 arcminutes in the fitted plane normal. The tilt is repeatable across frames (same direction, same magnitude). When I move the plate to a different FOV position, the tilt direction changes — confirming the bias is per-pixel, not global.

Frame averaging (10+ frames) reduces noise but the structured bias remains unchanged.

My questions:

  1. Does factory calibration correct per-pixel depth offsets, or only global parameters (scale, baseline, rectification)?

  2. Is there an SDK API to access per-pixel depth confidence or quality values ? Something I could use to weight my plane fit — downweighting unreliable pixels to reduce the bias.

  3. Has anyone built a user-side flat-plate depth correction map? (Capture known flat → compute per-pixel residual → subtract from subsequent captures)

Goal: Plane normal accurate to <2 arcminutes (0.033°). Random noise is solved. The bottleneck is the structured bias that doesn’t average away.

Thanks!