{"id":6989,"title":"\u0418\u0433\u0440\u0430: \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0431\u0430\u0448\u043d\u044e \u0438 \u0432\u044b\u0438\u0433\u0440\u0430\u0439\u0442\u0435 Xbox","url":"\/redirect?component=advertising&id=6989&url=https:\/\/tjournal.ru\/special\/combo&placeBit=1&hash=627d500a510abab1e3050cd0015144081f494f2e91684708c5c1f136eca35455","isPaidAndBannersEnabled":false}
Machine learning
Marina Glayboroda

Автоматический заказ воды с помощью технологий ИИ

Занимаясь разработкой различных приложений с использованием технологий ИИ хочется поэкспериментировать с автоматизацией собственного офиса. Мы попробовали определить, кто чаще моет посуду, и нам это удалось. Теперь, может, автоматизировать процесс заказа воды в офис?

Сейчас у нас нет офис-менеджера, и бывают дни, когда «ответственный» за доставку может забыть её заказать ввиду более важных на этот период рабочих дел. Впоследствии мы страдаем, так как даже чаю попить невозможно.

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

Подумали об осуществлении, прикинули затраченное время и приступили.

Какие технологии пригодятся

Для автоматизации доставки нам необходимо решить две задачи: определить, когда заканчивается вода, и, собственно, сделать заказ на доставку.

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

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

Схематично весь процесс заказа выглядит так:

На практике все немного сложнее. Разберем.

Computer Vision, чтобы определить пустые бутылки

Для определения пустых бутылок мы взяли YOLO 3: Real-Time Object Detection. You only look once (YOLO) — это нейронная сеть для обнаружения объектов в режиме реального времени, написанная на языке C. Работает она достаточно точно и быстро: на видеокарте Pascal Titan X обработка изображений происходит при кадровой частоте 30 FPS и имеет mAP 57,9% на COCO test-dev. Также сеть не требует огромного датасета для обучения.

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

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

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

Вот так выглядит разница между крышками пустой и полной бутылок
Результат работы сети на датасете из 14 картинок. Указанные на изображении дата и время являются некорректными

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

Результат работы сети на датасете из 42 картинок. Указанные на изображении дата и время являются некорректными

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

Natural Language Processing, чтобы поговорить с оператором

Что пригодится, если звонить и вести диалог с оператором будет не человек? Технология NLP, она же «обработка естественной речи». Здесь нам пригодился наш прошлый проект — Pizza Bot.

Для обработки речи мы попробовали три сервиса: Google Cloud Speech-to-Text, Amazon Transcribe и Yandex SpeechKit. С каждым из них можно реализовать два варианта обработки аудио и перевода его в текст.

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

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

Для этого можно сравнивать абсолютные величины амплитуд звука. Если оператор что-то говорит, а затем идет тишина и продолжается 0,5 секунд, то считать фразу законченной и отправлять её на обработку.

Мы выбрали первый вариант и использовали облачное решение Google Cloud Speech-to-Text, которое распознает человеческую речь в режиме реального времени, и переводит её в текст. Также API умеет извлекать из слов смысл и анализировать контекст.

Когда бот получил фразу, системе необходимо её обработать и принять решение, что ответить. За обработку у нас отвечает сервис Dialogflow, а за озвучивание принятого решения — технология Text-to-Speech, которая преобразовывает текст в речь. Мы использовали сервис Google Cloud Text-to-Speech, включающий в себя множество естественно звучащих голосов для различных языков.

Диалог бота и оператора службы доставки воды

В заключение

Такое решение легко масштабируется. Его можно настроить под любую необходимую задачу, так как CV и NLP на сегодняшний день многое уже умеют. Мы вот с их помощью автоматизировали процесс заказа воды в офис.

{ "author_name": "Marina Glayboroda", "author_type": "self", "tags": ["python","nlp","machinelearning","cv","camera","ai"], "comments": 45, "likes": 53, "favorites": 30, "is_advertisement": false, "subsite_label": "ml", "id": 63397, "is_wide": true, "is_ugc": true, "date": "Wed, 03 Apr 2019 19:21:06 +0300", "is_special": false }
0
45 комментариев
Популярные
По порядку
Написать комментарий...

Оператора предупредили что ему будет робот позванивать?

7

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

1

Ну во-первых это честно. Во-вторых он не будет пытаться говорить как с обычным человеком.

Гугл дуплекс предупреждает об этом.

1

Насчет честности – так мы же никого не обманываем. Бот звонит и заказывает воду. Мы получаем и оплачиваем. Насчет того, что оператор не будет говорить как с обычным человек. Бот понимает сказанное и внятно отвечает. Зачем оператору подстраиваться под разговор с машиной?

0

Ну буквально это ложь, вы создаете впечатление человека, хотя это вовсе не человек.

Это как в полицейской одежде и останавливать машины и просить документы: "Мы никого не обманываем, вы сами подумали, что мы из полиции"

Проще и эффективнее было-бы сообщение им писать, чем тратить ресурсы на войс-бота.

0

Это не корректное сравнение. Переодеваясь в полицейского, человек имеет злой умысел. Его цель - нажива. Мы же автоматизировали процесс заказа воды. Мы платим за нее то, что должны и не имеем скрытых мотивов.

0

Не переживайте, это просто бот. Он ругается, что его не представляют нигде, вот и борется за свои права ред.

3

Обман тоже не очень классно, конечно, не так как воровать.
Но сказать вначале "здравствуйте, это бот по заказу воды" сделает этот звонок дружелюбнее и уважительнее к консультанту.

1

У меня сложилось впечатление что оператор предупрежден, голос робота распознать не сложно, а он делает вид что все в порядке. Или ему каждый день роботы звонят?

0

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

0

Ахаха... обожаю забивать микроскопом гвозди! У меня один знакомый использовал OpenCV для того, чтобы контролировать когда закипит чайник... Чайник электрический, а значит в момент его отключения, будет снижаться энергопотребление и размыкаться сеть. Триггер же есть для сигнала. По поводу воды... ОСМОС на полгода позволяет забыть об этом в офисе.

6

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

1

Он захотел не просто мониторить, но и понимать момент того, как он закипел, то есть должно наступить событие, триггер которого генерит OpenCV. У себя сделал проще - у меня есть свисток на чайнике.

2

Вы крутые :)

2

Спасибо ^_^

0

Подумали и решили проблему! Здорово! Может пригодится)
А для канцтоваров нечто можно сделать? Часто сталкиваемся с тем ,что бумага кончилась и пр)

1

Конечно можно - поменяйте завхоза!

2

Зачем? Если можно элегантно решить проблему)

0

Вы правда считаете колхоз с распознаванием - элегантным решением проблемы бестолкового завхоза? ))

0

Можно) Если для бумаги, то распознавать высоту стопки: когда она достигнет минимального заданного предела – сообщать/заказывать. Все, что человек может увидеть - может увидеть и камера. Главное – освещение и качество изображения.

0

А, если имеется в виду бумага в рулонном исполнении? Задача то поважней чем чаю попить!

1

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

0

С бумагой – можно. Это будет реально за счет того, что пачки складываются в стопку. Относительно воды: а когда количество заказываемых бутылок увеличится, расширять платформу? А если не увеличится? Используя ИИ достаточно изменить три параметра: количество полных бутылок, пустых бутылок и заказываемых.

0

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

0

Заказывают обычно у тех с кем уже контракт. К тому же этот рынок очень конкурентный и выигрыш 5% цены того не стоит.

1

Заплачу немножечко денежек за имплементацию такого к нам в офис (бутыли выглядят так же, только их обычно штук 15-20), камеру сам поставлю как скажете, вместо звонков просто алерт в слак нужен. Напишите мне на почту, умоляю ceo@fireart.studio ред.

1

Как часто воду заказываете, в среднем?

