RTFace is a framework that selectively blurs a person's face based on his identity in real-time to protect user's privacy.
It leverages object tracking to achieve real-time while running face detection using dlib, and face recognition using OpenFace.
The client includes a training webpage to add/delete new users,
a desktop GUI as the video source stream,
and a broadcast
webpage showing the denatured video stream.
To train a face to be recognized, go to https://hostname:10002. You'll need to accept self-signed certificate.
To change a user's policy, send HTTP post form data in the following format to http://hostname:10002
http --form POST <hostname>:10003/policy uid=<email-id> policy=<"showFace" or "blurFace">
Don't use camera-source's UI to add user, control user's policy, nor delete uesr.
Instead, to add user, you should use training webpage.
To control user's policy, use policy web api.
To delete a user, log in training web page and click "Clear". A user is no longer registered with the system when there are no his/her training images.
For the trainer web page, if you're running the server inside a container, Google Auth doesn't work due to domain name requirement. Just use email to log in.
The video source desktop app and the training webpage should be
accessed by two different machines (e.g. desktop app on a laptop, training
webpage through a smartphone), as a single camera typically cannot be accessed by
two programs simultaneously.
please ask the user to turn the face slightly to the right, left, up, and down to capture different angles.
RTface uses a frontal face detector, a profile face (a face that has completed turned 90 degree to the left/right) won't
have too much luck to be detected.