Сколько листов стального проката контролёр ОТК способен осмотреть за час, прежде чем его мозг начнёт дорисовывать норму там, где идёт явный брак? Если вы думаете, что сотню, вы никогда не стояли у производственной линии. На скорости в восемьдесят листов в час человеческое зрение превращается в генератор случайных чисел. Глаз замыливается, тонкая плена сливается с бликом от эмульсии, а микротрещина пролетает незамеченной. Когда мы говорим про машинное зрение для контроля холоднокатаного и горячекатаного проката: как ловить 22 типа дефектов поверхности на скорости линии — мы говорим не про красивые нейросети. Мы говорим про физику, оптику и миллисекунды, на которых ломается вся академическая математика.
Трещины, плены и ржавчина: где заканчивается человек
Откройте классификатор брака любого крупного комбината, будь то ММК или Северсталь. Там десятки, если не сотни позиций. На практике мы регулярно работаем с двадцатью двумя базовыми классами дефектов поверхности. Трещины, плены, раковины, ржавчина, риски, вмятины, окалина, отпечатки валков. Человек за пультом физически не способен держать в голове матрицу признаков каждого из них, когда стальная полоса летит перед ним со скоростью до двадцати метров в секунду. Камера в связке с тяжелой CNN или трансформером выбивает полноту обнаружения выше 95 процентов не потому, что алгоритм гениален, а потому, что кремний не устает. Спустя десять часов смены нейросеть будет искать ржавчину с той же педантичностью, что и на первой минуте.
Но чтобы компьютерное зрение дало такой результат, железо должно увидеть этот дефект. И вот тут начинается суровая заводская реальность, о которой тактично умалчивают продавцы коробочных ИИ-решений. Любой дефект — это в первую очередь геометрическая или текстурная аномалия. Глубокая риска ловит направленный свет своими краями. Плена, представляющая собой вкатанный кусок металла, меняет коэффициент отражения поверхности. Если вы неправильно поставили свет, эти дефекты просто не проявятся на матрице. А если их нет на сыром кадре, никакая аугментация и никакие слои внимания их не вытянут.
Оптика горячего цеха: почему софт не спасёт плохой кадр
Многие дата-саентисты искренне верят, что если собрать датасет побольше, модель научится игнорировать помехи. В металлургии это так не работает. Пар, масляный туман от прокатной эмульсии и мелкодисперсная пыль убивают кадр на фундаментальном, физическом уровне. Если матрица камеры ослепла от пересвета или утонула в шумах из-за нехватки люксов, ваша сеть уверенно классифицирует мусор. Это чисто инженерная проблема, и решается она отверткой, а не Питоном.
Как-то мы пытались вытянуть контрастность на стане холодной прокатки чисто алгоритмически. Бились неделю, пока не признали очевидное: блики от тончайшей пленки масла перекрывают саму текстуру металла. Поставили направленный косой свет с мощными LED-линейками и накрутили поляризационные фильтры на объективы. Точность детекции скакнула на двадцать пунктов мгновенно. Без единой строчки кода.
В горячем цехе всё ещё хуже. Металл светится сам, излучая в инфракрасном диапазоне. Температура диктует свои правила: обычные объективы плывут и плавятся, нужны термокожухи с водяным охлаждением и обдувом линз сжатым воздухом, чтобы отгонять пыль. Для непрерывной полосы мы используем линейные камеры (line-scan). Они собирают изображение пиксель за пикселем по мере движения металла. И здесь возникает критическая зависимость от механики: камера должна быть жестко синхронизирована с энкодером валков. Если валок проскальзывает, а частота съемки не меняется, изображение растягивается или сжимается. Для нейросети это означает внезапное изменение соотношения сторон всех признаков. Круглая раковина становится овальной, и модель её пропускает.
Edge-инференс у линии: p99 против пропускной способности
Никаких облаков. Забудьте это слово, как только заходите на территорию тяжелой промышленности. Гонять видеопоток высокого разрешения с нескольких линейных камер на удалённый дата-центр — это подписать приговор всей архитектуре. Данные не покидают периметр цеха, всё крутится на edge-серверах прямо в электрощитовой стана, в метрах от раскаленного металла.
Здесь мы молимся двум богам: latency (задержке) и throughput (пропускной способности). Пропускная способность критична, потому что линия не остановится, чтобы подождать, пока ваша видеокарта переварит батч изображений. Если вы не успеваете обрабатывать поток, вы теряете кадры, а значит — пропускаете метры металла, на которых может быть критический брак. Задержка критична не менее. Если система нашла дефект, сигнал на маркиратор или летучие ножницы должен уйти мгновенно. Мы считаем бюджет времени в миллисекундах, ориентируясь строго на p99, а не на среднее значение. Средняя задержка не имеет смысла, если в одном проценте случаев спайк латенси приводит к тому, что ножницы отрезают не тот кусок.
Захват строки, формирование кадра, препроцессинг на CUDA, инференс тяжелого детектора, постпроцессинг, маппинг координат дефекта в физические координаты листа, передача управляющего сигнала в ПЛК стана. Весь этот цикл должен укладываться в жесткий тайминг. Именно поэтому пайплайн вылизывается до уровня аппаратных инструкций. Мы используем тензорные ядра, конвертируем веса в форматы пониженной точности, оптимизируем графы вычислений через TensorRT. Вы не можете просто стянуть модную архитектуру с GitHub и воткнуть её в прод. Приходится искать болезненный компромисс между точностью детекции микроскопической вмятины и скоростью обработки гигабитных потоков данных.
Иллюзия «коробки» и суровая реальность дообучения
Самая опасная ложь на рынке индустриального компьютерного зрения звучит так: «наша система обучена на миллионах дефектов и будет работать у вас прямо из коробки». Не будет.
Каждый прокатный стан уникален. Разные марки стали имеют разную отражающую способность. Текстура поверхности меняется в зависимости от химического состава эмульсии, степени износа рабочих валков и скорости прокатки. Коробочная модель, которая идеально находила риски на одном металлургическом комбинате, на другом начнёт сыпать ложноположительными срабатываниями на каждый водяной потёк или безобидное пятно. Модель всегда нужно дотюнивать под конкретный сортамент металла и специфические условия освещения конкретной клети.
Есть и честный трейд-офф, о котором нужно говорить заказчику на первой же встрече. На редких, специфичных или абсолютно новых дефектах модель полностью слепа. Если на валок налип кусок окалины странной формы и начал штамповать на полосе уникальный повторяющийся отпечаток, нейросеть с огромной долей вероятности его проигнорирует. Просто потому, что такого паттерна никогда не было в её обучающей выборке. Концепт-дрифт в металлургии — это не абстракция, а ежедневная реальность по мере износа оборудования.
У нас в Morana Labs мы решаем эту проблему через внедрение полноценного MLOps-контура прямо на серверах клиента, без вывода данных наружу. Мы не оставляем завод наедине со статической, медленно тупеющей моделью. Настраивается теневой режим: edge-система автоматически откладывает спорные кадры, аномалии и изображения с низкой уверенностью предикта в локальное хранилище. Инженер ОТК в спокойном режиме размечает этот новый опыт, а по ночам кластер дообучает классификатор и бесшовно раскатывает обновленные веса на боевые камеры линии. Это непрерывный конвейер. Только так, признавая ограниченность алгоритмов и выстраивая вокруг них железобетонную инженерную инфраструктуру, можно держать планку качества годами.