June 8th 2026
In 2010, artist Adam Harvey published a masters thesis proposing that hair and makeup could break computer vision. The idea was that bold geometric patterns could confuse face detection algorithms while leaving the wearer visible to people. He called it CV Dazzle, after the WWI ship camouflage.
The original designs worked. They blocked the face detector that was standard at the time. That algorithm has been dead since about 2013. Harvey tells people not to use the old patterns anymore. His project page includes a newer look from 2020, Look 6, designed against convolutional neural networks, the kind of detector everything uses now.
The old patterns shouldn’t do anything against modern systems. I ran all six looks through four current face detectors to check.
The detectors:
Default confidence thresholds. No tuning. I ran everything on an RTX 2060.
Look 1 reverses the dark and light areas the old algorithm expected around the eyes and nose bridge. MediaPipe didn’t find a face. RetinaFace, SCRFD, and YOLOv11 all did.
MediaPipe also missed faces in other images during this test. It’s tuned to not fire unless it’s real sure.
Look 2 was designed to exploit the old algorithm’s expectation of facial symmetry. Every detector found the face. The bounding boxes are nearly identical across models.
Look 3 uses a split-face pattern that caused the old algorithm to register two partial faces instead of one whole one. SCRFD and YOLOv11 produced near-identical boxes. RetinaFace and MediaPipe agreed on the region.
Look 4 was the strongest of the original patterns. It blocked the old algorithm across all detection profiles in 2010.
Every CNN detector found the face.
Three faces in frame. MediaPipe found two. RetinaFace, SCRFD, and YOLOv11 each found three. The extra detection shows up near the left edge.
Look 6 was designed in 2020 to break CNN-based recognition by disrupting, in Harvey’s words, “the key geometric relationships of facial components.” The detectors disagree. MediaPipe found one face. RetinaFace and SCRFD found two. YOLOv11 found three. The bounding boxes vary in size and placement more than on any of the earlier looks.
detect_faces_compare.py runs all four separately, one model per output image. detect_faces_overlay.py composites everything onto a single image with a legend.