Facial recognition

Facial recognition

Introduction

This page provides more detailed information about the two main features of facial recognition:

  1. Face detection – detecting and identifying faces on images.

  2. Person management – managing identified persons and linking them to detected faces.

Face detection

Ingest / Reharvest

During ingest or reharvest, faces are automatically detected in preview images and stored as metadata. This only happens when explicit consent has been given, see Facial recognition | Consent

For each detected face, the system attempts to match it with an already defined person (only when the Persons plugin is active. If a match is found, the person is automatically assigned to the face.

The more persons that have been created in the system, the higher the chance that a detected face can be matched automatically.

Metadata model

The field Ai.Faces provides an overview of all recognised faces in the image and the optionally linked person for each face. See Metadata 26.2 | Ai for a detailed description of this field and its subfields.

Consent

Faces are only detected on a record if explicit consent has been granted. This can be done by setting the record metadata field Governance.Consent.FacialRecognition to the value Allowed. If you omit the value or set it to Disallowed, the system will not perform facial recognition. To enable face recognition on a record later, set the value to Allowed and perform a reharvest to detect faces. Conversely, if you want faces to no longer be recognized, you can change the value to Disallowed. Faces and associated person links will then be automatically removed from the record and will no longer be detected during a reharvest.

Person management

Each recognised face can optionally be linked to a person. Persons can be created, updated, and deleted using the following REST API endpoint:

https://<Your MediaHaven URL>/mediahaven-rest-api/v2/persons

Metadata model

Persons are modelled as records in MediaHaven, using their own dedicated record type Person.

See the https://integration.mediahaven.com/mediahaven-rest-api/v2/api-docs/index.html#mediahaven-rest-api-manual-persons documentation for full details on operations and the data model.

Rights management

Every user has access to all persons within their own organisation, or to all organisations if the user has the function ADMIN_VIEW_ALL_ORGANISATIONS. To create or edit a person object, the user needs general write permissions, and to delete a user, general delete permissions are required.

Create

When a person is created, the system attempts to identify and link this person to other faces in the system. Faces that are already linked to a person or for which the link has been manually removed (Ai.Faces.Face.Person.AiLinked=false) will be excluded.

Update

When a person’s name is updated, this change will automatically be reflected on all faces linked to that person.

Delete

When a person is deleted, the person will also be removed from all faces linked to that person. Optionally, the faces themselves can also be deleted.

Assign persons to faces

Faces for a record can be assigned to or unassigned from a person using the following REST API POST endpoint:

https://<Your MediaHaven URL>/mediahaven-rest-api/v2/records/:recordId/faces

See the https://integration.mediahaven.com/mediahaven-rest-api/v2/api-docs/index.html#mediahaven-rest-api-manual-record-faces-update-face-person-links-for-a-record documentation for more information.

Delete faces

A face can be deleted from a record using the following REST API DELETE endpoint:

https://<Your MediaHaven URL>/mediahaven-rest-api/v2/records/:recordId/faces/:faceId

Note: Reharvesting a record will trigger face detection again.

See the https://integration.mediahaven.com/mediahaven-rest-api/v2/api-docs/index.html#mediahaven-rest-api-manual-record-faces-deleting-a-face-for-a-record documentation for more information.

Background support

Periodically, the following happens in the background

  • Every 15 mins: Recalculate the embedding of a person based on the available faces linked with the person, with a preference for faces assigned by an end-user (the property AiLinked is false)

    • Assign all the not-yet-assigned faces that are close to the embedding of the person to this person