Разработка системы детекции аномалий по изображениям

Брак на линии замечают слишком поздно: партия уже упакована, а претензии приходят от клиента. Мы разрабатываем системы детекции аномалий по изображениям под ключ — от постановки съёмки до передачи модели в эксплуатацию. Ложные срабатывания и пропуски брака сокращаются в разы.
Часто задаваемые вопросы

Детекция аномалий изображения: где ломается контроль качества

Машинное зрение на производстве ломается не на модели, а на входных данных. Камера стоит над конвейером, где меняется освещение, блики от металла и вибрация: детекция аномалий изображения уверенно работает на стенде и рассыпается на линии. Первый шаг системы — не сеть, а стабилизация съёмки: фиксированная экспозиция вместо авто, поляризация или рассеиватель, реперные метки для калибровки кадра.

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

Третье — разметка. Поиск дефектов по кадрам упирается в то, что операторы расходятся в трактовке: царапина «на глаз» у одного дефект, у другого норма. Без регламента и перекрёстной проверки меток модель учится воспроизводить шум, а не признак, поэтому часть кадров размечают повторно и считают согласованность разметчиков.

И главное: демо не равно линии. Другая партия сырья, смена поставщика, износ освещения — распределение кадров уплывает, и порог уверенности, подобранный на прототипе, перестаёт отделять брак от нормы. Детекция аномалий по изображениям держится не на одном обучении, а на мониторинге дрейфа и дообучении на новых кадрах. Ниже разбираем, как это закрывается.

Метрики качества: полнота, точность, ложные срабатывания

До старта фиксируем три числа, по которым принимаем работу: доля пропущенного брака, доля ложных срабатываний и порог срабатывания, при котором они измерены. Порог — это регулятор: снижаем его, ловим больше дефектов, но растёт поток кадров на ручную перепроверку. Поэтому в задании пишем не «точность модели», а целевую полноту и допустимую долю ложных срабатываний.

Общая точность на таком потоке обманчива: при редком дефекте модель, всегда отвечающая «годен», покажет красивое число и не поймает ничего. Считаем полноту и точность раздельно, а решения разбираем по матрице ошибок — видно, какие типы дефектов уходят в пропуск.

Метрики качества модели считаем не средним по всей выборке, а с разбивкой по смене, партии, линии и типу освещения. Средняя полнота может выглядеть прилично, пока одна смена или партия сырья не даёт провал, — ориентируемся на худшую группу, а не на общий итог.

Порог калибруем под цену ошибки: где пропуск брака дороже перепроверки, порог опускаем; где оператор перегружен — поднимаем. Решения логируем вместе со значением уверенности, чтобы порог пересчитывался на накопленных данных без переобучения модели.

Для проверки воспроизводимости прогоняем конвейер на открытом наборе MVTec AD, признанном ориентиром в детекции аномалий по изображениям. После запуска те же метрики считаем на живом потоке: падение полноты по конкретной партии — сигнал о дрейфе данных, и подстройка идёт раньше, чем брак доходит до заказчика.

Режимы работы: потоковая проверка, выборочный контроль, архив

Режимы работы системы не заменяют друг друга — они закрывают разный темп линии и разный характер дефекта. Потоковая проверка кадров держит весь входящий материал и сигналит об аномалии сразу, архивный разбор — ищет причину на накопленных данных.

Выборочный контроль оператором занимает промежуточное положение: модель размечает поток, человек подтверждает спорные кадры и уточняет пороги чувствительности.

Режим Когда подходит Ограничения
Потоковая проверка кадров Массовый поток, дефект критичен уже на выходе операции Чувствителен к смене освещения и ракурса; при высокой чувствительности растёт доля ложных срабатываний
Выборочный контроль оператором Редкий дефект, неполная разметка, старт внедрения Скорость ограничена человеком; результат зависит от регламента и квалификации смены
Архивный разбор Поиск причин брака, проверка гипотез, разбор накопленного материала Не влияет на текущий выпуск; нужны хранилище и метаданные — время, линия, партия

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

