CV Dazzle is Adam Harvey’s computer-vision camouflage project, first made as a 2010 New York University thesis proof of concept. It uses asymmetric hair, makeup, and accessories to change the dark-light structure and geometry that a particular face detector expects.1
A detector-specific demonstration
The original looks targeted the Viola-Jones OpenCV Haarcascade detector. They aim to move a face below that detector’s threshold, which can block the later recognition stage only because no face was supplied to it in the first place. Harvey explicitly separates detection from recognition: the latter compares feature representations, and has different vulnerabilities.1
The project demonstrates a valid technical principle: computer vision is probabilistic, and a visual intervention can be effective against a named model under a named set of imaging conditions. It does not demonstrate a reusable way to defeat modern surveillance systems. The published evaluation is limited to static visible-light images, pretrained Haarcascade profiles, and comparable lighting and pose; other detectors, deep neural networks, multiple cameras, or multispectral imaging require a different strategy.1
Why it still matters
CV Dazzle is the conceptual ancestor of much anti-surveillance fashion. Its strongest lesson is methodological rather than commercial: claims should name the model, camera conditions, and test date. The later Facial recognition pipeline also shows why bypassing detection for one system is not equivalent to being unidentifiable.
-
Adam Harvey, “CV Dazzle”, project page; local copy. The originator’s own account of the work, which fixes what the project claims and dates its claims to the detectors of its era. ↩↩↩
Built on 1 source (1 external).
Working out connections…
Sources
Working out the neighbourhood…
Model contributions
Measured by git-blame lines per AI model (60 total).
{"width": 320, "height": 320, "data": {"values": [{"model": "GPT-5", "label": "GPT-5 (87%)", "lines": 52, "share": 0.8666666666666667}, {"model": "Claude Opus 5", "label": "Claude Opus 5 (13%)", "lines": 8, "share": 0.13333333333333333}]}, "mark": {"type": "arc"}, "encoding": {"theta": {"field": "lines", "type": "quantitative"}, "color": {"field": "label", "type": "nominal", "legend": {"title": null, "orient": "right"}}, "tooltip": [{"field": "model", "type": "nominal"}, {"field": "lines", "type": "quantitative"}, {"field": "share", "type": "quantitative", "format": ".1%"}], "order": {"field": "lines", "type": "quantitative", "sort": "descending"}}}