Вместе с группой НЛМК рассказываем, как машинное зрение сделает процесс по перевозке сырья на Стойленском горно-обогатительном комбинате безопаснее и в перспективе позволит сократить издержки на семьдесят миллионов рублей в год.

По плану цифровая система будет контролировать качество загрузки автосамосвалов и думпкаров (вагонов-самосвалов), а также оценивать объём перевозимой породы на Стойленский ГОК.

Работу над проектом начали в конце 2020 года, недавно закончился этап проверки гипотезы: компьютерное зрение протестировали на двух точках. В августе будет запущен MVP, после чего систему установят ещё в десяти стационарных точках на СГОКе.

Думпкары
Думпкары

Проблематика

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

В среднем из-за недогрузов каждый состав не довозит 2-3% от учётной нормы, из-за чего приходится делать дополнительные рейсы. Это влечет за собой расход топлива и повышает вероятность преждевременного износа деталей. При перегрузе или перекосах думпкаров также возникает повышенный износ деталей и возникает риск выпадения кусков породы на рельсы.

Решение

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

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

 Месторасположение карьера и железнодорожной станции, таких точек на СГОКе более десяти
Месторасположение карьера и железнодорожной станции, таких точек на СГОКе более десяти

Этапы внедрения

Если описать очень верхнеуровнево, то этапы интеграции системы выглядят так:

  • проектирование решения и оценка экономического эффекта;

  • подбор и монтаж оборудования (видеокамеры, сервера, компьютеры и т.д);

  • сбор данных;

  • разметка и тренировка нейросети;

  • тестирование;

  • доработка алгоритмов нейросети;

  • разработка backend-сервисов и интеграция с системами НЛМК;

  • масштабирование системы на десять стационарных точек.

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

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

Второй этап проекта будет включать установку системы на 10+ стационарных точках и интеграцию с системами НЛМК. В материале рассказываем о первой части проекта — именно о проверке гипотезы на примере думпкаров.

Установка видеооборудования и сбор данных

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

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

 Фото с фишаем, здесь виден изгиб по краям изображения
Фото с фишаем, здесь виден изгиб по краям изображения

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

Чтобы ускорить процесс и точность подбора техники, 3D-моделлер создал копию стационарной точки. Это позволило подобрать конфигурацию камер, не выезжая на места для постоянной проверки. С помощью такой модели можно «переключаться» между днём и ночью, чтобы оценить качество изображения.

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

Для непростых условий выбрали влагозащищенные камеры Hikvision, а также инфракрасную камеру глубины Intel RealSense D40055. Из-за того, что всё оборудование находятся в карьере, оно помещено в специальную защиту — телекоммуникационные шкафы, которые обычно используют в своей работе сотовые операторы. Они не только «спасают» камеры от пыли и грязи, но и самостоятельно охлаждаются, когда жарко, и нагреваются, если на улице становится холодно.

А для инфракрасной камеры отдельно сделали корпус из алюминия, так как она не предназначена для работы на улице.

Тренировка нейросети

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

За неделю съёмок мы отсняли 700 ГБ видео, из которых выбрали максимально разнообразные фото для разметки: разные составы, дни и время суток. В начале всё размечали вручную: зелёным цветом вагон, оранжевым — горку, фиолетовым — её центр. После чего размеченный материал в паре с оригинальным изображением передавали нейросети с задачей повторить результат.

Ручная разметка — довольно длительный процесс. Обработка одного фото занимает примерно 10-20 минут. Кроме того, каждый кадр нужно валидировать (2-5 минуты), но мы долго выбирали, что именно мы будем размечать, что распознавать, а также анализировать ли только ближайший вагон или вообще всё (от этого зависел объём работ). В итоге решили размечать всё, и на разметку и валидацию одного фото стало уходить 30-60 минут, плюс умножить это время на тысячу кадров.

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

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

Процедурно сгенерированая руда для обучения нейросети
Процедурно сгенерированая руда для обучения нейросети

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

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

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

Как работает система

Всего на железнодорожные пути «смотрят» три камеры.

Первая установлена на столбе — она направлена вниз, непосредственно на вагон с железной рудой. Данные с камеры отправляются на сервер, где алгоритмы обрабатывают изображение: фиксируют отступы по краям и оценивают равномерность погрузки сырья. Требования по отступам указаны в «паспорте загрузки» — это помогает избежать инцидентов со скатыванием камней с думпкара во время транспортировки породы.

 Места установки камер
Места установки камер

Вторая камера установлена сбоку и снимает горку (вершину) отгруженной железной руды. Это позволяет найти физический центр массы, что также помогает определить, правильно ли загружен думпкар. Так как перекосы в одну из сторон ведут к повышенному износу оборудования.

 Как выглядит горка
Как выглядит горка

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

Использование камеры глубины позволит добавить аналитической системе еще одну интересную особенность — она сможет определять вес (быть своего рода дистанционными весами). Это можно сделать следующим образом: так как мы знаем профиль и геометрию кузова, то с помощью довольно простых математических формул можно рассчитать объём, а зная, какая порода идёт и какого она объёма, мы сможем сказать, какого она веса. Для этого нужно плотность умножить на объём.

Иван Тимофеев
data science-разработчик RDL by red_mad_robot

Кроме видеокамер, на точке установлены прожекторы на 72 тысячи люменов (такие используют на стадионах). С их помощью изображение получается чётким даже в тёмное время суток.

Как это выглядит (на примере 3D-изображения):

Камеры в реальном времени передают видео на сервер, где уже алгоритмы обрабатывают данные. Чтобы система могла работать автономно, на стационарной точке установлен мини-компьютер и подведено питание.

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

Для того чтобы процесс транспортировки был максимально эффективным с точки зрения экономики, мы опираемся на очень важный параметр — коэффициент использования грузоподъёмности. Ведь если мы равномерно и правильно загружаем кузов машины, то мы в полной мере используем её ресурс. Однако по итогам 2020 года мы получили усредненный недогруз ж/д и автотранспорта на уровне 2%. И это при том, что точечно были зафиксированы и перегрузы. Коэффициент загрузки транспорта на уровне 100% — наша цель, в достижении которой нам помогает цифровой сервис.

Елена Кокорина
главный специалист Управления по цифровой трансформации Дивизиона Руда

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

Андрей Немировский
Начальник управления по цифровой трансформации АО «СТОЙЛЕНСКИЙ ГОК»

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

Ожидаемый результат

Планы на ближайшее будущее: дообучить модель для нового набора оборудования и интегрировать сервис с информационными системами СГОКа, чтобы данные об объёме и качестве загрузок передавались автоматически. А специалисты на местах могли оперативно вносить корректировки в процесс загрузки. Кроме того, масштабировать решение на десять стационарных точек, где работают думпкары и «БелАзы».

Ожидаемый экономический эффект на конец 2022 года:

  • исключить перегрузы и недогрузы и сократить расход топлива для самосвалов на 1% и электричества для думпкаров на 6,5%;

  • увеличить оборот перевозимой руды на 1–2%;

  • сократить количество поломок «БелАЗов»;

  • помочь определить негабарит ещё до попадания на обогатительную фабрику;

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

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

Стек технологий

При работе над системой мы применяли докеры и jupiter-ноутбуки. В качестве формата разметки использовали COCO. Корневой технологией выбрали фреймворк Detectron2 от Facebook. Он создан для работы с машинным зрением. Мы используем Instance Segmentation. У технологии есть недостатки — она плохо работает с мелкими объектами, но у нас были только большие объекты, поэтому нейросеть довольно хорошо справляется с задачей.

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

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

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

Видео клиента о ИИ-решениях на СГОКе. Над двумя из трёх работала наша команда — это проект с думпкарами и автосамосвалами, а также проект с оценкой грансостава железной руды на конвейере. Похожее решение мы внедряли для ERG на ССГПО.

