Citizenhacks is all about security and privacy. Our team,, really disliked the idea that companies like facebook scanned our photos to look for faces. They say they're not building a dataset, but they've said that before. So, is the countermeasure.

What it does

The concept is pretty simple. We have a simple html and css frontend website, that connects to a Python flask app. This flask app takes an image, uses a library to detect the faces, and then adds a mask to the regions of the image that are faces. This image then acts as an adversarial image to computer vision networks; it's designed to mess up the network. However, to the naked eye, the added noise from the mask is just about undetectable.

How we built it

The stack is HTML and CSS from the frontend, handled by Amanda. Max was setting up the Flask application and connecting everything together, while Sinclair and Amar worked on the image processing in Python.

Challenges I ran into

Originally, we wanted to have our own internal face detection neural network that would act as our "evil" network. That way, we could create custom adversarial examples trained to fool that network. However, we encountered an amazing amount of issues. NVIDIA drivers, AWS restrictions, GCP restrictions, training time limitations, compatibility issues, and many more. The final nail in the coffin was when our face detector yielded meaningless outputs. So, we opted for someone else's face detector, and just used that to establish regions in which to add a gaussian noise mask.

Accomplishments that we're proud of

Our team met and bonded at the event, and we're all proud that we held together throughout the whole event. We have one high school student, two undergrads, and one masters student, split accross 3 schools, so we're quite diverse.

On the technical front, we learned a lot about image manipulation in python with numpy, pillow, opencv, and matplotlib. Our flask app is quite performant, and our GUI is a custom job.

What we learned

Integrating flask with a frontend Image Processing Facial Detections GAN networks Creating adversarial examples using neural networks to fool those same networks.

What's next for could be improved in many ways. A custom face detection model would allow us to target faces accurately, and tune the images so they're brutally hard for networks to predict correctly. Our UI could be a little bit more modern, with some flashy javascript. We could also add custom features, like only masking certain faces. This could be extrapolated to other security issues as well, such as street addresses, liscense plates, etc. As an idea, offers an invaluable privacy service in this increasingly data-driven world.

Share this project: