Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

Потренировавшись использовать компьютерное зрение и искусственный интеллект на множестве производств, команда rdl by red_mad_robot решила взяться за проект посложнее. Подобно Марио, мы спустились на уровень пониже — в шахты.

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

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

О проекте

Этот кейс лишь небольшой кусочек огромного, амбициозного проекта — создания «безлюдного» автономного рудника. В качестве тестовой площадки «Норникель» взял один из рудников Заполярного филиала, где и происходит эксперимент.

Перед компанией стоит задача — комплексная цифровизация всего рудника. В шахте в Норильске, уходящей вниз на 1300 метров, циркулирует целый город, там своя жизнь. Задача rdl — предоставить данные о работе самоходных буровых установок (СБУ), повысив коэффициент использования оборудования.

Артём Терновых, экс-директор по развитию rdl by red_mad_robot

Рудник «Таймырский» — крупное добывающее предприятие компании «Норникель», основан в 1982 году. Здесь добывают богатые сульфидные медно-никелевые руды, которые затем перерабатывают на Талнахской обогатительной фабрике. Месторождение вскрыто семью вертикальными стволами, горизонтальными горно-капитальными и наклонными подготовительными выработками. Добычу полезных ископаемых производят слоевыми и камерными системами разработки, с закладкой выработанного пространства твердеющими смесями. Работают на глубине от 1100 до 1500 метров. Подаваемый в шахту воздух подогревают калориферными установками на воздухоподающих стволах. Средняя температура воздуха — около 25 С°.

Работа в шахте выглядит так: в недрах земли находятся залежи медно-никелевых руд с повышенным содержанием цветных и драгоценных металлов. К ним клиенту нужно добраться кратчайшим путём.

Маркшейдеры — горные инженеры — составляют карту пространственно-геометрических измерений месторождения, на её основе проектируют разрез. Так команда понимает, куда и как двигаться в руднике, чтобы не выбирать большие объёмы пустой породы. Дальше выполняют основные горные работы: первым делом самоходная буровая установка (СБУ) бурит породу, в забуренные шпуры закладывается взрывчатка. После подрыва погрузочно-доставочная машина (ПДМ) вывозит породу, вычищая рабочее пространство для следующей итерации бурения.

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

Основной способ проходки — это использование самоходной техники, в том числе и для бурения. Самоходная буровая установка (СБУ) — электрогидравлическая буровая установка для проходки горных выработок и тоннелей, оборудованная передовой системой управления. У неё есть шасси на пневмоколесном ходу с дизельным двигателем для перемещения по руднику, а также электрогидравлическая станция.

Проблема на 65 млн рублей в год

Для бизнеса важна эффективность. А как её измерить в непростых условиях шахты? Отчёты о проведённой работе и о времени, затраченном на отдельные операции, операторы установок формируют письменно по итогам смены. В результате эта картина не всегда соответствует реальному положению дел. А ещё эта информация попадает в оперативный центр планирования довольно поздно — только в конце смены, когда исправить срочные проблемы уже нельзя.

Например, если в шахте ломается техника, она перекрывает подъездные пути. Это срочная проблема, которую нужно немедленно решить, — все остальные стоят и ждут, пока технику починят или куда-нибудь оттащат.

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

У нас было много кейсов по внедрению подобных систем, поэтому мы засучили рукава, застегнули каски и приступили к работе.

Алгоритм в целом понятен. Если попытаться уложить его в два пункта, нам было нужно:

  1. Разработать программную часть — нейронную модель, которая будет уметь определять действия техники в реальном времени.
  2. Подобрать и смонтировать оборудование — камеру, которая это всё снимает и передаёт поток видео в промышленный мини-компьютер (вычислитель). Он, в свою очередь, будет обрабатывать данные прямо в шахте, формировать отчёты и передавать их «наверх» по Wi-Fi.

Загвоздка была со вторым пунктом — от выбора оборудования зависел алгоритм и во многом успех проекта.

Начинаем с исследования

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

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

Мы действовали одной командой. Клиент нашёл поставщика бортового вычислителя и смог договориться с ним взять выбранную модель на небольшое срок, чтобы провести исследования. А мы, в свою очередь, нашли поставщиков остального железа. По вычислителю выбор остановили на платформе Jetson. Это название платы Nvidia, которую сама компания позиционирует как решение для промышленной эксплуатации. Поставщик выполняет неоригинальную сборку в корпусе с нужными нам стандартами пыле-, грязе- и влагозащищённости.

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

Дмитрий Старый, руководитель проектов компании «Норникель»

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

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

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

Денис Карпов, руководитель проекта rdl by red_mad_robot

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

Первый спуск в шахту: установка камеры и сбор данных

В мае 2023 года к нам в офис приехала партия камер и видеорегистраторов. Мы не стали терять время на оформление логистической доставки до объекта — взяли упакованные коробки с собой в багаж и отправились с ним в Норильск. Разобравшись с бюрократическими процедурами по приёмке оборудования, распределили комплекты для каждой СБУ и отправились на глубину монтировать. Работы проводили на горизонте 1050 м.

<p>Так выглядел первый спуск в шахту</p>

Так выглядел первый спуск в шахту

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

  1. Простой, когда установка не двигается.
  2. Перегон (движение машины в любую сторону).
  3. Движение буровых стрел.
  4. Бурение правой стрелы.
  5. Бурение левой стрелы.
  6. Забуренный правый шпур.
  7. Забуренный левый шпур.
  8. Загрязнение камеры.

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

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

Вот она
Вот она

Поставщик обращал наше внимание на то, что у камер есть инфракрасная подсветка. Программным способом её не отключить, только физическим выпаиванием из платы. Мы тогда подумали, что ИК-подсветка — это прекрасно, в тёмной шахте видимость станет ещё лучше. Но когда через какое-то время мы собрали первые видео, сначала даже не поняли что произошло. А произошло вот это:

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

При слабом освещении, когда прожекторы СБУ направлены в другую сторону, камера включает ИК-подсветку, а та отражается от лобового стекла и получается эффект «встречки». Пришлось снова спускаться в шахту и воспользоваться лучшим инженерным решением, которое ещё никого никогда не подводило:

Мы заклеили датчики изолентой
Мы заклеили датчики изолентой

Разработка моделей

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

Сборка датасета

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

  1. Просматриваем видео и разбиваем его на фрагменты в соответствии с действиями СБУ.
  2. Проверяем размеченные фрагменты на корректность.

Качество разметки влияет на качество будущих моделей машинного обучения. Поэтому очень важно было получить фрагменты видео с правильно определёнными на них действиями. В результате разметки мы получили для каждого действия видеофрагменты общей длительностью от 200 до 600 минут.

Далее видеофрагменты были разделены на более короткие промежутки длительностью не более десяти секунд. Это позволило искусственно увеличить размер датасета, а также стандартизировать данные для обучения. И последним шагом мы разделили датасет на три выборки: train, val и test. Первые две — выборки для обучения модели, а test — для оценки качества обученной модели. Такое разделение позволит честно оценить качество модели, так как данные из test-выборки никак не участвовали в обучении и модель их не видела.

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

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

  • TSM;
  • TSN;
  • SlowFast.

Предложенные варианты показывают хорошие метрики на открытых датасетах по задаче распознавания действий на видео. А ещё они относительно небольшие по размеру, что позволяет их запускать даже на маломощных вычислителях. После сравнения качества моделей на наших данных в качестве финальной мы выбрали SlowFast — она дала лучшие результаты по качеству и производительности.

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

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

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

Принцип трёх единств: разработка сервиса

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

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

Место, время и действие не сходились. Забегая вперёд, скажем, что всё закончилось хеппи-эндом, но без драмы не обошлось.

