• No results found

4 Digitalisering och spårbarhet

4.4 Avläsning av koderna

System för maskinell avläsning av alfanumerisk kod, s.k. OCR-system (Optical

Character Recognition) har funnits länge, och används av myndigheter och företag för

avläsning av t.ex. handskriven eller printad text på papperark och kuvert, i böcker, på skyltar etc. Dessa system presterar ofta med en noggrannhet på 95 % vid läsning av ord, och ännu högre vid läsning av enskilda bokstäver. För läsning av alfanumerisk kod på sandformar och gjutgods tycks dock OCR-system vara så gott som helt oprövade, vilket gjorde tester av sådana system till en intressant forskningsfråga i projektet.

33

De flesta OCR-system som idag finns på marknaden använder konventionella algoritmer för avläsning, d.v.s. algoritmer vars regler definierats av människor och kodats in för hand. Under de senaste fem åren har dock forskning visat att maskininlärning (ML) kan användas för att skapa betydligt bättre OCR-system, eftersom ML-algoritmer tack vare självinlärning kan fånga upp och koda in fler faktorer av betydelse för avläsningen, samt bättre modellera möjliga variationer hos redan kända faktorer. Alfanumeriska tecken som förts över från en sandform till ytan på en gjuten metallkomponent under gjutning kan förväntas variera ganska mycket i geometrisk form, och stora variationer kan även förväntas med avseende på miljöfaktorer som t.ex. ljussättning, särskilt om avläsningen inte sker i ett dedikerat avläsningsskåp. Delvis på grund av detta, men också på grund av att ett av de deltagande företagen, Unibap, utvecklar och säljer ML-baserade machine visionsystem för tillverkningsindustrin, valdes i projektet att fokusera på ML-baserad avläsning.

Två olika system för avläsning och bearbetning av information från koderna testades i projektet. Mask-RCNN för bilder från mobilkamera prövades på RISE och beskrivs nedan. I avsnitt 5 redogörs för resultat från tester med så kallade smarta visionsystem från Unibap.

Preliminära tester med ett ML-ramverk kallat Mask-RCNN [17] utfördes av RISE. Mask- RCNN, som är öppen källkod och som finns att ladda ner från kodrepositoriet GitHub, har utvecklats av det amerikanska företaget Matterport. Ramverket, vars stomme är ett s.k. neuralt faltningsnätverk (convolutional neural network) och som i detta fall förtränats på Microsofts COCO-bilddataset, är i första hand tänkt att användas för bildsegmentering, d.v.s. för att detektera och sedan på pixelnivå markera (mask) och klassificera varje instans av en sökt objektklass – t.e.x. bilar eller katter – i statiska eller rörliga bilder. Ett OCR-system behöver inte kunna utföra en så detaljerad markering och klassificering, varför Mask-RCNN egentligen var onödigt kraftfullt och beräkningskrävande för ändamålet; anledningen till att valet ändå föll på detta ramverk var att det redan hade testats för en liknande uppgift i ett annat RISE-projekt, och därför ganska enkelt och till liten kostnad kunde anpassas för kodavläsning.

Figur 21. Gjuten kodplatta som annoterats för hand i VGG Image Annotator. Etiketter (d.v.s. ”1”, ”2” o.s.v., syns ej i figuren) och markeringar (de gula linjerna) sparades på JSON-format

Nätverket tränades på 24 bilder (18 träningsbilder + 6 valideringsbilder) tagna ur olika vinklar av iteration 2 av kodplattan. Träningen utfördes på en laptop utan dedikerad GPU. Bilderna togs med en Samsung Galaxy S6, med en upplösning på 5312x2988 pixlar, och varje träningsbild annoterades för hand i det webbaserade annoteringsverktyget VGG Image Annotator, se exempel i Fig. 21. Siffrorna 1–9 lästes in som separata klasser i Mask-RCNN, d.v.s. ”1” var en klass, ”2” en annan (Fig. 21).

Tester av det tränade nätverket utfördes på en handfull bilder som inte ingått i träningsdatasetet. Som Fig. 22 indikerar tycks metoden fungera i princip, även om resultatet inte är i närheten av att uppfylla dess potential. Dels missar nätverket några av siffrorna helt, och dels är klassificeringen av korrekt detekterade siffror på flera ställen felaktig. Dessutom tolkar nätverket bokstaven ”B” som två sexor. Ett avsevärt mycket större antal träningsbilder behövs för att ha chans att nå ett resultat som skulle kunna vara användbart i produktionsmiljö.

Figur 22. Testbild. Gul ring visar ett exempel på hur nätverket lyckats med detektion, men inte med klassificering. Röd ring visar hur nätverket tolkat bokstaven ”B” som två sexor, och alltså har både detekterat och klassificerat felaktigt (falsk positiv prediktion). Vit ring visar hur nätverket misslyckats med detektion och därför inte försökt klassificera (falsk negativ prediktion).

Objektiva mått på nätverkets prestanda, t.ex. MAP (mean average precision) går att ta fram, men i detta fall, med ett så uppenbart behov av fler träningsbilder, fanns ingen anledning till detta.

4.5 Slutsats

Arbetspaket 4 har demonstrerat hur en 3D-sandprinter kan användas för att printa id- koder på sandformar och -kärnor som sedan direkt kan föras över till gjutna komponenter under själva gjutprocessen.

35

Genom att i gjutögonblicket märka varje komponent med en id-kod blir det möjligt att på digital väg sammanlänka komponenterna med deras produktionsdata och på så sätt dels åstadkomma spårbarhet på individnivå, och dels förbereda för avancerad dataanalys som kan hjälpa till att förbättra processen. En utmaning är dock att hitta en tillräckligt snabb och flexibel märkningsmetod. Med en 3D-sandprinter är det möjligt att under printning av sandformar och -kärnor mycket snabbt printa in t.ex. siffror eller QR-koder i ytorna på dessa. Koderna förs sedan över till de gjutna komponenternas ytor under gjutningen. I arbetspaket 4 utfördes praktiska tester med denna metod för att undersöka möjliga begränsningar, bl.a. huruvida koder printade på krökta ytor skulle klara överföringen. Dessutom undersöktes kodernas maskinella läsbarhet. För detta ändamål skapades två olika maskininlärningsbaserade modeller för avläsning.

Det kunde konstateras att den valda märkningsmetoden var mycket robust och har stor potential att införas på ett gjuteri som använder 3D-sandprinter i sin produktion. Även avläsningsmetoderna visade stor potential, trots att modellernas prestanda hämmades avsevärt av en i maskininlärningssammanhang mycket liten mängd bilddata.

I detta projekt testades märkningsmetoden visserligen endast i Xylems process, och det är inte givet att den är direkt överförbar till andra gjuterier då för metoden mindre gynnsamma processförhållanden skulle kunna råda där, men resultaten visar ändå att den har mycket stor potential.

Individmärkning av gjutna komponenter i kombination med maskinell avläsning har stor potential att möjliggöra inte bara spårbarhet på individnivå, utan också korrelationsanalys som kopplar processdata till kvalitet, vilket i förläningningen kan öppna upp för automatisk processtyrning. Arbetspaketets resultat bör därför med fördel kunna användas för att ytterligande stärka ett investeringsunderlag för en 3D- sandprinter.

Related documents