Разрабатываем алгоритм праздника: как поздравить близких с помощью интерактивного видео и нейросетей

2019-06-05 13:52:26 1562

В 2019 году нам удалось поработать с «Почтой Mail.ru» уже над тремя интерактивными проектами к праздникам. Расскажем о проектах и технической реализации.

Спецпроект ко Дню победы

К 9 мая Почта Mail.ru запустила спецпроект.

На сайте пользователи могут загрузить черно-белое фото из семейного архива, а нейросети сделают его цветным и восстановят, если есть какие-то дефекты - определят и «дорисуют» недостающие детали.

Восстановленные с помощью нейросетей памятные фото можно распечатать для участия в акции Бессмертный полк, а кроме того отправить по почте и поделиться с друзьями в соцсетях.

Для реализации проекта мы разработали сайт и интегрировали по API технологию Vision. Функциональность обработки фото основывается на технологическом стеке Mail Cloud Solution. Наша работа состояла из двух частей:

1. Интеграционная часть

Мы подключили к сайту возможность обработки фото, отправки обработанных фотографий на почту и публикации в соцсетях.

Пользовательский опыт сделали максимально удобным: регистрироваться перед загрузкой фото не нужно.

  • Пользователь загружает фото;
  • Нейросети его обрабатывают;
  • Пользователь авторизуется в своей почте mail.ru, и обработанные фото автоматически подгружаются для отправки нового письма, а загруженные фото сохраняются после авторизации.

Чтобы обработанные фото сохранялись после авторизации, мы подключили библиотеку Web SQL и отправляли фото в браузер пользователя.

Это решение позволило ограничения на объем сохраненных в браузере файлов и дополнительной нагрузки на сервер.

2. Серверная часть

Требовалось решение, ориентированное на большие нагрузки. Поэтому для баланса трафика мы разделили сервер на два дата-центра с разной геолокацией. Сервер и клиент написаны на высокопроизводительном node js-решении.

Техническое решение разработали за 2 дня, а весь проект запустили за неделю.

Проект работает во всех браузерах, начиная с ie11, на десктопе и всех мобильных устройствах.

Сайт посетило более 1 000 000 пользователей.

Обработано более 850 000 фотографий.

Монстрическое поздравление с 8 марта

Чтобы поздравить близких с 8 марта, Почта Mail.ru сняла интерактивный мультфильм про монстров, которые собирают и отправляют букеты к празднику.

На сайте пользователь может ввести имя и выбрать один из букетов. После этого генерируется персональный мультфильм-поздравление, ссылку на который можно отправить по почте или поделиться ей в соцсетях.

Мы создали сайт проекта, интегрировали соцсети функциональность отправки поздравления на почту. В базу добавили более 500 женских имен, чтобы подписать букет, и конечно же, электронный поздравление можно отправить и маме.

Диджитал-чудеса к новому году

Самый сложный из алгоритмов потребовался для новогодней открытки.

Чтобы дети продолжали писать письма Деду Морозу и верить в новогодние чудеса, видео с персональным поздравлением можно было сгенерировать для каждого ребенка. В ярком видео показан сказочный дом Деда Мороза, а в конце волшебник обращается к ребенку лично.

Если в прошлом году можно было добавить только имя ребенка, то в новом видео мы добавили вставки с возрастом и хобби. В зависимости от того, что выбрал на сайте пользователь, меняется текст поздравления и сюжет ролика. Для того, чтобы видео из нескольких частей генерировалось в единый поток, мы разработали специальный алгоритм.

К каждому имени ребенка, а в базе их было 856, даже самые редкие, генерируется папка с файлом вида имя+возраст+хобби.

Дальше мы сгенерировали 30 папок с фрагментами видео для озвучки возраста и 11 папок с видеовставками с хобби. Во всех папках с именами дополнительно генерируется по 191 файлу плейлиста.

Таким образом формируются все возможные комбинации возраста и хобби к каждому имени, включая вариант, когда не указано имя для мальчика и девочки. В каждом плейлисте в зависимости от хобби, возраста или хобби+возраста меняется базовый плейлист каждой папки, в них меняется путь к видеофайлам с озвучкой возраста и/или добавлением в плейлист вставки с видеорядом хобби и регулируется смещение видеоряда.

Чтобы синхронизировать вставки, пришлось поэкспериментировать с подгонкой тайминга, чтобы вставка нормально легла на существующий ряд.

В результате получается 134976 маленьких плейлистов суммарным размером примерно 500 Мб.

При работе над новым видео учитывали высокую нагрузку на сайт, сжатые сроки, адаптацию под разные браузеры и типы устройств и, конечно, необходимость моментально склеивать видео.

Мы создали технологическую часть — разработку и верстку сайта, а весь высоконагруженный проект запустили через 3 дня после получения финального видео.

Пользователи сгенерировали на сайте более полумиллиона видеопоздравлений.