О клиенте
Клиент развивал онлайн-платформу, где фото в профиле помогало пользователям понимать, с кем они общаются, и повышало доверие внутри сервиса. По мере роста аудитории часть пользователей стала загружать вместо личных фото случайные изображения: мемы, предметы, пейзажи и другие картинки, не подходящие для профиля.
Без автоматической проверки такие изображения попадали в профили, делали их менее единообразными и снижали доверие к платформе. Команде модерации приходилось тратить большой объем времени на ручную проверку и удаление неподходящих фото.
- Регион: Международный рынок
- Индустрия: Социальная платформа / цифровые сервисы
- Сроки: около 1 месяца
Задача
Клиенту нужно было проверять фото профиля еще до сохранения изображения в аккаунте пользователя. Система должна была быстро определять, есть ли на изображении человеческое лицо, и не пропускать мемы, предметы, пейзажи и другие неподходящие картинки.
Основные задачи проекта:
- проверять фото профиля сразу после выбора файла;
- определять наличие человеческого лица на изображении;
- отсеивать изображения без человеческого лица;
- сразу объяснять пользователю, почему фото не принято;
- существенно снизить объем ручной проверки изображений;
- проверять фото прямо в браузере, чтобы не увеличивать нагрузку на сервер;
- добавить проверку в текущий интерфейс загрузки фото без изменения привычного сценария для пользователя;
- показывать результат проверки сразу после выбора фото.
Краткий обзор проекта
Команда СКЭНД разработала модуль проверки фото, который работает прямо в браузере пользователя. Проверка запускается сразу после выбора изображения и определяет, есть ли на фото человеческое лицо.
Для определения лица команда использовала face-api.js на базе TensorFlow.js. Благодаря этому изображение анализируется в браузере пользователя, без дополнительной обработки на сервере. Такой подход снижает задержку, не увеличивает нагрузку на сервер и позволяет сразу сообщать пользователю, если изображение не подходит.
Команда настроила распознавание лица в браузере, добавила подготовку изображения перед проверкой и связала модуль с процессом загрузки фото.
Решение
Когда пользователь выбирает фото для профиля, система сразу проверяет его в браузере. Если на изображении есть человеческое лицо, фото можно загрузить и сохранить в профиле. Если лица нет, система показывает ошибку и предлагает выбрать другое изображение. Так неподходящие изображения отсеиваются до того, как попадут в профиль.
Решение уменьшило зависимость от ручной модерации и помогло поддерживать более аккуратный и единообразный вид пользовательских профилей.
Ключевые возможности
- проверка фото профиля сразу после выбора файла;
- определение человеческого лица в браузере;
- автоматическое отклонение изображений без лица;
- понятное сообщение пользователю, если фото не подходит;
- обработка изображения без отправки на сервер;
- интеграция в существующий фронтенд;
- уменьшение ручной проверки со стороны модераторов;
- сохранение единообразия среди пользовательских профилей.
Пользовательский сценарий
- Пользователь выбирает изображение для фото профиля.
- Система анализирует изображение в браузере.
- Если лицо найдено, фото проходит проверку.
- Если лицо не найдено, система отклоняет загрузку.
- Пользователь получает сообщение и может выбрать другое фото.
- Принятое изображение сохраняется в профиле.
Технологический стек
- Фронтенд: JavaScript;
- Определение лица: face-api.js;
- Модельная основа: TensorFlow.js;
- Обработка изображений: анализ изображения в браузере;
- Интеграция: существующее веб-приложение.
Результаты
После внедрения проверки неподходящие изображения стали отсеиваться до публикации в профиле. Пользователи сразу видят, почему фото не подходит, а модераторы тратят меньше времени на ручную проверку загруженных изображений.
В результате клиент получил:
- автоматическую проверку фото профиля при загрузке;
- автоматическое отклонение мемов, предметов, пейзажей и других изображений без лица;
- меньше ручной работы для модераторов;
- сохранение единообразных пользовательских профилей на платформе;
- быструю обратную связь для пользователей;
- проверку в браузере без дополнительной нагрузки на сервер;
- легкое решение, которое работает в браузере и подходит для платформ с высокой посещаемостью.