KAHO St-Lieven GENT Thomas More Mechelen 3D PHOTOGRAMMETRY FOR SURVEYING ENGINEERING IWT TETRA project
3D4SURE Werkpakket 4.1 Evalueren van de 3D modellen
Auteurs:
IWT-TETRAproject
Jasper Wisbecq Björn Van Genechten
KaHo Sint-Lieven KaHo Sint-Lieven 3D4SURE
1·24
INHOUDSOPGAVE 1. 2.
INLEIDING ................................................................................................................... 3 VERGELIJKING FOTOGRAMMETRIE EN LASERSCANNING .......................................... 4 2.1. Zandgroeve uit WP. 2.2 ....................................................................................... 4 2.2. Onze-Lieve-Vrouwkerk Alsemberg uit WP. 2.4 ................................................... 5 3. INVLOED KALIBRATIE .................................................................................................. 6 3.1. Inleiding .............................................................................................................. 6 3.2. Kalibratiemethodes............................................................................................. 7 3.3. Fotografisch model ............................................................................................. 7 3.4. Self-Calibration.................................................................................................... 8 3.5. Testen .................................................................................................................. 9 3.6. CONCLUSIE SELF-CALIBRATION ......................................................................... 15 4. VERSCHIL IN ORIËNTATIE TUSSEN SOFTWARE PAKETTEN ........................................ 15 5. INVLOED TEXTUUR OP 3D-EINDRESULTAAT ............................................................. 17 5.1. Invloed textuur.................................................................................................. 17 5.2. Entropie-tool ..................................................................................................... 18 5.3. Voorbeeld tool .................................................................................................. 19 6. BIBLIOGRAFIE ........................................................................................................... 19 7. APPENDIX ................................................................................................................. 21
IWT-TETRAproject
3D4SURE
2·24
1. INLEIDING In het eerste deel van dit rapport wordt de kwaliteit van de bekomen fotogrammetrische 3Dmodellen uit de cases geëvalueerd. Laserscanning heeft zijn waarde al veelvuldig bewezen voor het verzamelen van dense 3D-opmetingen en kan beschouwd worden als referentietechniek. 3D fotogrammetrie is uit economisch oogpunt interessanter, maar zal slechts een valabel alternatief kunnen bieden als het de laserscan data ook nauwkeurig kan benaderen. Daarom werden voor de volumemeting- en erfgoedcase de bekomen fotogrammetrische 3D-modellen vergeleken met die op basis van laserscanning. In de volgende onderdelen van het rapport worden de doelen en resultaten van kleine testen besproken, die als opzet hadden om inzichten te verschaffen in bepaalde factoren die de nauwkeurigheid beïnvloeden. Het gaat hier om de gebruikte kalibratie, verschillen in oriëntatie tussen softwarepakketten en invloed van textuur.
IWT-TETRAproject
3D4SURE
3·24
2. VERGELIJKING FOTOGRAMMETRIE EN LASERSCANNING Allereerst wordt de kwaliteit van de bekomen fotogrammetrische 3D-modellen vergeleken met die van laserscanning. In CloudCompare kunnen eenvoudig deviaties berekend worden tussen twee meshes en/of puntenwolken. Dit werd zowel voor de zandgroevecase, als voor de Alsemberg erfgoedcase geanalyseerd. 2.1. Zandgroeve uit WP. 2.2 De zandwand werd op het moment van het verzamelen van de foto’s ook gescand met de Leica Scanstation 2 pulsscanner. De deviaties tussen de fotogrammetrische puntenwolk uit Photoscan en de mesh op basis van de laserscan werden berekend.
Figuur 1: Deviaties zandgroeve (m), interval [-2,2cm]
De deviaties tussen de puntenwolk en de mesh zijn overal kleiner dan 1cm (groen/gele kleur). Dit wijst erop dat naar nauwkeurigheid toe de fotogrammetrische opmeting een geldig alternatief kan vormen voor laserscanning. De volgende figuur toont dat de deviaties voor het merendeel van de stukken zelfs kleiner zijn dan 5mm, enkel voor het linkse stuk liggen de deviaties rond 1cm.
IWT-TETRAproject
3D4SURE
4·24
Figuur 2: Deviaties Zandgroeve detail (m), , interval [-1,1cm]
2.2. Onze-Lieve-Vrouwkerk Alsemberg uit WP. 2.4 De dataset van de Onze-Lieve-Vrouwkerk Alsemberg, bestaande uit de combinatie van terrestrische en (oblieke) UAV-foto’s, werd zowel met Agisoft Photoscan als met Pix4Dmapper verwerkt. Terug worden de bekomen 3D-modellen (mesh) vergeleken met een mesh op basis van laserscanning. De zuidgevel werd gescand vanuit 5 stations met een Leica ScanStation2 pulsscanner. De analyse van de deviaties gebeurt voor beide softwarepakketten. De deviaties worden getoond in figuren 3 en 4. Voor de mesh van Photoscan blijken de deviaties te variëren tussen 0 en 2 cm met enkele uitschieters. De rode lijnen op de deviatieplots worden veroorzaakt door schaduw en reflecterende ramen. De deviaties van Pix4Dmapper tonen een minder nauwkeurig resultaat. Alhoewel er terug zones te vinden zijn met een 0-2cm deviatie, zijn er ook wat zones met een deviatie tussen 24cm. Voor beide pakketten blijken de resultaten op het dak van de toren slecht, maar dit lijkt logisch gezien de repetitiviteit en de homogene kleur. Het uiterst rechtse deel behoorde niet tot de studie.
Figuur 3: Alsemberg deviaties, interval [-4,4cm] IWT-TETRAproject
3D4SURE
5·24
Figuur 4: Alsemberg deviaties detail, interval [-4,4cm]
3. INVLOED KALIBRATIE 3.1. Inleiding Om aan 3D-reconstructie te kunnen doen, moet de gebruikte camera gekalibreerd worden. Deze kalibratie beschrijft de manier waarop de beeldpunten worden geprojecteerd op de sensor. De niet metrische camera’s die tegenwoordig in de fotogrammetrie veelvuldig worden gebruikt, introduceren aanzienlijke vervormingen in hun afbeeldingen. Na kalibratie kan men deze vervormingen gaan corrigeren. Camerakalibratie heeft een sterke en rechtstreekse invloed op de nauwkeurigheid van de 3D-reconstructie. Er zijn interne en externe kalibratieparameters. De interne parameters beschrijven de projectie van de 3D-scene op de sensor, terwijl de externe parameters de relatie tussen het camera coördinatensysteem en het absolute coördinatensysteem beschrijven. Samen maken ze het mogelijk de posities van de camera tijdens de foto-acquisitie te schatten. De interne parameters vormen de intrinsic calibration matrix, die bestaat uit:
Met de focale lengte f opgesplitst in componenten voor de beide assen van de sensor f u en fv, s de skew en (u0, v0) de locatie van het principale punt op de sensor (snijpunt optische as en sensor). Deze set van parameters wordt aangevuld met distorsieparameters. Er is enerzijds radiale distorsie δr, waarbij de locatie van een beeldpunt wordt vervormd in functie van zijn afstand tot het principale punt. Deze kan worden beschreven door de 3 parameters k1, k2 en k3. Anderzijds is er tangentiële distorsie δtu+ en δtv met parameters p1 en p2, waarbij de vervorming wordt veroorzaakt door de niet-collineariteit van de verschillende lenzen van het lenzenstelsel.
IWT-TETRAproject
3D4SURE
6·24
Structure-from-motion softwarepakketten, zoals Photoscan en Pix4D, doen aan autokalibratie (of self-calibration). Hierdoor hoeft de gebruiker vooraf zijn camera niet te kalibreren. De kalibratie gebeurt aan de hand van de foto’s die dienen voor de 3Dreconstructie. Deze kalibratie, op basis van pixelcorrespondenties, kan de kwaliteit van een degelijke voorafgaande traditionele kalibratie echter niet altijd benaderen. Bijgevolg dient er voorzichtig mee omgesprongen te worden. 3.2. Kalibratiemethodes Wang et al. (2008) splitsen de kalibratiemethodes op in twee soorten. Er zijn enerzijds de traditionele methodes met kalibratieobject en anderzijds de self-calibration methode (zonder kalibratieobject). De nauwkeurigheid van self-calibration is volgens hen vaak ontoereikend. Bij de traditionele methodes kan men gebruik maken van een 3D-object of van een planair object (Figuur 5). Door het vergelijken van de gekende geometrie met de waargenomen foto’s van het kalibratieobject kan men de parameters schatten. Hiervoor zijn er verschillende algoritmes beschikbaar (DLT, Tsai, Heikkila, Zhang Zhengyou, …) . Een 3D-object geeft nog steeds de beste resultaten, maar een planair object is goedkoper, makkelijker inzetbaar en er gaat ook veel onderzoek naar uit binnen de computervisie.
Figuur 5: 3D-object en planair object Remondino & Fraser( 2006)
3.3. Fotografisch model Voor een traditionele kalibratie dienen er meerdere foto’s van het kalibratieobject vanuit meerdere standpunten te worden genomen. De manier waarop de foto’s worden genomen is zeer belangrijk voor de resultaten. Enkele parameters zijn onderling sterk gecorreleerd. Om de focale lengte goed te kunnen onderscheiden van enkele distorsiecomponenten zijn er foto’s vanaf verschillende vizierafstanden nodig. Om radiale en tangentiële componenten te kunnen onderscheiden dient de camera geroteerd te worden. Daarom zijn er ook telkens enkele foto’s nodig met de camera geroteerd op +90° en -90°. Fraser (2012) geeft aan dat de polynomiale termen van de radiale distorsie slecht IWT-TETRAproject
3D4SURE
7·24
kunnen extrapoleren. De distorsie moet dan ook voor de gehele sensor kunnen worden beschreven. Voor goede resultaten dient het kalibratieobject bijgevolg de volledige sensor zo goed mogelijk te bedekken gezien distorsie het opvallendst is aan de randen. Er dient aandacht uit te gaan naar de scherptediepte om het kalibratieobject voldoende scherp in beeld te krijgen. Gezien de korte afstand tussen camera en object (om het object sensor vullend te krijgen), zal men voor de gekozen vaste focale lengte (lens en focus) het diafragma moeten aanpassen. Men dient de focus zoals op het terrein (meestal oneindig) in te stellen. 3.4. Self-Calibration Bij zelf-kalibratie kan men op basis van pixelcorrespondenties tussen foto’s de intrinsieke en de distorsieparameters van een bewegende camera schatten. Deze materie wordt behandeld in Fraser (2013). De wiskundige basis van de self-calibration zijn de uitgebouwde collineariteitsvergelijkingen. Deze geven de relatie tussen de pixelcoördinaten (x,y) van een punt op de sensor en de wereldcoördinaten(X,Y,Z) van het punt in de realiteit. Uitgebouwde collineariteitsvergelijkingen:
Met:
xp en yp de pixelcoördinaten van het principale punt c de focale lengte Δx en Δy de termen van de totale distorsie (Xc, Yc, Zc) de wereldcoördinaten van het perspectieve centrum
Deze vergelijkingen worden voor alle correspondentiepunten uitgeschreven en opgelost in een bundle procedure. Er zijn echter enkele combinaties van bewegingen die geen ondubbelzinnige camerakalibratie toelaten. Deze bewegingen worden degenerate configurations of critical motion sequences genoemd. Sturm (2002) somt de critical motions op die voor problemen zorgen bij de eenduidige bepaling van de focusafstand: 1. Een zuivere translatie van de camera: de optische as blijft evenwijdig tijdens de verplaatsing. 2. Collineaire optische centra: Met andere woorden een zuiver voorwaartse translatie. Een rotatie enkel rond de optische as volstaat niet om dit op te lossen. 3. Verplaatsing langsheen een ellips of een hyperbool Wu bestudeert critical motion sequences voor de bepaling van radiale distorsie. Dit zijn: 1. Zuivere rotatie rond de optische as 2. Zuivere translatie langsheen de optische as 3. Combinatie van beiden IWT-TETRAproject
3D4SURE
8·24
3.5. Testen Gezien de groeiende tendens van het gebruik van self-calibration in fotogrammetrie leek het interessant om de resultaten van enkele voorafgaande traditionele kalibraties te vergelijken met de zelf-kalibraties die Photoscan en Pix4D aanbieden. De resultaten worden doorvertaald naar de 3D-nauwkeurigheid van enkele controlepunten.
Figuur 6: Protestantse Rabotkerk IWT-TETRAproject
3D4SURE
9·24
De testmuur is de voorgevel van de Protestantse Rabotkerk in Gent. Deze gevel is vrij vlak, met een maximaal diepteverschil van 10cm (vier steunberen). Het convergerend fotonetwerk bestond uit 20 foto’s, grotendeels op een lijn evenwijdig aan het gevelvlak genomen (8m) met verschillende roll-hoeken (0 en +90°). Om problemen rond critical motion sequences te vermijden werden ook 3 foto’s genomen met een verschillende vizierafstand. De foto’s werden genomen met een CANON EOS 5D toestel met 24-70mm lens. De lens werd ingesteld op 24mm en zowel de focusafstand als de scherpstelrand (∞) werden vastgeplakt zodat deze constant zouden blijven tijdens de pre-kalibraties en het terreinwerk.
Figuur 7: Fotonetwerk
De verschillende kalibraties die werden bekeken zijn: 1. Self-Calibration Photoscan 2. Pre-kalibratie: Camera Calibration Toolbox for Matlab (schaakbordpatroon) 3. Pre-kalibratie: OpenCV (asymmetrisch schaakbordpatroon) 4. Pre-kalibratie: Agisoft Lens (schaakbordpatroon op computerscherm) 5. Pre-kalibratie: PhotoModeler (Multi sheet coded targets) 6. Pre-kalibratie: door parameters van eerdere self-calibration van fotoset van object met veel 3D-variatie te gebruiken als initiële waarden 7. Self-Calibration Pix4Dmapper De coded targets van PhotoModeler werden zowel op een vloer verspreid als rond een hoek tussen twee muren. Hierbij werd er gehoopt op betere resultaten bij de muren met hoek, gezien er meer 3D –informatie aanwezig was. IWT-TETRAproject
3D4SURE
10·24
Figuur 8: Coded targets op vloer en in hoek
De parameters van de pre-kalibraties werden in Photoscan ingevoerd, vooraleer de foto’s werden georiënteerd. Men kan deze parameters vast (fixed) of vrij beschouwen. Indien ze vrij worden gekozen, dan worden de ingevoerde waarden enkel als initiële waarden beschouwd en worden ze verder geoptimaliseerd tijdens de bundle oriëntatieprocedure. Resultaten in Tabellen 1, 2 en 3: Wanneer men naar de gemiddelde deviaties op de 10 controlepunten kijkt, valt op dat de twee zelf-kalibraties vrij goed presteren (7,9mm en 7,3mm 3D-deviatie). De prekalibraties doen doorgaans slechter (1,23cm voor Matlab, 1,99cm voor OpenCV en1,61cm voor Lens). De pre-kalibraties uit PhotoModeler presteren wel beter (1,02cm en 0,74cm). Deze kalibraties zijn dan ook gebaseerd op 3D-objecten (multi-sheet coded target objecten) in plaats van op planaire (schaakbord) objecten. De beste deviaties worden echter behaald wanneer men de waarden van sommige pre-kalibraties (OpenCV, parameters eerdere self-calibration of PhotoModeler) als initiële waarden meegeeft, en deze nadien worden verfijnd in de bundle. Alhoewel de kalibratieparameters uit de OpenCV-kalibratie oorspronkelijk de slechtste resultaten leverden, leveren ze na verfijning de kleinste deviaties. Voor elke parameter werd het verschil ten opzichte van de verfijnde OpenCV waarden opgenomen. In Photoscan is het ook mogelijk om op basis van enkele 3D GCP’s de kalibratie nig verder te gaan optimaliseren (OPTIMIZED), maar gezien de goede kwaliteit van de reeds geoptimaliseerde parameters bleek dit niets meer toe te voegen.
IWT-TETRAproject
3D4SURE
11·24
Tabel 1: Kalibratieparameters per type kalibratie fx(px)
fy(px)
cx(px)
cy(px)
k1
k2
k3
p1
p2
Photoscan self-calibration
3827,73
3827,73
2810,38
1836,14
-0,123074
0,110729
NA
NA
Matlab pre-kalibratie (FIXED)
3840,0477
3834,5903
2818,3042
1817,6503
-0,11619
0,08233
0,00880176 0,00000
-0,001340
0,000470
Matlab pre-kalibratie (VRIJ)
3827,5300
3822,0900
2829,3800
1805,8800
-0,1233
0,1041
-0,0037
-0,001340
0,000470
OpenCV pre-kalibratie (FIXED)
3829,2000
3828,6700
2808,9100
1849,2400
-0,1320
0,0952
NA
0,000629
-0,000181
OpenCV pre-kalibratie (VAST)
3831,1300
3830,6000
2807,7000
1843,2400
-0,1232
0,1069
-0,0069
0,000629
-0,000181
Lens pre-calibratie (FIXED)
3842,9200
3842,7800
2806,3100
1846,2600
-0,1242
0,0857
-0,0135
0,000046
-0,000415
Lens pre-calibratie (VRIJ)
3829,04
3828,9
2804,55
1836,26
-0,12302
0,108462
0,000046
-0,000415
PhotoModeler Coded pre-kaliratie VLOER (FIXED)
3841,8000
3839,9500
2812,8500
1838,4900
-0,1234
0,1098
0,00974524 -0,0182
-0,000034
-0,000153
PhotoModeler Coded pre-kaliratie VLOER(VRIJ)
3829,0300
3827,1800
2811,1700
1832,2700
-0,1229
0,1061
-0,0065
-4,00E-05
-0,000153
PhotoModeler Coded pre-kaliratie MUUR(FIXED)
3832,0700
3831,5500
2808,9600
1835,4800
-0,1226
0,1077
-0,0185
-0,000148
-7,40E-05
PhotoModeler Coded pre-kaliratie MUUR(VRIJ)
3827,3000
3826,7800
2809,6500
1832,7400
-0,1231
0,1075
-0,0085
-0,000148
-7,40E-05
Pre-kalibratie adhv parameters eerdere self-calibration (VRIJ)
3827,31
3827,31
2809,65
1835,32
-0,123217
0,107889
NA
NA
Pix4Dmapper self-calibration
3830,8241
3830,8241
2805,1964
1832,5308
0,11477906
3826,6400
3827,4000
2807,2000
1835,3400
0,12419860 -0,1229
0,00881365 0,01681902 -0,0085
0,00019774 -6,14E-05
0,0002144 -0,00014
Pre-kalibratie (OPTIMIZED)
IWT-TETRAproject
adhv
parameters
eerdere
self-calibration
3D4SURE
12·24
0,1073
Tabel 2: Verschillen met beste kalibratie DELTA
Δfx (px)
Δfy(px)
Δcx(px)
Δcy(px)
Δk1
Δk2
Δk3
Δp1
Δp2
Photoscan self-calibration
-1,31
-1,17
5,83
-0,12
-5,400E-05
2,267E-03
9,435E-04
NA
NA
Matlab pre-kalibratie (FIXED)
11,01
5,69
13,75
-18,61
6,830E-03
-2,613E-02
9,745E-03
-1,386E-03
8,851E-04
Matlab pre-kalibratie (VRIJ)
-1,51
-6,81
24,83
-30,38
-2,360E-04
-4,383E-03
5,996E-03
-1,386E-03
8,851E-04
OpenCV pre-kalibratie (FIXED)
0,16
-0,23
4,36
12,98
-8,991E-03
-1,327E-02
NA
5,828E-04
2,342E-04
OpenCV pre-kalibratie (VAST)
2,09
1,70
3,15
6,98
-1,440E-04
-1,519E-03
2,810E-03
5,828E-04
2,342E-04
Lens pre-kalibratie (FIXED)
13,88
13,88
1,76
10,00
-1,142E-03
-2,277E-02
-3,756E-03
-4,000E-10
0,000E+00
Lens pre-kalibratie (VRIJ)
0
0
0
0
0
0
0
0
0
PhotoModeler Coded pre-kalibratie VLOER (FIXED)
12,76
11,05
8,30
2,23
-3,580E-04
1,377E-03
-8,445E-03
-8,001E-05
2,624E-04
PhotoModeler Coded pre-kalibratie VLOER(VRIJ)
-0,01
-1,72
6,62
-3,99
9,400E-05
-2,380E-03
3,238E-03
-8,598E-05
2,624E-04
PhotoModeler Coded pre-kalibratie MUUR(FIXED)
3,03
2,65
4,41
-0,78
4,530E-04
-8,000E-04
-8,745E-03
-1,940E-04
3,412E-04
PhotoModeler Coded pre-kalibratie MUUR(VRIJ)
-1,74
-2,12
5,10
-3,52
-3,000E-05
-9,980E-04
1,231E-03
-1,940E-04
3,412E-04
Pre-kalibratie adhv parameters eerdere self-calibration (VRIJ)
-1,73
-1,59
5,10
-0,94
-1,970E-04
-5,730E-04
9,316E-04
NA
NA
Pix4Dmapper self-calibration
1,78
1,92
0,65
-3,73
-1,179E-03
6,317E-03
-7,074E-03
-2,438E-04
2,007E-04
-2,40
-1,50
2,65
-0,92
1,410E-04
-1,159E-03
1,200E-03
-1,074E-04
2,782E-04
Pre-kalibratie (OPTIMIZED)
IWT-TETRAproject
adhv
parameters
eerdere
self-calibration
3D4SURE
13·24
Tabel 3: Deviaties met referentiewaarden (m)
│dX│ (m) Photoscan self-calibration 0,0048 Matlab pre-kalibratie (FIXED) 0,0069 Matlab pre-kalibratie (VRIJ) 0,0039 OpenCV pre-kalibratie (FIXED) 0,0161 OpenCV pre-kalibratie (VAST) 0,0045 Lens pre-calibratie (FIXED) 0,0133 Lens pre-calibratie (VRIJ) 0,0040 PhotoModeler Coded pre-kaliratie VLOER (FIXED) 0,0056 PhotoModeler Coded pre-kaliratie VLOER(VRIJ) 0,0043 PhotoModeler Coded pre-kaliratie MUUR(FIXED) 0,0041 PhotoModeler Coded pre-kaliratie MUUR(VRIJ) 0,0037 Pre-kalibratie adhv parameters eerdere self-calibration (VRIJ) 0,0034 Pix4Dmapper self-calibration 0,0052 Pre-kalibratie adhv parameters eerdere self-calibration 0,0033 (OPTIMIZED)
IWT-TETRAproject
3D4SURE
│dX│ (m) 0,0031 0,0049 0,0046 0,0036 0,0027 0,0034 0,0020 0,0042 0,0028 0,0031 0,0029 0,0028 0,0024 0,0028
14·24
│dX│ (m) 0,0043 0,0066 0,0061 0,0061 0,0025 0,0054 0,0024 0,0055 0,0038 0,0040 0,0033 0,0040 0,0036 0,0041
d3D (m) 0,0079 0,0123 0,0098 0,0199 0,0063 0,0161 0,0056 0,0102 0,0070 0,0074 0,0065 0,0064 0,0073 0,0065
3.6. CONCLUSIE SELF-CALIBRATION Self-calibration presteert vrij goed bij convergerende SfM fotosets. Indien men critical motion sequences vermijdt en niet te maken krijgt met zeer repetitieve patronen blijkt de self-calibration betrouwbaar. Nog betere resultaten kan men behalen indien men vertrekt van een goede set initiële waarden voor de kalibratie parameters, op basis van een degelijke pre-kalibratie of op basis van self-calibration parameters uit een eerder succesvol project met veel 3D-variatie, en deze vervolgens laten optimaliseren in de bundle procedure. Deze werkwijze zal ook bij repetitieve patronen goede resultaten geven.
4. VERSCHIL IN ORIËNTATIE TUSSEN SOFTWARE PAKETTEN Voor deze eenvoudige test was het de bedoeling om na te gaan of er verschillen bestaan tussen de oriëntatieprocedures van Photoscan, Pix4Dmapper en PhotoModeler. Hiervoor werd er een testmuur geselecteerd met 20 checkerboard targets en 20 coded targets (van Photoscan). Deze targets werden in beide kijkerstanden met een totaalstation opgemeten. In Photoscan is het mogelijk om de foto’s te oriënteren enkel en alleen op basis van coded targets. Deze coded targets worden heel precies herkend door de software. Op deze manier dachten we een referentieset te creëren van de orientatieparameters. De 20 extra checkerboard targets laten toe om de kwaliteit van de oriëntatie, die wordt doorgetrokken tot de 3D-nauwkeurigheid van de reconstructie, na te gaan. Er werden 19 foto’s genomen met een CANON EOS 5D en 24mm lens. Dit vanuit verschillende standpunten en met verschillende roll-hoeken. Samen met het feit dat de muur genoeg 3D-informatie en textuur vertoont, laat dit een goede self-calibration van de camera toe. In de drie softwarepakketten werd voor de 19 foto’s de standaard automatische oriëntatieprocedure doorlopen en nadien werden de 20 checkerboard controlepunten gereconstrueerd door ze manueel aan te duiden op alle voorkomende foto’s. De 20 coded targets werden gebruikt om de bekomen modellen te transformeren naar het coördinatensysteem van de totaalstationmeting. In PhotoModeler gaven de reconstructies met automatische self-calibration slechte nauwkeurigheden. Daarom werd voor PhotoModeler eerst een voorafgaande kalibratie uitgevoerd (multi-sheet coded targets calibration).
IWT-TETRAproject
3D4SURE
15·24
Figuur 9: testveld oriëntatieproef
De bekomen XYZ-posities en oriëntatiehoeken blijken voor de drie softwarepakketten geleidelijk te verschillen. De waarden van PhotoModeler wijken gemiddeld sterker af van die van Photoscan, dan Pix4D t.o.v. Photoscan. Tabel 4: Gemiddelde deviaties van de oriëntatieparameters voor de 19 foto's
Photoscan vs. Pix4Dmapper Photoscan vs. PhotoModeler Pix4DMapper vs. PhotoModeler
dX(m) dY(m) dZ(m) d3D(m) dΩ(°) dφ(°) dκ(°) 0,0018 0,0013 0,0014 0,0030 0,1101 0,0263 0,0875 0,0055 0,0045 0,0020 0,0085 0,2349 0,0717 0,2195 0,0069 0,0051 0,0018 0,0100 0,1671 0,0810 0,1642
Voor de deviaties op de gemeten controlepunten blijken de 3 softwarepakketten gelijkaardige nauwkeurigheden te halen. Voor de beoogde set met referentiewaarden uit Photoscan worden dezelfde nauwkeurigheden gehaald, daarom werd deze verder niet als referentieset beschouwd. Er kan dus moeilijk besloten worden welk pakket de beste oriëntatie uitvoert. Tabel 5: Gemiddelde deviaties 20 controlepunten
│dX(m)│ │dY(m)│ │dZ(m)│ d3D(m) Photoscan 0,0012 0,0015 0,0004 0,0021 Pix4Dmapper 0,0012 0,0014 0,0004 0,0021 PhotoModeler 0,0010 0,0013 0,0005 0,0019
IWT-TETRAproject
3D4SURE
16·24
5. INVLOED TEXTUUR OP 3D-EINDRESULTAAT 5.1. Invloed textuur 3D Fotogrammetrie wordt steeds vaker door leken gebruikt en meestal wordt er uitgegaan van een vrij accuraat en betrouwbaar resultaat. De nauwkeurigheid van het resultaat is sterk afhankelijk van de aanwezige textuur in een gebied. Voor zones met een lage textuur kunnen er gaten in de puntenwolk ontstaan of zal de betrouwbaarheid dalen. Meestal krijgt men in de huidige pakketten echter geen indicatie van deze dalende nauwkeurigheid/betrouwbaarheid. Deze invloed werd eerst onderzocht aan de hand van een laboproef. Er werd een monotoon contrastarm testveld opgesteld, bestaande uit 2 sferen en een doos. Op deze testobjecten werd een random patroon geprojecteerd met een beamer om zo een hoge graad van textuur te simuleren. Het testveld werd gescand met een laserscanner. De bekomen fotogrammetrische puntenwolk met en zonder textuur werd met de scan vergeleken.
Figuur 10: Textuurrijk (links) en –arm (rechts) testveld
Figuur 11: Vergelijking met laserscan, interval [-1, 1]cm
Voor de textuurrijke scene zien we voor Agisoft Photoscan en Pix4Dmapper vrij goede resultaten, met deviaties tussen 0 – 3,75mm, en meestal <2mm voor de sferen en <1mm voor de doos (Figuur 11). VisualSFM met CMVS/PMVS levert minder goede resultaten. De oppervlakken zijn minder glad, wat zich uit in meer zones met deviaties tussen 2 – 3,75mm. Er zijn ook al enkele gaten in de sferen. Voor de textuurarme scene zien we slechte resultaten. Agisoft Photoscan is duidelijk minder gevoelig voor contrast, gezien het veel meer punten reconstrueert. Er zijn wel heel wat gaten in de sferen en de reconstructie is vaak slecht. De doos lijkt echter nog goed gereconstrueerd te worden. Pix4Dmapper en VisualSFM presteren echter beduidend slechter. Enkel de randen van de sferen worden gereconstrueerd en dit IWT-TETRAproject 3D4SURE 17·24
gebeurt met grotere deviaties. 5.2. Entropie-tool De mogelijkheid voor het ontwikkelen van een kleine tool werd onderzocht, die op basis van de entropie in een beeld een benaderende voorspelling kan geven van hoe de reconstructie er zal uitzien. De vraag of zones met lage textuur nog gereconstrueerd worden is afhankelijk van het gebruikte algoritme, maar de tool zal aangeven waar de reconstructie vrij betrouwbaar zal zijn en waar niet betrouwbaar/niet mogelijk. Op deze materie werd verder gegaan in Altena (2014), waar er een kwantitatieve analyse gebeurt van de betrouwbaarheid van textuurloze punten op basis van een probabilistisch model. Binnen de fotogrammetrie zijn er vandaag de dag meerdere stromingen van algoritmes voor het dense reconstrueren van puntenwolken. Algemeen komt het neer op: 1. Lokale methodes (venster rond pixel op ene beeld wordt vergeleken met venster rond pixel op andere beeld, oude snelle methode maar kans op fouten) 2. Globale methodes (volledige beelden worden beschouwd, traag maar accuraat) 3. Semi-globaal (compromis beide methodes) De tool bestaat uit een entropiefilter, die het beeld met een kernel overloopt om zo per pixel te gaan bepalen hoeveel variatie er in zijn onmiddellijke omgeving aanwezig is. Dit gebeurt door de standaardafwijking van de grijswaarde binnen de kernel te berekenen. Een hoge standaardafwijking betekent veel variatie (en dus textuur), een lage betekent een monotone zone. Textuurloze zones zullen op het entropiebeeld een waarde 0 hebben. Met een drempel rond 0 kan men het entropiebeeld makkelijk omzetten naar een opdeling tussen textuurrijke en -arme zones. Algoritmes uit huidige softwarepakketten kunnen vaak hun puntenwolk nog verder laten groeien uit textuurrijke punten, waardoor naburige textuurloze punten over een beperkte afstand ook nog kunnen worden gereconstrueerd. Daarom laat de tool op het entropiebeeld enkele keren een morfologische dilation filter lopen. Deze filter heeft als input een binair (0/1) beeld en maakt alle pixels rond een pixel met waarde ‘1’ ook ‘1’. Gezien het overlopen van een beeld met een kernel, sluit de tool eerder aan bij lokale methodes. Desalniettemin geeft het een indicatie, waar de dense matching mogelijks kan falen/onbetrouwbaar wordt en kan men hierop anticiperen door lokaal een textuurrijk element (bvb. sticker) toe te voegen in de scene.
IWT-TETRAproject
3D4SURE
18·24
5.3. Voorbeeld tool
Figuur 12: Entropiefilter witte gevel
6. BIBLIOGRAFIE Fraser, C. (2012). Automatic Camera Calibration in Close-Range Photogrammetry. ASPRS 2012 Annual Conference, Sacramento, California , March 19-23, 2012 Fraser, C. (2013). Automatic Camera Calibration in Close Range Photogrammetry. Photogrammetric Engineering & Remote Sensing, Vol. 79, No. 4, pp. 381-388 IWT-TETRAproject
3D4SURE
19·24
Remondino, F., Fraser, C. (2006). Digital Camera Calibration Methods: Considerations and Comparisons. ISPRS Volume XXXVI, Part 5, Dresden 25-27 September 2006 Sturm, P. (2002). Critical Motion Sequences for the Self-Calibration of Cameras and Stereo Systems with Variable Focal Length. Image and Vision Computing 20 (2002), 415-426 Wang, W., Guo,B., Li, X., Cao, J. (2008). Factors Evaluation on High-Precision Planar Calibration of Non-Metric Digital Camera. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B1. Beijing 2008 Wu, C. (2014). Critical Configurations for Radial Distortion Self-Calibration. Google Inc.
IWT-TETRAproject
3D4SURE
20·24
7. APPENDIX
IWT-TETRAproject
3D4SURE
21·24
IWT-TETRAproject
3D4SURE
22·24
IWT-TETRAproject
3D4SURE
23·24
IWT-TETRAproject
3D4SURE
24·24