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







