LightingGuide

Multi-angle sequential lighting to reveal scratches on glossy parts

Multi-angle sequential lighting: strobe a bar light from four directions, capture a frame each and separate hairline scratches from glare on glossy parts.

LumaSpec Vision12 min read Share on LinkedIn

On this page 10 sections
  1. 01The decision
  2. 02Why the glare moves and the scratch stays
  3. 03Timing the burst
  4. 04Worked example: pixel size, lens and depth of field
  5. 05The brightness budget
  6. 06Choosing the bar lights and the controller
  7. 07Combining the burst into one defect map
  8. 08Checks before you commit
  9. 09When four side bars are the wrong answer
  10. 10Questions

A polished part defends itself with glare. Under one fixed bright-field light, a hairline scratch on a bezel, a trim insert or a pump housing hides inside a sheet of specular reflection, and a plain threshold either misses it or fires on the shine. The way out is to move the light between exposures instead of betting on one angle: strobe a directional light from four to eight directions around the part, capture one frame per direction while the part sits still, then compare the frames pixel by pixel. Glare tracks the moving light; the scratch does not. This guide gives you the direction count and spacing, the burst timing arithmetic, a full optics worked example and the combination rule that turns the burst into one defect image.

The decision

Four strobed directions at 90° spacing, one frame each, then a per-pixel comparison: that is the default answer. Mount the bars 30-45° above the part plane, strobe each direction for 100-200 µs, and form two images from the burst. The per-pixel minimum suppresses glare and keeps hairline scratches. The per-pixel mean keeps stains while the glare band smears away.

Go to eight directions at 45° spacing when the surface carries directional texture — brushing, extrusion lines, polish arcs — because texture shifts with the light angle just as a defect does, and four directions cannot separate the two. When you also need to grade dents or embossing, solve photometric stereo over the same burst. Three calibrated directions is the minimum, and the solve returns a surface-normal map in which shape steps stand out and glare appears as residual you can mask.

The hardware bill stays short: directional bar lights on four sides of the station, a multi-channel strobe-rated light controller, and a camera that takes the burst inside your cycle. The channel-advance mechanics are the same ones used for sequential machine vision lighting for multi-view inspection and for multi channel light controller sequencing for photometric stereo; only the timing rules below are specific to scratch work.

Why the glare moves and the scratch stays

The law of reflection does all the work. A locally flat glossy patch with surface normal n sends light arriving from direction l into the mirror direction r = 2(n·l)n − l. The camera sees glare only where that mirror direction points into the lens, so when the light direction changes, the bright band slides to a different patch of the part. One fixed angle is a bet: the glare either covers your defect or it does not. The bright field vs dark field decision moves that bet to a better angle; multi-angle capture removes it.

A scratch behaves differently. It is a step in the surface, so it scatters light over a wide angular range and dims the return in most directions. It also stays at the same image pixel in every frame, because neither the part nor the camera moves during the burst. Slow brightness change at a fixed location is the defect signature. Glare shows the opposite: a large change of location, frame to frame.

I_k(p) = ρ(p)·max(0, n(p)·l_k) + G_k(p) frame k, pixel p I_min(p) = min_k I_k(p) glare suppressed, scratches stay dark I_mean(p) = (1/N)·Σ_k I_k(p) stains kept, glare smeared out

Read the combined images against each other. A pixel dark in I_min but average in I_mean is a scratch or a particle. A pixel dark in both is a stain or a printed mark. A pixel bright in one frame but normal in both combinations was glare. The single-angle version of this trade-off is worked through in the glossy panel scratch inspection lighting guide.

Timing the burst

Three clocks have to line up: the camera frame period, the strobe width and the time the part holds still. Take a 12 MP global-shutter camera at 60 fps, so the frame period is T = 16.7 ms. Set the sensor exposure to 100 µs and fire one 100 µs strobe inside each exposure. A four-frame burst then lasts 4 × 16.7 ms ≈ 67 ms, and each channel conducts 0.1 ms of it, a duty cycle of 0.1/16.7 ≈ 0.6%. That low duty is why strobe ratings allow far more peak current than continuous ratings, which the brightness budget below spends.

