Recognize

Данный метод позволяет распознать person по заданной фотографии. В случае, если совпадение не найдено, будет добавлен новый person.

Запрос

Авторизационные данные передаются в строке запроса:


ПараметрТипЗначение
oauth_tokenstringOAuth2 access token (required non-empty)
oauth_providerstring

провайдер OAuth2 (required non-empty)

Поддерживаемые провайдеры OAuth2:


ПровайдерЗначение oauth_providerПолучение токена
Mail.Rumcs

Смотрите в статье


Параметры запроса передаются в формате JSON в теле запроса с name="meta":


ПараметрТипПо умолчаниюЗначение
spacestring--

числовой идентификатор, используемый для избежания пересечений по персонам (required non-empty)

create_newboolfalse

добавлять ли новый person, если не было найдено совпадений


images[]image_meta--

метаданные передаваемых изображений (required non-empty)

Параметр space используется для избежания пересечений по person. Таким образом, person1 из space 0 и person1 из space 1 разные. Для приложений, решающих различные задачи, имеет смысл использовать различные значения space.

Клиент может иметь до 10 различных spaceзначения space изменяются от "0" до "9" В случае превышения лимита вернется ошибка.

image_meta

ПараметрТипЗначение
namestringимена файлов для сопоставления файлов в запросе и ответе (required non-empty)

Изображения передаются в теле запроса, значения поля name должны соответствовать переданным в images. Максимальное количество изображений в одном запросе равняется 100. Максимальный размер каждого изображения не должен превышать 4МБ.

 

Пример запроса:


POST /api/v1/persons/recognize?oauth_provider=mcs&oauth_token=123 HTTP/1.1

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfCqTBHeLZlsicvMp

------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_0"; filename=""
Content-Type: image/jpeg


000000000000000000000000000
000000000000000000000000000
000000000000000000000000000 
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_1"; filename=""
Content-Type: image/jpeg


111111111111111111111111111
111111111111111111111111111
111111111111111111111111111
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_2"; filename=""
Content-Type: image/jpeg


22222222222222222222222222222
22222222222222222222222222222
22222222222222222222222222222
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_3"; filename=""
Content-Type: image/jpeg


333333333333333333333333333 
333333333333333333333333333
333333333333333333333333333
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_4"; filename=""
Content-Type: image/jpeg


444444444444444444444444444
444444444444444444444444444
444444444444444444444444444
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="meta"

{"space":"0", "images":[{"name":"file_0"},{"name":"file_1"},{"name":"file_2"},{"name":"file_3"},{"name":"file_4"}]}
------WebKitFormBoundaryfCqTBHeLZlsicvMp--

Ответ

ПараметрТипЗначение
status int 200 в случае успеха, иначе описание ошибки будет в body
body string | responseтело ответа

response

ПараметрТипЗначение
objectsintмассив ответов для каждого файла
aliases_changed bool изменились ли алиасы

object

ПараметрТипЗначение
status enum результат выполнения
error string текстовое описание ошибки (optional)
name string имя файла для сопоставления файлов в запросе и ответе
persons []personмассив персон, найденных на фото (optional)

status

ПараметрЗначение
0успешно
1перманентная ошибка
2

временная ошибка

person

ПараметрТипЗначение
tag string идентификатор найденной персоны
coord[]intкоординаты найденного лица [left x, top y, right x, bottom y]
aliases []stringмассив похожих персон (optional)
confidencefloatстепень уверенности детектора лиц в том, что найденное изображение является лицом (от 0 до 1)
awesomenessfloat

условная "крутость" фотографии (от 0 до 1)

Значение tag может равняться "undefined" в случае, если значение create_new в запросе равнялось false, и по предоставленному изображению в базе не был найден соответствующий person.

Пример ответа:


{

"status":200,

"body":{

"objects":[

{

"status":0,

"name":"file_0"

},

{

"status":1,

"name":"file_1",

"error":"The memory contains data of an unknown image type"

},

{

"status":0,

"name":"file_2",

"persons":[

{

"tag":"person9"

"coord":[149,60,234,181],

"confidence":0.9999,

"awesomeness":0.45

},

{

"tag":"person10"

"coord":[159,70,224,171],

"confidence":0.9998,

"awesomeness":0.32

}

]

},


{

"status":0,

"name":"file_3",

"persons":[

   {

"tag":"person11",

"coord":[157,60,232,111],

"aliases":["person12", "person13"]

"confidence":0.9998,

"awesomeness":0.32

   }

]

},

{

"status":0,

"name":"file_4",

"persons":[

   {

"tag":"undefined"

"coord":[147,50,222,121],

"confidence":0.9997,

"awesomeness":0.26

   }

]

}






],

"aliases_changed":false

},

"htmlencoded":false,

"last_modified":0

}