Система распознавания дефектов

  • Категория: Computer vision
  • Клиент: Промышленные компании
  • Дата: 2021
  • Исходный код: https://github.com/MLFreelib/cvflow
  • Описание: Распознавание дефектов и прочих образований на материале (металл, дерево, пластик, пленка на жидкости и т.д.).
Набор данных Классы Выборка Пример
Дерево 6+1 (Без дефектов + 6 типов дефектов) 6652
Сталь 4+1 21500
Мрамор 4+1 2937
Прочее 15 видов поверхностей ~10000

Таблица 1 (Статистики наборов данных с дефектами на материалах)


Данные F1 Пример
Дерево 0.83
Сталь 0.73
Мрамор 0.71
Bottle 0.6
Grid 0.6
Zipper 0.55
Cable 0.52

Таблица 2 (Тестирование на различных поверхностях)


Жидкость Количество объектов Precision Recall mAP50
Бензин 50 0,867 0,723 0,879
Лак 50 0,795 0,832 0,844
Флотация 100 0,762 0,641 0,773

Таблица 3 (Значение метрик детекции для разных поверхностей и размер обучающей выборки (#объектов)

Дефекты поверхностей

Разработаны универсальные алгоритмы, которые распознают дефекты на любом материале, любых указанных пользователем видов. Разработан и реализован универсальный подход к поиску дефектов, то есть не по отдельной модели на каждый материал (дерево, сталь, бетон, мрамор и так далее, материалом множество), а одну модель для всех материалов. Качество, достигаемое такой моделью, будет меньше, но она не будет требовать дообучения под каждую конкретную задачу, хотя мы не исключаем эту возможность и добавляем соответствующий функционал.

Архитектура универсальной модели основана на классической сети VGG19, признаки которой хорошо отражают паттерны на изображении. Используются 4 сверточных слоя предобученной сети VGG19, затем идут два обучаемых сверточных слоя, а затем два полносвязных слоя. Были проанализированы методы нахождения дефектов и отобраны данные для этой задачи. Эксперименты проводились на фотографиях дерева , металла , мрамора и разных поверхностей и предметов , статистики по этим наборам изображений представлены в таблице Таблице 1

Сеть была обучена на тренировочных частях данных о дефектах дерева и стали и протестирована на их тестовых частях по достигаемой точности (метрике F1). Также сеть была протестирована на разных типах поверхностей. Результаты представлены в Таблице 2.

Как можно видеть из таблицы, точность нахождения дефектов на дереве и металле больше 0,7. Дефекты на мраморе визуально похожи на дефекты на дереве, модель не обучалась на этом наборе изображений и никогда не видела поверхность мрамора, тем не менее смогла предсказать наличие и класс дефектов с точность более 0,7. На наборе изображений разнообразных предметов и поверхностей достигается точность 0,55-0,65, что вызвано их непохожестью на обучающую выборку.

Ожидаемая точность по F1-мере достигнута, но не для всех видов поверхностей, что требует дальнейшего улучшения модели.

В рамках следующего этапа планируется доработать архитектуру модели и определять, сколько нужно данных для получения точность более 0,75.

Примеры

Дефекты жидкостей

В рамках модуля обнаружения дефектов на жидкости рассмотрено три типа жидкостей: лакокрасочное покрытие, бензин и продукты флотации. Для первых двух типов жидкостей применялся детектор YOLOv8, примеры представлены на рисунке. Для детекции пузырей, возникающих в процессе флотации использована модель U-Net, результаты представлены на рисунке

Обнаружение пузырьков на лакокрасочном покрытии Обнаружение разливов бензина на воде

Обнаружение крупных пузырьков во время флотации

Таблица 3 представлены результаты, полученные для трех типов жидкостей, а также размеры обучающих образцов.