Что случается с металлоломом и зачем там хардкорное ИТ
Вот приехал вагон лома, мы опускаем туда краном два огромных магнита и передвигаем ими внутри вагона. Так мы разгружаемся:
Если вы присмотритесь к этому лому, то увидите, что он не совсем чистый: где-то есть земля, где-то — тряпки, где-то может попасться ветка дерева. Несмотря на подъём магнитом, из-за того, что железяки у нас довольно корявые, за них цепляется мусор и потенциально может уйти в переплавку. А мы очень не любим, когда на переплавку пытается уехать, например, батарея отопления. Батарея отвратительна, потому что в сантехническом чугуне очень много фосфора, и её надо обрабатывать дополнительно. Древесина и тряпки вообще не плавятся, а горят, земля повышает количество шлака, и поэтому все они не только портят расплав, но ещё и сильно уменьшают КПД электродуговой печи за счёт дополнительных затрат энергии. Поэтому мы очень хотим контролировать качество лома.
Ещё лом отличается, в частности, по толщине металла и размеру кусков. Толстый, правильно порезанный лом без мусора вроде разобранных металлоконструкций мостов — дорогой, а тонкий, мелко накрошенный и с землёй вроде полежавшего на пляже разбитого вдребезги холодильника, — дешёвый.
Естественно, поставщики не стремятся сильно очищать лом, потому что, чем больше там будет мусора, тем меньше металла нужно для поставки — это им выгодно. А потребители лома готовы мириться с порогами в 1,5-2 % мусора (это закреплено в ГОСТах и ТУ), но не больше.
И вот здесь на разгрузку ворвались наши цифровизаторы, очень быстро и очень весело решив проблему. Точнее, они решали одну проблему, а в результате получилось нечто даже более крутое.
Вот так выполняется разгрузка
Непростая судьба лома
Предположим, что вы разлюбили свой холодильник и решили от него избавиться. В отличие от других металлических предметов смыть его в унитаз будет не только технически сложно, но и экономически глупо. Холодильник можно сдать на площадку приёма лома, и вы даже окупите затраты на топливо.
Предположим, что ваш белый друг попадает на площадку. Проблема с ним в том, что он сложный, то есть состоит из различных металлов, пластика, резины и фреона. И если фреон неважен, то всё остальное нужно тщательно разделить. Но вам заплатят как за целый холодильник, сверившись с таблицей удельного содержания металла в бытовой технике. Точно так же при сдаче из гаража старой машины 1920 года они сверятся с таблицей содержания металла в разных машинах.
Дальше нужно раздербанить холодильник и разделить материалы. Кроме очищения от сора (пластика и резины), нужно будет разделить лом чёрных металлов и лом цветных металлов. Если цветмет попадёт в чермет, то он будет считаться мусором, а не более дорогим подарком, и поставщик пострадает. Естественно, разборка производится с некоторой погрешностью, например, не все снимают катушки и конденсаторы с плат.
После этого остов холодильника нужно порезать ножницами (это большие гидравлические ножницы), чтобы лом принял определённые габариты. ГОСТ писался исходя из габаритов приёмных лотков тогдашних печей. Слишком мелкий и слишком тонкий лом — это плохо: он не очень хорошо укладывается в печь, оставляет много воздуха. Негабарит может не пройти в погрузочную ёмкость (бадью).
Закладка лома в дуговую печь
Вот так выглядит электродуговая печь. Она вся закрыта защитными кожухами, завалка лома происходит сверху.
Ваш холодильник — «грязный» лом, потому что полученная масса кусков металла будет сложена на землю (хотя на современных площадках уже есть требования по жёсткому покрытию вроде бетона), а затем погружена большим краном-клешнёй в вагон или грузовую машину. Естественно, эта клешня зацепит и землю, и какой-то возможный мусор, плюс в самом ломе останутся куски пластика и прочий сор ещё с момента разборки.
«Чистый» лом обычно остаётся после демонтажа металлоконструкций. Например, если вы сдаёте в лом металлический мост, то его можно очень аккуратно порезать на идеальные куски, которые покатаются по стране и станут позже отличным новым мостом.
В итоге этот лом попадает в грузовые вагоны и едет к нам на производство. В зоне разгрузки останавливаются сразу два состава на параллельных путях, и начинается одновременная разгрузка лома тем самым краном с электромагнитами.
На картинке выше — примерно 60 тонн металлолома, сырья для производства металла на НЛМК-Калуга. При этом полторы тонны из них может оказаться деревом, песком, пластиком и прочим сором, что мы и вычтем из цены вагона. Всего с такого вагона снимается примерно 35 слоёв по мере его разгрузки, каждый слой фиксируется и анализируется.
В чём проблема
- Лом может быть не того качества, который заявлен поставщиком. Например, заявили один размер куска, а приехал хуже, то есть дешевле. Очень не хочется переплачивать за него.
- В ломе может быть мусор. Баллоны встречаются редко (как и идиоты, которые кладут их в лом), а вот батареи отопления и резина — относительно часто. Их нужно вынимать оттуда вовремя. Может встретиться негабарит. Его нельзя выгружать и нужно вернуть обратно поставщику.
- Может быть много земли, за неё не хочется платить.
Батарея приехала!
Более того, некоторые поставщики в цепочке от ломозаготовителей до нас осознанно или случайно запрессовывают землю в трубы и кладут дерево внутрь пакетов. Пакет — это такая форма поставки лома, когда его собирают в пресс и делают кубик. Если внутри пакета будет древесина, то об этом мы узнаём только в печи. Габарит пакета — до полутора метров.
В итоге крановщики выгружают лом в специальные места для хранения — закрома. С крана крановщик не всегда видит, что разгружает, а вот инспекторы с галерей над вагонами контролируют выгрузку и видят намного больше.
Если поставщик нарушает не специально, то может быть понижена оценка партии или применена какая-то санкция за каждый выявленный случай. В случае поставщика, периодически злостно запрессовывающего землю в трубы, мы вообще запрещаем отгрузки в наш адрес.
Как это было всю жизнь у всех
Раньше, если был косяк, то его фиксировали на обычный фотоаппарат.
Затем в конце приёмки инспектор делал заключение о качестве лома: тот ли это был сорт, который заявлен, не было ли слишком много сора и так далее. Если было понижение качества от заявленного в транспортной накладной, то отчёт сопровождается доказательствами (ручными фотографиями) и отправляется поставщику.
В реальном мире процесс этот крайне неоптимальный, неудобный и требует либо много людей, либо выборочного контроля. «Выборочного» — это значит, что те люди, которые есть в разгрузочном цехе, успевают увидеть то, что успевают: отсортировать батареи, баллоны, покрышки, крупные ветки и негабарит. При этом страдает качество оценки партии: её просто нельзя сделать детально при одновременной разгрузке 28 вагонов. Чтобы вы понимали масштаб, в день через разгрузку проходит 70–100 вагонов, а это до 4 500 тонн лома.
Как выглядит контроль лома в НЛМК-Калуга теперь
Вот такой вагон приходит:
Это нейросеть определила количество мусора в нём
Это нейросеть определила итоговый состав лома. 3А2Н — это ножничный сорт установленного размера кусков без мотков проволоки.
Задача для цифровизаторов
Первое, что мы придумали, — это сделать послойное фотографирование вагона по мере разгрузки, то есть установить камеру над вагоном и после каждой итерации снятия крановыми магнитами слоя корявых железяк делать фото. Это уже само по себе даст огромный плюс для оценки качества: имея послойную структуру вагона на фото, инспектор-оценщик может сразу сказать, сколько там и чего было, а также представить очень чёткие доказательства.
Вот пример отчёта, который сейчас генерится автоматически:
Фотографировать просто так было нельзя, потому что один и тот же вагон мог вставать в разные места цеха, его могли разгружать несколько разных кранов, и даже выбор момента для фото с данными телеметрии крана не представлялся возможным: подача или снятие напряжения с магнитов никак не гарантировали, что крановщик взял или отпустил металл.
Хорошей идеей были бы тензометрические датчики на путях (весы), но их интегрировать с учётом требований безопасности невозможно. Снимать данные с крана тоже сложно: слаботочка в цехе малореальна из-за невероятных помех (высокое напряжение в толстенных кабелях, которое банально не даст прокинуть слаботочку для питания), монтировать что-то на движущийся кран тоже сложно, а закупить камеры и видеокарты — это вообще мелочь по меркам цеха в сравнении с остальным.
Куда проще и дешевле оказалось создать модель, которая фотографировала бы вагон сама, определяя после простого обучения, что сейчас делает кран и что остается в вагоне.
А знаете, что бывает, когда вы уже готовы внедрить первую модель видеоаналитики? Вы не можете остановиться. Собственно, следующей идеей было научить модель останавливать разгрузку, если в вагоне лежит что-то, что нам очень не нравится: те самые батареи или баллоны, например. То есть крановщик просто не мог снимать следующий слой и передавать его в бадью, если косячный предмет не убрали.
В вагоне с иконкой красной руки нейросеть что-то нашла
Но и на этом мы не остановились. Итогом всего этого стало то, что модель стала считать итоговое качество лома сама, оценивая количество мусора во время разгрузки и используя данные взвешивания вагона до и после разгрузки (это даёт понимание о массе неметаллического мусора, который ссыпался на дно во время разгрузки). То есть она предотвращает выгрузку брака из вагона и сама оценивает партию.
Естественно, возникли сюрпризы, причём как плохие, так и хорошие.
Что выяснили в процессе внедрения и эксплуатации
Изначальная идея была взять весь банк фотографий инспекторов-оценщиков и учить на них модель, а потом обученную модель уже «натравить» на фотографии с камер сверху цеха. Не получилось: фотографии с земли не подходили, нужно было делать фотографии именно с того же ракурса, откуда лом видит камера. В итоге мы набрали 25 тысяч изображений для обучающей выборки и ещё под тысячу — для тестовой (не участвующей в обучении) и учили уже на них.
В цехе пришлось сделать разметку для установки вагонов и договариваться с машинистами так, чтобы у них появился стандарт на остановку ровно в нужном месте, чтобы вагоны оказывались под камерами в предсказуемом положении.
В серверной завели новый сервер с GPU, в цех поставили новые маршрутизаторы и видеорегистраторы.
Цех крытый, поэтому имеющееся освещение менять не пришлось. Если был бы открытый, то пришлось бы делать отдельные выборки для зимы и солнечного лета, скорее всего.
После оценки того, что решит нашу задачу без того, чтобы это потом было мучительно сложно поддерживать (и по другим параметрам), по всей совокупности требований подошла платформа Deepstream от Nvidia. Это набор инструментов потоковой аналитики, кусок NVIDIA Metropolis, платформы для обработки изображений и данных датчиков. Там есть конструктор блоков-плагинов для работы с аппаратным ускорением (GPU или CPU), декодеры, нейросети, фильтры и прочие элементы. Deepstream поддерживает C / C ++ и Python, в основе — опенсорс GStreamer. Пайплайн примерно такой:
То есть, например, там есть видеодекодер (H.264), блок масштабирования изображения IMAGE PROCESSING и так далее.
Вспомогательные модели:
- Детектор вагона: модель сигнализирует, что под камерой — вагон, а не что-то другое.
- Детектор цифр: мы считываем номер вагона с борта и соответственно поставщика.
- Модель для определения магнита в вагоне позволяет вычленять из нескольких часов разгрузки несколько десятков кадров, с помощью которых можно однозначно определить параметры сырья.
Основная модель — нейросеть, которая оценивает класс лома и процент засора приходящего лома. С помощью свёрточных нейронных сетей на каждый снятый с вагона слой даётся прогноз качества материала. Ещё один детектор ищет негабарит и опасные предметы.
Самое интересное было в оценке фотографий обучающей выборки. Если «есть брак или нет» получить просто — ну, эксперту достаточно посмотреть на фото, и он сразу узнает спрятавшееся колесо, — то вот с оценкой качества сложнее. Мы предложили все фото обучающей и тестовой выборок двум группам экспертов: нашим с завода и отправителям со стороны металлозаготовки. После получения прогнозов качества лома на каждый слой вычисляется интегральная оценка на вагон, которая и идёт в отчёт.
100-процентное покрытие лома
В процессе разметки обучающей выборки поставщики, естественно, очень заинтересовались, что же мы такое делаем. Мы охотно объяснили. Что удивительно, недовольства не встретили и в первый месяц тестовой эксплуатации поняли, почему. Мы достигли абсолютной прозрачности разгрузки и синхронизировали наши глаза с глазами поставщика. Появилось полное взаимопонимание при оценке качества.
А вот дальше случилось удивительное! Мы начали находить конкретные элементы брака и присылать 40-страничные отчёты с фото с анализом каждого слоя, решениями о том, ссыпался мусор на следующие слои при разгрузке или нет (пятно земли должно кочевать с 11-го на 12-й слой и так далее), и прочим. И мы поняли, что робот, не теряя бдительности, осматривает каждый кусок лома. Кроме пакетов, конечно. С пакетами мы не работаем.
Такого ни у кого не было.
И в этот момент к нам начал приходить лом гораздо более чистый, чем раньше. В совокупном экономическом эффекте у нас появились экономия энергии в дуговой печи (точнее, повышение её КПД), снятие рисков по авариям (тот самый детектор опасных предметов в браке) и, самое главное, глубокая психологическая вера, что весь лом будет отсмотрен. Уже этого хватало, чтобы качество лома резко выросло. Расходные коэффициенты резко изменились так, что даже технологи пришли нас хвалить. Если вы были на реальных производствах, то это примерно так же вероятно, как если бы вас похвалили бухгалтерия или юротдел в офисе.
А ещё мы перестали платить за мусор.
А потом к нам пришёл другой металлургический завод (не из нашего холдинга) и попросил такое же решение. Я считаю, что это высшая похвала тому, что мы сделали.
Сейчас модель всё ещё в тестовой эксплуатации, то есть работает ассистентом людей, но не заменяет их. В планах у нас много интересного. Мы уже придумали, как лучше собрать обучающую выборку для резинотехнических изделий и настроить детекцию точнее. Нам нужны детекторы не только для кранов с магнитами, но и грейфером (ковш-клещи, он иногда используется на других участках), а также много других улучшений. Плюс интерфейсы для загрузок обучающих выборок из других цехов, где другое расположение кранов, вагонов и другое освещение: точно понадобится дообучение или переобучение от места.