Beton is het meest gebruikte ‘artificiële’ materiaal in de wereld 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 een voorgaand artikel bespraken we hoe we aan de hand van artificiële intelligentie betonscheuren kunnen herkennen in gewone kleurenfoto’s. In dit artikel gaan we nog een stapje verder een lichten we toe hoe je scheuren kan projecten op een 3D-model van een betonstructuur.

Figuur 1 toont de workflow waarmee we scheuren kunnen detecteren, rapporten kunnen genereren (in pdf-formaat) en de gedetecteerde defecten opnieuw kunnen projecteren in een 3D-model. Het eerste blok is de inferentiemodule die de verkregen afbeeldingen verwerkt en de scheuren eruit haalt. De output van deze module is een zwart-wit masker voor elke afbeelding, waarin witte pixels de locatie van de gedetecteerde barst(en) in de originele afbeelding aangeven (zie figuur 2). Het tweede blok van de workflow gebruikt de eerdere resultaten (d.w.z. de maskers) en meet enkele kenmerken van de gedetecteerde scheuren (bijv. breedte, lengte, midden en oriëntatie …). In dit stadium wordt een proces uitgevoerd om valse positieven eruit te filteren (d.w.z. er wordt een scheur geïdentificeerd, terwijl het in werkelijkheid geen scheur is). Het verwijderen van de vals positieven wordt bereikt door de waarden van de gemeten kenmerken te vergelijken met verwachte waarden, b.v. het aantal pixels dat overeenkomt met een scheur moet hoger zijn dan een bepaalde drempel, de verhouding tussen de lengte en de breedte van een scheur moet tussen vooraf gedefinieerde grenzen liggen,…


Figuur 1 – Workflow to detect cracks, 3D reconstruction, and defect reprojection


Figuur 2 –
(Left) Raw image (Right) black and white mask for crack detection

Parallel aan de twee voorgaande blokken voor detectie en meting, wordt een 3D-model van het gescande object (bijv. gebouw) gereconstrueerd uit de afbeeldingen (derde blok) met behulp van fotogrammetrie. Fotogrammetrie is de techniek om meerdere overlappende afbeeldingen te maken en daaruit metingen af te leiden om 3D-modellen van objecten of scènes te maken. Het basisprincipe lijkt veel op de manier waarop je tegenwoordig met veel camera’s een panorama kunt maken door overlappende foto’s aan elkaar te naaien tot een 2D-mozaïek. Fotogrammetrie gaat nog een stap verder door de positie van de camera te gebruiken terwijl deze door de 3D-ruimte beweegt om de X-, Y- en Z-coördinaten voor elke pixel van de originele afbeelding te schatten; daarvoor is het ook bekend als structuur uit beweging.

Fotogrammetrie kan worden gebruikt om zeer nauwkeurige en realistisch getextureerde fotomodellen te maken van gebouwen, archeologische vindplaatsen, landschappen (als de beelden vanuit de lucht zijn genomen) en objecten. Zie ook deze artikelen over toepassingen van fotogrammetrie: 3D-scanning met drones: dé meettechniek van de toekomst in de bouw?, Fotogrammetrie als hulpmiddel voor off site productie, en Drones tillen thermische scans naar hoger niveau in combinatie met fotogrammetrie. Fotogrammetrie van gescande gebouwen met beelden van een drone biedt de mogelijkheid om zowel de gedetecteerde scheur in 3D opnieuw te projecteren als een hele reeks digitale metingen en manipulaties mogelijk te maken. De techniek wint steeds meer aan populariteit en wordt steeds meer gebruikt, omdat het indrukwekkende resultaten oplevert die vergelijkbaar zijn met geavanceerde laserscantechnologieën voor slechts een fractie van de kosten. Bovendien is het gemakkelijk te gebruiken en om aan de slag te gaan!

Om het proces van de 3D-reconstructie te illustreren, is er bij DronePort een constructie gebouwd (figuur 3) met een DJI-S900 en een ZenMuse X5-camera.

Figuur 3 – Inspected structure at Drone Port with the DJI S-900 drone

Voor de 3D-reconstructie wordt de tool ‘Meshroom’ gebruikt. Meshroom is een gratis, open-source 3D-reconstructiesoftware op basis van het AliceVision-framework. AliceVision is een PhotogrammetricComputer Vision Framework dat algoritmen voor 3D-reconstructie en cameravolging biedt. De volgende afbeelding toont de GUI van de Meshroom-tool, in de linkerbovenhoek van de GUI-secties: “images” en “image viewer” is een voorbeeld van de inhoud van de dataset zichtbaar. In het onderste gedeelte “grafiek-editor” worden de verschillende processen die worden gebruikt en hoe ze met elkaar verbonden zijn weergegeven. Het eindresultaat verkregen na de 3D-reconstructie is rechts zichtbaar, waarbij ook de relatieve cameraposities worden gevisualiseerd.

  

Figuur 3 – Meshroom GUI

Zoals te zien is, bevat de 3D-gereconstrueerde scène veel ruis. Om te focussen op de gerichte constructie, wordt een handmatig reinigingsproces uitgevoerd om de onnodige onderdelen te verwijderen. Afbeelding 4 toont de onbewerkte resultaten die zijn verkregen met de Meshroom en de opgeschoonde versie van het 3D-model. Op het moment van schrijven van deze blog (juli 2021) wordt de verwerking van het verwijderen van ongewenste punten handmatig gedaan met behulp van de ROI-selectietool die beschikbaar is in Open3D. Ideeën over het gebruik van CAD-bestanden (indien beschikbaar) of eerdere opgeschoonde scans worden onderzocht.

Figuur 4 – 3D reconstruction raw and cleaned version of the results

Zodra het gereconstrueerde 3D-model is schoongemaakt, kan de “schaal” of verhouding tussen de werkelijke grootte van de constructie en het gereconstrueerde 3D-model worden berekend door bijvoorbeeld de werkelijke hoogte van de constructie (in meters) te delen door de hoogte van het 3D-model van de structuur. Deze schaalparameter wordt gebruikt in de verdere stadia van de procesworkflow om de nauwkeurigheid van de scheurlocatie en -grootte te meten.

Scheuren mappen op het 3D-model

Met behulp van de resultaten die zijn verkregen uit de scheurdetectiemodule (dwz scheurlocatie in pixels (u,v)) en de uitvoer van de Meshroom-tool, dwz het gereconstrueerde 3D-model en de cameraposities [R|t] van de afbeeldingen die worden gebruikt in het proces van wederopbouw.

Om het proces van de 3D-mapping van 2D-pixelcoördinaten te begrijpen, moet men eerst het proces van beeldvorming begrijpen (waarin driedimensionale (3D) scènepunten worden geprojecteerd in tweedimensionale (2D) beeldvlaklocaties). Dit proces omvat twee delen. Het eerste deel is de geometrie (afgeleid van cameramodellen, bijv. pinhole-cameramodel, zie figuur 5) die bepaalt waar de projectie van een scènepunt zich in het beeldvlak zal bevinden. Het andere deel van beeldvorming, gerelateerd aan radiometrie, meet de helderheid van een punt in het beeldvlak als functie van verlichting en oppervlakte-eigenschappen.

Het geometriegedeelte gebruikt de volgende formule: P(2D) = (vervorming) K * [R | t ] P(3D), waar: vervorming, K: zijn de intrinsieke parameters van de camera. Deze waarden staan vast en worden verkregen via het camerakalibratieproces. Details over dit proces worden gepresenteerd in dit artikel “Waarom en hoe kalibreer ik best mijn camera voor automatische beeldherkenning?R en t: zijn respectievelijk de camerarotatie en -translatie (ook wel extrinsieke cameraparameters genoemd).

Figuur 5 – Pinhole camera model for 3D to 2D projection

In deze toepassing voor scheurdetectie is het omgekeerde nodig, wat betekent een achterwaartse projectie van 2D-pixelcoördinaten naar 3D. Dit is mogelijk met het omgekeerde van de bovenstaande formule, P(3D) =  inv([R|t]) inv(K) (onvervorming) P(2D). Het verkregen resultaat van deze formule is in homogene coördinaten, d.w.z. P(3D) = (X/Z, Y/Z, 1.0), omdat de diepte-informatie (Z) niet beschikbaar is. De pose (X, Y, Z) van de scheur komt overeen met het snijpunt van het 3D-model met de lijn die door het midden van de camera loopt en de initiële scheurlocatie op P(3D) = (X/Z, Y/Z, 1.0 ). In figuur 6 wordt het snijpuntresultaat weergegeven door een blauwe bal.

 

Figuur 6 – Example of 3D defect mapping from a 2D location

Schatting van de scheurlocatie op het 3D-model – Clustering en filtering

