Синтез изображений металлической поверхности для обучающего набора данных при проведении визуального контроля
Автор: Лошкарев А.С., Соловых Д.А.
Журнал: Инфокоммуникационные технологии @ikt-psuti
Рубрика: Новые информационные технологии
Статья в выпуске: 2 (90) т.23, 2025 года.
Бесплатный доступ
При проведении визуального контроля металлических поверхностей важной задачей является процесс обучения нейронной сети для автоматической локализации дефектов на панорамном изображении. В настоящий момент эта задача не является решенной до конца в виду отсутствия в открытых источниках полных и качественных обучающих наборов данных (датасетов), а также из-за сложности их ручной сборки. Авторами работы были рассмотрены три подхода к синтезированию изображений с использованием программного обеспечения для 3D моделирования Blender и Unity, а также с помощью итеративно обучаемой нейронной сети Stable Diffusion, которая способна генерировать новые изображения по текстовому запросу. Авторами выделены основные критерии сравнения рассмотренных подходов и даны рекомендации по их дальнейшему использованию при проведении визуального неразрушающего контроля.
Металлическая поверхность, дефекты, обучающий датасет, синтез изображений, генерация изображений, игровой движок, трехмерное моделирование, скульптинг, текстурирование, нейронная сеть, визуальный неразрушающий контроль
Короткий адрес: https://sciup.org/140313569
IDR: 140313569 | УДК: 621.397:004.932 | DOI: 10.18469/ikt.2025.23.2.08
Текст научной статьи Синтез изображений металлической поверхности для обучающего набора данных при проведении визуального контроля
В современном производстве и при контроле качества металлических изделий визуальный осмотр поверхности представляет собой ключевой этап работы, который напрямую влияет на долговечность и функциональность конечного продукта. Появление дефектов, таких как царапины, трещины или коррозия, может существенно изменить эксплуатационные характеристики изделия и, соответственно, привести к неблагоприятным последствиям для потребителей [1]. Поэтому разработка эффективных методов обнаружения и классификации таких дефектов становится актуальной задачей.
Современные подходы к визуальному контролю часто применяют автоматизированные системы, в основе которых лежат искусственные нейронные сети (ИНС). Однако для обучения таких моделей необходимы большие объемы разнообразных и качественно аннотированных данных (датасет), включающих в себя изображения металлических поверхностей как без дефектов, так и с различными их типами [2]. В этой связи возникает необходимость синтеза изображений, который позволит значительно увеличить объем доступных данных и повысить их вариативность.
Для решения проблемы нехватки качественных данных для обучения систем автоматизированного контроля можно использовать такие программные средства как Blender, Unity и Stable Diffusion.
Blender, как мощный инструмент для 3D-моделирования, предоставляет возможности для создания высококачественных изображений металлических поверхностей с дефектами.
Игровой движок Unity позволяет генерировать текстуры и объекты с помощью множества гибких настроек, таких как расположение, размер, ориентация, цвет и освещенность, которые можно задавать на уровне объектно-ориентированного кода.
Генерация изображений в нейросети Stable Diffusion осуществляется по текстовому описанию с использованием различных обученных моделей. Также, данная нейронная сеть позволяет использовать в качестве источника пользовательское изображение.
В данной статье рассматривается процесс синтеза изображений металлической поверхности с различными дефектами. Основная задача состоит в создании комплексного датасета, который учитывает разнообразие дефектов, что позволит обучить нейронные сети для более точного обнаружения и классификации повреждений на металлических изделиях.
Металлические поверхности
Внешнее и внутреннее состояние металлических поверхностей зависит от влияния атмосферы, а также протекающих физико-химических процессов. Однако дефекты могут возникнуть вследствие слабого контроля качества продукции на заводе, а также несвоевременного обслуживания.
В зависимости от формы, размеров и особенностей различают механические (МД), технологические (ТД) и коррозийные (ДКП) дефекты труб (таблица 1) [3; 4].
Таблица 1. Дефекты металлических поверхностей
|
Название дефекта и категории |
Определение и описание |
Внешний вид |
|
|
Царапины, риски, надрезы (МД) |
Дефект в виде углубления различной протяженности и ориентации, образовавшийся от царапанья поверхности металла изношенными валками |
||
|
Задиры (МД) |
Повреждения поверхности изделия, имеющие зазубренные края и неровности на поверхности |
||
|
Забоины (МД) |
Повреждения, которые образуются на поверхности за счет динамического взаимодействия с телом повышенной прочности |
1 |
|
|
Вмятины (МД) |
Дефект в виде углубления произвольной формы на поверхности трубы вследствие наличия дефектов на валках или инструменте |
||
|
Эрозийные нарушения внутренней поверхности (МД) |
Механическая эрозия, при которой верхний слой металла уносится потоком рабочей жидкости с вкраплениями твердых частиц, что может приводить к нарушению целостности конструкции |
||
|
Коррозийные нарушения (ДКП) |
Окисление металла, отличающееся по площади и скорости распространения на разных участках поверхности |
||
|
Трещины, расслоения, рванины, закаты и клепы (ТД) |
Расслоение – дефект в виде щелевидного разрыва внутренних слоев металла, не выходящих на поверхность трубы. Трещина – дефект в виде узкого разрыва металла, идущего в глубь стенки. Различают сквозную, внутреннюю и наружную трещины с различной ориентацией относительно оси трубы. Рванина – дефект технологического происхождения в виде раскрытого разрыва, расположенного перпендикулярно или под углом к кромкам заготовки. Плена – дефект в виде отслоения металла языкообразной формы от основного тела трубы. Образуется вследствие раскатки рванин. Закат – дефект поверхности, представляющий собой прикатанный продольный выступ, образовавшийся в результате закатывания уса, подреза и глубоких рисок. Клепа – термин, обозначающий наличие заклепок на поверхности зделия. Заклепки используются для соединения двух деталей или для усиления определенных участков. Клепа на внутренней поверхности трубы может быть результатом процесса производства или ремонта |
2 ' А |
|
|
Брызги, застывшие капли металла – дефекты сварных работ (ТД) |
Прилипание или сплавливание отдельных металлических соединений на изделии |
||
|
Прижог, законтачивание (ТД) |
Дефект поверхности, возникающий из-за краткосрочного или длительного контакта изделия с токопроводящими элементами. |
||
Приведенные в таблице 1 дефекты не только влияют на эстетические характеристики металлических изделий, но и могут существенно снижать их прочность и долговечность.
Анализ различных дефектов металлической поверхности показал, что многие из них имеют общие характеристики, которые можно использовать для их ручной отрисовки в Blender.
Форма и геометрия – большинство дефектов, таких как трещины и вмятины, имеют несимметричную и нерегулярную форму. При моделировании важно учитывать естественные вариации и случайные изгибы, чтобы создать реалистичный вид [5].
Глубина и объем – дефекты, такие как задиры и забоины, имеют различную глубину, что влияет на их восприятие. При создании этих элементов в Blender стоит варьировать глубину и объем, чтобы добиться более правдоподобного результата.
Текстура и поверхность – поверхности с коррозией и эрозией часто имеют шероховатую текстуру. Использование текстурных карт и детализированных нормалей поможет передать эти особенности. Также стоит учитывать, что некоторые дефекты могут иметь гладкие края в то время, как другие – более рваные и неровные.
Цветовые вариации – дефекты могут сопровождаться изменениями цвета, например, коррозия может проявляться в виде ржавчины, а прижо-ги – в потемнении металла. Важно использовать различные цветовые градиенты и материалы для передачи этих изменений.
Контраст и освещение – правильное освещение и контраст могут значительно повлиять на восприятие дефектов. Тени и блики помогут выделить глубину и текстуру, что сделает дефекты более заметными и реалистичными.
Состояние материала – некоторые дефекты, такие как клепки и рванины, могут указывать на механическое воздействие или старение материала. При моделировании стоит учитывать эти факторы, добавляя детали, которые подчеркивают историю объекта.
С учетом этих характеристик, ручное воссоздание дефектов в Blender станет более целенаправленным и эффективным процессом. Это позволит создать высококачественные визуализации, которые будут служить основой для дальнейшего обучения и анализа в области визуального контроля металлических поверхностей.
Экспериментальная часть
Ручное создание дефектов
Для воссоздания перечисленных выше дефек- тов использовался тестовый объект Cube, растянутый до пропорций металлического листа.
Наносить дефекты на тестовый объект нужно в режиме Sculpting – это режим работы, имитирующий традиционный процесс работы с глиняным материалом (рисунки 1–8).
Рисунок 1. Нанесение сварного шва с помощью кисти «Bob»
Рисунок 2. Нанесение сварного шва с помощью кисти «Clay»
Рисунок 3. Нанесение забоины с помощью кисти «Clay Strips»
Рисунок 4. Нанесение вмятины с помощью кисти «Clay Thumb»
Рисунок 5. Нанесение царапины с помощью кисти «Crease Polish»
Рисунок 6. Нанесение царапины с помощью кисти «Crease Sharp»
Рисунок 7. Влияние размера кисти на конечный результат
Рисунок 8. Влияние силы кисти на конечный результат
С помощью ручного режима можно создать следующие дефекты:
– сварной шов и брызги с помощью кистей «Bob» и «Clay»;
– вмятины и забоины с помощью кистей «Clay Strips» и «Clay Thumb»;
– царапины с помощью кистей «Crease Pol-ish» и «Crease Sharp».
Используемые кисти имеют следующие настраиваемые параметры:
– Radius – размер кисти, определяет область воздействия инструмента. Большие кисти полезны для работы с крупными формами, а маленькие – для деталей;
– Strength – сила кисти, определяет, насколько сильно инструмент воздействует на модель. Высокая сила позволяет быстро вносить изменения, а низкая – делать тонкие и аккуратные правки. Задается в диапазоне от 0,001 до 10,000;
– Dyntopo – детализация кисти, добавляет уровни детализации. Задается диапазоном значений от 0,50px до 40,0.
Для окончательной визуализации использовалась система нод – узлов, проходя через которые исходное изображение с подготовленной текстурой по-разному преобразуется (рисунок 9). С помощью нод можно изменять контрастность, яркость, цветовой оттенок и прочие яркостные характеристики пикселей (рисунок 10).
Рисунок 9. Ноды Blender для окончательной визуализации металлической поверхности с дефектами
Рисунок 10. Окончательный результат визуализации изображения с созданными дефектами и подготовленной заранее текстурой металлической поверхности
Данный способ синтеза изображений металлической поверхности с дефектами позволяет получить достаточно реалистичные изображения металлической поверхности с дефектами в любом требуемом разрешении. Однако, он требует ручного и точного подхода к каждому вновь создаваемому дефекту. Несмотря на то, что каждый дефект на итоговом изображении однозначно уникален, данный процесс весьма трудозатратный.
Процедурная генерация изображений в игровом движке
Автоматизировать процесс генерации дефектов на изображении металлической поверхности можно с помощью игрового движка Unity. Для этого было разработано 14 видов моделей дефектов из таблицы 1. Каждый вид дефектов включает в себя как минимум 3 возможных вариации (рисунки 11–23).
Рисунок 11. Модели брызг
Рисунок 19. Модели отслоений и расслоений металла
Рисунок 12. Модели вмятин
Рисунок 20. Модели рванин
Рисунок 13. Модели забоин
Рисунок 21. Модели трещин
Рисунок 14. Модели задиров
Рисунок 22. Модели царапин
Рисунок 15. Модели клепы
Рисунок 23. Модели эрозийных пятен
Рисунок 16. Модели коррозийных пятен
Рисунок 17. Модели плены
В игровом движке Unity данные дефекты можно инициализировать в пределах выбранных координат. В качестве ограничивающей рамки был создан примитив Plane, на который в качестве материала было назначено панорамное изображение металлической поверхности, полученное в научно-исследовательской лаборатории (НИЛ) научно-прикладного телевидения и компьютерного зрения кафедры информационных систем и технологий (ИСТ) ФГБОУ ВО «Поволжский государственный университет телекоммуникаций и информатики» (ФГБОУ ВО ПГУТИ) (рисунок 24).
Рисунок 18. Модели прижогов (сварных швов)
Рисунок 24. Панорамное изображение металлической поверхности в игровом движке Unity
Для генерации дефектов на созданной плоскости был написан специальный скрипт, содержащий следующие элементы:
– сериализуемые списки для назначения подготовленных моделей дефектов (префабов). Всего на данный момент в скрипте есть 13 списков для каждого типа дефектов. Каждый из этих списков можно расширять и дополнять новыми моделями дефектов;
– параметры сериализуемых списков – каждый префаб дефекта имеет минимальное и максимальное значение размеров. Для каждого типа дефекта наложены свои ограничения, например, трещины можно растягивать в поперечном направлении только в определенных пределах, чтобы не нарушать пропорции и не разрушать эффект реалистичности. Также для каждого типа дефекта можно указывать количество генерируемых на плоскости префабов – это поможет обеспечить разнообразие и уникальность итоговых изображений;
– минимальное расстояние между дефектами – на реальных изображениях металлических поверхностей дефекты редко накладываются друг на друга. Например, вмятина и плена – взаимоисключающие друг друга механические дефекты, а царапина и коррозийное пятно очень часто можно встретить на реальных поверхностях. В реализованном скрипте эти особенности были учтены и взаимоисключающие дефекты не пересекаются и не накладываются друг на друга;
– ограничение позиции для генерации – дефекты не могут выходить за пределы плоскости с изображением металлической поверхности. Если количество дефектов слишком велико, то скрипт прекратит работу и выведет соответствующее сообщение с предложением сгенерировать новый вариант изображения с иным количеством дефектов.
При правильной настройке параметров можно получить изображение металлической поверхности, содержащее несколько типов дефектов и которые явно визуально выделяются (рисунок 25).
рирования моделей дефектов – на данный момент перепады яркости между моделями и фоновым панорамным изображением выглядят неестественно. Однако, уже на данный момент функциональность данного способа обеспечивает широкие возможности для генерации изображений – неограниченное разрешение итогового изображения по вертикали и горизонтали, настраиваемое количество, размеры и типы генерируемых дефектов.
Генерация изображений с помощью нейронной сети Stable Diffusion
Генерация изображений в нейросети Stable Diffusion осуществляется по текстовому описанию с использованием различных обученных моделей. Также, данная нейронная сеть позволяет использовать в качестве источника пользовательское изображение.
В качестве эксперимента по генерации изображения по текстовому описанию была выбрана модель v1-5-pruned-emaonly.safetensors. Она использует технологию safetensors, которая обеспечивает повышенную защиту от вредоносного кода и несанкционированного доступа. Это достигается за счет преобразования весов модели в формат safetensors, который обеспечивает безопасное хранение и передачу данных.
Особенностью модели v1-5-pruned-emaonly. safetensors является использование техники pruning, которая позволяет удалить ненужные веса из модели, делая ее более компактной и эффективной в использовании.
Кроме того, модель использует метод EMA (Exponential Moving Average – экспоненциальная скользящая средняя), который помогает стабилизировать процесс обучения и улучшить качество генерируемых изображений. Это достигается путем усреднения весов модели на протяжении нескольких эпох, что позволяет избежать переобучения и повысить общую точность модели.
При запросе к данной модели нейронной сети, загруженной в StableDiffusion, результаты (рисунки 26, 27) не удовлетворяют основным условиям, описанным в [5].
Рисунок 25. Сгенерированное изображение металлической поверхности с несколькими типами дефектов
Данный способ генерации изображений требует небольшой доработки в части тексту-
Рисунок 26. Пример частично удачной генерации
Рисунок 27. Примеры неудачной генерации
Для решения проблемы качества генерируемых изображений в качестве обучающего датасета использовались изображения из открытого источника компании «Северсталь» [6], а также изображения, полученные в НИЛ научно-прикладного телевидения и компьютерного зрения кафедры ИСТ ФГБОУ ВО ПГУТИ [7] (рисунок 28). Всего для обучения использовалось 20 изображений. Изображения были отмасштабированы до размеров 512х512 пикселей. Это ключевая особенность использования Fast-dreambooth, которая работает только с таким разрешением изображений в обучающей выборке.
После загрузки в интерфейс Fast-dreambooth обучающих изображений нужно задать параметры обучения [8]:
– Training_Steps – нужно умножить количество изображений на 200 и ввести это число. Это будет количество тренировочных шагов;
– Learning Rate – скорость обучения, была выбрана 2*10-6;
-
– Text_Encoder_Training_Steps – количество шагов обучения, было установлено 350;
– Text_Encoder_Learning_Rate – скорость обучения энкодера, должна быть достаточно низкой, чтобы избежать переобучения. Было установлено 1*10-6.
Остальные параметры были оставлены по умолчанию.
Во время обучения значение ошибки не превышало 0,1, что является хорошим показателем для слепого тестирования без выводов графиков и более тонкой настройки параметров обучения. После завершения обучения модели, которое в данном тестировании заняло около 20 минут, можно запустить полученную модель в web-интерфейсе.
Рисунок 28. Примеры изображений из обучающего датасета
Рисунок 29. Примеры удачной генерации
Данный способ генерации изображений позволяет получить изображения более реалистичные в визуальном плане (рисунок 29). Однако, наблюдаются некоторые особенности, которые нужно корректировать на уровне слоев обучаемой модели нейронной сети:
-
– искажение пропорций дефектов – клепа на рисунке 29 вытянута по вертикали, что в реальной ситуации никогда не встречается;
– эффект движения камеры внутрь пространства изображения – на некоторых изображениях наблюдается радиальное размытие вдоль вертикальных и горизонтальных границ по направлению к центру. При проведении реального визуального контроля такой эффект недопустим и данное изображение может существенно повлиять на качество обучения нейронной сети для поиска и классификации дефектов.
Данный способ, однако, предполагает разовую точную настройку параметров обучения модели для StableDiffusion. И в дальнейшем генерация изображений сводится к запуску соответствующего web-интерфейса и правильно подбора текстовых описаний ожидаемого результата генерации.
Выводы
В данной работе были рассмотрены три способа синтеза изображений металлической поверхности с дефектами, подробно описаны соответствующие методики и технологии.
Рассмотренные выше способы синтеза изображений решают поставленную в работе задачу – решение проблемы нехватки качественных данных для обучения систем автоматизированного контроля. Выделим критерии для их сравнения и внесем их в таблицу 2.
Ручное создание дефектов на изображении металлической поверхности менее требовательно к ресурсам и более гибкое, но сильно зависит от навыков человека и требуемого уровня детализации.
Процедурная генерация с помощью игрового движка Unity требует много времени на этапе подготовке моделей дефектов. Однако после настройки всех желаемых параметров процесс генерации занимает считанные секунды. Возможности игрового движка позволяют создать отдельное приложение для любой десктопной и мобильной платформы, что существенно снижает порог входа в предметную область.
Генерация с помощью модели для Stable Diffusion требует много времени на этапе обучения, глубокого понимания процессов извлечения при- знаков из датасета и параметров, влияющих на точность и скорость обучения. Помимо этого, необходим корректный датасет, не содержащий в себе искаженных изображений, иначе визуальное качество итогового изображения может оказаться очень низким. Время генерации нового изображения также может варьироваться в зависимости от требуемого разрешения в пикселях.
Изображения, сгенерированные с помощью рассмотренных методов, можно использовать для расширения уже имеющегося датасета в НИЛ научно-прикладного телевидения и компьютерного зрения кафедры ИСТ ФГБОУ ВО ПГУТИ [10; 11], а также обучения детекторов для поиска и классификации дефектов на изображениях металлической поверхности.
Таблица 2. Сравнение методов синтеза изображений металлической поверхности с дефектами
|
Критерий/Метод |
Ручное создание дефектов |
Процедурная генерация изображений в игровом движке |
Генерация изображений с помощью нейронной сети Stable Diffusion |
|
Время исполнения |
Долгое, если требуется высокая реалистичность и уникальность |
1–2 секунды при предварительной настройке параметров генерации |
До 1 минуты в зависимости от размеров генерируемого изображения и конфигурации ПК |
|
Используемое ПО |
Blender |
Blender+Unity |
CUDA, web-интерфейс |
|
Количество типов реализуемых дефектов |
3 |
14 |
0-14 в зависимости от количества классов, используемых при обучении модели |
|
Качество итогового изображения |
Высокая степень детализации в зависимости от навыков |
Средняя степень детализации в зависимости от моделей генерируемых дефектов |
Непредсказуемое, зависит от обучающего датасета |
|
Степень контроля над результатом |
Полный контроль |
Частичный контроль, можно настроить количество, размеры и расстояние между дефектами |
Сильно ограниченный, так как генерация происходит на основе обучающего датасета [8] |
|
Ресурсоемкость |
Низкая |
Средняя, необходима стабильная работа Unity |
Высокая, особенно при использовании GPU при обучении |
|
Размер генерируемого изображения в пикселях |
Неограничен |
Неограничен |
Ограничен значениями от 64х64 до 2048х2048 |