Благодарим команду группы НЛМК за помощь при подготовке материала.

Комментарии (12)


  1. Fredp
    26.08.2021 14:09

    Мой опыт применения машинного зрения говорит о том, что если уж совсем не получается использовать никакие датчики - только тогда можно применять видеокамеры. Изменения в освещении, пыль, грязь, лежащий снег. Честно: не знаю на сколько круто перепрыгивает эти помехи ваша нейросеть. А неравномерность плотности угля? Я бы для начала обсчитал простые способы: ж.д./автомобильные весы. Если камеры, то классические алгоритмы без нейросети: стерео изображение с 2х камер, или построение формы насыпи с помощью анализа искажения луча линейного лазера.

    Нет, я конечно в шоке от нейросетей типа deepfake и прочего, но по моему, это индусская магия недоступная простому инженеру...


    1. SADKO
      27.08.2021 09:40

      Вполне доступная если владеть матчастью, но беда в том, что для бизнес воспринимает ML как AI которым пытается заменить интеллект и компетенции команды :-)


    1. seoptim
      27.08.2021 11:58

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

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

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

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

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


  1. Protos
    26.08.2021 15:10

    семьдесят миллионов рублей в год

    А можно в процентах?


    1. seoptim
      27.08.2021 12:03

      Это некая минимальная условность.

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

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

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


  1. imotorin
    27.08.2021 07:17
    +1

    во введении поставлена задача оптимальной погрузки
    решена задача косвенного контроля (по объёму) уже после погрузки
    корректировка конкретного вагона/автомобиля после погрузки не производится

    то же можно было решить классическими авто/жд весами (и это именно прямой контроль веса с погрешностью на тару)

    работа проделана интересная и модная

    результат можно было достингуть традиционными методами (возможно дешевле и проще)


    1. SADKO
      27.08.2021 09:34

      И главное, надёжнее! А тут камеры и свет расставляли те же люди, что и GoPro с последующей "правкой изображения" :-)

      Собирая данные не плохо бы что-то знать из предметной области в которой их собираешь, а иначе garbage in и на выходе соответственно.


    1. seoptim
      27.08.2021 12:06

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

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

      Здесь мы на ранних этапах, помимо паспорта загрузки и объема, планируем так же детектировать негабаритные куски, для отправки их в отвалы и гран.состав.


      1. imotorin
        27.08.2021 15:15

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

        ну а какие чудеса происходили на складе ферросплавов (легирующих элементов) на заводе с весами и видеоконтролем отгрузки - закачаешься


  1. Obrosov
    17.09.2021 13:20

    Мне вот другое интересно, ну мы выявили перегруз/недогруз в с погрешностью 1-2%. А дальше что? Какой нибуть менеджер покажет красивые картинки, рабочим порежут зп. Что дальше делать, как добиться результата? И тут подходим к тому, что с технологией загрузки мы ничего сделать не можем. Ибо это будет супер точно но не надёжно и медленно, и очень дорого. Или работать так как работаем с небольшим процентом погрешности. Поэтому и эффективность такой аналитической системы не имеет смысла.


    1. DmitryOgn
      27.10.2021 16:15

      Более того - погрузка контролируется постфактум, когда самосвал или вагон уже уехал.
      Что в этом случае даст информация о предположительных 2% недогруза?
      Предположительных - потому что разброс плотности руды даст колебание массы и вряд ли объемная съемка даст настоящую массу.
      Как экскаватор, загружающий вагон/самосвал за три взмаха, отследит 98%, но не более 100% загрузки, о которой станет известно когда вагон уехал?
      Кроме как оштрафовать машиниста экскаватора по надуманному поводу, что делать с этой информацией?


  1. Fascinus
    17.09.2021 13:20

    к жтим камерам надо отдельного мальчика поставить, который каждые n минут будет защитный фильтрпротирать (надеюсь его не забыли установить перел передней линзой объектива камер?))

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