Что такое день взлома в Bloom & Wild?

Здесь, в Bloom & Wild, недавно прошел третий день хакерства. Как и в первых двух, день взлома предназначен для всех в компании, а не только для технологической команды. Команды формируются из людей из разных отделов, у каждого из которых есть один разработчик (разработчики, как правило, несут огромную ношу на своих плечах, чтобы что-то создать!)

У каждого дня взлома есть своя тема, и каждая команда встретится перед важным днем, чтобы решить, чем они собираются заняться. В день взлома у нас есть полный день, чтобы построить / спроектировать что-то, что мы представим в демонстрационных версиях в конце дня. B&W hack days были большим развлечением, когда мне приходилось работать с людьми, с которыми я обычно не работаю ежедневно, И, будучи технарем, я мог исследовать (играть) с другой технологией.

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

Наша задача…

Наша команда начала обдумывать идеи, но мы отклонились в сторону обдумывания идей, о которых, надеюсь, не думали другие команды (все дело в w̶i̶n̶n̶i̶n̶g̶, кхм, об участии). В конце концов мы столкнулись с этой проблемой ...

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

Тип коллекции: почтовый ящик (помещается в почтовый ящик), связанный вручную (слишком большой для почтового ящика)

Цвета: красный, розовый, желтый и т. д.

Стебли: роза, пион, лилия, подсолнечник и т. д.

Мы решили заняться этой областью, чтобы посмотреть, сможем ли мы использовать ИИ для автоматической пометки новых букетов. Я не занимался искусственным интеллектом с университетских дней (скажем так, некоторое время назад), это было серьезной проблемой, которую нужно выполнить за день :)

Что мы нашли в Интернете

Начиная наше исследование распознавания изображений, было множество сервисов, которые могли бы нам помочь, такие как Google, у которых есть Cloud Vision API, Clarifai и Amazon Rekognition. Google и Amazon были немного ограничены, поскольку у них были свои собственные классификации, то есть вы не могли создать собственную модель, чтобы сказать почтовый ящик или связанный вручную. Clarifai выглядела как отличный сервис, но, как следует из названия этого блога, мы решили попробовать IBM Watson.

Для тех, кто не слышал о Watson, Watson знаменит! (по крайней мере, в мире технарей). Watson - это суперкомпьютер, разработанный IBM, который прославился в 2011 году, когда бросил вызов двум лучшим игрокам популярной американской викторины Jeopardy и победил.

Вернуться к взлому

Мы были уверены, что сможем создать простую модель, которая продемонстрирует возможности Watson. Также помогло то, что в 2016 году IBM запустила Visual Recognition API, позволяя разработчикам исследовать (играть) или использовать их на практике.

Мы создали 2 нестандартные модели:

  1. Для классификации типа коллекции, т. Е. Почтовый ящик или нет
  2. Имеет ли букет желтый цвет

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

Шаг 2: Подождите, пока модель построится. Это не заняло много времени, и мы смогли проверить API на наличие обновлений статуса.

Шаг 3. Классифицируйте новое изображение. Мы загрузили новые изображения, и оценки были потрясающими (по крайней мере, для нас, поскольку мы понятия не имели, правильно ли мы делаем!)

Это было не так просто

Все вышеперечисленное не казалось трудным, и мы чувствовали, что мы мчимся вперед, но, как и в эпизоде ​​Top Gear, были повороты, которые чуть не сбили нас с пути, особенно во многих ошибках с услугами IBM ...

Демо

Как разработчик в команде, моей специализацией было приложение Bloom & Wild для iPhone (я занимался его разработкой более 3 лет). Приложение развивалось с годами, но в его основе лежит возможность для клиентов пролистывать карусель букетов или растений и покупать один или несколько, которые затем могут быть отправлены в Великобританию, Ирландию, Францию ​​или Германию. Естественно, для демонстрации мы подключили приложение к Watson. Мы хотели получить оценку нашего текущего ассортимента букетов в реальном времени. Вот несколько примеров, в которых использовались наши новые изображения букетов, которые не были включены в обучение модели:

Вы обратили внимание на партитуру букета Инес? Тот, что на зеленом фоне, продается по цене 39 евро. Возможно, вы заметили отсутствие рамки на заднем плане, что запутало модель, поскольку все обучающие изображения имели либо маленькую, либо большую рамку на заднем плане. В результате вероятность почтового ящика составила 0,15, а привязка вручную - 0,016. Мы думали, что это хороший результат модели, учитывая, что в обучающих образах модели не было шаблона.

Результаты и следующие шаги

Как мы вошли? Что ж, мы выиграли !! Это не совсем так, но для нас (и без неуважения к другим командам в день взлома) мы создали модель ИИ и подключили к приложению за день, так что мы чувствовали себя победителями :) Плюс наша команда данных жаждали узнать, как это работает!

Следующие шаги - посмотреть, сможем ли мы собрать большой набор изображений (они где-то у нас есть), построить модель и посмотреть, были ли полученные нами оценки случайностью (возможно, модель нашла на изображениях другой образец, который не был коробка). С учетом сказанного, разработка модели, которая могла бы распознавать разные стебли, звучит издалека, но если мы подумаем об итеративном подходе, начиная с почтового ящика / связанного вручную, тогда можно будет использовать цвета и, в конечном итоге, разные стебли. Я уверен, что мы тоже многому научимся на этом пути (вставьте сюда саркастический смех). Если мы добьемся прогресса, мы обязательно поделимся своей историей.

Сайты, которые мы сочли полезными

Для тех, кто хочет поиграть с Watson's Visual Recognition, вот их документация по API, которую мы использовали для подключения модели к нашему приложению.

У Watson есть несколько способов создания пользовательских моделей, самый простой способ, который мы обнаружили (если вы не являетесь большим пользователем Терминала), - это их API Explorer:

Автор Адам Фрэнсис, руководитель отдела мобильной связи