Статья опубликована в рамках: Научного журнала «Студенческий» № 2(298)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8
СЕГМЕНТАЦИЯ ЗАГРЯЗНЕНИЙ ЛИНЗ КАМЕРЫ НА ПРОМЫШЛЕННОМ ОБЪЕКТЕ С ИСПОЛЬЗОВАНИЕМ ГЛУБОКОГО ОБУЧЕНИЯ
В промышленности всё активнее применяется искусственный интеллект, машинное обучение для наблюдения, анализа, решения каких-либо задач на производстве. В случае с компьютерным зрением очень важно следить за корректностью данных, принимаемых с камер. Если линза камеры загрязнена, то точность и корректность работы алгоритмов может очень сильно снизиться, что в последствии повлечёт за собой ошибки в работе производства. Поэтому необходимо решение, отслеживающее загрязнение линз.
Для решения задачи был опубликован датасет, содержащий в себе 250 кадров с камер видео наблюдений за промышленными процессами и соответствующие этим кадрам двухцветные маски. Масками явно обозначены зоны загрязнений на линзе. Если маска полностью чёрная, то линза чистая, загрязнения же на изображении отмечены красными участками на чёрном фоне (Рисунок 1).
В качестве решения была использована архитектура DeepLabV3+ с базовой моделью ResNet101 для решения задачи бинарной сегментации, где необходимо различать дефекты и фон. Для реализации проекта выбран фреймворк PyTorch, который предоставляет удобные инструменты для работы с нейронными сетями и обработкой изображений.
Рисунок 1. Пример маски из датасета
Первыми этапами реализации был проведён импорт необходимых библиотек, а также – настройка структуры каталогов, которая подразумевает загрузку 2 каталогов из исходного датасета с изображениями и масками и создание папок для вывода обучающих изображений, валидационных изображений, обучающих масок, валидационных масок.
Следующим этапом была проведена предобработка данных:
- Изображения и маски изменяются до размера 256×256 пикселей.
- Маски преобразуются в бинарный формат для упрощения задачи сегментации.
- Важным шагом является проверка целостности данных перед обучением.
После обработки данных и их сохранения в ранее определённые директории можно приступать к разделению данных на обучающую и валидационную выборки. Данные были разделены в отношении 80/20, где большую часть занимают данные для обучения, а меньшую – для валидации. Такое разделение позволит оценить качество модели на независимом наборе данных.
Также был создан вспомогательный класс «SegmentationDataset», принимающий на вход датасеты, для обработки пары изображение – маска, обеспечения их соответствия и поддержки применения трансформаций.
Для эффективной загрузки данных в батчах во время обучения был создан и настроен «DataLoader» - загрузчик данных для обучающей и валидационной выборок.
Следующий объёмный этап работы предполагает работу с самой моделью «deeplabv3_resnet101». Предварительно было определено устройство для процесса обучения: CPU или, если доступно, GPU. В случае с текущим датасетом процесс обучения был выполнен при помощи 2xGPU + CPU вместо CPU. Многопроцессорность в таком подходе позволяет в разы ускорить процесс обучения. Определим функцию потерь и оптимизатор «Adam», который обновляет веса модели во время обучения. После инициализации модели и настройки вспомогательных инструментов был запущен тренировочный цикл по батчам, состоящий из 50 эпох, с валидацией после каждой пройденной эпохи. На первой эпохе потеря составила 0,5862, валидационная потеря – 0,3845, когда на последней эпохи – 0,0349 и 0,0915 соответственно.
Заключительным этапом была проведена оценка качества сегментации при помощи метрики IoU (Intersection over Union). Её среднее значение на валидационной выборке составило 0,8893. Для наглядности работы модели была проведена визуализация нескольких предсказаний, где сначала выгружалось само изображение, затем – соответствующая маска и полученное предсказание (Рисунок 2). Полученные предсказания определяют загрязнения точнее, чем предоставленные в датасете маски, максимально возможно расширяя и сглаживая участки с загрязнениями.
Таким образом, в процессе решения задачи обнаружения загрязнений на линзах камер обученная модель смогла успешно определить дефектные очаги. Проект демонстрирует возможности современных технологий в решении сложных задач визуального анализа. Глубокое обучения, как можно заметить, представляет собой перспективное направление, которое может значительно улучшить качество изображений и повысить эффективность процессов контроля качества.
Рисунок 2. Визуализация предсказаний к изображениям с маской
Список литературы:
- Официальная документация архитектуры глубокого обучения Deeplabv3_resnet101 [Электронный ресурс]. – URL: https://pytorch.org/vision/main/models/generated/torchvision.models.segmentation.deeplabv3_resnet101.html#deeplabv3-resnet101 (дата обращения: 14.01.2025).
- Официальный сайт фреймворка глубокого обучения PyTorch [Электронный ресурс]. – URL: https://pytorch.org/ (дата обращения: 14.01.2025).
Оставить комментарий