-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(server): refresh face detection #12335
Conversation
d13f1e8
to
7b19634
Compare
84caf4d
to
b23d5f5
Compare
seems like time to put all the Refresh… options in a sub-menu |
Hey. Would this also work when we change the facial recognition model? Like from buffalo_l to antelopev2. I suppose not? |
No, there are a few more things that would need to happen to let you switch without resetting everything. But it's a big step toward that. |
Will this be in the next update? |
b23d5f5
to
0dcca3f
Compare
handle non-ml faces
0dcca3f
to
96923f3
Compare
30c9569
to
1beead2
Compare
1beead2
to
adf11cb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Can you add a TODO to not use undefined in the API (for force)? Imo we should migrate to a more explicit API in the future instead of using undefined for a third state.
Do you know how to make the PR label validation check happy? |
Description
This PR allows re-running face detection without clearing face data. This can be done on one or more assets with the "Refresh faces" option, or for all assets in the job panel with a new Refresh button.
It compares existing and new bounding boxes for an asset with the IoU metric. If a new bounding box is above the IoU threshold, it's considered a duplicate of an existing face and skipped. If an existing face doesn't appear in the new set of bounding boxes, it's removed.
This IoU-based matching has an additional benefit in allowing faces from non-machine learning sources to be associated with an embedding. This means that detected faces can match against people listed in face metadata instead of creating duplicate people.
To make the three options of Reset / Refresh / Missing work with the current API, a distinction is made between
force
beingundefined
andfalse
. The former maps to Refresh, and the latter maps to Missing.Testing: