Детекция аномалий изображения: где ломается контроль качества
Машинное зрение на производстве ломается не на модели, а на входных данных. Камера стоит над конвейером, где меняется освещение, блики от металла и вибрация: детекция аномалий изображения уверенно работает на стенде и рассыпается на линии. Первый шаг системы — не сеть, а стабилизация съёмки: фиксированная экспозиция вместо авто, поляризация или рассеиватель, реперные метки для калибровки кадра.
Второе узкое место — редкий брак. Реальный дефект встречается раз на сотни или тысячи годных кадров, поэтому доля ошибок ничего не показывает: модель, помечающая всё годным, формально точна и бесполезна. Контроль качества на линии строится вокруг полноты по дефектному классу и цены пропуска: пропущенная трещина уходит к заказчику, а ложная тревога останавливает поток и обесценивает систему в глазах смены.
Третье — разметка. Поиск дефектов по кадрам упирается в то, что операторы расходятся в трактовке: царапина «на глаз» у одного дефект, у другого норма. Без регламента и перекрёстной проверки меток модель учится воспроизводить шум, а не признак, поэтому часть кадров размечают повторно и считают согласованность разметчиков.
И главное: демо не равно линии. Другая партия сырья, смена поставщика, износ освещения — распределение кадров уплывает, и порог уверенности, подобранный на прототипе, перестаёт отделять брак от нормы. Детекция аномалий по изображениям держится не на одном обучении, а на мониторинге дрейфа и дообучении на новых кадрах. Ниже разбираем, как это закрывается.
Метрики качества: полнота, точность, ложные срабатывания
До старта фиксируем три числа, по которым принимаем работу: доля пропущенного брака, доля ложных срабатываний и порог срабатывания, при котором они измерены. Порог — это регулятор: снижаем его, ловим больше дефектов, но растёт поток кадров на ручную перепроверку. Поэтому в задании пишем не «точность модели», а целевую полноту и допустимую долю ложных срабатываний.
Общая точность на таком потоке обманчива: при редком дефекте модель, всегда отвечающая «годен», покажет красивое число и не поймает ничего. Считаем полноту и точность раздельно, а решения разбираем по матрице ошибок — видно, какие типы дефектов уходят в пропуск.
Метрики качества модели считаем не средним по всей выборке, а с разбивкой по смене, партии, линии и типу освещения. Средняя полнота может выглядеть прилично, пока одна смена или партия сырья не даёт провал, — ориентируемся на худшую группу, а не на общий итог.
Порог калибруем под цену ошибки: где пропуск брака дороже перепроверки, порог опускаем; где оператор перегружен — поднимаем. Решения логируем вместе со значением уверенности, чтобы порог пересчитывался на накопленных данных без переобучения модели.
Для проверки воспроизводимости прогоняем конвейер на открытом наборе MVTec AD, признанном ориентиром в детекции аномалий по изображениям. После запуска те же метрики считаем на живом потоке: падение полноты по конкретной партии — сигнал о дрейфе данных, и подстройка идёт раньше, чем брак доходит до заказчика.
Режимы работы: потоковая проверка, выборочный контроль, архив
Режимы работы системы не заменяют друг друга — они закрывают разный темп линии и разный характер дефекта. Потоковая проверка кадров держит весь входящий материал и сигналит об аномалии сразу, архивный разбор — ищет причину на накопленных данных.
Выборочный контроль оператором занимает промежуточное положение: модель размечает поток, человек подтверждает спорные кадры и уточняет пороги чувствительности.
| Режим | Когда подходит | Ограничения |
|---|---|---|
| Потоковая проверка кадров | Массовый поток, дефект критичен уже на выходе операции | Чувствителен к смене освещения и ракурса; при высокой чувствительности растёт доля ложных срабатываний |
| Выборочный контроль оператором | Редкий дефект, неполная разметка, старт внедрения | Скорость ограничена человеком; результат зависит от регламента и квалификации смены |
| Архивный разбор | Поиск причин брака, проверка гипотез, разбор накопленного материала | Не влияет на текущий выпуск; нужны хранилище и метаданные — время, линия, партия |
На практике режимы комбинируют: начинают с выборочного контроля, чтобы собрать разметку и оценить долю ложных срабатываний, затем включают потоковую проверку, а архивный разбор оставляют для расследований и контроля качества самой модели. Такой порядок снижает риск, что линия встанет на ложных срабатываниях в первую же смену.
Этапы внедрения: от аудита изображений до передачи в эксплуатацию
Порядок работ выстроен так, чтобы слабые места данных и модели вскрывались до запуска, а не на живом участке. Этапы внедрения идут последовательно: каждый закрывается артефактом, который можно проверить до перехода к следующему.
- Аудит съёмки и данных. Разбираем поток кадров: освещение, ракурсы, фон, доля брака в архиве. Итог — понимание, каких условий съёмки не хватает для устойчивой детекции.
- Аудит разметки. Сверяем метки между разметчиками, ищем пропущенные и спорные классы. Расхождения в разметке аномалий — правило, а не исключение, и находить их нужно до обучения.
- Проектирование конвейера. Определяем, где модель встаёт в процесс, как кадры попадают на вход и что происходит при срабатывании. Схема согласуется до старта обучения.
- Обучение на примерах и настройка порогов. Модель учится на ваших кадрах, отдельно подбирается порог срабатывания — от него зависит баланс пропусков и ложных тревог. Порог выбирается под цену ошибки в конкретном процессе.
- Приёмка модели на отложенной выборке. Кадры, не участвовавшие в обучении, прогоняются через модель: фиксируем долю пропущенных аномалий и ложных срабатываний. Результат закрепляется протоколом — это база для сравнения после дообучения.
- Передача в эксплуатацию. Отдаём конфигурацию, регламент действий при падении качества и инструкции по дообучению, обучаем команду. После запуска остаётся контур дообучения на новых кадрах.
Что остаётся у вас: модель, схемы, политики доступа, регламенты
Передаём не только веса модели, а весь контур, который делает её работоспособной на вашей стороне: без него через месяц после запуска никто не сможет понять, почему модель молчит на новом типе дефекта или почему события сыпятся пачками. Ниже — что именно фиксируется в акте передачи.
- Настроенная модель детекции аномалий: веса, выбранный порог срабатывания, разбивка по классам дефектов и протокол проверки на отложенных кадрах, которые не участвовали в обучении.
- Схема обработки кадров: путь от захвата до записи события — с указанием буферов, поведения при обрыве связи и правил дедупликации повторных срабатываний.
- Политики доступа и роли: кто видит разметку, кто имеет право менять порог чувствительности, кто выгружает архив событий; журнал действий по каждому изменению конфигурации.
- Регламент переобучения: периодичность, требования к новому размеченному материалу, порядок подтверждения версии и процедура отката на предыдущую, если качество просело.
- Набор размеченных кадров и правила разметки, включая примеры спорных случаев — тех, где модель ошибалась чаще всего.
- Регрессионный набор проверок: эталонные кадры с ожидаемым результатом, которые прогоняются при каждом обновлении модели.
- Документация: инструкция по развёртыванию, описание параметров конфигурации, схема интеграции с вашей учётной системой или линией.
- Протокол мониторинга: какие метрики смотрим в эксплуатации и при каких отклонениях считаем, что модель деградировала.
Всё это разворачивается в вашем контуре и остаётся у вас: сопровождение возможно, но не обязательно — инженеры вашей команды смогут дообучить модель и поднять сервис самостоятельно.
Кейс: линия упаковки — пропуск брака и ложные срабатывания
Как было
На линии упаковки брак ловили выборочно: контролёр снимал каждую двадцатую упаковку и осматривал её вручную. Неполный шов, смещённую этикетку, вмятину или постороннее включение находили с задержкой — партия уже уезжала на склад, — а результат зависел от смены, освещения и усталости оператора. Доля пропущенного брака доходила до 7%, ещё около 4% годной продукции уходило в отбраковку из-за спорных решений: прямые потери и разбирательства с получателем.
Что сделали и что получилось
Над конвейером поставили промышленную камеру Basler с подсветкой и синхронизацией по датчику: кадр снимается в момент прохода упаковки, поэтому проверяется каждая единица, а не выборка. Модель обучали только на эталонных кадрах годной продукции — размечать сами дефекты не нужно, достаточно показать норму и вынести порог чувствительности в настройки линии. Спорные кадры складываются отдельно и уточняют обучение без остановки производства.
- пропущенный брак: 7% → 0,8%
- ложные срабатывания: 4% → 0,6%
- охват контролем: выборка около 5% → 100% упаковок
- переналадка на новый типоразмер: полная смена → около получаса на десяток эталонных кадров
Брак перестал доезжать до склада, а линия не встаёт на пересмотр партий: спорные кадры оператор разбирает точечно. Такой же подход переносится на другие участки — меняются камера, зона съёмки и набор эталонов, логика контроля остаётся прежней.
Что делать, если разметка уже есть, но она неполная?
Неполная разметка — обычное состояние проекта, а не повод начинать заново. Часть кадров размечена, редкие дефекты представлены единицами примеров, а метки на граничных случаях расходятся между разметчиками. Модель, обученная на таком материале, либо пропускает редкий класс, либо даёт ложные срабатывания на похожих нормальных участках.
Первый шаг — измерить согласованность разметки. Фрагмент кадров размечаем повторно, независимо от первого прохода, и считаем долю совпадений по каждому классу. Классы с высоким расхождением почти всегда описаны неоднозначно: их критерии переписываем до дообучения модели, иначе она закрепляет ошибку разметчика как закономерность.
Спорные кадры отбираем отдельно: где модель уверена, а метки нет — и наоборот, где метка есть, а модель стабильно молчит. Такие кадры дают максимум информации на единицу доразметки, поэтому ручной труд уходит в них, а не в случайную выборку.
Дообучение модели на слабых метках строим аккуратно: кадры без метки не считаются отрицательными, а исключаются из подсчёта ошибки, уверенные примеры редкого класса получают больший вес. Баланс выравниваем подвыборкой доминирующего класса и аугментациями редкого — иначе мало примеров дефектов тонет в норме.
Контроль ведём по классам, а не по общей точности: отдельно смотрим полноту по редкому дефекту и долю ложных срабатываний на норме. Так видно, помогает ли доразметка и на каких участках ещё нужны кадры.
Вопросы, которые снимаем до старта: съёмка, разметка, приёмка
Технические сомнения дешевле снять до старта, чем в виде переделок разметки и переобучения. Поэтому до первой строки кода фиксируем требования к съёмке, объём выборки и критерии приёмки — они определяют, что получится на выходе.
Основные риски лежат не в модели, а в данных: редкий брак, смена партии сырья, другое освещение в цеху. Ниже — то, что чаще всего обсуждаем с инженерами заказчика перед стартом работ.
Сколько изображений нужно для обучения?
От нескольких сотен кадров на каждый тип дефекта — с той же оптикой, фоном и дистанцией, что и на линии. Редкие классы добираем синтетикой и управляемой аугментацией; разметку ведём в CVAT с двойной проверкой спорных кадров.
Как проверять качество, если брак редкий?
Считаем полноту и точность отдельно по каждому типу дефекта на отложенной выборке, а не среднюю по всем кадрам. Для редких классов заранее фиксируем порог срабатывания и допустимую долю пропусков — по этим числам и принимаем работу.
Что будет при смене освещения или партии?
До приёмки прогоняем модель на отложенной партии и кадрах с другой экспозицией: расхождение метрик показывает запас устойчивости. Интеграцию с линией планируем на отсев по порогу — решение принимается на потоке, запись сохраняется для разбора спорных срабатываний.
Обсудим задачу: пришлите примеры кадров и условия съёмки
Чтобы обсудить задачу предметно, полезно заранее собрать то, что уже есть в работе: снимки, условия съёмки и понимание, какую долю пропусков вы считаете допустимой.
- Выборка кадров: несколько сотен снимков с линии — с аномалиями, которые нужно ловить, и с нормальными кадрами в тех же условиях.
- Условия съёмки: освещение, ракурс, скорость линии, что меняется между сменами и сезонами.
- Классы дефектов: перечень с описанием, что критично, что допустимо и где проходит граница.
- Разметка и ответственный: кто на вашей стороне подтверждает дефект и сколько времени это отнимает.
- Точка внедрения: где появляется сигнал — оператор или линия отбраковки — и что происходит после срабатывания.
- Жёсткие рамки: какое оборудование уже стоит, есть ли камеры, требования к хранению снимков и доступам.
- Текущий контроль: сколько дефектов ловится сейчас, сколько уходит дальше, какая доля ложных срабатываний.
В ответ вы получаете разбор ваших кадров, схему решения под условия съёмки, оценку проекта с явно названными допущениями и план работ по этапам — от подготовки данных и разметки до контроля стабильности модели. Если данных пока мало или задача закрывается проще, скажем об этом прямо.







