FaceClustering
Compares every face image to every other face image, and generates clusters that contain images of the same person. For each image in a cluster, Media Server returns the best matches to other images. You can limit the number of matches that are returned for each image, and exclude matches that fail to meet a specified confidence score.
The only data used to generate the clusters are the face images. Images assigned to the same identifier might be returned in different clusters, and images assigned to different identifiers can be returned in the same cluster. You can therefore use this action to find possible cases where a face image has been assigned to the wrong identifier, or where multiple identifiers represent the same person.
This action only processes face images that have the status "trained", so first you might want to run the action BuildAllFaces.
Type: asynchronous
Parameter | Description | Required |
---|---|---|
clusterthreshold
|
To be included in a cluster, a face image must match all of the other images in the cluster with a confidence score greater than or equal to this value (default 50). | No |
database
|
The name of the database to process (all databases by default). | No |
maxresults
|
The maximum number of matches to return for each image in a cluster. For example, if you set this parameter to 2 , Media Server returns the two best matches (by confidence score). |
No |
outputthreshold
|
To be included in the response, a match between two images must have a confidence score greater than or equal to this value (default 50). | No |
syncdatabase
|
A Boolean value that specifies whether Media Server synchronizes with the database before beginning the action, to ensure it has the latest training (default true). | No |
Example
The following example action clusters all of the face images in the "people" database:
/action=FaceClustering&database=people
Response
This action is asynchronous, so Media Server always returns success accompanied by a token. You can use this token with the QueueInfo action to retrieve the status of your request.
The following XML is an example response from the QueueInfo
action. It shows a cluster of three face images (all of which are assigned to different identifiers), and a cluster containing a single image.
<autnresponse> <action>QUEUEINFO</action> <response>SUCCESS</response> <responsedata> <actions> <action> <status>Finished</status> <queued_time>2021-Jan-13 12:08:31</queued_time> <time_in_queue>2</time_in_queue> <process_start_time>2021-Jan-13 12:08:33</process_start_time> <time_processing>0</time_processing> <process_end_time>2021-Jan-13 12:08:33</process_end_time> <clusters> <cluster> <face> <database>people</database> <identifier>JamesBond</identifier> <imagelabel>A</imagelabel> <match> <confidence>76.33</confidence> <database>people</database> <identifier>JamesBond007</identifier> <imagelabel>B</imagelabel> </match> <match> <confidence>68.17</confidence> <database>people</database> <identifier>SeanConnery</identifier> <imagelabel>C</imagelabel> </match> </face> <face> <database>people</database> <identifier>JamesBond007</identifier> <imagelabel>B</imagelabel> <match> <confidence>76.33</confidence> <database>people</database> <identifier>JamesBond</identifier> <imagelabel>A</imagelabel> </match> <match> <confidence>73.86</confidence> <database>people</database> <identifier>SeanConnery</identifier> <imagelabel>C</imagelabel> </match> </face> <face> <database>people</database> <identifier>SeanConnery</identifier> <imagelabel>C</imagelabel> <match> <confidence>73.86</confidence> <database>people</database> <identifier>JamesBond007</identifier> <imagelabel>B</imagelabel> </match> <match> <confidence>68.17</confidence> <database>people</database> <identifier>JamesBond</identifier> <imagelabel>A</imagelabel> </match> </face> </cluster> <cluster> <face> <database>people</database> <identifier>JohnSmith</identifier> <imagelabel>D</imagelabel> </face> </cluster> ... ... </clusters> <token>...</token> </action> </actions> </responsedata> </autnresponse>