Версия цифровой рецепции с резализованным механизмом отслеживания трека пациента по зонам
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Алексей Разорвин b9f88194d9 Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
..
tests Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
.env.example Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
Dockerfile Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
README.md Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
database.py Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
face_engine.py Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
main.py Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago
requirements.txt Initial commit: digital reception monorepo (M1-M11 + demo extensions) 5 days ago

README.md

face-service

Python + FastAPI + InsightFace buffalo_l. Считает 512-d L2-нормализованные эмбеддинги лиц, хранит в pgvector, делает cross-camera re-id и узнавание пациентов.

Эндпоинты

Метод Путь Назначение
GET /health Статус + флаг загрузки модели
POST /embed Только эмбеддинг (без БД). Body: {frame: base64}
POST /track-embeddings Сохранить эмбеддинг с привязкой к треку/камере
POST /reid/search Cross-camera re-id (top-K в окне T мин)
POST /recognize Узнать пациента (patient_id) по кадру
POST /enroll Привязать эмбеддинги трека к пациенту
DELETE /patient/{id}/embeddings Удалить эмбеддинги пациента (отзыв согласия)
GET /patient/{id}/count Кол-во эмбеддингов у пациента

Запуск (dev)

cd apps/face-service
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env       # либо использовать корневой .env
uvicorn main:app --reload --port 8001

Запуск (docker)

docker build -t reception/face-service .
docker run --rm -p 8001:8001 \
  -e DATABASE_URL=postgresql://postgres:postgres@host.docker.internal:5434/reception \
  reception/face-service

Пороги (ТЗ §4.3)

  • RECOGNITION_THRESHOLD=0.5 — узнавание уже зарегистрированного пациента.
  • REID_THRESHOLD=0.35 — склейка треков между камерами (строже, иначе ложные склейки).

Тюним после baseline-замеров на проде.

Источник

Скопировано и расширено из work-pcs-adm-time-tracker/apps/face-service/. Изменения:

  • Новая схема face_embeddings (track_id, camera_id, patient_id, quality, captured_at) — управляется через Prisma в packages/db.
  • Добавлены функции save_embedding_with_meta, attach_track_to_patient, find_topk_in_window, find_nearest_patient, delete_patient_embeddings.
  • Эндпоинты /embed, /track-embeddings, /reid/search, /enroll, /patient/.../embeddings — новые.
  • Эндпоинт /recognize теперь работает только с эмбеддингами с проставленным patient_id (т.е. с согласием).