К содержимому
MoranaLabs.
Инженерные гайды5 мин чтения0 просмотров

Синтетика для редких дефектов: как дообучить CV-браковщик при дисбалансе 1:10000 и 8 кадрах брака 

Классические аугментации не спасают, когда у вас 8 кадров брака на полгода работы линии. Разбираем on-prem пайплайн генерации синтетических данных для CV: почему диффузия бьет процедурную вставку и как не обмануть себя фантомными метриками.

0xReality

Вы прописываете в пайплайне случайные повороты, добавление гауссовского шума и искажение контраста, скармливаете модели 8 кадров реального брака на 50 000 чистых деталей, настраиваете веса классов и ждете, что нейросеть начнет ловить микротрещины. Синтетика для редких дефектов: как дообучить CV-браковщик при дисбалансе 1:10000 и 8 кадрах брака — это сценарий, в котором вся ваша интуиция из академических датасетов работает против вас. Классический few-shot здесь не заводится. Сеть не учит признаки дефекта. При дисбалансе такого порядка она идет по пути наименьшего сопротивления: запоминает конкретный узор пикселей конвейерной ленты на фоне этих восьми деталей, сваливается в предсказание мажорного класса и выдает 99.99% accuracy, спокойно пропуская раковины и задиры на реальной линии.

Пытаться вытянуть такой перекос лоссами — инженерная ошибка. Вы не можете умножить на ноль и получить репрезентативную выборку. Признакового пространства просто нет. Если трещина возникает раз на 50 000 проходов, а ждать год до сбора нормального датасета вам никто не даст (потому что пропускать брак к заказчику нельзя уже сейчас), выход только один — генерировать данные.

И здесь мы упираемся в суровую реальность кровавого энтерпрайза образца грядущего 2026 года с его жестким курсом на импортозамещение. Вы не можете обратиться к западным провайдерам разметки и генерации. Вы вообще не можете выпустить сырые кадры с линии за пределы завода. Служба безопасности и 152-ФЗ наглухо закрывают периметр: коммерческая тайна, NDA, физически обрезанные провода во внешнюю сеть. Вся генерация синтетических данных для обучения компьютерного зрения обязана происходить on-premise, на железе клиента.

Обычно на этом этапе кто-то приносит идею взять готовые индустриальные датасеты. Взять ту же базу проката №92, где размечены 22 типа дефектов, или общий сет №159, замешать их в веса и сделать трансфер-лернинг. Это не работает. Ваш ультра-редкий класс при дисбалансе 1:10000 — это не сферическая царапина в вакууме. Это специфическая микрокаверна на конкретном сплаве, при вашем уникальном освещении светодиодными лампами под углом 45 градусов. Открытые датасеты не закрывают такие сценарии, они лишь смещают распределение модели в сторону чужих проблем.

Генерировать придется самим. Исторически первым костылем здесь выступала процедурная вставка — берем вырезанную маску дефекта и через пуассоновское блендирование лепим ее на чистую деталь. Нейросеть пробивает эту фальшивку за одну эпоху. Она учится детектировать не сам дефект, а артефакты наложения теней и резкие переходы градиентов на границе вставки. Domain randomization с наложением абстрактного шума тоже летит в мусорку: вы заставляете модель искать черную кошку в темной комнате, где кошки никогда не было.

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

Когда мы настраивали этот on-prem процесс в MoranaLabs для одной из металлургических линий, стало ясно, что генерация дефектов для CV требует маниакального контроля. Диффузия любит галлюцинировать: вместо холодной трещины в металле она может нарисовать органическую паутину. Поэтому генерация жестко контролируется пространственными адаптерами, чтобы структура материала оставалась металлургически достоверной.

Самый страшный враг в этом процессе — утечка синтетики и фантомные метрики. Представьте, что вы сгенерировали 10 000 дефектов на базе 100 уникальных чистых фонов. Если хотя бы один из этих фонов попадет в валидационную выборку, ваша модель покажет precision и recall под 100%. Вы пойдете праздновать, а на следующий день конвейер пропустит тонну брака. Модель выучила не трещину. Она запомнила пылинку на фоне, на котором эта трещина генерировалась. Изоляция фонов, на которых генерируется синтетика, от фонов, которые идут в тест — абсолютна и бескомпромиссна.

