A while back I discovered the CV Dazzle project which provides fashionable guidelines for subverting face detection:
A key component of these styles is the use of hair to obscure the face and trick the detection software. I have been growing my hair for a couple years now and I wanted to see how effectiviely I could thwart face detection with only the hair on my head and inspiration from the CV Dazzle guidelines. I was curious if the more extreme aspects of CV Dazzle looks were truly required to trick cameras or if just long, unconventionally placed hair would be enough.
I tested against three facial recognition tools: OpenCV, Betaface and Face++. OpenCV is the most naive of these tools and it was only able to detect my face in the control portraits. OpenCV is the system that CV Dazzle derives its name from and was used to determine what an "anti-face" looks like.
Betaface and Face++ are much smarter than OpenCV and quite difficult to trick. While Betaface and Face++ were succesful in detecting a face, they were only somewhat succesful at extract metadata from the face being analyzed. I would be interested in seeing a test of these face detection tools against the original models for CV Dazzle.
Regular, hair down
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
True |
|
|
|
|
Betaface |
True |
36 |
Male |
White |
Neutral |
Face++ |
True |
36 |
Male |
White |
Neutral |
Regular, hair up
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
True |
|
|
|
|
Betaface |
True |
24 |
Male |
White |
Neutral |
Face++ |
True |
32 |
Male |
White |
Neutral |
Moptop
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
False |
|
|
|
|
Face++ |
False |
|
|
|
|
This is the only hairstyle that all three face detection tools were unable to detect. This is also the only image that doesn't contain any trace of my eyes which is probably why it tricked the more sophisticated tools in addition to OpenCV which failed to detect faces when only a single eye was shown. Unfortunately it is really hard to see while rocking this hairstyle.
Single Eye
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
True |
46 |
Female |
White |
Neutral |
Face++ |
True |
29 |
Male |
Asian |
Sadness |
Rabbit Foot Devilock
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
True |
31 |
Male |
Asian |
Neutral |
Face++ |
True |
30 |
Male |
White |
Neutral |
Dancing Jellyfish
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
True |
33 |
Male |
Asian |
Neutral |
Face++ |
True |
29 |
Male |
Asian |
Neutral |
Predator
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
True |
51 |
Male |
Mideast |
Neutral |
Face++ |
True |
32 |
Male |
White |
Neutral |
Emo-Nelly
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
False |
|
|
|
|
Face++ |
True |
31 |
Male |
White |
Sadness |
Emo
|
Detected |
Age |
Gender |
Race |
Expression |
OpenCV |
False |
|
|
|
|
Betaface |
True |
46 |
Female |
White |
Neutral |
Face++ |
True |
26 |
Male |
White |
Neutral |
While OpenCV consistently fails and Betaface/Face++ consistently succeed it is interesting to examine some of the metadata they report.
|
Actual |
Betaface |
Face++ |
Age |
26 |
33.3 |
29.6 |
Male |
9 / 9 (100%) |
5 / 9 (56%) |
8 / 9 (89%) |
White |
9 / 9 (100%) |
4 / 9 (44%) |
6 / 9 (67%) |
Despite my hair, the data is fairly accurate. While many projects may use the open source OpenCV face detection tools, it's clear there are at least two face detection tools on the market that have no problem seeing past my wildly arranged hair. I guess I will need to pull out some hair dye if I want to stay undetectable.