swagger: '2.0'
info:
version: 1.0-preview
title: Microsoft Azure Face Client
description: An API for face detection, verification, and identification.
securityDefinitions:
apim_key:
type: apiKey
name: Ocp-Apim-Subscription-Key
in: header
security:
- apim_key: []
x-ms-parameterized-host:
hostTemplate: '{Endpoint}/face/v1.0-preview'
useSchemePrefix: false
parameters:
- $ref: '#/parameters/Endpoint'
paths:
/findsimilars:
post:
description: >-
Given query face's faceId, to search the similar-looking faces from a
faceId array, a face list or a large face list. faceId array contains
the faces created by [Face - Detect With
Url](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl) or
[Face - Detect With
Stream](https://docs.microsoft.com/rest/api/faceapi/face/detectwithstream),
which will expire at the time specified by faceIdTimeToLive after
creation. A "faceListId" is created by [FaceList -
Create](https://docs.microsoft.com/rest/api/faceapi/facelist/create)
containing persistedFaceIds that will not expire. And a
"largeFaceListId" is created by [LargeFaceList -
Create](https://docs.microsoft.com/rest/api/faceapi/largefacelist/create)
containing persistedFaceIds that will also not expire. Depending on the
input the returned similar faces list contains faceIds or
persistedFaceIds ranked by similarity.
Find similar has two working
modes, "matchPerson" and "matchFace". "matchPerson" is the default mode
that it tries to find faces of the same person as possible by using
internal same-person thresholds. It is useful to find a known person's
other photos. Note that an empty list will be returned if no faces pass
the internal thresholds. "matchFace" mode ignores same-person thresholds
and returns ranked similar faces anyway, even the similarity is low. It
can be used in the cases like searching celebrity-looking faces.
The
'recognitionModel' associated with the query face's faceId should be the
same as the 'recognitionModel' used by the target faceId array, face
list or large face list.
operationId: microsoftAzureFaceFindsimilar
parameters:
- name: body
in: body
description: Request body for Find Similar.
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/FindSimilarRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of the most similar faces
represented in faceId if the input parameter is faceIds or
persistedFaceId if the input parameter is faceListId.
schema:
$ref: '#/definitions/SimilarFaces'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Find similar results example:
$ref: ./examples/FindSimilar.json
summary: Microsoft Azure Post Findsimilars
tags:
- Findsimilars
/group:
post:
description: >-
Divide candidate faces into groups based on face similarity.
* The
output is one or more disjointed face groups and a messyGroup. A face
group contains faces that have similar looking, often of the same
person. Face groups are ranked by group size, i.e. number of faces.
Notice that faces belonging to a same person might be split into several
groups in the result.
* MessyGroup is a special face group containing
faces that cannot find any similar counterpart face from original faces.
The messyGroup will not appear in the result if all faces found their
counterparts.
* Group API needs at least 2 candidate faces and 1000
at most. We suggest to try [Face -
Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface)
when you only have 2 candidate faces.
* The 'recognitionModel'
associated with the query faces' faceIds should be the same.
operationId: microsoftAzureFaceGroup
parameters:
- name: body
description: Request body for grouping.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/GroupRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: >-
A successful call returns one or more groups of similar faces (rank
by group size) and a messyGroup.
schema:
$ref: '#/definitions/GroupResult'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Group example:
$ref: ./examples/Group.json
summary: Microsoft Azure Post Group
tags:
- Group
/identify:
post:
description: >-
1-to-many identification to find the closest matches of the specific
query person face from a person group, large person group, person
directory dynamic person group or person directory personIds array.
For each face in the faceIds array, Face Identify will compute
similarities between the query face and all the faces in the person
group (given by personGroupId) or large person group (given by
largePersonGroupId), and return candidate person(s) for that face ranked
by similarity confidence. The person group/large person group should be
trained to make it ready for identification. See more in [PersonGroup -
Train](https://docs.microsoft.com/rest/api/faceapi/persongroup/train)
and [LargePersonGroup -
Train](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/train).
Remarks:
* The algorithm allows more than one face to be
identified independently at the same request, but no more than 10
faces.
* Each person in the person group/large person group could
have more than one face, but no more than 248 faces.
* Higher face
image quality means better identification precision. Please consider
high-quality faces: frontal, clear, and face size is 200x200 pixels (100
pixels between eyes) or bigger.
* Number of candidates returned is
restricted by maxNumOfCandidatesReturned and confidenceThreshold. If no
person is identified, the returned candidates will be an empty
array.
* Try [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar)
when you need to find similar faces from a face list/large face list
instead of a person group/large person group.
* The
'recognitionModel' associated with the query faces' faceIds should be
the same as the 'recognitionModel' used by the target person group or
large person group.
operationId: microsoftAzureFaceIdentify
parameters:
- name: body
description: Request body for identify operation.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/IdentifyRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: >-
A successful call returns the identified candidate person(s) for
each query face.
schema:
$ref: '#/definitions/IdentifyResults'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Identify example:
$ref: ./examples/Identify.json
summary: Microsoft Azure Post Identify
tags:
- Identify
/verify:
post:
description: >-
Verify whether two faces belong to a same person or whether one face
belongs to a person.
Remarks:
* Higher face image quality
means better identification precision. Please consider high-quality
faces: frontal, clear, and face size is 200x200 pixels (100 pixels
between eyes) or bigger.
* For the scenarios that are sensitive to
accuracy please make your own judgment.
* The 'recognitionModel'
associated with the query faces' faceIds should be the same as the
'recognitionModel' used by the target face, person group or large person
group.
operationId: microsoftAzureFaceVerifyfacetoface
parameters:
- name: body
description: Request body for face to face verification.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/VerifyFaceToFaceRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns the verification result.
schema:
$ref: '#/definitions/VerifyResult'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Verify faces example:
$ref: ./examples/VerifyFaceToFace.json
summary: Microsoft Azure Post Verify
tags:
- Verify
/persongroups/{personGroupId}/persons:
post:
description: Create a new person in a specified person group.
operationId: microsoftAzurePersongrouppersonCreate
parameters:
- $ref: '#/parameters/personGroupId'
- name: body
description: Request body for creating new person.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns a new personId created.
schema:
$ref: '#/definitions/Person'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create new person for person group example:
$ref: ./examples/CreateNewPersonGroupPerson.json
summary: Microsoft Azure Post Persongroups Persongroupid Persons
tags:
- Persongroups
get:
description: >-
List all persons in a person group, and retrieve person information
(including personId, name, userData and persistedFaceIds of registered
faces of the person).
operationId: microsoftAzurePersongrouppersonList
parameters:
- $ref: '#/parameters/personGroupId'
- name: start
description: Starting person id to return (used to list a range of persons).
in: query
required: false
type: string
- name: top
description: >-
Number of persons to return starting with the person id indicated by
the 'start' parameter.
in: query
required: false
type: integer
minimum: 1
maximum: 1000
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of person information that belong
to the person group.
schema:
$ref: '#/definitions/Persons'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
List persons in person group:
$ref: ./examples/ListPersonGroupPersons.json
summary: Microsoft Azure Get Persongroups Persongroupid Persons
tags:
- Persongroups
/persongroups/{personGroupId}/persons/{personId}:
delete:
description: >-
Delete an existing person from a person group. The persistedFaceId,
userData, person name and face feature in the person entry will all be
deleted.
operationId: microsoftAzurePersongrouppersonDelete
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete an existing person example:
$ref: ./examples/DeletePersonGroupPerson.json
summary: Microsoft Azure Delete Persongroups Persongroupid Persons Personid
tags:
- Persongroups
get:
description: >-
Retrieve a person's information, including registered persisted faces,
name and userData.
operationId: microsoftAzurePersongrouppersonGet
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
produces:
- application/json
responses:
'200':
description: A successful call returns the person's information.
schema:
$ref: '#/definitions/Person'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get person example:
$ref: ./examples/GetPersonGroupPerson.json
summary: Microsoft Azure Get Persongroups Persongroupid Persons Personid
tags:
- Persongroups
patch:
description: Update name or userData of a person.
operationId: microsoftAzurePersongrouppersonUpdate
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
- name: body
description: Request body for person update operation.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update person example:
$ref: ./examples/UpdatePersonGroupPerson.json
summary: Microsoft Azure Patch Persongroups Persongroupid Persons Personid
tags:
- Persongroups
/persongroups/{personGroupId}/persons/{personId}/persistedfaces/{persistedFaceId}:
delete:
description: >-
Delete a face from a person in a person group by specified
personGroupId, personId and persistedFaceId.
Adding/deleting faces
to/from a same person will be processed sequentially. Adding/deleting
faces to/from different persons are processed in parallel.
operationId: microsoftAzurePersongrouppersonDeleteface
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete face from person example:
$ref: ./examples/DeletePersonGroupPersonFace.json
summary: >-
Microsoft Azure Delete Persongroups Persongroupid Persons Personid Persistedfaces Persistedfaceid
tags:
- Persongroups
get:
description: >-
Retrieve information about a persisted face (specified by
persistedFaceId, personId and its belonging personGroupId).
operationId: microsoftAzurePersongrouppersonGetface
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: >-
A successful call returns target persisted face's information
(persistedFaceId and userData).
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get persisted face example:
$ref: ./examples/GetPersonGroupPersistedFace.json
summary: >-
Microsoft Azure Get Persongroups Persongroupid Persons Personid Persistedfaces Persistedfaceid
tags:
- Persongroups
patch:
description: >-
Add a face to a person into a person group for face identification or
verification. To deal with an image contains multiple faces, input face
can be specified as an image with a targetFace rectangle. It returns a
persistedFaceId representing the added face. No image will be stored.
Only the extracted face feature will be stored on server until
[PersonGroup PersonFace -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/deleteface),
[PersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete)
or [PersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete)
is called.
Note persistedFaceId is different from faceId generated
by [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
*
Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* Each person entry can
hold up to 248 faces.
* JPEG, PNG, GIF (the first frame), and BMP
format are supported. The allowed image file size is from 1KB to
6MB.
* "targetFace" rectangle should contain one face. Zero or
multiple faces will be regarded as an error. If the provided
"targetFace" rectangle is not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out
of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or
large occlusions will cause failures.
* Adding/deleting faces to/from
a same person will be processed sequentially. Adding/deleting faces
to/from different persons are processed in parallel.
operationId: microsoftAzurePersongrouppersonUpdateface
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/persistedFaceId'
- name: body
description: Request body for updating persisted face.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/UpdateFaceRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update person face example:
$ref: ./examples/UpdatePersonGroupPersonFace.json
summary: >-
Microsoft Azure Patch Persongroups Persongroupid Persons Personid Persistedfaces Persistedfaceid
tags:
- Persongroups
/persongroups/{personGroupId}:
put:
description: >-
Create a new person group with specified personGroupId, name,
user-provided userData and recognitionModel.
A person group is the
container of the uploaded person data, including face recognition
features.
After creation, use [PersonGroup Person -
Create](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/create)
to add persons into the group, and then call [PersonGroup -
Train](https://docs.microsoft.com/rest/api/faceapi/persongroup/train) to
get this group ready for [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).
No image will be stored. Only the person's extracted face features and
userData will be stored on server until [PersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete)
or [PersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete)
is called.
'recognitionModel' should be specified to associate with
this person group. The default value for 'recognitionModel' is
'recognition_01', if the latest model needed, please explicitly specify
the model you need in this parameter. New faces that are added to an
existing person group will use the recognition model that's already
associated with the collection. Existing face features in a person group
can't be updated to features extracted by another version of recognition
model.
Person group quota:
* Free-tier subscription quota:
1,000 person groups. Each holds up to 1,000 persons.
* S0-tier
subscription quota: 1,000,000 person groups. Each holds up to 10,000
persons.
* to handle larger scale face identification problem, please
consider using
[LargePersonGroup](https://docs.microsoft.com/rest/api/faceapi/largepersongroup).
operationId: microsoftAzurePersongroupCreate
parameters:
- $ref: '#/parameters/personGroupId'
- name: body
description: Request body for creating new person group.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/MetaDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create new person group example:
$ref: ./examples/CreateNewPersonGroup.json
summary: Microsoft Azure Put Persongroups Persongroupid
tags:
- Persongroups
delete:
description: >-
Delete an existing person group. Persisted face features of all people
in the person group will also be deleted.
operationId: microsoftAzurePersongroupDelete
parameters:
- $ref: '#/parameters/personGroupId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete a person group example:
$ref: ./examples/DeletePersonGroup.json
summary: Microsoft Azure Delete Persongroups Persongroupid
tags:
- Persongroups
get:
description: >-
Retrieve person group name, userData and recognitionModel. To get person
information under this personGroup, use [PersonGroup Person -
List](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/list).
operationId: microsoftAzurePersongroupGet
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/returnRecognitionModel'
responses:
'200':
description: A successful call returns the person group's information.
schema:
$ref: '#/definitions/PersonGroup'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Get person group example:
$ref: ./examples/GetPersonGroup.json
summary: Microsoft Azure Get Persongroups Persongroupid
tags:
- Persongroups
patch:
description: >-
Update an existing person group's display name and userData. The
properties which does not appear in request body will not be updated.
operationId: microsoftAzurePersongroupUpdate
parameters:
- $ref: '#/parameters/personGroupId'
- name: body
description: Request body for updating person group.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update person group example:
$ref: ./examples/UpdatePersonGroup.json
summary: Microsoft Azure Patch Persongroups Persongroupid
tags:
- Persongroups
/persongroups/{personGroupId}/training:
get:
description: Retrieve the training status of a person group (completed or ongoing).
operationId: microsoftAzurePersongroupGettrainingstatus
parameters:
- $ref: '#/parameters/personGroupId'
responses:
'200':
description: A successful call returns the person group's training status.
schema:
$ref: '#/definitions/TrainingStatus'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Get person group's training status example:
$ref: ./examples/GetPersonGroupTrainingStatus.json
summary: Microsoft Azure Get Persongroups Persongroupid Training
tags:
- Persongroups
/persongroups:
get:
description: >-
List person groups’ personGroupId, name, userData and
recognitionModel.
* Person groups are stored in alphabetical order of
personGroupId.
* "start" parameter (string, optional) is a
user-provided personGroupId value that returned entries have larger ids
by string comparison. "start" set to empty to indicate return from the
first item.
* "top" parameter (int, optional) specifies the number of
entries to return. A maximal of 1000 entries can be returned in one
call. To fetch more, you can specify "start" with the last returned
entry’s Id of the current call.
For example, total 5 person
groups: "group1", ..., "group5".
"start=&top=" will return all 5
groups.
"start=&top=2" will return "group1", "group2".
"start=group2&top=3" will return "group3", "group4", "group5".
operationId: microsoftAzurePersongroupList
parameters:
- name: start
in: query
required: false
description: >-
List person groups from the least personGroupId greater than the
"start".
type: string
maxLength: 64
- name: top
in: query
required: false
description: The number of person groups to list.
type: integer
minimum: 1
maximum: 1000
default: 1000
- $ref: '#/parameters/returnRecognitionModel'
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of person groups and their
information.
schema:
$ref: '#/definitions/PersonGroups'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
List person groups example:
$ref: ./examples/ListPersonGroups.json
summary: Microsoft Azure Get Persongroups
tags:
- Persongroups
/persongroups/{personGroupId}/train:
post:
description: >-
Queue a person group training task, the training task may not be started
immediately.
operationId: microsoftAzurePersongroupTrain
parameters:
- $ref: '#/parameters/personGroupId'
produces:
- application/json
responses:
'202':
description: The training task was queued successfully.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Queue person group training:
$ref: ./examples/QueuePersonGroupTraining.json
summary: Microsoft Azure Post Persongroups Persongroupid Train
tags:
- Persongroups
/facelists/{faceListId}:
put:
description: >-
Create an empty face list with user-specified faceListId, name, an
optional userData and recognitionModel. Up to 64 face lists are allowed
in one subscription.
Face list is a list of faces, up to 1,000
faces, and used by [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).
After creation, user should use [FaceList - Add
Face](https://docs.microsoft.com/rest/api/faceapi/facelist/addfacefromurl)
to import the faces. No image will be stored. Only the extracted face
features are stored on server until [FaceList -
Delete](https://docs.microsoft.com/rest/api/faceapi/facelist/delete) is
called.
Find Similar is used for scenario like finding
celebrity-like faces, similar face filtering, or as a light way face
identification. But if the actual use is to identify person, please use
[PersonGroup](https://docs.microsoft.com/rest/api/faceapi/persongroup) /
[LargePersonGroup](https://docs.microsoft.com/rest/api/faceapi/largepersongroup)
and [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).
Please consider
[LargeFaceList](https://docs.microsoft.com/rest/api/faceapi/largefacelist)
when the face number is large. It can support up to 1,000,000
faces.
'recognitionModel' should be specified to associate with this
face list. The default value for 'recognitionModel' is 'recognition_01',
if the latest model needed, please explicitly specify the model you need
in this parameter. New faces that are added to an existing face list
will use the recognition model that's already associated with the
collection. Existing face features in a face list can't be updated to
features extracted by another version of recognition model.
Please
Refer to [Specify a face recognition
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).
operationId: microsoftAzureFacelistCreate
parameters:
- $ref: '#/parameters/faceListId'
- name: body
description: Request body for creating a face list.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/MetaDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create new face list example:
$ref: ./examples/CreateNewFaceList.json
summary: Microsoft Azure Put Facelists Facelistid
tags:
- Facelists
get:
description: >-
Retrieve a face list’s faceListId, name, userData, recognitionModel and
faces in the face list.
operationId: microsoftAzureFacelistGet
parameters:
- $ref: '#/parameters/faceListId'
- $ref: '#/parameters/returnRecognitionModel'
produces:
- application/json
responses:
'200':
description: A successful call returns the face list's information.
schema:
$ref: '#/definitions/FaceList'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get Face list example:
$ref: ./examples/GetFaceList.json
summary: Microsoft Azure Get Facelists Facelistid
tags:
- Facelists
patch:
description: Update information of a face list.
operationId: microsoftAzureFacelistUpdate
parameters:
- $ref: '#/parameters/faceListId'
- name: body
description: Request body for updating a face list.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update face list example:
$ref: ./examples/UpdateFaceList.json
summary: Microsoft Azure Patch Facelists Facelistid
tags:
- Facelists
delete:
description: Delete a specified face list.
operationId: microsoftAzureFacelistDelete
parameters:
- $ref: '#/parameters/faceListId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete face list example:
$ref: ./examples/DeleteFaceList.json
summary: Microsoft Azure Delete Facelists Facelistid
tags:
- Facelists
/facelists:
get:
description: >-
List face lists’ faceListId, name, userData and recognitionModel.
To get face information inside faceList use [FaceList -
Get](https://docs.microsoft.com/rest/api/faceapi/facelist/get)
operationId: microsoftAzureFacelistList
parameters:
- $ref: '#/parameters/returnRecognitionModel'
responses:
'200':
description: A successful call returns an array of faceList.
schema:
$ref: '#/definitions/FaceLists'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
List Face lists example:
$ref: ./examples/ListFaceLists.json
summary: Microsoft Azure Get Facelists
tags:
- Facelists
/facelists/{faceListId}/persistedfaces/{persistedFaceId}:
delete:
description: >-
Delete a face from a face list by specified faceListId and
persistedFaceId.
Adding/deleting faces to/from a same face list are
processed sequentially and to/from different face lists are in parallel.
operationId: microsoftAzureFacelistDeleteface
parameters:
- $ref: '#/parameters/faceListId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete face in face list example:
$ref: ./examples/DeleteFaceListFace.json
summary: Microsoft Azure Delete Facelists Facelistid Persistedfaces Persistedfaceid
tags:
- Facelists
/persongroups/{personGroupId}/persons/{personId}/persistedfaces:
post:
description: >-
Add a face to a person into a person group for face identification or
verification. To deal with an image contains multiple faces, input face
can be specified as an image with a targetFace rectangle. It returns a
persistedFaceId representing the added face. No image will be stored.
Only the extracted face feature will be stored on server until
[PersonGroup PersonFace -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/deleteface),
[PersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete)
or [PersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete)
is called.
Note persistedFaceId is different from faceId generated
by [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
* Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* Each person entry can
hold up to 248 faces.
* JPEG, PNG, GIF (the first frame), and BMP
format are supported. The allowed image file size is from 1KB to
6MB.
* "targetFace" rectangle should contain one face. Zero or
multiple faces will be regarded as an error. If the provided
"targetFace" rectangle is not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out
of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or
large occlusions will cause failures.
* Adding/deleting faces
to/from a same person will be processed sequentially. Adding/deleting
faces to/from different persons are processed in parallel.
* The
minimum detectable face size is 36x36 pixels in an image no larger than
1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels
will need a proportionally larger minimum face size.
* Different
'detectionModel' values can be provided. To use and compare different
detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
operationId: microsoftAzurePersongrouppersonAddfacefromurl
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageUrl
- $ref: '#/parameters/detectionModel'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns the new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Add Person face example:
$ref: ./examples/AddPersonGroupPersonFaceFromUrl.json
summary: Microsoft Azure Post Persongroups Persongroupid Persons Personid Persistedfaces
tags:
- Persongroups
/detect:
post:
description: >-
Detect human faces in an image, return face rectangles, and optionally
with faceIds, landmarks, and attributes.
* No image will be stored.
Only the extracted face feature will be stored on server. The faceId is
an identifier of the face feature and will be used in [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify),
[Face -
Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface),
and [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).
The stored face feature(s) will expire and be deleted at the time
specified by faceIdTimeToLive after the original detection call.
*
Optional parameters include faceId, landmarks, and attributes.
Attributes include age, gender, headPose, smile, facialHair, glasses,
emotion, hair, makeup, occlusion, accessories, blur, exposure, noise,
mask, and qualityForRecognition. Some of the results returned for
specific attributes may not be highly accurate.
* JPEG, PNG, GIF (the
first frame), and BMP format are supported. The allowed image file size
is from 1KB to 6MB.
* Up to 100 faces can be returned for an image.
Faces are ranked by face rectangle size from large to small.
* For
optimal results when querying [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify),
[Face -
Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface),
and [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar)
('returnFaceId' is true), please use faces that are: frontal, clear, and
with a minimum size of 200x200 pixels (100 pixels between eyes).
*
The minimum detectable face size is 36x36 pixels in an image no larger
than 1920x1080 pixels. Images with dimensions higher than 1920x1080
pixels will need a proportionally larger minimum face size.
*
Different 'detectionModel' values can be provided. To use and compare
different detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
*
Different 'recognitionModel' values are provided. If follow-up
operations like Verify, Identify, Find Similar are needed, please
specify the recognition model with 'recognitionModel' parameter. The
default value for 'recognitionModel' is 'recognition_01', if latest
model needed, please explicitly specify the model you need in this
parameter. Once specified, the detected faceIds will be associated with
the specified recognition model. More details, please refer to [Specify
a recognition
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).
operationId: microsoftAzureFaceDetectwithurl
parameters:
- $ref: '#/parameters/returnFaceId'
- $ref: '#/parameters/returnFaceLandmarks'
- $ref: '#/parameters/returnFaceAttributes'
- $ref: ../../../Common/Parameters.json#/parameters/ImageUrl
- $ref: '#/parameters/recognitionModel'
- $ref: '#/parameters/returnRecognitionModel'
- $ref: '#/parameters/detectionModel'
- $ref: '#/parameters/faceIdTimeToLive'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of face entries ranked by face
rectangle size in descending order. An empty response indicates no
faces detected.
schema:
$ref: '#/definitions/DetectedFaces'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Detect with url example:
$ref: ./examples/DetectWithUrl.json
summary: Microsoft Azure Post Detect
tags:
- Detect
/facelists/{faceListId}/persistedfaces:
post:
description: >-
Add a face to a specified face list, up to 1,000 faces.
To deal with
an image contains multiple faces, input face can be specified as an
image with a targetFace rectangle. It returns a persistedFaceId
representing the added face. No image will be stored. Only the extracted
face feature will be stored on server until [FaceList - Delete
Face](https://docs.microsoft.com/rest/api/faceapi/facelist/deleteface)
or [FaceList -
Delete](https://docs.microsoft.com/rest/api/faceapi/facelist/delete) is
called.
Note persistedFaceId is different from faceId generated by
[Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
*
Higher face image quality means better detection and recognition
precision. Please consider high-quality faces: frontal, clear, and face
size is 200x200 pixels (100 pixels between eyes) or bigger.
* JPEG,
PNG, GIF (the first frame), and BMP format are supported. The allowed
image file size is from 1KB to 6MB.
* "targetFace" rectangle should
contain one face. Zero or multiple faces will be regarded as an error.
If the provided "targetFace" rectangle is not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out
of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or
large occlusions will cause failures.
* Adding/deleting faces to/from
a same face list are processed sequentially and to/from different face
lists are in parallel.
* The minimum detectable face size is 36x36
pixels in an image no larger than 1920x1080 pixels. Images with
dimensions higher than 1920x1080 pixels will need a proportionally
larger minimum face size.
* Different 'detectionModel' values can be
provided. To use and compare different detection models, please refer to
[How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
operationId: microsoftAzureFacelistAddfacefromurl
parameters:
- $ref: '#/parameters/faceListId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageUrl
- $ref: '#/parameters/detectionModel'
produces:
- application/json
consumes:
- application/json
responses:
'200':
description: A successful call returns a new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create face list face example:
$ref: ./examples/AddFaceListFaceFromUrl.json
summary: Microsoft Azure Post Facelists Facelistid Persistedfaces
tags:
- Facelists
/largepersongroups/{largePersonGroupId}/persons:
post:
description: Create a new person in a specified large person group.
operationId: microsoftAzureLargepersongrouppersonCreate
parameters:
- $ref: '#/parameters/largePersonGroupId'
- name: body
description: Request body for creating new person.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns a new personId created.
schema:
$ref: '#/definitions/Person'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create new person for large person group example:
$ref: ./examples/CreateNewLargePersonGroupPerson.json
summary: Microsoft Azure Post Largepersongroups Largepersongroupid Persons
tags:
- Largepersongroups
get:
description: >-
List all persons in a large person group, and retrieve person
information (including personId, name, userData and persistedFaceIds of
registered faces of the person).
operationId: microsoftAzureLargepersongrouppersonList
parameters:
- $ref: '#/parameters/largePersonGroupId'
- name: start
description: Starting person id to return (used to list a range of persons).
in: query
required: false
type: string
- name: top
description: >-
Number of persons to return starting with the person id indicated by
the 'start' parameter.
in: query
required: false
type: integer
minimum: 1
maximum: 1000
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of person information that belong
to the large person group.
schema:
$ref: '#/definitions/Persons'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
List persons in person group:
$ref: ./examples/ListLargePersonGroupPersons.json
summary: Microsoft Azure Get Largepersongroups Largepersongroupid Persons
tags:
- Largepersongroups
/largepersongroups/{largePersonGroupId}/persons/{personId}:
delete:
description: >-
Delete an existing person from a large person group. The
persistedFaceId, userData, person name and face feature in the person
entry will all be deleted.
operationId: microsoftAzureLargepersongrouppersonDelete
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete an existing person example:
$ref: ./examples/DeleteLargePersonGroupPerson.json
summary: Microsoft Azure Delete Largepersongroups Largepersongroupid Persons Personid
tags:
- Largepersongroups
get:
description: >-
Retrieve a person's name and userData, and the persisted faceIds
representing the registered person face feature.
operationId: microsoftAzureLargepersongrouppersonGet
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
produces:
- application/json
responses:
'200':
description: A successful call returns the person's information.
schema:
$ref: '#/definitions/Person'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get person example:
$ref: ./examples/GetLargePersonGroupPerson.json
summary: Microsoft Azure Get Largepersongroups Largepersongroupid Persons Personid
tags:
- Largepersongroups
patch:
description: Update name or userData of a person.
operationId: microsoftAzureLargepersongrouppersonUpdate
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
- name: body
description: Request body for person update operation.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update person example:
$ref: ./examples/UpdateLargePersonGroupPerson.json
summary: Microsoft Azure Patch Largepersongroups Largepersongroupid Persons Personid
tags:
- Largepersongroups
/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces/{persistedFaceId}:
delete:
description: >-
Delete a face from a person in a large person group by specified
largePersonGroupId, personId and persistedFaceId.
Adding/deleting
faces to/from a same person will be processed sequentially.
Adding/deleting faces to/from different persons are processed in
parallel.
operationId: microsoftAzureLargepersongrouppersonDeleteface
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete face from person example:
$ref: ./examples/DeleteLargePersonGroupPersonFace.json
summary: >-
Microsoft Azure Delete Largepersongroups Largepersongroupid Persons Personid Persistedfaces Persistedfaceid
tags:
- Largepersongroups
get:
description: >-
Retrieve information about a persisted face (specified by
persistedFaceId, personId and its belonging largePersonGroupId).
operationId: microsoftAzureLargepersongrouppersonGetface
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: >-
A successful call returns target persisted face's information
(persistedFaceId and userData).
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get persisted face example:
$ref: ./examples/GetLargePersonGroupPersistedFace.json
summary: >-
Microsoft Azure Get Largepersongroups Largepersongroupid Persons Personid Persistedfaces Persistedfaceid
tags:
- Largepersongroups
patch:
description: Update a person persisted face's userData field.
operationId: microsoftAzureLargepersongrouppersonUpdateface
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/persistedFaceId'
- name: body
description: Request body for updating persisted face.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/UpdateFaceRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update person face example:
$ref: ./examples/UpdateLargePersonGroupPersonFace.json
summary: >-
Microsoft Azure Patch Largepersongroups Largepersongroupid Persons Personid Persistedfaces Persistedfaceid
tags:
- Largepersongroups
/largepersongroups/{largePersonGroupId}:
put:
description: >-
Create a new large person group with user-specified largePersonGroupId,
name, an optional userData and recognitionModel.
A large person
group is the container of the uploaded person data, including face
recognition feature, and up to 1,000,000
people.
After creation,
use [LargePersonGroup Person -
Create](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/create)
to add person into the group, and call [LargePersonGroup -
Train](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/train)
to get this group ready for [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).
No image will be stored. Only the person's extracted face features and
userData will be stored on server until [LargePersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/delete)
or [LargePersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/delete)
is called.
'recognitionModel' should be specified to associate with
this large person group. The default value for 'recognitionModel' is
'recognition_01', if the latest model needed, please explicitly specify
the model you need in this parameter. New faces that are added to an
existing large person group will use the recognition model that's
already associated with the collection. Existing face features in a
large person group can't be updated to features extracted by another
version of recognition model. Please refer to [Specify a face
recognition
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).
Large
person group quota:
* Free-tier subscription quota: 1,000 large
person groups.
* S0-tier subscription quota: 1,000,000 large person
groups.
operationId: microsoftAzureLargepersongroupCreate
parameters:
- $ref: '#/parameters/largePersonGroupId'
- name: body
description: Request body for creating new large person group.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/MetaDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create new large person group example:
$ref: ./examples/CreateNewLargePersonGroup.json
summary: Microsoft Azure Put Largepersongroups Largepersongroupid
tags:
- Largepersongroups
delete:
description: >-
Delete an existing large person group. Persisted face features of all
people in the large person group will also be deleted.
operationId: microsoftAzureLargepersongroupDelete
parameters:
- $ref: '#/parameters/largePersonGroupId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete a large person group example:
$ref: ./examples/DeleteLargePersonGroup.json
summary: Microsoft Azure Delete Largepersongroups Largepersongroupid
tags:
- Largepersongroups
get:
description: >-
Retrieve the information of a large person group, including its name,
userData and recognitionModel. This API returns large person group
information only, use [LargePersonGroup Person -
List](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/list)
instead to retrieve person information under the large person group.
operationId: microsoftAzureLargepersongroupGet
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/returnRecognitionModel'
responses:
'200':
description: A successful call returns the large person group's information.
schema:
$ref: '#/definitions/LargePersonGroup'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Get large person group example:
$ref: ./examples/GetLargePersonGroup.json
summary: Microsoft Azure Get Largepersongroups Largepersongroupid
tags:
- Largepersongroups
patch:
description: >-
Update an existing large person group's display name and userData. The
properties which does not appear in request body will not be updated.
operationId: microsoftAzureLargepersongroupUpdate
parameters:
- $ref: '#/parameters/largePersonGroupId'
- name: body
description: Request body for updating large person group.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update large person group example:
$ref: ./examples/UpdateLargePersonGroup.json
summary: Microsoft Azure Patch Largepersongroups Largepersongroupid
tags:
- Largepersongroups
/largepersongroups/{largePersonGroupId}/training:
get:
description: >-
Retrieve the training status of a large person group (completed or
ongoing).
operationId: microsoftAzureLargepersongroupGettrainingstatus
parameters:
- $ref: '#/parameters/largePersonGroupId'
responses:
'200':
description: A successful call returns the large person group's training status.
schema:
$ref: '#/definitions/TrainingStatus'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Get large person group's training status example:
$ref: ./examples/GetLargePersonGroupTrainingStatus.json
summary: Microsoft Azure Get Largepersongroups Largepersongroupid Training
tags:
- Largepersongroups
/largepersongroups:
get:
description: >-
List all existing large person groups’ largePersonGroupId, name,
userData and recognitionModel.
* Large person groups are stored in
alphabetical order of largePersonGroupId.
* "start" parameter
(string, optional) is a user-provided largePersonGroupId value that
returned entries have larger ids by string comparison. "start" set to
empty to indicate return from the first item.
* "top" parameter (int,
optional) specifies the number of entries to return. A maximal of 1000
entries can be returned in one call. To fetch more, you can specify
"start" with the last returned entry’s Id of the current
call.
For example, total 5 large person groups: "group1", ...,
"group5".
"start=&top=" will return all 5 groups.
"start=&top=2"
will return "group1", "group2".
"start=group2&top=3" will return
"group3", "group4", "group5".
operationId: microsoftAzureLargepersongroupList
parameters:
- name: start
in: query
required: false
description: >-
List large person groups from the least largePersonGroupId greater
than the "start".
type: string
maxLength: 64
- name: top
in: query
required: false
description: The number of large person groups to list.
type: integer
minimum: 1
maximum: 1000
default: 1000
- $ref: '#/parameters/returnRecognitionModel'
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of large person groups and their
information.
schema:
$ref: '#/definitions/LargePersonGroups'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
List large person groups example:
$ref: ./examples/ListLargePersonGroups.json
summary: Microsoft Azure Get Largepersongroups
tags:
- Largepersongroups
/largepersongroups/{largePersonGroupId}/train:
post:
description: >-
Queue a large person group training task, the training task may not be
started immediately.
operationId: microsoftAzureLargepersongroupTrain
parameters:
- $ref: '#/parameters/largePersonGroupId'
produces:
- application/json
responses:
'202':
description: The training task was queued successfully.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Queue large person group training:
$ref: ./examples/QueueLargePersonGroupTraining.json
summary: Microsoft Azure Post Largepersongroups Largepersongroupid Train
tags:
- Largepersongroups
/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces:
post:
description: >-
Add a face to a person into a large person group for face identification
or verification. To deal with an image contains multiple faces, input
face can be specified as an image with a targetFace rectangle. It
returns a persistedFaceId representing the added face. No image will be
stored. Only the extracted face feature will be stored on server until
[LargePersonGroup PersonFace -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/deleteface),
[LargePersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/delete)
or [LargePersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/delete)
is called.
Note persistedFaceId is different from faceId generated
by [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
*
Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* Each person entry can
hold up to 248 faces.
* JPEG, PNG, GIF (the first frame), and BMP
format are supported. The allowed image file size is from 1KB to
6MB.
* "targetFace" rectangle should contain one face. Zero or
multiple faces will be regarded as an error. If the provided
"targetFace" rectangle is not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out
of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or
large occlusions will cause failures.
* Adding/deleting faces to/from
a same person will be processed sequentially. Adding/deleting faces
to/from different persons are processed in parallel.
* The minimum
detectable face size is 36x36 pixels in an image no larger than
1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels
will need a proportionally larger minimum face size.
* Different
'detectionModel' values can be provided. To use and compare different
detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)
operationId: microsoftAzureLargepersongrouppersonAddfacefromurl
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageUrl
- $ref: '#/parameters/detectionModel'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns the new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Add Person face example:
$ref: ./examples/AddLargePersonGroupPersonFaceFromUrl.json
summary: >-
Microsoft Azure Post Largepersongroups Largepersongroupid Persons Personid Persistedfaces
tags:
- Largepersongroups
/largefacelists/{largeFaceListId}:
put:
description: >-
Create an empty large face list with user-specified largeFaceListId,
name, an optional userData and recognitionModel.
Large face list is
a list of faces, up to 1,000,000 faces, and used by [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).
After creation, user should use [LargeFaceList Face -
Add](https://docs.microsoft.com/rest/api/faceapi/largefacelist/addfacefromurl)
to import the faces and [LargeFaceList -
Train](https://docs.microsoft.com/rest/api/faceapi/largefacelist/train)
to make it ready for [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).
No image will be stored. Only the extracted face features are stored on
server until [LargeFaceList -
Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/delete)
is called.
Find Similar is used for scenario like finding
celebrity-like faces, similar face filtering, or as a light way face
identification. But if the actual use is to identify person, please use
[PersonGroup](https://docs.microsoft.com/rest/api/faceapi/persongroup) /
[LargePersonGroup](https://docs.microsoft.com/rest/api/faceapi/largepersongroup)
and [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).
'recognitionModel'
should be specified to associate with this large face list. The default
value for 'recognitionModel' is 'recognition_01', if the latest model
needed, please explicitly specify the model you need in this parameter.
New faces that are added to an existing large face list will use the
recognition model that's already associated with the collection.
Existing face features in a large face list can't be updated to features
extracted by another version of recognition model. Please refer to
[Specify a recognition
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).
Large
face list quota:
* Free-tier subscription quota: 64 large face
lists.
* S0-tier subscription quota: 1,000,000 large face lists.
operationId: microsoftAzureLargefacelistCreate
parameters:
- $ref: '#/parameters/largeFaceListId'
- name: body
description: Request body for creating a large face list.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/MetaDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create new large face list example:
$ref: ./examples/CreateNewLargeFaceList.json
summary: Microsoft Azure Put Largefacelists Largefacelistid
tags:
- Largefacelists
get:
description: >-
Retrieve a large face list’s largeFaceListId, name, userData and
recognitionModel.
operationId: microsoftAzureLargefacelistGet
parameters:
- $ref: '#/parameters/largeFaceListId'
- $ref: '#/parameters/returnRecognitionModel'
produces:
- application/json
responses:
'200':
description: A successful call returns the large face list's information.
schema:
$ref: '#/definitions/LargeFaceList'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get large face list example:
$ref: ./examples/GetLargeFaceList.json
summary: Microsoft Azure Get Largefacelists Largefacelistid
tags:
- Largefacelists
patch:
description: Update information of a large face list.
operationId: microsoftAzureLargefacelistUpdate
parameters:
- $ref: '#/parameters/largeFaceListId'
- name: body
description: Request body for updating a large face list.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/NameAndUserDataContract'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update large face list example:
$ref: ./examples/UpdateLargeFaceList.json
summary: Microsoft Azure Patch Largefacelists Largefacelistid
tags:
- Largefacelists
delete:
description: Delete a specified large face list.
operationId: microsoftAzureLargefacelistDelete
parameters:
- $ref: '#/parameters/largeFaceListId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete large face list example:
$ref: ./examples/DeleteLargeFaceList.json
summary: Microsoft Azure Delete Largefacelists Largefacelistid
tags:
- Largefacelists
/largefacelists/{largeFaceListId}/training:
get:
description: >-
Retrieve the training status of a large face list (completed or
ongoing).
operationId: microsoftAzureLargefacelistGettrainingstatus
parameters:
- $ref: '#/parameters/largeFaceListId'
responses:
'200':
description: A successful call returns the large face list's training status.
schema:
$ref: '#/definitions/TrainingStatus'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Get large face list's training status example:
$ref: ./examples/GetLargeFaceListTrainingStatus.json
summary: Microsoft Azure Get Largefacelists Largefacelistid Training
tags:
- Largefacelists
/largefacelists:
get:
description: >-
List large face lists’ information of largeFaceListId, name, userData
and recognitionModel.
To get face information inside largeFaceList
use [LargeFaceList Face -
Get](https://docs.microsoft.com/rest/api/faceapi/largefacelist/getface)
*
Large face lists are stored in alphabetical order of
largeFaceListId.
* "start" parameter (string, optional) is a
user-provided largeFaceListId value that returned entries have larger
ids by string comparison. "start" set to empty to indicate return from
the first item.
* "top" parameter (int, optional) specifies the
number of entries to return. A maximal of 1000 entries can be returned
in one call. To fetch more, you can specify "start" with the last
returned entry’s Id of the current call.
For example, total 5
large person lists: "list1", ..., "list5".
"start=&top=" will return
all 5 lists.
"start=&top=2" will return "list1", "list2".
"start=list2&top=3" will return "list3", "list4", "list5".
operationId: microsoftAzureLargefacelistList
parameters:
- $ref: '#/parameters/returnRecognitionModel'
- name: start
description: >-
Starting large face list id to return (used to list a range of large
face lists).
in: query
required: false
type: string
- name: top
description: >-
Number of large face lists to return starting with the large face
list id indicated by the 'start' parameter.
in: query
required: false
type: integer
minimum: 1
maximum: 1000
responses:
'200':
description: A successful call returns an array of largeFaceList.
schema:
$ref: '#/definitions/LargeFaceLists'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
List large face lists example:
$ref: ./examples/ListLargeFaceLists.json
summary: Microsoft Azure Get Largefacelists
tags:
- Largefacelists
/largefacelists/{largeFaceListId}/train:
post:
description: >-
Queue a large face list training task, the training task may not be
started immediately.
operationId: microsoftAzureLargefacelistTrain
parameters:
- $ref: '#/parameters/largeFaceListId'
produces:
- application/json
responses:
'202':
description: The training task was queued successfully.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Queue large face list training:
$ref: ./examples/QueueLargeFaceListTraining.json
summary: Microsoft Azure Post Largefacelists Largefacelistid Train
tags:
- Largefacelists
/largefacelists/{largeFaceListId}/persistedfaces/{persistedFaceId}:
delete:
description: >-
Delete a face from a large face list by specified largeFaceListId and
persistedFaceId.
Adding/deleting faces to/from a same large face
list are processed sequentially and to/from different large face lists
are in parallel.
operationId: microsoftAzureLargefacelistDeleteface
parameters:
- $ref: '#/parameters/largeFaceListId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete face in large face list example:
$ref: ./examples/DeleteLargeFaceListFace.json
summary: Microsoft Azure Delete Largefacelists Largefacelistid Persistedfaces Persistedfaceid
tags:
- Largefacelists
get:
description: >-
Retrieve information about a persisted face (specified by
persistedFaceId and its belonging largeFaceListId).
operationId: microsoftAzureLargefacelistGetface
parameters:
- $ref: '#/parameters/largeFaceListId'
- $ref: '#/parameters/persistedFaceId'
produces:
- application/json
responses:
'200':
description: >-
A successful call returns target persisted face's information
(persistedFaceId and userData).
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get persisted face example:
$ref: ./examples/GetLargeFaceListPersistedFace.json
summary: Microsoft Azure Get Largefacelists Largefacelistid Persistedfaces Persistedfaceid
tags:
- Largefacelists
patch:
description: Update a persisted face's userData field.
operationId: microsoftAzureLargefacelistUpdateface
parameters:
- $ref: '#/parameters/largeFaceListId'
- $ref: '#/parameters/persistedFaceId'
- name: body
description: Request body for updating persisted face.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/UpdateFaceRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update face example:
$ref: ./examples/UpdateLargeFaceListFace.json
summary: Microsoft Azure Patch Largefacelists Largefacelistid Persistedfaces Persistedfaceid
tags:
- Largefacelists
/largefacelists/{largeFaceListId}/persistedfaces:
post:
description: >-
Add a face to a specified large face list, up to 1,000,000 faces.
To
deal with an image contains multiple faces, input face can be specified
as an image with a targetFace rectangle. It returns a persistedFaceId
representing the added face. No image will be stored. Only the extracted
face feature will be stored on server until [LargeFaceList Face -
Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/deleteface)
or [LargeFaceList -
Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/delete)
is called.
Note persistedFaceId is different from faceId generated
by [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
*
Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* JPEG, PNG, GIF (the
first frame), and BMP format are supported. The allowed image file size
is from 1KB to 6MB.
* "targetFace" rectangle should contain one face.
Zero or multiple faces will be regarded as an error. If the provided
"targetFace" rectangle is not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out
of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or
large occlusions will cause failures.
* Adding/deleting faces to/from
a same face list are processed sequentially and to/from different face
lists are in parallel.
* The minimum detectable face size is 36x36
pixels in an image no larger than 1920x1080 pixels. Images with
dimensions higher than 1920x1080 pixels will need a proportionally
larger minimum face size.
* Different 'detectionModel' values can be
provided. To use and compare different detection models, please refer to
[How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)
Quota:
*
Free-tier subscription quota: 1,000 faces per large face list.
*
S0-tier subscription quota: 1,000,000 faces per large face list.
operationId: microsoftAzureLargefacelistAddfacefromurl
parameters:
- $ref: '#/parameters/largeFaceListId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageUrl
- $ref: '#/parameters/detectionModel'
produces:
- application/json
consumes:
- application/json
responses:
'200':
description: A successful call returns a new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Create large face list face example:
$ref: ./examples/AddLargeFaceListFaceFromUrl.json
summary: Microsoft Azure Post Largefacelists Largefacelistid Persistedfaces
tags:
- Largefacelists
get:
description: >-
List all faces in a large face list, and retrieve face information
(including userData and persistedFaceIds of registered faces of the
face).
operationId: microsoftAzureLargefacelistListfaces
parameters:
- $ref: '#/parameters/largeFaceListId'
- name: start
description: Starting face id to return (used to list a range of faces).
in: query
required: false
type: string
- name: top
description: >-
Number of faces to return starting with the face id indicated by the
'start' parameter.
in: query
required: false
type: integer
minimum: 1
maximum: 1000
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of face information that belong
to the large face list.
schema:
$ref: '#/definitions/PersistedFaces'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
List faces in large face list:
$ref: ./examples/ListLargeFaceListFaces.json
summary: Microsoft Azure Get Largefacelists Largefacelistid Persistedfaces
tags:
- Largefacelists
/snapshots:
post:
description: >-
Submit an operation to take a snapshot of face list, large face list,
person group or large person group, with user-specified snapshot type,
source object id, apply scope and an optional user data.
The snapshot
interfaces are for users to backup and restore their face data from one
face subscription to another, inside same region or across regions. The
workflow contains two phases, user first calls Snapshot - Take to create
a copy of the source object and store it as a snapshot, then calls
Snapshot - Apply to paste the snapshot to target subscription. The
snapshots are stored in a centralized location (per Azure instance), so
that they can be applied cross accounts and regions.
Taking snapshot
is an asynchronous operation. An operation id can be obtained from the
"Operation-Location" field in response header, to be used in
OperationStatus - Get for tracking the progress of creating the
snapshot. The snapshot id will be included in the "resourceLocation"
field in OperationStatus - Get response when the operation status is
"succeeded".
Snapshot taking time depends on the number of person and
face entries in the source object. It could be in seconds, or up to
several hours for 1,000,000 persons with multiple faces.
Snapshots
will be automatically expired and cleaned in 48 hours after it is
created by Snapshot - Take. User can delete the snapshot using Snapshot
- Delete by themselves any time before expiration.
Taking snapshot
for a certain object will not block any other operations against the
object. All read-only operations (Get/List and
Identify/FindSimilar/Verify) can be conducted as usual. For all writable
operations, including Add/Update/Delete the source object or its
persons/faces and Train, they are not blocked but not recommended
because writable updates may not be reflected on the snapshot during its
taking. After snapshot taking is completed, all readable and writable
operations can work as normal. Snapshot will also include the training
results of the source object, which means target subscription the
snapshot applied to does not need re-train the target object before
calling Identify/FindSimilar.
* Free-tier subscription quota: 100
take operations per month.
* S0-tier subscription quota: 100 take
operations per day.
operationId: microsoftAzureSnapshotTake
parameters:
- name: body
description: Request body for taking a snapshot.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/TakeSnapshotRequest'
consumes:
- application/json
produces:
- application/json
responses:
'202':
description: The snapshot taking task was queued successfully.
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of taking snapshot. The returned id is the operation
id, rather than snapshot id. Snapshot id can be obtained only
when the operation status becomes "succeeded" in OperationStatus
- Get.
type: string
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Take a snapshot example:
$ref: ./examples/TakeSnapshot.json
summary: Microsoft Azure Post Snapshots
tags:
- Snapshots
get:
description: >-
List all accessible snapshots with related information, including
snapshots that were taken by the user, or snapshots to be applied to the
user (subscription id was included in the applyScope in Snapshot -
Take).
operationId: microsoftAzureSnapshotList
parameters:
- name: type
description: User specified object type as a search filter.
in: query
required: false
type: string
x-ms-enum:
name: SnapshotObjectType
modelAsString: false
enum:
- FaceList
- LargeFaceList
- LargePersonGroup
- PersonGroup
- $ref: '#/parameters/applyScope'
responses:
'200':
description: >-
A successful call returns an array of snapshots with snapshot
information.
schema:
$ref: '#/definitions/Snapshots'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
List snapshots example:
$ref: ./examples/ListSnapshots.json
summary: Microsoft Azure Get Snapshots
tags:
- Snapshots
/snapshots/{snapshotId}:
get:
description: >-
Retrieve information about a snapshot. Snapshot is only accessible to
the source subscription who took it, and target subscriptions included
in the applyScope in Snapshot - Take.
operationId: microsoftAzureSnapshotGet
parameters:
- $ref: '#/parameters/snapshotId'
produces:
- application/json
responses:
'200':
description: A successful call returns the snapshot's information.
schema:
$ref: '#/definitions/Snapshot'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Get snapshot example:
$ref: ./examples/GetSnapshot.json
summary: Microsoft Azure Get Snapshots Snapshotid
tags:
- Snapshots
patch:
description: >-
Update the information of a snapshot. Only the source subscription who
took the snapshot can update the snapshot.
operationId: microsoftAzureSnapshotUpdate
parameters:
- $ref: '#/parameters/snapshotId'
- name: body
description: Request body for updating a snapshot.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/UpdateSnapshotRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Update snapshot example:
$ref: ./examples/UpdateSnapshot.json
summary: Microsoft Azure Patch Snapshots Snapshotid
tags:
- Snapshots
delete:
description: >-
Delete an existing snapshot according to the snapshotId. All object data
and information in the snapshot will also be deleted. Only the source
subscription who took the snapshot can delete the snapshot. If the user
does not delete a snapshot with this API, the snapshot will still be
automatically deleted in 48 hours after creation.
operationId: microsoftAzureSnapshotDelete
parameters:
- $ref: '#/parameters/snapshotId'
produces:
- application/json
responses:
'200':
description: A successful call returns an empty response body.
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Delete snapshot example:
$ref: ./examples/DeleteSnapshot.json
summary: Microsoft Azure Delete Snapshots Snapshotid
tags:
- Snapshots
/snapshots/{snapshotId}/apply:
post:
description: >-
Submit an operation to apply a snapshot to current subscription. For
each snapshot, only subscriptions included in the applyScope of Snapshot
- Take can apply it.
The snapshot interfaces are for users to backup
and restore their face data from one face subscription to another,
inside same region or across regions. The workflow contains two phases,
user first calls Snapshot - Take to create a copy of the source object
and store it as a snapshot, then calls Snapshot - Apply to paste the
snapshot to target subscription. The snapshots are stored in a
centralized location (per Azure instance), so that they can be applied
cross accounts and regions.
Applying snapshot is an asynchronous
operation. An operation id can be obtained from the "Operation-Location"
field in response header, to be used in OperationStatus - Get for
tracking the progress of applying the snapshot. The target object id
will be included in the "resourceLocation" field in OperationStatus -
Get response when the operation status is "succeeded".
Snapshot
applying time depends on the number of person and face entries in the
snapshot object. It could be in seconds, or up to 1 hour for 1,000,000
persons with multiple faces.
Snapshots will be automatically expired
and cleaned in 48 hours after it is created by Snapshot - Take. So the
target subscription is required to apply the snapshot in 48 hours since
its creation.
Applying a snapshot will not block any other operations
against the target object, however it is not recommended because the
correctness cannot be guaranteed during snapshot applying. After
snapshot applying is completed, all operations towards the target object
can work as normal. Snapshot also includes the training results of the
source object, which means target subscription the snapshot applied to
does not need re-train the target object before calling
Identify/FindSimilar.
One snapshot can be applied multiple times in
parallel, while currently only CreateNew apply mode is supported, which
means the apply operation will fail if target subscription already
contains an object of same type and using the same objectId. Users can
specify the "objectId" in request body to avoid such conflicts.
*
Free-tier subscription quota: 100 apply operations per month.
*
S0-tier subscription quota: 100 apply operations per day.
operationId: microsoftAzureSnapshotApply
parameters:
- $ref: '#/parameters/snapshotId'
- name: body
description: Request body for applying a snapshot.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/ApplySnapshotRequest'
consumes:
- application/json
produces:
- application/json
responses:
'202':
description: The snapshot applying task was queued successfully.
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of applying the snapshot by OperationStatus - Get.
type: string
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Apply snapshot example:
$ref: ./examples/ApplySnapshot.json
summary: Microsoft Azure Post Snapshots Snapshotid Apply
tags:
- Snapshots
/operations/{operationId}:
get:
description: Get status of a long running operation.
operationId: microsoftAzureSnapshotGetoperationstatus
parameters:
- $ref: '#/parameters/operationId'
responses:
'200':
description: A successful call returns the operation's status.
schema:
$ref: '#/definitions/OperationStatus'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Get snapshot operation status example:
$ref: ./examples/GetSnapshotOperationStatus.json
summary: Microsoft Azure Get Operations Operationid
tags:
- Operations
/persons:
get:
tags:
- PersonDirectory
summary: 'Microsoft Azure Retrieve List Of Person Information In Person Directory'
operationId: microsoftAzurePersondirectoryGetpersons
produces:
- application/json
parameters:
- in: query
name: start
format: uuid
description: >-
List persons from the least personId greater than the "start". It
contains no more than 64 characters. Default is empty.
type: string
- in: query
name: top
description: >-
The number of persons to list, ranging in [1, 1000]. Default is
1000.
type: string
responses:
'200':
description: Success
schema:
type: array
items:
$ref: '#/definitions/EnrollmentResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Get person directory persons example:
$ref: ./examples/GetPersonDirectoryPersons.json
description: Needs a more full description created.
post:
tags:
- PersonDirectory
summary: 'Microsoft Azure Creates A New Person In Person Directory'
operationId: microsoftAzurePersondirectoryCreateperson
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/EnrollmentRequest'
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
schema:
$ref: '#/definitions/PersonCreationResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Create person in person directory example:
$ref: ./examples/CreateNewPersonDirectoryPerson.json
description: Needs a more full description created.
/persons/{personId}:
patch:
tags:
- PersonDirectory
summary: 'Microsoft Azure Update Name Or Userdata Of A Person'
operationId: microsoftAzurePersondirectoryUpdateperson
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: personId
description: Person id to update.
required: true
format: uuid
type: string
- in: body
name: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/EnrollmentRequest'
responses:
'200':
description: Success
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Create person in person directory example:
$ref: ./examples/UpdatePersonDirectoryPerson.json
description: Needs a more full description created.
delete:
tags:
- PersonDirectory
summary: "Microsoft Azure Delete An Existing Person From Person Directory \r\nthe Persistedfaceid, Userdata, Person Name And Face Feature S In The Person Entry Will All Be Deleted"
operationId: microsoftAzurePersondirectoryDeleteperson
produces:
- application/json
parameters:
- in: path
name: personId
description: Person id to delete.
required: true
format: uuid
type: string
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Delete person from person directory example:
$ref: ./examples/DeletePersonDirectoryPerson.json
description: Needs a more full description created.
get:
tags:
- PersonDirectory
summary: >-
Microsoft Azure Retrieve A Person S Name And Userdata, And The Persisted Faceids Representing The Registered Person Face Feature S
operationId: microsoftAzurePersondirectoryGetperson
produces:
- application/json
parameters:
- in: path
name: personId
description: Person id.
required: true
format: uuid
type: string
responses:
'200':
description: Success
schema:
$ref: '#/definitions/EnrolledPerson'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Get person from person directory example:
$ref: ./examples/GetPersonDirectoryPerson.json
description: Needs a more full description created.
/persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces:
post:
tags:
- PersonDirectory
summary: 'Microsoft Azure Add A New Face To Person'
operationId: microsoftAzurePersondirectoryAddpersonfacefromurl
produces:
- application/json
parameters:
- in: path
name: personId
description: Person id.
required: true
format: uuid
type: string
- in: path
name: recognitionModel
description: Recognition model string.
required: true
type: string
- in: query
name: detectionModel
description: Detection model string.
type: string
- in: query
name: userData
description: User data of person face.
type: string
- in: query
name: targetFace
description: Target face.
type: string
- $ref: ../../../Common/Parameters.json#/parameters/ImageUrl
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
schema:
$ref: '#/definitions/EnrollmentPrintResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Add face to person in person directory example:
$ref: ./examples/AddPersonDirectoryPersonFaceFromUrl.json
description: Needs a more full description created.
get:
tags:
- PersonDirectory
summary: >-
Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid
operationId: microsoftAzurePersondirectoryGetpersonfaces
produces:
- application/json
parameters:
- in: path
name: personId
description: Target person to get persistedFaceIds from.
required: true
format: uuid
type: string
- in: path
name: recognitionModel
description: The 'recognitionModel' associated with this persisted face.
required: true
type: string
responses:
'200':
description: Success
schema:
$ref: '#/definitions/PersonResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Get person face in person directory example:
$ref: ./examples/GetPersonDirectoryPersonFaces.json
description: Needs a more full description created.
/persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces/{persistedFaceId}:
delete:
tags:
- PersonDirectory
summary: "Microsoft Azure Delete An Existing Person Face From Person Directory \r\nthe Persistedfaceid, Userdata, And Face Feature In The Person Entry Will All Be Deleted"
operationId: microsoftAzurePersondirectoryDeletepersonface
produces:
- application/json
parameters:
- in: path
name: personId
description: Person id.
required: true
format: uuid
type: string
- in: path
name: recognitionModel
description: Recognition model string.
required: true
type: string
- in: path
name: persistedFaceId
description: Persisted face id to delete.
required: true
format: uuid
type: string
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Delete face from person directory person example:
$ref: ./examples/DeletePersonDirectoryPersonFace.json
description: Needs a more full description created.
get:
tags:
- PersonDirectory
summary: >-
Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid
operationId: microsoftAzurePersondirectoryGetpersonface
produces:
- application/json
parameters:
- in: path
name: personId
description: Target person to get face from.
required: true
format: uuid
type: string
- in: path
name: recognitionModel
description: The 'recognitionModel' associated with this persisted face.
required: true
type: string
- in: path
name: persistedFaceId
description: Target person face id to get.
required: true
format: uuid
type: string
responses:
'200':
description: Success
schema:
$ref: '#/definitions/PersistedFaceResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Get person directory person face example:
$ref: ./examples/GetPersonDirectoryPersonFace.json
description: Needs a more full description created.
patch:
tags:
- PersonDirectory
summary: 'Microsoft Azure Update The Data Of A Person Face'
operationId: microsoftAzurePersondirectoryUpdatepersonface
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: personId
description: Target person to update face from.
required: true
format: uuid
type: string
- in: path
name: recognitionModel
description: The 'recognitionModel' associated with this persisted face.
required: true
type: string
- in: path
name: persistedFaceId
description: PersistedFaceId created from Person Face Create
required: true
format: uuid
type: string
- in: body
name: body
description: Target person face to update.
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/PersistedFaceWithType'
responses:
'200':
description: Success
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Update face from person directory person example:
$ref: ./examples/UpdatePersonDirectoryPersonFace.json
description: Needs a more full description created.
/dynamicpersongroups/{dynamicPersonGroupId}:
put:
tags:
- PersonDirectory
summary: "Microsoft Azure Creates A New Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User Provided Userdata \r\na Dynamic Person Group Is A Container That References Persons \r\nafter Creation, Use \"dynamicpersongroup Update\" To Add Remove Persons Into The Search Space \r\ndynamicpersongroup And Userdata Will Be Stored On Server Until Dynamicpersongroup Delete Is Called"
operationId: microsoftAzurePersondirectoryCreatedynamicpersongroup
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: dynamicPersonGroupId
description: >-
User provided dynamic person group Id. Valid format should be a
string composed by numbers, English letters in lower case, '-', '_',
and no longer than 64 characters.
required: true
type: string
- in: body
name: body
description: ''
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/DynamicPersonGroupCreateRequest'
responses:
'200':
description: Success
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Create dynamic person group example:
$ref: ./examples/CreateNewDynamicPersonGroup.json
description: Needs a more full description created.
patch:
tags:
- PersonDirectory
summary: >-
Microsoft Azure Updates An Existing Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User Provided Userdata
operationId: microsoftAzurePersondirectoryUpdatedynamicpersongroup
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: dynamicPersonGroupId
description: User provided dynamic person group Id.
required: true
type: string
- in: body
name: body
description: ''
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/DynamicPersonGroupUpdateRequest'
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Update dynamic person group example:
$ref: ./examples/UpdateDynamicPersonGroup.json
description: Needs a more full description created.
get:
tags:
- PersonDirectory
summary: 'Microsoft Azure Get Metadata On A Dynamic Person Group'
operationId: microsoftAzurePersondirectoryGetdynamicpersongroup
produces:
- application/json
parameters:
- in: path
name: dynamicPersonGroupId
description: User provided dynamic person group id
required: true
type: string
responses:
'200':
description: Success
schema:
$ref: '#/definitions/DynamicPersonGroupGetResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Get dynamic person group example:
$ref: ./examples/GetDynamicPersonGroup.json
description: Needs a more full description created.
delete:
tags:
- PersonDirectory
summary: "Microsoft Azure Delete An Existing Dynamic Person Group \r\nnote That Persons Are Not Deleted With This Operation To Delete Person Call Person Delete"
operationId: microsoftAzurePersondirectoryDeletedynamicpersongroup
produces:
- application/json
parameters:
- in: path
name: dynamicPersonGroupId
description: User provided dynamic person group Id.
required: true
type: string
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Delete dynamic person group example:
$ref: ./examples/DeleteDynamicPersonGroup.json
description: Needs a more full description created.
/dynamicpersongroups/{dynamicPersonGroupId}/persons:
get:
tags:
- PersonDirectory
summary: >-
Microsoft Azure Retrieve List Of Persons Referenced In A Given Dynamicpersongroup Person Directory
operationId: microsoftAzurePersondirectoryListdynamicpersongrouppersons
produces:
- application/json
parameters:
- in: path
name: dynamicPersonGroupId
description: Dynamic person group Id to list persons from
required: true
type: string
- in: query
name: start
description: >-
List persons from the least personId greater than the "start". It
contains no more than 64 characters. Default is empty.
format: uuid
type: string
- in: query
name: top
description: >-
The number of persons to list, ranging in [1, 1000]. Default is
1000.
type: string
responses:
'200':
description: Success
schema:
$ref: '#/definitions/DynamicPersonGroupListPersonsResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
List dynamic person group persons example:
$ref: ./examples/ListDynamicPersonGroupPersons.json
description: Needs a more full description created.
/dynamicpersongroups:
get:
tags:
- PersonDirectory
summary: 'Microsoft Azure Retrieve List Of Dynamic Person Groups In Person Directory'
operationId: microsoftAzurePersondirectoryListdynamicpersongroups
produces:
- application/json
parameters:
- in: query
name: start
description: >-
List dynamicPersonGroupId from the least dynamicPersonGroupId
greater than the "start". It contains no more than 64 characters.
Default is empty.
type: string
- in: query
name: top
description: >-
The number of dynamicPersonGroups to list, ranging in [1, 1000].
Default is 1000.
type: string
responses:
'200':
description: Success
schema:
type: array
items:
$ref: '#/definitions/DynamicPersonGroupGetResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
List dynamic person groups example:
$ref: ./examples/ListDynamicPersonGroups.json
description: Needs a more full description created.
/persons/{personId}/dynamicPersonGroupReferences:
get:
tags:
- PersonDirectory
summary: 'Microsoft Azure List The Dynamic Person Groups That A Person Has Been Referenced In'
operationId: microsoftAzurePersondirectoryListdynamicpersongrouppersonreferences
produces:
- application/json
parameters:
- in: path
name: personId
description: Valid PersonId created from Person Create.
required: true
format: uuid
type: string
- in: query
name: start
description: >-
List dynamic person group id from the least dynamicPersonGroupId
greater than the "start". It contains no more than 64 characters.
Default is empty.
type: string
- in: query
name: top
description: >-
The number of dynamicPersonGroupId to list, ranging in [1, 1000].
Default is 1000.
type: string
responses:
'200':
description: Success
schema:
$ref: '#/definitions/PersonDynamicPersonGroupReferenceResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
List dynamic person group references example:
$ref: ./examples/ListDynamicPersonGroupReferences.json
description: Needs a more full description created.
x-ms-paths:
/verify?overload=person:
post:
description: >-
Verify whether two faces belong to a same person. Compares a face Id
with a Person Id
operationId: Face_VerifyFaceToPerson
parameters:
- name: body
description: Request body for face to person verification.
in: body
required: true
x-ms-client-flatten: true
schema:
$ref: '#/definitions/VerifyFaceToPersonRequest'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: A successful call returns the verification result.
schema:
$ref: '#/definitions/VerifyResult'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Verify face to person example:
$ref: ./examples/VerifyFaceToPerson.json
/detect?overload=stream:
post:
description: >-
Detect human faces in an image, return face rectangles, and optionally
with faceIds, landmarks, and attributes.
* No image will be stored. Only the extracted face feature will be
stored on server. The faceId is an identifier of the face feature and
will be used in [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify),
[Face -
Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface),
and [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).
The stored face feature(s) will expire and be deleted at the time
specified by faceIdTimeToLive after the original detection call.
* Optional parameters include faceId, landmarks, and attributes.
Attributes include age, gender, headPose, smile, facialHair, glasses,
emotion, hair, makeup, occlusion, accessories, blur, exposure, noise,
mask, and qualityForRecognition. Some of the results returned for
specific attributes may not be highly accurate.
* JPEG, PNG, GIF (the first frame), and BMP format are supported. The
allowed image file size is from 1KB to 6MB.
* Up to 100 faces can be returned for an image. Faces are ranked by face
rectangle size from large to small.
* For optimal results when querying [Face -
Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify),
[Face -
Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface),
and [Face - Find
Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar)
('returnFaceId' is true), please use faces that are: frontal, clear, and
with a minimum size of 200x200 pixels (100 pixels between eyes).
* The minimum detectable face size is 36x36 pixels in an image no larger
than 1920x1080 pixels. Images with dimensions higher than 1920x1080
pixels will need a proportionally larger minimum face size.
* Different 'detectionModel' values can be provided. To use and compare
different detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)
* Different 'recognitionModel' values are provided. If follow-up
operations like Verify, Identify, Find Similar are needed, please
specify the recognition model with 'recognitionModel' parameter. The
default value for 'recognitionModel' is 'recognition_01', if latest
model needed, please explicitly specify the model you need in this
parameter. Once specified, the detected faceIds will be associated with
the specified recognition model. More details, please refer to [Specify
a recognition
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).
operationId: Face_DetectWithStream
parameters:
- $ref: '#/parameters/returnFaceId'
- $ref: '#/parameters/returnFaceLandmarks'
- $ref: '#/parameters/returnFaceAttributes'
- $ref: ../../../Common/Parameters.json#/parameters/ImageStream
- $ref: '#/parameters/recognitionModel'
- $ref: '#/parameters/returnRecognitionModel'
- $ref: '#/parameters/detectionModel'
- $ref: '#/parameters/faceIdTimeToLive'
consumes:
- application/octet-stream
produces:
- application/json
responses:
'200':
description: >-
A successful call returns an array of face entries ranked by face
rectangle size in descending order. An empty response indicates no
faces detected.
schema:
$ref: '#/definitions/DetectedFaces'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Detect with stream example:
$ref: ./examples/DetectWithStream.json
/persongroups/{personGroupId}/persons/{personId}/persistedfaces?overload=stream:
post:
description: >-
Add a face to a person into a person group for face identification or
verification. To deal with an image contains multiple faces, input face
can be specified as an image with a targetFace rectangle. It returns a
persistedFaceId representing the added face. No image will be stored.
Only the extracted face feature will be stored on server until
[PersonGroup PersonFace -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/deleteface),
[PersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete)
or [PersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete)
is called.
Note persistedFaceId is different from faceId generated by [Face
-
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
* Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* Each person entry can hold up to 248 faces.
* JPEG, PNG, GIF (the first frame), and BMP format are supported. The
allowed image file size is from 1KB to 6MB.
* "targetFace" rectangle should contain one face. Zero or multiple
faces will be regarded as an error. If the provided "targetFace"
rectangle is not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out of detectable face size (36x36 - 4096x4096 pixels), large
head-pose, or large occlusions will cause failures.
* Adding/deleting faces to/from a same person will be processed
sequentially. Adding/deleting faces to/from different persons are
processed in parallel.
* The minimum detectable face size is 36x36 pixels in an image no larger
than 1920x1080 pixels. Images with dimensions higher than 1920x1080
pixels will need a proportionally larger minimum face size.
* Different 'detectionModel' values can be provided. To use and compare
different detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
operationId: PersonGroupPerson_AddFaceFromStream
parameters:
- $ref: '#/parameters/personGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageStream
- $ref: '#/parameters/detectionModel'
produces:
- application/json
consumes:
- application/octet-stream
responses:
'200':
description: A successful call returns the new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Add face to person with stream example:
$ref: ./examples/AddPersonGroupPersonFaceFromStream.json
/facelists/{faceListId}/persistedfaces?overload=stream:
post:
description: >-
Add a face to a specified face list, up to 1,000 faces.
To deal with an image contains multiple faces, input face can be
specified as an image with a targetFace rectangle. It returns a
persistedFaceId representing the added face. No image will be stored.
Only the extracted face feature will be stored on server until [FaceList
- Delete
Face](https://docs.microsoft.com/rest/api/faceapi/facelist/deleteface)
or [FaceList -
Delete](https://docs.microsoft.com/rest/api/faceapi/facelist/delete) is
called.
Note persistedFaceId is different from faceId generated by [Face
-
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
* Higher face image quality means better detection and recognition
precision. Please consider high-quality faces: frontal, clear, and face
size is 200x200 pixels (100 pixels between eyes) or bigger.
* JPEG, PNG, GIF (the first frame), and BMP format are supported. The
allowed image file size is from 1KB to 6MB.
* "targetFace" rectangle should contain one face. Zero or multiple faces
will be regarded as an error. If the provided "targetFace" rectangle is
not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out of detectable face size (36x36 - 4096x4096 pixels), large
head-pose, or large occlusions will cause failures.
* Adding/deleting faces to/from a same face list are processed
sequentially and to/from different face lists are in parallel.
* The minimum detectable face size is 36x36 pixels in an image no larger
than 1920x1080 pixels. Images with dimensions higher than 1920x1080
pixels will need a proportionally larger minimum face size.
* Different 'detectionModel' values can be provided. To use and compare
different detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
operationId: FaceList_AddFaceFromStream
parameters:
- $ref: '#/parameters/faceListId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageStream
- $ref: '#/parameters/detectionModel'
consumes:
- application/octet-stream
responses:
'200':
description: A successful call returns a new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Add face to face list from stream example:
$ref: ./examples/AddFaceListFaceFromStream.json
/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces?overload=stream:
post:
description: >-
Add a face to a person into a large person group for face identification
or verification. To deal with an image contains multiple faces, input
face can be specified as an image with a targetFace rectangle. It
returns a persistedFaceId representing the added face. No image will be
stored. Only the extracted face feature will be stored on server until
[LargePersonGroup PersonFace -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/deleteface),
[LargePersonGroup Person -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/delete)
or [LargePersonGroup -
Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/delete)
is called.
Note persistedFaceId is different from faceId generated by [Face
-
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
* Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* Each person entry can hold up to 248 faces.
* JPEG, PNG, GIF (the first frame), and BMP format are supported. The
allowed image file size is from 1KB to 6MB.
* "targetFace" rectangle should contain one face. Zero or multiple faces
will be regarded as an error. If the provided "targetFace" rectangle is
not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out of detectable face size (36x36 - 4096x4096 pixels), large
head-pose, or large occlusions will cause failures.
* Adding/deleting faces to/from a same person will be processed
sequentially. Adding/deleting faces to/from different persons are
processed in parallel.
* The minimum detectable face size is 36x36 pixels in an image no larger
than 1920x1080 pixels. Images with dimensions higher than 1920x1080
pixels will need a proportionally larger minimum face size.
* Different 'detectionModel' values can be provided. To use and compare
different detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
operationId: LargePersonGroupPerson_AddFaceFromStream
parameters:
- $ref: '#/parameters/largePersonGroupId'
- $ref: '#/parameters/personId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageStream
- $ref: '#/parameters/detectionModel'
produces:
- application/json
consumes:
- application/octet-stream
responses:
'200':
description: A successful call returns the new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
x-ms-examples:
Add face to person with stream example:
$ref: ./examples/AddLargePersonGroupPersonFaceFromStream.json
/largefacelists/{largeFaceListId}/persistedfaces?overload=stream:
post:
description: >-
Add a face to a specified large face list, up to 1,000,000 faces.
To deal with an image contains multiple faces, input face can be
specified as an image with a targetFace rectangle. It returns a
persistedFaceId representing the added face. No image will be stored.
Only the extracted face feature will be stored on server until
[LargeFaceList Face -
Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/deleteface)
or [LargeFaceList -
Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/delete)
is called.
Note persistedFaceId is different from faceId generated by [Face
-
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).
* Higher face image quality means better recognition precision. Please
consider high-quality faces: frontal, clear, and face size is 200x200
pixels (100 pixels between eyes) or bigger.
* JPEG, PNG, GIF (the first frame), and BMP format are supported. The
allowed image file size is from 1KB to 6MB.
* "targetFace" rectangle should contain one face. Zero or multiple faces
will be regarded as an error. If the provided "targetFace" rectangle is
not returned from [Face -
Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl),
there’s no guarantee to detect and add the face successfully.
* Out of detectable face size (36x36 - 4096x4096 pixels), large
head-pose, or large occlusions will cause failures.
* Adding/deleting faces to/from a same face list are processed
sequentially and to/from different face lists are in parallel.
* The minimum detectable face size is 36x36 pixels in an image no larger
than 1920x1080 pixels. Images with dimensions higher than 1920x1080
pixels will need a proportionally larger minimum face size.
* Different 'detectionModel' values can be provided. To use and compare
different detection models, please refer to [How to specify a detection
model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).
Quota:
* Free-tier subscription quota: 1,000 faces per large face list.
* S0-tier subscription quota: 1,000,000 faces per large face list.
operationId: LargeFaceList_AddFaceFromStream
parameters:
- $ref: '#/parameters/largeFaceListId'
- $ref: '#/parameters/faceUserData'
- $ref: '#/parameters/targetFace'
- $ref: ../../../Common/Parameters.json#/parameters/ImageStream
- $ref: '#/parameters/detectionModel'
consumes:
- application/octet-stream
responses:
'200':
description: A successful call returns a new persistedFaceId.
schema:
$ref: '#/definitions/PersistedFace'
default:
description: Error response.
schema:
$ref: '#/definitions/APIError'
produces:
- application/json
x-ms-examples:
Add face to large face list from stream example:
$ref: ./examples/AddLargeFaceListFaceFromStream.json
/persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces?overload=stream:
post:
tags:
- PersonDirectory
summary: Add a new face to person.
operationId: PersonDirectory_AddPersonFaceFromStream
produces:
- application/json
consumes:
- application/octet-stream
parameters:
- in: path
name: personId
description: Person id.
required: true
format: uuid
type: string
- in: path
name: recognitionModel
description: Recognition model string.
required: true
type: string
- in: query
name: detectionModel
description: Detection model string.
type: string
- in: query
name: userData
description: User data of person face.
type: string
- in: query
name: targetFace
description: Target face.
type: string
- $ref: ../../../Common/Parameters.json#/parameters/ImageStream
responses:
'202':
description: Success
headers:
Operation-Location:
description: >-
Operation location with an operation id used to track the
progress of person creation.
type: string
schema:
$ref: '#/definitions/EnrollmentPrintResponse'
default:
description: >-
Response entity accompanying non-successful responses containing
additional details about the error.
schema:
$ref: '#/definitions/Error'
x-ms-examples:
Add face to person directory person with stream example:
$ref: ./examples/AddPersonDirectoryPersonFaceFromStream.json
definitions:
APIError:
type: object
description: Error information returned by the API
properties:
error:
$ref: '#/definitions/Error'
Error:
type: object
description: Error body.
properties:
code:
type: string
message:
type: string
DetectedFaces:
type: array
items:
$ref: '#/definitions/DetectedFace'
DetectedFace:
type: object
required:
- faceRectangle
description: Detected Face object.
properties:
faceId:
type: string
format: uuid
recognitionModel:
$ref: '#/definitions/RecognitionModel'
faceRectangle:
$ref: '#/definitions/FaceRectangle'
faceLandmarks:
$ref: '#/definitions/FaceLandmarks'
faceAttributes:
$ref: '#/definitions/FaceAttributes'
FaceRectangle:
type: object
required:
- width
- height
- left
- top
description: A rectangle within which a face can be found
properties:
width:
type: integer
format: int32
description: The width of the rectangle, in pixels.
height:
type: integer
format: int32
description: The height of the rectangle, in pixels.
left:
type: integer
format: int32
description: >-
The distance from the left edge if the image to the left edge of the
rectangle, in pixels.
top:
type: integer
format: int32
description: >-
The distance from the top edge if the image to the top edge of the
rectangle, in pixels.
Coordinate:
type: object
required:
- x
- 'y'
description: Coordinates within an image
properties:
x:
type: number
description: The horizontal component, in pixels.
'y':
type: number
description: The vertical component, in pixels.
FaceLandmarks:
type: object
description: >-
A collection of 27-point face landmarks pointing to the important
positions of face components.
properties:
pupilLeft:
$ref: '#/definitions/Coordinate'
pupilRight:
$ref: '#/definitions/Coordinate'
noseTip:
$ref: '#/definitions/Coordinate'
mouthLeft:
$ref: '#/definitions/Coordinate'
mouthRight:
$ref: '#/definitions/Coordinate'
eyebrowLeftOuter:
$ref: '#/definitions/Coordinate'
eyebrowLeftInner:
$ref: '#/definitions/Coordinate'
eyeLeftOuter:
$ref: '#/definitions/Coordinate'
eyeLeftTop:
$ref: '#/definitions/Coordinate'
eyeLeftBottom:
$ref: '#/definitions/Coordinate'
eyeLeftInner:
$ref: '#/definitions/Coordinate'
eyebrowRightInner:
$ref: '#/definitions/Coordinate'
eyebrowRightOuter:
$ref: '#/definitions/Coordinate'
eyeRightInner:
$ref: '#/definitions/Coordinate'
eyeRightTop:
$ref: '#/definitions/Coordinate'
eyeRightBottom:
$ref: '#/definitions/Coordinate'
eyeRightOuter:
$ref: '#/definitions/Coordinate'
noseRootLeft:
$ref: '#/definitions/Coordinate'
noseRootRight:
$ref: '#/definitions/Coordinate'
noseLeftAlarTop:
$ref: '#/definitions/Coordinate'
noseRightAlarTop:
$ref: '#/definitions/Coordinate'
noseLeftAlarOutTip:
$ref: '#/definitions/Coordinate'
noseRightAlarOutTip:
$ref: '#/definitions/Coordinate'
upperLipTop:
$ref: '#/definitions/Coordinate'
upperLipBottom:
$ref: '#/definitions/Coordinate'
underLipTop:
$ref: '#/definitions/Coordinate'
underLipBottom:
$ref: '#/definitions/Coordinate'
FaceAttributes:
type: object
description: Face Attributes
properties:
age:
type: number
description: Age in years
gender:
type: string
description: Possible gender of the face.
x-ms-enum:
name: Gender
modelAsString: false
enum:
- male
- female
smile:
description: 'Smile intensity, a number between [0,1] '
$ref: '#/definitions/Level'
facialHair:
description: Properties describing facial hair attributes.
$ref: '#/definitions/FacialHair'
glasses:
type: string
description: Glasses type if any of the face.
x-ms-enum:
name: GlassesType
modelAsString: false
enum:
- noGlasses
- readingGlasses
- sunglasses
- swimmingGoggles
headPose:
description: Properties indicating head pose of the face.
$ref: '#/definitions/HeadPose'
emotion:
description: >-
Properties describing facial emotion in form of confidence ranging
from 0 to 1.
$ref: '#/definitions/Emotion'
hair:
description: Properties describing hair attributes.
$ref: '#/definitions/Hair'
makeup:
description: Properties describing the presence of makeup on a given face.
$ref: '#/definitions/Makeup'
occlusion:
description: Properties describing occlusions on a given face.
$ref: '#/definitions/Occlusion'
accessories:
description: Properties describing any accessories on a given face.
$ref: '#/definitions/Accessories'
blur:
description: Properties describing any presence of blur within the image.
$ref: '#/definitions/Blur'
exposure:
description: Properties describing exposure level of the image.
$ref: '#/definitions/Exposure'
noise:
description: Properties describing noise level of the image.
$ref: '#/definitions/Noise'
mask:
description: Properties describing the presence of a mask on a given face.
$ref: '#/definitions/Mask'
qualityForRecognition:
type: string
description: >-
Properties describing the overall image quality regarding whether the
image being used in the detection is of sufficient quality to attempt
face recognition on.
x-ms-enum:
name: QualityForRecognition
modelAsString: false
enum:
- Low
- Medium
- High
FacialHair:
type: object
description: Properties describing facial hair attributes.
properties:
moustache:
x-nullable: false
$ref: '#/definitions/Confidence'
beard:
x-nullable: false
$ref: '#/definitions/Confidence'
sideburns:
x-nullable: false
$ref: '#/definitions/Confidence'
HeadPose:
type: object
description: Properties indicating head pose of the face.
properties:
roll:
type: number
x-nullable: false
yaw:
type: number
x-nullable: false
pitch:
type: number
x-nullable: false
Emotion:
type: object
description: >-
Properties describing facial emotion in form of confidence ranging from 0
to 1.
properties:
anger:
x-nullable: false
$ref: '#/definitions/Confidence'
contempt:
x-nullable: false
$ref: '#/definitions/Confidence'
disgust:
x-nullable: false
$ref: '#/definitions/Confidence'
fear:
x-nullable: false
$ref: '#/definitions/Confidence'
happiness:
x-nullable: false
$ref: '#/definitions/Confidence'
neutral:
x-nullable: false
$ref: '#/definitions/Confidence'
sadness:
x-nullable: false
$ref: '#/definitions/Confidence'
surprise:
x-nullable: false
$ref: '#/definitions/Confidence'
Hair:
type: object
description: Properties describing hair attributes.
properties:
bald:
description: A number describing confidence level of whether the person is bald.
x-nullable: false
$ref: '#/definitions/Confidence'
invisible:
type: boolean
description: A boolean value describing whether the hair is visible in the image.
x-nullable: false
hairColor:
description: >-
An array of candidate colors and confidence level in the presence of
each.
$ref: '#/definitions/HairColors'
HairColors:
type: array
items:
$ref: '#/definitions/HairColor'
HairColor:
type: object
description: Hair color and associated confidence
properties:
color:
type: string
description: Name of the hair color.
x-nullable: false
x-ms-enum:
name: HairColorType
modelAsString: false
enum:
- unknown
- white
- gray
- blond
- brown
- red
- black
- other
confidence:
x-nullable: false
description: Confidence level of the color
$ref: '#/definitions/Confidence'
Makeup:
type: object
description: Properties describing the presence of makeup on a given face.
properties:
eyeMakeup:
type: boolean
description: A boolean value describing whether eye makeup is present on a face.
x-nullable: false
lipMakeup:
type: boolean
description: A boolean value describing whether lip makeup is present on a face.
x-nullable: false
Occlusion:
type: object
description: Properties describing occlusions on a given face.
properties:
foreheadOccluded:
type: boolean
description: A boolean value indicating whether forehead is occluded.
x-nullable: false
eyeOccluded:
type: boolean
description: A boolean value indicating whether eyes are occluded.
x-nullable: false
mouthOccluded:
type: boolean
description: A boolean value indicating whether the mouth is occluded.
x-nullable: false
Accessories:
type: array
description: Properties describing any accessories on a given face.
items:
$ref: '#/definitions/Accessory'
Accessory:
type: object
description: Accessory item and corresponding confidence level.
properties:
type:
type: string
description: Type of an accessory
x-nullable: false
x-ms-enum:
name: AccessoryType
modelAsString: false
enum:
- headWear
- glasses
- mask
confidence:
x-nullable: false
description: Confidence level of an accessory
$ref: '#/definitions/Confidence'
Blur:
type: object
description: Properties describing any presence of blur within the image.
properties:
blurLevel:
type: string
description: An enum value indicating level of blurriness.
x-nullable: false
x-ms-enum:
name: BlurLevel
modelAsString: false
enum:
- Low
- Medium
- High
value:
description: A number indicating level of blurriness ranging from 0 to 1.
x-nullable: false
$ref: '#/definitions/Level'
Exposure:
type: object
description: Properties describing exposure level of the image.
properties:
exposureLevel:
type: string
description: An enum value indicating level of exposure.
x-nullable: false
x-ms-enum:
name: ExposureLevel
modelAsString: false
enum:
- UnderExposure
- GoodExposure
- OverExposure
value:
description: >-
A number indicating level of exposure level ranging from 0 to 1. [0,
0.25) is under exposure. [0.25, 0.75) is good exposure. [0.75, 1] is
over exposure.
x-nullable: false
$ref: '#/definitions/Level'
Noise:
type: object
description: Properties describing noise level of the image.
properties:
noiseLevel:
type: string
description: An enum value indicating level of noise.
x-nullable: false
x-ms-enum:
name: NoiseLevel
modelAsString: false
enum:
- Low
- Medium
- High
value:
description: >-
A number indicating level of noise level ranging from 0 to 1. [0,
0.25) is under exposure. [0.25, 0.75) is good exposure. [0.75, 1] is
over exposure. [0, 0.3) is low noise level. [0.3, 0.7) is medium noise
level. [0.7, 1] is high noise level.
x-nullable: false
$ref: '#/definitions/Level'
Mask:
type: object
description: Properties describing the presence of a mask on a given face.
properties:
type:
type: string
description: Mask type if any of the face
x-nullable: false
x-ms-enum:
name: MaskType
modelAsString: false
enum:
- noMask
- faceMask
- otherMaskOrOcclusion
- uncertain
noseAndMouthCovered:
type: boolean
description: A boolean value indicating whether nose and mouth are covered.
x-nullable: false
FindSimilarRequest:
type: object
required:
- faceId
description: Request body for find similar operation.
properties:
faceId:
type: string
format: uuid
description: >-
FaceId of the query face. User needs to call Face - Detect first to
get a valid faceId. Note that this faceId is not persisted and will
expire at the time specified by faceIdTimeToLive after the detection
call
faceListId:
type: string
description: >-
An existing user-specified unique candidate face list, created in Face
List - Create a Face List. Face list contains a set of
persistedFaceIds which are persisted and will never expire. Parameter
faceListId, largeFaceListId and faceIds should not be provided at the
same time.
maxLength: 64
pattern: ^[a-z0-9-_]+$
largeFaceListId:
type: string
description: >-
An existing user-specified unique candidate large face list, created
in LargeFaceList - Create. Large face list contains a set of
persistedFaceIds which are persisted and will never expire. Parameter
faceListId, largeFaceListId and faceIds should not be provided at the
same time.
maxLength: 64
pattern: ^[a-z0-9-_]+$
faceIds:
type: array
description: >-
An array of candidate faceIds. All of them are created by Face -
Detect and the faceIds will expire at the time specified by
faceIdTimeToLive after the detection call. The number of faceIds is
limited to 1000. Parameter faceListId, largeFaceListId and faceIds
should not be provided at the same time.
maxItems: 1000
items:
type: string
format: uuid
maxNumOfCandidatesReturned:
type: integer
description: >-
The number of top similar faces returned. The valid range is [1,
1000].
default: 20
minimum: 1
maximum: 1000
mode:
type: string
description: Similar face searching mode. It can be "matchPerson" or "matchFace".
default: matchPerson
x-nullable: false
x-ms-enum:
name: FindSimilarMatchMode
modelAsString: false
enum:
- matchPerson
- matchFace
SimilarFaces:
type: array
items:
$ref: '#/definitions/SimilarFace'
SimilarFace:
type: object
required:
- confidence
description: Response body for find similar face operation.
properties:
faceId:
type: string
format: uuid
description: >-
FaceId of candidate face when find by faceIds. faceId is created by
Face - Detect and will expire at the time specified by
faceIdTimeToLive after the detection call
persistedFaceId:
type: string
format: uuid
description: >-
PersistedFaceId of candidate face when find by faceListId.
persistedFaceId in face list is persisted and will not expire. As
showed in below response
confidence:
description: >-
Similarity confidence of the candidate face. The higher confidence,
the more similar. Range between [0,1].
$ref: '#/definitions/Confidence'
GroupRequest:
type: object
required:
- faceIds
description: Request body for group request.
properties:
faceIds:
type: array
description: >-
Array of candidate faceId created by Face - Detect. The maximum is
1000 faces
maxItems: 1000
items:
type: string
format: uuid
x-nullable: false
GroupResult:
type: object
required:
- groups
description: An array of face groups based on face similarity.
properties:
groups:
type: array
description: >-
A partition of the original faces based on face similarity. Groups are
ranked by number of faces
items:
type: array
items:
type: string
format: uuid
x-nullable: false
messyGroup:
type: array
description: >-
Face ids array of faces that cannot find any similar faces from
original faces.
items:
type: string
format: uuid
x-nullable: false
IdentifyRequest:
type: object
required:
- faceIds
description: Request body for identify face operation.
properties:
faceIds:
type: array
description: >-
Array of query faces faceIds, created by the Face - Detect. Each of
the faces are identified independently. The valid number of faceIds is
between [1, 10].
maxItems: 10
items:
type: string
format: uuid
x-nullable: false
personGroupId:
description: >-
PersonGroupId of the target person group, created by PersonGroup -
Create. Parameter personGroupId, largePersonGroupId,
dynamicPersonGroupId, or personIds should not be provided at the same
time.
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
largePersonGroupId:
description: >-
LargePersonGroupId of the target large person group, created by
LargePersonGroup - Create. Parameter personGroupId,
largePersonGroupId, dynamicPersonGroupId, or personIds should not be
provided at the same time.
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
dynamicPersonGroupId:
description: >-
DynamicPersonGroupId of the target PersonDirectory dynamic person
group to match against. Parameter personGroupId, largePersonGroupId,
dynamicPersonGroupId, or personIds should not be provided at the same
time.
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
personIds:
description: >-
Array of personIds created in PersonDirectory - PersonCreate. The
valid number of personIds is between [1,30]. Providing a single '*' in
the array identifies against all persons inside the PersonDirectory.
Parameter personGroupId, largePersonGroupId, dynamicPersonGroupId, or
personIds should not be provided at the same time.
type: array
maxItems: 30
items:
type: string
x-nullable: false
maxNumOfCandidatesReturned:
type: integer
description: >-
The range of maxNumOfCandidatesReturned is between 1 and 100 (default
is 1).
default: 1
minimum: 1
maximum: 100
confidenceThreshold:
description: >-
Confidence threshold of identification, used to judge whether one face
belong to one person. The range of confidenceThreshold is [0, 1]
(default specified by algorithm).
$ref: '#/definitions/Confidence'
IdentifyResults:
type: array
items:
$ref: '#/definitions/IdentifyResult'
IdentifyResult:
type: object
required:
- faceId
- candidates
description: Response body for identify face operation.
properties:
faceId:
type: string
format: uuid
description: FaceId of the query face
candidates:
type: array
description: >-
Identified person candidates for that face (ranked by confidence).
Array size should be no larger than input maxNumOfCandidatesReturned.
If no person is identified, will return an empty array.
items:
$ref: '#/definitions/IdentifyCandidate'
IdentifyCandidate:
type: object
required:
- personId
- confidence
description: All possible faces that may qualify.
properties:
personId:
type: string
format: uuid
description: Id of candidate
confidence:
description: >-
Confidence threshold of identification, used to judge whether one face
belong to one person. The range of confidenceThreshold is [0, 1]
(default specified by algorithm).
$ref: '#/definitions/Confidence'
VerifyFaceToPersonRequest:
type: object
required:
- faceId
- personId
description: Request body for face to person verification.
properties:
faceId:
type: string
format: uuid
description: FaceId of the face, comes from Face - Detect
personGroupId:
description: >-
Using existing personGroupId and personId for fast loading a specified
person. personGroupId is created in PersonGroup - Create. Parameter
personGroupId and largePersonGroupId should not be provided at the
same time.
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
largePersonGroupId:
description: >-
Using existing largePersonGroupId and personId for fast loading a
specified person. largePersonGroupId is created in LargePersonGroup -
Create. Parameter personGroupId and largePersonGroupId should not be
provided at the same time.
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
personId:
type: string
format: uuid
description: >-
Specify a certain person in a person group, a large person group, or
person directory (if personGroupId and largePersonGroupId are
omitted). personId is created in PersonGroup Person - Create or
LargePersonGroup Person - Create or PersonDirectory - Create.
VerifyFaceToFaceRequest:
type: object
required:
- faceId1
- faceId2
description: Request body for face to face verification.
properties:
faceId1:
type: string
format: uuid
description: FaceId of the first face, comes from Face - Detect
faceId2:
type: string
format: uuid
description: FaceId of the second face, comes from Face - Detect
VerifyResult:
type: object
required:
- isIdentical
- confidence
description: Result of the verify operation.
properties:
isIdentical:
type: boolean
description: >-
True if the two faces belong to the same person or the face belongs to
the person, otherwise false.
confidence:
description: >-
A number indicates the similarity confidence of whether two faces
belong to the same person, or whether the face belongs to the person.
By default, isIdentical is set to True if similarity confidence is
greater than or equal to 0.5. This is useful for advanced users to
override "isIdentical" and fine-tune the result on their own data.
$ref: '#/definitions/Confidence'
FaceList:
description: Face list object.
type: object
required:
- faceListId
- name
properties:
faceListId:
type: string
description: FaceListId of the target face list.
maxLength: 64
pattern: ^[a-z0-9-_]+$
name:
type: string
description: User defined name, maximum length is 128.
maxLength: 128
minLength: 1
userData:
type: string
description: User specified data. Length should not exceed 16KB.
maxLength: 16384
recognitionModel:
$ref: '#/definitions/RecognitionModel'
persistedFaces:
description: Persisted faces within the face list.
$ref: '#/definitions/PersistedFaces'
FaceLists:
type: array
description: >-
An array of face list results, with fields of faceListId, name and
userData
items:
$ref: '#/definitions/FaceList'
PersonGroup:
type: object
required:
- personGroupId
- name
description: Person group object.
properties:
personGroupId:
description: PersonGroupId of the target person group.
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
name:
type: string
description: User defined name, maximum length is 128.
maxLength: 128
minLength: 1
userData:
type: string
description: User specified data. Length should not exceed 16KB.
maxLength: 16384
recognitionModel:
$ref: '#/definitions/RecognitionModel'
PersonGroups:
type: array
description: An array of person groups.
items:
$ref: '#/definitions/PersonGroup'
Person:
type: object
required:
- personId
description: Person object.
properties:
personId:
type: string
format: uuid
description: PersonId of the target face list.
persistedFaceIds:
type: array
description: >-
PersistedFaceIds of registered faces in the person. These
persistedFaceIds are returned from Person - Add a Person Face, and
will not expire.
items:
type: string
format: uuid
x-nullable: false
allOf:
- $ref: '#/definitions/NameAndUserDataContract'
Persons:
type: array
description: An array of Persons.
items:
$ref: '#/definitions/Person'
PersistedFace:
type: object
required:
- persistedFaceId
description: PersonFace object.
properties:
persistedFaceId:
type: string
format: uuid
description: >-
The persistedFaceId of the target face, which is persisted and will
not expire. Different from faceId created by Face - Detect and will
expire in at the time specified by faceIdTimeToLive after the
detection call.
userData:
type: string
description: User-provided data attached to the face. The size limit is 1KB.
maxLength: 1024
PersistedFaces:
type: array
description: An array of persisted faces within the face list or large face list.
items:
$ref: '#/definitions/PersistedFace'
LargeFaceList:
description: Large face list object.
type: object
required:
- largeFaceListId
- name
properties:
largeFaceListId:
type: string
description: LargeFaceListId of the target large face list.
maxLength: 64
pattern: ^[a-z0-9-_]+$
name:
type: string
description: User defined name, maximum length is 128.
maxLength: 128
minLength: 1
userData:
type: string
description: User specified data. Length should not exceed 16KB.
maxLength: 16384
recognitionModel:
$ref: '#/definitions/RecognitionModel'
LargeFaceLists:
type: array
description: >-
An array of large face list results, with fields of largeFaceListId, name
and userData
items:
$ref: '#/definitions/LargeFaceList'
LargePersonGroup:
type: object
required:
- largePersonGroupId
- name
description: Large person group object.
properties:
largePersonGroupId:
description: LargePersonGroupId of the target large person groups
type: string
maxLength: 64
pattern: ^[a-z0-9-_]+$
name:
type: string
description: User defined name, maximum length is 128.
maxLength: 128
minLength: 1
userData:
type: string
description: User specified data. Length should not exceed 16KB.
maxLength: 16384
recognitionModel:
$ref: '#/definitions/RecognitionModel'
LargePersonGroups:
type: array
description: An array of large person groups.
items:
$ref: '#/definitions/LargePersonGroup'
UpdateFaceRequest:
type: object
description: Request to update face data.
properties:
userData:
type: string
description: User-provided data attached to the face. The size limit is 1KB.
maxLength: 1024
TrainingStatus:
type: object
required:
- status
- createdDateTime
description: Training status object.
properties:
status:
type: string
description: >-
Training status: notstarted, running, succeeded, failed. If the
training process is waiting to perform, the status is notstarted. If
the training is ongoing, the status is running. Status succeed means
this person group or large person group is ready for Face - Identify,
or this large face list is ready for Face - Find Similar. Status
failed is often caused by no person or no persisted face exist in the
person group or large person group, or no persisted face exist in the
large face list.
x-ms-enum:
name: TrainingStatusType
modelAsString: false
enum:
- nonstarted
- running
- succeeded
- failed
createdDateTime:
type: string
format: date-time
description: >-
A combined UTC date and time string that describes the created time of
the person group, large person group or large face list.
x-ms-client-name: created
lastActionDateTime:
type: string
format: date-time
description: >-
A combined UTC date and time string that describes the last modify
time of the person group, large person group or large face list, could
be null value when the group is not successfully trained.
x-ms-client-name: lastAction
lastSuccessfulTrainingDateTime:
type: string
format: date-time
description: >-
A combined UTC date and time string that describes the last successful
training time of the person group, large person group or large face
list.
x-ms-client-name: lastSuccessfulTraining
message:
type: string
description: >-
Show failure message when training failed (omitted when training
succeed).
Confidence:
description: >-
A number ranging from 0 to 1 indicating a level of confidence associated
with a property.
type: number
minimum: 0
maximum: 1
Level:
description: >-
A number ranging from 0 to 1 indicating the intensity level associated
with a property.
type: number
minimum: 0
maximum: 1
NameAndUserDataContractForCreation:
type: object
description: >-
A combination of user defined name and user specified data for the person,
largePersonGroup/personGroup, and largeFaceList/faceList.
required:
- name
properties:
name:
type: string
description: User defined name, maximum length is 128.
maxLength: 128
minLength: 1
userData:
type: string
description: User specified data. Length should not exceed 16KB.
maxLength: 16384
NameAndUserDataContract:
type: object
description: >-
A combination of user defined name and user specified data for the person,
largePersonGroup/personGroup, and largeFaceList/faceList.
properties:
name:
type: string
description: User defined name, maximum length is 128.
maxLength: 128
userData:
type: string
description: User specified data. Length should not exceed 16KB.
maxLength: 16384
MetaDataContract:
type: object
description: >-
A combination of user defined name and user specified data and recognition
model name for largePersonGroup/personGroup, and largeFaceList/faceList.
properties:
recognitionModel:
$ref: '#/definitions/RecognitionModel'
allOf:
- $ref: '#/definitions/NameAndUserDataContractForCreation'
RecognitionModel:
type: string
description: >-
Name of recognition model. Recognition model is used when the face
features are extracted and associated with detected faceIds,
(Large)FaceList or (Large)PersonGroup. A recognition model name can be
provided when performing Face - Detect or (Large)FaceList - Create or
(Large)PersonGroup - Create. The default value is 'recognition_01', if
latest model needed, please explicitly specify the model you need.
default: recognition_01
x-nullable: false
x-ms-enum:
name: RecognitionModel
modelAsString: true
enum:
- recognition_01
- recognition_02
- recognition_03
- recognition_04
ApplyScope:
type: array
description: >-
Array of the target Face subscription ids for the snapshot, specified by
the user who created the snapshot when calling Snapshot - Take. For each
snapshot, only subscriptions included in the applyScope of Snapshot - Take
can apply it.
items:
type: string
format: uuid
x-nullable: false
ApplySnapshotRequest:
type: object
required:
- objectId
description: Request body for applying snapshot operation.
properties:
objectId:
type: string
description: User specified target object id to be created from the snapshot.
maxLength: 64
pattern: ^[a-z0-9-_]+$
mode:
type: string
description: >-
Snapshot applying mode. Currently only CreateNew is supported, which
means the apply operation will fail if target subscription already
contains an object of same type and using the same objectId. Users can
specify the "objectId" in request body to avoid such conflicts.
default: CreateNew
x-nullable: false
x-ms-enum:
name: SnapshotApplyMode
modelAsString: false
enum:
- CreateNew
Snapshots:
type: array
description: An array of snapshots.
items:
$ref: '#/definitions/Snapshot'
Snapshot:
type: object
required:
- id
- account
- type
- applyScope
- createdTime
- lastUpdateTime
description: >-
Snapshot object. The Snapshot API will move your data outside the geo you
select for your resource to West US, West Europe and Southeast Asia.
properties:
id:
type: string
format: uuid
description: Snapshot id.
account:
type: string
description: >-
Azure Cognitive Service Face account id of the subscriber who created
the snapshot by Snapshot - Take.
type:
type: string
description: >-
Type of the source object in the snapshot, specified by the subscriber
who created the snapshot when calling Snapshot - Take. Currently
FaceList, PersonGroup, LargeFaceList and LargePersonGroup are
supported.
x-ms-enum:
name: SnapshotObjectType
modelAsString: false
enum:
- FaceList
- LargeFaceList
- LargePersonGroup
- PersonGroup
applyScope:
description: >-
Array of the target Face subscription ids for the snapshot, specified
by the user who created the snapshot when calling Snapshot - Take. For
each snapshot, only subscriptions included in the applyScope of
Snapshot - Take can apply it.
$ref: '#/definitions/ApplyScope'
userData:
type: string
description: >-
User specified data about the snapshot for any purpose. Length should
not exceed 16KB.
maxLength: 16384
createdTime:
type: string
format: date-time
description: >-
A combined UTC date and time string that describes the created time of
the snapshot. E.g. 2018-12-25T11:41:02.2331413Z.
lastUpdateTime:
type: string
format: date-time
description: >-
A combined UTC date and time string that describes the last time when
the snapshot was created or updated by Snapshot - Update. E.g.
2018-12-25T11:51:27.8705696Z.
TakeSnapshotRequest:
type: object
required:
- type
- objectId
- applyScope
description: Request body for taking snapshot operation.
properties:
type:
type: string
description: >-
User specified type for the source object to take snapshot from.
Currently FaceList, PersonGroup, LargeFaceList and LargePersonGroup
are supported.
x-ms-enum:
name: SnapshotObjectType
modelAsString: false
enum:
- FaceList
- LargeFaceList
- LargePersonGroup
- PersonGroup
objectId:
type: string
description: User specified source object id to take snapshot from.
maxLength: 64
pattern: ^[a-z0-9-_]+$
applyScope:
description: >-
User specified array of target Face subscription ids for the snapshot.
For each snapshot, only subscriptions included in the applyScope of
Snapshot - Take can apply it.
$ref: '#/definitions/ApplyScope'
userData:
type: string
description: >-
User specified data about the snapshot for any purpose. Length should
not exceed 16KB.
maxLength: 16384
UpdateSnapshotRequest:
type: object
description: >-
Request body for updating a snapshot, with a combination of user defined
apply scope and user specified data.
properties:
applyScope:
description: >-
Array of the target Face subscription ids for the snapshot, specified
by the user who created the snapshot when calling Snapshot - Take. For
each snapshot, only subscriptions included in the applyScope of
Snapshot - Take can apply it.
$ref: '#/definitions/ApplyScope'
userData:
type: string
description: >-
User specified data about the snapshot for any purpose. Length should
not exceed 16KB.
maxLength: 16384
PersistedFaceResponse:
type: object
properties:
persistedFaceId:
format: uuid
type: string
userData:
type: string
AsyncOperationStatus:
enum:
- notStarted
- running
- succeeded
- failed
type: string
description: >-
Operation status: notstarted, running, succeeded, failed. If the operation
is requested and waiting to perform, the status is notstarted. If the
operation is ongoing in backend, the status is running. Status succeeded
means the operation is completed successfully, specifically for snapshot
taking operation, it illustrates the snapshot is well taken and ready to
apply, and for snapshot applying operation, it presents the target object
has finished creating by the snapshot and ready to be used. Status failed
is often caused by editing the source object while taking the snapshot or
editing the target object while applying the snapshot before completion,
see the field "message" to check the failure reason.
x-ms-enum:
name: OperationStatusType
modelAsString: false
OperationStatus:
type: object
required:
- status
- createdTime
description: Operation status object. Operation refers to an asynchronous backend task.
properties:
status:
$ref: '#/definitions/AsyncOperationStatus'
createdTime:
format: date-time
type: string
description: >-
A combined UTC date and time string that describes the time when the
operation is requested. E.g. 2018-12-25T11:41:02.2331413Z.
lastActionTime:
format: date-time
type: string
description: >-
A combined UTC date and time string that describes the last time the
operation is actively running. The lastActionTime will keep increasing
until the operation finishes. E.g. 2018-12-25T11:51:27.8705696Z.
finishedTime:
format: date-time
type: string
description: >-
A combined UTC date and time string that describes the time when the
operation finished. E.g. 2018-12-25T11:41:02.2331413Z.
resourceLocation:
type: string
description: >-
When the operation succeeds successfully, for snapshot taking
operation the snapshot id will be included in this field, and for
snapshot applying operation, the path to get the target object will be
returned in this field.
message:
type: string
description: >-
Show failure message when operation fails (omitted when operation
succeeds).
EnrollmentResponse:
type: object
properties:
personId:
format: uuid
type: string
x-nullable: false
name:
type: string
userData:
type: string
EnrolledPerson:
type: object
properties:
personId:
format: uuid
type: string
description: Person id.
x-nullable: false
name:
type: string
description: User defined name, maximum length is 128.
userData:
type: string
description: User specified data. Length should not exceed 16KB.
PersonCreationResponse:
type: object
properties:
personId:
format: uuid
type: string
x-nullable: false
EnrollmentRequest:
type: object
properties:
name:
type: string
description: User defined name, maximum length is 128.
userData:
type: string
description: User specified data. Length should not exceed 16KB.
EnrollmentPrintResponse:
type: object
properties:
persistedFaceId:
format: uuid
type: string
x-nullable: false
recognitionModel:
type: string
userData:
type: string
PersonResponse:
type: object
properties:
personId:
format: uuid
type: string
x-nullable: false
persistedFaceIds:
type: array
items:
format: uuid
type: string
x-nullable: false
name:
type: string
userData:
type: string
DetectionModel:
enum:
- detection_01
- detection_02
- detection_03
- detection_preview_1904
- ir_detection_01
- expression_01
type: string
description: Detection model used when extracting the face.
PersistedFaceWithType:
type: object
properties:
detectionModel:
$ref: '#/definitions/DetectionModel'
faceFeature:
format: byte
type: string
persistedFaceId:
format: uuid
type: string
userData:
type: string
DynamicPersonGroupCreateRequest:
type: object
properties:
name:
type: string
description: User defined name, maximum length is 128.
userData:
type: string
description: User specified data. Length should not exceed 16KB.
addPersonIds:
type: array
description: Person ids to add to the dynamic person group.
items:
format: uuid
type: string
x-nullable: false
DynamicPersonGroupUpdateRequest:
type: object
properties:
name:
type: string
description: User defined name, maximum length is 128.
userData:
type: string
description: User specified data. Length should not exceed 16KB.
addPersonIds:
type: array
description: Person ids to add to the dynamic person group.
items:
format: uuid
type: string
x-nullable: false
removePersonIds:
type: array
description: Person ids to remove from the dynamic person group.
items:
type: string
DynamicPersonGroupGetResponse:
type: object
properties:
dynamicPersonGroupId:
type: string
name:
type: string
userData:
type: string
DynamicPersonGroupListPersonsResponse:
type: object
properties:
personIds:
type: array
items:
format: uuid
type: string
x-nullable: false
PersonDynamicPersonGroupReferenceResponse:
type: object
properties:
personId:
format: uuid
type: string
x-nullable: false
dynamicPersonGroupIds:
type: array
items:
type: string
parameters:
returnFaceAttributes:
name: returnFaceAttributes
in: query
description: >-
Analyze and return the one or more specified face attributes in the
comma-separated string like "returnFaceAttributes=age,gender". The
available attributes depends on the 'detectionModel' specified.
'detection_01' supports age, gender, headPose, smile, facialHair, glasses,
emotion, hair, makeup, occlusion, accessories, blur, exposure, noise, and
qualityForRecognition. While 'detection_02' does not support any
attributes and 'detection_03' only supports mask and
qualityForRecognition. Additionally, qualityForRecognition is only
supported when the 'recognitionModel' is specified as 'recognition_03' or
'recognition_04'. Note that each face attribute analysis has additional
computational and time cost.
type: array
x-ms-parameter-location: method
required: false
collectionFormat: csv
items:
type: string
x-nullable: false
x-ms-enum:
name: FaceAttributeType
modelAsString: false
enum:
- age
- gender
- headPose
- smile
- facialHair
- glasses
- emotion
- hair
- makeup
- occlusion
- accessories
- blur
- exposure
- noise
- mask
- qualityForRecognition
targetFace:
name: targetFace
in: query
description: >-
A face rectangle to specify the target face to be added to a person in the
format of "targetFace=left,top,width,height". E.g.
"targetFace=10,10,100,100". If there is more than one face in the image,
targetFace is required to specify which face to add. No targetFace means
there is only one face detected in the entire image.
type: array
x-ms-parameter-location: method
required: false
collectionFormat: csv
items:
type: integer
format: int32
x-nullable: false
maxItems: 4
minItems: 4
faceUserData:
name: userData
in: query
description: >-
User-specified data about the face for any purpose. The maximum length is
1KB.
type: string
maxLength: 1024
x-ms-parameter-location: method
required: false
collectionFormat: csv
faceListId:
name: faceListId
in: path
description: Id referencing a particular face list.
required: true
type: string
x-ms-parameter-location: method
collectionFormat: csv
maxLength: 64
pattern: ^[a-z0-9-_]+$
personGroupId:
name: personGroupId
in: path
description: Id referencing a particular person group.
required: true
type: string
x-ms-parameter-location: method
collectionFormat: csv
maxLength: 64
pattern: ^[a-z0-9-_]+$
largeFaceListId:
name: largeFaceListId
in: path
description: Id referencing a particular large face list.
required: true
type: string
x-ms-parameter-location: method
collectionFormat: csv
maxLength: 64
pattern: ^[a-z0-9-_]+$
largePersonGroupId:
name: largePersonGroupId
in: path
description: Id referencing a particular large person group.
required: true
type: string
x-ms-parameter-location: method
collectionFormat: csv
maxLength: 64
pattern: ^[a-z0-9-_]+$
personId:
name: personId
in: path
description: Id referencing a particular person.
required: true
type: string
format: uuid
x-ms-parameter-location: method
collectionFormat: csv
persistedFaceId:
name: persistedFaceId
in: path
description: Id referencing a particular persistedFaceId of an existing face.
required: true
type: string
format: uuid
x-ms-parameter-location: method
collectionFormat: csv
applyScope:
name: applyScope
description: >-
User specified snapshot apply scopes as a search filter. ApplyScope is an
array of the target Azure subscription ids for the snapshot, specified by
the user who created the snapshot by Snapshot - Take.
in: query
required: false
type: array
x-ms-parameter-location: method
collectionFormat: csv
items:
type: string
format: uuid
x-nullable: false
operationId:
name: operationId
in: path
description: Id referencing a particular take/apply snapshot operation.
required: true
type: string
format: uuid
x-ms-parameter-location: method
collectionFormat: csv
snapshotId:
name: snapshotId
in: path
description: Id referencing a particular snapshot.
required: true
type: string
format: uuid
x-ms-parameter-location: method
collectionFormat: csv
Endpoint:
name: Endpoint
description: >-
Supported Cognitive Services endpoints (protocol and hostname, for
example: https://westus.api.cognitive.microsoft.com).
x-ms-parameter-location: client
required: true
type: string
in: path
x-ms-skip-url-encoding: true
recognitionModel:
name: recognitionModel
description: >-
Name of recognition model. Recognition model is used when the face
features are extracted and associated with detected faceIds,
(Large)FaceList or (Large)PersonGroup. A recognition model name can be
provided when performing Face - Detect or (Large)FaceList - Create or
(Large)PersonGroup - Create. The default value is 'recognition_01', if
latest model needed, please explicitly specify the model you need.
default: recognition_01
required: false
type: string
in: query
x-ms-parameter-location: method
x-nullable: false
x-ms-enum:
name: RecognitionModel
modelAsString: true
enum:
- recognition_01
- recognition_02
- recognition_03
- recognition_04
returnRecognitionModel:
name: returnRecognitionModel
description: >-
A value indicating whether the operation should return 'recognitionModel'
in response.
default: false
required: false
type: boolean
in: query
x-ms-parameter-location: method
detectionModel:
name: detectionModel
description: >-
Name of detection model. Detection model is used to detect faces in the
submitted image. A detection model name can be provided when performing
Face - Detect or (Large)FaceList - Add Face or (Large)PersonGroup - Add
Face. The default value is 'detection_01', if another model is needed,
please explicitly specify it.
default: detection_01
required: false
type: string
in: query
x-ms-parameter-location: method
x-nullable: false
x-ms-enum:
name: DetectionModel
modelAsString: true
enum:
- detection_01
- detection_02
- detection_03
returnFaceId:
name: returnFaceId
in: query
x-ms-parameter-location: method
description: >-
A value indicating whether the operation should return faceIds of detected
faces. Detecting with this value set to true requires additional access
approvals at https://aka.ms/facerecognition.
type: boolean
returnFaceLandmarks:
name: returnFaceLandmarks
in: query
x-ms-parameter-location: method
description: >-
A value indicating whether the operation should return landmarks of the
detected faces.
type: boolean
default: false
faceIdTimeToLive:
name: faceIdTimeToLive
in: query
x-ms-parameter-location: method
description: >-
The number of seconds for the faceId being cached. Supported range from 60
seconds up to 86400 seconds. The default value is 86400 (24 hours).
type: integer
default: 86400
minimum: 60
maximum: 86400
tags:
- name: Detect
- name: Facelists
- name: Findsimilars
- name: Group
- name: Identify
- name: Largefacelists
- name: Largepersongroups
- name: Operations
- name: PersonDirectory
- name: Persongroups
- name: Snapshots
- name: Verify