Машинное обучение для дефектоскопии сталкивается с проблемой дисбаланса классов, когда количество дефектных образцов в разы меньше годных. Это приводит к смещению модели в сторону преобладающего класса, снижая точность обнаружения редких дефектов. Решение — методы аугментации данных, взвешенные функции потерь и синтетические выборки, адаптированные под специфику производственного контроля.
Что такое дисбаланс классов в дефектоскопии
Дисбаланс классов возникает, когда в обучающей выборке количество изображений с дефектами значительно уступает числу бездефектных образцов. На производстве доля брака обычно не превышает 1–5%, а в высокоточных отраслях — сотые доли процента. Модель, обученная на таких данных, склонна игнорировать редкие классы, так как минимизация общей ошибки достигается за счёт правильной классификации большинства примеров.
Числовые пороги здесь — типовые ориентиры для планирования, а не гарантированный результат. На конкретной линии их согласуют и фиксируют в техническом задании до старта работ.
Признаки дисбаланса:
- Высокая точность (accuracy) при низкой полноте (recall) для дефектных классов.
- Ложные срабатывания на бездефектных образцах при попытке повысить чувствительность.
- Смещение порога классификации в сторону преобладающего класса.
Методы борьбы с дисбалансом: сравнение подходов
| Метод | Принцип работы | Преимущества | Ограничения | Применимость на производстве |
|---|---|---|---|---|
| Взвешенные функции потерь | Штраф за ошибку на дефектном классе увеличивается пропорционально дисбалансу. | Простота реализации, не требует дополнительных данных. | Не решает проблему малого объёма выборки. | Подходит для начального этапа внедрения. |
| Аугментация данных | Генерация новых изображений дефектов путём трансформаций (поворот, шум, масштабирование). | Увеличивает разнообразие дефектных примеров. | Риск создания нереалистичных артефактов. | Эффективна при наличии базового набора дефектов. |
| Синтетические выборки (SMOTE, GAN) | Генерация искусственных примеров дефектов на основе существующих. | Работает даже с крайне малыми выборками. | Требует настройки, возможны артефакты. | Применима для редких типов дефектов. |
| Ансамбли моделей | Объединение нескольких моделей, обученных на сбалансированных подвыборках. | Повышает устойчивость к шуму в данных. | Увеличивает вычислительные затраты. | Подходит для критически важных процессов. |
| Перенос обучения | Использование предобученных моделей с последующей дообучением на целевых данных. | Снижает требования к объёму выборки. | Требует схожей предметной области. | Оптимально для типовых дефектов (трещины, сколы). |
Этапы внедрения решений при малом числе дефектов
Анализ данных
- Оценка распределения классов в выборке.
- Идентификация редких типов дефектов (например, микротрещины на керамике).
- Проверка на дубликаты и артефакты в изображениях.
Выбор метода балансировки
- Для дефектов с чёткими границами — аугментация.
- Для редких и сложных дефектов — синтетические выборки.
- Для критически важных задач — ансамбли моделей.
Настройка модели
- Подбор взвешенной функции потерь (например, Focal Loss для крайнего дисбаланса).
- Оптимизация порога классификации по метрике F1-score.
- Кросс-валидация на сбалансированных подвыборках.
Валидация на производственных данных
- Тестирование на реальных изображениях, не участвовавших в обучении.
- Оценка ложноположительных и ложноотрицательных срабатываний.
- Корректировка порога с учётом бизнес-требований (например, минимизация пропуска дефектов).
Мониторинг и дообучение
- Сбор новых дефектных примеров в процессе эксплуатации.
- Периодическое переобучение модели с учётом актуальных данных.
- Анализ дрейфа распределения классов.
Применение на производстве: практические сценарии
Контроль литья под давлением
На участке литья алюминиевых деталей доля брака составляет менее 0,5%. Модель, обученная на исходных данных, пропускала микропоры из-за их редкости. Решение:
- Аугментация изображений пор с добавлением шума и изменением освещения.
- Использование Focal Loss для фокусировки на сложных примерах. Результат: полнота обнаружения пор выросла с 40% до 85% без увеличения ложных срабатываний.
Проверка печатных плат
На производстве плат дефекты пайки (холодные пайки, перемычки) встречаются в 1–2% случаев. Проблема: модель игнорировала редкие дефекты, так как их вклад в общую ошибку был минимален. Решение:
- Генерация синтетических дефектов с помощью GAN на основе реальных примеров.
- Обучение ансамбля из трёх моделей на сбалансированных подвыборках. Результат: точность классификации редких дефектов повысилась на 30%.
Контроль текстиля
На ткацком производстве дефекты нитей (обрывы, узлы) составляют менее 0,1% от общего объёма. Модель, обученная на исходных данных, показывала высокую точность, но пропускала все дефекты. Решение:
- Перенос обучения с модели, предобученной на схожих текстильных дефектах.
- Взвешивание классов в функции потерь с коэффициентом 1000:1. Результат: полнота обнаружения дефектов достигла 92%.
Типичные ошибки при работе с малым числом дефектов
Игнорирование дисбаланса Обучение модели без учёта распределения классов приводит к смещению в сторону преобладающего класса. Пример: модель для контроля сварных швов, обученная на 99% годных образцов, пропускала все трещины.
Чрезмерная аугментация Генерация слишком большого числа синтетических дефектов искажает реальное распределение. Пример: аугментация изображений царапин на металле с поворотами на 180° создавала нереалистичные артефакты.
Неправильный выбор метрики Использование accuracy вместо F1-score или precision-recall скрывает низкую полноту для редких классов. Пример: модель с accuracy 99% при полноте дефектов 10%.
Отсутствие валидации на реальных данных Тестирование только на синтетических или аугментированных данных не отражает реальную производительность. Пример: модель, показывающая 95% F1-score на аугментированных данных, давала 60% на реальных изображениях.
Фиксация порога классификации Использование стандартного порога 0,5 без учёта дисбаланса приводит к пропуску дефектов. Пример: модель для контроля упаковки, где порог 0,5 пропускал все вмятины.
FAQ
Почему модель с высокой точностью пропускает дефекты?
Точность (accuracy) не учитывает дисбаланс классов. Если дефектов 1%, модель может достичь 99% точности, просто классифицируя все образцы как годные. Для оценки используйте precision, recall и F1-score для дефектного класса.
Какой метод балансировки выбрать для крайне редких дефектов (менее 0,1%)?
Для таких случаев подходят:
- Синтетические выборки (GAN или SMOTE) для генерации искусственных дефектов.
- Перенос обучения с моделей, обученных на схожих дефектах.
- Ансамбли моделей, обученных на сбалансированных подвыборках.
Можно ли обойтись без аугментации, если дефектов мало?
Аугментация не обязательна, но без неё модель будет переобучаться на малом числе дефектных примеров. Альтернативы:
- Взвешенные функции потерь (Focal Loss, Class-Balanced Loss).
- Увеличение веса дефектного класса в функции потерь.
- Использование предобученных моделей с дообучением.