Skip to content

vitalek84/finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

finder

Сервис принимает запросы от recognizer и управляет бизнес логикой ответственной за идентификацию лиц в базе данных.

INSTALL

  • virtualenv .venv -p python3.8
  • python -m pip install -r requirements.txt

RUN

  • source .venv/bin/activate
  • cd finder
  • gunicorn -b localhost:8001 -t 180 --reload finder.app

Состояния системы

Состояния системы привязаны к магазину т.е. к shop_id. (возможно имеет смысл ввести еще один уровнеь абстракции Камера)

  • Ready - система ожидает данных от сервиса recognizer
  • MaskOnHead - обнаружена маска на лице
  • WrongPosition - неправильный поворот головы
  • Find - обнаружена персона в БД.

Статусы меняютс на основе данных recognizer-а. Из статуса Find система переходит в статус Ready только по команде из интерфейса пользователя. Такое поводение системы требуется для того что бы бариста отметил купленное кофе. И не получил нового человека до момента как успеет внести покупки.

API

/ident

Принимает данные от системы распознования:

{ "ident": [ 0.0379392060350842, 0.461228414741994, 0.651867551670715, 0.160600162029759, ... 0.461228414741994, 0.651867551670715, 0.160600162029759], "age": 23, "shop": 2, "gender": "Unknown" "face": "ADdssHHKkkjkHHH" }

ident - 256-n мерный вектор лица. face - base64 распознанное изображение. По 256 n-мерному вектору при помощи функции косинусных дистанций ищется наиболее близкое лицо в БД. Если разность между лицами более 0.26 (параметр выбран имперически и требует уточнения) то в БД записывается новый объект.

/mask

{
"face": "ADdssHHKkkjkHHH"
}

В случае если пришедший человек в маске в БД записывается состояние MaskOnHead к состояниию также прикладывается полученное изображение от системы распознованя. 

/look2camera

{

"face": "ADdssHHKkkjkHHH"
}

В случае если лицо отклонено от камеры более чем на 10 градусов система переходи в состояние WrongPosition. 

/datagen

Принимает такие же данне как и Ident. Но только поиск по существующей БД не проводится каждый раз вставляется новый пользователь. Служит для генерации тестовых наборов данных.

About

NMS Library web wrapper.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages