Exploring fake video synthesis with Artificial Intelligence
Take a guess which one of the following faces are real and which of them have been artificially generated by a program? The girl on the left, the guy on the right, or the kid in the middle?
Actually, all three are fake – these images have been generated by NVIDIA’s progressive adversarial network; and these people do not exist. You may check out more such images at the thispersondoesnotexist website.
If these seem impressive enough – wait till you find out more. Not only is it possible to create completely imagined up faces, the same technology enables you to paste your face onto someone else's and create completely fake videos. A quick search led me to few more such videos of famous personalities, ranging from Barack Obama to Nicolas Cage.
Being a research engineer at Silversparro- a deep learning technology startup- I could not resist the temptation of trying the technology myself. Surprisingly, creating DeepFakes of Indian celebrities was easier than I expected.
It's not hard to find some open-source implementations for creating DeepFakes. So, the biggest effort was collecting large number of high-quality videos and images, of the wanted celebrity, for training the models.
Let me first briefly describe the basic principle of GANs, or General Adversarial Networks. GANs are a Deep Learning approach, which is behind DeepFakes. These are simply a combination of two networks - the "Generator" and the "Discriminator"- competing against each other. The Generator creates a fake image which the discriminator tries to classify as fake or real. If the generator can fool the discriminator, weights associated with the discriminator are tweaked, and if the discriminator identifies a fake the generator weights are tweaked further. In this way, the generator keeps on getting better and better at generating images that are convincingly similar to the training data. Eventually, the images generated are good enough to come close to beating the discriminator and are highly realistic to the human eye.
The general principal of GANs has been called the "coolest ML idea in 20 years", and has wide ranging applications. It is also an entire field of research. One can learn more about GANs here and here.
So, for my purpose I used a modification of GANs called pix2pix, documented here and here. There was a fair amount of struggle in getting these networks to run but I did manage to make them work for my task.
Here is one of the very initial results I got for generating DeepFakes of our prime minister – Mr. Narendra Modi.
The quality improved with additional images, but I realized that as my source videos had variety of backgrounds – the generated background was noisy as well. By choosing images of similar background I was able to get less noisy background but as I had less no. of such images and hence features of the face were less sharp.
I then tried swapping Mr. Modi's face on other celebrities with decent results.
I ended up swapping with the face of CK Louis as I figured, the closer the physical structure - easier it is to swap.
The results were not perfect but certainly impressive. With some more effort - the results would have been even better.
It makes me wonder, if the movies in the future will cast actors with AI generated faces - best suited to the role and the character. Or perhaps, one might be able to get one's own face copied over an actor in a movie or in a video game - each of us having our own personalized version of the video content.
But dangerously, this will make it easier for malefactors to create videos for propagating fake news. AI future will be both good and bad - just hoping all of us are prepared for it.
Leaving you with these two clips of Obama - one of which is real and the other is fake. Good luck figuring out which is which.
Silversparro Technologies aims to help large enterprises solve their key business problems using expertise in Machine Learning and Deep Learning. Silversparro is working with clients across the world for Video Analytics, Computer Vision, Voice automation use cases working for manufacturing, BFSI, healthcare verticals etc. Silversparro is backed by NVIDIA and marquee investors such as Anand Chandrashekaran (Facebook),Dinesh Agarwal (Indiamart), Rajesh Sawheny (Innerchef) etc.
Silversparro is founded by IIT Delhi Alumni – Abhinav Kumar Gupta, Ankit Agarwal and Ravikant Bhargava and is working for clients such as Viacom18,Policybazaar, Aditya Birla Finance Limited, UHV Technologies etc.