Подписка
МЕНЮ
Подписка

Ближайшие онлайн-мероприятия компании "Гротек" 25 июня. Инженерная инфраструктура ЦОД: системы охлаждения и гарантированного  и бесперебойного электроснабжения 26 июня. Комплексная безопасность и защищенность объектов промышленности,  нефтегазового сектора и электроэнергетики 28 июня. Комплексный подход к кибербезопасности. Защита АСУ ТП. Безопасность  КИИ   Регистрируйтесь и участвуйте!

Внедрение систем компьютерного и машинного зрения: мнение разработчика

Алексей Тюрин, 03/05/24

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

Любое программное обеспечение имеет определенный свой жизненный цикл, и системы с использованием машинного зрения не исключение. На Новолипецком металлургическом комбинате (НМЛК) существуют стандартные шаги по подготовке инфраструктуры, обучению моделей машинного зрения, по промышленной опытной эксплуатации и непосредственному введению в продакшн-эксплуатацию. На каждом из этих этапов возникают определенные вопросы, вызывающие вопросы у разработчиков.

Программные модули и системы видеоаналитики. Выбрать >>

Подготовка инфраструктуры

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

  • требуемые мощности;
  • вопросы безопасности;
  • скорость обработки;
  • экспертизу поддержки.

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

Следующий параметр – скорость обработки видеопотоков. Существуют системы, которые оценивают картинку в реальном времени. Но при переброске видеопотока в публичное облако происходят большие сетевые задержки, это очень серьезная нагрузка на сеть, так как видеопоток – "тяжелая" вещь. Помимо этого, возникает и проблема безопасности. Хотим ли мы хранить за контуром нашей компании какие-то видеофайлы, где у нас потенциально могут быть коммерческие тайны, готовы ли мы к инцидентам безопасности? С этой точки зрения обработка видео на собственных серверных мощностях выглядит более привлекательно.

Однако у собственных серверных мощностей есть один большой недостаток – это экспертиза поддержки.

Если мы арендуем готовые docker-контейнеры, например, у Сбер Cloud или у Selectel, то там уже все готово: настроены видеокарты, установлены драйверы, остается лишь загрузить свой docker-образ в облако.

С собственным решением все сложнее. Нам нужно самим как-то поддерживать сервер, следить за состоянием железа, программного обеспечения (ПО) – все эти действия требуют значительной экспертизы.

Кроме того, если вы выбираете какие-то облачные сервисы для запуска таких продуктов, то нужно позаботиться о том, как прокидывать трафик в эти облака.
Несмотря на то что IP-камеры сейчас достаточно распространенная вещь, на производстве мы зачастую используем только те камеры, которые доступны в определенной подсети. Это, например, камеры таких производителей, как DALSA или Hikrobot. У таких камер есть большое преимущество: они высокопроизводительные, у них есть широкие настройки, позволяющие отладить все что угодно, начиная от экспозиции и до размера пакета, который будет передаваться по сети.

Обучение моделей

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

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

Существуют определенные подходы, позволяющие условно обойти эти ограничения:

  1. Автоматическая разметка данных: мы выбираем некоторое количество кадров, большая группа экспертов со 100%-ной вероятностью оценивает, достоверный ли это кадр, и мы начинаем кластеризацией пытаться подогнать все эти кадры в одну группу.
  2. Подход Metric Learning, который изначально был создан для того, чтобы подбирать товары в интернет-магазинах, но достаточно неплохо зарекомендовал себя и в производственных задачах.

Однако остается вопрос про неоднородные и сложноструктурированные данные.

Когда мы говорим о производстве, то, скорее всего, на любом большом производстве есть такая система, как MES (Manufacturing Execution System), – система управления производственными процессами, которая решает задачи синхронизации, координации, анализа и оптимизации выпуска продукции на производстве. То есть мы прослеживаем единицы, которые обрабатываем, и информация об этих единицах обработки бывает сложноструктурированная.
Где-то нам приходится "мапить" (отображать) по одним ключам, где-то по другим. В третьем случае нам приходится мапить данные вообще по временным меткам. Камеры машинного зрения, как правило, ничего не знают о каких-то единицах обработки, они просто видят картинку. Например, подъезжает автомобиль, разгружается погрузчик или кран везет какую-то упаковку нашего сырья или готовой продукции. Поэтому перед специалистами стоит задача такого сложного мапинга.

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