0

В том и проблема что сложно понять периодичность. Так-то по договору нам привозят раз в месяц 10 штук, но вот сейчас выходил на кухню смотрю 2 бутыля осталось из 10, а я помню что привозили вроде недавно. Звоню спросить когда следующая доставка, говорят 16 числа. А значит с понедельника мы полторы недели будем без воды. Если бы я сейчас не заказал допдоставку, была бы проблема с кассовым разрывом воды.

Заказывать дополнительную доставку можно, но нужно это делать за 3 рабочих дня ДО, потому что пока они ещё привезут. Плюс постоянно меняется потребление, допустим новые сотрудники появились, или какая неожиданность пришло лето и потребление вырастает в 2 раза резко.

А если б был алерт который говорит "Согласно последним данным водологов, потребление воды последнюю неделю на уровне 1.3 бутля в день, через 3 дня вода закончится, закажите ещё милорд (казне хватит 7 бутлей до новой плановой доставки)". Было б круто :)

1

Ну тут все просто, милорд, раз в неделю считаете количество оставшихся полных бутылок, если их меньше трех - делаете заказ на 10. Тоже самое и с остальными ресурсами, но параметры подбираете под скорость расхода и срока доставки.
А камера на кухне - вещь полезная :)

0

У меня 30 сотрудников и помимо работабщего бизнеса 2 стартапа из разных сфер жрущие нереальное количество времени и внимания, думаете мне не хватает приключений настолько что я хочу раз в неделю ходить на кухню считать бутылки? :D

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

1

Дима, тогда Вам просто необходим завхоз - человек, который решает вопросы по хозяйству офиса. Также изветстен как менеджер по офису, обычно это симпатичная девушка ). Если 30 сотрудников в офисе - ей хватит работы на fulltime.

0

Мммм... Я в Варшаве девушке такой буду платить допустим 5 злотых (это в Варшаве норм ЗП для офис-менеджера), плюс налоги, место, медстраховки, спортбенефиты и прочие плюшки, в итоге она будет обходиться в 8000 навскидку. Это где-то 2300 долларов в месяц или $27600 в год. А сколько мне единоразово будет стоить несколько автоматизированных процессов которые её заменят?

Штуки 3 я уже решил с помощью CRM в связке с Zapier и слаком.

А самое главное, ОНА ЖЕ БУДЕТ ПИТЬ ЭТУ ВОДУ ТОЖЕ :D

3

Ну вообще-то за $2300 она же не только будет воду заказывать, верно?
Обычно у нее масса обязанностей - разбирать почту, отвечать на звонки, заказывать еду, контролировать уборку офиса, встречать гостей, заказывать билеты, организовывать корп. мероприятия, несложная деловая переписка. Или Вы это сами все делаете и Вас это устраивает?

"ОНА ЖЕ БУДЕТ ПИТЬ ЭТУ ВОДУ ТОЖЕ"
Возьмите миниатюрную девушку, ей маленькой бутылочкм на весь день хватит )).

0

У нас нет почты которую нужно разбирать, не нужно отвечать на звонки, заказывать еду. Уборку офиса не надо контролировать, аутсорсеры бизнес-центра справляются и без контроля. Гостей у нас почти нет, а если кто и придет, то его встретит тот кто пригласил. Билеты заказывать не надо. Мероприятия организовывать тоже. Деловую переписку ведут специально обученные люди - account executive, sales manager, project manager, BD. Сам я делаю то что могу делать только я, занимаюсь развитием и стратегией, немного операционкой.

Так что ума не приложу зачем такая девушка, разве что для красоты, но это сексизм и заменяется вазоном с красивым растением :) ред.

0

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

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

0

Я уже обьяснял, логика и мотивы собственника совсем не такие. Вы просто не понимаете

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

0

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

0

Что вы ко мне прицепились, я говорю я вертел держать это в голове и мне не упал завхоз. Что не ясно :)

Я свой способ ведения дел никому не навязываю ред.