The part must hold still to a fraction of a pixel across the whole burst. With the 8.3 µm pixels from the worked example, half a pixel is about 4 µm; over 67 ms that allows 4.15 µm / 0.067 s ≈ 62 µm/s of travel, slower than any live conveyor. Stop the part, settle, fire, then index it.

If frame 1 of the burst comes out dark, the usual cause is controller settling ahead of the first exposure rather than a failed light; the diagnosis is in the first camera frame dark guide. Ambient needs no rejection hardware at 100 µs exposures: hall lighting collects 16.7/0.1 = 167× less charge than in a 16.7 ms exposure, and you can quantify the leftover as the strobed lighting ambient rejection guide describes. Getting four frames out of one trigger is the pattern in multi image capture per trigger, and firing the burst from the robot's in-position output is wired exactly as in trigger strobe lighting from robot IO.

Worked example: pixel size, lens and depth of field

Task: find scratches down to 25 µm wide on a polished stainless trim insert with a 34 × 25 mm cosmetic zone.

Pixel budget. Give a 25 µm scratch 3 pixels of width, so the pixel on the part must be ≤ 25 µm / 3 = 8.3 µm. The resolution calculator runs this the other way round, from field of view and smallest feature to the pixel count you need:

Camera resolution for the smallest feature
Units
Pixels needed
–
Sensor size
– MP
Smallest sensor that fits
–
Pixel on the part
– mm
Pixels across the feature, that sensor
–

Pixels needed = field / feature × pixels per feature on each axis (field incl. margin). The lens must resolve the pixels too: Nyquist = 1000 / (2 × pixel µm) lp/mm.

Find cameras with enough pixels Open the full calculator

Camera. Take an example 12 MP sensor with 4096 × 3000 pixels and 3.45 µm pitch. At 8.3 µm per pixel on the part, the field of view is 4096 × 8.3 µm = 34.0 mm by 3000 × 8.3 µm = 24.9 mm. The zone fits with almost nothing to spare, which is the honest cost of a 25 µm defect class: smaller defects need smaller pixels or a smaller zone.

Magnification and lens. m = 3.45 µm / 8.3 µm = 0.42. With a 35 mm lens, the working distance is WD = f(1 + m)/m = 35 mm × 1.42 / 0.42 ≈ 119 mm. At 0.42× you are past the comfortable range of most standard C-mount lenses, so pick a close-focus or telecentric model rated near 0.4× and check its magnification range, not only its focal length.

Depth of field. With the circle of confusion set to 2 sensor pixels, c = 6.9 µm, the thin-lens estimate is DOF ≈ 2·F#·c/m². At F4: 2 × 4 × 6.9 µm / 0.173 ≈ 320 µm, call it 0.3 mm. At F2.8 it falls to about 0.22 mm. A flat part in a machined nest holds ±0.1 mm, so F4 covers placement error with margin, and you buy brightness with strobe peak current rather than a faster aperture.

Exposure. Set the sensor exposure to the strobe width, 100 µs, and let the pulse carry the brightness budget.

The brightness budget

Strobing trades exposure time for peak current. LED output rises roughly in proportion to drive current, with a few percent droop near the top of the pulse, so the light delivered per frame scales with peak power × pulse width.

Take a bar whose data sheet rates 15 W continuous and permits 10× peak current for pulses under 1 ms. Continuous, one 16.7 ms frame would receive 15 W × 16.7 ms = 250 mJ of electrical energy. Strobed, the frame receives 150 W × 0.1 ms = 15 mJ, about 6% of the continuous exposure — a 16.7× shortfall. Buy it back in four places: more peak current up to the data sheet limit, a longer pulse, a lower F-number, or more gain at a noise cost. Lengthening the pulse helps most when ambient allows: at 4× peak and 500 µs, the frame gets 60 W × 0.5 ms = 30 mJ, twice the 100 µs plan.

The conclusion for procurement: size the controller on peak current per channel, not on continuous wattage alone, and keep each pulse as long as your ambient and motion budget allows.

Choosing the bar lights and the controller

