With talks of misinformation in the news constantly, we thought it would be beneficial to create a simple online service that can serve as the first line of defense against the spread of fake news.

What it does is a simple web service which allows a user to input a website, then after running a quick analysis of the content of that website will redirect them to a results page containing whether or not the information on that page is real or generated. It runs an analysis on both the text on the website as well as images (deepfakes).

How we built it

We use a flask web app for the front-end to retrieve a url from the user. We then extract the content (e.g. text and images) and run those through two separate neural networks, the first designed to determine the probability of text being ai generated, and the second designed to classify an image as a deepfake or not.

For the text analysis network, we are essentially reversing a gpt-2 text generation neural network and having it simulate an output based on the context from the website the user provided. We then run a statistical analysis on the probability of the website's text being generated by a similar network.

For the deepfake detection network, we use an xception classifier network trained on Google's FaceForensics++ dataset.

Once our data is retrieved we use flask's jinja2 template library to dynamically create a results page, then serve that to the user.

Everything is running on a ubuntu vm instance on google cloud.

Challenges we ran into

  • Figuring out how to create/serve dynamic webpages
  • Getting everything set up on google cloud
  • Determining best metrics to account for when checking if content is real vs. artificially generated
  • Setting up our domain on time

Accomplishments that we're proud of

  • Getting the server running
  • Figuring out the detection part
  • A pretty web page

What we learned

  • A lot about flask and dynamic websites
  • A lot about neural networks and classification
  • How to create an efficient workflow when there are multiple team members

What's next for

  • Fixing minor bugs
  • Get SSL/HTTPS working with flask
  • expanding compatibility for video
  • fixing the redirect issues with our domain name!
Share this project: