Beton is het meest gebruikte ‘artificiële’ materiaal in de wereld (https://en.wikipedia.org/wiki/Concrete) en is in alle soorten structuren terug te vinden; wegen, bruggen, gebouwen, … Echter, er zijn ook veel verschillende manieren waarop beton en gewapend beton kunnen falen. In dit artikel zullen we bekijken hoe we aan de hand van artificiële intelligentie één bepaald fout-type kunnen herkennen in gewone kleurenfoto’s, nl. betonscheuren.

Alhoewel dit zeker een grote droom is voor vele onderzoekers, bestaat er heden ten dage nog niet 1 AI-programma dat alles kan oplossen. Zo kunnen programma’s die stemcommando’s analyseren geen foto’s analyseren. Maar zelf al blijven we binnen één domein, zoals visie, dan is het programma dat de locatie van de individuele ledematen kan bepalen (bvb. voor een fitness tracker) niet hetzelfde als het programma dat 50 soorten honden kan onderscheiden.

Zo ook bij de detectie van betonscheuren, zijn er verschillende types algoritmes die we kunnen inzetten, waarbij elk type algoritme ook een andere output zal verschaffen. In het Coock-project [ref: https://euka.flandersmake.be/project/artificieel-intelligente-autonome-drones/], hebben we nader gekeken naar 2 types die vaak gebruikt worden in de literatuur:

  1. Een Classificatie-netwerk: dit type algoritme bekijkt de foto in zijn geheel en klasseert die dan in een beperkt aantal opties. Indien je enkel detail-foto’s geeft van probleemzones, zou een dergelijk netwerk dan bijvoorbeeld kunnen zeggen welk type fout er zichtbaar is. In de huidige toepassing, antwoordt het netwerk ja/nee of er een scheur zichtbaar is of niet.
  2. Een Segmentatie-netwerk: dit type algoritme zal het bovenstaande op pixel-niveau doen. Dat wil zeggen dat het algoritme voor elke pixel in de foto zal beslissen of dit een betonscheur is of niet.

Zoals onmiddellijk duidelijk zou moeten zijn, lijkt het tweede type netwerk gewoon meer informatie te geven dan het eerste. En met deze per-pixel informatie kunnen we uiteraard ook het volledige beeld klasseren als wel/geen scheur. Dus waarom zouden we nog naar het eerste type kijken? Het antwoord daarop, ligt in de hoeveelheid werk die je erin moet steken vooraleer je deze resultaten krijgt. Zoals vermeld in een vorig artikel (ref: https://euka.flandersmake.be/dataverzameling-voor-ai-waarom-diversiteit-van-beeldmateriaal-zo-belangrijk-is/), kunnen de meeste AI-algoritmes maar goed werken, eens het vele voorbeelden heeft gezien van een foto gecombineerd met de verwachte uitkomst. En het inkleuren door een mens op pixel-niveau van voorbeeldfoto’s voor een segmentatie netwerk, kost gemakkelijk een aantal minuten per beeld. Wetende dat je meerdere duizenden voorbeelden moet hebben voor een accuraat antwoord, wordt het al snel rendabel om genoegen te nemen met de minder gedetailleerde antwoorden die een classificatie-netwerk geeft.

 

Praktische aanpak
Wat zijn nu concreet de volgende stappen om betonscheuren te herkennen aan de hand van een classificatie- en een segmentatie-netwerk? Kort samengevat zijn er drie:

  1. Annoteren van de data:  Voor dit project, waar er geen commerciële belangen aan vasthingen, konden we een online beschikbare dataset gebruiken voor academische doeleinden. Deze dataset bestond uit een gedeelte met hand-geannoteerde classificatie uitkomsten, maar nog belangrijker ook per-pixel segmentatie resultaten.
  2. Selectie en trainen van een AI-algoritme: Het AI-onderzoeksgebied is heel actief maar vooral ook heel open over zijn resultaten. Als je op github (een soort online archiefkast voor software) op zoek gaat naar software om segmentatie uit te voeren dan krijg je >36k hits. Voor een iets meer gerichte zoektocht kan je bijvoorbeeld ook op https://paperswithcode.com kijken en daar staan ook 1903 algoritmes beschikbaar en vooral ook hoe goed ze scoren op publieke datasets. De resultaten die we hier zullen tonen, zijn ook gebaseerd op code die publiekelijk beschikbaar is.
  3. Uittesten van software op ongeziene data: AI-algoritmes kunnen heel veel dingen aanleren, maar waar er nog dikwijls problemen zijn is in het ‘generaliseren’ hiervan naar situaties die het algoritme nog niet gezien heeft. Hoe zal het algoritme bijvoorbeeld reageren op een foto van een donkere slang op een betonnen ondergrond? Bijgevolg moet ook altijd uitgetest worden hoe goed/robuust het programma is in het uiteindelijke applicatie-domein. Dit is zeker het geval indien de geannoteerde data niet noodzakelijk vanuit hetzelfde applicatie domein komt als het doel (zoals hier het geval).

 

Resultaten
Kijken we eerst naar de resultaten van het classificatie-netwerk, dan merken we uit een willekeurige selectie in de figuur hieronder op dat de meeste voorspellingen correct zijn, wat betreft wel/niet een scheur aanwezig in de figuur. De foute voorspellingen zijn aangegeven door een rood kader.

Enkele voorbeeld-resultaten voor het segmentatie netwerk worden aangegeven in de volgende figuur. In de twee linkse figuren wordt de scheur omgeven door een groene rand ter visualisatie en aan de rechterkant wordt er ook een lokale diktemeting doorgevoerd langs de scheur, wat uiteraard interessante informatie is om de ernst van de scheur te kunnen inschatten.

De resultaten voor beide algoritmes geven aan dat AI wel degelijk in staat is om scheuren te herkennen in betonoppervlaktes. Echter, er zijn enkele kanttekeningen bij te maken.

 

Limitaties
Het grootste deel van de dataset die gebruikt werd om het algoritme te trainen komt van opstellingen waarbij scheuren in een beton-wegdek moesten herkend worden. Bijgevolg betreft het foto’s genomen van dichtbij (ter hoogte van een aanhangwagentje) en altijd van een vlak oppervlak zonder 3D aspecten. Dit is wezenlijk anders dan foto’s nemen van meerdere meter afstand met een drone van een brug of gebouw. Kijken we bijvoorbeeld naar de foto hieronder, dan zien we de foutief aangeduide “scheur-regio’s” in rood die corresponderen met fijne objecten die normaal deel uitmaken van de ‘achtergrond’ van de foto en dus niet noodzakelijk iets te maken hebben met de betonnen structuur onder inspectie (e.g. een statief voor een foto-camera). Voor een mens lijkt dit een absurde vergissing, maar als we eerlijk zijn hebben we het algoritme inderdaad niet het verschil getoond tussen een camera-statief en een betonscheur, dus hoe had deze dit moeten weten…

Een tweede, meer subtiele, beperking van het algoritme betreft de resolutie van de gebruikte foto. Inderdaad, één van de redenen waarom AI enkel de laatste 5 jaar echt doorbreekt is door de verbetering van de grafische computerkaarten die nu de vereiste rekenkracht kunnen opbrengen. Echter, het maximaal aantal pixels in een foto, dat het algoritme aan kan, bedraagt typisch wel nog maar 512×512 pixels of, indien we een krachtige desktop ter beschikking hebben, 1000×1000 pixels. Echter, drone-gebaseerde inspectievluchten gebruiken typisch camera’s met veel meer pixels (gemakkelijk tot 25x meer), omdat deze toelaten om minder foto’s te nemen van een structuur voor een gegeven resolutie-target (zie https://euka.flandersmake.be/hoe-kies-ik-de-juiste-camera-voor-mijn-dronetoepassing). Dus daar is er zeker nog een discrepantie tussen wat camera-techniek aankan (>25MPix) en wat AI aankan (<1MPix). Het probleem met gewoon schalen van de beeldjes is natuurlijk dat fijne scheuren onzichtbaar kunnen worden (<1pix). Indien de originele resolutie behouden moet blijven, moet je bijgevolg een 25MPix beeld eerst onderverdelen in 25 1MPix beelden (sliding window techniek) vooraleer AI kan worden toegepast.

Echter, zoals zichtbaar in de middelste foto van de figuur hieronder, sommige scheuren lijken niet opgemerkt te worden indien de originele resolutie behouden blijft. Dit komt door het feit dat het algoritme ook een typische schaal voor een scheur heeft geleerd uit de voorbeeldenset. Indien alle ‘aangeleerde’ scheuren bijvoorbeeld tussen 1 en 20 pixels breed zijn, zal het algoritme niet weten wat hij moet doen met een donkere streep van 500 pixels breed. Ook op dit vlak, zal het dus van belang zijn dat de beelden die gebruikt worden voor de training een gelijkaardige schaal (pix/mm) hebben als de uiteindelijke beelden in de testvluchten (zie bvb. https://euka.flandersmake.be/camera-basics-hoe-bereken-ik-de-juiste-sensorresolutie-en-brandpuntsafstand). In de rechter-figuur, wordt de foto ook nog met de halve en een kwart-resolutie geanalyseerd door het schalen van de foto. Alle resultaten worden dan samengevoegd tot het finale resultaat hier getoond. Zoals zichtbaar, leid dit nu wel tot een goede detectie van alle scheuren.

Originele foto beschikbaar gesteld door SkyeBase.

 

Conclusie
Aan de hand van artificiële intelligentie algoritmes is het mogelijk om scheuren te herkennen in kleurenfoto’s. De nodige datasets en algoritmes zijn vrij te vinden op het internet en staan toe om de mogelijkheden hiervan te onderzoeken, mits de nodige kennis reeds is verworven om met dit type algoritmes om te gaan.

Echter, een feilloze toepassing in een bepaald applicatie-domein is heel sterk afhankelijk van hoe nauw verwant de trainingsdata is met het uiteindelijke doel. Zoals getoond zijn beelden genomen van enkel vlakke structuren niet voldoende om betrouwbare resultaten te geven voor complexe foto’s waar er voor- en achtergrond structuren zichtbaar zijn. Ook niet-beton objecten (metalen staven, planten, ..) kunnen het algoritme serieus in de war brengen.

Indien deze zaken echter in rekening worden gebracht bij de ontwikkeling van een algoritme, is AI in staat om pixel-precieze indicaties te geven van de locatie van de scheur. Hierdoor is het bijgevolg ook mogelijk om allerlei afgeleide metingen te doen, zoals scheurdikte langsheen de scheur of totale oppervlakte van de scheur. Deze metingen kunnen ook nauwkeurig gevolgd worden in de tijd, wat ongeziene mogelijkheden biedt in het beheren en opvolgen van beton infrastructuur.

Wil je zelf aan de slag met AI houdt dan zeker volgende puntjes in gedachten:

We kunnen bij elk van de bovenstaande puntjes ondersteuning bieden of advies geven, laat ons dus zeker weten indien je aan de slag wil met artificiële intelligentie!

 

Herbruikbaar resultaat
Het segmentatie en classificatie-netwerk dat hier besproken werd, kan je binnen Flanders Make op Confluence terugvinden op Concrete crack detection.

 

Scheurdetectie op basis van een 3D model
In een volgend artikel gaan we dieper in op hoe we de deze scheurdetectie toepassen om deze scheuren op een 3D model te visualiseren. Hou dus zeker onze website in de gaten of schrijf je in op onze nieuwsbrief in de gaten om hierover meer te lezen!

 

Auteur
SAM DEHAECK
Sam is een onderzoeker met ruime ervaring in optische metingen en beeldverwerking. Terwijl hij zich in zijn vorige projecten focuste op opmeten van verdampingsfenomenen en andere stromingsmechanica problemen, is hij bij Flanders Make de wondere wereld van de artificiële intelligentie binnengestapt.

Contacteer EUKA/Flanders Make voor meer informatie
Updates en nieuwe artikels ontvangen in je mailbox? Schrijf je dan snel in voor onze nieuwsbrief!

Pin It on Pinterest