Этапы внедрения: от аудита изображений до передачи в эксплуатацию

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

  1. Аудит съёмки и данных. Разбираем поток кадров: освещение, ракурсы, фон, доля брака в архиве. Итог — понимание, каких условий съёмки не хватает для устойчивой детекции.
  2. Аудит разметки. Сверяем метки между разметчиками, ищем пропущенные и спорные классы. Расхождения в разметке аномалий — правило, а не исключение, и находить их нужно до обучения.
  3. Проектирование конвейера. Определяем, где модель встаёт в процесс, как кадры попадают на вход и что происходит при срабатывании. Схема согласуется до старта обучения.
  4. Обучение на примерах и настройка порогов. Модель учится на ваших кадрах, отдельно подбирается порог срабатывания — от него зависит баланс пропусков и ложных тревог. Порог выбирается под цену ошибки в конкретном процессе.
  5. Приёмка модели на отложенной выборке. Кадры, не участвовавшие в обучении, прогоняются через модель: фиксируем долю пропущенных аномалий и ложных срабатываний. Результат закрепляется протоколом — это база для сравнения после дообучения.
  6. Передача в эксплуатацию. Отдаём конфигурацию, регламент действий при падении качества и инструкции по дообучению, обучаем команду. После запуска остаётся контур дообучения на новых кадрах.

Что остаётся у вас: модель, схемы, политики доступа, регламенты

Передаём не только веса модели, а весь контур, который делает её работоспособной на вашей стороне: без него через месяц после запуска никто не сможет понять, почему модель молчит на новом типе дефекта или почему события сыпятся пачками. Ниже — что именно фиксируется в акте передачи.

  • Настроенная модель детекции аномалий: веса, выбранный порог срабатывания, разбивка по классам дефектов и протокол проверки на отложенных кадрах, которые не участвовали в обучении.
  • Схема обработки кадров: путь от захвата до записи события — с указанием буферов, поведения при обрыве связи и правил дедупликации повторных срабатываний.
  • Политики доступа и роли: кто видит разметку, кто имеет право менять порог чувствительности, кто выгружает архив событий; журнал действий по каждому изменению конфигурации.
  • Регламент переобучения: периодичность, требования к новому размеченному материалу, порядок подтверждения версии и процедура отката на предыдущую, если качество просело.
  • Набор размеченных кадров и правила разметки, включая примеры спорных случаев — тех, где модель ошибалась чаще всего.
  • Регрессионный набор проверок: эталонные кадры с ожидаемым результатом, которые прогоняются при каждом обновлении модели.
  • Документация: инструкция по развёртыванию, описание параметров конфигурации, схема интеграции с вашей учётной системой или линией.
  • Протокол мониторинга: какие метрики смотрим в эксплуатации и при каких отклонениях считаем, что модель деградировала.

Всё это разворачивается в вашем контуре и остаётся у вас: сопровождение возможно, но не обязательно — инженеры вашей команды смогут дообучить модель и поднять сервис самостоятельно.

Кейс: линия упаковки — пропуск брака и ложные срабатывания

Как было

На линии упаковки брак ловили выборочно: контролёр снимал каждую двадцатую упаковку и осматривал её вручную. Неполный шов, смещённую этикетку, вмятину или постороннее включение находили с задержкой — партия уже уезжала на склад, — а результат зависел от смены, освещения и усталости оператора. Доля пропущенного брака доходила до 7%, ещё около 4% годной продукции уходило в отбраковку из-за спорных решений: прямые потери и разбирательства с получателем.

Что сделали и что получилось

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

  • пропущенный брак: 7% → 0,8%
  • ложные срабатывания: 4% → 0,6%
  • охват контролем: выборка около 5% → 100% упаковок
  • переналадка на новый типоразмер: полная смена → около получаса на десяток эталонных кадров

Брак перестал доезжать до склада, а линия не встаёт на пересмотр партий: спорные кадры оператор разбирает точечно. Такой же подход переносится на другие участки — меняются камера, зона съёмки и набор эталонов, логика контроля остаётся прежней.