Bars: one directional bar per side, elevation 30-45°, each aimed across the middle of the field of view. The lit length only has to span the FOV plus margin, so the 34 mm example zone is comfortable with a 100-200 mm bar, and longer parts step up through the 200-400 mm sizes. Filter the lights finder by size, type and color once the zone is fixed. Standard and high-luminance types give the crispest direction, which is what the per-pixel comparison wants; a diffused bar softens the angle and suits slightly curved or brushed parts where a hard direction paints stripes.

All three of these are 24 V bars, 312-372 mm long.

Bar lights312 x 30 mm High luminance bar light (LS-BAR-0400)LS-BAR-0400
Size
200-400 mm
Type
Standard
$459.00View part
Bar lightsHigh luminance bar light, 312 x 36 x 26 mm (LS-BAR-0668)LS-BAR-0668
Size
200-400 mm
Type
Standard
$399.00View part
Bar lightsBar light, 372 x 28 mm, White (LS-BAR-1276)LS-BAR-1276
Size
200-400 mm
Type
Diffused
$439.00View part

Controller: four strobe-capable channels is the working minimum, constant-current output preferred so pulse brightness does not drift as the LEDs warm, and a trigger input that advances channels in step with the camera. Check the totals too: four bars at your chosen peak power must fit the per-channel rating and the unit's total rating at the same time.

These three cover the common channel counts and output stages:

Specification LS-CTL-0180 LS-CTL-0070 LS-CTL-0054
Baud rate 9600-115200bps optional 9600 bps 9600 bps
Control Digital (4-digit display, buttons), RS232 Manual encoder knob adjustment, PC remote adjustment Manual encoder knob adjustment, PC remote adjustment
Number of channels 4 4 2
Working mode 0: constant off, 1: constant on, 2: strobe, 3: trigger delay shutdown Constant on / Trigger / Strobe –
Dimensions (mm) 89 x 147 x 175 W 100 x H 156 x D 134 (from the drawing; body 149 high, 110 deep) W 262 x H 126 x D 182 (from the drawing; body 120 high)
Input voltage – 24 V DC 100-240 V AC
Luminance adjustment method – manual adjust by knob, PC remote adjusting Manual encoder knob adjustment, PC remote adjustment
Luminance adjustment level – 256 level 256 level
Memory function – data saved automatically when power off Data saving automatically when power off
External trigger voltage – 5-24 V 5-24 V
Operating environment – humidity 20%-85%RH (frost free), 0-50 C Humidity 20%-85%RH (non-condensing), temperature 0°C-50°C
Storage environment – humidity 20%-85%RH (frost free), 0-60 C Humidity 20%-85%RH (non-condensing), temperature 0°C-60°C
Price $359.00 $549.00 $549.00

Values as printed in each product's data sheet; open a part for its drawing and full specifications.

For a four-bar station, the LS-CTL-0070 is the direct fit: a digital control box with 4 channels, 200 W total output and RS232 control, with strobe support. The LS-CTL-0180 is the constant-current route, 4 channels at 120 W in a 89 × 147 mm package for 24 V lights. When the pulse plan needs more peak, the LS-CTL-0054 supplies 240 W per channel on 2 channels; run a two-direction layout or pair two bars per channel. If your channel count lands elsewhere, the controller finder filters by channels and strobe feature.

Combining the burst into one defect map

The comparison runs after the burst, on the four frames in memory. Form the maps, then decide per pixel:

Map Built from What survives Use it for
Minimum image per-pixel minimum over the burst scratches, particles: dark in most frames hairline scratches, debris
Mean image per-pixel average over the burst stains and albedo marks residue, discoloration
Normal map photometric stereo over ≥3 calibrated frames shape steps; glare flags as high residual dents, embossing, engraving
Opposite-pair difference frame 1 minus frame 3, 180° apart anything direction-dependent quick triage with two bars

Threshold the chosen map with a dynamic threshold rather than one global constant, since a polished background is anything but uniform, then filter candidates by geometry. At 8.3 µm/px, a 25 µm wide, 3 mm long scratch is 3 px wide and 361 px long, so keep blobs at least 3 px wide with elongation above 10:1. The thresholding mechanics are the same as in scratch defect detection with lighting and dynamic thresholding.

Checks before you commit

  • Registration. Fire two bursts with the part untouched and overlay them: frame-to-frame shift under 0.2 px. Any more and a scratch smears across pixels instead of stacking.
  • Glare coverage. On a part with known scratches, confirm the defect zone is glare-free in at least one frame of the burst, and that the min-image contrast there is at least 3× the local noise.
  • Ambient floor. Capture a burst with the strobes disabled at the same exposure; the background should sit under 5% of the strobed level.
  • Pulse stability. Run 1,000 cycles and watch a white reference in the min-image: under 2% drift. Drift here becomes threshold drift at the end of a shift.
  • False calls. Run 20 known-good parts and tune the threshold to zero false calls, then rerun the seeded-defect parts and confirm every scratch is caught.
  • Cycle time. Add it up: 30 ms settle + 67 ms burst + transfer + inspection is about 150 ms with the example numbers, comfortable inside a 1 s cycle.

When four side bars are the wrong answer

  • Curved glossy parts. Side bars hold one elevation; a domed lens cap or a bottle shoulder needs a sweep of elevations at every azimuth, which is what dome lights provide. Keep the sequential idea and swap the bars for the dome's continuous angular coverage.
  • The line will not stop. If the part cannot pause 100 ms, one low-angle bar in continuous dark field catches dents, pits and pronounced scratches in a single frame at line speed, laid out as in the dents and pits low-angle lighting guide. You give up faint hairlines and stains.
  • Only stains matter. Two opposite bars and a mean image do the job; the second pair of directions buys nothing until scratches enter the spec.
  • Deep directional texture. Brushed or turned finishes alias with scratch responses at four directions; go straight to eight at 45° spacing and confirm on a texture-only part that the min-image stays quiet.

Next step: sketch the layout before you order — zone size, four azimuths, elevation and the pulse plan from the brightness budget. Size the hardware in the light configurator, and if you want a second pair of eyes on the layout, the contact page takes the zone size, cycle time and smallest scratch in your spec; we will come back with a bar layout and a controller sized to it.

Questions

How many lighting directions does a glossy scratch inspection need?

Four directions at 90° spacing find isolated hairline scratches, stains and particles on flat parts: the specular band leaves every defect zone at least once per burst. Use eight at 45° spacing when brushing, extrusion lines or polish arcs run across the surface, because texture shifts with the light just like a defect. Scratches aligned with one bar direction show best under the bar perpendicular to them, so spread the azimuths evenly.

Can I capture the burst while the part is moving?

Only if total travel during the burst stays under about half a pixel: with 8.3 µm pixels and a 67 ms burst that is roughly 60 µm/s, slower than any conveyor. To shorten the burst, read out a reduced ROI, which raises the frame rate roughly in proportion; halving the rows roughly doubles it. A rotating part needs re-registration between frames or a stop station.

Does the camera need anything special for sequential strobing?

Yes: a global shutter. A rolling shutter reads rows sequentially, so a 100 µs strobe lights only the rows being sampled at that instant and the frame shows a bright band. Take a monochrome sensor: a color sensor's filter mosaic passes roughly a third of the light to each channel. Make sure the camera offers an exposure-start trigger or strobe output so each frame can gate its own light.

What should I check when picking a light controller for four strobed channels?

Four strobe-capable channels, a trigger input that advances the sequence in step with the camera, and constant-current output so pulse brightness holds from the first frame of a shift to the last. Size peak current per channel against your overdrive plan, not just continuous wattage: the LS-CTL-0070 covers 4 channels at 200 W with RS232, while heavily overdriven pulses point to the LS-CTL-0054 at 240 W per channel.

Is a polarizer a simpler way to kill the glare?

It is simpler and it works in one frame, but cross-polarization discards the specular signal itself, so faint dents and some shallow scratches lose their contrast too. Sequential lighting keeps specular information and lets the per-pixel comparison decide what is glare. On very glossy coatings the two combine: fit the polarizer pair on the lens and on each strobe, then capture the four directions as usual.