← All articles

Under the hood

Faces on avatars: how Oracul links accounts that carry no name

Half of all accounts online are signed with a username, not a name. How comparing faces on avatars helps tell whose account it is, why photos never leave the server and where matching fails.

A name is the namesake filter's main argument, but many accounts have none: just a username and an avatar. If the face on the avatar is the same as on the person's confirmed profile, that is strong evidence the account is theirs. A different face is strong evidence against.

How it works

Oracul downloads the avatars of found accounts, detects faces with the OpenCV YuNet model and turns each face into a numeric fingerprint with SFace. Fingerprints are compared with each other; the similarity threshold is 0.5. Accounts with the same face are grouped into a "person".

The reference

Comparison needs something reliable. References are high-confidence accounts of the seed usernames, or accounts the analyst marked "this is them". Their faces are the sample everything else is checked against.

  • Same face as the reference: the account is accepted even without a name.
  • A different face in a later search round: the account is rejected.
  • No reference and different faces in later rounds: they cannot be attributed to the target and are rejected.

One exception: a later-round account with a different face but interests that match the seeds is kept, because people change avatars.

Photos never leave the server

Both models run locally. Avatars are not sent to outside recognition services and are not searched in face databases. Oracul does not determine who is in a photo, only whether two faces from found accounts match.

Where matching fails

  • No face on the avatar: a logo, a meme, a cat.
  • The face is too small, in profile or half hidden by glasses.
  • The person's appearance changed over the years between avatars.

Read next

Run your first scan today

5 free scans every month. No card required.