3D visionTroubleshooting

Pyramid-shaped noise near a ToF camera: range ambiguity artifacts

A pyramid of noise in front of a ToF camera is range ambiguity: surfaces past c/(2f) fold back toward the lens. Here is the wrap distance math and the fix.

LumaSpec Vision10 min read Share on LinkedIn

On this page 8 sections
  1. 01What the pyramid actually is: phase wrap, not reflections
  2. 02Worked example: a 20 MHz preset in a 15 m room
  3. 03Confirm the cause before you change the config
  4. 04The fix: two frequencies, and what it costs
  5. 05Other floating points that are not range ambiguity
  6. 06When the scene always exceeds the wrap distance
  7. 07Checklist before you ship the fix
  8. 08Questions

You point a ToF depth camera into a cluttered room and the point cloud grows a pyramid of phantom points between the lens and the scene. Aim the same camera at a bare wall or a ceiling and the pyramid disappears. That pattern is not a reflection problem. It is range ambiguity, the standard artifact of a ToF imager running a single modulation frequency: every surface past the camera's unambiguous range folds back and reports centimetres instead of metres. This guide gives the formula that predicts the artifact, a worked example with the arithmetic, the checks that pin the cause, the imager setting that removes the pyramid, and what that setting costs in frame rate.

What the pyramid actually is: phase wrap, not reflections

A continuous-wave ToF camera measures distance from the phase of amplitude-modulated infrared light: the illuminator switches at a modulation frequency, and every pixel reads the phase shift of the returning light — the principle behind any time-of-flight camera. Phase repeats every full cycle, so past one wrap distance the same phase shift fits several true ranges and the sensor cannot tell them apart. In pulse terms: the return from one burst arrives after the next burst has left, and the sensor credits it to the newer burst.

R_wrap = c / (2 × f_mod) R_reported = R_true mod R_wrap

The speed of light c = 3.0 × 10^8 m/s, so the modulation frequency alone sets the wrap distance:

Modulation frequency Unambiguous range
5 MHz 30.0 m
10 MHz 15.0 m
20 MHz 7.5 m
30 MHz 5.0 m
60 MHz 2.5 m

Medium-range presets sit near 20 MHz: low enough to reach across a room, high enough to keep depth noise down, because depth precision improves as the modulation frequency rises.

The remainder term is the whole artifact. A surface one metre past the wrap reports one metre; a surface half a metre past it reports half a metre — floating just in front of the lens, along the direction that pixel happens to look.

Why a pyramid and not a blob? The aliased pixels are the ones aimed at surfaces just past the wrap distance, and they are spread across the whole rectangular image, so the false points fill the camera's frustum: a wedge with its apex at the lens, reaching as deep as the aliased surfaces sit past the wrap. Rooms put their deep clutter — racks, doorways, the next aisle — in a band just past the wrap, so the wedge hugs the lens, with stragglers further out where surfaces sit a second wrap away.

Aim at a single wall or a ceiling and nothing in view lies past the wrap distance, so nothing folds and the pyramid vanishes. The artifact tracks scene depth against frequency, not object count or gloss.

Reflections, the usual first guess, bend depth differently. Multipath return merges several light paths in one pixel and warps the surface it lands on: corners read rounded, glossy tubes read short, and the smear sits at the surface's true range. Reflections move depth by centimetres; a phase wrap moves it by whole multiples of the wrap distance. Where the points sit tells the two apart.

Worked example: a 20 MHz preset in a 15 m room

The case that matches this symptom: a medium-range preset at one frequency, a room deeper than the wrap. Inputs, with their sources:

  • Modulation frequency f_mod = 20 MHz, a single frequency, read from the imager preset in the exported configuration.
  • Speed of light c = 3.0 × 10^8 m/s.
  • Room depth 1 m to 15 m, with a rack face at 8.4 m and a corridor opening at 14.0 m, measured on the layout drawing.

