Inspiration
Generative Adversial Networks(GAN's for short) has been one of the most exciting fields in the Area of Machine Learning in the last 10 years.It generates new artificial data mimicking a real data distribution.The Results have been impressive producing samples which cannot be differentiated from the "Original Data". Hence,we can take advantage of this property to Reconstruct Media from partial/noisy samples.
What it does
The Network consists of 2 Main Parts:-
- Generator which Creates the Artificial Data
-Discriminator which learns to Distinguish between Real and Artificial Data
We feed in images of more than 100,000 Faces from the [CelebFaces Attributes Data Set](http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) to the Discriminator of the GAN .The Generator creates images from a latent 1-D Vector. It continuously tries to "generate" realistic Images so as to "fool" the Discriminator into believing it was a sample from the original data set.
IN CCTV Footage,we may not receive clear images of individuals/objects in the feed.This is a major issue in For Example:- identifying crime suspects due to these noisy samples.Using GAN's we can generate a possible samples of the Individual even with overwhelming noise in our Input data set this Unsupervised Deep Learning Technique .
Apart from Removing Noise,our Network can also reconstruct Complete Images from a Sub set of the Data.
How we built it
The Code was written in Python Github Repo.Since,We make use of Concepts in Linear Algebra and Deep Learning,we made use of Numpy,Tensor Flow ,Theano and Keras Library.We also make use of the PIL Library and OpenCV for pre processing and Loading the images in the required format.
Challenges we ran into
Some of the Major Issues was:-
1)We did not have a GPU installed in any of our Systems.Training Speed was a Major Issue and we had to make use of Smaller Batch Sizes and Training Smaller Data Sets .
2) We had only 36 Hours to Complete Our Hack.Hence,combined with the Vast amount of Time in Creating and Training the Deep Network ,it allows us limited Number of Combinations to pick the Most Optimal Network Structure for Our Particular Application.
Accomplishments that we're proud of
Ability to Implement a variant of the state of the art technique in Deep Learning.
The Concepts are very involved and required multiple iterations of re-reading research publications and tutorials on how the Network Functions.
What we learned
High Order Concepts of Linear Algebra ,Probability ,Computer Science being Strengthened by implementing the Given Network.
While we had a vague familiarity with Deep Learning Libraries,this Allowed us to gain practical proficiency while implementing it for this Hack.
Nuances and Differences from other Concepts of Machine Learning such as Auto Encoders,Recurrent Neural Networks ,Convolutional Neural Networks etc
What's next for DeepFaceGen
While we obtained a Decent Accuracy within our Time Constraints,By Using GPU's and a Better Network Architecture can obtain better results.



Log in or sign up for Devpost to join the conversation.