In October 8, 2007, Interpol released a photo of a man suspected of paedophilia with boys, see Interpol link. The investigation was named ‘Operation Vico’. It was a unique case, because the person on the photos had masked his identity by digitally distorting his face. That is where he got his nickname, ‘Swirly Face’, see image below.
What he didn’t know was that the swirling distortion actually does not destroy his face, it just distorts it and it is possible to undo the distortion. In this post I will deconstruct the distortion and reveal the face behind the mask myself.
Even though Interpol, together with specialists at the Bundeskriminalamt (BKA) in Germany, managed to undo the swirling distortion, they still had no leads. At this point, all Interpol had to do was to identify the person. This proved to be very difficult.
For years, images of this man sexually abusing children have been circulating on the Internet.
We have tried all other means to identify and to bring him to justice, but we are now convinced that without the public’s help this sexual predator could continue to rape and sexually abuse young children whose ages appear to range from six to early teens.
Interpol turned to the media, as a kind of crowdsourcing. After the restored photo was made public, it took mere three days until the person in the photo was identified as Christopher Paul Neil (link to Interpol article). Ten days from the first release of the swirled man he was arrested in Thailand (link to Interpol article).
What was interesting to me was the lack of information on how Interpol/BKA aactually managed to reverse the swirl. I just couldn’t resist the challenge, so I decided to give it a try myself.
Analysing the twirl
My first thought was to create my own filter in Matlab. Why? Because I suspected that I needed to have a ‘live’ update of the modifications. I would have used polar coordinates and control each pixel using the distance to the center pixel. I wrote some code, but I quickly decided against the idea. I might do this some day though.
My next thought was to use Photoshop, which has a filter called Twirl that does this (Filter > Distort > Twirl).
By looking at the filters that Photoshop provides, Twirl is the only (!?) filter that is lossless. He could have picked any other filter and he would most probably never been caught. The most used masking on TV shows such as ‘Cops’ is pixelation. When using pixelation, the information is destroyed, there is no way to get the data back. I guess it was too obvious to use pixelation for Mr. Swirly, he is an ‘artiste’.
I began by trying to reverse the direction of the twirl, blindly. After a couple of unsuccessful attempts, I decided to analyse how the twirl effect actually is applied. It is quite fascinating actually. As a side note, the twirl is kind of the analogue of layers in a laminar flow.
To reverse the twirl you have to know a couple of things
1. Area of interest (selection area)
2. Center of the twirl (selection area)
3. Amount of twirl (in filter options)
In order to get a better look at the effect the distortion has on the image, I created a simple template which resembles the background pattern in the photo. I then resized the template until I was able to align the outer rim of the twirl in the photo.
One issue that I realised after a couple of trial and errors, was how to center the selection. The center is not actually at the bright part of the eye, it is the dark part of the eye, slightly off-centered. This makes a huge difference: Moving the selection of the area slightly changes the end result in a big way. In numerical analysis, this is called a ‘stiff system’ or ‘poorly conditioned matrix’. A small change in the input, results in a large error.
To appreciate how the untwirl is made, see the below animation
There are other images scattered on the web, but practically all of the links are dead. I found only two extra photos of the untwirled face. For your benefit, I added them below with my added twirl, to show how they would look to Interpol and to maybe try for yourself. The originals were of low resolution, but I enlarged the photos and applied the twirl. This makes the images appear to have a slightly higher resolution, because of the sharp edges of the twirl.
Here comes a challenge for you. What does the below image say?
Christopher Neil Paul, a twisted man.
Additional notes (Oct 28 2015)
It has come to my attention that the last episode of the original CSI series, which is a made-for-TV-movie, features a swirly face character. This is a obvious nod to “Swirl face” and I had to check it out and see if I could deconstruct that swirl too. On the other hand, because of it being a TV show, I fully expect the science to be totally off. I mean, it is the same CSI that is able to identify a person in another person’s eye. Come on, that is just bad.
The 2h movie marks the end of a 15 year run. That’s a long time for a tv series. CSI has spawned a couple of spin offs with CSI: Miami, CSI: New York and now the latest instalment CSI: Cyber, a series focused on IT forensics investigations. I’ll be coming down on that series soon, trust me.
One interesting difference is that the “CSI swirl” is applied on a video. The swirl is also moving with the face. This should make no difference, we just take a screenshot of the video and start unswirling away.
I tried, but quickly realized that I should give up. Despite all my efforts, the swirl is just not the same as the real swirl. Later on in the episode it is revealed that the swirl also contains a fingerprint. Ah, there we go, the CSI effect at work. This is what we learned to expect in the “CSI world”. This is also one of the reasons why I dislike the show. Is it too hard to make it interesting while using real science? I think not, just look at F.B.I. Files, Medical Detectives, Dr. G: Medical Examiner or Air Crash Investigation.
Needless to say, this does not hold up in court.