Celebrity Look-Alike на Go
05.04.2025
Один из моих проектов — сервис celebrity look-alike. Загружаешь фото, получаешь список знаменитостей, похожих на тебя.
Идея
Идея появилась после просмотра различных viral-приложений, которые ищут двойней среди звёзд. Решил сделать сам.
Почему Go
Go отлично подходит для:
- Быстрой обработки изображений
- Параллельных запросок к API
- Контейнеризации — бинарник в одном файле
Как работает
- Пользователь загружает фото
- Сервис извлекает признаки лица
- Сравнивает с базой знаменитостей
- Возвращает топ совпадений
func (s *Service) FindCelebrity(image []byte) ([]Result, error) {
features, err := s.extractFeatures(image)
if err != nil {
return nil, err
}
return s.compareWithDB(features), nil
}
База знаменитостей
Собрал датасет из ~10 000 фото знаменитостей. Векторизовал заранее, сравнение происходит быстро.
Выводы
Go — отличный выбор для подобных сервисов. Быстро, мало памяти, легко деплоить.