PŘÍPADOVÁ STUDIE


Vizuální inspekce s pomocí Deep Learning – kontrola výlisků ve společnosti KASKO

Vizuální inspekce je nezbytná součást výstupní kontroly výrobků. Je náročná pro operátory, zejména na jejich dlouhodobé soustředění na detail. Trénink operátorů probíhá jako transfer znalostí z expertního kontrolora na juniora a často trvá několik týdnů až měsíců.

Autor:Vratislav Beneš, Head of Engineering OptiSolutions

Jedná se tedy o náročný a nákladný proces, jehož výsledek není vždy jistý, navíc zaučený operátor může kdykoli firmu opustit.  Ideální proces by tedy byl ctrl+c expert, ctrl+v nový operátor. A jelikož toto u lidí není (zatím) možné, nabízí se využít učících se algoritmů umělé inteligence, tzv. Deep Learningu.

Deep Learning pro vizuální inspekci

Neuronové sítě jsou technologie známé již od 70. let minulého století. Vždy jim ale chyběl výkonný HW, který by umožnil jejich masivní rozšíření. V posledních deseti letech došlo k razantnímu rozvoji a popularizaci díky technologickým gigantům jako Google, Facebook a zejména NVIDIA. Ti stojí za vývojem klíčových frameworků pro vývoj neuronových sítí jako je tensorflow, torch, cuda a cudnn. Nvidia také vyrábí grafické karty, jež přinášejí výkon do běžných počítačů, kterým disponovaly superpočítače před deseti lety.

Jak funguje neuronová síť

Neuronová síť je počítačový program, který se obdobně jako lidský mozek učí na základě příkladů/vzorů. Člověk má nespornou, a dá se říct, že i nepřekonatelnou výhodu v obrovských obecných zkušenostech, které dokáže mezioborově kombinovat. Neuronová síť zná pouze to, čemu je natrénována.

Trénování je proces, při němž se algoritmus učí předloženým datům, vzorům a snaží se minimalizovat funkci měřící odchylku výstupu naučené sítě od očekávaných výsledků. Očekávaný výsledek je ohraničení detekované vady nebo co nejvěrnější vykreslení sledovaného povrchu (pro hledání anomálií). Trénování lze rozdělit do dvou skupin, a to na trénování s učitelem a bez učitele. 

Trénování s učitelem (Supervised Learning)

Trénování s učitelem (Supervised Learning) lze v praxi přirovnat k zaškolení expertem, kdy ukazuje nováčkovi, jak vypadá konkrétní vada. Expert nováčkovi předkládá jednu vadu za druhou a říká mu, jakého je typu. Nováček si postupně v hlavě vytváří představu o tom, co mají společného příklady vad určitého typu a naopak, jak se liší od jiných typů. Stejně tomu je uvnitř neuronové sítě. Ta ze vstupních dat (snímky z kamer) vytahuje vlastnosti scény (hrany, shluky pixelů, odstíny šedi apod.) a ty přiřazuje do shluků ke konkrétním třídám (typy vad). Těmto modelům neuronových sítí se říká klasifikátory, resp. přesněji detektory objektů (Object Detection). Neuronová síť se učí ohraničit místo výskytu oblasti zájmu, tzn. kde se vyskytuje vada nebo naopak kde je mandatorní sledovaný prvek. Někdy stačí znát polohu objektu, jindy je třeba znát přesnou plochu, kterou ve scéně zabírá. Této metodě se říká Instance Segmentation.

Ukázka Object detection a Instance Segmentation

Po natrénování neuronová síť umí vysvětlit všechny pro ni známé vady. Dokáže určit jejich typ a procentuální ohodnocení přiřazení nalezené vady do dané třídy. Pro správné natrénování je třeba zajistit dostatečný počet snímků všech vad. Ideální počet jsou stovky až tisíce vzorků. Toto někdy představuje značný problém, který lze řešit umělými daty – viz článek Umělá inteligence se učí na umělých datech.

Trénování bez učitele (Unsupervised Learning)

Dalším přístupem k nalezení vady je hledání anomálií v datech (snímek, signály). Tyto metody lze v praxi přirovnat k situaci, kdy víme, jak vypadá bezvadný výrobek a hledáme všechno divné na testovaném kusu, tedy takové porovnání s etalonem. Výsledkem je, že dokážeme o testovaném kusu říci, zda-li je podobný etalonu nebo se někde liší. Nevíme, o jakou konkrétní vadu se jedná, ale víme, kde je. Často používaným modelem je tzv. Autoencoder nebo jeho variace. Tento model se dá přirovnat ke komprimačnímu programu (např. zip), který vezme nějaký soubor a komprimuje ho na menší velikost. Po dekompresi výsledného souboru by měl být rozbalený soubor stejný jako původní. Autoencoder se snaží natrénovat znalosti OK vzorů. Při analýze nových dat se model autoencoderu snaží rekonstruovat původní obrázek na základě dat pořízených kamerou. Rekonstruovaný obrázek je tedy obraz toho, jak by měla snímaná oblast vypadat v ideálním stavu, tedy bez vad. Porovnáním aktuálního a rekonstruovaného snímku získáme rozdíly charakterizující anomálie.

