Как американский разработчик сделал домашнее устройство для автоматического пополнения запасов кофе


Американский инженер и специалист в области «облачных» платформ Террен Питерсон опубликовал в блоге FreeCodeCamp историю о том, как он создал устройство для автоматического пополнения запасов кофе — JavaWatch. Продукт на основе контроллера Raspberry Pi фотографирует прозрачную банку с кофе и отправляет снимки в облако, которые сканирует ИИ и определяет наличие кофейных зерен на картинке.

Когда зерна исчезают, система отправляет запрос на сервис Amazon Dash, и через некоторое время курьер привозит товар домой к инженеру. Редакция vc.ru публикует перевод материала.

1*7z9aElgO_T0tYLyogyEpog.jpegТеррен Питерсон

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

Поскольку я люблю ИТ, я уверен, что для пополнения запасов можно найти способ получше. Но я не видел подходящего решения. И хотя я пробовал различные мобильные приложения, чтобы стать еще более организованным, мне еще предстоит улучшить этот простой «бумажный» метод. Мне нравятся преимущества онлайн-покупок на Amazon, однако все равно здесь существует задержка, которая требует от меня уделять планированию больше времени, чем я могу.

1*BhwVxeex2ZzHlnyFkQOhNw.jpeg

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

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

Кнопки Amazon Dash

Одна из технологий, которую представил Amazon, называется Dash — это программируемые кнопки для заказа товаров с их сайта. Некоторые уже настроены для продажи товаров определенного бренда — моющих средств, батареек, чипов и так далее.

bfbe64eb287759.jpg

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

Как все это работает

После того, как я придумал креативную концепцию и «цепляющее» название для устройства (JacaWatch), я описал архитектуру и принципы его работы. Между устройством на базе контроллера Raspberry Pi и API Dash Replenishment я добавил сервис распознавания изображений Amazon Rekognition Service, который запустился совсем недавно. Вот как выглядит схема:

1*FiHh8kf3et_s0kpOKfEcgQ.png

Как использовать ИИ на кухне

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

Вот как все работает: камера Raspberry Pi через определенные временные интервалы фотографирует банку с кофе и загружает снимки на сервис AWS S3. Каждому фото присваивается уникальный адрес, который используется при обращении к Rekognition API, что позволяет применять искусственный интеллект. Вот фотография полной банки с кофе, которую сделало устройство:

1*HGR6Ouwr6SsxCO4_5-jnCQ.jpeg

В ответ Rekognition API предсказывает, что может быть изображено на картинке.

Мне повезло, что ИИ способен распознавать зерна (Bean), и для этого фото он сделал прогноз, что с вероятностью 73% они присутствуют на снимке. Многие другие предположения также были верны — на снимке могла быть и бутылка и домашние заготовки —, но для моих целей они нерелевантны.

Итак, что же произойдет, если запасы кофе почти закончатся? Вот снимок, который сделал контроллер в этот день:

1*Y39h4fIrhvZvEXHduRhEVA.jpeg

И ответ ИИ:

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

Выбор кофе

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

Эксперименты с другими продуктами

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

  • Кетчуп — высокие шансы на успех (вероятность 98,6%).
  • Соус шрирача — промах (ИИ думал, что с вероятностью 73,1% это напиток).
  • Клубника — успех (вероятность 85,4%).
  • Черника — снова промах (ИИ думал, что с вероятностью 61,7% это еда).
  • Яйца — полный промах (по мнению ИИ это бампер от автомобиля с вероятностью 51,6%).

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

Что дальше

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

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

©  vc.ru