Как мы построили вендинговый автомат с вайфу

На фестивале Anime Expo художник пообещал невозможное: он собрался проводить комиссию (в искусстве комиссия — это заказ на создание произведения от частного лица, предприятия или правительства — прим. пер.) каждые пять минут. В чем подвох? Художник был не человеком, а искусственным интеллектом, обученным на миллионах аниме-картинок. В течение следующих четырех дней то, что начиналось как простой эксперимент, стало культовой достопримечательностью на аллее художников.

В этом материале мы расскажем, как был построен вендинговый автомат Waifu — от процесса проектирования до строительства стенда и сиюминутных хаков, которые спасли ситуацию.

Примечание: это не технический отчёт. Вместо того, чтобы фокусироваться на методах машинного обучения, мы сосредоточимся на менее изученном вопросе воплощения в жизнь изолированной модели.

Курс по нейронным сетям
Идет набор в группу 4 200₽ в месяц

Что такое вендинговый автомат?

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

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

Подойдите к автомату, и на экране вас встретит множество девушек.

В поисках идеала

После каждого шага автомат сужает ваш выбор. В конце концов всё приведет вас к финальному экрану, где вы можете «удочерить» девушку.

А вот и она

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

команда прибыла

В оставшейся части этого материала мы расскажем о закулисном процессе создания вендингового автомата Waifu. Это было настоящим приключением!

DS
Специализация Data Science
Идет набор в группу 12 500₽ в месяц

Прототип

Наш проект начался с простой идеи: выяснить, как создать неисчерпаемый источник аниме-девушек, генерируемых с нуля.

Первые результаты были хорошими, но единственное, что с ними можно было сделать, это сказать: «Да, выглядит круто».

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

Отличный интерфейс

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

Как прийти к успеху

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

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

Финальный интерфейс! Кажется…

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

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

Техническое обеспечение

Ещё до начала фестиваля мы столкнулись с некоторыми проблемами. Как быть замеченными среди моря художников и плакатов? Чтобы действительно выделиться, нам было нужно что-то, способное привлечь внимание и передать характер стенда.

Тщательная проработка дизайна

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

Конечно, мы не смогли бы построить настоящий автомат — нам пришлось бы его взломать. Но сама идея с подобным дизайном все сильнее захватывала нас по мере приближения фестиваля.

Окончательный дизайн был такой: кто-то из нас сидел бы в задрапированной коробке, а на мониторе на передней панели отображался интерфейс, с которым могли взаимодействовать посетители. За кулисами должен был работать наш кластер из ноутбуков.

Наш талисман

Битва

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

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

К счастью, наш стенд был достаточно компактным и влез на стол. Пользователь видел три ключевые области: монитор, купюроприёмник и слот, откуда можно было забрать результат.

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

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

К сожалению, наш сервер не был волшебной машиной. Поскольку интернет не работал, нам пришлось всё обрабатывать локально. Надежный игровой ноутбук с видеокартой и Windows Home Edition мы превратили в самый нестабильный сервер в мире.

сервер

В итоге обычный цикл выглядел примерно так:

  • Пользователь подходит к внешнему монитору и активирует интерфейс.
  • Мы смотрим, что он там делает.
  • Когда пользователь нажимает кнопку «Отправить», мы считываем его изображение из базы данных и пересылаем на печать.
  • Пока идёт печать, мы проводим платёж через терминал.
  • Наконец, мы вырезаем распечатанный рисунок, пишем имя девушки на сертификате и передаём результаты через специальное окошко.
За стендом. Каждый аппарат на расстоянии вытянутой руки

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

Топ 10 хаков

Далее мы расскажем о десяти хаках, которые нам прогодились во время работы стенда.

Через два часа после установки стенда мы поняли, что проблема с интернетом оказалась серьёзнее, чем мы думали. Мы не только не могли получить доступ к внешнему миру, не получалось даже использовать Wi-Fi здания в качестве локальной сети. Поэтому, в последнюю минуту пытаясь соединить всё вместе, мы включили точку доступа на телефоне, отключили телефон от интернета и стали использовать его как локальный маршрутизатор.

Как обычно, Windows ругался и отключался от сети. Чтобы предотвратить это, мы постоянно пинговали собственный IP, чтобы Windows не обновлял соединение.

Контроллер кластера

Через час работы мы поняли, что в коде была критическая ошибка: когда люди нажимали кнопку «Назад» на первом экране, клиент просто зависал. Мы быстро перенастроили клиентский ноутбук, чтобы он загружал веб-страницы с другого компьютера, и исправили код.

Два ноутбука — двойная производительность

Последний хак, к которому нам пришлось прибегнуть, пригодился когда нам надо было перенести новое видео с одного ноутбука на другой, чтобы обновить заставку. Мы попробовали Airdrop, но соединение не устанавливалось. Поэтому на одном из ноутбуков нам пришлось захостить python -m SimpleHTTPServer, а затем загрузили файл с другого ноутбука через локальную сеть.

Снова, снова и снова

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

Заставка

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

Заставка 2.0

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

Век героев

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

Чтобы справиться с таким наплывом людей, мы превратили два ноутбука в экраны для пользователей и разместили их рядом с основным компьютером. Конечно, это означало, что сервер теперь находится под ещё большей нагрузкой — в какой-то момент мы даже использовали принтер (!) в качестве маршрутизатора, когда устройство Android начало сдавать.

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

К концу фестиваля торговый автомат Waifu распродал все свои запасы в двойном объёме. Это были дни, полные приключений, трудностей и шока от результатов нашей работы. Несмотря на всё это, мы с уверенностью можем сказать, что фестиваль позволил нашей разработке подняться выше звезд и воссиять.

Будущее и вне времени

Во время выставки мы пообещали всем, что скоро наш вендинговый автомат появится онлайн. После нескольких переделок сайт уже работает — заходите на waifulabs.com!

Оригинал: https://waifulabs.com/blog/ax

Перевод: Астафьева Наталья

Поделиться:
Опубликовано в рубрике Machine Learning, Переводные материалыTagged ,

SkillFactory.Рассылка