A wrinkle in printed paper, a dent in brushed metal, a blowhole in rolled plate: all of them are shape defects, and the pattern or texture of the surface hides every one from an ordinary line scan image. Single-direction line lighting mixes two signals — how much light a point reflects (print, grain, oxide) and which way it faces (the defect). Photometric stereo separates them. This guide runs the method on a moving web with a line scan camera: four oblique line heads strobed in sequence inside the line period, the arithmetic that picks between sub-line and line-interleaved sequencing, and the color shortcut that needs no switching. You finish with a parts list for a 1 m/s paper web and the decision rules for your own line.
The inspection task: shape defects under a printed surface
Under one oblique line light, a printed paper web gives contrast that is almost entirely ink. A wrinkle appears as a faint pair of shading gradients a few gray levels deep, riding on print contrast of a hundred gray levels or more. A fixed threshold cannot hold across a whole design, and an adaptive threshold eats the wrinkle along with the print. Dents on brushed metal and blowholes on rolled plate fail the same way: surface texture sets the contrast floor and the defect sits under it.
The fix is measurement, not filtering. A wrinkle is a local change of surface slope, and slope is exactly what oblique lighting writes into shading. The article on machine vision lighting angles explains why flat print and real geometry answer lighting direction so differently; photometric stereo is the systematic version of that difference.
What photometric stereo computes
Take one image per lighting direction with everything else identical. Under diffuse reflection, the gray value of a pixel under direction k is:
The l_k are the lighting directions from the mechanical layout; the E_k are the relative strengths, measured once against a flat matte reference. Four equations per pixel solve the unknown vector g. Its length is the albedo: ink density, texture, print. Its direction is the surface normal: wrinkles, dents, blowholes. Display the normal components and the printed pattern is gone, because ink barely changes which way the surface faces.
Three non-coplanar directions are the mathematical minimum. Four is the working standard: the extra equation gives a least-squares fit that absorbs noise, and one saturated or shadowed direction can be down-weighted instead of corrupting the solve. Diffuse reflection and calibrated, stable geometry are the two assumptions. The math matches the area-scan versions — photometric stereo ring lighting for surface inspection and moving part photometric stereo with synchronized capture — carried onto a line scan camera, where the hard part is timing, not algebra.
Four directions of line light on a web
The four directions must not lie in one plane. The standard layout places two across the web (left and right oblique) and two along travel (upstream and downstream oblique), each at 30–45° from the surface. Shallower angles amplify slope sensitivity but stretch shadows; 45° is the usual compromise.
For the across-web pair, a double-angle housing puts both directions in one body.
- Size
- 400 mm +
- Voltage
- 24 V
The LS-LSC-0415 is a 750 mm dual-angle line scan light on 48 V for wider webs, and the LS-LSC-0441 is a 493 x 60 mm oblique line light with natural cooling where a fan is unwelcome. Size every head to the web width plus about 10%: oblique incidence throws the lit line sideways, and a head exactly as long as the web leaves its edges dark. Two double-angle housings — one across, one along travel — or four single oblique heads both work; four singles leave every angle adjustable, which pays at calibration.
Two ways to sequence the lights
A line scan camera reads one line at a time, so the four directions share either time or lines. Both schemes work; they fail differently.
Sub-line multiplexing: all four inside one line period
Each line period T splits into four windows. Direction 1 lights window 1, direction 2 lights window 2, and so on, while the camera integrates the whole line and software separates the four exposures. Every line then carries all four images of the same physical strip: spatially coincident, no registration step. The cost is light and switching. Each direction gets about a quarter of the line period, and the controller must settle every channel change in a small fraction of that window — low single-digit microseconds at web speeds. Usable light is what survives the rise time; measuring LED strobe optical rise time shows how much of a short pulse is actually flat-top.
Line-interleaved: one direction per line
Direction 1 lights line 1, direction 2 lights line 2, direction 4 lights line 4, then the pattern repeats. Software de-interleaves the stream into four images, each sampled every fourth line. Each head runs the full line period, so light per image is four times better and any strobe controller keeps up. You pay in line rate: the camera must run at four times the natural rate to hold along-web resolution, and the four images sit 1, 2 and 3 lines apart along travel — an integer-pixel shift you correct in software, exact only when the camera is encoder-triggered rather than free-running.
The decision
Use sub-line whenever the natural line rate is 20 kHz or lower (line period 50 µs or longer): each direction keeps a window of about 12 µs, the four images align by construction, and one pass yields a square-pixel normal map. Above 20 kHz, go line-interleaved and buy four times the line rate, because strobe windows shrink faster than light output and channel switching can follow. How to set the line rate of a line scan camera covers the rate itself; LED strobe duty cycle matching covers what short windows do to light and controller sizing.
| Scheme | Light per image | Camera line rate | Registration | Choose when |
|---|---|---|---|---|
| Sub-line multiplex | quarter of the line period | natural rate | none | line rate up to about 20 kHz |
| Line-interleaved | full line period | 4x natural rate | shift of 1, 2, 3 pixels | above 20 kHz, or slow channel switching |
| RGB multiplex | full, all directions at once | natural rate | sensor-row offset, corrected in camera | near-neutral surfaces only |
Worked example: printed paper at 1 m/s across a 420 mm web
Inputs: web speed 1.0 m/s from the machine rating; web width 420 mm from the line spec; target sampling about 0.1 mm per pixel, which puts ten pixels across a millimeter of wrinkle shading; multi-color print, so the four-direction white sequence rather than RGB multiplexing.
Two rules: along-web pixel size equals cross-web pixel size, and line rate equals speed divided by pixel size.
- Cross-web sampling: 420 mm ÷ 4096 pixels = 0.1025 mm per pixel, about 0.103 mm.
- Line rate: 1000 mm/s ÷ 0.1025 mm = 9756 lines/s, about 9.8 kHz. Line period T = 1 ÷ 9756 = 102.5 µs.
- 9.8 kHz sits below the 20 kHz threshold, so sub-line multiplexing. Each direction gets 102.5 µs ÷ 4 = 25.6 µs, minus 2.5 µs of channel settling leaves 23 µs of light per direction per line.
- Motion blur inside a window: 1000 mm/s × 23 µs = 0.023 mm, or 0.22 pixel — inside the half-pixel budget.
- The line-interleaved alternative needs 4 × 9756 = 39 kHz. At 4096 pixels and one byte per pixel that is 4096 × 39,000 ≈ 160 MB/s, above the roughly 100 MB/s a GigE link carries, so interleaving would force a 10 GigE camera. Sub-line keeps the GigE link.
Camera for this line:
- Lens mount
- M42
- Interface
- GigE
- Sensor format
- APS-C
- Shutter
- Global
The LS-LCM-0080 is a 4K GigE mono line scan camera with 4096×8 effective pixels on an M42 mount — the pixel count the arithmetic assumes. Set the camera exposure to the full line period and let the strobe windows define the effective exposure; blur is then fixed by the 23 µs window, not by the camera.
One box sequences all four channels.
- Output
- Constant voltage 24 V
- Channels
- 4 channels
- Control
- Digital
- Feature
- Strobe
The LS-CTL-0070 is a 4-channel digital control box rated 200 W with a strobe feature and RS232. Sequencing works in your favor: only one head is lit at any instant, so instantaneous draw is one head, never four. For scale, the LS-LSC-0527 is a 300 x 17 mm line source rated 87 W red / 108 W white. Four heads in that class, gated one at a time at a quarter duty each, average about 108 W of draw — the 200 W box carries that with margin.
Decision for this line: sub-line multiplexing at 9.8 kHz, four oblique heads covering at least a 460 mm lit line, one 4-channel strobing controller, one 4K GigE mono camera with encoder input, and a lens that covers the sensor's image circle at the working distance the 30–45° lighting throw forces. Line scan lens selection for 4K, 8K and 16K cameras and the line scan field of view calculation settle the lens.
The RGB shortcut: three directions in one color line
Skip the switching entirely: a color line scan camera plus a line light whose red, green and blue diodes face three different directions. Each sensor row responds to its own color's direction, so one line period carries three photometric stereo images at full duty, with no sequencing and no registration. Two such lights, one on each side, give six directions — the dense layout for glossy three-dimensional work where four directions saturate.
- Lens mount
- M42
- Interface
- GigE
- Line length
- 4K
- Pixel size
- 7 μm
The MV-CL042-91GC-V2 is a 4k color line scan camera on GigE with 7 μm pixels, an M42 mount and a 29 mm image circle, in an isolated housing.
Channel separation is the weakness. It assumes the surface reflects red, green and blue proportionally, which bare metal, gray board and unprinted paper do — and printed inks do not: ink density leaks into the shape channels as false gradients. Use RGB multiplexing on near-neutral surfaces, and the four-direction white sequence on anything printed or dyed. The three sensor rows sit physically offset along travel; the camera's line-delay compensation corrects it once the line rate is set, and when it is off you see color fringes and moiré, the same failure as any trilinear camera. Sequencing colors on a mono camera is the third route; multi-wavelength light sequencing covers it.
Choosing camera, heads and controller
- Head length: web width plus 10%. The 420 mm example needs a 460 mm lit line.
- Directions: four, non-coplanar, at 30–45° incidence. Measure E_k against a flat matte reference and store the gains with the recipe.
- Camera: line length that gives your pixel size, with 20% line-rate headroom — the 9.8 kHz example buys a camera comfortable at 12 kHz.
- Controller: one channel per direction, with strobe and sequencing. Check per-channel peak current against the head, not just the box total.
- Lens: must cover the sensor image circle at the working distance the lighting angle forces; edge vignishing biases normals.
- Trigger: quadrature encoder, never a timer. Speed ripple reads as false slope.
- Light budget: line scan light power for fast lines sizes the heads, and sub-line sequencing multiplies the peak requirement by about four.
Data rate check for the example: 4096 bytes × 9756 lines/s ≈ 40 MB/s, under half a GigE link's practical payload. A multi-core machine-mounted host absorbs the de-interleave and the per-pixel solve; industrial mini PCs are the usual form factor for that mounting pattern.
Start the lighting step of the configurator to build the whole chain from heads to trigger.
Pitfalls that ruin a normal map
- Saturation clips one I_k, and the fitted normal is then wrong by construction, not slightly. Set exposure so the brightest specular peak on the glossiest stock stays below 90% of range in every direction.
- Free-running capture lets web-speed ripple slide the sub-line windows against true position. Encoder triggering is the fix.
- A glossy coating breaks the diffuse assumption. Cross-polarize: polarizer film on every head, analyzer on the lens — polarized lighting setup and tests shows the arrangement. Each polarizer passes roughly 40–45% of the light, so the pair costs about four times the output.
- Unequal LED aging drifts the E_k and tilts every normal. Recalibrate the flat reference on a schedule, or hold output with closed loop lighting control.
- The along-web heads shadow the web edges. Mask the outer few millimeters in software instead of chasing illumination there.
When this is the wrong tool
An unprinted, matte surface does not need it: a single bright-field line finds defects directly, and lighting for fabric defect detection on webs covers the cheaper set-ups. Truly specular or translucent stock breaks the diffuse model in a way polarization cannot rescue; height from laser triangulation measures geometry without albedo assumptions. And on a slow web or short parts, an area scan camera in line scan mode can sequence the same four directions per line with a lower camera budget.
If your line matches the worked example, the fastest path is the line scan lights finder and the configurator step above. For a line that differs — faster, wider, colored, translucent — send the speed, width and defect size through the contact page and we will run the same arithmetic against your numbers.
Questions
How many lighting directions does line scan photometric stereo need?
Three non-coplanar directions are the mathematical minimum for a full surface normal: the light-direction vectors must span three axes. Four is the practical standard, because the extra equation gives a least-squares fit that absorbs noise and partial specular reflection, and one dim or shadowed head can be down-weighted instead of corrupting the solve. Two opposite directions measure a single slope component each — differential shading, useful, but not photometric stereo.
Does RGB multiplexed photometric stereo work on printed or colored surfaces?
Not reliably. Wavelength separation assumes each surface point reflects red, green and blue proportionally, so the three channels can be inverted into three lighting directions. Printed inks have wavelength-dependent reflectance, so ink density leaks into the shape channels as false gradients. Keep RGB multiplexing for near-neutral surfaces — bare metal, unprinted board, gray plastic — and run the four-direction white sequence with a mono camera on anything printed or dyed.
How much brighter must the heads be for sub-line multiplexing?
Each direction lights for about a quarter of the line period, so per-image light falls to roughly a quarter of a continuous line at the same drive. Strobing recovers it: a short pulse can be driven harder than continuous operation because LED life tracks the average current, not the peak. Specify a controller channel that overdrives the head within its duty limits, and compare heads on peak illuminance at your pulse width, not on rated watts alone.
What surfaces break photometric stereo on a real line?
Three offenders: specular surfaces such as glossy film or coated metal, where mirror reflection overwhelms the diffuse term; strong shadowing at web edges and folds, where an oblique direction goes dark; and translucent stock, where subsurface scattering smears the shading. Cross-polarizing every head fixes most specular trouble, edge masking handles the shadows, and translucent materials belong on a triangulation or transmission set-up instead.
Do the four direction images need registration before the solve?
Sub-line multiplexing needs almost none: all four directions light the same physical strip within one line period, so the images are coincident by construction. Line-interleaved capture displaces each direction by 1, 2 and 3 lines along travel; shift them back by integer pixels, then depend on encoder-locked triggering, because any web-speed ripple becomes sub-pixel misalignment that reads as a false slope in the normal map.



