Proof sheet · experimental

Estimating personality from a facial photo

Your photo is compared with composite faces that average people scoring high and low on each Big Five trait, taken from Little & Perrett (2007). A face-recognition model (FaceNet-512) decides which composite of each pair your face sits closer to.

1Get a photo in

One face, looking at the camera, evenly lit. After taking a photo you can crop it down to the face. The photo is processed in your browser and never leaves your device.

2Pick the set of composites

The study built separate composite faces for men and women. Choose the set the photo should be compared with.

Each composite averages just 15 faces of students around 20 years old who, judging by the images, look white (the paper does not report ethnicity). The further a face is from that group, the less the comparison means.

3Develop

Add a photo and pick a composite set first.

How it works

  1. Find the face. A face detector locates the face, rotates it so the eyes are level, and crops it.
  2. Embed it. FaceNet-512, the same model the original Python script uses through the DeepFace library, turns the crop into a vector of 512 numbers.
  3. Compare. The same is done for the composite faces. For each trait, cosine similarity to the "high" and "low" composite is computed, and the higher one wins.

Everything runs locally in your browser; the model (about 45 MB) is downloaded once and then cached. This is a browser port of the original Python script by Luděk Stehlík. It uses a different face detector than the script, so numbers can differ slightly.