The rule in words: the wrap distance is the speed of light divided by twice the modulation frequency, and the reported range is what remains after subtracting whole wrap distances. The arithmetic, carried through:

  • R_wrap = (3.0 × 10^8 m/s) / (2 × 20 × 10^6 Hz) = 7.5 m
  • Rack face: 8.4 m - 7.5 m = 0.9 m reported
  • Corridor opening: 14.0 m - 7.5 m = 6.5 m reported
  • Every surface between 7.5 m and 9.0 m lands inside the first 1.5 m of the volume — the pyramid

Decision: this preset cannot ship in this room, because two real surfaces already sit past the wrap. Set the imager to a two-frequency mode, or fence the field of view so the deepest reachable surface stays under 6.0 m — the wrap less a 20% margin.

Confirm the cause before you change the config

  1. Read the imager configuration. Export the camera's JSON configuration and look at the imager type or the frequency entries: one modulation value is the signature. In one configuration schema the two-frequency preset is named upto30m_moderate; a dump showing a different preset and a single frequency closes the case.

  2. Run the step test. Put a matte white board on a rail at 7 m, log its range, then slide it to 8 m. A healthy camera reports 8.0 m; an aliasing camera collapses the board to about 0.5 m — the wrap caught in the act. Record the sequence for replay with 3D camera recording to H5 files for offline processing.

  1. Match the wedge to the layout. Measure how deep the false wedge runs and add one wrap distance: on a 20 MHz preset, a 2 m wedge points at surfaces about 9.5 m out. A rack or doorway sitting there on the drawing is your aliased source.

  2. Check the near range. Points reported inside the camera's rated minimum range cannot be real geometry; depth camera minimum range: why close objects look like noise covers why that zone reads as noise.

The fix: two frequencies, and what it costs

A second, slightly different modulation frequency resolves the wrap: the two phase readings together fix which interval the true range lies in, and depth precision stays that of the higher frequency. For disambiguation, the pair behaves like one measurement at the difference frequency:

R_wrap(pair) = c / (2 × |f1 - f2|)

At 20.0 MHz and 19.5 MHz the difference is 0.5 MHz, so the pair is unambiguous to (3.0 × 10^8 m/s) / (2 × 0.5 × 10^6 Hz) = 300 m — past any indoor scene. That is the trick behind long-range presets: keep the precision of the higher frequency and extend the reach with the beat, instead of dropping to a single 5 MHz that reaches 30.0 m but with coarser depth.

To apply it: export the camera's JSON configuration, set the imager type field to the two-frequency preset, and write the configuration back — or edit the exported file and push the whole file. Export once more and read the field again; the two-frequency name must be there after the write.

The price is integration time. The imager now collects a phase set at each frequency in every frame, so plan for roughly half the single-frequency frame rate, and re-check moving targets for motion blur at the new exposure. Keep the single-frequency preset only where the field of view is closed and provably shallow — a boxed workstation — and the full frame rate matters more than reach.

Frequency also trades against ambient light and against fine detail; see choosing an iToF sensor: modulation frequency and ambient light and why your ToF point cloud loses detail on small distant objects.

Other floating points that are not range ambiguity

Range ambiguity is the defect that builds a solid wedge against the lens, but a cluttered cloud can hide more than one. Separate them before you tune:

Artifact Where the points sit Quick test
Range ambiguity Solid wedge from the lens into the first metre or two Configuration shows one frequency; the step test collapses past the wrap
Multipath reflections Smears at the surface itself: corners rounded, glossy parts pulled short Hold a matte panel in front of the suspect area; the smear clears
Low-confidence dropout Isolated flickering points scattered through the volume The confidence map flags them; decode and mask the bitflags
Camera crosstalk Ghost planes or bands, present only while another ToF camera runs Cover the other camera's illuminator; the planes vanish

Dropouts are a masking job, not a config job: 3D camera confidence image values: decode bitflags and mask bad pixels shows how to read the flag bits. Crosstalk between two depth cameras aimed into one volume is a scheduling job: multi depth camera synchronization: slave mode and trigger setup.

