Replies: 1 comment 3 replies
-
There are two parts to facial recognition. What you described is the first part where new faces are matched to a new or existing person. The second step runs as a nightly job to go through existing unmatched faces and try to find a match for them. This separation is done for performance reasons since the second step is more expensive. The most typical case is that the other faces of the person are also queued and hence assigned the person. In cases where this isn’t true, the nightly job cleans this up. It’s possible to assign the group of matched faces, but it messes with the clustering algorithm somewhat. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The bug
I'm raising this as a bug, as this behavior is, in my opinion unexpected. It tripped me up, at least:
When the person service creates a new person upon reaching the
minFaces
threshold (currently 3), only the newest (minFaces
-th) face and thus picture is associated with the newly created person.This leads to cases where there are more than
minFaces
present for a person, but the firstminFaces-1
pictures that person is visible on are not associated to that person.When running the face detection / face recognition tasks manually for missing images, the older pictures are also assigned to the person, but that requires manual intervention by an instance admin.
The OS that Immich Server is running on
Official Docker container
Version of Immich Server
v1.105.1
Version of Immich Mobile App
n/a
Platform with the issue
Your docker-compose.yml content
n/a
Your .env content
Reproduction steps
Relevant log output
No response
Additional information
I'm not familiar with the Immich code base, but the fix could be as simple as using the (up to
minFaces
)matches
in the already present pictures and assigning them to the person during creation of the newperson
.Beta Was this translation helpful? Give feedback.
All reactions