Face Blur is an open source project for protesters. Face Blur uses OpenCv and Harr Cascade Algorithm to bacth detect identifiable faces in any photos, and then blur the detected area. The script will automaticall read all the photos in the desired directory, make copies, process all the photos and export the blurred versions and keep the orginals.

This project was designed to streamline photo editing process in order support and aid photo journalism while protecting protesters' identities and privacy.


Protests erupt since the killing of George Floyd. Photographers, journalists and many protesters are sharing images and videos of the protests they attended for documentations and spreading awareness. Many have raised concerned on the internet to encourage people to blur any identifiable faces in their photos and videos to protest protesters identity.

The most recent talked-about example is the case of Edward Crawford. Crawford was photographed at a protest in Ferguson in 2015 after the killing of Michael Brown. Crawford was picture in the middle of throwing a flaming canister. A year later, Crawford was charged assaulting a police officer based on the photo taken of him, even though he claimed that he was throwing it away from the crowd, not towards the police. Crawford died in 2017, and his death was ruled as suicide. Although his family and many other have suspicions about his death, along with the deaths of six other men who were also tied to the protests back in 2015.

Image of Edward Crawford, sourced from Twitter


Even though it’s not clear that whether Crawford’s death and the photo are directedly linked, this has raised concerns for protestors, and many have voiced their concern on social media to encourage people keep the protesters identities private. AFP photo editor Eric Baradat has argued that, “You have to humanized the protest and the struggle”, and “If you don’t have the faces of the protesters in 1968 in Prague, you don’t have a story. If you don’t have the people trying to take down the wall in Berlin in 1989, you don’t have a story. If you don’t have the faces of the protesters in Tiananmen Square, you don’t show to the rest of the world the reality of the situation” (The Cut, 2020)

However, in my opinion, the real question is whether publishing these photos and videos could cause harm to the protestors. There is no doubt these photos and images with identifiable faces could potentially put protesters at ricks for criminal charges as we’ve seen in Crawford’s case. There are also people on Twitter saying that they have been harassed by police based on the contents posted on their social media. It is no secret that law enforcement have been scouring online platforms to monitor and identify individuals in their interest. From The Cut, “A trove of emails obtained by the website The Appeal in 2019 showed that from late 2014 to early 2015, NYPD officers sent around pictures of protesters taken by undercover cops, and social media posts from Twitter.”

I think in this case, it is neccesary to protect protesters' identity in the best way we can. To begin with, it is clear that reveal their identity can potentially cause their harm. Other than the risk of being charged, people have been tweeting online saying there are other extremist groups following protesters home. Hence, having their faces posted online can be potentally dangerous. Other than the harm these photos and videos may cause, we ought to have the decency to ask others for consent to take photographs and distribute them in public, even if it's not legally required.


I was inspired by Everest Pipkin's Image Scrubber, a web and mobile based app that allows people to upload photo, scrub the metadata and manually blur or paint over each face in the photo. I also loved how elegant and clean the project was built. My only concern was that it would still take considerable amount of time for anyone to go through hundreds or thousands of images that they have taken. I then decided to create a tool could process and edit photos in batch so that people can share their documentations and spread awareness in a timely manner.

The Script

The Script uses OpenCV to read and process images. With the Haar Cascade Facial Detection Library, I chose the `frontal_alt` model for facial detection and tested the parameters for the best resault on my test sets of photos. I set the Scale Factor to 1.05 and minNeighbors to 2. Based on my testing, these are the parameters gives the best results. Based on my test set, setting the Scale factor too high will result in missing faces that sometimes with glasses or a slight profile and head tilt. Any number smaller than this will result in miss identifying objects as faces.

Example of missing face:

After adjusting all the parameters, I then worked on blurring the dectected regions in the photos, and tested on different images. I then streamlined all the steps into a signle fuction and created a for loop to read all the images in one directory, creat copies, detect and blur faces in all the photos and export the edited copies into a different `output` directory. This scirpt allows anyone to batch edit any amount of photos in no time and keep the originals as well.

All images used in the script are found via Google Image search, and are used for demo purpose only.