3D visionExplainer

High accuracy preset sparse depth: visualization only, not data loss

High accuracy preset gives sparse depth frames: it rejects low-confidence pixels, the kept values stay valid, and color only textures the point cloud.

LumaSpec Vision10 min read Share on LinkedIn

On this page 9 sections
  1. 01What the high accuracy preset actually changes
  2. 02The stereo error behind the gates
  3. 03Worked example: range error at 1, 2 and 3 m on a 55 mm stereo head
  4. 04Why switching on color makes the frame look full
  5. 05Which preset to run for which task
  6. 06When holes are missing signal, not filtering
  7. 07Checks before you trust a sparse frame
  8. 08The decision for a robot obstacle cell
  9. 09Questions

Switch the depth preset to its high accuracy setting and the live frame collapses into scattered points, and the first suspicion is a dropped stream or a driver fault. Nothing is dropping. The preset raises the confidence gates on the stereo matcher, so weak matches are never published, and the pixels that survive carry the same measurements they always did. Switching a color stream on makes the view look fuller, but that is texture painted onto the points, not new depth. This guide gives you the error numbers behind that trade, the checks that prove which case your frame is in, and the preset decision for an obstacle-detection cell.

What the high accuracy preset actually changes

A preset is a saved bundle of matcher settings. A high accuracy preset moves one kind of dial above all: the gates that decide whether a pixel's match is published. Tighten the uniqueness ratio, the texture threshold and the left-right consistency limit, and every ambiguous match is dropped instead of reported. The depth equation never changes; the preset neither rescales, offsets nor smooths the values it passes. What you lose is pixels. What you keep is measurements that passed a harder test, which is why the frame looks broken while the data is healthier than on a loose preset. The camera's confidence image shows the gate results directly, and decoding those bitflags tells you which side of the gate every pixel fell on.

The stereo error behind the gates

Why does tightening gates buy accuracy? Because stereo error grows with the square of range. A stereo head converts a disparity d, in pixels, into range through the triangle relation, and differentiating that relation turns a small matching error into a range error that scales with Z²:

Z = B · f_px / d σ_Z ≈ Z² · σ_d / (B · f_px) f_px = focal length / pixel pitch

B is the baseline between the two sensors, f_px is the focal length expressed in pixels, d is the disparity and σ_d is the matching noise in pixels. Halving the pixels you publish removes the half with the largest σ_d, so the worst case among the survivors improves without touching the camera. Every accuracy-versus-fill-rate preset sits somewhere on this trade: strict gates mean fewer pixels and a tighter bound on the ones that remain.

Worked example: range error at 1, 2 and 3 m on a 55 mm stereo head

Inputs, as illustrative values for a compact stereo depth head: baseline B = 55 mm; focal length f = 2.2 mm with 3.0 µm pixels; matching noise σ_d = 0.2 px, typical of sub-pixel matching on a matte, textured target at adequate exposure; obstacle ranges of 1.0, 2.0 and 3.0 m, the slow-down envelope of a mobile robot cell.

The rule in words: convert the focal length to pixels, multiply by the baseline, then scale the disparity noise by range squared over that product.

  • f_px = 2.2 mm ÷ 0.003 mm = 733 px
  • B · f_px = 0.055 m × 733 px = 40.3 m·px
  • at 1.0 m: σ_Z = (1.0 m)² × 0.2 px ÷ 40.3 m·px = 0.005 m ≈ 5 mm
  • at 2.0 m: σ_Z = (2.0 m)² × 0.2 px ÷ 40.3 m·px = 0.0199 m ≈ 20 mm
  • at 3.0 m: σ_Z = (3.0 m)² × 0.2 px ÷ 40.3 m·px = 0.0447 m ≈ 45 mm

The growth checks against the formula: doubling range multiplies the error by four, tripling it by nine, exactly Z². At 2 m the disparity is only 40.3 ÷ 2.0 ≈ 20 px, so a 0.2 px noise is 1% of the disparity yet 20 mm of range.

Decision with its threshold: if a single pixel must stay within about ±20 mm at 2 m, run the high accuracy preset and treat holes as no-data regions. If a 45 mm bound at 3 m is acceptable but the frame must be filled, the balanced preset gives density, and averaging a 5 × 5 patch cuts random noise by √25 = 5, turning 20 mm per pixel into about 4 mm per patch.

Why switching on color makes the frame look full

Two things happen when a color stream starts, and neither is a depth measurement. The viewer's 3D view gains a texture source: it aligns the color image to the depth frame and shades each valid point with its color pixel, and some viewers also draw the color picture behind the cloud, filling empty screen regions with flat image. The matcher does not run again and the disparities do not change; the depth values you read over the API are identical with color on or off. If your SDK's valid-pixel count matches the viewer's, the sparse frame is the data and the textured render is decoration — the gap between a viewer render and the exported numbers has its own write-up. The one real side effect is bandwidth: both streams share the interface, and on a saturated link the negotiated frame rate or resolution drops, so check the negotiated mode after enabling the second stream. That is a bandwidth question, not an accuracy one. Where color earns its keep is segmentation: with the streams aligned, color detail separates foreground from background, and when color lands on the wrong points the fix is RGB-to-depth calibration, not a preset.

Which preset to run for which task

Put a number on both sides of the trade: the error bound the task needs, and the density the downstream logic needs. The three common styles sit like this:

Preset style Gates Frame look Fits when
High accuracy tightest consistency, uniqueness and texture gates sparse; holes over weak texture and edges a single pixel must stay inside the error budget, as in obstacle slow-down at range
Balanced, medium density moderate gates mostly filled; holes only on hostile surfaces guidance and picking, where patches and repeats beat single pixels
Maximum fill loosest gates, some hole filling full frame; interpolated patches visualization, overlays and first-pass localization

For the conveyor version of that decision, the 2D or 3D system choice guide walks the same trade from the cell side. On surfaces with no texture of their own the matcher has nothing to gate on, which is an illumination problem more than a preset one: a projected structured-light camera supplies its own pattern, so the gates stay open without loosening accuracy, and the MV-DPS200P-02 is that class of camera.

3D sensorsHikrobot MV-DPS200P-02 Projected structured-light 3D cameraMV-DPS200P-02
Type
Stereo / structured light
$8,829.00 · quotedView and quote

In a robot cell that needs a bright, steerable feature across a wide volume, the MV-DLS300P-04 is a laser galvanometer stereo camera that keeps a lockable target in view across the scene.

3D sensorsHikrobot MV-DLS300P-04 Laser galvanometer stereo cameraMV-DLS300P-04
Type
Stereo / structured light
$16,579.00 · quotedView and quote

When holes are missing signal, not filtering

Filtering explains most holes, but some surfaces return nothing for the gates to accept. Glass and other transparent surfaces mix reflections from front and back faces, so the two images disagree irreconcilably — transparent targets are a recognized hard case in depth-estimation research. Matte black absorbs the projected pattern. Direct sun drowns it. Beyond the projector's designed working distance the pattern contrast falls and holes spread from the far edge inward, and motion during capture smears it.

The five-minute test: aim at a matte white board at a known distance inside the rated range. A dense frame there proves the optics, exposure and preset are sound and the holes belong to the surfaces or the range. A sparse frame there points at exposure or configuration — and if the frame only empties at close range, check the depth scale before blaming the matcher, because a scale mismatch cuts a cloud short and imitates heavy rejection.

Confidence flags and the IR reference image separate the two cases: masking invalid pixels with the IR image keeps rejection out of your logic, and upsampling a sparse frame to make it look dense multiplies pixels, not information.

Checks before you trust a sparse frame

Work these five in order; each names the next suspect:

  • Reproduce through the SDK: load the same preset your application loads and compare valid-pixel counts with the viewer. Equal counts mean the sparseness is the data, and the render is the variable.
  • Compute the fill rate: valid pixels ÷ total pixels × 100. A 1,280 × 720 frame holds 921,600 pixels, so 260,000 valid ones is a 28.2% fill.
  • Flat-target test: matte white board at a gauge distance; the median of the valid pixels should sit within your error budget — about ±20 mm at 2 m for the example head above.
  • Confidence cross-check: holes must coincide with low-confidence flags. Holes over high-confidence pixels mean the viewer render, not the matcher.
  • Unit check: confirm the depth scale and units before comparing anything to CAD, because a mismatched depth scale mimics heavy rejection.

Where a stereo cloud still shows missing XYZ points after these pass, the visualization pipeline is the next suspect.

The decision for a robot obstacle cell

Keep the high accuracy preset and spend the effort on the policy around the holes. Treat holes as unknown space, never as clear. Clamp the minimum range so the robot slows before the camera's blind zone. Make stop decisions from consecutive valid frames, not from one pixel. Use the color stream where segmentation helps; it costs bandwidth, not accuracy. If the far edge of the envelope proves too sparse, drop to the balanced preset and set the slow-down distance from the patch-level error — about 4 mm for a 5 × 5 patch at 2 m in the example above — not from the per-pixel bound.

When the deliverable is a dense, calibrated surface instead of an occupancy picture, change instrument class: a laser profiler sweeps a measurement line across the part and returns a complete profile every frame, and the MV-DP4180-03P is that class of sensor.

3D sensorsHikrobot MV-DP4180-03P 3D Laser Profile SensorMV-DP4180-03P
Type
Laser profiler
$12,389.00 · quotedView and quote

If you are equipping that cell, start at the 3D sensors category, narrow the field in the camera finder, and take the shortlist into the configurator's camera step. If the ranges and error budget here do not settle the preset question for your own baseline and focal length, send the numbers through the contact page and we will run the error table for your geometry.

Questions

How do I measure the fill rate of a depth frame in production?

Count the valid pixels and divide by the frame's total pixel count, then multiply by 100. Most SDKs expose a validity or confidence buffer; threshold it and sum the flags. A 1,280 × 720 frame totals 921,600 pixels, so 300,000 valid pixels is a 32.6% fill. Log the value every frame: a slow decline over weeks points to dirt on the window, a sudden drop to exposure or mount shift, and both show up before accuracy complaints do.

Can I fill the holes by interpolation instead of changing the preset?

You can, and it is fine for display, overlays and meshes meant for people. An interpolated pixel has no measurement behind it: its error is bounded only by the neighbourhood averaged over, and across an edge it blends two objects into one wrong surface. Keep the raw frame and its validity mask as the input to every decision, and apply hole filling only to a copy that never reaches a stop or reject condition.

Why do glass, black plastic and water spread holes even on the loosest preset?

The gates cannot publish signal that never arrived. Glass mixes reflections from its front and back faces, so the two images disagree; matte black absorbs the projected pattern; moving water scatters it. Practical fixes: a slight camera tilt so specular reflections leave the line of sight, a matte spray on chronic offenders, or shading the window against sun. If a matte white board still reads dense, the camera is healthy and the surfaces are the cause.

Does a high accuracy preset also change exposure or gain?

A preset is a bundle, and the contents are listed in the vendor's preset documentation: usually matcher thresholds such as uniqueness and left-right consistency, sometimes exposure defaults too. That is why two cameras on the same preset can expose differently under the same light. If several stations must match, set exposure and gain explicitly in your own configuration after the preset loads, so the bundle cannot override them frame to frame.

Is sparse depth from a high accuracy preset acceptable for a robot stop function?

Acceptable as an input, never as the only safeguard. Use it to slow, steer and stop for obstacles inside the camera's rated envelope, and treat holes as unknown space with a conservative default. A certified safety function needs its own rated sensors and logic, with the camera complementing them. Keep the confidence mask, the fill-rate log and the minimum-range clamp in the same code path as the stop decision so they cannot drift apart.