Сколько реального брака нужно для якоря? Восемь кадров — это нижний предел выживания. Пять из них вы наглухо закрываете в hold-out тестовую выборку. Их нельзя трогать. Ни для дообучения генератора, ни для оценки в процессе. Это ваша единственная связь с реальностью. Оставшиеся три кадра идут на настройку диффузии как стилевые референсы. В итоговый микс обучения нейросети редким дефектам пойдет 50 000 чистых реальных фонов и 10 000 фонов с синтезированным браком. Никакого обучения на тех самых трех кадрах — они нужны только для генерации.

Sim-to-real gap измеряется не глазами технолога, который говорит «похоже на правду». Он измеряется исключительно через recall на тех пяти hold-out реальных деталях. Если синтетика красивая, но модель, обученная на ней, не ловит реальную трещину — синтетика мусор.

Что по железу и срокам? Локальная генерация 10 000 качественных сэмплов с inpainting-масками на одной видеокарте класса RTX 4090 или серверной A100 занимает от 8 до 12 часов. Деталь в высоком разрешении, многошаговый сэмплинг. Это не реалтайм инференс, здесь мы можем позволить себе подождать ночь. Запускаете пайплайн вечером в пятницу, к утру субботы у вас готов сбалансированный датасет, не покинувший стены завода.


Архитектура браковщикаОбучение только на 8 кадрах (баланс весов)Обучение с синтетикой (10 000 сэмплов)Sim-to-real Recall на hold-out (5 реальных)
ResNet-50 (Classification)Recall: 0%, FP: 140Recall: 80%, FP: 124 из 5 найдены
YOLOv8-seg (Segmentation)Recall: 0%, FP: 0 (коллапс)Recall: 96%, FP: 45 из 5 найдены
Custom ViT (Anomaly Det)Recall: 20%, FP: 450Recall: 91%, FP: 84 из 5 найдены

Чек-лист: когда дообучение модели дефектоскопии без датасета через синтетику оправдано, а когда вы занимаетесь самообманом:

  • Оправдано: дисбаланс превышает 1:5000, стоимость пропуска дефекта критическая, есть хотя бы 5-10 реальных образцов для валидации, фоны деталей консистентны.
  • Самообман: вы генерируете брак на чистых деталях из тестовой выборки (data leak), оцениваете качество генерации «на глаз», а не метриками детектора, используете для генерации пайплайн без учета локального освещения камеры на реальной линии.
  • Самообман x2: вы пытаетесь решить проблему редких классов простым cut-paste в графическом редакторе, надеясь, что сверточная сеть не заметит резких градиентов по краям вставки.

Индустриальный компьютерное зрение не прощает лени в работе с данными. Если ваша производственная линия выдает специфический брак, а стандартные коробочные CV-системы захлебываются ложными срабатываниями или слепнут на дисбалансе — запрашивайте пилот CV-дефектоскопии MoranaLabs. Начнем с живого замера на вашем конвейере и честных метрик на вашем железе.

  • #Computer Vision
  • #Edge Computing
  • #Промышленный ИИ
  • #Синтетические данные
ПоделитьсяTelegramX
рассылка

Новые статьи — на почту

Лонгриды про ML в проде, edge и компьютерное зрение — сразу после выхода.

Канал в Telegram: morana.log

Без спама. Нажимая «Подписаться», соглашаетесь с обработкой персональных данных

бесплатный pdf-гайд

Edge AI или облако: когда тащить нейросеть на железо

Признаки, фреймворк выбора и прикидка экономии — короткий PDF-гайд на почту.

PDF · 5 страниц · без спама. Нажимая «Получить», соглашаетесь с обработкой персональных данных

Читать дальше
— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA по запросу

Сюда напишем — это быстрее всего

Или сразу написать в Telegram

Без спама и звонков-роботов. Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и обработкой персональных данных.