Как подружить технологию и пользовательский опыт

3 марта мы организовали онлайн-конференцию Machine Learning в Digital-продуктах с участием спикеров из Тинькофф, СБЕРа, МТС, Checklens GmbH, Brickit, Epoch8 и AGIMA. В рамках онлайн-конференции Леонид Александров из компании Brickit рассказал про приложение, которое помогает детям построить что-то новое из их горы деталей LEGO. Для тех, кто любит читать, мы сделали печатную версию докладов.

Стартап в мире LEGO

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

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

Как это применить в жизни пользователя?

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

Шаг 2: При создании мы столкнулись с рядом проблем: дорогая разметка, слишком большое разнообразие деталей (больше 5000) и нехватка реальных данных для обучения. Проанализировав базу, мы вывели детали, которые встречаются чаще всего во всех конструкциях. У нас получилось интересное наблюдение: 300 типов деталей вписываются в 80% всех наборов LEGO. Мы приняли решение сократить количество деталей, на которых обучаем нейронную сеть, а также перешли на технологию вписывания деталей в прямоугольник.

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

Шаг 3: Мы решили попробовать новый алгоритм, который, возможно, будет медленный, но при этом более эффективный.

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

Шаг 4:Мы создали алгоритм с улучшенным распознаванием. Теперь он понимает, к примеру, что эта деталь не относится к списку часто используемых, поэтому стал ошибаться гораздо меньше. Другой алгоритм поиска на данном этапе находит практически все нужные нам детали. Несмотря на значительные улучшения, мы столкнулись с проблемой визуализации. Нахождение деталей в реальном времени происходило с большой задержкой.

Шаг 5:Проверили работу над созданием еще одного алгоритма между поиском и классификацией.

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

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

Шаг 6:На этом этапе мы решили освободить руки пользователя, предоставив ему возможность искать детали по карте. Процесс выглядит так: человек один раз делает снимок деталей LEGO, алгоритм его распознает и на каждом шаге нашей карты показывает, в каком месте лежит деталь.

Мы добились того, что необходимо делать всего один снимок на всю сборку. Руки пользователя полностью освобождаются, он уже занимается сборкой деталей и не отвлекается на другие задачи. Эта идея, действительно, облегчает процесс, но запускаться все равно было рано. Пока что приложение умеет искать только те детали, которые входят в первоначальную группу (300 классов из 5000).

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

Выученные уроки

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

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

Вот так мы решили проблему с ненужными деталями LEGO.

Как подружить технологию и пользовательский опыт

В предыдущей серии:

0
2 комментария
Д Хб

Сразу вопрос частично по теме: новые наборы как проектируются? Рисуется модель, потом дробится на детали компьютером? Как они хитро учитывают совпадения цветов, чтоб в инструкции было всё понятно (не сливается в одно пятно)?

Какое максимальное количество деталей было в ваших фигурах?

Ответить
Развернуть ветку
Леонид Александров

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

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

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

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда