Liveness как автономный сервис
Помимо интегрированной антиспуфинговой системы, отличающей живые лица от их изображений, FindFace Multi предоставляет сервис определения живых лиц на основе API findface-liveness-api
.
Сервис findface-liveness-api
берет определенное количество кадров из предоставленного видеофрагмента и возвращает изображение лица наилучшего качества вместе с десятичным результатом liveness по этому лицу, усредненным по взятым кадрам. Если заданы соответствующие настройки, сервис также может возвращать полнокадровые и нормализованные изображения лиц и сохранять результат детекции в кэше findface-sf-api
, возвращая detection_id
.
Сервис findface-liveness-api
автоматически устанавливается и активируется, так как FindFace Multi использует его для аутентификации по лицу.
Вы можете установить и использовать сервис findface-liveness-api
отдельно от FindFace Multi. Об этом и идет речь в настоящем разделе.
В этом разделе:
Установка и настройка findface-liveness-api
Для того чтобы установить сервис отдельно от FindFace Multi, установите APT-репозиторий FindFace Multi и выполните следующие команды:
sudo apt update
sudo apt install findface-liveness-api
Вы можете настроить параметры findface-liveness-api
в файле конфигурации /etc/findface-liveness-api.ini
:
sudo vi /etc/findface-liveness-api.ini
listen: :18301
liveness-threshold: 0.95
fullframe-jpeg-quality: 75
max-decoded-frames: 30
min-selected-frames: 10
mf-selector: reject
extraction-api:
request-batch-size: 16
timeouts:
connect: 5s
response_header: 30s
overall: 35s
idle_connection: 10s
extraction-api: http://127.0.0.1:18666
sf-api:
timeouts:
connect: 5s
response_header: 30s
overall: 35s
idle_connection: 10s
sf-api: http://127.0.0.1:18411
limits:
video-size: 10485760
video-length-sec: 60
video-fps: 30
video-width-px: 1920
video-height-px: 1080
Параметр |
Описание |
---|---|
|
Качество JPEG полных кадров в поле |
|
Завершить декодирование после получения указанного количества кадров. |
|
Минимальное количество финальных кадров, успешно прошедших декодирование и извлечение liveness. Должно быть равным или меньшим |
|
Поведение сервиса при наличии нескольких лиц на кадре видео: |
|
Размер пакета с кадрами для извлечения liveness. |
|
Максимальный размер видео, байты. |
|
Максимальная длина видео, секунды. |
|
Максимальное количество FPS видео. |
|
Максимальная ширина видео, пиксели. |
|
Максимальная высота видео, пиксели. |
Для того чтобы запустить сервис findface-liveness-api
и добавить его в автозагрузку, выполните команды:
sudo systemctl start findface-liveness-api.service && sudo systemctl enable findface-liveness-api.service
Запросы HTTP API к сервису findface-liveness-api
Для взаимодействия с сервисом findface-liveness-api
используйте запросы HTTP API. В примере ниже запрос POST отправляется со следующими опциональными параметрами:
return_detection
(default=False
): сохранить лучшее лицо в кэшеfindface-sf-api
и вернуть егоdetection_id
.return_normalized
(default=False
): вернуть нормализованное изображение лица в полеnormalized
.return_photo
(default=False
): вернуть полный кадр в полеphoto
.
Пример
Запрос
curl -i -X POST \
'http://127.0.0.1:18301/v1/video-liveness?return_detection=true&return_normalized=true&return_photo=true' \
-H 'Content-Type: video/mp4' \
--data-binary '@/home/my_video.mp4'
Ответ
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: LA:WSP2NcHc
Date: Mon, 07 Sep 2020 15:30:05 GMT
Transfer-Encoding: chunked
{
"alive": true,
"average_liveness": 0.9706386,
"best_face": {
"liveness": 0.97768883,
"quality": 0.89638597,
"bbox": {
"left": 0,
"top": 578,
"right": 307,
"bottom": 1154
},
"detection_id": "btb53vbp688s1njt3bv0",
"photo": "/9j/2wCEAAgGBgcGBQgHBwcJ...",
"normalized": "iVBORw0KGgoAAAANSUhEU...",
"frame_no": 1,
"frame_ts": 0.033275817
}
}