Разработка Marina Glayboroda
20 483

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

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

В закладки

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

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

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

Начнем!

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

Во-первых, нейронные сети отлично справляются с задачами распознавания в режиме реального времени и с высокой точностью. Также в 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.

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

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

#machinelearning #python #camera

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Marina Glayboroda", "author_type": "self", "tags": ["python","machinelearning","camera"], "comments": 60, "likes": 64, "favorites": 19, "is_advertisement": false, "subsite_label": "dev", "id": 60892, "is_wide": true, "is_ugc": true, "date": "Tue, 12 Mar 2019 14:15:27 +0300" }
{ "id": 60892, "author_id": 268380, "diff_limit": 1000, "urls": {"diff":"\/comments\/60892\/get","add":"\/comments\/60892\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/60892"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 235819 }

60 комментариев 60 комм.

Популярные

По порядку

Написать комментарий...
11

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

Ответить
2

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

Ответить
2

Ваше бы усердие, да в мирное русло..

Ответить
2

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

Ответить
26

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

Ответить
7

Тех, кто не моет руки после туалета.
Поубивал бы.

Ответить
0

Да зачем грех на душу брать, они сами скоро откинутся )

Ответить
0

Они несут вред окружающим

Ответить
0

Мизофобия ... Мизофобия (от др.-греч. μύσος — грязь, загрязнение, осквернение + фобия — страх; , англ. mysophobia, misophobia) — навязчивый страх загрязнения либо заражения, стремление избежать соприкосновения с окружающими предметами. Человека, который испытывает подобный страх, называют мизофобом.

Ответить
0

Это следующий шаг для масштабирования

Ответить
0

Спасибо, успокоили! А то могло бы закончиться подведением силовых проводов к креслу сотрудников и подаче напряжения, если кто-то не помыл кружку.

Ответить
0

Над вычислением тех кто не поднимает стульчак в туалете?

Ответить
5

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

Ответить
2

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

Ответить
1

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

Ответить
0

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

Ответить
0

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

Ответить
15

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

Ответить
5

Подумайте о социализации вашей нейросети. Ей нужно общение со сверстниками, чтобы не стать "белой вороной" в обществе.

Ответить
0

Откуда вам знать чем занимается моя нейросеть? Может, она котиков распознаёт, зачем ей общение?

Ответить
4

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

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

Ответить
0

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

Ответить
2

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

Ответить
0

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

Ответить
0

А почему именно камеры, есть же разные датчики, инфракрасные, тепловые...

Ответить
–1

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

Ответить
2

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

Ответить
0

А может она бумажная, биоразлагаемая, хотя не, бред какой-то... )

Ответить
0

Как-то не учёл этот момент. Тогда норм

Ответить
0

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

Ответить
1

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

Ответить
1

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

Ответить
1

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

Ответить
1

Можно)

Ответить
1

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

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

Ответить
0

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

Ответить
1

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

Ответить
0

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

Ответить
1

Класс!

Ответить
0

Спасибо)

Ответить
1

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

Ответить
1

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

Ответить
0

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

Ответить
0

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

Ответить
–2

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

Ответить
1

Это не точно)

Ответить
0

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

Ответить
0

Hey Machine Learning )

Ответить

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

0

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

Ответить
0

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

Ответить
0

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

Ответить
0

а подскажите, сколько памяти нужно под видеоаналитику?

Ответить
0

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

Ответить
0

Один из нас)

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

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

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

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления
{ "page_type": "default" }