Вместе с группой НЛМК рассказываем, как машинное зрение сделает процесс по перевозке сырья на Стойленском горно-обогатительном комбинате безопаснее и в перспективе позволит сократить издержки на семьдесят миллионов рублей в год. По плану цифровая система будет контролировать качество загрузки автосамосвалов и думпкаров (вагонов-самосвалов), а также оценивать объём перевозимой породы на Стойленский ГОК. Работу над проектом начали в конце 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 на ССГПО. Благодарим команду группы НЛМК за помощь при подготовке материала.