Кто не моет посуду? Ответили на этот вопрос с помощью машинного обучения

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

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

Интерфейс веб-приложения

Для осуществления задуманного нам понадобились пара видеокамер и немного свободного времени.

Начнем!

Почему машинное обучение?

Во-первых, нейронные сети отлично справляются с задачами распознавания в режиме реального времени и с высокой точностью. Также в 2015 году в рамках соревнования ImageNet Large Scale Visual Recognition Challenge (ILSVRC) исследователи констатировали превосходство программ в определенных задачах проекта над человеческими способностями.

Но первым задокументированным случаем стала программа по распознаванию дорожных знаков, созданная специалистами компании Swiss AI Lab в 2011 году. В базе 50 тысяч изображений немецких дорожных указателей — она распознала 99,46% из них, что в два раза эффективнее человека. Сейчас подобные технологии активно развиваются и совершенствуются.

Во-вторых, мы с этим работаем. Мы перепробовали множество различных методов, и именно нейронные сети решали подобные задачи наиболее эффективно.

Что нужно для решения проблемы

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

  • Камера.

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

  • Алгоритм.

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

  • Датасет.

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

  • Время.

По порядку

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

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

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

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

Для обнаружения лиц применили решение, которое с помощью открытой библиотеки TensorFlow реализует архитектуру MTCNN для обнаружения лиц.

Как работает MTCNN

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

Но обнаруживать и распознавать человека, который подошёл к раковине, — недостаточно. Он же мог просто руки помыть. Так что мы реализовали идентификатор «нагрузки» раковины, то есть как много в ней посуды — с помощью различных функций OpenCV.

Для определения процесса «мытье посуды» мы добавили к системе нейросеть Temporal Relation Network (TRN). Эта сеть, обрабатывая видеозапись, выделяет кадры с манипуляциями и создает из них несколько кластеров, которые позже сравнивает с известным ей видам манипуляций.

Как работает TRN

Чтобы все это завернуть в удобную и симпатичную обертку, сделали веб-приложение с помощью Flask, HTML, CSS, Javascript. Оно показывает, кто подходит и моет посуду. Вся информация об этом записывается в базу данных SQLite, поддерживаемую в нашем приложении с помощью библиотеки Peewee.

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

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

0
62 комментария
Написать комментарий...
Вася Пражкин

Ну Вы мастера гвозди микроскопами забивать!

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Не ищем легких путей 😏

Ответить
Развернуть ветку
10 комментариев
Улан Ажибаев

Добрый день, подскажите для "нешарищего", где в России обучают нейросети, кроме Яндекса и geekbran'a, имеются ли факультеты

Ответить
Развернуть ветку
Вы в федеральном розыске

Я свою нейросеть обучаю дома

Ответить
Развернуть ветку
2 комментария
Ilya Konovalov

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

Ответить
Развернуть ветку
Злой Полушубок

У нас на кухне есть 2 посудомоечные машины, но эти ленивые задницы не могут посуду туда убрать (запускает специально обученный профессионал). В результате раковина битком.

Ответить
Развернуть ветку
Vladimir Kapustin

ну конечно - эксперименты же нужно сразу ставить на платящих клиентах!

Ответить
Развернуть ветку
Marina Glayboroda
Автор

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

Ответить
Развернуть ветку
Εгор Κонстантинов
Теперь мы задумываемся над тем, чтобы смотреть за количеством воды в кулере

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

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Это хорошая идея, смотреть кто сколько пьет воды. Если смотреть со стороны ЗОЖ, например. Поддерживает ли человек свой водный баланс)

Ответить
Развернуть ветку
Levon Nikoghosyan

можете попробовать кто не поднимает сиденье унитаза тоже!

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Чтобы распознават этого человека, необходимо установить камеры в WC. Этого делать нельзя)

Ответить
Развернуть ветку
1 комментарий
Olga Melesha

Творческий подход!
У нас до этого не дошло-частично перешли на одноразовую посуду и немного повысили зарплату уборшице за наведение порядка на кухне...)

Ответить
Развернуть ветку
Вы в федеральном розыске

Одноразовую посуду?
Что же вы об экологии не заботитесь, сволочи?

Ответить
Развернуть ветку
3 комментария
Marina Glayboroda
Автор

Спасибо)
Уборщица убирает на кухне, вот только два раза в неделю. А что делать в остальные три дня?) Количество посуды лимитировано, а одноразовая - не то)

Ответить
Развернуть ветку
Nick Chernykh

Вот кто у меня дома посуду не моет.

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Тот, кому лень)

Ответить
Развернуть ветку
Marat R Safi

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

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Можно)

Ответить
Развернуть ветку
Marat R Safi

Марина, нам нужно объединить наши технологии!

https://vc.ru/flood/21878-lunch-traffic-jams

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Мы можем это обсудить)

Ответить
Развернуть ветку
33_rublya
Оказалось, наша уборщица подумала, что за ней следят и прикрыла её.

Но вы же действительно следите! Сотрудники-то хоть в курсе?

Ответить
Развернуть ветку
Marina Glayboroda
Автор

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

Ответить
Развернуть ветку
Wilgelm Volman

Можно ссылку на Ваш проект?

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Мы нигде его не выкладывали, так как проект экспериментальный)

Ответить
Развернуть ветку
Danil Khasanshin

Класс!

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Спасибо)

Ответить
Развернуть ветку
Алла Мамжиева

Круто придумали!

Ответить
Развернуть ветку
Муминджон Файзиев

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

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Да, мы выбрали именно практику в качестве двигателя прогресса)

Ответить
Развернуть ветку
Илья Фадеев

хаха, крутая тема) было бы интересно такое применить в общагах например или каких-то коммунах

Ответить
Развернуть ветку
Anton Ilabanau

блин молодцы.
надо тоже какую-нибудь херню такую сделать для тренинга

Ответить
Развернуть ветку
Е. К.

Если прикинуть (это все не точно, а imho, и вообще чужие деньги считать не хорошо ...):
1) время и зп 2х сотрудников: при средней зп 80К, 5 дней: 80/4*2 = 40К руб
2) стоимость камер: 7К + 1.5К = 8.5К
3) стоимостью софта, эл-ва, серверов и налогами наверное можно пренебречь
4) опыт бесценен ))
Итого: 48.5К руб.
А могли бы хорошую посодомойку купить. :)

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Это не точно)

Ответить
Развернуть ветку
Denis Lapenko

А что за компания ?

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Hey Machine Learning )

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
123 123

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

Ответить
Развернуть ветку
123 123

И в режиме реального времени с помощью каких технологий?

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Да, результаты работы алогритмов пишутся в JSON. Web App тянет инфу из этого JSON и раз в секунду дает информацию о том, что происходит возле раковины)

Ответить
Развернуть ветку
1 комментарий
Никита Ерёминъ

Так, а кто посуду не моет? Самое главное то забыли

Ответить
Развернуть ветку
Marina Glayboroda
Автор

Один из нас)

Ответить
Развернуть ветку
Даня Ходкевич

Ваша система поможет разрушить нерациональные отношения. Так держать!

Ответить
Развернуть ветку
Akim Kasabulatov

Так покажете кто её не моет?)

Ответить
Развернуть ветку
ИванПетрСидор ИвановПетровСидоров

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

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

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

P.S. ну в крайнем случае, организовать автоматическую доставку грязной посуды в посудомоечную машину. Тут еще алгоритм расстановки тарелок и кастрюль.

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