Tyto metody jsou velmi vhodné pro kontrolování kontinuálních povrchů, např.  kontrola lakování, výroba pásů (tapety, gumové pásy) nebo výkovky.

A - OK kus bez vad
B - vstřik s 2 těsnicími kroužky
C - chybějící pojistka
D - neúplný vstřik
Červeně jsou vyznačené oblasti, které jsou významně odlišné od etalonu a mohou představovat vady.

Vyhodnocení detekcí

Samotné detekce ještě nemusí znamenat nalezení vady. Některé projekty vyžadují křížové testy, kdy detekce jedné třídy v jednom pohledu musí být potvrzena další detekcí z jiného pohledu nebo nalezením abnormality ve snímku z telecentriky, tedy v profilu. Kritériem pro zatřídění detekce do vad může být i pozice (hraniční vzdálenost od/k nějakému bodu, hranici) nebo i velikost. Pro určení velikosti lze využít obepsaných obdélníků z Object Detection nebo lépe využít přesně vypočtenou plochu z Instance Segmentation. Detekovanou velikost lze převést na plochu v mm2. Některé detekce jsou vadami až od překročení stanovené meze.

Příklad z KASKO spol. s r.o.

Společnost KASKO spol. s r.o. je moderní vstřikolisovna na úpatí Bílých Karpat. KASKO si zakládá na dodávání 100% kvality, což klade i vysoké nároky na výstupní kontrolu. Některé výrobky jsou komplikované nebo povaha možných vad je nad schopnosti běžných kamerových systémů. Aby se odstranila nutnost manuální inspekce, byly u 2 vstřikolisů instalovány systémy využívající deep learning – konkrétně aplikaci LOTYLDA DL.

Úloha první – kontrola zalisování plochého magnetu do plastu

Výchozí situace

Robot umístí do formy čtyři ploché, kulaté magnety o průměru 10 mm, které jsou následně zalisovány do plastu. Po dokončení lisování musí být magnety správně orientovány a nesmí být poškozené. Při lisování může například dojít k prasknutí magnetu. Hotový výrobek odebírá manipulátor za stranu s nalisovaným magnetem a výrobek ukládá ho do výstupního KLT boxu.

Problematické části

Detekce musí probíhat přímo v lisu ve fázi těsně po otevření formy. Lis se nachází pod světlíkem a není možné jej zastínit. Konstrukce lisu vyžaduje umístění kamer pouze pod úhlem. Maximální možný čas na snímání a vyhodnocení jsou 2 s.

Řešení

Na lis byly instalovány kamery pracující v IR spektru pro minimalizaci vlivu slunečního záření ze světlíku. Každé hnízdo má vlastní kameru, která jej snímá ze vzdálenosti 1,2 m. Ty jsou napojeny na vyhodnocovací počítač komunikující s řídicím systémem stroje přes PLC. Nasnímané výstupy byly rozděleny na 4 třídy {OK, otočený magnet, prasklý magnet, chybějící magnet}. 

Neuronová síť je typu object detection, konkrétně Retina net, a běží na edge computeru s GPU Nvidia. Trénování probíhalo na sadě 1000ks. Celý proces probíhá v systému LOTYLDA DL.

Výsledky detekcí

Ukázky detekce vad na výrobku o průměru 10 mm, snímaném ze vzdálenosti 1,2 m v IR spektru

Monitor u stroje

Výstup pro technology a kvalitáře

Výsledky testů jsou dostupné v BI aplikaci, pro možnost hledání souvislostí mezi vadami a příčinami (směny, časy, nastavení stroje apod.). Například bylo vysledováno, že jedno hnízdo má zvýšený počet výskytu vady než ostatní.

Úloha druhá – kontrola dílů po vyjmutí z formy

Další třešničkou je projekt na kontrolu nedolitků a také přetoků u kulatého dílu o průměru 90–100 mm. Díl má 5 variant. 

Výchozí situace

Robot vyjme 2 výlisky z formy a nese je na výstupní dopravník z lisu.

Problematické části

Detekce musí probíhat v okamžiku, kdy robot nese výlisky. Na dopravník mohou jít pouze OK kusy. NOK kusy jsou vyhozeny do popelnice. Vyskytující se vady na vnější hraně pláště mají obdobný charakter jako chtěné výstupky výrobku. Velikost výstupků a nedolitků je 1 mm x 1 mm. Vzhledem k celkové velikosti výrobku se jedná o problematicky detekovatelnou část a obě části jsou velmi složitě separovatelné.

Detekce vady o velikosti 1x0.8 mm

Řešení

Na rám lisu byly nainstalovány 2 kamery s 360° objektivem na snímání dutin. Pro analýzu byly natrénovány neuronové sítě řešící rozdílné úlohy, a to detekci přetoků, malých nedotečení (<1 mm), velkých nedotečení (>1 mm) a chybějících žeber. Sítě běží na edge computeru s GPU Nvidia. Komunikaci se strojem zajišťuje PLC Siemens.

Ukázka scény v Blenderu
Umístění kamer na stroji, pohled na kontrolované díly

Výsledky

Děkujeme společnosti KASKO za odvahu hledat nové cesty a následně i sdílet své zkušenosti s ostatními firmami.