findface-sf-api

Компонент findface-sf-api представляет собой сервис, реализующий HTTP API основного функционала ядра FindFace (обнаружение и распознавание лиц, при этом сами операции обнаружения и распознавания лиц выполняются компонентом findface-extracton-api). Взаимодействует с базой биометрических данных Tarantool через компонент findface-tarantool-server, а также с компонентами findface-extraction-api (обнаружение и распознавание лиц) и findface-upload (хранилище исходных изображений и артефактов работы ядра FindFace).

Для обнаружения лица на фотографии в компонент findface-sf-api должен быть отправлен API-запрос, передающий данную фотографию в виде файла или URL. Данный запрос затем перенаправляется в компонент findface-extraction-api.

При наличии в системе видеодетектора лиц (присутствует в FindFace Security) компонент findface-sf-api получает данные об обнаруженных лицах вместе с правилами их обработки от компонента findface-facerouter и затем выполняет полученные директивы (например, сохраняет лица в определенную галерею базы данных).

Примечание

В FindFace Security, функции findface-facerouter выполняет сервис findface-security.

Полный список функций:

  • реализация HTTP API по части обнаружения и распознавания лиц (операции выполняются findface-extraction-api).
  • сохранение лиц в базу биометрических данных (через сервис findface-tarantool-server),
  • сохранение исходных изображений, миниатюр и нормализованных изображений лиц на веб-сервере nginx (через сервис findface-upload).
  • обеспечение взаимодействия всех компонентов системы.

Настройка компонента findface-sf-api выполняется через файл конфигурации /etc/findface-sf-api.ini.

listen: 127.0.0.1:18411
extraction-api:
  timeouts:
    connect: 5s
    response_header: 30s
    overall: 35s
    idle_connection: 10s
  extraction-api: http://127.0.0.1:18666
storage-api:
  timeouts:
    connect: 5s
    response_header: 30s
    overall: 35s
    idle_connection: 10s
  max-idle-conns-per-host: 20
  shards:
  - master: http://127.0.0.1:8101/v2/
    slave: ''
  - master: http://127.0.0.1:8102/v2/
    slave: ''
  - master: http://127.0.0.1:8103/v2/
    slave: ''
  - master: http://127.0.0.1:8104/v2/
    slave: ''
  read_slave_first: false
  max_slave_attempts: 2
  cooldown: 2s
limits:
  url-length: 4096
  deny-networks: 127.0.0.0/8,192.168.0.0/16,10.0.0.0/8,::1/128,fe00::/8
  body-image-length: 33554432
  allow-return-facen: false
cache:
  type: memcache
  inmemory:
    size: 16384
  memcache:
    nodes:
    - 127.0.0.1:11211
    timeout: 100ms
    dns_cache_timeout: 1m0s
  redis:
    network: tcp
    addr: localhost:6379
    password: ''
    db: 0
    timeout: 5s
normalized-storage:
  type: webdav
  enabled: true
  webdav:
    upload-url: http://127.0.0.1:3333/uploads/
    timeouts:
      connect: 5s
      response_header: 30s
      overall: 35s
      idle_connection: 10s
  s3:
    endpoint: ''
    bucket-name: ''
    access-key: ''
    secret-access-key: ''
    secure: true
    region: ''
    public-url: ''
    operation-timeout: 30

Пользовательская настройка findface-sf-api выполняется с использованием следующих параметров:

Параметр Описание
extraction-api -> extraction-api IP-адрес и порт сервера findface-extraction-api.
limits -> body-image-length Максимальный размер в байтах изображения, передаваемого через API-запрос.
normalized-storage -> webdav ->
upload_url
Путь в WebDAV nginx, по которому в компонент findface-upload будут отправляться исходные изображения, миниатюры и нормализованные изображения лиц.
storage-api -> shards -> master IP-адрес физического сервера с мастером шарда findface-tarantool-server.
storage-api -> shards -> slave IP-адрес физического сервера с репликой шарда findface-tarantool-server.