Система распознавания дефектов
- Категория: 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 представлены результаты, полученные для трех типов жидкостей, а также размеры обучающих образцов.