Что делать, если разметка уже есть, но она неполная?

Неполная разметка — обычное состояние проекта, а не повод начинать заново. Часть кадров размечена, редкие дефекты представлены единицами примеров, а метки на граничных случаях расходятся между разметчиками. Модель, обученная на таком материале, либо пропускает редкий класс, либо даёт ложные срабатывания на похожих нормальных участках.

Первый шаг — измерить согласованность разметки. Фрагмент кадров размечаем повторно, независимо от первого прохода, и считаем долю совпадений по каждому классу. Классы с высоким расхождением почти всегда описаны неоднозначно: их критерии переписываем до дообучения модели, иначе она закрепляет ошибку разметчика как закономерность.

Спорные кадры отбираем отдельно: где модель уверена, а метки нет — и наоборот, где метка есть, а модель стабильно молчит. Такие кадры дают максимум информации на единицу доразметки, поэтому ручной труд уходит в них, а не в случайную выборку.

Дообучение модели на слабых метках строим аккуратно: кадры без метки не считаются отрицательными, а исключаются из подсчёта ошибки, уверенные примеры редкого класса получают больший вес. Баланс выравниваем подвыборкой доминирующего класса и аугментациями редкого — иначе мало примеров дефектов тонет в норме.

Контроль ведём по классам, а не по общей точности: отдельно смотрим полноту по редкому дефекту и долю ложных срабатываний на норме. Так видно, помогает ли доразметка и на каких участках ещё нужны кадры.

Вопросы, которые снимаем до старта: съёмка, разметка, приёмка

Технические сомнения дешевле снять до старта, чем в виде переделок разметки и переобучения. Поэтому до первой строки кода фиксируем требования к съёмке, объём выборки и критерии приёмки — они определяют, что получится на выходе.

Основные риски лежат не в модели, а в данных: редкий брак, смена партии сырья, другое освещение в цеху. Ниже — то, что чаще всего обсуждаем с инженерами заказчика перед стартом работ.

Сколько изображений нужно для обучения?

От нескольких сотен кадров на каждый тип дефекта — с той же оптикой, фоном и дистанцией, что и на линии. Редкие классы добираем синтетикой и управляемой аугментацией; разметку ведём в CVAT с двойной проверкой спорных кадров.

Как проверять качество, если брак редкий?

Считаем полноту и точность отдельно по каждому типу дефекта на отложенной выборке, а не среднюю по всем кадрам. Для редких классов заранее фиксируем порог срабатывания и допустимую долю пропусков — по этим числам и принимаем работу.

Что будет при смене освещения или партии?

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

Обсудим задачу: пришлите примеры кадров и условия съёмки

Чтобы обсудить задачу предметно, полезно заранее собрать то, что уже есть в работе: снимки, условия съёмки и понимание, какую долю пропусков вы считаете допустимой.

  • Выборка кадров: несколько сотен снимков с линии — с аномалиями, которые нужно ловить, и с нормальными кадрами в тех же условиях.
  • Условия съёмки: освещение, ракурс, скорость линии, что меняется между сменами и сезонами.
  • Классы дефектов: перечень с описанием, что критично, что допустимо и где проходит граница.
  • Разметка и ответственный: кто на вашей стороне подтверждает дефект и сколько времени это отнимает.
  • Точка внедрения: где появляется сигнал — оператор или линия отбраковки — и что происходит после срабатывания.
  • Жёсткие рамки: какое оборудование уже стоит, есть ли камеры, требования к хранению снимков и доступам.
  • Текущий контроль: сколько дефектов ловится сейчас, сколько уходит дальше, какая доля ложных срабатываний.

В ответ вы получаете разбор ваших кадров, схему решения под условия съёмки, оценку проекта с явно названными допущениями и план работ по этапам — от подготовки данных и разметки до контроля стабильности модели. Если данных пока мало или задача закрывается проще, скажем об этом прямо.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139