Вычисление PersonID (Azure Face API)

Я хотел бы знать, как вычисляется строка PersonID (полученная после вызова метода PersonGroup Person - Create API Face). В частности, я хотел бы знать, можно ли восстановить из него какую-либо информацию (например, поля «name» и «userData») без вызова специальной функции API Person Group Person - Get.

Заранее спасибо.


person SergiRovira    schedule 03.12.2019    source источник
comment
Привет, есть ли у вас еще какие-либо опасения по этому поводу?   -  person Stanley Gong    schedule 12.12.2019
comment
Спасибо за Ваш ответ! Я хотел бы знать, что такое явное вычисление, которое выводит строку PersonID (например, вывод хэша).   -  person SergiRovira    schedule 12.12.2019


Ответы (2)


Строка PersonID здесь - это просто GUID. Если вы создаете персию, служба Azure Face предоставит вам GUID в качестве идентификатора этого человека. В качестве идентификатора PersonID не имеет отношения к таким деталям личности, как «имя» и «пользовательские данные».

Если вы хотите получить некоторую информацию о персоне, я боюсь использовать API-функция Person Group Person - Get - единственный способ.

person Stanley Gong    schedule 11.12.2019

Если вы имеете в виду вернуть информацию, которую вы указали в параметрах метода create(), да, вы можете получить это из результатов client.person_group_person.create().

Метод create() объекта PersonGroupPerson имеет следующие поля в качестве параметров: person_group_id, name, user_data, custom_headers, raw и operation_config. Таким образом, вы можете добавлять к ним значения при создании нового PersonGroupPerson. После вызова этого метода возвращается объект Person со следующими свойствами: name, user_data, person_id, persisted_face_ids. Например, вот что вы могли бы сделать:

# Create a new Person object and add that image to it.
new_person = client.person_group_person.create(person_group_id, name)
img = open(image_name, 'rb')
# Add the new person to your Person object and your person group
face_client.person_group_person.add_face_from_stream(person_group_id, new_person.person_id, img)
print('New Person Created:', new_person.name)

В приведенном выше примере вы получаете person_id и name из результатов вашего create() вызова. Итак, какие бы параметры вы ни добавили в create(), их можно извлечь из результата.

Однако это просто общая информация о человеке, вы еще не добавили изображения (лица) этого человека в этот объект Person, если вы не вызываете add_face_from_stream() или add_face_from_url().

Если вам интересно, как создается идентификатор человека, у Microsoft есть исходный код, доступный на Github.

Группа людей Операции с людьми: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/cognitiveservices/azure-cognitiveservices-vision-face/azure/cognitiveservices/vision/лицо/операции/_person_group_person_operations.py

Класс человека (строка 1213): https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/cognitiveservices/azure-cognitiveservices-vision-face/azure/cognitiveservices/vision/face/models/_models.py

person Azurespot    schedule 28.02.2020