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

Брак на лінії помічають надто пізно: партія вже упакована, а претензії надходять від клієнта. Ми розробляємо системи детекції аномалій за зображеннями під ключ — від постановки зйомки до передачі моделі в експлуатацію. Хибні спрацьовування та пропуски браку скорочуються в рази.
Часті запитання

Детекція аномалій зображень: де ламається контроль якості

Машинний зір на виробництві ламається не на моделі, а на вхідних даних. Камера стоїть над конвеєром, де змінюється освітлення, відблиски від металу й вібрація: детекція аномалій зображень упевнено працює на стенді та розсипається на лінії.

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

Друге вузьке місце — рідкісний брак. Реальний дефект трапляється раз на сотні або тисячі придатних кадрів, тому частка помилок нічого не показує: модель, яка позначає все придатним, формально точна й марна.

Контроль якості на лінії будується навколо повноти за дефектним класом і ціни пропуску: пропущена тріщина їде до замовника, а хибна тривога зупиняє потік і знецінює систему в очах зміни.

Третє — розмітка. Пошук дефектів за кадрами впирається в те, що оператори розходяться у трактуванні: подряпина «на око» в одного дефект, у другого норма.

Без регламенту й перехресної перевірки міток модель вчиться відтворювати шум, а не ознаку, тому частину кадрів розмічають повторно й рахують узгодженість розмітників.

І головне: демо не дорівнює лінії. Інша партія сировини, зміна постачальника, знос освітлення — розподіл кадрів дрейфує, і поріг упевненості, підібраний на прототипі, перестає відділяти брак від норми.

Детекція аномалій за зображеннями тримається не на одному навчанні, а на моніторингу дрейфу й донавчанні на нових кадрах. Нижче розбираємо, як це закривається.

Метрики якості: повнота, точність, хибні спрацювання

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

Тому в завданні пишемо не «точність моделі», а цільову повноту й припустиму частку хибних спрацювань.

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

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

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

Для перевірки відтворюваності проганяємо конвеєр на відкритому наборі 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
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142