Один товарищ — без каски, второй — без перчатки.
На производствах есть много не самых хороших камер, в квадраторы которых смотрят не самые внимательные бабушки. Точнее, они там просто с ума сходят от однообразности и не всегда видят инциденты. Потом медленно звонят, а если это был заход в опасную зону, то иногда звонить в цех смысла уже нет, можно сразу родственникам рабочего.
Прогресс дошёл до того, что робот может увидеть всё и дать люлей каждому, кто нарушает. Например, напомнив по SMS, лёгким разрядом тока на оповещатель, вибрацией, противным писком, вспышкой яркого света или просто сказать руководителю.
Конкретно:
- Очень легко распознавать людей без каски. Даже лысых. Увидели человека без каски — сразу алерт оператору или начальнику цеха.
- То же самое касается очков и перчаток на опасных производствах, страховки на поясе (правда, мы смотрим только на карабин пока), светоотражающих жилетов, респираторов, шапочек для волос и других СИЗ. Сейчас система обучена распознавать 20 типов СИЗов.
- Можно точно считать людей на объекте и учитывать, когда и сколько их было.
- Можно подавать тревогу при заходе человека в опасную зону, причём эта зона может настраиваться по факту запуска-остановки станков.
И так далее. Самый простой пример — цветовая дифференциация укладчиков кирпичей и заливщиков бетона по цвету каски. Для помощи роботу. В конце концов, жить в обществе с отсутствием цветовой дифференциации, значит не иметь цели.
Как воруют на стройке
Один из видов распространённого воровства — это когда подрядчик обещал привести на объект 100 рабочих, а по факту привёл 40–45. А дом всё строится и строится. Всё равно их никто точно посчитать по факту не может. Как в известном анекдоте: если на стройке поселится медведь и будет жрать людей, то никто не заметит. Так и генподрядчик не имеет никакой возможности проконтролировать бригады. Точнее, даже если использовать СКУД, его всё равно обманут, как вот в этом посте про кота-терминатора.
Обычно СКУДов на стройках нет либо они только на вход.
Мы ездили меняться опытом к высокоразвитым цивилизациям и увидели, что у них у каждой профессии (точнее, роли) есть свой цвет каски. Вот кирпичи кладут укладчики — у них каски синие, бетон заливают заливщики — у них зелёные, рядом ходят всякие умники — у них жёлтые, поэтому перед ними надо делать два раза «ку». И так далее.
А нужно всё это, чтобы очень легко детектировать каждую роль. На объекте стоит несколько десятков довольно дешёвых камер, которые дают что-то вроде 320х200 в цвете. Считаются рабочие по каскам в реал-тайме, и к каждой камере привязан конкретный участок строительства. В итоге всё это в конце дня в аналитике сшивается в учёт графиков по зонам: кто, в каком количестве и на каком участке работал.
В общем, мы переняли опыт. Только пока мы его присматривались, нейросети шагнули далеко вперёд, и появилось много новых детекторов. Ещё несколько лет назад они были довольно капризными и нестабильными, а сейчас позволяют очень точно ловить самые интересные ситуации. Не в последнюю очередь из-за скорости обработки детекторы нередко ошибаются на отдельных кадрах, а на видеопотоке с небольшими изменениями ракурса мы получаем отличный практический результат.
А если я нацеплю вторую каску на пояс?
Сначала мы узнали, что рабочий может получить две каски и одну из них нацепить на задницу. У нас появилось сразу два детектора: поиск скелета и определение цветового пятна на соответствие с вершиной этого скелета и поиск синхронно движущихся объектов. По второму оказалось детектировать проще: например, человек с каской на заднице почти никогда не осматривается этой каской. Потому что для этого надо вращать головой. А это движение очень легко детектируется. Точнее, мы не знаем, что там именно детектируется на самом деле (это ж нейросеть), но обучилась она очень быстро и ловит нарушителей, можно сказать, по походке.
Мы строим модель человека.
Дальше мы просто строим теплокарту в реальном времени и отчёты в конце дня.
Соответственно по такому же принципу — обучением нейросети — легко детектируются:
- Каски.
- Халаты.
- Жилетки.
- Сапоги.
- Торчащие волосы.
- Страховочные карабины.
- Респираторы.
- Защитные очки.
- Корректное ношение куртки (важно для электрооборудования: может шандарахнуть в машзале на производстве).
- Вынос крупных инструментов за периметр.
В общей сложности сейчас уже обкатали 29 детекторов. Единственный момент — поскольку мы работаем на опасных производствах вроде химии или добычи, там есть требования к типам перчаток. Например, длинные и короткие. В этом случае надо, чтобы они были разного цвета: длину под рукавом по видеокамере определить очень сложно.
А вот тут часто были сработки по крысам. Отдельного детектора крыс у нас нет, но зато есть детектор объектов, мешающих работе станка:
Что ещё детектируется?
Мы обкатывали детекторы на химических производствах, в добывающей сфере, в атомной отрасли и на стройках. Оказалось, что незначительными усилиями можно закрыть ещё несколько требований, которые раньше решались теми же бабушками, ошалело пытавшимися разглядеть что-то на картинке через плохое разрешение и с плохим фреймрейтом. Конкретно:
- Поскольку мы всё равно строим скелетную модель каждого работника, можно определять падения. По падению можно сразу останавливать станок, рядом с которым он находится (в пилотных внедрениях такой интеграции не было, были просто тревоги). Ну это если у вас есть IioT.
- Конечно, нахождение в опасных зонах. Это очень легко, очень точно и очень полезно всем. На металлургических предприятиях люди работают рядом с чанами кипящей стали, закалять сталь полезно, но иногда опасно стоять немного не с той стороны С учётом работы разных узлов и оборудования можно менять эти опасные зоны, задавать им расписание и так далее.
- Другой очень полезный детектор про наличие СИЗ контролирует ответственность сотрудников и проверяет, что им ничего не угрожает. Вот тут бабушка очень ответственно подходит к задаче учёта и носит все положенные ей СИЗ. Похвально!
Очень легко был реализован контроль поведения — конкретно спит работник или нет. Пока мы тестировали всё это, правила эволюционировали от «В этой зоне должен быть человек в зелёной каске» к «В этой области человек в зелёной каске должен двигаться». Пока нашёлся только один умник, который просёк фишку и включил вентилятор, но и это тоже оказалось легко поправить.
Химикам было очень важно фиксировать всякие струи пара, дым. В нефтянке — целостность труб. Огонь — вообще стандартный детектор. А ещё есть проверка закрытых люков.
Точно так же детектятся забытые вещи. Мы обкатывали это на одном из вокзалов ещё пару лет назад, там это почти не имеет смысла из-за большого количества событий. А вот на производствах, особенно на химических, очень удобно следить за вещами в чистой зоне.
Интересно, что прямо с видеоаналитики мы умеем считывать показания приборов в зоне камеры. Это актуально тем же химикам, производственные комплексы которых имеют высокий класс опасности. Любое изменение вроде замены датчика — пересогласование проекта. Это долго, дорого и больно. Точнее, ДОЛГО, ДОРОГО и БОЛЬНО. Поэтому у них Интернет вещей придёт поздно. Сейчас они хотят видеонаблюдение на счётчики и считывать данные, оперативно на них реагировать и сокращать потери из-за неожиданно и незамеченно вышедшего из строя оборудования. На основании актуальных данных счётчиков можно построить цифровой двойник предприятия, внедрить предикативный ТОиР, но это уже совсем другая история…Контроль уже есть: мы пишем сейчас проактивную аналитику по совокупности данных. И отдельно — модуль предсказания замены батарей.
Ещё одна невероятная штука — оказалось, что в зернохранилищах и в хранилищах материалов типа щебня можно снимать кучу с 3–4 ракурсов и определять её края. А определив края — давать объем зерна или материала с погрешностью до 1 %.
Последний детектор, который мы писали, — контроль усталости водителя, типа «клевков носом», зевания и частоты моргания. Это для HD-камер, где видно глаза. Скорее всего, ставиться будет в диспетчерские. Но главная потребность — в БелАЗы, КамАЗы на карьеры. Там, бывает, машины падают, поэтому сейчас на добыче заставляют что-то придумывать, чтобы водителя контролировать. Робот лучше бабушки.
Про тачки. Например, тема с контролем усталости активно применяется автопроизводителями не только БелАЗов, КамАЗов и прочих МАЗов. Уже в обычные рядовые автомобили производители встраивают системы предупреждения об усталости водителей, но пока у них достаточно простые решения, анализирующие только положение авто относительно разметки и характер движения руля. Мы же пошли дальше и детектим поведение человека, которое намного сложнее.
Еще один кейс слежки за водителем — детекция неправильного поведения при пользовании машинами car sharing. В них нельзя говорить по телефону без hands free, есть, пить, курить и много чего другого.
А, и последнее. Мы уже несколько лет как умеем делать трекинг объекта между камерами — когда, например, что-то стырили, нужно проверить, каким путём и как. Если на объекте — 100 камер, то поднимать материал замучаешься. А тут система сформирует остросюжетный триллер про Оушена и его друзей автоматически.
В чём отличие от системы двухлетней давности? Теперь это не просто распознавание вроде «лысый в оранжевой куртке из одной камеры вышел и почти сразу в другую зашёл», а строится математическая модель помещения, и по ней — гипотезы о движении объекта. То есть всё это стало работать на зонах с перекрытиями и местах со слепыми пятнами, причём иногда обширными. Да и детекторы теперь гораздо лучше, ведь есть библиотеки, которые определяют возраст по лицу. На HD-камерах можно задавать ориентировки вроде «мужчина 30 лет с женщиной 35 лет».
Так что, возможно, лет через 5–7 мы закончим с производствами и пойдём к вам домой. Для безопасности. Это в ваших же интересах, гражданин!