Как я написал сервис распознавания лиц

10.04.2025 Как я написал сервис распознавания лиц

Привет! В этом посте расскажу, как я разрабатывал сервис распознавания лиц на Python.

Задача

Нужно было сделать систему, которая:

  • Распознаёт лица на фотографиях
  • Сравнивает лица с базой известных людей
  • Возвращает результат через API

Стек

  • Python 3.11
  • OpenCV — обработка изображений
  • face_recognition — библиотекаровка на базе dlib
  • FastAPI — веб-сервис
  • Docker — контейнеризация

Архитектура

Сервис работает как отдельный микросервис. Принимает изображение через POST-запрос, обрабатывает и возвращает JSON с результатами.

@app.post("/recognize")
async def recognize_face(file: UploadFile):
    image = cv2.imdecode(...)
    faces = face_recognition.face_locations(image)
    # ... обработка
    return {"faces": results}

Сложности

Самое сложное — качество распознавания при разном освещении. Пришлось добавить препроцессинг изображений и настройку порога сравнения.

Результат

Сервис работает в продакшене и обрабатывает запросы за ~200мс.

© 2026 tashirka.ru