Воспроизводимость математических моделей

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

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

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

Промышленно-опытная эксплуатация

Создав модель и развернув инфраструктуру, мы приступаем к промышленно-опытной эксплуатации системы машинного зрения. На производственном этапе от нашей модели ожидают точности, приближенной к 100%.

У пользователей систем машинного зрения определенный образ мышления, и если система в пяти случаях из ста ошибается, то к вам будут предъявлены большие претензии – "мне система не помогает, только отвлекает".
Какие здесь могут быть решения?

Опыт подсказывает, что машинное зрение – это технология, достаточно зависимая от внешних условий. Нам постоянно нужно:

  • поддерживать хорошую связь с камерой;
  • поддерживать хорошие условия съемки;
  • иметь очень качественную модель.

Сразу добиться идеального сочетания этих обстоятельств сложно, поэтому для подстраховки мы подкрепляем видеоаналитику данными IoT. Это могут быть различные RFID-метки, сигналы GPS и прочих датчиков, например открытия/закрытия задвижки, концевых датчиков, датчиков весов и т.д.

Например, если вы отслеживаете автомобиль внутри складского помещения или цеха и вам нужно подтвердить, что в данный момент автомобиль находится в опасной зоне или там, где он должен находиться, будет здорово подкрепить данные умного видеонаблюдения информацией с датчиков лидаров. Если крупный объект попал в эту зону, мы придаем уверенности данным нашей нейросети и утверждаем, что с вероятностью 99,9% наша нейросеть права.
Другой способ подтверждения – подход с голосованием. То есть нейросеть показывает, что к нам приехал автомобиль, мы назначаем этому ответу вес 70%, дополнительно берем датчик с весовой платформы, которая регистрирует, что что-то тяжелое действительно встало в это место.

Мы назначаем этой информации вес 30%. Это позволяет подстраховаться, и в случае, если камера будет выдавать плохую картинку, наша система продолжит надежно работать.

Особенности обслуживания видеокамер

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

Основное решение – применение взрыво- и температурозащищенных кожухов, различных механизмов, протирающих линзы и т.д. Но бывает так, что не всегда камеру можно установить там, где можно подвести определенные коммуникации, например сжатый воздух, чтобы обдуть объектив. Поэтому мы прибегаем к силам машинного обучения, условно просчитывая градиент по резкости и изменению кадров. Если резкость значительно падает, значит, пора проводить техническое обслуживание видеокамеры.

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

Промышленно-опытная эксплуатацияПромышленно-опытная эксплуатация

Производственная эксплуатация

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

Построение тестового стенда

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

Для точных результатов имеет смысл проводить тестирование в так называемом клоне продакшн-системы. Это значительно дороже, так как нам придется создать точно такой же контур, как и для действующей системы, – фактически мы будем иметь рядом две системы, работающие одновременно. Это так называемая парадигма тестирования или разворачивания blue-green, когда один стенд является действующим и работающим, а на второй стенд пользователи не смотрят, но по сути он также является полноценной системой.

Журналирование

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

Взаимодействие с конечным пользователем

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

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

Непрерывное улучшение моделей

Модели должны постоянно обновляться, улучшаться и переобучаться. Переобучение моделей видеоаналитики всегда связано с накоплением видеоархивов. Вопросы, которые стандартно возникают в этой связи: как построить видеоархив, сколько его хранить и какие мощности для этого понадобятся? Есть готовые вендорские решения, возможно даже open source, где мы можем хранить очень большое количество файлов распределенно.
Второй вариант – можно писать свои собственные решения, что также является рабочим вариантом, но менее продуктивным.

Обзор решений для защиты периметра

С подробным описанием кейсов применения машинного зрения на производстве можно ознакомиться в блоге группы НЛМК: https://habr.com/ru/companies/nlmk/profile/

Иллюстрация предоставлена автором

Опубликовано в журнале "Системы безопасности" № 1/2024

Все статьи журнала "Системы безопасности"
доступны для скачивания в iMag >>

Фото: ru.freepik.com

Темы:ВидеонаблюдениеМашинное зрениеКомплексная безопасностьБезопасность объектовЖурнал "Системы безопасности" №1/2024
Статьи по той же темеСтатьи по той же теме

Хотите участвовать?

Выберите вариант!

 

КАЛЕНДАРЬ МЕРОПРИЯТИЙ
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ РЕКЛАМОДАТЕЛЕМ
Комментарии

More...