Deep learning a minőségellenőrzésben

CallioVision > Esettanulmányok  > Deep learning a minőségellenőrzésben
Deep learning - neurális hálóza

Deep learning a minőségellenőrzésben

Nézzük meg egy példán keresztül, hogy milyen felhasználási területei lehetnek a mesterséges intelligenciának a minőségellenőrzés területén. Célunk, hogy egy problémán keresztül, érthető módon mutassuk be a mesterséges intelligencia ezen területét. Egy publikus adatbázison szemléltetjük, milyen magas potenciált hordoz magában a mély tanulás (deep learning).

Cégünk meggyőződése hogy a „hagyományos” algoritmusok láncolatából felépülő megoldásoknál lényegesen hatékonyabb és rugalmasabb megoldást lehet készíteni. Minél több a változó paraméter az ellenőrzés folyamatában, annál inkább igaz ez az állítás. Az egymás után „kattintgatós” algoritmusok paraméterezése soha nem fogja tudni lefedni a teljes problémakört és folyamatos hangolásra és egyéni heurisztikák beépítésre lesz szükség. Ezzel ellentétben a mély tanulás, mint ahogy a neve is mutatja mélyebb összefüggések keresésével sokkal precízebb eredményeket érhet el ilyen területen is.

A Probléma

A probléma egy szegmentációs feladat. Hengerelt fémlemezen kell négy típushibát detektálni. Az adatbázis gyakorlatilag több 1600×256 felbontású képet és mindegyik képhez 4 darab hiba maszkot tartalmaz, melynek mérete megegyezik a rögzített képpel. Ezeken a maszkokon a képek azon részei vannak megjelölve, amelyek az adott hibatípust tartalmazzák. Ezek a maszkok emberi jelölések. Ezeket egy olyan személy rögzítette, akinek megvolt a megfelelő problémaspecifikus tudása. Vannak olyan képek is az adatbázisban, amin nincsen hiba. Ilyenkor a hibamaszk nyilván nem tartalmaz semmit. A feladat végcélja egy olyan algoritmus előállítása, ami olyan képekre, melyek nem szerepelnek az adatbázisba, minél helyesebb hibamaszk kimenetet generáljon.

Az adatbázis

A képeket átnézve látható, hogy több felületről van szó. Van amelyik dombornyomott, van amelyik nem. Vannak olyan képek, amin valamilyen leválás, vagy elszíneződés van a fémfelületen. Ezen felül elég gyakori a megvilágításból adódó eltérés, vagy a fémfelületek reflexiója eltérő vagy a teszt adat rögzítése alatt nem voltak egységesek a megvilágítási körülmények, illetve akár az is lehet, hogy nem egy gyártósoron készült.

hibamentes fémfelület
hibamentes fémfelület
hibamentes fémfelület
hibamentes fémfelület
hibamentes fémfelület
hibamentes fémfelület
hibamentes fémfelület
hibamentes fémfelület

Annotáció

Ha a maszkokat nézzük jól látható, hogy elég eltérő módon vannak jelölve. Néha egy karc teljesen pontosan van kijelölve, de van, hogy kisebb-nagyobb ráhagyással. Az is előfordul, hogy a gyakori egymás melletti hibákat egy hibának jelölik. Szögezzük le hogy ez nem egy ideális tanító adat, ellenben mivel ez egy kihívás része így együtt élünk vele.

fém felületi hiba kézi jelölése
fém felületi hiba kézi jelölése
fém felületi hiba kézi jelölése
fém felületi hiba kézi jelölése
fém felületi hiba kézi jelölése
fém felületi hiba kézi jelölése

Lehetőség elemzés