Omdat we alleen geïnteresseerd zijn in scheuren in de constructie, wordt elk gedetecteerd scheurcentrum geprojecteerd op het (opgeschoonde) 3D-model van de constructie. Degenen die de constructie niet kruisen, worden uitgefilterd en beschouwd als vals-positieve detecties. Door een gebouw (zoals de constructie die we bouwen) met een drone te inspecteren en meerdere foto’s te maken vanuit verschillende gezichtspunten, wordt een scheur in meerdere beelden vastgelegd en gedetecteerd, niet slechts één. Aangezien de projectie op het 3D-model wordt gedaan voor elk van de afbeeldingen waarop een scheur wordt gedetecteerd, betekent dit dat een scheur die op meerdere afbeeldingen wordt gedetecteerd, meerdere keren wordt geprojecteerd. Vanwege onzekerheden in de scheurdetectie en de schatting van de camerapositie, geven de herprojecties van dezelfde scheur van meerdere afbeeldingen niet hetzelfde exacte 3D-punt. De herprojecties van de waarden die worden verkregen, liggen echter vrij dicht bij elkaar, zoals te zien is in het voorbeeld in figuur 6. De rode stippen komen overeen met de resultaten van de herprojectie van dezelfde scheur uit meerdere afbeeldingen en de groene stip komt overeen met de locatie van de scheur die wordt verkregen door de rode stippen te clusteren en die voor het rapport zal worden gebruikt.​

 

Figuur 7 – Example of 3D defect mapping from a 2D location

 

Rapportering

Ten slotte, na het detecteren van de scheuren, het meten van hun kenmerken, het opnieuw projecteren ervan op het 3D-model en het uitfilteren van valse scheuren; er wordt automatisch een pdf-rapport gegenereerd met daarin het 3D gereconstrueerde model van de gescande constructie en de locatie van de scheuren in de constructie. Daarnaast bevat het rapport per gedetecteerde scheur extra details: een afbeelding waarop de scheur goed zichtbaar is, het totaal aantal afbeeldingen waarin de scheur is gedetecteerd, de pixels (u,v)-coördinaten op de afbeelding die voor de melding is gekozen , de 3D (x,y,z)-coördinaten van de scheur in de 3D-modelruimte, de breedte en lengte van de scheur in pixels en metereenheden. De onderstaande afbeelding toont een voorbeeld van de inhoud van het rapport.


Figuur 8 – Example of the report’s content

Evaluation Metrics: Accuracy and Processing Time

Met betrekking tot de nauwkeurigheid van de detector en het in kaart brengen van scheuren, werden in het bovenstaande voorbeeld de positie, lengte en breedte van de scheur aan de voorkant van de constructie gemeten en vergeleken met de waarden verkregen op het 3D-model na reconstructie. De fout in de positie van de scheur was ongeveer 2,2 cm en de fouten in de breedte en lengte van de scheur waren respectievelijk 0,7 mm en minder dan 2 cm. Onderstaande tabel geeft een overzicht van de grondwaarheidsmeting en de bijbehorende geschatte waarden.

En voor de verwerkingstijd is er een analyse uitgevoerd op twee verschillende hardware: een Jetson NX Xavier en een Dell laptop met intel i7, 16GB RAM en de NVIDIA GPU M2200 grafische kaart. Op beide werd de oorspronkelijke grootte van de afbeeldingen gebruikt (dwz 2250×4000 pixels) als invoer voor het netwerk van scheurdetectie. De verwerkingstijd van elk beeld op de pc was gemiddeld tussen de 2-3 seconden, terwijl dat op de Jetson NX tot 6-7 seconden was.

Wat betreft de onderdelen voor 3D-reconstructie en crack-reprojectie, deze twee verwerkingen worden alleen offline uitgevoerd op de Dell-laptop. De tabel geeft een overzicht van de verwerkingstijdresultaten.

Conclusie en uitdagingen

Tijdens de uitvoering van dit project zijn een aantal lessen geleerd, en dit zijn de drie belangrijkste:

  • Train uw netwerk altijd op relevante afbeeldingen, d.w.z. vergelijkbaar met wat wordt verwacht om een betere nauwkeurigheid te krijgen
  • Profiteer van kennis over het milieu en wat er wordt verwacht om de valse positieven eruit te filteren
  • Selecteer zorgvuldig het zichtsysteem (cameraresolutie/lens) om het gewenste kenmerk te detecteren (d.w.z. scheurgrootte) en het verwerkingsbord om de beoogde snelheid te bereiken (d.w.z. realtime)

In de eerste versie van de demo die in dit project is gebouwd, werden de drone en de camera beide handmatig bestuurd om de structuur te scannen. In de volgende demo werken we aan het automatiseren van zowel het traject van de drone rond de constructie als de camera. Daarnaast zijn we van plan te werken aan het optimaliseren van de implementatie van het algoritme voor scheurdetectie op de Jetson-NX om realtime verwerking te krijgen met Tensor-RT.

 

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