Mesterséges intelligencia használata vágóhídon
A mesterséges intelligenciát széles körben használják kategorizálási problémára, ennek legfőbb oka a mélytanulásnak köszönhető kiemelkedő pontosság. Cégünk is több iparágban vezetett be sikerrel neurális hálózatokra épülő eljárásokat, többek között klasszifikációs kihívásokara adott megoldásként. Jelen vizsgálatunk célja, hogy bemutassuk marhahúsipari környezetben felmerülő kihívásokra is hatékony megoldásokat vagyunk képesek szállítani. Sertéshús azonosítás témakörében egy másik esettanulmányt írtunk, mind a két esettanulmány célja, hogy demonstráljuk partnerünknek (MCS Vágóhíd Zrt.) ennek a húsípari kihívásnak a megoldhatóságát.
Az esettanulmány keretében bemutatjuk egy relatíve nagyobb, ezáltal reprezentatívabb vágóhídi termék azonosítás témakörében rendelkezésre álló adathalmazon eljárásunk eredményességét. Előzetes célkitűzésünk, hogy az adathalmaz publikálójánál jobb eredményt érjünk el. Ezt a célt sikerült elérni, így most összefoglaljuk, hogyan is zajlott a folyamat az adatbázis elemzésétől egészen az eljárások kiértékeléséig és összehasonlításáig.
Az adatbázis
Az esettanulmány megírását megelőzően nem állt rendelkezésünkre képi információ húsipari problémák kapcsán. Így egy publikus marha vágóhídról származó képadatbázison fogjuk szemléltetni megoldásunk eredményességét. Ez az adatbázis bárki számára elérhető letölthető és bizonyos licence megkötésekkel felhasználható. Egy publikáció is tartozik az adatbázishoz ami több megoldást mutat be, így összehasonlítási alapunk is lesz. (Using artificial intelligence to automate meat cut identification from the semimembranosus muscle on beef boning lines – 2021 Satya Prakash, Donagh P Berry, Mark Roantree, Oluwadurotimi Onibonoje, Leonardo Gualano, Michael Scriney, Andrew McCarren)
Tehát adatott nyolcezer képet tartalmazó marhahúsról készült adatbázis, melyeket egy írországi vágóhídon rögzítettek három hét alatt. A képek minden esetben „topside” (Semimembranosus izom) főhúsrész további feldolgozásából származik. A feldolgozott húsrészek 5 kategóriába kerületek besorolásra, melyekhez egyedi termék azonosítót rendeltek. A rendelkezésre álló adat címkézésnek köszönhetően húsipar ismeretek nélkül is hatékonyan foglalkozhatunk a problémával.
Az egyes kategóriák melyeket el kell különíteni:
- Cap Off Pear Off, PAD topside muscle (termékkód: 20001)
- Cap off, pear on Topside muscle (termékkód: 20002)
- Topside Heart muscle (termékkód: 20003)
- Topside Bullet muscle (termékkód: 20004)
- Cap Off, Non-Pad, Blue Skin Only Topside muscle (termékkód: 20010).
Az adatbázis nem szimmetrikus, azaz van olyan kategória, mely nagyon kis mintaszámmal rendelkezik. A nem balanszos tanító adatok kezelésre vannak praktikák, mellyel az aszimmetria hatása csökkenthető, de teljes mértékben nem eliminálható. Tehát a legjobb megoldás, ha további adatokat gyűjtünk az alul reprezentált kategóriákra. Mivel itt az adatgyűjtést nem mi végeztük, így erre ráhatásunk sajnos nem volt.
Az adatbázisokban szereplő képek minősége kapcsán is vannak fenntartásaink. A projektben egy biztonságtechnikai kamerát alkalmaztak, melynek képalkotása szélsőséges esetekben nem elégséges a probléma maradéktalan kezelésére.
Több alkalommal látszódik, hogy a kamera képe elsötétedik, vagy kiegészítő megvilágítást kellett volna alkalmazni az adat rögzítéshez, vagy olyan kamerát, aminek fényérzékenysége nagyobb. A következő kép jól szemlélteti, hogy a baloldali kép átlagos fényessége 93 (0-255 skálán értelmezve), az is látható, hogy a hús felületén a textúra már szemmel is nehezebben látható. A jobb oldali képen 113 ugyanez az érték, cserébe a hisztogramon az látható, hogy a kép több helyen kiégett, ezzel magyarázható a megugró pixel szám 250-ös érték felett. Mivel a neurális hálózatok nagy valószínűséggel figyelembe veszik a hús textúráját így, ha annak láthatóságát és észlelhetőségét csökkentjük a döntéshozatal pontossága csökkeni fog.
A képi adatokat elemezve azt tapasztaltuk még, hogy bizonyos esetekben homályos a kép, ennek oka vélhetően az automatikus fókusz állítás a kamerán. Azaz nincs elegendő mélységélessége a kamerának és nagy méretű hús sokkal közelebb kerül a kamerához, mint a mérleg, amikor nincs rajta hús. Ilyenkor az éles kép biztosítása érdekében újra fókuszt állít a kamera, ha közben került rögzítésre a képe akkor az homályos lesz.
Amit még ki lehet emelni, hogy több alkalommal látszódik a képeken a húst felhelyező ember keze, néha a hús nagy részét is kitakarja. Illetve a három hetes adatgyűjtés alatt a kamera elmozdul így nem garantált az azonos körülmény az adat rögzítés alatt.
A rögzítés folyamatát és körülményeit nem mutatjuk be részletesebben mert az eredeti cikk ezt kellő alapossággal megteszi.
Publikálók megoldása
Az adatbázis rögzítés után egy tanulmányt is készítettek, mely alkalmával a kategorizálást vizsgálták. Több megoldást is kipróbáltak. A tisztán neurális hálózatra épülő klasszifikációs megoldások mellett kevert hibrid megoldást is teszteltek. A hibrid eljárás során a neurális hálózat eredményeit fuzionálták gépi tanulás eszköztárával. A gépi tanulás alapja a hús befoglaló keretének bal felső és jobb alsó koordinátája és a hús kontúrjának és a befoglaló keret érintőpontjának koordinátája. Ezzel nagyságrendileg a hús méretére és annak domináns formájára, illetve orientációjára lehet következtetni. Ezen információkat használták gépi tanuló eljárásokban és kategória valószínűségi eloszlásokat predikáltak. Az így kapott adatokat fuzionálták a neurális hálóból érkező kimenettel, majd erre az összeillesztett leíróra (feature vector) második lépcsős neurális hálót tanítottak.
Az ilyen hibrid technológiák időszakosan lehetnek eredményesek, de tapasztalatunk szerint az „end to end” rendszerek, azaz az egylépcső rendszerek, hatékonysága és robusztussága sokkal nagyobb. Így ilyen megoldások használatát mi csak nagyon indokolt esetben ajánljuk.
Ezen felül minden eljárást vizsgáltak szürkeárnyalatos képpel, és színes képpel is. Illetve egy érdekesnek tűnő lehetőséget elemeztek még ki, még pedig, hogy a neurális háló egy rétegében bevezetik a képi információ mellé a mérlegelésből származó súly adatot is, érdekes látni, hogy bizonyos hálózatok esetében ez javította az eredményt bizonyos esetekben rontotta. Mivel a pontos implementációt nem ismerjük így ennek okát nem tudjuk megmondani.
CallioVision megoldása
Az adatbázis átnézése után azt a célt tűztük ki magunk elé, hogy tisztán neurális hálózatra támaszkodva olyan „end to end”, azaz egy lépcsős tanulást alakítsunk ki mely minden a publikációban felmerült eljárásnál magasabb pontosságot ér el.
Első lépésként a képi adatbázist szétvágtuk tanítási és tesztelési adatbázisra, előbbin tanítjuk az eljárásunkat, az utóbbin pedig a kiértékelést végezzük. Iparági sztenderd szerint közel 80%-20% százalékos vágást végeztünk az adatokon. Ezt a vágást úgy végeztük el, hogy azonos napon keletkező képek ne szerepelhessen azonos csoportba a vágás után. Ezt azért éreztük fontosnak, mert így még inkább reprezentatív a benchmark eredmény. A következő napok kerültek a teszt adatbázisba: ’04-08-2017′, ’03-08-2017′, ’24-07-2017′, ’19-07-2017′.
Semmilyen kép manipuláló elő feldolgozást nem végeztünk a képeken. Azoknak élességének javítására, vagy bármilyen standardizáló eljárást (pl.: hisztogram kiegyenlítést) nem alkalmaztunk. Egy beavatkozást végeztünk el a képeken 4:3-mas felbontását 1:1- re vágtuk le, ezzel olyan információt nem vesztettünk ezeken a területeken, ahol látszódik hús a képeken.
A 6460 darab kép, ami a tanító adatbázisban szerepel a túltanulás kockázatát rejti magában. Egy közepes méretű neurális háló esetén is 5-20 millió közötti paraméter kerül felhasználásra a neuronhálózatban. Ez a paraméter szám könnyedén tanulja meg az ilyen kevés képből származtatott információkat, ennek elkerülése érdekében olyan eljárásokat alkalmaztunk, mint a képek jpg tömörítése és kitömörítése ezzel zajt generálva a képekre, random szín és fényesség torzítások, random kismértékű zaj hozzáadása a képhez, illetve mivel a probléma invariáns a tükrözésre és forgatásra így a bemeneti négyzet alakú képeket random elforgattuk és vertikális, illetve horizontális tengelye körül tükröztük. Ez nem csak a túltanulást akadályozza meg, hanem kiszélesíti azt a környezeti tartományt, ahol a neurális hálózat stabil döntést tud hozni, tehát robusztusabb eredményt kapunk.
A nagy mértékű kategória eltéréseket a kisebb számosságú minták felül mintavételezésével próbáltuk kezelni, illetve a kis számú kategória esetén nagyobb tévesztést büntető együtthatót használtunk. Mint később kiderül ez nem volt elégséges.
A neurális hálózat architektúráját nem írjuk le annak anyagi értéke miatt. De azt elárulhatjuk, hogy három tanítást végeztünk három minimálisan eltérő architektúrával, illetve mind a három architektúra esetén 2-3 iterációt fordítottunk arra, hogy apróbb változtatásokkal és a hiperparaméterek finomhangolásával további javulást érjünk el. (hiperparaméter minden olyan paraméter, ami nem tanított, a neurális hálózattal közvetlen kapcsolatban nincs, de annak tanulási eredményességére, vagy általánosító képességére kihat pl.: tanulás alatt mekkora mértékű elmosódottságot generálunk a képre, vagy ide sorolható a loss érték súlyozása, azaz melyik kategóriának az eltévesztését mennyire büntetjük a tanulás alatt).
A betanult három hálózat súlyozott F1 Score eredményeit a következő táblázatban szemléltetjük. Mindegyik architektúrából a finomhongolás alatt keletkezett eredmények közül a legjobbat szerepeltettük a táblázatban. Azért a súlyozott F1 Score-t választottuk eredményesség kimutatására, mert így összevethetőek a publikációban szereplő eredményekkel.
Eredmények bemutatása
A „CallioVision – III” megoldás kategorizálásának kimenete a teszt adathalmazon. Jól látható, hogy a főátló kivételével nagyon kis számok láthatóak a táblázatban, ezek a számok a hibás félrekategorizálások. Az is látható, hogy a 20002-es kategória alulreprezentáltságát nem sikerült hatékonyan kezelni, további adatgyűjtésre lenne szükség. Annyira gyenge ez a kategória, hogy más minta se került ide félreosztályozásra. Közérthetően úgy lehetne megfogalmazni ezt a jelenséget, hogy a neurális hálózat tanulás alatt arra „jutott” hogy ha ezt a kategóriát folyamatosan félre osztályozza, a teljes jóságban akkor is magas eredményt tud elérni.
Végül az eredményeinket összevetve a tanulmányban szereplő adatokkal kijelenthető, hogy minden féle heurisztika (hibrid modell, súly bevezetés) mentes, tisztán neurális hálózattal megoldható a húsok robusztus kategorizálása, ezáltal automatizálható a probléma. Az eljárásainkat csak színes képi információval tanítottuk.