TechTalk: Het detecteren van ongewenste onbewerkte gebieden

TechTalk: Het detecteren van ongewenste onbewerkte gebieden

SenseIT is gespecialiseerd in industriële meetsystemen waar betrouwbaarheid en validiteit een belangrijke rol spelen. Meestal zijn onze systemen redundant, dit wil zeggen dat elke calculatie of meting twee keer wordt uitgevoerd. Op deze manier worden uitschieters, veroorzaakt door ruis of optische effecten, geëlimineerd. Zo waarborgen we de accuraatheid van de meting.

Gewoonlijk vermijden we machine learning omdat het moeilijk is om te kwantificeren waarom een classificatiemodel op een bepaalde manier reageert. Zo’n model is als een black box waar je input in stopt en hoopt dat de output overeenkomt met je verwachting. Je weet nooit 100% zeker of het classificatiemodel aan de gang gaat met het aanleren van jouw oorspronkelijke idee.

Eén van onze klanten wil een systeem dat in staat is om onbewerkte gebieden in een CNC bewerkt oppervlak te detecteren. Normaalgesproken is een CNC oppervlak perfect glad (tot op micron precisie), terwijl een onbewerkt gebied een hoge structuurfrequentie met een z-tolerantie van +- 0.2 mm kent. Onze huidige 3D scanner meet binnen een range van 0.1 mm zodat we deze ongelijke gebieden kunnen detecteren. Door vloeistoffen en natuurlijke materiaalvariatie meet het systeem echter verstoringen die in dezelfde range als de onbewerkte gebieden vallen.

Daarom besloten we over te gaan op een andere aanpak: we gebruiken machine learning technieken om gebieden met hoge frequentie te onderscheiden van gebieden met lage frequentie. Met het menselijk oog zie je het verschil tussen bewerkte en onbewerkte gebieden gemakkelijk (figuur 1):

Figuur 1: Onbewerkt gebied (links) en bewerkt gebied (rechts)

Zoals je ziet heeft ook het bewerkte gebied een bepaalde structuur, maar deze komt geenszins overeen met de structuur van het onbewerkte gebied. Wat we willen is dat ons systeem gebieden detecteert die voor een deel onbewerkt zijn (figuur 2):

 

Figuur 2: Deels bewerkt/Deels onbewerkt gebied

Omdat we de kans op detectie van de onbewerkte gebieden zo hoog mogelijk willen, doen we de meting tweemaal op twee verschillende manieren. Allereerst proberen we gebieden met hoge frequentie in 3D te detecteren (figuur 3). Als we ongelijkmatigheden vinden, dan doen we een vergelijkbare meting in 2D. Wanneer beide classificatiemodellen een positieve uitkomst genereren kunnen we vrij zeker concluderen dat er sprake is van een onbewerkt gebied.

Figuur 3: Compleet onbewerkt gebied in 3D (links), compleet bewerkt gebied in 3D met kleine artefacten (rechts)

Op deze manier vullen we een database gevuld met onbewerkte, bewerkte en deels bewerkte oppervlaktes. Met een subsample van de onbewerkte oppervlaktes hebben we verschillende classificatiemodellen getraind: multilayer perception, support vector machine en gaussian mixture model. Het is uiteraard belangrijk om de juiste eigenschappen aan te leveren aan het model, daarom hebben we gebruik gemaakt van textuurwetten om specifieke patronen van een afbeelding te kunnen herkennen (figuur 4).

Figuur 4: Bepaalde (frequentie) eigenschappen uit een 3D-scan halen met behulp van textuurwetten

Na het trainen van de verschillende classificatiemodellen merkten we dat het gaussian mixture model ons de beste resultaten gaf. Waarschijnlijk omdat we slechts één classificatieklasse hadden.

We hebben de prestaties van de modellen getest op basis van de drie verschillende datasets, met het GMM waren we in staat om alle onbewerkte en half-bewerkte gebieden te detecteren. Ongeveer 10% van de bewerkte gebieden werd door het model opgemerkt (false positives), op dit moment proberen we een manier te vinden om dit percentage om laag te halen.

Een aantal resultaten:

  

Figuur 5: Onbewerkte gebieden worden correct gedecteerd (gedetecteerde gebieden worden in rood weergeven)

Figuur 6: Onbewerkte gebieden worden correct gedetecteerd op half-bewerkte oppervlaktes (gedetecteerde gebieden worden in rood weergeven)

Figuur 7: Er worden geen onbewerkte gebieden gedetecteerd in de 100% bewerkte gebieden (gedetecteerde gebieden worden in rood weergeven)

Conclusie: In de eerste tests hebben we al goede resultaten gevonden. Toch vinden we het nodig om de classificatie-variabelen te optimaliseren om de false positives zo veel mogelijk terug te brengen.