You scan a face at 300-500 mm and the point cloud comes back with the nose reduced to a smooth bump. You raise the projector power, push the depth resolution up, move the camera closer, and the surface stays soft. That is not a broken camera; it is the technology doing what it was built to do. This comparison shows why coded-light and active-stereo cameras disagree on fine relief, gives you the depth-noise equation with the arithmetic worked out, and ends with a decision for faces, for larger scenes and for small precision parts.
Why coded light and stereo disagree on a nose
Both are triangulation methods: a projector sits at one position, a camera (or two) at another, and depth follows from where a projected mark lands on the sensor. The technologies differ in one thing only - how much of the surface carries a mark to match.
Active stereo pairs two monochrome cameras with a fixed baseline and a projector that casts a static dot pattern. The dots are not data; they are texture for surfaces that have none. The matcher finds disparity where it can - at dots, or at image texture such as eyebrows - and computes depth there. Between dots there is nothing to match, so the module interpolates and fills holes. That interpolation is the smoothing you see on a cheek or a nose bridge. Bare skin at half a meter is close to textureless, and its low contrast pushes matching error up exactly where the detail lives.
Coded light, sold under the structured-light name, makes the correspondence explicit for every pixel. The projector sends a known pattern sequence, each camera pixel reads back a code, and depth exists at every pixel the code reaches. Lateral detail now follows image resolution and pattern density rather than dot density. The wider technology picture - where stereo, ToF and structured light each win across range and budget - is in Industrial 3D camera selection: stereo, ToF or structured light. This page stays on one question: which method keeps fine relief.
The depth-noise equation
dZ is depth uncertainty, Z is distance, dd is the matching error in pixels, f_px is focal length in pixels, W is depth-image width, FOV the horizontal field of view, and B the baseline between projector and camera. Keep Z and B in millimeters and dZ comes out in millimeters. A well-textured stereo match holds dd near 0.1-0.2 px; a poorly textured one drifts toward 0.5-1 px or returns no match at all.
Three levers fall out of the equation:
- Distance dominates: dZ grows with Z squared, so halving the distance quarters the noise.
- Baseline: doubling B halves dZ, the lever behind Long range stereo depth accuracy with a wide baseline.
- Focal length in pixels: narrowing the field of view raises f_px. The lens focal length calculator works the millimeter side; enter your sensor and target FOV below and the finder returns matching lenses.
The same equation governs structured light, because its projector and camera also form a baseline. The technology difference is not the math; it is that coded light keeps dd small at every pixel, because every pixel has a code to read.
Worked example: noise from 0.3 m to 1 m
The inputs below are example values for a representative compact active-stereo module, chosen to match that class of hardware rather than one datasheet: depth output 1280 px wide, horizontal FOV 90°, baseline 50 mm, matching error 0.1 px.
Focal length in pixels:
Depth noise at three face-scanning distances:
| Z | dZ = Z^2 × 0.1 / (640 × 50) | Result |
|---|---|---|
| 300 mm | 90,000 × 0.1 / 32,000 | 0.28 mm |
| 500 mm | 250,000 × 0.1 / 32,000 | 0.78 mm |
| 1,000 mm | 1,000,000 × 0.1 / 32,000 | 3.1 mm |
Read that against the part. An adult nose projects roughly 15-20 mm from the cheek plane, and the bridge curves and creases that make a reconstruction look right sit at the 1-2 mm scale. At 0.5 m the module's noise is the same order as the detail; at 1 m it swamps it. Bare cheek skin also matches worse than the 0.1 px assumption, so real scans are noisier still. Structured-light systems at these distances hold sub-millimeter depth - micron-class on dedicated close-range scanners - because correspondence never depends on finding a dot.
What actually helps a stereo face scan
Work through these in order; each buys a real but bounded gain:
- Turn off decimation. Any downsampling or decimation post-process averages neighboring depth pixels into one and blurs by design. Capture and export at the native depth resolution.
- Run the projector at its maximum power setting. Cleaner dots lower matching error where dots land. Expect better confidence coverage, not new geometry.
- Add scene light. Room light lets the matcher use real detail such as eyelashes, stubble and pores. Bare cheek and nose-bridge skin still offers little to match, so the gain stops well short of coded-light quality. The lighting options are laid out in Stereo depth lighting optimization for dark surfaces and Infrared flood illumination for stereo depth imaging; the exposure side is in Depth camera gain and exposure: tune manual IR gain for near range.
- Move closer. The squared-distance law is the strongest lever you have: 500 mm to 300 mm cuts the example's noise from 0.78 mm to 0.28 mm.
After those four steps you are at the technology's ceiling. Between dots there is no information to recover; only a denser projected pattern - coded light, or a stereo projector with a much finer speckle - gets past it.
Side by side: coded light, active stereo, ToF
| Coded light (structured light) | Active stereo + dot projector | ToF | |
|---|---|---|---|
| Depth source | Decoded projector code at every pixel | Disparity at dots and scene texture | Round-trip time of modulated light |
| Fine relief close in | Full image detail; sub-millimeter near range | Dot-limited; interpolated between dots | Coarse; centimeter-scale features |
| Noise vs distance | Same Z-squared law, small dd everywhere | Z-squared law plus texture gaps | Near-flat across its range |
| Motion | Sequential codes smear a moving scene | Both frames at once, so motion tolerant | Fast frames, coarse output |
| Black or shiny surfaces | Absorbing black hides the code; specular scatters it | Same failures, plus missing texture | Less texture-dependent; specular still risky |
| Natural home | Close-range scanning: faces, ears, molded and organic parts | Robot guidance, bin picking, parcel and people volume | Zones, occupancy and logistics volume |
ToF stays near-flat in noise across its range, which is why it holds zones and logistics lanes; the range itself is set by the modulation, and Choose a time-of-flight unambiguous range for depth capture walks through that limit. If a raw stereo cloud looks too ragged to use, Stereo depth map noise: smooth raw depth into usable data shows what filtering can and cannot rebuild.
Which camera to choose, case by case
Static face, ear or molded part at 0.3-0.6 m: pattern projection. This is the case where the smooth nose decides the project.
For a still subject, a projected structured-light 3D camera is the direct fit.
- Type
- Stereo / structured light
Moving subject or robot cell at 0.5-3 m: active stereo. Accept the texture ceiling on bare skin, and claw back margin with distance, baseline and illumination.
Where the scene is larger than a face and needs dense active texture, a galvanometer-steered laser stereo camera writes its own pattern onto the part.
- Type
- Stereo / structured light
Presence, volume and zones across meters: ToF returns consistent depth across its range without caring about surface texture.
- Type
- Depth / ToF camera
Small part, finest profile, and you can move it past a line: a laser triangulation profiler resolves one cross-section at a time and beats both methods on edge detail.
- Type
- Laser profiler
Checks before you commit
- Scan a stepped target - stacked gauge blocks or a milled wedge with 1 mm steps - at your real working distance and exposure, then compute RMSE against the known values. Accept the camera only if noise sits under half your smallest feature.
- Capture at the native depth resolution and confirm no downsampling filter is enabled by default in the viewer's post-processing.
- Match wavelengths: any added lamp must fall inside the sensor's sensitivity band, or its power is wasted. The special lights category groups structured and band-specific sources in one place.
- Time one capture end to end while the subject breathes normally; a coded-light sequence longer than a natural pause will smear.
- Ask for depth accuracy, not just resolution: a 1280-wide map with 1 mm of noise carries less usable detail than an 800-wide map with 0.3 mm.
When the usual answer is wrong
The face moves. Temporal coded light needs several pattern frames; a subject who shifts between them returns streaks and holes. Active stereo grabs both frames at once and tolerates motion. For live capture, stereo with strong infrared texture can beat a coded-light rig that cannot hold the pose.
The surface is black, wet or mirror-like. Both triangulation methods fail: absorbing black returns no code, and specular surfaces scatter it. Fuzzy edges and thin parts drop out as well; the failure modes are cataloged in Close range depth dropout on fuzzy surfaces and thin parts.
You need one number, not a mesh. If the deliverable is a height difference, a flatness value or a volume, a profiler across a single line or a point-cloud pipeline beats a full 3D scan; Measuring surface height difference from a 3D point cloud walks that path.
Set-up checklist
Choose
- Compute dZ at your working distance before shortlisting hardware; let the squared-distance law place the mount.
- Match the technology to motion: still subject means coded light, moving subject means stereo.
Set up
- Native depth resolution confirmed; decimation and other smoothing filters off for capture.
- Projector at its full setting; any added lamp inside the sensor's band and its rated safety distance.
Validate
- Step-wedge RMSE at the real distance and exposure, not on the demo bench.
- Nose-region detail judged on the raw cloud, never on the shaded preview.
Shortlist from the 3D sensors category or the camera finder, and pick illumination from the light finder. If your case sits between two of these technologies, tell us the distance, the part and the smallest feature you need resolved through the contact page, and we will size the system with you. The rest of the depth-camera set-up guides sit on the 3D camera topic page.
The configurator matches a camera, lens, light, light controller and cables to each other, step by step, and lists only parts that fit what you already picked.
Questions
Can I add an external infrared lamp to improve a stereo face scan?
Yes, with modest expectations. A diffused near-infrared flood lets the cameras expose real skin detail — pores, stubble, eyelash shadows — that the matcher can use as texture. It does not add projected pattern, so areas between dots stay interpolated. Match the lamp band to the module's illumination wavelength, many of which work around 850 nm, avoid flickering sources, and confirm the lamp's eye-safety rating and rated distance before aiming it at a face.
Why does a coded-light scan break up when the subject moves?
Temporal coded light reads several patterns in sequence and merges them into one code per pixel. When the surface moves between frames, the codes disagree and the decoder returns holes or streaks. Active stereo grabs both frames at the same instant, so it tolerates motion much better. For a live subject, shorten the sequence and exposure as far as the firmware allows, ask for a fixed pose between captures, or switch to stereo and accept its smoother surface.
What working distance should I use for a face scan?
Work as close as the module's minimum range allows; compact units commonly set that limit in the 0.2–0.4 m band. Depth noise grows with distance squared, so halving the distance quarters the noise: the worked example above drops from 0.78 mm at 0.5 m to 0.28 mm at 0.3 m. Closer range also raises lateral resolution, because each pixel covers less surface. Check the projector's near focus limit before you design the mount.
Does raising the depth-map resolution restore missing nose detail?
No. Output resolution adds pixels, not measurements. Where the matcher only finds correspondence at dot positions, the extra pixels interpolate between the same sparse samples, so the mesh looks denser but carries no new geometry. Run the camera at its native depth resolution and leave downsampling off, because that preserves what was actually measured. Real relief on smooth skin has to come from denser projected texture, which is the coded-light approach, or from scene detail such as hair and marks.
When is a laser profiler the better choice over structured light?
When the part is small, static or fixture-mounted, and you need the finest cross-section detail. A laser triangulation profiler resolves one profile line at a time at micron-class scale, which suits edges, steps and small features that pattern projection only approximates. It needs relative motion between sensor and part, so it fits scanning stages and conveyor-mounted inspection rather than a live face. For static full-surface close-range scans, pattern projection stays the faster route.