3

Прикольно! Мне также нужно сделать в холодильнике. Как кончается колбаса, молоко, яйца итд, бот сразу звонит в Ашан и делает заказ курьеру. :D

1

Интересная идея. Можно такое сделать, но камер потребуется больше, чем одна)

0

mAP 57% означает что в половине случаев сетка ошибается? Или я не прав? Если да, то это значит каждое второе обращение в сервис ложное?

0

Intersection over Union (IoU) вычисляется как отношение:
в числителе - область пересечения между предсказанной ограничительной рамкой (то есть то, как ее нарисовала сеть, определяя объект) и ground-truth ограничительной рамкой (то есть то, как мы вручную разметили этот объект);
в знаменателе - область объединения, то есть область, охватываемая как предсказанной ограничительной рамкой, так и ground-truth ограничительной рамкой.

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

Mean average precision (mAP) рассчитывается как среднее значение между трешхолдами (порогами) IoU от 0.5 до 1 (шаг порога 0.1). IoU 0.5 показал высокую точность, что уже является отличным результатом. Далее рассчитывалась точность и для других порогов (трешхолдов), но с каждым повышением порога точность работы модели снижается. А 57,9% — это среднее значение между просчитанными IoU.

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

1

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

0
Отрицательный чувак

а я бы с помощью поплавкового датчика решил бы :) ред.

0

Это для контроля уровня в конкретном бутыле, а так достаточно поставить датчик подсчёта смены бутылей, который сопряжён с ДЦ.

0
Читать все 45 комментариев
Личный фонд - новый способ оформления наследства

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

Что пугает в резюме?

Сейчас ищу технического кофаундера (подробнее тут: «Как найти кофаундера?»), получаю достаточно много писем и обращений самого разного содержания. Хотел поделиться впечатлениями, это не руководство и не критика.

Что советуют опытные руководители начинающим и тем, кто хочет сделать карьеру

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

Sports.ru снял документальный фильм про «Зенит»-2008

В центре внимания — «золотое поколение» футбольного клуба, завоевавшее Кубок и Суперкубок УЕФА в 2008 году.

Трейлер фильма «Зенит-2008. Победная песня»
Сделай сам: умная камера для наблюдения за питомцами

Обучаем нейросеть на котиках.

Делал дизайн, пока говорил по телефону: история Пола Рэнда, который создал логотипы для IBM и Стива Джобса Статьи редакции

Рисовал антифашистский журнал, работал арт-директором в Esquire и делал рекламу на азбуке Морзе.

Пол Рэнд   monitorbox
Бесплатная доставка и кросс-продажи: как магазину «ВКонтакте» увеличить средний чек

Размер среднего чека — один из показателей бизнеса, который должен отслеживать владелец магазина «ВКонтакте». Он способен рассказать о платёжеспособности покупателей, помогает оценить эффективность акций и программы лояльности, правильность ценовой политики.

Retail Innovation Tech Alliance (RITA) дал старт новому отбору стартапов

Retail Innovation Tech Alliance (RITA) объявляет о шестом отборе стартапов для реализации совместных проектов с крупнейшими ритейл и технологическими корпорациями России и Казахстана.

Курс биткоина впервые превысил $65 тысяч в ходе торгов Статьи редакции

В середине октября криптовалюта второй раз за год преодолела отметку в $60 тысяч.

Арт-экология. Уличные тренды и успешные городские проекты

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

Ленд-арт объект "Рогатка желаний" на фестивале ленд-арт в Муслюмово фото: организаторы фестиваля
Разбор: «Яндекс» действительно притворяется системным сообщением iOS на iPhone

Чтобы убедиться, так ли это, я решил открыть сайт одиозной компании «Яндекс» на компьютере в браузере Safari, включив режим отладки и используя «юзер-агент» iPhone. И проверить, действительно ли это системное сообщение или «Яндекс» имитирует системное сообщение iOS, используя фишинговый методы?

null