Этот вычислитель не очень мощный. У него процессор ARM, на нём достаточно устаревшее по современным меркам программное обеспечение. Например, на этом мини-компьютере используется CUDA версии 10.2, которая даже официально не поддерживается. Для сравнения: сейчас вышла двенадцатая версия. Множество библиотек для ARM-архитектуры не имеет готовых сборок. В частности PyTorch с поддержкой GPU, требуемая для запуска модели. Её приходилось собирать вручную.

Сергей Черноудов, разработчик rdl by red_mad_robot

В условиях горящих сроков компиляция PyTorch выглядела так. Наш разработчик Сергей Черноудов запускал эту сборку, ложился спать на три часа, просыпался и смотрел, собралось или нет. Нет? Ложился ещё на часок, просыпался и смотрел: ага, скомпилировалось. В итоге в четыре утра вставал и запускал сборку следующей программы. Например, PyTorch собирался 6–8 часов.

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

Совет, который мы дали бы себе в прошлое, очень простой: иметь на руках всё необходимое оборудование на ранней стадии проекта. Особенно когда у него очень специфичное железо и ПО.

Ускорение работы сервиса в два раза

В обработке видео можно условно выделить две фазы: подготовка видео для предсказания и непосредственно само предсказание. Фазу предсказания особенно не оптимизируешь, за исключением подготовки модели в нужном формате — TensorRT, при экспорте в который фреймворк сам перестраивал слои и что-то немного урезал. Тут мало что можно оптимизировать, в отличие от фазы подготовки видео, где нам удалось кое-что придумать.

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

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

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

Второй спуск в шахту: установка всех вычислителей

Предолев трудности с интеграций нашего кода на Jetson, мы отправились в Норильск во второй раз — монтировать вычислители и настраивать передачу информации на поверхность.

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

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

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

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

Но оказалось, что всё работает только частично. Кабина самоходной буровой установки сделана из толстого слоя железа и способна выдержать камнепад. А ещё это мощный экранирующий элемент, через который сигнал Wi-Fi пробивается с большим трудом. Во время испытаний в гараже — с открытыми дверьми и хорошим сигналом Wi-Fi — всё работает, а во время работы в шахтах до сигнала практически не достучаться.

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

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

Результаты

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

На этом фрагменте можно увидеть, как модель определяет действия установки и «понимает», что происходит по ходу движения. Далее формируется пакет данных, анализируется вычислителем и преобразуется в ёмкий отчёт, который с буровой установки из шахты отправляется в систему клиента.

Клиенту было важно видеть несколько показателей, которые отражаются в отчёте:

  1. Время простоя буровой установки.
  2. Количество забуренных шпуров, чтобы сравнивать данные по паспорту работ и их фактическое количество.
  3. Бонусом операторам буровых установок не приходится заполнять путевые листы вручную.

Я считаю, главное достижение этого проекта — тот факт, что мы научились работать с такой специфической аппаратурой, как Jetson, и можем обрабатывать данные прямо во время движения техники. По сути нам теперь даже не нужно стабильное покрытие, чтобы обрабатывать данные. Можно формировать легковесный отчёт прямо на месте, а потом ждать хотя бы небольшого сигнала для отправки этих нескольких килобайт. Это решение может с успехом применяться в труднодоступных условиях или там, где для реализации проекта требуются значительные инфраструктурные капиталовложения для установки серверов и коммутирующего оборудования. Такое мобильное решение поможет значительно сэкономить бюджет.

Денис Карпов, руководитель проекта rdl by red_mad_robot

Как компьютерное зрение показывает себя в шахте: кейс rdl by red_mad_robot и «Норникеля»

Над материалом работали:

  • текст — Стас Звягинцев,
  • редактура — Виталик Балашов,
  • иллюстрации — Петя Галицкий.

Чтобы ничего не пропустить, следи за развитием цифры вместе с нами:

Да пребудет с тобой сила роботов! 🤖

99
Начать дискуссию