Тестовые запросы¶
Перед тем как приступить к программированию и использованию распознавания лиц в своем приложении, убедитесь, что компоненты Сервера FindFace работают надлежащим образом. Для этого выполните по порядку приведенные ниже тестовые запросы. Для того чтобы структурировать текст ответов на запросы, используйте обработчик JSON jq.
Примечание
Сообщения запросов приведены в качестве примера. Вам потребуется заменить токен авторизации в запросах на актуальный.
Совет
Вы можете найти примеры кода на C#, PHP, Java и Python на нашем ресурсе GitHub.
В этом разделе:
Структурирование ответов на запросы¶
Используйте обработчик jq, чтобы структурировать данные в формате JSON в ответах на запросы. Для того чтобы установить jq, выполните команду:
sudo apt-get install jq
Получение списка галерей¶
Данный запрос возвращает имя единственной на данный момент галереи (создана по умолчанию). Соответствующий метод REST API: /galleries GET.
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" http://localhost:8000/v0/galleries | jq
Ответ
{
"results": [
"default"
]
}
Создание галереи¶
Данный запрос создает новую галерею testgal
. Соответствующий метод REST API: /galleries/new POST.
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -X POST http://localhost:8000/v0/galleries/testgal | jq
Ответ
{
"name": "testgal"
}
Обнаружение лица на фотографии¶
Данный запрос обнаруживает лицо на тестовом изображении, размещенном в сети Интернет, и возвращает координаты рамки вокруг лица (bbox). Соответствующий метод REST API: /detect POST.
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F "photo=http://static.findface.pro/sample.jpg" http://localhost:8000/v0/detect | jq
Ответ
{
"faces": [
{
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
],
"orientation": 1
}
Добавление лица в галерею¶
Данный запрос обрабатывает тестовое изображение из предыдущего запроса, обнаруживает лицо и добавляет его с уникальной меткой в галерею по умолчанию. Соответствующий метод REST API: /face POST.
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F "photo=http://static.findface.pro/sample.jpg" -F "meta=Sam Berry" http://localhost:8000/v0/face | jq
Ответ
{
"results": [
{
"friend": false,
"galleries": [
"default"
],
"id": 3827229391220303,
"meta": "Sam Berry",
"normalized": "http://192.168.113.88:3333/uploads//20170517/1495011480937809.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170517/14950114809306293.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170517/149501148093593.jpeg",
"timestamp": "2017-05-17T08:58:00.930572",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
]
}
Следующий запрос также добавляет лицо в галерею, но на этот раз лицо должно быть обнаружено на локальном изображении, а галерея является пользовательской (testgal
).
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F "[email protected]" -F "meta=sample" -F "galleries=testgal" http://localhost:8000/v0/face | jq
Ответ
{
"results": [
{
"friend": false,
"galleries": [
"default",
"testgal"
],
"id": 3827229578000564,
"meta": "sample",
"normalized": "http://192.168.113.88:3333/uploads//20170517/14950115538997407.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170517/14950115538939695.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170517/14950115538985784.jpeg",
"timestamp": "2017-05-17T08:59:13.893921",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
]
}
Поиск лица в галерее¶
Следующие 2 запроса обрабатывают изображение в сети Интернет (№1) и локальное изображение (№2), обнаруживают на них лицо и сравнивают его с лицами, хранящимися в галерее по умолчанию. Возвращают данные о наиболее схожих лицах и процент схожести. Соответствующий метод REST API: /identify POST.
Запрос №1
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F "photo=http://static.findface.pro/sample2.jpg" http://localhost:8000/v0/identify | jq
Ответ
{
"results": {
"[515, 121, 821, 427]": [
{
"confidence": 0.9373,
"face": {
"age": 26.0483455657959,
"emotions": [
"neutral",
"sad"
],
"friend": false,
"galleries": [
"default"
],
"gender": "female",
"id": 3827062458772442,
"meta": "Sam Berry",
"normalized": "http://192.168.113.88:3333/uploads//20170516/1494946272949371.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170516/14949462729435823.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170516/14949462729480093.jpeg",
"timestamp": "2017-05-16T14:51:12.943000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
}
]
}
}
Запрос №2
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F "photo=@Pictures/sample.jpg" http://localhost:8000/v0/identify | jq
Ответ
{
"results": {
"[595, 127, 812, 344]": [
{
"confidence": 0.9999,
"face": {
"age": 26.0483455657959,
"emotions": [
"neutral",
"sad"
],
"friend": false,
"galleries": [
"default"
],
"gender": "female",
"id": 3827062458772442,
"meta": "Sam Berry",
"normalized": "http://192.168.113.88:3333/uploads//20170516/1494946272949371.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170516/14949462729435823.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170516/14949462729480093.jpeg",
"timestamp": "2017-05-16T14:51:12.943000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
}
]
}
}
Сравнение двух лиц¶
Данный запрос сравнивает лицо из локального изображения и лицо из сети Интернет и возвращает результат проверки лиц на идентичность. Соответствующий метод REST API: /verify POST.
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F "photo1=@Pictures/sample.jpg" -F "photo2=http://static.findface.pro/sample2.jpg" http://localhost:8000/v0/verify | jq
Ответ
{
"results": [
{
"bbox1": {
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
},
"bbox2": {
"x1": 515,
"x2": 821,
"y1": 121,
"y2": 427
},
"confidence": 0.9373794198036194,
"verified": true
}
],
"verified": true
}
Получение списка лиц в галереях¶
Следующие запросы возвращают список лиц, хранящихся в галереях: в обеих (№1) и только в пользовательской (№2). Соответствующий метод REST API: /faces GET.
Запрос №1
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" http://localhost:8000/v0/faces | jq
Ответ
{
"next_page": "/v0/faces?max_id=3827058103081960",
"prev_page": null,
"results": [
{
"friend": false,
"galleries": [
"default",
"testgal"
],
"id": 3827229578000564,
"meta": "sample",
"normalized": "http://192.168.113.88:3333/uploads//20170517/14950115538997407.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170517/14950115538939695.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170517/14950115538985784.jpeg",
"timestamp": "2017-05-17T08:59:13.893000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
},
{
"friend": false,
"galleries": [
"default"
],
"id": 3827229391220303,
"meta": "Sam Berry",
"normalized": "http://192.168.113.88:3333/uploads//20170517/1495011480937809.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170517/14950114809306293.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170517/149501148093593.jpeg",
"timestamp": "2017-05-17T08:58:00.930000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
},
{
"age": 26.0483455657959,
"emotions": [
"neutral",
"sad"
],
"friend": false,
"galleries": [
"default"
],
"gender": "female",
"id": 3827227793957831,
"meta": "Sam Berry",
"normalized": "http://192.168.113.88:3333/uploads//20170517/14950108570078573.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170517/14950108570022256.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170517/14950108570066717.jpeg",
"timestamp": "2017-05-17T08:47:37.002000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
]
}
Запрос №2
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" http://localhost:8000/v0/faces/gallery/testgal | jq
Ответ
{
"next_page": "/v0/faces/gallery/testgal?max_id=3827059994026334",
"prev_page": null,
"results": [
{
"friend": false,
"galleries": [
"default",
"testgal"
],
"id": 3827229578000564,
"meta": "sample",
"normalized": "http://192.168.113.88:3333/uploads//20170517/14950115538997407.jpeg",
"person_id": 5,
"photo": "http://192.168.113.88:3333/uploads//20170517/14950115538939695.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://192.168.113.88:3333/uploads//20170517/14950115538985784.jpeg",
"timestamp": "2017-05-17T08:59:13.893000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
},
{
"galleries": [
"default",
"testgal"
],
"id": 3827059994026334,
"meta": "sample",
"normalized": "http://127.0.0.1:3333/uploads//20170516/14949453101653092.jpeg",
"photo": "http://127.0.0.1:3333/uploads//20170516/14949453101581762.jpeg",
"photo_hash": "53477c4a72f52c6efc951d9c7ece42bc",
"thumbnail": "http://127.0.0.1:3333/uploads//20170516/14949453101640306.jpeg",
"timestamp": "2017-05-16T14:35:10.158000",
"x1": 595,
"x2": 812,
"y1": 127,
"y2": 344
}
]
}
Распознавание пола, возраста и эмоций¶
Данный запрос обнаруживает лицо на тестовом изображении, размещенном в сети Интернет, и возвращает координаты рамки вокруг лица вместе с информацией о поле, возрасте и эмоциях. Соответствующий метод REST API: /detect POST.
Примечание
Распознавание пола, возраста и эмоций должно быть настроено.
Запрос
curl -H "Authorization: Token t3WGNhZbyaE_GFyQaywYllFoR2QkHXi-" -F 'photo=https://static.findface.pro/sample2.jpg' -F 'gender=true' -F 'emotions=true' -F 'age=true' http://localhost:8000/v1/detect | jq
Ответ
{
"faces": [
{
"age": 29.057680130004883,
"emotions": [
"neutral",
"happy"
],
"gender": "female",
"x1": 515,
"x2": 821,
"y1": 121,
"y2": 427
}
],
"orientation": 1
}