When the scene always exceeds the wrap distance

Some installations cannot fence the view: an open room, a picking aisle, a doorway that stays open. Buy the disambiguation with the sensor instead of fighting the config. The MV-DT01WMU is a compact ToF sensing camera for exactly that room-scale geometry.

For depth sensing across a whole room, start here:

3D sensorsHikrobot MV-DT01WMU ToF sensing cameraMV-DT01WMU
Type
Depth / ToF camera
Price on requestView and quote

Static, close-range work is better served by different physics. Structured light has no modulation frequency and therefore no wrap: depth comes from triangulating a projected pattern, and the limit is the projector-camera envelope, not aliasing. The MV-DPS200P-02 is a projected structured-light 3D camera.

For static close-range scans where fine detail matters:

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

Laser profilers share that property — triangulation, not phase — and suit moving webs and conveyors. Compare every family in the 3D sensors category or filter by type in the camera finder, then start the configurator at the camera step when you are ready to build the cell. More depth-camera fixes sit on the 3D topic page.

Cameras3D sensors

Laser profilers and stereo 3D cameras

170 models · from $699.00

Checklist before you ship the fix

  • Read the imager preset from the exported configuration; one frequency is the pyramid signature.
  • Compute the wrap distance and write it beside the deepest view on the layout drawing.
  • Set the imager type to the two-frequency preset, apply the configuration, and export again to check the mode took.
  • Re-capture the same scene and confirm the wedge is gone, not merely thinner.
  • Re-measure frame rate and moving-target blur at the doubled integration time.
  • Mask residual stragglers from the confidence map instead of tuning around them.
  • In multi-camera cells, synchronize the illuminators so one camera's return is never another's signal.

Questions

Why does the phantom pyramid sit against the lens and not mid-air?

Because the pixels that alias are the ones aimed at surfaces just past the wrap distance. A rack face at 8.4 m with a 7.5 m wrap reports 0.9 m, a doorway at 7.9 m reports 0.4 m, and those pixels cover the whole image, so the false points fill the camera's rectangular field of view out to about a metre: a wedge with its apex at the lens. Deeper surfaces in the same room leave scattered points further out.

What unambiguous range does my modulation frequency give?

Divide 3.0 × 10^8 m/s by twice the frequency: 20 MHz gives 7.5 m, 10 MHz gives 15.0 m, 5 MHz gives 30.0 m, and 60 MHz gives 2.5 m. If the preset runs two frequencies, the pair disambiguates out to the speed of light divided by twice their difference — 300 m for 20.0 MHz and 19.5 MHz — so any indoor scene is safe. Read the frequency from the imager configuration and compare it with the deepest surface the camera can ever see, doorways and windows included.

Will a higher modulation frequency remove the pyramid?

No — it brings the wrap closer. Doubling the frequency halves the unambiguous range: going from 20 MHz to 40 MHz moves the fold from 7.5 m to 3.75 m. A higher frequency does lower depth noise, which is why presets do not simply run at 5 MHz, but the cure for aliasing is the second frequency, not a higher one. Lowering the frequency extends reach at the price of depth precision — the trade the two-frequency mode exists to avoid.

How much frame rate does a two-frequency mode cost?

Plan for roughly half the single-frequency frame rate: the imager integrates a phase set at each frequency in every frame, so the exposure count per frame doubles. If your cycle needs the full rate, keep single-frequency only when every surface in the field of view provably stays inside the wrap distance with margin — a closed workstation, not an open room — and re-check after any layout change.

Can reflections also put points near the camera?

Multipath reflections bend depth, but they do it at the surface: corners, glossy curves and retroreflective tape read smeared or pulled short where the false path lands, not teleported to the lens. Hold a matte white panel between camera and suspect area: a multipath smear clears, a range-ambiguity wedge stays, because the aliasing comes from distance, not path. Isolated flickering points are usually low-confidence dropouts instead; mask them from the confidence map.