ML в промышленности: как построить систему управления процессом окомкования железорудных окатышей
А вы знаете, как руда превращается в чугун? Даже на автоматизированном производстве многое зависит от ручной экспертизы. На производстве железорудных окатышей ещё недавно качество продукции измерялось буквально на ощупь. Дата-сайентисты помогли снизить зависимость от человеческого фактора. Как это получилось, что общего у окатышей с клетками и зелёным горошком, и как модели помешал кран с водой — читайте в этой статье.
Привет, Хабр! Меня зовут Андрей Голов. Я отвечаю за направление Data Science в «Северсталь Диджитал». Расскажу, как машинное обучение используется в тяжёлой промышленности, а именно — как устроена наша система управления процессом окомкования железорудных окатышей.
Производственный процесс
Окатыши — это полуфабрикат для металлургического производства, который загружается в доменную печь, и на выходе получается чугун. Их производят в городе Костомукша в Республике Карелия на АО «Карельский окатыш». Далее отправляют на производство в Череповец, где происходит выплавка чугуна.
Есть параметры, которым должны соответствовать окатыши. Соответствие в итоге влияет на производство чугуна и расход кокса — основную статью расходов на металлургическом производстве:
Массовая доля железа.
Показатели прочности.
Грансостав — процент содержания окатышей различных размеров (например, 8–16 мм). Плохо, и когда окатыши слишком маленькие, и когда слишком большие. Размер влияет на параметры производства, поэтому нужен баланс.
Массовая доля вредных примесей.
Основность — соотношение основных оксидов к кислотным на выходе.
Технологическая цепочка производства окатышей начинается с карьера добычи руды. Потом руду дробят, крупные части — измельчают. Затем полученный полуфабрикат обогащают. На этой стадии содержание железа в руде увеличивается с 20−30% до 67–70%.
Обогащённая руда поступает на этап окомкования. Окомкователь — это вращающийся барабан. На вход поступает руда с разными присадками, на выходе получаются шарики — сырые окатыши. Именно автоматизацией этого процесса — окомкования — мы и занялись.
Дальше окатыши попадают на грохот, где идёт просеивание. Маленькие окатыши отправляются на рециркуляцию, готовая продукция уже нужного размера — на обжиг, а совсем крупные части — на переработку. Обжиг помогает сделать сырые окатыши твёрдыми, упрочнить их и выжечь вредные примеси. После этого продукт отгружают на ж/д станцию и отправляют в Череповец.
Проблемы управления производством
Путь производства окатышей от руды до конечного продукта — довольно длинный и технически сложный. И на этом пути встречаются проблемы:
Отсутствуют данные о грансоставе (и других свойствах окатышей), и определяются мастером окомкования на глаз.
Постоянно меняющийся состав концентрата.
Сложный состав сырья для переработки. Со временем руда становится беднее, в ней увеличивается содержание вредных примесей. Значит, нужно подстраиваться, подбирать технологию, чтобы получить продукцию нужного качества.
Зависимость результата от экспертизы и опыта конкретных мастеров. Управление процессом во многом осуществляется на глаз и на ощупь — вручную оценивается качество, размер и влажность окатышей на выходе, зоны переката внутри окомкователя и т. д. Лучшие мастера окомкования на ощупь могут определить влажность окатыша с точностью 0,1%, что просто немыслимо! Естественно, при таком уровне контроля и управления мастером о тонкой настройке и речи быть не может.
Дефицит опытных операторов такого класса, который позволяет на ощупь определять качество окатышей. А значит, это потенциальное «бутылочное горлышко».
Решение: автоматизированная система управления
Необходимо было постепенно уходить от столь сильной зависимости от человека, и одно из решений — создать автоматизированную систему управления процессом окомкования. Дальше расскажу, как мы занимались разработкой этого решения.
Общая схема нашего решения выглядит так:
На вход поступает железорудный концентрат — обогащённая и измельчённая руда. Потоковый анализатор определяет его химические свойства и влажность. Затем концентрат поступает в окомкователь, где выставляются нужные параметры: дозировки концентрата, бентонита, извести, обороты окомкователя и т. д.
На выходе получаем сырые окатыши. CV-модель получает их изображение с камер и определяет грансостав, влажность и процент хороших окатышей. Все эти метрики поступают в итоговую модель управления, которая рассчитывает параметры управления окомкователем.
Система работает в двух режимах:
Максимальный объём сырых окатышей при фиксированном качестве. Под качеством подразумевается доля грансостава 10−12,5 мм. Если на выходе максимальный процент таких окатышей, значит, процесс идёт хорошо.
Максимальное качество сырых окатышей при фиксированном объёме. Данный режим актуален, когда возникает ограничение на следующем переделе обжига. Если обжиг по каким-то причинам не справляется с поступающим объёмом окатышей, то нет никакого смысла увеличивать производительность. В этом случае система повышает качество окатышей.
Как мы строили CV-модель для оценки качества процесса
Рассмотрим отдельные составные части нашей системы. До установки камер люди определяли качество окатышей на ощупь. Для определения грансостава окатыши относили в лабораторию, где с помощью сит определяли доли разных классов.
Этот анализ недолгий, но не позволяет управлять процессом онлайн. По нашему запросу его проводили дважды в день. Без запроса — не проводили вовсе. Нам необходимо было найти другое решение для оценки грансостава — на основе CV.
К тому же, очевидно, что одного грансостава не всегда достаточно для оценки качества процесса. Визуально видно, что где-то окатыши получаются «ровненькие» и «красивые» (конечно же, с точки зрения технолога), а где-то — «слипшиеся» или «непонятной» формы. Во втором случае кажется, что надо принимать меры, хотя у окатышей может быть хороший грансостав и высокий показатель комкуемости. Но если процесс настроен плохо, его нужно исправлять, и как можно скорее. Для этого понадобится дополнительная информация из CV-модели.
Мы установили камеру над частью грохота, где находится большая часть готовых окатышей. Также установили защитный кожух от света — для оценки параметра влажности окатышей нужен одинаковый свет, а в цеху освещение в течение дня меняется.
Ниже вы можете увидеть классы окатышей на сегментах изображений с камеры:
Окатыши могут быть правильной округлой формы, а могут быть сплавленные, слипшиеся в комок, или бесформенные с налипанием (мы называем их мерзкими), или очень крупные. Мерзкие могут переходить в сплавленные, а сплавленные — в крупные и так далее. Но, в любом случае, всё это — плохие окатыши, их появление сигнализирует о нарушениях в процессе производства.
Первые подходы сводились к построению бинарного классификатора: модель должна была ответить, «хороший» или «плохой» окатыш получился. Для этого мы попробовали и разные архитектуры классификаторов, в том числе и с использованием трансформеров. Но такой результат сложно интерпретировать — ответить не удавалось на главный вопрос: насколько «плохой» или «хороший» кадр пришёл в модель. При просмотре новых изображений у нас постоянно возникали споры, какие же получились окатыши — отличные или мерзкие (плохие). При этом попытки откалибровать вероятность классификатора ситуацию не улучшали.
Поняли, что нужен совершенно другой подход — свести задачу к сегментации или детекции с масками. Нужно это было ради того, чтобы получить как можно больше информации от каждого окатыша на кадре. Первой мыслью было использовать инстанс-сегментацию с помощью, например, mask-RCNN.
Для этого необходимо было сделать разметку полностью вручную. Это очень энергозатратный процесс, и мы выполняли его в полуавтоматическом режиме с использованием алгоритма SegmentAnything. Разметили порядка 56 кадров и 40 тысяч окатышей.
Мне кажется, что DS-инженеру Артёму Соломко, который занимался CV, эти окатыши снились в кошмарах, хотя он говорил, что они напоминают зелёный горошек. Работа была крайне сложной, но дала плоды. Насмотревшись на картинки с окатышами, инженер осознал, что окатыши по своей структуре очень напоминают ядра клеток. Поразмечаешь 40 тысяч окатышей и не такое увидишь!
Мы решили применить алгоритмы, используемые в медицине для решения задач с клеточными структурами — микроскопическими снимками ядер клеток. Взяли алгоритм StarDist, в котором предсказываются не bounding boxes напрямую, а для каждого пикселя рассчитывается расстояние в нескольких направлениях до границы объекта и предсказывается класс. А затем с помощью пост-процессинга определяются инстансы объектов и ограничивающие их боксы. Этот алгоритм позволяет разделять плотно прилегающие или перекрывающие друг друга объекты.
Такой подход позволил достичь показателей precision и recall ~0.98, и добиться хороших результатов сегментации и классификации окатышей на кадре. Дополнительно мы проработали вопрос решения этой задачи с помощью mask-RCNN детектора — надо было убедиться, очень хотелось сравнить со StarDist. Но результаты были хуже — precision и recall не превышали 0.89. К тому же, мы сравнивали и с классическими сегментационными архитектурами Unet-семейства:, но результаты нас тоже не устроили, хотя классическая сегментация была всё же лучше детектора — precision и recall ~0.92, но попадалось слишком много слипшихся «масок».
Результаты валидировали косвенным способом — смотрели, что выдаёт наша модель, и что делает оператор. Практически во всех случаях, когда модель сообщала, что с процессом что-то не так, и доля плохих окатышей высока, оператор предпринимал меры. Это дополнительно подтверждало, что модель отлично справляется со своей задачей.
Этапы алгоритма CV
Алгоритм нашей модели состоял из двух этапов:
Сегментация (семантическая) и поиск класса nice. Вначале мы сегментировали кадр и определяли процент «хороших» окатышей. Это позволяло определить качество текущего процесса окомкования. Дальнейшая обработка производилась на хороших окатышах.
Поиск контуров и определение физических размеров объектов. Мы определяли контуры хороших окатышей, их фактический размер и грансостав.
Чтобы оценить работу модели, мы сравнили грансостав, который распознавала модель, с реальным грансоставом, зачёрпывая прямо с конвейера готовые окатыши.
На графике выше видна высокая степень совпадения. Это означало, что алгоритм можно использовать непосредственно в управлении процессом окомкования.
Оценка влажности на основе измерения отражающей способности.
Даже визуально видно, что окатыши отличаются по цвету. Поэтому не понадобилось сложных моделей, отражающей способности — достаточно. Важно, что мы видим только поверхностную влажность, внутреннюю нужно высчитывать в лаборатории. Но даже такой простой оценки достаточно для корректировки управления.
Модель управления процессом
Мы должны управлять дозировками концентрата, бентонита, извести, оборотами окомкователя, влажностью, чтобы на выходе получить лучший грансостав. Ну или добиться максимальной производительности при приемлемом качестве. Для этого было необходимо найти зависимость грансостава от всех этих параметров.
При построении модели мы столкнулись с особенностями данных:
Часто меняющийся состав руды.
Не все параметры руды можно измерять онлайн. Например, показатель комкуемости.
Недостаточное разнообразие диапазонов режимов работы оборудования в данных.
Инерционность процесса. Если мы изменили параметры, то изменение грансостава происходит с лагом.
Периодическая перенастройка оборудования: не все изменения фиксируются. А при каждом таком изменении нужно перенастраивать и модель.
Во время исследовательского анализа данных мы увидели на графиках грансостава резко возникшие и исчезнувшие без объяснения тренды. Интуиция, наученная горьким опытом, подсказала нам ехать на производство и искать правду там. Причиной оказался совершенно неприметный шланг с водой, которым операторы окомкования активно пользовались — то включали, то выключали, тем самым сильно меняя процесс. А у нас об этом не было никакой информации, этот шланг не был ни оцифрован, ни описан в техпроцессе.
В качестве модели, предсказывающей грансостав по параметрам работы окомкователя и свойствам концентрата, мы выбрали полином. В этом решении основывались на понимании физики процесса: мы хорошо знали как параметры процесса взаимосвязаны между собой. На основе этого понимания и выбрали структуру полинома.
Преимущество такой модели в том, что она достаточно простая, интерпретируемая, её можно идентифицировать в онлайн. А ещё она адекватно экстраполирует на области, где у нас было мало данных.
Ограничения
У окомкования есть экстремальные режимы, когда концентрат становится слишком сухим или слишком влажным. В эти моменты процесс разваливается. Но операторы стараются не доводить ситуацию до такого состояния, поэтому у нас в датасете практически нет примеров с такими экстремальными режимами. Можно было бы договориться с производством провести эксперименты и завести агрегат в такие режимы.
Но если в том, чтобы замочить окатыши, нет ничего страшного, то попытка засушить их поставила бы производство под угрозу остановки. Никто не готов к такому — нужен был другой подход.
На ум пришли идеи с Physics Informed Machine Learning (PIML), но для окомкования нет хороших известных физических моделей, которые можно использовать. Зато мы знали, что определённые режимы работы гарантированно плохие и разваливают весь процесс. Поэтому добавили на них ограничения в виде дополнительного регуляризатора в функцию потерь при решении задачи оптимизации для определения параметров этого полинома. Такой подход помог модели понять, что определённые режимы, когда слишком сухо/влажно, — плохие, и заводить процесс в них не стоит.
После получения модели грансостава мы перешли к самой управляющей модели. На вход поступало одно из заданий — или максимизировать объём при постоянном грансоставе, или, наоборот, максимизировать грансостав при постоянном объёме. На основе текущих онлайн-данных процесса мы идентифицировали коэффициенты модели, которые позволяли подстраиваться под изменяющийся состав руды и состояние оборудования. После этого модель использовалась в оптимизаторе, внутри которого рассчитывались оптимальные параметры управления, которые затем применялись в агрегате.
Тестирование системы управления
После того как всё было готово, можно было переходить к тестированию системы.
Часто в промышленности при внедрении подобных решений ограничиваются моделью-советчиком и надеются, что операторы будут следовать его рекомендациям. Но, как показывает практика, это не работает. Советчик с большой долей вероятности в скором времени отомрёт, им перестанут пользоваться. Поэтому мы внедрили решение, которое напрямую управляет агрегатом.
На пилотных испытаниях было шесть линий окомкования: одна управлялась моделью, четыре работали как обычно, а одна использовалась для дополнительной балансировки, если обжиг не справлялся с текущей нагрузкой. Результаты показали рост производительности на пилотируемой линии при использовании модели порядка 11%. При этом уменьшение доли целевого класса 10–12.5 мм составило совсем небольшой процент.
Планы на будущее
Может показаться, что увеличение производительности производства окатышей на 11% — это успешный успех! Но тут есть тонкий момент: за окомкованием идёт обжиг, который не всегда может переварить больший объём сырых окатышей и итоговый эффект для всего производства может быть сильно ниже. А значит следующим этапом после тиражирования системы на другие линии окомкования, которым мы сейчас активно занимаемся, должна стать интеллектуальная система управления обжигом. Дальше понадобится разработка совместной системы управления, где будут учтены и окомкование, и обжиг, и взаимодействие этих двух систем друг с другом.
В заключение: качество данных, понимание их происхождения и того, как устроен производственный процесс — основа успеха в проектах машинного обучения в промышленности. Всем интересных задач!