As most people my age would do, I was trying to show my kids the original 1978 Superman film to introduce them to my favorite superhero, when my 4 year old wondered out loud why no one recognized Clark Kent as the Man of Steel.
That got me thinking about superhero’s secret identifies and their effectiveness against modern face recognition technology.
Chances are, if a 4 year old can recognize someone, so too can a machine learning model. So I decided to put it to the test.
Naturally, my first test was to see if I might train a model to recognize Superman as Clark Kent. In the films, his disguise works flawlessly. No one seems to be able to look at Clark’s face and recognize him as Superman. In my imagination, this was because no one ever really got a good look at Superman (because he was always flying around and what not), so it was hard to recall what he looked like. But it’s getting more and more difficult to suspend my disbelief in the face (haha) of modern AI.
Today, just about any media company could run face recognition on all their content and notice that the Daily Planet’s second best reporter was an alien from Krypton. Here’s how I put that to the test:
First, I looked for a picture of Clark Kent in full disguise.
I copied the URL to the photo and opened up an instance of Facebox on my computer. I opened the console in my web browser, scrolled down to the /teach
end point and used the little demo tool to teach Facebox this picture. I gave it the label Clark Kent.
Then, to test it, I opened up the live demo section of the console and pasted a URL to a screen shot of Superman hanging out looking his sharpest (how does he get that curl?):
It immediately recognized him. I only trained the face recognition model with one example! Things aren’t looking good for Superman’s secret identity. Maybe he should change his hair?
Nope — that didn’t work either.
So I decided to test other superhero’s secret identities to see how they’d hold up against Facebox.
How about Kara Danvers?
Nope.
How about Oliver Queen?
Taught Facebox with this image, let’s see the results:
Nope — still recognized him. Even with a mask and a hood.
Facebox and other good face recognition systems will be able to understand the structure of a face, regardless of fake glasses, masks, or obscuring of the hair.
Deep learning models are vaguely inspired by information processing and communication patterns in biological nervous systems. The neural net looks for other ways to recognize a face, similar to how a human does it. That’s why these disguises can’t fool a deep learning model.
I was actually a bit surprised it was able to recognize these people only being trained with a single photo so well. In fact, you may not believe me at all, and I wouldn’t blame you. That is why I’m encouraging you to try it for yourself. Download Facebox, right click on the training images above and save them to your hard drive, then, follow the instructions on teaching a face in the Facebox console. After teaching, open the live demo in the console and test it with any images you find on the internet (or in this blogpost).
Enjoy.
Written by
Aaron Edell
Co-founder and CEO Machine Box, Inc. | Machine Learning Superfan | Agile Product Owner | Author | Father | Amateur Programmer
Towards Data Science
Sharing concepts, ideas, and codes.