Nešvary obrazové analýzy v průmyslu

Jedním z nejžhavějších a nejžádanějších témat v průmyslu je obrazová kontrola. Kontrola výrobku při procesu výroby a hlavně při jeho dokončení, před zasláním zákazníkovi. Nejčastější cíl obrazové kontroly je odhalení chyb a nedostatků – deformovaný plastový výlisek, chybějící díl, poškrábaný povrch, narušený závit šroubu, znečištěná průhledná plocha apod.

Tradiční způsob kontroly je pár lidských očí, trpělivost a pozornost pracovníků na konci (uprostřed a na začátku) výrobní linky. Toto je jasná příležitost pro zástup AI startupů, které mají zálusk na svůj kus bohatého koláče průmyslové výroby. Má to ale háček.

AI fuck-up

Pro účel tohoto textu o obrazové analýze nebudu komentovat tradiční přístup AI expertů z AI startupů, kteří přišli udělat revoluci v průmyslu a konečně naučit staré inženýry, jak se vyrábí auta.

Potenciální scénář: AI startup se dohodne s velkou průmyslovou firmu (samozřejmě s německým vedením), pochopí problém a dostane data.

Problém. Díl dodávaný klientovi obsahuje 12 šroubů. Je klíčové, aby šrouby byly v pořádku – neměly by mít poškozený závit. Tato vada se objevuje pouze v 0.5 % případů (5 z 1000), je však závažná, kvůli smluvnímu nastavení s klientem.

Data. AI startup dostane 500 označených fotografií šroubu, z nichž 300 je v pořádku (OK) a 200 poškozených (NOK, not OK).

Řešení. AI experti a ML inženýři sestavili konvoluční neuronovou síť (CNN) na základě známé a literaturou (tj. na MNIST a kočky vs. psi) ověřené architektury. Na testovací části dodaných dat dosáhli úspěšnosti 97 % (klasifikace na OK a NOK kusy).

Výsledek 1. Ve skutečnosti došlo k overfittingu. Ve skutečné výrobě poté umělá inteligence klasifikuje 40 % šroubů jako NOK. Ve skutečnosti je jen 0.5 % NOK. Výroba se podle ní nemůže řídit.

Výsledek 2. Ve skutečnosti došlo k overfittingu. Ve skutečné výrobě poté umělá inteligence klasifikuje všechny šrouby, jako OK. Je naprosto redundantní a kdyby nebyla, světu by bylo lépe.

Toto jsou dva krajní, ale názorné, příklady AI fuckupu.

Proč?

Proč nefunguje tradiční AI a ML přístup – tak úspěšný při klasifikaci psů od koček a ručně psaných číslic – u úlohy obrazové analýzy v průmyslu? Identifikuji následující důvody.

  1. Prior knowledge. Na počátku tréninku neuronové sítě se většinou inicializují váhy náhodně. Neuronová síť nemá nejmenší ponětí, zda se ji snažíte naučit rozeznávat slony od autobusů, Fiat od Škodovky, nebo šroub s vadou od šroubu bez vady. Zahazovat tak základní informaci je přinejmenším odvážené. (Transfer learning může být odpověď na tento problém. Jistě však ne plně optimální.)
  2. Hledání anomálií. Koček a psů je na světě přibližně stejně. Stejně tak bude přibližně stejné množství fotek koček a fotek psů. Při tradiční klasifikační úloze CNN rozdělujeme fotografie do dvou skupin stejné velikosti. Na rozdíl od toho, při hledání snímků s vadami v průmyslu hledáme spíše anomálii mezi většinou normálních snímků.

Obrazová analýza v průmyslu je tedy více podobná úloze anomaly detection než klasické učebnicové klasifikaci.

Co s tím?

Apriorní informaci o problému lze do řešení implementovat chytrým užitím klasických metod analýzy obrazu. Ty jsou většinou poskládány z relativně triviálních, většinou deterministických, matematických operací: registrace/zarovnání snímků, výběr a kombinace barevných kanálů, konvoluční a jiné filtry, morfologické operace, thresholding apod..

Pokud tento “preprocessing” neskončí jednoduchým (nebo složitým) thresholdingem a expertem definovaným výstupem, může následovat A) unsupervised – na hustotě a typičnosti snímků založená – diskriminační metoda, nebo B) supervised – natrénovaná, třeba CNN – diskriminační metoda. V obou případech je prior knowledge o problémů zachována v prvním kroku expertem inspirovaného preprocessingu.

Problém příliš malého množství NOK kusů (rozuměj, problém pro AI experta, nikoli výrobního inženýra) vyvstává převážně při užití supervised metod. (Expertní a unsupervised metody jsou pro jeho řešení od narození vhodné.) V takovém případě vhodný přístup závisí na konkrétní metodě. Obecně není ani jasné zda A) trénovat na datech s originálním poměrem 5:1000 (NOK:OK), nebo B) trénovat na datech s příjemným poměrem, jako je třeba 20:30 (NOK:OK).