Az beláthatjuk hogy itt egy élfelismerő eljárás, egy intenzitás alapú vágás nem vezethet eredményre. Ilyen alap algoritmusok kombinálva se juthatunk kielégítő megoldáshoz. Érdemes megnézni, hogy ilyen alap jellemző kinyeréssel és gépi tanulással milyen eredményeket érnek el azok, akik publikálták az eredményeiket (amikor mi néztük ilyen 60% pontosság körül voltak ezek az eljárások). Szóval egy ennyire szerte ágazó problémára, ahol eltérő hiba méretek vannak nagyon változó a kézi jelölés precizitás és minden más körülmény változik, valami másra lenne szükségünk. Itt lép szintre a mély tanulás. A mély tanulás paraméter tere lényegesen nagyobb, nem ritkán eléri a több milliót vagy több 10 milliót. Az gyorsan belátható hogy az ilyen sok paraméter hangolással lehetőségünk adódik arra, hogy a teljes probléma területet lefedhessük. Itt írtunk részletesebben: a mély tanulás hogy viszonyul a mesterséges intelligenciához és a gépi tanuláshoz.

Megoldás

Szegmentációs problémára választ adó neurális hálózatok kapcsán elég sok implementáció és publikáció érhető el. Vannak olyan hálók, amihez elérhetőek már betanult változatok is. Ellenben erre a speciális problémára nincs kész megoldás. Egy V alakú hálót választottunk alap elgondolásnak, amiben az információkat először elkezdjük összenyomni a képi dimenziók mentén, majd ezt megcsináljuk visszafele úgy, hogy a leszálló ágról visszacsatolunk. Így van olyan réteg, ami már elég nagy képterületet lát be egyszerre ahhoz, hogy releváns döntést hozzon, a visszacsatolással pedig ez pixel szinten tud finomodn. Így a V alján kialakuló nagyságrendi jelölések a V felszálló ágán folyamatosan finomodni tudnak. Ezen felül éltünk azzal a prekoncepcióval, hogy a domináns hibák karcolódás-szerűek, így erre készülve úgy választottuk meg a konvolúciós kerneleket, hogy a vékony vonalszerű függőleges és vízszintes hibákra érzékenyebbek legyenek. Az így előálló hálót minimális augmentációval tanítottuk, a képeket és a maszkokat tükröztük, minimálisan perspektív torzulás alá vetettük, és az intenzitásokat torzító eljárásokat alkalmaztunk, ezzel bővítve a tanító minta változatosságát.

szegmentáló neurális hálózat architektúra ábra | ipari fémfelület vizsgálatához

Tanulás

A tanítási folyamat igazából csak idő kérdése. Folyamatosan adagoljuk a képeket a hálónak, a kimenetét meg összevetjük a manuális jelölésekkel, így kapjuk meg az aktuális pontosságot. Ebből a mérőszámnak a jóságából állítgatjuk a belső állapotát a neurális hálózatunknak. Abból, hogy milyen hibát mennyire talált el, mit hagyott ki, minden iterációban finomodik a teljes folyamat, így egyre jobb és jobb eredményeket érünk el. A tanításra 24 órát szántunk, ezután a tanító adattól elszeparált validációs halmazon teszteltük a hálónkat.

Végeredmény

A pixelenkénti klasszifikációs pontosságunk végül a középmezőny tetejére repített minket. Az összehasonlítást torzítja, hogy mi nem azon a teszt adatbázison mérettük meg az eljárásunkat, amin a kihívást kiértékelték, mert a kiértékelő, manuálisan ellenőrzött eredmény adatot nem értük el, mi a tanító adat 20%-át vágtuk le ehhez a méréshez. Következésképpen minél nagyobb képi adatbázissal tudunk dolgozni, annál precízebb végeredményt kapunk.

predikált karc detekciófém felületi karc kézi jelölése
predikált karc detekciófém felületi karc kézi jelölése
predikált karc detekciófém felületi karc kézi jelölése
Amennyiben hasonló problémái vannak, melyekre a sztenderd képfeldolgozás nyújtotta lehetőségek nem adnak megfelelő megoldást, keressen minket bizalommal!