DriftSense

A wafer-inspection microscope loses track of where it is. DriftSense finds a reference pattern inside the SEM frame under unknown 8–12× zoom and ±5° rotation, or reports that it isn't there.

my role
team lead · team of 4
stack
Python · PyTorch · OpenCV
when
sep 2026

cat problem.md

This is Applied Materials' Navigation-Error Recovery problem, Phase 2. Given a high-resolution reference patch and a low-resolution SEM search frame of a repeating semiconductor layout, locate the patch and report its position, rotation and scale, or report that it is not there. The zoom is unknown, between 8× and 12×, and the rotation is unknown within ±5°. About 20% of pairs contain no true instance.

The layout repeats, so a patch correlates well at many positions and local appearance alone cannot identify the site. The pipeline keeps the top few pose hypotheses from a coarse scale sweep, verifies each at full resolution with ZNCC, and keeps the best one.

tree pipeline/

Two paths. Matching: a sweep over scale and rotation feeds a siamese correlation network; the top candidates are verified by ZNCC at full resolution, and a pair that fails the score is reported as not present. Registration: CAD-to-SEM alignment in the Fourier domain.

cat results.tsv

metricdriftsensen
match / reject F10.912,250 pairs
AUC0.992,250 pairs
CAD-to-SEM errorall ≤ 1 px · median < 0.03 px600 pairs
runtimemedian ≤ 5 s / pair · 20 s hard timeoutreference machine: 4-core x86, 8 GB RAM, no GPU, Python 3.11

The F1 and AUC pairs are self-generated. The 600 registration pairs come from the organisers' own CAD pipeline and were scored locally on their published rubric.

cat limits.md