KAHO St-Lieven GENT Thomas More Mechelen 3D PHOTOGRAMMETRY FOR SURVEYING ENGINEERING IWT TETRA project
3D4SURE Werkpakket 3.4 Panoramische fotogrammetrie
Auteurs:
IWT-TETRAproject
Björn Van Genechten Jasper Wisbecq Wouter Dreessen
KaHo Sint-Lieven KaHo Sint-Lieven KaHo Sint-Lieven 3D4SURE
1·37
Inhoud 1. 2.
3.
4.
5. 6. 7.
INLEIDING .............................................................................................................................. 3 HOE PANORAMAFOTO’S MAKEN........................................................................................... 4 2.1. SOORTEN PANORAMA’S ................................................................................................. 4 2.2. CAMERA-INSTELLINGEN ................................................................................................. 4 2.3. PARALLAX ....................................................................................................................... 4 2.3.1. NO-PARALLAX POINT .............................................................................................. 5 2.4. TOESTELLEN OM PANORAMISCHE FOTO’S TE TREKKEN ................................................ 8 2.4.1. PANORAMAKOP...................................................................................................... 8 2.4.2. AUTOMATISCHE PANORAMAKOP........................................................................... 9 2.4.3. PANORAMACAMERA’S ........................................................................................... 9 2.5. DE FOTO OPNAME........................................................................................................ 11 2.5.1. OVERLAP............................................................................................................... 11 2.5.2. LENSKEUZE ........................................................................................................... 12 2.6. STITCHING SOFTWARE ................................................................................................. 13 2.6.1. PANORAMISCHE FOTO’S STITCHEN ALS KALIBRATIEMETHODE ........................... 13 2.6.2. BESTAANDE SOFTWAREPAKKETTEN ..................................................................... 14 2.6.3. WERKING VAN STITCHING SOFTWARE ................................................................. 14 OPSTELLEN VAN EEN MATHEMATISCH MODEL VOOR PANORAMISCHE FOTOGRAMMETRIE 15 3.1. RELATIE TUSSEN SFERISCHE EN CARTESISCHE COÖRDINATEN .................................... 15 3.2. EQUIRECTANGULAIRE PROJECTIE ................................................................................. 16 3.3. ORIËNTATIE EN 3D RECONSTRUCTIE ............................................................................ 20 3.3.1. Absolute Oriëntatie .............................................................................................. 20 3.3.2. Relatieve oriëntatie .............................................................................................. 21 3.4. Eigen prototype code ................................................................................................... 24 3.5. Panorama rectificatie ................................................................................................... 25 3.6. Dense Matching volgens Pagani et al. (2011) .............................................................. 27 3.7. Meetconfiguratie.......................................................................................................... 27 TESTEN ................................................................................................................................. 28 4.1. 3D-RECONSTRUCTIE D.M.V. ABSOLUTE ORIËNTATIE .................................................... 28 4.2. DENSE RECONSTRUCTIES VAN INTERIEURS MET PHOTOSCAN .................................... 29 4.2.1. Interieur Sint-Jan-Baptistkerk Gent ...................................................................... 29 4.2.2. Interieur Onze-Lieve-Vrouwekerk Alsemberg ...................................................... 32 FISHEYE FOTOGRAMMETRIE ............................................................................................... 33 5.1. Casestudie: Sint-Michielskerk Gent.............................................................................. 34 CONCLUSIE .......................................................................................................................... 35 BIBLIOGRAFIE ...................................................................................................................... 36 7.1. Internetbronnen........................................................................................................... 36 7.2. Literatuur...................................................................................................................... 36
IWT-TETRAproject
3D4SURE
2·37
1. INLEIDING In dit werkpakket gaan we het potentieel na van panoramische fotogrammetrie voor het maken van 3D modellen en documenteren van architecturale objecten. Fotogrammetrie is een wetenschap die op zich al langere tijd bestaat maar waarbij tot nu voornamelijk uitgegaan wordt van ‘traditionele perspectief beelden’ gemaakt met een ‘gewone’ camera. Het maken van panoramische beelden ligt vandaag de dag echter ook binnen handbereik van iedereen, mede dankzij de sterke evolutie in de wereld van de computer visie gedurende de laatste jaren. Enerzijds bestaan er dure, zeer geavanceerde lijn sensor cameras (spheron, eyescan, …) waarmee op een relatief eenvoudige manier zeer hoge resolutie panoramische beelden kunnen gemaakt worden, zelfs in HDR (High Dynamic Range) waardoor we de belichting van de foto later nog kunnen aanpassen. Maar dit zijn echter vaak dure toestellen. Anderzijds bestaan er op dit ogenblik verschillende softwaretools (zowel betalend als gratis) die op basis van verschillende beelden gemaakt met een ‘traditionele’ camera en een panoramische camerahouder een panoramisch beeld kunnen opbouwen waardoor deze techniek voor iedereen met wat kennis van computers beschikbaar wordt. De panoramische camerahouder, die tegen aantrekkelijke prijs kan aangekocht worden (± 500 euro), zorgt er hierbij voor dat het fototoestel enkel kan roteren rond het brandpunt van de lens en er aldus geen parallax ontstaat. Panoramische beelden bieden als voordeel ten opzichte van perspectief beelden dat ze de volledige ruimte 360 graden rondom het camerastandpunt beschrijven. Dit wil zeggen dat ze veel meer informatie bevatten dan 1 enkele perspectief foto. Bijkomend kunnen de homologe punten voor de oriëntatie veel beter gespreid worden rond de camera’s. Deze eigenschap biedt voornamelijk voordelen bij het opmeten van binnenruimtes waarbij de volledige ruimte dient opgemeten worden. Dit wil dus zeggen dat door de interne opbouw van een panoramisch beeld, slechts 3 panoramische beelden nodig zijn om een ruimte op te meten waarbij deze beelden ieder slechts eenmaal door het fotogrammetrisch proces van kalibratie en oriëntatie moeten gaan om gebruikt te worden voor opmetingen. Dit in vergelijking met veel ‘gewone perspectief’ beelden die hiervoor nodig zouden zijn. Panoramische fotogrammetrie kan in wezen aanzien worden als een effectief, snel en goedkope tool om opmetingen te maken met behulp van foto’s.
IWT-TETRAproject
3D4SURE
3·37
2. HOE PANORAMAFOTO’S MAKEN 2.1.
SOORTEN PANORAMA’S
Het woord panorama betekent ‘groothoekig zicht’ en een panoramafoto is dus in se een foto die een weids zicht geeft. Een 360°-foto is een iets specifiekere beschrijving en wil zeggen dat het om een panoramafoto gaat die compleet rondom aansluit. Nog een stap verder is dan de 360x180-foto (ook wel surround-foto of bolfoto genoemd), deze sluit zowel rondom als naar boven en beneden volledig aan en geeft dus een compleet beeld van de omgeving.
Figuur 2-1: van links naar rechts – panoramafoto – 360foto – 360x180foto
In dit onderzoek zijn het de 360x180-foto’s waarmee gewerkt zal worden, dus om het ons zelf makkelijk te maken gaan we er van uit dat telkens we de term panoramafoto laten vallen, we hier eigenlijk de 360x180-foto mee bedoelen. Verder kan er bij panoramafoto’s ook een onderscheid worden tussen multi-foto panorama’s en lijncamera panorama’s. In het eerste geval worden er een set foto’s gemaakt met een conventioneel digitaal fototoestel waarbij er overlap is tussen de foto’s onderling. Deze worden dan tot een panoramische mozaïekfoto verwerkt door ze aan elkaar te stitchen via gespecialiseerde software. In het tweede geval wordt er een panoramafoto gemaakt met een gespecialiseerd fototoestel, namelijk een lijncamera. In dit onderzoek zal er gewerkt worden met multi-foto panorama’s.
2.2.
CAMERA-INSTELLINGEN
Het is ook essentieel om de camera-parameters in te stellen (focus, diafragmawaarde, sluitertijd witbalans,) via de manuele modus zodat deze onveranderlijk blijven bij de verschillende aparte foto’s. Dat vergemakkelijkt het stitching proces. Dit creëert wel het extra probleem dat niet elk gebied in het panorama correct belicht zal worden. Er zullen bij panorama’s namelijk altijd donkere en meer lichte gebieden in beeld komen. Bijvoorbeeld in een binnenruimte met ramen, indien men donkere hoeken correct wil belichten, zullen de ramen overbelicht worden en vice versa. Daarom wordt er meestal aan bracketing’ gedaan bij panoramafotografie, dit is een techniek waarbij voor elke foto 3 (soms ook meer) opnames worden gemaakt, 1 met een zo correct mogelijke belichting, 1 met onderbelichting en 1 met overbelichting. Op deze manier kunnen panoramafoto’s in HDRformaat (High Dynamic Range) gemaakt worden, waarbij de drie belichtingen gemixt worden om een zo goed mogelijk contrast te krijgen over de hele foto.
2.3.
PARALLAX
Parallax is de schijnbare positieverandering van een voorwerp ten opzichte van een ander voorwerp en/of achtergrond wanneer het vanuit verschillende posities bekeken wordt. Hoe IWT-TETRAproject
3D4SURE
4·37
dichter het voorwerp bij de waarnemer, hoe groter de parallax wordt.
Figuur 2-2: voorbeeld van parallax (http:// telescript.denayer.wenk.be)
Aangezien het doel van panoramafotografie is om verschillende aparte foto’s aan elkaar te stitchen tot één foto via overlap tussen de foto’s, kunnen er dus best geen schijnbare positieveranderingen zijn bij de aparte foto’s onderling. Dit maakt het uitlijnen van de foto’s op elkaar moeilijk. Dit brengt ons bij het no-parallax point, aangezien dit het punt is waarrond de camera geroteerd zal moeten worden om parallaxloze foto’s te maken.
2.3.1.NO-PARALLAX POINT Om met een gewoon digitaal fototoestel een goede panoramische foto te bekomen is het belangrijk dat het no-parallax point van een camera niet verschuift bij het nemen van de afzonderlijke foto’s die achteraf ‘gestitcht’ worden. Dit is namelijk cruciaal om parallax te voorkomen. Het no-parallax punt is in feite het perspectivisch centrum van de lens en komt overeen met de plaats van de intredepupil. Er is een algemeen verspreid misverstand dat het no-parallax point overeen zou komen met het ‘nodal point’ maar dit is eigenlijk niet juist, al wordt in de wereld van de panoramafotografie de term ‘nodal point’ wel meestal gebruikt om het no-parallax punt aan te geven. We gaan er in dit rapport niet verder over uit weiden aangezien deze theoretische discussie voor ons niet belangrijk is zolang we maar het correcte punt kunnen vinden. Voor meer informatie hierover kan het volgende document geraadpleegd worden: http://www.janrik.net/PanoPostings/NoParallaxPoint/TheoryOfTheNoParallaxPoint.pdf Indien we onze camera dus willen bevestigen op een panoramakop (zie hoofdstuk 2.4.1), dan moeten we er dus voor zorgen dat de camera kan roteren rond het no-parallax point, daarom is het belangrijk de locatie van dit punt zo exact mogelijk te kunnen duiden. Hiervoor bestaan 2 manieren: 1. op de empirische manier door twee verticale lijnen op verschillende afstand met elkaar uit te lijnen, of 2. aan de hand van tabellen met data over de afstand van het no-parallax point tot de camerabevestiging.
2.2.1.1 EMPIRISCHE METHODE Een makkelijkere methode is om het no-parallax point empirisch te bepalen. Een panoramakop heeft 3 afstandsinstellingen (x,y,z) die ons toelaten om de rotatie-as van de camera te verschuiven. 2 ervan kunnen alvast eenvoudig achterhaald worden door de camera op de panoramakop te bevestigen en loodrecht naar beneden te richten. De panoramakop heeft daar namelijk een schroef staan die horizontaal kan roteren. Het komt er nu op aan om door de zoeker van de camera de centrummarkering van die schroef in je foto te centreren. Dit IWT-TETRAproject
3D4SURE
5·37
kan door de 2 horizontale afstandsinstellingen aan te passen. Je kan dit nog controleren door een foto te maken en na te gaan of de centrummarkering ook werkelijk in het midden van de foto ligt.
Eens deze zijn bepaald rest er nog één afstandsinstelling te achterhalen, namelijk diegene die ons toelaat om de camera volgens zijn visuele as naar voor of achter te verschuiven.
Plaats hiervoor een stok of dunne paal kortbij de camera en zorg dat een verder gelegen verticale referentielijn erachter komt te liggen, bijvoorbeeld de zijkant van een deur of de hoek van een kamer. Richt de camera naar de referentielijn zodat deze in het midden van de foto komt. Plaats daarna de stok ertussen zodat deze uitgelijnd is met de referentielijn bekeken vanuit de camera. Zet de stok liefst iets dichter naar de camera toe dan naar de referentielijn, dan valt de parallax beter op.
IWT-TETRAproject
3D4SURE
6·37
Als je dit gedaan hebt, roteer je de camera naar rechts totdat de referentielijn links in het zichtveld van de camera komt. Indien de lijnen nog steeds met elkaar uitgelijnd zijn, dan komt het no-parallax point overeen met de rotatie-as van de panorama beugel. Indien de stok rechts van de referentielijn komt te staan, dan wil dit zeggen dat het no-parallax point (en dus de camera) te ver naar achter staan ten opzichte van de rotatie-as. Staat de stok meer naar links, dan staat de camera te ver naar voor.
Hierna kan je de camera lichtjes verschuiven en het proces herhalen totdat de stok en de lijn uitgelijnd zijn. Er is ook nog een variant op deze handeling, namelijk twee afstandsinstellingen zoeken die een even grote maar omgekeerde parallax vertonen en daar dan het midden tussen nemen. Op deze manier kan in principe de foutmarge met 50% verkleind worden. In plaats van bij een willekeurige afstandsinstelling te beginnen, schuif nu de camera naar voren tot de achterkant van de lens net boven de rotatie-as van de panoramakop staat en noteer de afstand op de schuifinstelling. Roteer de camera naar rechts totdat de referentielijn links in het zichtveld van de camera komt en maak een foto, roteer dan naar links totdat de referentielijn rechts in het zichtveld staat en maak ook een foto. Er zal op beide foto’s een parallax tussen de twee verticale lijnen zichtbaar zijn.
Schuif dan de camera helemaal naar achteren, en herhaal het vorige proces. Er zal bij dit IWT-TETRAproject
3D4SURE
7·37
fotopaar ook parallax optreden maar dan in omgekeerd richting.
Het komt er nu op aan de camera naar voren te schuiven tot het parallaxverschil op beide fotoparen exact omgekeerd qua grootte is.
Hierbij kan je dan stellen dat het no-parallax point precies tussen deze beide afstandsinstellingen ligt. Stel deze afstand in en maak voor de zekerheid nog 2 controlefoto’s. Hier zou de parallax nu niet meer mogen optreden. Nog enkele tips: -Je controleert de laatste opnames het best op een computerscherm; het schermpje van je camera is te klein om dit nauwkeurig te doen. -De eerste 2 zijn hetzelfde voor een bepaalde body, de derde verandert van objectief tot objectief -Je mag de brandpuntsafstand ook niet wijzigen eens je het no-parallax point hebt ingesteld.
2.2.1.2 TABELLEN Zoals reeds gezegd zijn er tabellen te vinden die per cameratype en lenstype de afstanden geven tussen camerabevestiging en de intredepupil, bijvoorbeeld: http://wiki.panotools.org/Entrance_Pupil_Database Eens de afstanden gekend zijn, kunnen deze ingesteld worden op de panoramakop.
2.4.
TOESTELLEN OM PANORAMISCHE FOTO’S TE TREKKEN
In hoofdstuk 2.1. is al uitgelegd dat het no-parallax point van de camera best gebruikt wordt als rotatiepunt voor de camera. Omdat dit handheld niet realiseerbaar is zijn er tegenwoordig al vele toestellen beschikbaar op de markt om dit te vergemakkelijken.
2.4.1.PANORAMAKOP Een eerste optie is om een statief te gebruiken met daarop een panoramakop bevestigd. Hier kan dan de camera op bevestigd worden om eerst het no-parallax point in te stellen en daarna de camera rond dit punt te kunnen draaien en het 360°-panoramabeeld op te bouwen.
IWT-TETRAproject
3D4SURE
8·37
Figuur 2-3: nodal ninja
2.4.2.AUTOMATISCHE PANORAMAKOP Een automatische panoramakop verzorgt de horizontale en verticale rotaties van de camera met een geschikte overlap door middel van twee servomotortjes. Een voorbeeld hiervan is de GigaPan EPIC PRO (kostprijs 869 EUR). Het werken met een automatische panoramakop wordt bijzonder interessant wanneer er met lenzen met grotere brandpuntsafstanden wordt gewerkt. Dit gezien het groter aantal vereiste foto’s door de kleinere beeldhoek.
Figuur 2-4: gigapan epic series
2.4.3.PANORAMACAMERA’S Enerzijds kunnen er foto’s gemaakt worden met standaard digitale camera’s waarvan de foto’s achteraf gestitcht worden, maar er is bestaat ook een alternatief. Een ‘Rotating line camera’ bestaat uit een CCD lijnsensor (voor elk RGB-kanaal één). Deze lijnsensor wordt vervolgens om een verticale as geroteerd, en aldus wordt het panorama opgebouwd lijn per lijn. De lijnsensor beschrijft tijdens de rotatie een cylinderoppervlak. Bij het cylindrisch model kan de onderkant en bovenkant echter niet waargenomen worden. Deze systemen leveren zeer gedetailleerde panorama’s, maar zijn echter zeer duur. In dit IWT-TETRAproject
3D4SURE
9·37
onderzoek zullen we hier dan ook verder niet op ingaan maar enkele voorbeelden van dit type camera’s zijn: -Panoscan mark III
Figuur 2-5: panoscan mark III
-sensorgrootte: trilineair 72mm 12 micron pixels -resolutie: maximum: 9000 x 65000 pixels -lens: 22,5mm to 300mm -output: TIFF, adobe DNG
-Spheron
Figuur 2-6
-sensorgrootte: not given -resolutie: maximum: 5300 x 10600 pixels -lens: 16 mm -output: JPEG, TIFF, GIF, BMP, PNG, TGA IWT-TETRAproject
3D4SURE
10·37
Bij de Spheron wordt een (kleine) ruimte opgemeten door 2 panorama’s boven elkaar te nemen, met een gekende gekalibreerde verticale tussenafstand. In de software kunnen dan de 3D-coordinaten van een pixel opgevraagd worden.
-Eyescan m3 -Fovex
-sensorgrootte: not given -resolutie: maximum: 7500 x 35343 pixels -lens: 23 mm, 45mm, 60mm, 80mm -output:
2.4.4.PANORAMA ADHV MEERDERE CAMERA’S BINNEN BEHUIZING Voorbeelden hiervan zijn de Ladybug3 en de nctech iSTAR. Resolutie is vaak eerder beperkt.
2.5.
DE FOTO OPNAME
Tijdens het nemen van sferische panorama’s (met panoramakop) moet de brandpuntsafstand behouden worden. Deze dient dus gekozen en gefixeerd te worden voor het starten van de opnames. Om geen parallaxverschuivingen te hebben wanneer de camera roteert, dient de rotatie uitgevoerd te worden rond het no-parallax point. Een voorafgaande kalibratie op de panoramakop is vereist voor elke combinatie van camerabody en lens. Het is een goede vuistregel om naburige foto’s minstens 25-30% te laten overlappen.
2.5.1.OVERLAP
IWT-TETRAproject
3D4SURE
11·37
Figuur 2-7: overlap voor panoramafoto’s horizontaal en verticaal (Wissam Wahbeh, 2011)
2.5.2.LENSKEUZE De lenskeuze heeft invloed op 2 belangrijke parameters, namelijk de pixeldichtheid en de beeldhoek (en bijgevolg ook het aantal foto’s dat nodig is per panorama). We hebben 3 lenzen ter beschikking voor onze canon eos 5D, namelijk een 8mm fisheyelens, een 24mm of een 50mm. We zullen deze daarom met elkaar vergelijken -resolutie per hoek van 1° op een bepaalde afstand -om deze berekeningen automatisch te doen: http://www.frankvanderpol.nl/fov_pan_calc.htm
2.2.1.3 FISHEYE LENS - type lens: Sigma EX DG Fisheye 8mm -horizontale beeldhoek =180 ° -aantal pixels in breedte = 5616 pixels Aantal foto’s nodig voor een volledige 360x180 foto met een overlap van 30%: - totaal aantal foto’s met 8mm lens: 8 - camera wordt gebruikt in portretmodus op de nodal ninja -6 foto’s op 0° (evenaarsvlak) 0 60 120 240 … -1 foto op 90° en -90° (naar boven/beneden)
2.2.1.4 24MM LENS -type lens = Sigma 24-70mm F2.8 EX DG IF HSM compact Canon -horizontale beeldhoek = 73,74° -aantal pixels in breedte = 5616 pixels -berekening pixeldichtheid:
-pixels voor 360° panorama:
5616 𝑝𝑖𝑥𝑒𝑙𝑠 73,74°
∗ 360° = 27406,08 𝑝𝑖𝑥𝑒𝑙𝑠
-pixeldichtheid in “/pixel:
73,74° 5616 𝑝𝑖𝑥𝑒𝑙𝑠
∗ 3600 =47,3 “/pixel
-pixeldichtheid in mm/pixel:
2∗𝜋∗10000𝑚𝑚 27406,08 𝑝𝑖𝑥𝑒𝑙𝑠
IWT-TETRAproject
3D4SURE
= 2,2𝑚𝑚/𝑝𝑖𝑥𝑒𝑙 (𝑜𝑝 𝑎𝑓𝑠𝑡𝑎𝑛𝑑 𝑣𝑎𝑛 10𝑚)
12·37
Aantal foto’s: -aantal foto’s met 24 mm lens: 30 -beeldhoek horizontaal: 73,74° -beeldhoek verticaal: 53,13° -camera wordt gebruikt in portretmodus dus we moeten beiden omwisselen! -12 foto’s op 0° 0 30 60 90 120 … -8 foto’s op 45° en -45° 0 45 90 135 … -1 foto op 90° en -90°
2.2.1.5 50MM LENS - type lens: Canon 50mm -horizontale beeldhoek = 39,60° -aantal pixels in breedte = 5616 pixels -pixels voor 360° panorama:
5616 𝑝𝑖𝑥𝑒𝑙𝑠 39,6°
∗ 360° = 51054,54 𝑝𝑖𝑥𝑒𝑙𝑠
-pixeldichtheid in “/pixel:
39,6° 5616 𝑝𝑖𝑥𝑒𝑙𝑠
∗ 3600 = 25,4 "/𝑝𝑖𝑥𝑒𝑙
-pixeldichtheid in mm/pixel:
2∗𝜋∗10000𝑚𝑚 51054,54 𝑝𝑖𝑥𝑒𝑙𝑠
= 1,2𝑚𝑚/𝑝𝑖𝑥𝑒𝑙 (𝑜𝑝 𝑎𝑓𝑠𝑡𝑎𝑛𝑑 𝑣𝑎𝑛 10𝑚)
Nagaan hoeveel foto’s we nodig hebben voor een volledige 360x180 foto. Probeer een overlap van 25% te handhaven. -Aantal foto’s met 50 mm lens: 110 -beeldhoek horizontaal: 39,6° -beeldhoek verticaal: 26,9° -camera wordt gebruikt in portretmodus dus we moeten beiden omwisselen! -24 foto’s op 0° 0 15 30 45 … -16 foto’s op 30° en -30° -90 -60 -30 0 30 60 90 -12 foto’s op 60° en -60° 0 30 60 90 120 … -1 foto op 90° en -90°
In geval van de 24mm en de 50mm lens wordt al snel duidelijk dat het aantal foto’s zeer groot wordt. Voor de fisheye lens kan dus een gewone panoramakop gebruikt worden, maar voor betere pixeldichtheden lijkt een automatische panoramakop aangewezen omdat het anders zeer lang duurt om alle foto’s te nemen, zeker omdat dit ook nog eens langer duurt omwille van de ‘bracketing’.
2.6.
STITCHING SOFTWARE
2.6.1.PANORAMISCHE FOTO’S STITCHEN ALS KALIBRATIEMETHODE Na de stitching kunnen de bekomen panorama’s als distortievrij worden beschouwd. De distortiecomponenten worden geschat en gecorrigeerd in de stitching software (Fangi, 2013). IWT-TETRAproject
3D4SURE
13·37
2.6.2.BESTAANDE SOFTWAREPAKKETTEN Om multifoto panorama’s te maken zijn er een aantal commerciële softwarepakketten beschikbaar. Onderstaand lijstje geeft een overzicht van enkele van deze softwarepakketten. Ptgui Kolor Autopano Photoshop GigaPan Stitch Hugin (gratis) Windows Ice (gratis) Uit onze ervaring bleek dat indien de ene stitcher geen goed resultaat geeft, een andere dat misschien wel goed doet en omgekeerd. Ptgui geeft meestal goede resultaten, maar is trager bij hogere resoluties. Windows Ice en Autopan werken sneller. GigaPan Stitch is de software die bij de GigaPan panoramakop wordt geleverd en gezien de gekende opnamevolgorde kan deze ook tot een snel resultaat komen.
2.6.3.WERKING VAN STITCHING SOFTWARE Bij het aan elkaar linken van de verschillende foto’s worden de volgende stappen uitgevoerd: Input: ongeordende reeks afbeeldingen -Herkenningspunten uit alle afbeeldingen halen. -Vinden van de afbeeldingen die het meeste overlappen. -Voor elke afbeelding: °selecteer de foto die de meeste overeenkomstige herkenningspunten ermee heeft; °vinden van geometrische consistentie voor de homografie tussen de twee foto’s; °controleren van de overeenkomsten met behulp van het probabilistische model. -Vinden van verbonden onderdelen tussen gelinkte afbeeldingen. -Voor elke verbonden component: °uitvoeren van bundle adjustment om de rotaties en de focusafstand van de camera op te lossen; °genereren van het panorama met behulp van multi-band blending. Output: panoramische afbeelding (Wissam Wahbeh, 2011). Wanneer het geheel aan foto’s is georiënteerd, wordt deze 360° panoramafoto geprojecteerd op een bol. De sferische coördinaten kunnen worden afgeleid uit de horizontale en verticale hoeken. De horizontale en verticale hoeken zijn de hoeken die zouden worden gemeten wanneer er in het midden van de bol een theodoliet wordt geplaatst i.p.v. een camera (H. Haggrén, H. Hyyppä, O. Jokinen, A. Kukko, M. Nuikka, T. Pitkänen, P. Pöntinen, P. Rönnholm). Deze bol kan vervolgens worden geprojecteerd om tot een vlakke voorstelling van het panorama te komen.
IWT-TETRAproject
3D4SURE
14·37
3. OPSTELLEN VAN EEN MATHEMATISCH MODEL VOOR PANORAMISCHE FOTOGRAMMETRIE 3.1.
RELATIE TUSSEN SFERISCHE EN CARTESISCHE COÖRDINATEN
Aangezien de panoramafoto in eerste instantie bestaat uit een boloppervlak worden de pixels erop aangeduid via sferische coördinaten. Deze bepalen de positie van een punt in een driedimensionale ruimte gebaseerd op een afstand ρ tot het centrum van een bol en twee hoeken θ en ф.
Figuur 3-1: sferische coördinaten (www.mathinsight.org)
Op de bovenstaande tekening zijn de sferische coördinaten van het punt P te zien. De coördinaat ρ is de afstand van het punt P tot de oorsprong van het x, y, z assenstelsel. Als het punt Q de projectie is van het punt P in het xy-vlak, dan is θ de hoek tussen de positieve xas en het lijnsegment van het centrum tot Q. ϕ is de hoek tussen de positieve z-as en het lijnsegment van het centrum tot P. Door gebruik te maken van driehoeksmeetkunde kan de relatie tussen de cartesische en de sferische coördinaten worden gevonden.
𝑥 = 𝜌 ∗ sin(ϕ) ∗ cos(ϑ) 𝑦 = 𝜌 ∗ sin(ϕ) ∗ sin(ϑ) 𝑧 = 𝜌 ∗ cos(ϕ)
Figuur 3-2: relatie tussen cartesische en sferische coördinaten (www.mathinsight.org)
IWT-TETRAproject
3D4SURE
15·37
Wanneer bij sferische coördinaten de coördinaat ρ constant wordt gehouden, wordt er een bolprojectie verkregen waarvan de straal gelijk is aan ρ. Bij het wiskundig model dat gebruik maakt van sferische coördinaten om panoramische beelden te beschrijven, is ρ dus een constante en de straal ρ die wordt gebruikt bij sferische fotogrammetrie is hier dan gelijk aan de brandpuntsafstand van de lens.
3.2.
EQUIRECTANGULAIRE PROJECTIE
Allereerst is het belangrijk een onderscheid te maken tussen de verschillende coördinatensystemen. Om een panoramisch beeld te benaderen via sferische coördinaten worden er namelijk vier coördinatensystemen gedefinieerd (Danilo Schneider, Ellen Schwalbe). -Object of wereldcoördinatensysteem: Dit is het eerste coördinatensysteem, de assen (X, Y, Z) hangen vast aan de positie van de werkelijke punten. Dit is een rechtshandig orthonormaal assenstelsel, waarvan de afstanden worden gemeten in meter. -Camera coördinatensysteem: Het tweede coördinatensysteem (x, y, z) is dit van de camera, waarin het centrum van dit assenstelsel het projectiecentrum van de camera is. Ook dit is een rechtshandig orthonormaal assenstelsel, waarvan de afstanden worden gemeten in meter. -Sferisch camera coördinatensysteem: Dit is de bol waarop de foto wordt geprojecteerd. Dit wordt beschreven door de hoeken θ, ζ en de straal R. Dit coördinatensysteem heeft hetzelfde centrum als het camera coördinatensysteem. De afstanden worden gemeten in meter. -Beeld coördinatensysteem: Het laatste coördinatensysteem is dit van de foto. In tegenstelling tot de vorige drie coördinatensystemen wordt er hier in pixels (x’, y’) gemeten i.p.v. in meter.
Figuur 3-3: coördinatenstelsels
Zoals reeds gezegd worden bij een panoramafoto de verschillende foto’s geprojecteerd op een bol.
IWT-TETRAproject
3D4SURE
16·37
Figuur 3-4: Projectie van afzonderlijke foto's op een bol (Wahbeh, 2011)
Deze bol wordt dan teruggeprojecteerd naar een plat vlak door middel van een cartografische projectie, meestal kiest men voor de equirectangulaire projectie (ook wel equidistante cilinderprojectie genoemd). Dit is een kaartprojectie die een boloppervlak omzet tot een vlakke kaart met een vierkant graadnet een waarop de afstanden van de meridianen gelijk blijven als ze naar verticale lijnen omgezet worden. Voor de breedtecirkel blijft enkel de middelste breedtecirkel gelijk in afstand, de andere kleinere breedtecirkels worden in de projectie allemaal uitgerekt tot de zelfde lengte als de middelste breedtecirkel. Uit deze projectie kunnen de horizontale en verticale hoeken, zoals ze met een theodoliet zouden worden opgemeten, gemakkelijk afgeleid worden.
Figuur 3-5: equirectangulaire projectie (Wahbeh, 2011)
Wanneer het punt P nu wordt voorgesteld in een equirectangulaire projectie, dan kan de relatie tussen de hoeken θ, φ en de pixelcoördinaten x’ en y’ gevonden worden (Fangi, 2007).
Figuur 3-6: Relatie tussen hoeken θ, φ en de pixelcoördinaten
𝑥′ = 𝑟 ∗ 𝜃 𝑦′ = 𝑟 ∗ 𝜑
(ϴ in radialen) (φ in radialen)
De straal r van de bol kan worden gehaald uit de breedte van de vlakke projectie, dit is gelijk aan het aantal pixels die de breedte van de panoramische foto heeft. Wordt de breedte van de vlakke projectie gelijk gesteld aan a, dan kan hieruit r worden gehaald (Fangi, 2007). r=
a 2π
Wanneer r gekend is, dan kunnen de hoeken θ en φ worden berekend (Fangi, 2007).
IWT-TETRAproject
3D4SURE
17·37
𝑥′ 𝑟 𝑦′ 𝜑= 𝑟 𝜃=
De hoeken θ en φ die hier worden berekend zijn dezelfde hoeken als de hoeken die zouden worden gemeten met een theodoliet vanuit het midden van de bolprojectie. De hoek θ gaat van 0° tot 360° en de hoek φ gaat van 0° tot 180°. Wel is er bij deze benadering geen rekening gehouden met de eventuele scheefstand van de camera. Wanneer een 360° panorama wordt gebruikt ter vervanging van een theodoliet moeten er namelijk twee rotatiehoeken (een horizontale en een verticale) worden ingevoerd. Deze rotatiehoeken zijn nodig om de verticale as even precies te kunnen opstellen als bij een theodoliet. Om de hoeken θ en φ te corrigeren, wordt eerst de relatie tussen het camera assenstelsel (x, y, z) en het object assenstelsel (X, Y, Z) gezocht. 𝑥 = 𝑋 − 𝑋0 𝑦 = 𝑌 − 𝑌0 𝑧 = 𝑍 − 𝑍0 Met (X0, Y0, Z0) = Coördinaten van het cameramidden in het object coördinatensysteem. (X, Y, Z) = Coördinaten van een object punt. (x, y, z) = Coördinaten van een object punt in het camera coördinatensysteem. In het sferische camera coördinatensysteem worden de coördinaten van het punt P weergegeven door: 𝑋 ∗ = 𝑟 ∗ sin(𝜑) ∗ sin(𝜃) 𝑌 ∗ = 𝑟 ∗ sin(𝜑) ∗ cos(𝜃) 𝑍 ∗ = 𝑟 ∗ cos(𝜑) Met (X*, Y*, Z*) φ θ r
IWT-TETRAproject
= 3D cartesische coördinaten van het punt P in het camera assenstelsel. = Verticale hoek van de sferische coördinaten. = Horizontale hoek van de sferische coördinaten. = Straal van de bolprojectie
3D4SURE
18·37
Figuur 3-7: Scheefstand van de panoramafoto
De sferische coördinaten die worden bekomen, zijn berekend met de ongecorrigeerde hoeken θ en φ. Ze moeten dus nog worden gecorrigeerd. Om naar de gecorrigeerde coördinaten over te gaan moet er een rotatiematrix R ingevoerd worden met de correctiehoeken dαx, dαy en dαz in. De gecorrigeerde coördinaten worden gegeven door onderstaande vergelijking. 1 𝑋∗ ∗ −𝑑𝛼 [𝑌 ] = [ 𝑧 𝑑𝛼𝑦 𝑍∗
𝑑𝛼𝑧 − 𝑑𝛼𝑦 𝑟 ∗ sin(𝜃) ∗ sin(𝜑) 𝑋 − 𝑋0 1 𝑑𝛼𝑥 ] ∗ [ 𝑌 − 𝑌0 ] = [𝑟 ∗ cos(𝜃) ∗ sin(𝜑)] 𝑍 − 𝑍0 − 𝑑𝛼𝑥 1 𝑟 ∗ cos(𝜑)
Om de uitdrukking voor de gecorrigeerde hoek θ te vinden, wordt de eerste rij gedeeld door de tweede rij. En uit de derde rij kan de uitdrukking voor φ worden gehaald. 𝑋∗ 𝜃 = 𝑎𝑡𝑔 ( ∗ ) 𝑌 1 ∗ (𝑋 − 𝑋0 ) + 𝑑𝛼𝑧 ∗ (𝑌 − 𝑌0 ) + (−𝑑𝛼𝑦 ) ∗ (𝑍 − 𝑍0 ) 𝜃 = 𝑎𝑡𝑔( ) −𝑑𝛼𝑧 ∗ (𝑋 − 𝑋0 ) + 1 ∗ (𝑌 − 𝑌0 ) + 𝑑𝛼𝑥 ∗ (𝑍 − 𝑍0 ) 𝑥 − 𝑑𝛼𝑧 ∗ 𝑦 − 𝑑𝛼𝑦 ∗ 𝑧 𝜃 = 𝑎𝑡𝑔( ) 𝑑𝛼𝑧 ∗ 𝑥 + 𝑦 + 𝑑𝛼𝑥 ∗ 𝑧 𝑧 𝜑 = 𝑎𝑐𝑜𝑠 ( ) 𝑟 𝑑𝛼𝑦 ∗ (𝑋 − 𝑋0 ) + (−𝑑𝛼𝑥 ) ∗ (𝑌 − 𝑌0 ) + 1 ∗ (𝑍 − 𝑍0 ) 𝜑 = 𝑎𝑐𝑜𝑠( ) 𝑟 −𝑑𝛼𝑦 ∗ 𝑥 + 𝑑𝛼𝑥 ∗ 𝑦 + 𝑧 𝜑 = 𝑎𝑐𝑜𝑠( ) 𝑟 De waarde van de correctiehoeken dαx, dαy en dαz wordt geschat. Dit wordt gedaan door eerst een waarde te schatten die in de buurt ligt van de werkelijke waarde, daarna wordt verder IWT-TETRAproject
3D4SURE
19·37
gewerkt met de standaard procedure. De voorgaande vergelijkingen zijn de juiste vergelijkingen van de horizontale hoek θ en de verticale hoek φ. Het bepalen van deze scheefstand is in het ideale geval, wanneer alle verschillende foto’s die nodig zijn om een 360° panorama te maken vanuit exact hetzelfde punt zijn genomen, niet nodig. Wanneer echter de foto’s niet steeds vanuit hetzelfde punt zijn genomen, zal er op de horizontale en verticale hoeken een kleine fout zitten als de camera scheefstaat.
3.3.
ORIËNTATIE EN 3D RECONSTRUCTIE
Om de verschillende panorama’s t.o.v. elkaar te oriënteren zijn er twee mogelijke werkwijzen. Ofwel kan er gebruik gemaakt worden van een absolute oriëntatie (elk panorama wordt op basis van GCP’s rechtstreeks georiënteerd in het wereldassenstelsel) ofwel van een relatieve oriëntatie (elk panorama wordt eerst ten opzichte van de andere panorama’s georiënteerd). Nadat de verschillende panorama’s georiënteerd zijn, kan de 3D-reconstructie volgen.
3.3.1. Absolute Oriëntatie De relatie tussen het camera-assenstelsel van het panorama (x,y,z) en het wereldassenstel (X,Y,Z) wordt beschreven door een projectiematrix P. Deze matrix P combineert een rotatiematrix R met een translatiecomponent t. 𝑋 𝑋 𝑌 𝑡] [ ] = 𝑃 [𝑌 ] 𝑍 𝑍 1 1
𝑥 [𝑦] = [𝑅 𝑧
Voor de scheef symmetrische matrix van het camera-assenstelsel geldt: 0 [ 𝑧 −𝑦
−𝑧 0 𝑥
𝑦 𝑥 −𝑥 ] [𝑦] = 0 0 𝑧
En dus: 0 [ 𝑧 −𝑦
−𝑧 0 𝑥
𝑦 −𝑥 ] [𝑅 0
𝑋 ]=0 𝑡 ] [𝑌 𝑍 1
Indien men nu de 3x4 matrix P uitschrijft als een vector [P11, P12, …, P34] bekomt men de
vergelijkingen van dit stelsel. Elk GCP levert 3 vergelijkingen voor 12 onbekenden, wat neerkomt op minimaal 4 GCP’s om de projectiematrix P te kunnen oplossen. 𝑃11 𝑃12 𝑃 𝐴 13 = 0 𝑃14 ⋮ [𝑃34 ] Met
IWT-TETRAproject
3D4SURE
20·37
0 0 0 0 (−𝑧1 ∗ 𝑋1 ) (−𝑧1 ∗ 𝑌1 ) (−𝑧1 ∗ 𝑍1 ) (−𝑧1 ) (−𝑦1 ∗ 𝑋1 ) (−𝑦1 ∗ 𝑌1 ) (−𝑦1 ∗ 𝑍1 ) (−𝑦1 ) (𝑧1 ∗ 𝑋1 ) (𝑧1 ∗ 𝑌1 ) (𝑧1 ∗ 𝑍1 ) (𝑧1 ) 0 0 0 0 (−𝑥1 ∗ 𝑋1 ) (−𝑥1 ∗ 𝑌1 ) (−𝑥1 ∗ 𝑍1 ) (−𝑥1 ) (−𝑦1 ∗ 𝑋1 ) (−𝑦1 ∗ 𝑌1 ) (−𝑦1 ∗ 𝑍1 ) (−𝑦1 ) (𝑥1 ∗ 𝑋1 ) (𝑥1 ∗ 𝑌1 ) (𝑥1 ∗ 𝑍1 ) (𝑥1 ) 0 0 0 0 . . 𝐴= . 0 0 0 0 (−𝑧𝑖 ∗ 𝑋𝑖 ) (−𝑧𝑖 ∗ 𝑌𝑖 ) (−𝑧𝑖 ∗ 𝑍𝑖 ) (−𝑧𝑖 ) (−𝑦𝑖 ∗ 𝑋𝑖 ) (−𝑦𝑖 ∗ 𝑌𝑖 ) (−𝑦𝑖 ∗ 𝑍𝑖 ) (−𝑦𝑖 ) (𝑧𝑖 ∗ 𝑋𝑖 ) (𝑧𝑖 ∗ 𝑌𝑖 ) (𝑧𝑖 ∗ 𝑍𝑖 ) (𝑧𝑖 ) 0 0 0 0 (−𝑥𝑖 ∗ 𝑋𝑖 ) (−𝑥𝑖 ∗ 𝑌𝑖 ) (−𝑥𝑖 ∗ 𝑍𝑖 ) (−𝑥𝑖 ) (−𝑦𝑖 ∗ 𝑋𝑖 ) (−𝑦𝑖 ∗ 𝑌𝑖 ) (−𝑦𝑖 ∗ 𝑍𝑖 ) (−𝑦𝑖 ) (𝑥𝑖 ∗ 𝑋𝑖 ) (𝑥𝑖 ∗ 𝑌𝑖 ) (𝑥𝑖 ∗ 𝑍𝑖 ) (𝑥𝑖 ) 0 0 0 0 [ ]
De singuliere waarde ontbinding (SVD) van de matrix A levert de oplossing voor de termen van P. Omwille van numerieke stabiliteit is het wenselijk om het aantal GCP’s per panorama niet te beperken tot vier en drijft men dit beter op tot bijvoorbeeld acht. De GCP’s dient men aan te duiden op het overeenkomstig panorama. Deze pixelcoördinaten kan men omzetten naar de hoeken (ϕ,ϴ) met behulp van de omgekeerde equirectangulaire projectieformules, waarna men de 3D-coördinaten in het camera-assenstelsel bekomt. Om nu punten in 3D te reconstrueren (trianguleren) zijn er minimaal twee georiënteerde panorama’s nodig. De combinatie van twee P matrices levert het gereconstrueerde punt in het wereldassenstelsel. Er geldt: 0 [ 𝑧 −𝑦 en
−𝑧 0 𝑥
𝑋 𝑦 −𝑥 ] 𝑃1 [𝑌 ] = 0 𝑍 0 1
𝑋 0 −𝑧′ 𝑦′ 𝑌 [ 𝑧′ 0 −𝑥′] 𝑃2 [𝑍 ] = 0 −𝑦′ 𝑥′ 0 1
Deze set van vergelijkingen levert een oplossing voor de gevraagde wereldcoördinaten (X,Y,Z). Indien er met meerdere panorama’s wordt gewerkt zal de nauwkeurigheid verbeteren.
3.3.2. Relatieve oriëntatie Tijdens de relatieve oriëntatie worden panorama’s georiënteerd op basis van gemeenschappelijke punten in een arbitrair assenstelsel. Later volgt een transformatie naar het wereldassenstelsel op basis van drie of meer GCP’s voor het volledige model. Er zijn twee methodes in de literatuur uitgewerkt om een set panorama’s relatief te oriënteren: (a) de methode van Fangi (2007) en (b) de methode van Pagani et al. (2011). Beide zijn echter gelijklopend gezien ze gebaseerd zijn op het oplossen van de epipolaire voorwaarde.
2.2.1.6 Relatieve oriëntatie van Fangi (2007) Fangi oriënteert een set van twee panorama’s op basis van slechts 3 parameters. Het eerste panorama wordt in de oorsprong geplaatst. De oriëntatie van het tweede panorama kan berekend worden door enkele voorwaarden vast te leggen. De x-as wordt in de richting van de horizontale translatie gelegd en krijgt een translatiegrootte 1 (bx=1). Bijgevolg is de translatiecomponent in de y-richting by 0. De resterende onbekenden zijn: hoekverdaaiingen ϴ’ en ϴ’’ en de verticale translatie bz. De stationspunten en de beeldpunten liggen in één vlak (nl. het epipolair vlak). Deze eigenschap levert de coplanaire voorwaarde waaruit de oriëntatie kan worden berekend. IWT-TETRAproject
3D4SURE
21·37
𝑓 = (𝑧 ′′ − 𝑧 ′ ) ∙ 𝑏𝑥 + (𝑥 ′′ 𝑧 ′ − 𝑥 ′ 𝑧 ′′ ) ∙ 𝑏𝑦 + (𝑥 ′ − 𝑥 ′′ ) ∙ 𝑏𝑧 = 0 Met:
cot 𝜑1 cos(𝜃 ′ + 𝜃1 ) 𝑥′ = tan( 𝜃 ′ + 𝜃1 ) cot 𝜑2 𝑧′′ = cos(𝜃 ′′ + 𝜃2 ) 𝑥′′ = tan( 𝜃 ′ ′ + 𝜃2 ) 𝑧′ =
Dit stelsel kan worden opgelost met een niet-lineaire kleinste kwadraten benadering (Levenberg Marquardt) en volgende initiële waarden: ϴ’0 = pi/2-r12/R1 ϴ’’0 = 3*pi/2-r21/R2 bz0 =0 R1 en R2 stellen hierbij de straal van de panorama’s voor en r12 en r21 stellen de afgelezen kolompixelcoördinaten in het ene panorama voor van het andere stationspunt. De gebruiker dient bijgevolg de locatie van de stationspunten te schatten in de panorama’s. Belangrijke voorwaarde hierbij is dat de panorama’s benaderend verticaal moeten genomen worden. Het oplossen van de coplanaire conditie levert een eerste benadering van de relatieve oriëntatie. Men kan nu drie of meer GCP’s reconstrueren in het assenstelsel van de oriëntatie. Vervolgens kan de 3D-gelijkvormigheidstransformatie naar het wereldassenstelsel plaatsvinden. Om een punt te reconstrueren lost men volgend stelsel op: 𝑋𝑃 − 𝑌𝑃 tan(𝜃 ′ + 𝜃1 ) = 0 𝑋𝑃 − 𝑌𝑃 tan(𝜃 ′′ + 𝜃2 ) = 𝑏𝑥 − 𝑏𝑦 tan(𝜃 ′′ + 𝜃2 ) 𝑍𝑃 = (𝑑1 cot 𝜑1 + 𝑑2 cot 𝜑2 )/2 Met d1 en d2 de horizontale vizierafstanden. Punten die nu gereconstrueerd worden, staan in het wereldassenstelsel. Men kan nu telkens een extra panorama, die overlap heeft met een reeds georiënteerd panorama, toevoegen. Deze kunnen aan elkaar worden gehangen door punten te reconstrueren die reeds werden gereconstrueerd door de georiënteerde panorama’s. Alle oriëntaties zijn nu in het wereldassenstelsel gekend. Deze kunnen verder worden geoptimaliseerd door een dubbele bundle block procedure. Deze bundle block adjustments zijn gebaseerd op het minimaliseren van de twee collineariteitsvergelijkingen voor elk gereconstrueerd punt van elk panorama. De collineariteisvergelijkingen zijn: (𝑋 − 𝑋0 ) + 𝑑𝛼𝑦 (𝑍 − 𝑍0 ) (𝑌 − 𝑌0 ) − 𝑑𝛼𝑥 (𝑍 − 𝑍0 ) −𝑑𝛼𝑦 (𝑋 − 𝑋0 ) + 𝑑𝛼𝑥 (𝑌 − 𝑌0 ) + (𝑍 − 𝑍0 ) 𝜑 = 𝑎𝑟𝑐𝑐𝑜𝑠 𝑑 𝜃 = 𝜃 ′ + 𝑎𝑟𝑐𝑡𝑎𝑛
Tijdens de eerste stap, de vier parameter bundle adjustment, worden de correcties voor de niet-verticaliteit d𝛼 x en d𝛼 y op 0 vast gezet. De vier te optimaliseren parameters per panorama zijn de verkregen hoekverdraaiing 𝜃 ′ (ten opzichte van het wereldassenstelsel nu) en de panoramapositie X0, Y0 en Z0. In de tweede stap, de zes parameter bundle adjustment, worden de correcties voor de niet-verticaliteit d𝛼 x en d𝛼 y toegevoegd aan de optimalisatie met als initiële waarden 0. Fangi voorziet nog geen mogelijkheid voor dense matching. Punten moeten manueel worden aangeduid op twee of meerdere panorama’s, om vervolgens te worden gereconstrueerd.
IWT-TETRAproject
3D4SURE
22·37
2.2.1.7 Relatieve oriëntatie van Pagani et al. (2011)
Figuur 8: Epipolaire geometrie van twee panorama's Bron: Guan (2011)
De oriëntatie van Pagani et al. (2011) is gebaseerd op het bepalen van de essentiële matrix E. De transformatie tussen twee panorama’s wordt beschreven door een rotatiematrix en een translatievector t . Wanneer twee georiënteerde panorama’s eenzelfde punt P waarnemen, dan liggen de projectiestralen (p1 en p2) en de translatievector in eenzelfde vlak. Dit vlak wordt het epipolair vlak genoemd. Figuur 15 toont deze epipolaire geometrie. Indien men het vectorieel product neemt van de vectoren t en R∙p1, bekomt men een vector die ook loodrecht op p2 staat. Bijgevolg is het inproduct van beiden 0: 𝑝2 [𝑡]𝑥 𝑅𝑝1 = 0 Neemt men de scheef symmetrische matrix [t]x en R samen in de matrix E dan krijgt men: [𝑝2𝑥
𝑝2𝑦
𝐸11 𝑝2𝑧] [𝐸21 𝐸31
𝐸12 𝐸13 𝑝1𝑥 𝐸22 𝐸23] [𝑝1𝑦] = 0 𝐸32 𝐸33 𝑝1𝑧
E wordt de essentiële matrix genoemd. Dit stelsel kan men verder uitschrijven tot:
[
𝑝2𝑥𝑖 𝑝1𝑥𝑖
𝑝2𝑥𝑖 𝑝1𝑦𝑖
𝑝2𝑥𝑖 𝑝1𝑧𝑖 𝑝2𝑦𝑖 𝑝1𝑥𝑖
𝑝2𝑥𝑛 𝑝1𝑥𝑛
𝑝2𝑥𝑛 𝑝1𝑦𝑛
𝑝2𝑥𝑛 𝑝1𝑧𝑛 𝑝2𝑦𝑛 𝑝1𝑥𝑛
𝑝2𝑦𝑖 𝑝1𝑦𝑖 … 𝑝2𝑦𝑛 𝑝1𝑦𝑛
𝑝2𝑦𝑖 𝑝1𝑧𝑖 𝑝2𝑧𝑖 𝑝1𝑥𝑖
𝑝2𝑧𝑖 𝑝1𝑦𝑖
𝑝2𝑦𝑛 𝑝1𝑧𝑛 𝑝2𝑧𝑛 𝑝1𝑥𝑛
𝑝2𝑧𝑛 𝑝1𝑦𝑛
𝐸11 𝐸12 ] 𝐸31 = 0 𝑝2𝑧𝑛 𝑝1𝑧𝑛 ⋮ [𝐸33] 𝑝2𝑧𝑖 𝑝1𝑧𝑖
De singuliere waarde ontbinding (SVD) van dit stelsel levert een oplossing voor de componenten van E (onbekenden). Hiervoor zijn minimaal acht correspondentiepunten (matches) nodig. Het systeem is echter zeer gevoelig voor ruis waardoor er beter met een groter aantal correspondenties kan worden gewerkt zodat de uitschieters met een RANSAC algoritme kunnen worden gefilterd. Vervolgens kan men E ontbinden aan de hand van een singuliere waarde ontbinding in een rotatie en translatie. Er zijn twee rotaties en twee translaties als oplossing mogelijk, wat vier mogelijke combinaties oplevert. Voor elke combinatie dient men enkele punten te reconstrueren met telkens het eerste panorama in de oorsprong. De combinatie waarvoor de 3D-punten dezelfde richting en zin hebben als de projectiestralen dient behouden te blijven. IWT-TETRAproject
3D4SURE
23·37
SVD van E levert: 𝐸 = 𝑈𝑆𝑉 𝑇
Met:
𝑅 = 𝑈𝑊𝑉 𝑇 𝑂𝐹 𝑈𝑊 𝑇 𝑉 𝑇 0 0 𝑡 = [ 0 ] 𝑂𝐹 [ 0 ] 𝑢3 −𝑢3
0 −1 0 𝑊 = [1 0 0] 0 0 1 De intersectie van het epipolair vlak met de bol van het tweede panorama is een grootcirkel. Door kleine foutjes zullen de beeldpunten op het tweede panorama niet perfect op deze grootcirkel liggen. Men kan nu de oriëntatie optimaliseren door de afstanden van de beeldpunten ten opzichte van de grootcirkel te minimaliseren in een niet-lineaire kleinste kwadratenvereffening. Pagani et al. (2011) stellen hiervoor de minimalisatie van de afstandsmaat dist_ep_tangent voor. Dit is de afstand tussen het beeldpunt en het epipolair vlak dat lokaal op een rakend vlak wordt geprojecteerd. 𝑑𝑖𝑠𝑡_𝑒𝑝_𝑡𝑎𝑛𝑔𝑒𝑛𝑡 =
𝑝2𝑇 𝐸𝑝1 √1 − (𝑝2𝑇 𝐸𝑝1 )2
De oriëntatie van eventuele volgende panorama’s kan gedaan worden op basis van matches met reeds georiënteerde panorama’s. Voor deze matches kent men immers de 3Dmodelcoördinaten door ze te reconstrueren uit de georiënteerde panorama’s. Op basis van minimaal zes correspondenties kan men de rotatie en translatie bepalen van het cameraassenstelsel naar het modelassenstelsel: 𝑃𝐶 = 𝑅𝑃𝑊 + 𝑡 Het kruisproduct van de eenheidsvector p op het panorama en de transformatievector RPw+t levert de nulvector. Deze voorwaarde levert drie vergelijkingen, waarvan slechts twee lineair onafhankelijk. 𝑝 𝑥 (𝑅𝑃𝑊 + 𝑡) = 0 Deze oriëntatie kan opnieuw worden verbeterd aan de hand van een niet-lineaire optimalisatie. Het gereconstrueerde 3D-punt wordt terug geprojecteerd op de sfeer ( Pr) en de afstand tussen dit punt en het beeldpunt op de sfeer (p) worden vervolgens geprojecteerd op een rakend vlak. Deze afstand, dist_pt_tangent, dient nu te worden geminimaliseerd. 1 − 𝑝 ∙ 𝑃𝑟 𝑑𝑖𝑠𝑡_𝑝𝑡_𝑡𝑎𝑛𝑔𝑒𝑛𝑡 = 2√ 1 + 𝑝 ∙ 𝑃𝑟 Elke keer een camera wordt toegevoegd, volgt er een globale bundle adjustment over alle camera’s en alle gereconstrueerde 3D-punten.
3.4.
Eigen prototype code
Op basis van de uitwerkingen van Pagani et al.(2011) werd getracht een eigen prototype code uit te werken met VXL in C++. Een eerste stap bestaat uit het bepalen van pixelcorrespondenties (of matches) tussen twee panorama’s. Initieel werden hiervoor handmatig aangeduide punten gebruikt, die op beide foto’s ondubbelzinnig voorkwamen. Vervolgens dient de E-matrix de worden bepaald aan de hand van een svd-decompositie. Hiervoor dient men voor elk koppel matches de epipolaire voorwaarde op te stellen. De matches kunnen met RANSAC gefilterd worden op basis van hun epipolaire fout. Later kan men de bekomen E-matrix optimaliseren in een Levenberg-Marquardt algoritme door de epipolaire IWT-TETRAproject
3D4SURE
24·37
fout te minimaliseren (bvb. dist_ep_tangent). Deze finale E-matrix kan men dan ontbinden in een rotatie en translatie aan de hand van svd. Het eerste panorama wordt in de oorsprong geplaatst en het tweede krijgt de coördinaten van de translatievector en wordt geroteerd. Vervolgens kan men punten reconstrueren op de willekeurige schaal, die vastgelegd werd door de translatievector. Gezien de perspectieve stralen vanuit de twee cameraposities nooit perfect zullen snijden, werd er gezocht naar het kortste lijnstuk dat de twee stralen verbindt. Het middelpunt van dit lijnstuk werd het gereconstrueerde punt. Na het reconstrueren van enkele GCP’s kan men het model transformeren aan de hand van een gelijkvormigheidstransformatie. Men kan hierbij de RMS van de GCP’s berekenen. Tijdens het testen kwam het probleem van de instabiliteit bij het oplossen van de E-matrix naar boven. De singuliere waarden ontbinding van het stelsel van epipolaire voorwaarden blijkt zeer gevoelig te zijn aan ruis. Enkele bemerkingen: 1. Eerst werd er met handmatig aangeduide matches gewerkt. Indien alle 30 matches aangeduid werden, bleek geen oplossing mogelijk. Uit deze set werd nat wat trial and error een subset van 16 matches gevonden die wel een relatief goede oriëntatie toelieten. Er werden 7 GCP’s gereconstrueerd die een goede insnijding vanuit beide stations toelieten. De gemiddelde deviatie na transformatie bleek dX=20,6mm; dY=19,12mm en dZ=20,9mm. 2. Om te testen of het algoritme goed werkte, werd er ook een virtuele dataset opgesteld van 30 matches voor twee panorama’s met enkel een translatie in x-richting. Deze matches bevatten geen ruis. Het algoritme leek deze virtuele punten, na transformatie, perfect te reconstrueren. Van hieruit werd er telkens wat meer ruis op enkele matches toegevoegd. Indien er met het minimum aantal matches wordt gewerkt (8), is de bepaling van E zeer onstabiel. Des te meer matches er werden gebruikt, hoe beter er met ruis kan worden omgegaan. 3. Uit 2 werd besloten dat er indien er met veel goede matches kan worden gewerkt, de oplossing veel stabieler is. Daarom wensten we de piste van de automatische matching te verkennen. In de literatuur bestaan voorlopig geen methoden om twee panorama’s rechtsreeks te matchen. De methode die wordt voorgesteld, onder meer door Pagani et al. (2011), bestaat uit het genereren van virtuele perspectief foto’s van de panorama’s door een deel van de sfeer op een rakend vlak te projecteren. Deze perspectief foto’s, waarvan de relatie tot de panorama’s duidelijk gekend is, worden dan onderling gematcht op de conventionele manier. In Matlab werd code opgesteld om een equirectangulair panorama op te splitsen in 21 virtuele foto’s volgens homogene intervallen. Om een idee te geven of dit ons de gewenste stabiliteit en goede oriëntatie zou geven zoals verwacht werd, werden eerst de matches uit Photoscan met een Python script geëxporteerd. Deze werden als input voor onze code gebruikt. De nauwkeurigheid op de 7 GCP’s bedroeg: dX=53,4mm dY=25,6mm en dZ=56,1mm. Met andere woorden gaf dit een slechter resultaat als de werkende combinatie van 16 handmatige matches. Dit illustreert duidelijk de nood aan een goede combinatie van matches, die automatisch enkel kan verkregen worden met een nauwkeurige RANSAC of handmatig.
3.5.
Panorama rectificatie
De essentiële matrix E geeft het verband tussen twee overlappende panorama’s. Voor een punt op het linker panorama kan het epipolair vlak worden opgesteld met behulp van E. Dit vlak snijdt zoals gezegd het rechter panorama in een grootcirkel. Wanneer men deze grootcirkel met de bol projecteert aan de hand van de equirectangulaire projectie, krijgt men een epipolaire curve (sinusoïdale vorm). Indien er wordt gezocht naar het overeenkomstig punt van een linker beeldpunt op het rechter panorama, kan men langsheen deze epipolaire curve zoeken naar de IWT-TETRAproject
3D4SURE
25·37
meest gelijkaardige pixel. Men kan echter panorama’s rectificeren waardoor de epipolaire curves verticale lijnen worden. Bijgevolg kan men langs deze lijnen veel eenvoudiger naar gelijkaardige pixels zoeken. De translatievector, die de centra van de sferen verbindt, snijdt de sferen in twee punten. Deze punten worden de epipolen genoemd. Om een koppel panorama’s te rectificeren, dient men de twee sferen te roteren zodat hun epipolen in de respectievelijke noordpool komt te liggen. Als gevolg zijn de epipolaire grootcirkels nu meridianen geworden, welke door de equirectangulaire projectie worden afgebeeld als verticale lijnen. Figuur 16 toont bovenaan een linker panorama met enkele geselecteerde beelpunten. In het midden ziet u het rechter panorama waarop de corresponderende epipolaire curves zijn afgebeeld. Onderaan wordt het gerectificeerde rechter panorama getoond met verticale epipolaire lijnen.
Figuur 9: Panorama rectificatie Bron: Guan (2011)
IWT-TETRAproject
3D4SURE
26·37
De epipolen e1 en e2 voor een koppel panorama’s worden gevonden uit volgende svddecomposities: 𝐸𝑒1 = 0 𝐸 𝑇 𝑒2 = 0 Voor elk panorama kan de rotatie R gevonden worden door: 1 − 𝑒𝑇𝑁 2 [𝑣]𝑥 ||𝑣||2 Met I een 3x3 eenheidsmatrix, e de respectievelijke epipool, N [0,0,1] T de noordpool en 𝑣 = 𝑒 𝑇 × 𝑁 zodat de scheef symmetrische matrix [v]x er als volgt uitziet: 𝑅 = 𝐼 + [𝑣]𝑥 +
0 −𝑣3 𝑣2 0 −𝑣1 ] [𝑣]𝑥 = [ 𝑣3 −𝑣2 𝑣1 0 Deze techniek lijkt zeer geschikt om aan dense matching te doen in het geval van stereo panoramische fotogrammetrie.
3.6.
Dense Matching volgens Pagani et al. (2011)
In Pagani et al. (2011) worden er voor elk panorama 10 tot 30 virtuele perspectieve beelden gecreëerd. Dit doen ze door een deel van de sfeer te projecteren op een tangentieel vlak. Deze vlakken worden gelijkmatig verdeeld over de sfeer. Vervolgens kan er een gewone (perspectieve) dense matching uitgevoerd worden op de virtuele beelden. Hiervoor gebruiken ze PMVS van Furukawa. Deze pixelpunten worden teruggerekend naar de panorama’s en vervolgens gereconstrueerd.
3.7.
Meetconfiguratie
Punten die gereconstrueerd worden in 3D, worden getrianguleerd vanuit twee of meerdere georiënteerde panoramastations. De nauwkeurigheid van de reconstructie hangt hierbij af van de insnijdingshoek tussen de vizierlijnen. Een optimale nauwkeurigheid wordt bekomen bij een haakse insnijding (90°). In en rond het verlengde van de verbinding tussen twee panorama’s is er geen reconstructie mogelijk, gezien de insnijding te scherp is. Onderstaande figuur geeft het kwaliteitsverloop van de reconstructie weer in functie van de insnijdingshoek, voor zowel een horizontale translatie als een verticale.
IWT-TETRAproject
3D4SURE
27·37
Figuur 10: Nauwkeurigheid van de meetconfiguratie Bron: http://hugha.co.uk/
4. TESTEN Voor dit werkpakket werden er enkele testen uitgevoerd om de huidige mogelijkheden van panoramische fotogrammetrie te analyseren.
4.1.
3D-RECONSTRUCTIE D.M.V. ABSOLUTE ORIËNTATIE
Deze testen werden uitgevoerd door Fabian Van Geert in het kader van zijn thesis. Hij testte deze methode aan de hand van drie opstellingen: 1. Twee panorama’s boven elkaar genomen (verticale basis van slechts 0,24m) 2. Twee panorama’s op dezelfde hoogte met horizontale basis (2,10 m) 3. Drie panorama’s waarvan twee op gelijke hoogte en één 0,24m hoger. De driehoekszijden waren 2,10m – 2,9m – 3,7m. De panorama’s werden genomen met een CANON EOS 5D, een 8mm fisheye lens en een nodal ninja. De beelden werden in PTGui gestitcht. Er werden 38 controlepunten ingemeten met een totaalstation. Voor De gemiddelde absolute deviaties ten opzichte van de totaalstationcoördinaten worden in onderstaande tabel getoond. de eerste opstelling bleek de verticale basis veel te kort te zijn, waardoor de onzekerheid op de insnijdingspunten sterk toeneemt. Dit uit zich in de bekomen nauwkeurigheden. De beste nauwkeurigheden worden bekomen voor opstelling 3, gezien hier een extra panorama (en dus ook waarneming) wordt toegevoegd.
IWT-TETRAproject
3D4SURE
28·37
Opstelling ABSOLUTE ORIËNTATIE Opstelling 1 Opstelling 2 Opstelling 3 PHOTOSCAN Opstelling 1 Opstelling 2 Opstelling 3
Gemidd. Δx(m)
Gemidd. Δy(m)
Gemidd. Δz(m)
0,3038 0,0582 0,0444
0,1951 0,0655 0,0288
0,0808 0,0260 0,0260
0,4255 0,0148 0,0157
0,3443 0,0113 0,0098
0,2499 0,0140 0,0151
Deze proef werd later hernomen met een 24mm lens. Dit leverde een betere resolutie. Opnieuw werden er controlepunten (30) opgemeten met totaalstation. Gezien de panorama’s in een smalle gang werden genomen, zijn de afstanden tussen de controlepunten en de cameraposities nu kleiner (1-10 m versus 4-12m). Er werden twee opstellingen gebruikt: 1. Een horizontale basis van 3,10 m 2. Een verticale basis van 0,69 m De resultaten worden in onderstaande tabel getoond. Uit onderstaande gegevens werden een drietal uitschieters verwijderd welke deviaties gaven van meer dan 1m. Deze punten bevonden zich op plaatsen waar de insnijding slecht was. Zoals verwacht levert een langere verticale basis betere 3D-reconstructies. Opstelling ABSOLUTE ORIËNTATIE Opstelling 1 Opstelling 2
4.2.
Gemidd. Δx(m)
Gemidd. Δy(m)
Gemidd. Δz(m)
0,0266 0,0166
0,0059 0,0046
0,0113 0,0096
DENSE RECONSTRUCTIES VAN INTERIEURS MET PHOTOSCAN
4.2.1.Interieur Sint-Jan-Baptistkerk Gent Als eerste test werd er getracht om een deel van het interieur van de Sint-Jan-Baptistkerk te reconstrueren. Hiervoor werden elf 8mm fisheye panorama’s genomen in de kerk. Deze panorama’s hebben een resolutie van ca. 27 MP.
Figuur 11: Panorama SJB IWT-TETRAproject
3D4SURE
29·37
Tijdens het stitchen bleek de grootte van de elf panorama’s lichtjes te variëren. Om een goede kalibratie toe te laten in Photoscan, werd er voor gekozen om alle panorama’s te creëren met dezelfde grootte 7380 x 3690 pix (=grootte eerste panorama). Bij het ‘camera calibration’ menu dient men aan te geven dat men met spherical images werkt. Vervolgens vormt de oriëntatie (Align Photos) en de dense matching (Build Dense Cloud). Het volgende is een voorbeeld van de resulterende puntenwolk. Het is duidelijk dat de dense matching nog heel wat problemen kent. De overgrote meerderheid werd niet gereconstrueerd. Waarschijnlijk door te sterke vervormingen en veranderende gezichtspunten gezien we op korte afstand werkten.
Figuur 12:Medium Dense Point Cloud SJB
11 Pano-opnames 11 Pano’s stitchen in PTGui Oriëntatie Photoscan Build Dense Cloud
11 x 4min 11 x 2min 2min 35min
Panorama’s met een 1,2 GigaPixel resolutie (50mm lens) bleken geheugenproblemen in Photoscan op te leveren en zijn dus niet bruikbaar. Gelijktijdig met deze test kwam Pix4Dmapper uit met de ondersteuning voor fisheye lenzen. Fisheye lenzen hebben ook potentieel voor interieurmetingen gezien hun ruime beeldhoek. Een deel van de Sint-Jan-Baptist kerk werd ook met 8mm fisheye foto’s gedocumenteerd. Voor een goede kalibratie en reconstructie toe te laten is het nodig dat er met kleine basislengtes wordt gewerkt. In de praktijk kwam dit neer op één foto om de 1,5m.
IWT-TETRAproject
3D4SURE
30·37
Onmiddellijk kan er opgemerkt worden dat er zeer veel kon worden gereconstrueerd. Maar na het meshen van een stuk van de puntenwolk blijkt duidelijk dat de kwaliteit niet toereikend is voor het afleiden van grondplannen en doorsnedes. De puntenwolk vertoont te veel ruis. Het moet gezegd worden dat deze kerk niet veel textuur vertoont (muren, gewelven en pilaren zij egaal wit).
Figuur 13: Mesh op basis van fisheye photogrammetry SJB IWT-TETRAproject
3D4SURE
31·37
4.2.2. Interieur Onze-Lieve-Vrouwekerk Alsemberg In de kerk van Alsemberg werden er vijftien 24mm panorama’s genomen met de GigaPan. Het oorspronkelijk idee was om dit model indien mogelijk te combineren met modellen van de buitenzijde en hieruit doorsnedes als eindproduct af te leiden. De gestitchte panorama’s (PTGui) hebben een allemaal een vaste resolutie van 289 MP. Na de oriëntatie van de panorama’s werden 10 GCPs toegevoegd. Deze B&W targets werden opgemeten met een totaalstation in doorslag vanuit één standpunt. Elk target is op minimaal vier panorama’s duidelijk te herkennen. De op basis van de panorama’s gereconstrueerde GCPs hebben na de transformatie een RMS van 5,2 mm (minimale afwijking 3,2mm en maximale 7,8mm). Dit wijst duidelijk op een sterke oriëntatie van de 15 panorama’s.
Figuur 14: Panorama Interieur Alsemberg
Hierna werden 10 andere testpunten gereconstrueerd die niet werden gebruikt voor de transformatie. Deze testpunten zijn natuurlijke punten in plaats van targets en werden tegelijkertijd met de GCPs opgemeten met totaalstation. De totaalstationcoördinaten van deze punten gelden als referentie (ground truth). De deviaties worden in volgende tabel getoond. Uit een gemiddelde 3D-deviatie van 5,7mm blijkt dat een nauwkeurige manuele reconstructie van de punten mogelijk is.
AVG MIN MAX
ΔXY(m) 0,0049 0,0010 0,0082
ΔZ(m) 0,0024 0,0004 0,0050
ΔXYZ(m) 0,0057 0,0024 0,0084
De dense matching daarentegen schept voorlopig nog geen mogelijkheden voor de generatie van grondplannen en doorsnedes. Er wordt al een heel pak meer gereconstrueerd als in de SintJan-Baptistkerk. Het interieur van de Onze-Lieve-Vrouwekerk Alsemberg vertoont wel veel meer textuur. Maar nog steeds werd er globaal gezien te weinig gereconstrueerd en met te veel ruis.
IWT-TETRAproject
3D4SURE
32·37
Figuur 15: Dense Cloud Interieur Alsemberg
Figuur 16: Puntenwolk en Mesh van detail Interieur Alsemberg
Een stuk dat beter werd gereconstrueerd, was een kleine inham waar we gedwongen waren om twee panorama’s te maken met een verticale basis van 80cm. De ontbrekende stukken zijn vooral stukken die niet zichtbaar waren op beide panorama’s.
5. FISHEYE FOTOGRAMMETRIE Sinds April 2014 ondersteunt Pix4Dmapper het gebruik van fisheye lenzen voor fotogrammetrische doeleinden. Gezien de grote beeldhoek is het eenvoudiger om een goede overlap de handhaven doorheen een interieur scene en reduceert het aantal benodigde foto’s ten opzichte van het gebruik van traditionele lenzen. Fisheye fotogrammetrie heeft bijgevolg potentieel om als alternatief voor panoramische fotogrammetrie te dienen. Een nadeel is de afgenomen resolutie, maar hiertegenover staat de snelheid van acquisitie .
IWT-TETRAproject
3D4SURE
33·37
5.1.
Casestudie: Sint-Michielskerk Gent
Om fisheye fotogrammetrie te testen werd getracht de kooromgang van de Sint-Michielskerk te Gent te reconstrueren. Om een goede kalibratie van de fisheye foto’s mogelijk te maken, is een zeer hoge overlap nodig. Dit resulteerde in een ketting van 417 overlappende foto’s, bestaande uit een strip voorwaarts, een strip naar links, een strip naar rechts en een strip naar boven gericht. De strips werden onderling verbonden door de richting van de camera geleidelijk aan te passen. De beperkte lichtinval beklemtoont de nood aan voldoende overlap. Het verzamelen van de foto’s gebeurde met een Canon EOS 5D en 8mm fisheye lens en duurde 55 minuten. De totale verwerkingstijd in Pix4Dmapper valt vrij goed mee gezien de grootte van de fotoset(9 uur inclusief aanduiden van GCP’s, 16 GB RAM laptop met 2GB videokaart). Er werden 8 GCP’s opgemeten met totaalstation, dit leverde een RMS van 1,0cm op. Figuren 24 en 25 tonen de resulterende puntenwolk en een horizontale sectie. Indien men grote projecten zou opmeten, lijkt het verstandig deze op te delen in blokken met onderlinge overlap en deze na verwerking samen te voegen met gebruik van voldoende GCP’s.
Figuur 17: Fisheye puntenwolk
IWT-TETRAproject
3D4SURE
34·37
Figuur 18: Horizontale sectie
6. CONCLUSIE Panorama’s kan men makkelijk en relatief goedkoop maken aan de hand van een camera, statief met een (automatische) panoramische kop en stitching-software. De methode is wel niet snel te noemen op het terrein, want voor grotere ruimtes met veel schaduwzones zijn er al snel heel wat panorama’s nodig. Alhoewel panorama’s naar fotogrammetrie toe sterke voordelen te bieden hebben, zijn op het huidige moment nog niet in staat om reconstructies met voldoende kwaliteit af te leveren. De oriëntatie gebeurt sterk, ook goede manuele reconstructie is mogelijk, maar de dense matching is te zwak. Waarschijnlijk wordt dit veroorzaakt door te sterke veranderingen in vervormingen en zichtpunten, gezien het om relatief kleine ruimtes gaat waar alles zich vrij dicht bij de camera bevindt. Op het huidige moment gebeurt de dense matching door te sterk vervormde panorama’s te herleiden naar enkele gewone perspectief foto’s. Vervolgens kan men de gewone SfM dense matching methodes gebruiken. Hier is nog ruimte voor optimalisatie. Op basis van Pagani et al. (2011) werd er getracht een eigen open source code op te stellen. Hieruit bleek dat het oplossen van de E-matrix zeer onstabiel wordt wanneer er een kleine hoeveelheid ruis op de pixelcorrespondenties aanwezig is. Bijgevolg is de code niet toepasbaar, gezien de beperkte nauwkeurigheid. Absolute oriëntatie geeft wel goede resultaten, maar kent zijn eigen beperkingen. De fisheye fotogrammetrie die Pix4Dmapper aanbiedt, toont wel een goede dense matching en lijkt gezien de snelheid van de fotoacquisitie een interessante alternatieve piste. Vergelijkingen met laserscan data dienen nog te gebeuren om de kwaliteit van de data grondig te kunnen analyseren. IWT-TETRAproject
3D4SURE
35·37
7. BIBLIOGRAFIE 7.1.
Internetbronnen
http://www.hugha.co.uk/NodalPoint/Index.htm#A_simple_method_... http://wiki.panotools.org/ http://www.cambridgeincolour.com/tutorials/image-projections.htm http://www.shoot.be/tag/panorama/ (geraadpleegd op 1,2,3 juli 2013)
7.2.
Literatuur
[1] Danilo Schneider, Ellen Schwalbe, Design and testing of mathematical models for a full-spherical camera on the basis of a rotating lineair array sensor and a fisheye lens, p 3-5 [2] Gabriele Fangi (2007), The multi-image spherical panoramas as a tool for architectural survey, XXI International CIPA Symposium, 01-06 October 2007, Athens, Greece, 1-3 [3] Gabriele Fangi, Investigation on the suitability of the spherical panoramas by realviz stitcher for metric purposes, p 1-3 [4] Gabriele Fangi, Fotogrammetria Close-Range e Visual Design per i Beni Culturali, p 31-47 [5] Guenter Pomaska, Documentation and Internet Presentation of Cultural Heritage Using Panoramic Image Technology, p 1-2 [6] H. Haggrén, H. Hyyppä, O. Jokinen, A. Kukko, M. Nuikka, T. Pitkänen, P. Pöntinen, P. Rönnholm. Photogrammetric application of spherical imaging, p 1 [7] Jafar Amiri Parian (2007), Sensor Modeling, Calibration and Point Positioning with Terrestrial Panoramic Cameras, p 15-20 [8] Julia Benzar (2012), Thesis hardware and software for panoramic photograph, p 1718 [9] Marc Pollefeys, Luc Van Gool, Some issues on self-calibration and critical motion sequences, p 3-4 [10] Thomas Luhmann, A historical review on panorama photogrammetry, p 1-3 [11] Wissam Wahbeh (2011), Architectural Digital Photogrammetry, Panoramic ImageBased Interactive Modelling, p 10-12, 38, 47-49 [12] Alain Pagani, Christiano Gava, Yan Cui, Bernd Krolla, Jean-Marc Hengen, Didier Stricker (2011), Dense 3D point cloud generation from multiple high-resolution spherical images. The 12th International Symposium on Virtual Reality, Archaeology and Cultural Heritage VAST
[13] Xiaoyin Guan (2011) Spherical Image Processing for Immersive Visualistaion and View Generation. PhD thesis for Applied Digital Signal and Image Processing (ADSIP) Research Centre, School of Computing, Engineering and IWT-TETRAproject
3D4SURE
36·37
Physical Science at the University of Central Lancashire, Preston, England [14] Kauhanen, H., Rönnholm, P. (2012) IMAGE ACQUISITION CONSTRAINTS FOR PANORAMIC FRAME CAMERA IMAGING, International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XXXIX-B3, 2012 XXII ISPRS Congress, 25 August – 01 September 2012, Melbourne, Australia [15] Fabian Van Geert (2013) Masterproef: Fotogrammetrie uit panoramische beelden. Katholieke Hogeschool Sint-Lieven Departement Industrieel Ingenieur Technologiecampus Gent (associatie KULeuven)
IWT-TETRAproject
3D4SURE
37·37