Anonymized case study. No customer or product is identified.
The problem
Conductive substrates made of ceramic and bonded metal layers carry defects that are subtle at normal exposure: the defect and the surrounding material reflect light almost identically.

Constraints
- Defects micron-scale and low-contrast.
- High throughput required for production.
- Surface finish varied between batches.
Approaches tried
- Single coaxial image - revealed reflectivity differences but missed texture-type defects.
- Overexposure - deliberately saturating the image separated the defect brightness from the background.
- Multiple lighting angles - brought out topography that flat lighting hid.
Each approach was scored the same way: contrast of the worst defect sample against the noisiest good sample. The single coaxial setup managed roughly 2x noise on the hardest defects - technically visible, practically a false-call generator. The combined strategy reached 8-10x on the same samples.
Solution
A multi-image strategy: a normal exposure as baseline, an overexposed frame to separate near-identical materials, and angled lighting for topography. The algorithm then fused these into a single reliable decision.
The acquisition sequence ran four frames in under 100 ms using strobed lights, so throughput survived. Processing was kept deliberately simple - per-frame thresholds and a rule-based fusion - so that line engineers could understand and adjust every stage without calling anyone.
What failed first in the field
Not the optics and not the algorithm: the batch-to-batch surface finish. A new etching parameter upstream changed the background texture enough to shift the overexposure clip point, and false calls spiked for two days. The fix was procedural, not technical - the inspection recipe gained a per-batch calibration step using a known-good sample from each lot.
Lessons learned
- The contrast was created by the lighting design, not the algorithm.
- Batch-to-batch surface variation, not the defect itself, was the hardest part to keep stable.
- A simple algorithm the site could maintain beat a smarter one they could not. The system survived because every false-call dispute could be traced to a specific frame and threshold within minutes.