Видеоаналитика в нефтехимии
Привет!
Как мы уже неоднократно писали, наши объекты — это довольно большие производства, как с точки зрения занимаемой площади, так и количества различных установок и узлов. Чтобы всё это работало и не возникало каких-то ситуаций, способных вызвать остановку производственного процесса, за каждым узлом нужно следить. Поэтому у нас есть и специальные люди, которые этим занимаются, и приложение для мобильных обходов, которое существенно упрощает этим людям жизнь.
Отдельно здесь стоит рассказать про видеоаналитику. Она может решать разные задачи — повышать качество продукции благодаря автоматическому контролю и отбраковке, помогать исключить внезапные остановы производственных линий, своевременно предупреждая оператора о необходимости вмешаться, контролировать соблюдение правил промышленной безопасности, что для промышленного объекта является задачей номер один. Что в принципе можно анализировать, просматривая видео с объектов (и нужно ли его просматривать), как видеоаналитика помогает экономить время и средства, на чем у нас все работает — об этом под катом.
Откуда мы берем данные
На каждом объекте у нас несколько сотен камер в технологическом периметре, о котором мы будем говорить. Существует ещё периметр, в который входят камеры службы безопасности, но о нем пока рассказывать не будем :). А вот так называемые производственные камеры, которые постоянно смотрят на тот или иной участок, узел, оборудование — это именно то, на чем будет фокус.
Наши заводы — разного возраста, и было время, когда не все они принадлежали СИБУРу. В течение предыдущих 15 лет активно проводилась их модернизация, и сейчас сложилась ситуация, когда на разных заводах могут быть разные камеры и системы работы с ними. Соответственно, каждый оператор на таких объектах привык к конкретному софту и привычной для него выдаче видеопотоков.
Взять и все причесать под одну гребенку на всех объектах, переобучить операторов, собирать все и выводить на нашем интерфейсе — это дополнительный стресс для всех участвующих сторон, а еще неиллюзорные затраты в плане времени и средств. Как и вариант с заменой камер на новые.
Поэтому наша идея была такой: интегрироваться с любой из этих систем наблюдения так, чтобы мы использовали именно ее интерфейс, привычный операторам, и могли выводить нужные картинки при наступлении определенных событий. При этом какого-то своего интерфейса поверх него мы не создаем, пользователю не приходится переучиваться. Кстати, подробнее о пользователях.
Пользователи нашей системы
Всё это задумывалось для удобства оператора, который ведёт производственный процесс в своей системе контроля. Вывод информации с камер по умолчанию представляет собой стандартную картинку, когда на экране перед вами сразу множество прямоугольных окошек с видео от разных камер. Почти как Zoom на удаленке во время дейли.
Главный инструмент оператора — это система управления производством. Если происходит что-то критичное, оператор это замечает и принимает соответствующие меры. Совокупность двух факторов, опыта оператора и его знание процессов, информации с КИП вкупе с картинкой от видеокамер, дают возможность не только принимать решения по уже случившимся событиям, но и прогнозировать что-то не очень приятное и избегать этого. Ведь всегда проще предотвратить что-то, нажав пару кнопок, чем потратить пару часов (дней, миллионов) на устранение последствий.
Так и здесь — оператор в состоянии заметить на видео что-то, что через 5 минут бездействия выльется в аварийный останов и убытки для компании. Или в ещё что-нибудь не очень полезное.
Например, забивка оборудования. Мы писали вот тут про наш экструдер и про то, как он может забиваться. Система управления производством подаёт сигнал тогда, когда забивка — это уже свершившийся факт. Всё уже забилось, подаётся соответствующий сигнал, механизм останавливается, чтобы избежать его повреждения или серьёзной аварии. Оператор же, следя за установкой, может заметить появление факторов, которые заранее предшествуют забивке. В случае с полипропиленом будут видны агломераты (кусочки гранул, слипшихся друг с другом и постепенно заполняющих поверхность вибросита).
А ещё, конечно же, видеонаблюдение — это безопасность труда. Когда описывают подобные кейсы, очень любят приводить в пример случаи, когда система в состоянии распознать, в каске человек или нет. Возможно, красиво звучит для людей, оторванных от производства. Реальность же такова, что на серьёзных объектах у сотрудников уровень самодисциплины вполне достаточен для того, чтобы понимать: раз каска нужна, значит, она должна быть на голове, ровно как и другие элементы СИЗ.
Поэтому в случае охраны труда мы анализируем корректность последовательности действий сотрудника при типовых операциях, например, анализе проб продукции, или более простые кейсы с нахождением человека в запретной зоне.
Но описанные случаи — это, скорее, факультативные возможности системы. Первичная же функция видеонаблюдения и видеоаналитики — разгрузить оператора и помочь избежать появления предаварийных ситуаций. Это помогает не транслировать онлайн поток со всех камер на экран оператора, а автоматически выводить лишь ту картинку, на которой что-то происходит. Что-то, отличающее от штатных условий, требующее внимания и принятия решения человеком.
Но было бы слишком скучно, если бы весь смысл системы был только в том, чтобы наблюдать и предупреждать. Поэтому сейчас мы развиваем эту идею сразу в двух направлениях.
Первое —предсказания. Куда ж без этого. Раз мы собираем записи о каких-то ситуациях, значит, у нас есть архив этих записей, их можно использовать. Например, те же забивки: собираем статистику о том, как они происходят, где чаще всего, какие это именно забивки и прочее, какова их интенсивность. Потом соединяем полученные данные с информацией, собранной с датчиков. Затем идём к коллегам, которые занимаются построение предиктивных моделей, и получаем возможность намного точнее предсказывать забивки и корректировать техпроцесс еще до того, как появятся их первые признаки.
Второе — плотная интеграция с существующей производственной линией. Ранее, если было видно, что на какой-то линии пошёл брак, оставалось лишь сигнализировать об этом оператору и просить, чтобы прислали живого человека вот это всё разгребать. После интеграции можно автоматически отправлять быстрые команды на открытие заслонок, после чего брак будет уходить в отбойник.
Так как работает сама система?
С учётом географии нашей работы, собирать все видеопотоки в Москве и обрабатывать их тут мы не можем. Поэтому система у нас распределённая, мы должны ставить её максимально близко к видеопотокам, в противном случае имеющейся сети не хватит для передачи данных. Тут у нас часто спрашивают — почему вы не хотите использовать камеры, позволяющие проводить предварительную аналитику непосредственно на камере? Хотим! :) Но! Здесь сразу два фактора, по которым обработка на камерах остается делом красивым, но трудно достижимым в большинстве случаев.
Во-первых, взрывозащита. Да, мы про неё поэтому и пишем почти в каждом посте, потому что она нужна практически везде. Безусловно, взрывозащищённые камеры машинного зрения есть, но ценник на них отнюдь не маленький. Плюс, любое изменение такой инфраструктуры на взрывоопасном производстве — это всегда дорого и долго (так как кроме самих монтажных работ, необходимо подготовить и согласовать с надзорными органами проект, а это тоже время и деньги).
Во-вторых, остановка производства. Если у нас появляется возможность заменить камеры на более современные, без пауз в работе производства пойти и установить новое необходимое железо нельзя. Процесс поиска подходящего технологического окна тоже оттягивает внедрение.
Вот и выходит, что с обработкой не на камерах, а на серверах сильно проще. Поэтому парадигма нашей системы в том, что мы стараемся максимально использовать существующую инфраструктуру, которую уже смонтировали. Сервера, отвечающие за анализ видеопотока, у нас стоят во взрывозащищённой зоне, максимально близко к камере. Интеграционная шина, которая обеспечивает интеграцию с системой видеонаблюдения, озером данных, платформой IoT и остальными сервисами, а также логику обработки событий, разворачивается на нескольких виртуальных машинах в кластере производства для обеспечения высокой доступности системы.
Отдельный интерес для нас представляет решение задачи по непосредственно анализу сигнала. Тут сразу стоит оговориться, не все модели анализа изображений работающие в СИБУРе разработаны с нуля внутри. В соответствии с нашей парадигмой использования по максимуму того, что есть, мы активно используем результаты работы моделей, которые уже есть в системах видеонаблюдения или в системах видеоаналитики от других компаний. Но в случае если установленных моделей нет, нам нужно найти/разработать что-то новое. Для этого на этапе проектирования системы мы разработали и зафиксировали программный интерфейс для модели.
Это дало нам возможность привлекать сторонних разработчиков и быстро интегрировать такие классные штуки как OpenVINO. Спектр решаемых задач в распознавании у нас очень широк. Начиная с классических задач детектирования и классификации в rgb пространстве (анализ появления агломератов на виброситах), продолжая трекингом объектов (анализ пересортицы продукта) и заканчивая работой с rgbd при анализе потока с камер для контроля работы манипуляторов.
Основной тонкостью в случае нефтехимии является несбалансированность выборки. Данных в ситуации, когда всё хорошо — много, даже очень много. Но данных, когда что-то идёт не так, крайне мало. Специально пойти и, например, забить линию только для того, чтобы собрать тестовый датасет, нельзя. Где-то это просто невозможно без остановки и перезапуска линии (что вызовет потери денег из-за простоя), где-то вообще небезопасно с точки зрения технологического процесса. Поэтому активно исследуем возможности дополнительной аугментации и синтеза данных. В этом есть свои успехи, надеемся дописать и опубликовать статью об этом :)
Сама же разработка у нас ведётся на Python, как бека, так и моделей. Разворачивание преимущественно в Docker.
Результаты
Проект запущен чуть больше года назад, за это время нам уже удалось внедрить своё ПО на наших производствах в Томске, Тобольске, Воронеже.
Благодаря системе было замечено достаточно много событий, которые своевременно обрабатывались операторами.
Главное — система доказала, что полезна и получает положительную оценку от производства, как и задумывалось, нивелируются ситуации, в которых мы бы какое-то время продолжали выпускать некондиционный продукт, впустую запуская производство того, что нельзя будет продать и довольно сложно собирать перед тем, как утилизировать. Или же когда вместо ожидаемого продукта из-за незамеченных сбоев мы производим другой, более дешёвый продукт.
Например, такое возможно с полипропиленом. Конечный этап производства у нас — это гранулы полипропилена, которые вы видели в наших других постах и роликах. Их удобно насыпать в мешки, транспортировать, засыпать в ёмкости, они соответствуют заявленным ТТХ. А вот если вовремя не заметить и не обработать ситуацию с забивкой, получится другой продукт. Будет сыпаться агломерат, гранулы начнут слипаться. Это всё тот же полипропилен, но из-за таких косяков при производстве это уже другая марка продукта. Само собой, более дешёвая.
Поэтому получается, что система избавила нас как от добавочных аварийных остановов, когда люди тратят время, а машины грустно простаивают, так и от производства такого вот товара классом ниже, чем планировалось.
Планы на будущее
Мы продолжаем доработку системы, потому что систем видеонаблюдения на объектах много и они разные, а интегрироваться надо с каждой. Прямо сейчас мы заняты тем, что налаживаем полноценное удалённое развёртывание системы на объектах. С удалённым доступом на производствах тоже не все так просто, так что тут свои особенности — корпоративный контур, разные сегменты сети, ограничения в плане безопасности и прочее.
Плюс мы работаем в направлении более полного сбора данных с датчиков, чтобы иметь максимально подробную картину происходящего.
Фидбек же от операторов приходит по большой части позитивный. Если бы мы решили делать систему, отталкиваясь от парадигмы «А теперь вы все будете работать вот в этой новой штуке», он был бы, скорее всего, немного иным.