Drop in your face and pick a target who looks nothing like you. blindspot finds a tiny, near-invisible change to your pixels that makes a real face recognizer certain you're the target. You still see yourself, the model is now sure you're someone else. Scrub the strength slider and watch its distance to the target fall past the “same person” match line while its distance to the real you climbs away.
the photo never leaves your device: detection, alignment, recognition and the attack all run in this tabFace recognition doesn't sort people into named buckets. It embeds a face into a
vector of numbers and compares distances: two photos are “the same person” when
their vectors land within a threshold of each other. The recognizer here is the well-known
dlib / face-api ResNet embedder; its same-person line sits at a distance of
0.60.
So fooling it isn't flipping a label: it's an impersonation attack on the embedding. Starting from your aligned face, the page runs projected gradient descent: a few dozen steps that each nudge your pixels in the direction that moves your face vector toward the target's vector, while a tight bound keeps every pixel within a few values of the original. The result lands almost exactly on the target's embedding, so the recognizer reports a confident match, yet to your eye nothing changed. The third panel amplifies the change so you can see the faint pattern that does all the work.
The slider scrubs that same perturbation from 0% to full. Watch the left meter (distance to the target) dive under the 0.60 line while the right meter (distance to the real you) lifts above it: in a few hundredths of a unit of invisible noise, you stop being you and become a stranger.
Everything, face detection, landmark alignment, the recognition model, and the gradient attack, runs in this browser tab via TensorFlow.js (the gradient attack needs a runtime that exposes gradients, which is why this page uses TensorFlow.js rather than the ONNX runtime the other on-device pages use). No photo, no embedding, no pixel is ever uploaded. Reload and it's gone.