В 2019 году нам удалось поработать с «Почтой Mail.ru» уже над тремя интерактивными проектами к праздникам. Расскажем о проектах и технической реализации.
К 9 мая Почта Mail.ru запустила спецпроект.
На сайте пользователи могут загрузить черно-белое фото из семейного архива, а нейросети сделают его цветным и восстановят, если есть какие-то дефекты - определят и «дорисуют» недостающие детали.
Восстановленные с помощью нейросетей памятные фото можно распечатать для участия в акции Бессмертный полк, а кроме того отправить по почте и поделиться с друзьями в соцсетях.
Для реализации проекта мы разработали сайт и интегрировали по API технологию Vision. Функциональность обработки фото основывается на технологическом стеке Mail Cloud Solution. Наша работа состояла из двух частей:
1. Интеграционная часть
Мы подключили к сайту возможность обработки фото, отправки обработанных фотографий на почту и публикации в соцсетях.
Пользовательский опыт сделали максимально удобным: регистрироваться перед загрузкой фото не нужно.
Чтобы обработанные фото сохранялись после авторизации, мы подключили библиотеку Web SQL и отправляли фото в браузер пользователя.
Это решение позволило ограничения на объем сохраненных в браузере файлов и дополнительной нагрузки на сервер.
2. Серверная часть
Требовалось решение, ориентированное на большие нагрузки. Поэтому для баланса трафика мы разделили сервер на два дата-центра с разной геолокацией. Сервер и клиент написаны на высокопроизводительном node js-решении.
Техническое решение разработали за 2 дня, а весь проект запустили за неделю.
Проект работает во всех браузерах, начиная с ie11, на десктопе и всех мобильных устройствах.
Сайт посетило более 1 000 000 пользователей.
Обработано более 850 000 фотографий.
Чтобы поздравить близких с 8 марта, Почта Mail.ru сняла интерактивный мультфильм про монстров, которые собирают и отправляют букеты к празднику.
На сайте пользователь может ввести имя и выбрать один из букетов. После этого генерируется персональный мультфильм-поздравление, ссылку на который можно отправить по почте или поделиться ей в соцсетях.
Мы создали сайт проекта, интегрировали соцсети функциональность отправки поздравления на почту. В базу добавили более 500 женских имен, чтобы подписать букет, и конечно же, электронный поздравление можно отправить и маме.
Самый сложный из алгоритмов потребовался для новогодней открытки.
Чтобы дети продолжали писать письма Деду Морозу и верить в новогодние чудеса, видео с персональным поздравлением можно было сгенерировать для каждого ребенка. В ярком видео показан сказочный дом Деда Мороза, а в конце волшебник обращается к ребенку лично.
Если в прошлом году можно было добавить только имя ребенка, то в новом видео мы добавили вставки с возрастом и хобби. В зависимости от того, что выбрал на сайте пользователь, меняется текст поздравления и сюжет ролика. Для того, чтобы видео из нескольких частей генерировалось в единый поток, мы разработали специальный алгоритм.
К каждому имени ребенка, а в базе их было 856, даже самые редкие, генерируется папка с файлом вида имя+возраст+хобби.
Дальше мы сгенерировали 30 папок с фрагментами видео для озвучки возраста и 11 папок с видеовставками с хобби. Во всех папках с именами дополнительно генерируется по 191 файлу плейлиста.
Таким образом формируются все возможные комбинации возраста и хобби к каждому имени, включая вариант, когда не указано имя для мальчика и девочки. В каждом плейлисте в зависимости от хобби, возраста или хобби+возраста меняется базовый плейлист каждой папки, в них меняется путь к видеофайлам с озвучкой возраста и/или добавлением в плейлист вставки с видеорядом хобби и регулируется смещение видеоряда.
Чтобы синхронизировать вставки, пришлось поэкспериментировать с подгонкой тайминга, чтобы вставка нормально легла на существующий ряд.
В результате получается 134976 маленьких плейлистов суммарным размером примерно 500 Мб.
При работе над новым видео учитывали высокую нагрузку на сайт, сжатые сроки, адаптацию под разные браузеры и типы устройств и, конечно, необходимость моментально склеивать видео.
Мы создали технологическую часть — разработку и верстку сайта, а весь высоконагруженный проект запустили через 3 дня после получения финального видео.
Пользователи сгенерировали на сайте более полумиллиона видеопоздравлений.