Skip to content

fineguy/celebrity_faces

 
 

Repository files navigation

celebrity_faces

Проект сайта "на какую знаменитость ты похож".

Архитектура.

Состоит из трех сервисов.

  1. Веб-морда. Страничка загрузки пользовательской картинки и страничка с результатами. Полученную картинку посылает на сервис эмбеддинга и получает эмбеддинг. Полученный эмбеддинг посылает сервису индекса и получает имя файла с фото самой похожей знаменитости, которое отображается на страничке с результатами.
  2. Сервис эмбеддинга. Принимает картинку через POST-запрос, выделяет лицо, используя Haar Cascades из OpenCV, делает необходимую предобработку для facenet и считает эмбеддинг по предобученной модели facenet.
  3. Сервис индекса. Строит индекс по предварительно подсчитанным эмбеддингам для cropped celebrities, принимает POST-запросы с векторами, возвращает имя картинки, соответствующей ближайшему вектору. Пока что в качестве индекса используется Annoy и поиск проихсходит по урезанному датасету из ~13k картинок из lfw dataset.

Все сервисы написаны на Python/Flask.

Планы.

  1. Заменить Annoy на свой индекс. Индекс будет основан на Navigable Small World algorithm, написан на C++ (в процессе) и подключаться через cython к Flask-сервису индекса.
  2. Запускать все сервисы в своих docker'ах через docker-compose.
  3. Заменить датасет лиц знаменитостей на больший.
  4. Сделать сайт красивее.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.3%
  • C++ 3.0%
  • Other 0.7%