Meten op vlakke structuren door middel van gerectificeerde …...Meten op vlakke structuren door...
Transcript of Meten op vlakke structuren door middel van gerectificeerde …...Meten op vlakke structuren door...
Meten op vlakke structuren door middel van gerectificeerde foto’s
FACULTEIT INDUSTRIELE INGENIEURSWETENSCHAPPEN
CAMPUS DE NAYER
Promotor: Dr. Ir. Arch. Bjorn Van Genechten
Vincent VRIJSEN
Masterproef ingediend tot het behalen van
de graad van master of Science in de
industriële wetenschappen: bouwkunde,
afstudeerrichting landmeten
Academiejaar 2013-2014
Meten op vlakke structuren door middel van gerectificeerde foto’s
Promotor: Dr. Ir. Arch. Bjorn Van Genechten
Vincent VRIJSEN
Academiejaar 2013-2014
Masterproef ingediend tot het behalen van
de graad van master of Science in de
industriële wetenschappen: bouwkunde
afstudeerrichting landmeten
III Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Woord vooraf
Een masterproef dient de ultieme weergave te zijn van een gedegen onderzoek na
een vruchtbare studentenperiode. Met onderhavig werkstuk probeer ik het bewijs te
leveren van deze stelling.
Alhoewel dit werk een individuele realisatie is, wilt dit niet zeggen dat ik deze scriptie
had kunnen voltooien zonder de hulp en steun van verschillende personen.
Om deze reden had ik graag mijn promotor Dr. Ir. Arch. Bjorn Van Genechten
bedankt voor zijn geduld, tijd en wijze raad doorheen het academiejaar, alsmede
voor het aanreiken van een uitermate interessant onderwerp.
Het Departement Architectuur, Stedenbouw en Ruimtelijke Ordening aan de KU
Leuven dank ik voor het ter beschikking stellen van landmeetkundig materiaal om de
muur van het Kasteel Arenberg in te meten.
Verder nog mijn oprechte waardering voor Campus De Nayer, waar ik een erg leerrijk
masterjaar mocht volgen.
Ten slotte had ik graag mijn familie en vrienden bedankt, niet enkel voor de financiële
geruststelling, maar vooral voor hun onvoorwaardelijke en morele steun doorheen
mijn studentencarrière.
Ontzettend veel dank allemaal!
© 2014, Vincent Vrijsen
V Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Abstract
Het gedetailleerd opmeten van een façade of muur kan voor een landmeter
behoorlijk veel tijd vragen. Indien we echter details kunnen lokaliseren in een foto
van deze gevel, dan heeft dit onmiskenbaar een aantal voordelen, waarvan het
tijdsaspect zeker niet het onbelangrijkste is. Ook krijgen we een visuele weergave
van de werkelijkheid achter de opmeting. Nadelig is echter dat foto’s van nature
vervormingen bevatten, waardoor erop meten niet onmiddellijk mogelijk lijkt.
In deze scriptie wordt er stap voor stap gekeken hoe de inherente
perspectiefvervorming van een foto kan gecorrigeerd worden zodat er toch
rechtstreeks op kan gemeten worden. Dit noemt men de rectificatie van een foto.
Daarenboven wordt er naar automatisatie gestreefd. Hierdoor kunnen ook lange
muren of bijvoorbeeld façades in een lintbebouwing, die normaal in meerdere foto’s
dienen gefotografeerd te worden, opgemeten worden. Deze automatisatie bestaat
erin dat de foto’s met onderlinge overlapping, automatisch georiënteerd worden ten
opzichte van elkaar zodat uiteindelijk één grote foto ontstaat. Deze nieuwe foto kan
dan op haar beurt gerectificeerd worden door middel van minimum 4 controlepunten
zoals vereist bij een projectieve transformatie.
Aan de hand van de technische softwareomgeving MATLAB wordt er
probleemoplossend gezocht naar een methode om stapsgewijs foto’s voor te
bereiden teneinde er vervolgens ogenblikkelijk op te meten. Ook wordt er dieper
ingegaan op de nauwkeurigheid van deze ontwikkelde methode.
Trefwoorden: rectificatie, automatisatie, MATLAB
VII Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Abstract (English)
The detailed measurement of a facade or a wall may require a considerable amount
of time for a surveyor. Searching for details in a photograph taken of this facade
could save the surveyor a huge amount of time as it is more intuitive. However,
photographs contain certain distortions that make it impossible to directly take
measurements.
In this thesis, we investigate how the inherent perspective distortion of photographs
can be corrected in order to be able to measure onto them directly. This is a process
called rectification.
Besides this, the thesis aims to automate a process that can even handle a larger
amount of photographs with certain overlap, for example a large wall that only fits
onto multiple photos. This automation step will try to automatically orient the
overlapping photographs and stitch them together into one large photograph. This
photograph can then be rectified using the projective transformation method using at
least the necessary 4 control points.
By using a numerical computing environment like MATLAB a method is developed to
prepare the photos in such a way that it will be possible to measure directly on them.
An extensive review is done on the accuracy of this developed method.
Keywords: rectification, automation, MATLAB
IX Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Summary
When a facade is measured by a surveyor, it is well known that this professional
activity requires a lot of time. This is due to mounting a total station and precise
measuring on the wall. This survey results in a large set of points.
This thesis discloses an alternative method which in the first place will save much
time, but will also provide the surveyor with more freedom as he or she will not have
to perform all measurements on-site. This alternative method consists of a technique
to measure directly onto an image, called image rectification. However, this
technique requires certain conditions to be met which will be elaborated in the thesis.
For example, the façade has to be a flat.
There is an huge issue though. Measuring is not possible on every photo. Before
anyone can measure directly on a photograph, the photo has to be undistorted in a
way that the image becomes a scaled version of reality. Getting rid of this
perspective distortion is called rectification. A well-known example of this kind of
distortion is a picture taken, standing at the base of a skyscraper while looking at the
entire building. This will result in a picture where the building seems to be wider at
the base than it is at the top while this building actually is as wide at the bottom as it
is at the top. This phenomenon is called perspective distortion. As said before, to
get rid of this kind of distortion rectification has to be used.
When a measurement is done on a photograph, the accuracy of this measurement
will not be the same as the accuracy of a measurement directly on the façade. For
this reason, the accuracy of this alternative method will be investigated throughout
the thesis.
The literature study is split into two main parts. The first part of the literature study
consists of rectification theories. As said before, rectifying a photo is used to be able
to measure onto this photo. There are quite some rectification models like the
differential rectification model, the polynomial model, etc. In this thesis the model
used is the projective transformation model.
The second part deals with the relation between two pictures. Instead of rectifying
multiple images of a facade separately (e.g. a very long wall), it might be interesting
to stitch these images together in advance and rectify this new image at once. When
a photograph is taken from a facade and subsequently when the photographer
X Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
moves a little bit to another direction, he takes a second picture. This will result in two
pictures that overlap each other. In this overlapping region there are objects
(corners, lines, points, ..) that are in common in both images. Based on the
corresponding features between images, the transformation that maps one image
onto the other can be computed.
It is quite important when images need to be transformed (in order to measure onto
them directly in a later stage) that these images themselves are not distorted. Images
taken with a digital camera do possess radial or tangential distortions, a method to
correct them is by using a camera calibration. Therefore a whole chapter is dedicated
to this calibration.
After the theories are framed in the literature study chapter, the methodology is
discussed. In this chapter the theories need to be applied to solve the problems
stated before. Like the previous chapter (literature study), this chapter is also split
into two parts. First the relation between two pictures is tackled. There has to be an
algorithm to find features between these two images. Once these are found, it will be
possible to calculate the relation between these images as a homography. An
homography is an 3-by-3 matrix which can undistort one image to make the distortion
correspond to the distortion of the other picture. This can be easily explained using
two images (Figuur 0-1) as an example. The left and right image are photos of the
same wall, taken with a bit of overlap.
Figuur 0-1: Left Image and right image
XI Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
After some features have been found in both images, the homography can be
calculated. This homography can now undistort the left image in such a way that it
has the same perspective distortion as the right image. The pictures below (Figuur
0-2) are the same left picture as above before and after the perspective distortion.
Figuur 0-2: Before and after projective distortion
When two images (Figuur 0-2) have the same distortion, it is possible to stitch them
together like the left picture below (Figuur 0-3).
Figuur 0-3: Two (left) and seven (right) images stitched together
Once two or more (see right picture Figuur 0-3) are stitched together, it is possible to
rectify these pictures, thus making it possible to measure onto these images. In order
to make this projective transformation (rectification) it is necessary to have a
minimum of 4 control points (in x- and y-coordinates), these can be measured for
example with a total station.
XII Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
In the following chapter, the suggested process is implemented into MATLAB.
MATLAB is a numerical computing environment and very useful due to the variation
of functions, algorithms and easily to understand coding. For example, the picture
below shows a function in MATLAB, where two images are projected as one
composite image and the relation between features visible as a yellow line.
Figuur 0-4: Composite function in MATLAB
After the code has been implemented, there is an extensive chapter with an example
of the usage of the MATLAB code. The accuracy and application use of the
developed code is handled in another chapter.
In the conclusion, advantages and some shortcomings of the method described in
this thesis are explained.
XIII Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Inhoudsopgave
Woord vooraf .............................................................................................................. III
Abstract ...................................................................................................................... V
Abstract (English) ..................................................................................................... VII
Summary ................................................................................................................... IX
Inhoudsopgave ........................................................................................................ XIII
Verklarende woordenlijst ............................................................................................. 2
Lijst van figuren ........................................................................................................... 3
Probleemstelling ................................................................................................... 5 1.
Literatuurstudie .................................................................................................. 11 2.
2.1. Inleiding ........................................................................................................ 11
2.1.1. Relatie tussen foto en werkelijkheid: rectificatie .................................... 11
2.1.2. Relatie tussen 2 foto’s onderling: overeenkomstige punten ................... 11
2.2. Rectificatie .................................................................................................... 12
2.2.1. Inleiding ................................................................................................. 12
2.2.2. Projectieve rectificatieprocedure ............................................................ 15
2.2.3. Resampling technieken ......................................................................... 22
2.3. Overeenkomsten tussen foto’s ..................................................................... 27
2.3.1. Inleiding ................................................................................................. 27
2.3.2. Features ................................................................................................ 28
2.3.3. Feature detectie ..................................................................................... 28
2.3.4. Feature descriptie .................................................................................. 30
2.3.5. Feature matching ................................................................................... 30
2.3.6. Algoritmen ............................................................................................. 32
2.4. Bestaande software...................................................................................... 39
2.4.1. PhoToPlan ............................................................................................. 39
2.4.2. Hugin ..................................................................................................... 39
Camera kalibratie ............................................................................................... 41 3.
3.1. Lens correctie door middel van Adobe Photoshop ....................................... 41
XIV Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
3.2. Lens correctie door middel van Camera Calibration Toolbox in MATLAB ... 42
3.2.1. Intrinsieke parameters ........................................................................... 43
3.2.2. Extrinsieke parameters ......................................................................... 44
3.2.3. Toepassing camera kalibratie ............................................................... 45
3.2.4. Kalibratiestap ........................................................................................ 46
Methodologie ..................................................................................................... 53 4.
4.1. De relatie tussen foto’s onderling ................................................................. 53
4.2. De relatie tussen een foto en de werkelijkheid ............................................ 54
MATLAB ............................................................................................................ 57 5.
5.1. Inleiding ....................................................................................................... 57
5.2. MATLAB code: ontleding ............................................................................. 57
5.2.1. Eerste stap: Automatische rectificatie met behulp van SURF ............... 57
5.2.2. Tweede stap: Samenplakken van getransformeerde foto’s .................. 60
5.2.3. Derde stap: rectificatie van samengeplakte foto’s ................................. 62
5.3. MATLAB functies ontleding ......................................................................... 64
5.3.1. detectSURFFeatures( ........................................................................... 64
5.3.2. extractFeatures( .................................................................................... 65
5.3.3. matchFeatures( ..................................................................................... 66
5.3.4. Estimate Geometric Transformation ...................................................... 66
5.3.5. maketform( ............................................................................................ 68
5.3.6. imtransform( .......................................................................................... 68
5.3.7. cp2tform( ............................................................................................... 69
Voorbeeld: Kasteel Arenberg ............................................................................. 71 6.
Inleiding ............................................................................................................. 71
6.1. Foto’s muur .................................................................................................. 71
6.2. Inmeten buitenmuur Kasteel Arenberg ........................................................ 73
6.2.1. Resultaat in geocentrische coördinaten ................................................ 73
6.2.2. Resultaat in verticaal vlak...................................................................... 73
6.2.3. Gemiddeld resultaat van beide metingen .............................................. 74
6.3. Toepassing MATLAB op Kasteel Arenberg ................................................. 74
6.3.1. Eerste stap: Automatische rectificatie met behulp van SURF ............... 76
XV Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
6.3.2. Tweede stap: Samenplakken van getransformeerde foto’s ................... 79
6.3.3. Derde stap: rectificatie van samengeplakte foto’s.................................. 81
6.4. Nauwkeurigheidscontrole ............................................................................. 83
6.4.1. Rectificatie a.d.h.v. 4 controlepunten ..................................................... 84
6.4.2. Rectificatie a.d.h.v. 6 controlepunten ..................................................... 87
Conclusie ........................................................................................................... 91 7.
Bijlagen .............................................................................................................. 93 8.
8.1. MATLAB code .............................................................................................. 93
8.1.1. Eerste stap: Automatische rectificatie met behulp van SURF ................ 93
8.1.2. Tweede stap: Samenplakken van getransformeerde foto’s ................... 95
8.1.3. Derde stap: rectificatie van samengeplakte foto’s.................................. 96
8.2. Specificaties totaalstation: Sokkia SRX 3 ..................................................... 97
8.3. Resultaat gevelmeting (x-y-z coördinaten) ................................................... 98
8.4. Transformatie één vlak (x-y coördinaten) ................................................... 100
8.5. Gemiddeld resultaat in één vlak (x-y coördinaten) ..................................... 102
8.6. Gevelmeting westermuur Kasteel Arenberg, Leuven ................................. 103
Referenties ....................................................................................................... 105 9.
2 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Verklarende woordenlijst
- CCD (Charge-Coupled Device): een chip om elektromagnetische straling om
te zetten in elektrische lading. Bijvoorbeeld in een camera: zet opgevangen
licht om in een elektrisch signaal dat op zijn beurt wordt omgezet naar een
digitaal signaal.
- EXIF (Exchangeable image file format): is een metadata-specificatie voor
afbeeldingsbestanden uit onder andere digitale camera’s. Deze kunnen
bijvoorbeeld informatie meegeven van het toestel zelf, de brandpuntsafstand,
ISO-waarde, …
- DHM (Digitaal Hoogtemodel): is een digitale weergave van een oppervlak met
oppervlaktetopografie van het maaiveld.
- Brandpuntsafstand: de brandpuntsafstand van een objectief is de afstand
tussen het midden van de lens en de plaats waar de invallende lichtstralen
samenkomen.
- GSD (Ground Sample Distance): is de overeenkomstige afstand tussen de
pixels in een foto en de afstand op de grond of basis.
- MATLAB: Software uitgegeven door Mathworks, gebruikt voor wiskundige
toepassingen zoals functies, matrices, statistiek, …
- Toolbox: een uitbreiding op MATLAB, gebruikt voor specifieke toepassingen.
Bijvoorbeeld; Image Processing Toolbox.
3 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Lijst van figuren
Figuur 0-1: Left Image and right image ...................................................................... X
Figuur 0-2: Before and after projective distortion ....................................................... XI
Figuur 0-3: Two (left) and seven (right) images stitched together ............................. XI
Figuur 0-4: Composite function in MATLAB ............................................................. XII
Figuur 1-1: Foto muur Kasteel Arenberg ..................................................................... 6
Figuur 1-2: Gerectificeerde foto muur Kasteel Arenberg ............................................. 7
Figuur 1-3: Linker- en rechterfoto ................................................................................ 8
Figuur 1-4: Vervormde linker foto (links) & samengeplakte foto (rechts) ..................... 9
Figuur 1-5: Voorbeeld meerdere samengevoegde foto's ........................................... 10
Figuur 2-1: Veelterm rectificatiemethode: hogere orde veeltermen ........................... 13
Figuur 2-2: Foto van de westertoren van Kasteel Moritzburg (Hemmleb &
Wiedemann, 1997) .................................................................................................... 14
Figuur 2-3: Ontwikkeld resultaat van Kasteel Moritzburg (Hemmleb & Wiedemann,
1997) ......................................................................................................................... 14
Figuur 2-4: Differentiële rectificatiemethode (Mayr & Heipke, 1988) ......................... 15
Figuur 2-5: Tonvormige distorsie (Johnson & Farid, 2006) ....................................... 16
Figuur 2-6: Speldenkussen-vervorming (Johnson & Farid, 2006) ............................. 17
Figuur 2-7: Tangentiële distorsie (Sinha, 2010) ......................................................... 17
Figuur 2-8: Werkelijk vlak x & foto-vlak x' (Hartley & Zisserman, 2004) .................... 20
Figuur 2-9: Overgang van werkelijke naar coördinaten in het vlak en vice versa
(Johnson & Farid, 2006) ............................................................................................ 22
Figuur 2-10: Dichtste buren interpolatietechniek (SeaDAS, 2013) ............................ 23
Figuur 2-11: Bilineaire interpolatietechniek (SeaDAS, 2013) .................................... 24
Figuur 2-12: Bi-kubische convolutietechniek (SeaDAS, 2013) .................................. 25
Figuur 2-13: Dichtste bureninterpolatie ..................................................................... 26
Figuur 2-14: Bi-lineaire interpolatie ............................................................................ 26
Figuur 2-15: Bi-kubische interpolatie ......................................................................... 26
Figuur 2-16: Detectie van vlakken, randen en hoeken (Szeliski, 2010) ..................... 29
Figuur 2-17: Gaussiaanse filter met toenemende variantie (Sinha, 2010) ................. 35
Figuur 2-18: Octaven + schaalniveau's (Sinha, 2010) ............................................... 36
Figuur 2-19: 2D dataset ............................................................................................. 37
Figuur 2-20: 2D dataset fitting m.b.v. RANSAC ......................................................... 38
Figuur 2-21: PhoToPlan binnen AutoCAD ................................................................. 39
Figuur 2-22: Aanduiden van horizontale en verticale lijnen binnen Hugin ................. 40
Figuur 3-1: Instellingen Adobe Photoshop ................................................................ 42
Figuur 3-2: Gridreferentieframe ................................................................................. 44
4 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 3-3: Ingelezen foto's van het schaakbordpatroon .......................................... 45
Figuur 3-4: Geschatte hoekpunten (rode kruisjes) na aanduiden van de vier uiterste
hoekpunten (groene kruisjes) ................................................................................... 46
Figuur 3-5: Extrinsieke parameters - world-centered (camera-referentieframe) ....... 47
Figuur 3-6: Extrinsieke parameters - camera-centered ............................................. 48
Figuur 3-7: Initiële reprojectiefout ............................................................................. 48
Figuur 3-8: Hoekpunten opnieuw geprojecteerd op de foto's a.d.h.v. momentele
parameters ................................................................................................................ 49
Figuur 3-9: Kleinere reprojectiefout ........................................................................... 49
Figuur 3-10: Radiale distorsie component ................................................................ 50
Figuur 3-11: Tangentiële distorsie component .......................................................... 50
Figuur 3-12: Complete distorsie component ............................................................. 51
Figuur 3-13: Originele (links) en gecorrigeerde (rechts) foto in grijstinten ................ 52
Figuur 6-1: Voortbeweging van kleine fouten ............................................................ 72
Figuur 6-2: Alternatief inperking voortbeweging kleine fouten .................................. 72
Figuur 6-3: Foto 1 ..................................................................................................... 75
Figuur 6-4: Foto 2 ..................................................................................................... 75
Figuur 6-5: Foto 3 ..................................................................................................... 76
Figuur 6-6: Overeenkomstige features m.b.v. SURF algoritme ................................ 77
Figuur 6-7: Overeenkomstige punten na verwijderen van uitschieters m.b.v. RANSAC
.................................................................................................................................. 77
Figuur 6-8: Getransformeerde Foto 2 ....................................................................... 78
Figuur 6-9: Getransformeerde Foto 3 ....................................................................... 79
Figuur 6-10: Foto's dienen samengevoegd te worden in Stap 2 ............................... 79
Figuur 6-11: Selectietool in MATLAB voor het aanduiden van een overeenkomstig
punt ........................................................................................................................... 80
Figuur 6-12: Samengevoegde foto's (Stap 2) ........................................................... 81
Figuur 6-13: Selectietool voor het aanduiden van controlepunten ............................ 82
Figuur 6-14: Gerectificeerd geheel ........................................................................... 82
Figuur 6-15: Ingemeten punten met gerectificeerde foto in AutoCAD ....................... 83
Figuur 6-16: Samengevoegde foto's uit Stap 2 ......................................................... 84
Figuur 6-17: Gerectificeerde foto aan de hand van 4 controlepunten ....................... 85
Figuur 6-18: Samengevoegde foto's uit Stap 2 ......................................................... 87
Figuur 6-19: Gerectificeerde foto a.d.h.v. 6 controlepunten ...................................... 88
5 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Probleemstelling 1.
Het opmeten van een gevel is een activiteit die een landmeter ongetwijfeld zal
tegenkomen bij het uitoefenen van zijn beroep. Hiervoor stelt hij traditioneel zijn
meettoestel op en meet punten in op deze muur. Het resultaat is een groot aantal
ingemeten punten met een nauwkeurigheid afhankelijk van het toestel en de
accurate werking van de landmeter. De opmeting verloopt bijna volledig on-site,
waarmee bedoeld wordt dat de landmeter zijn werk quasi volledig verricht op de
plaats waar de gevel zich bevindt.
Over dit inmeten kunnen enkele bemerkingen gemaakt worden. Om te beginnen zal
de tijd, die de landmeter nodig heeft om on-site punten in te meten, behoorlijk
oplopen. Is het mogelijk om deze tijd in te korten, bijvoorbeeld door achteraf bij de
verwerking bepaalde ingrepen te doen? Een andere bemerking is dat wanneer de
landmeter een punt heeft vergeten in te meten op de gevel, hij dit punt opnieuw ter
plaatse zal moeten inmeten.
Derhalve werpt zich de vraag op of er een mogelijkheid bestaat om dezelfde taak
efficiënter uit te voeren, zonder dat dit de nauwkeurigheid van de bekomen resultaten
in een belangrijke mate aantast. Met andere woorden, wij willen op zoek gaan naar
een methode die toelaat om de omschreven taak eveneens uit te voeren en dit met
een zo groot mogelijke nauwkeurigheid.
Een alternatief voor het traditionele opmeten zou kunnen zijn dat er rechtstreeks op
een foto van de gevel gemeten wordt. Vanzelfsprekend zal dit de prestatietijd
inkorten. Een punt aanduiden op een foto is relatief vlug gebeurd, terwijl het inmeten
ter plaatse, waarbij er talloze punten moeten ingemeten worden, veel langer duurt.
Ook kan een punt, dat de landmeter vergeten is in te meten, achteraf nog
teruggevonden worden. Nog een opmerkelijk voordeel ten opzichte van het
traditioneel inmeten: de muur is visueel zichtbaar op een foto. Dit is niet het geval
wanneer er enkel punten van de muur worden ingemeten. Maar natuurlijk zal een
kritische landmeter zich afvragen of dit alternatief wel voldoende nauwkeurig is.
Er kan niet zo maar op elke foto gemeten worden. Hiervoor dient een foto
“voorbereid” te worden. Om de foto voor te bereiden zodat er op gemeten kan
worden, moet er aan een aantal voorwaarden voldaan zijn.
Voordat het echte werk kan beginnen moet een belangrijke kanttekening gemaakt
worden. Wanneer een foto met een digitale camera wordt gemaakt, komen er op
6 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
deze foto meestal distorsies voor. Radiale en tangentiele distorsies kunnen
bijvoorbeeld voor zorgen dat een object meer bol van vorm lijkt dan het in
werkelijkheid is. Dit type distorsie kan dus best vermeden worden. Door middel van
een camera kalibratie kunnen deze vervormingen ongedaan gemaakt worden.
Onderstaande foto (Figuur 1-1) geeft een lange gevel weer. Hierop rechtstreeks
meten gaat niet, omdat er vanuit het standpunt van de fotograaf niet loodrecht op de
muur wordt gekeken. In een dergelijk geval spreekt men van een foto met
perspectiefvervorming. Denk hierbij aan een foto getrokken aan de voet van een
wolkenkrabber kijkend naar de top van het hoge gebouw, waarbij het lijkt alsof het
gebouw spitser wordt. In werkelijkheid wordt het gebouw niet smaller maar toont de
foto een beeld van het gebouw waarin perspectiefvervorming optreedt.
Figuur 1-1: Foto muur Kasteel Arenberg
Zoals later in deze masterproef zal blijken kan deze vervorming worden teniet
gedaan door de foto te rectificeren. Dit wil zeggen dat de foto op zo’n manier wordt
vervormd waardoor het lijkt alsof de foto loodrecht voor de muur is genomen.
Hierdoor zijn de verhoudingen in de foto dezelfde als deze in werkelijkheid. Als
bovendien ook nog juist geweten is welke verhouding deze foto ten aanzien van de
werkelijke muur heeft, kan er wél op de foto gemeten worden alsof er rechtstreeks op
de muur gemeten wordt. Een gerectificeerde foto van bovenstaande muur zal er dan
als volgt uitzien (Figuur 1-2).
7 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 1-2: Gerectificeerde foto muur Kasteel Arenberg
Het is echter niet altijd mogelijk om rechtstreeks op bovenstaande foto te meten.
Omdat we in casu te maken hebben met een lange gevel, zal de resolutie van de
desbetreffende foto niet hoog genoeg zijn om verschillende objecten (bijvoorbeeld
bakstenen) te kunnen onderscheiden. Het kan ook gebeuren dat een object (in ons
geval de lange gevel) niet in één stuk op één enkele foto past.
Hiervoor moet het samenplakken van foto’s een oplossing kunnen bieden. Er worden
verscheidene foto’s van de gevel gemaakt die dicht genoeg bij de gevel zijn
vastgelegd zodat de resolutie hoog genoeg is (bakstenen kunnen nu bijvoorbeeld wel
worden onderscheiden). Vervolgens worden de foto’s samengeplakt, maar ze zullen
enkel exact samen kunnen worden gevoegd wanneer hun perspectiefvervorming
juist overeenkomt.
Op onderstaande foto’s kan duidelijk visueel afgeleid worden dat beide foto’s niet
dezelfde perspectiefvervorming hebben. Ter illustratie hiervan hoeven we maar naar
de dakgoot in beide foto’s te kijken. Deze lopen niet gealigneerd. Dit is al een
indicatie dat beide foto’s niet zomaar prompt samen kunnen geplakt worden.
8 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 1-3: Linker- en rechterfoto
De oplossing voor dit probleem is de ene foto zo te vervormen dat deze overeenkomt
met de vervorming van de andere foto.
Ter voorbeeld werd bovenstaande linker foto (Figuur 1-3) vervormd zodat deze
dezelfde vervorming krijgt als de bovenstaande rechterfoto (Figuur 1-3). Dit resulteert
in onderstaande linker afbeelding (Figuur 1-4). Wanneer bovenstaande rechter
afbeelding en onderstaande linker afbeelding samen worden geplakt zal onderstaand
resultaat (rechts) ontstaan (Figuur 1-4).
9 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 1-4: Vervormde linker foto (links) & samengeplakte foto (rechts)
Wanneer dit nu wordt gedaan met meerdere foto’s, zoals op onderstaande foto
(Figuur 1-5) kan de gehele muur wel worden weergegeven in één enkele
samengeplakte foto. Wanneer deze samengeplakte foto wordt gerectificeerd (zodat
er kan opgemeten worden) is het eerder vermeldde probleem, namelijk een te lage
resolutie wanneer slechts één foto wordt genomen van de muur, van de baan.
Later zal bovendien blijken dat er een minimum van 4 punten op de muur gekend
moeten zijn, best zo goed mogelijk verspreid over de muur, om deze samengeplakte
foto te rectificeren. De vraag die tenslotte gesteld zal worden, is wat de
nauwkeurigheid zal zijn wanneer er op dit uiteindelijke resultaat wordt gemeten.
10 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 1-5: Voorbeeld meerdere samengevoegde foto's
In deze masterproef zullen we de verschillende aspecten van de probleemstelling
gedetailleerd behandelen. Zo zal er dieper worden ingegaan op de voorwaarden tot
oplossing van het probleem, de methode van de rectificatie, het belichten van het
“automatisch” vervormen van foto’s en andere aspecten die komen kijken bij het
opmeten van gevels door middel van rectificatie. Bovendien tonen we aan dat de
voorgestelde werkwijze de nauwkeurigheid van meting niet ernstig in het gedrang
brengt.
Samenvatting onderzoeksvraag: Is het mogelijk om in plaats van op de traditionele
manier muren in te meten, de muur vast te leggen aan de hand van foto’s, waarna op
deze foto’s nauwkeurig kan gemeten worden? Hierbij wordt getracht de verschillende
foto’s aan de hand van algoritmen automatisch ten opzichte van elkaar te
positioneren waarbij er een minimum van 4 gekende controlepunten nodig blijken om
het geheel te rectificeren en zodoende klaar te maken om er rechtstreeks op te
kunnen meten.
11 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Literatuurstudie 2.
2.1. Inleiding
2.1.1. Relatie tussen foto en werkelijkheid: rectificatie
Wanneer een lange gevel wordt vastgelegd met een camera, verspreid over
verscheidene foto’s, dan is het mogelijk om elke foto apart te rectificeren. Dit
betekent dat elke foto van perspectiefvervorming wordt ontdaan. Vervolgens worden
alle foto’s aan elkaar geplakt, zodat de lange gevel zichtbaar wordt op één grote foto.
Wanneer een vlakke structuur (bijvoorbeeld een lange gevel) wordt vastgelegd met
behulp van een camera, ontstaat er een relatie tussen de foto en de realiteit, een
zogenaamde homografie. Deze homografie is een 3x3 matrix. Dit betekent dat de
relatie tussen elke foto en de realiteit kan berekend worden. In huidige
literatuurstudie zal getoond worden dat, teneinde deze homografie uit te rekenen,
men minimum vier controlepunten dient te kennen op de vlakke structuur in de foto.
Zodra deze punten gekend zijn, kan vervolgens de foto gerectificeerd worden.
De manier van werken waarbij per foto minimum 4 controlepunten gekend moeten
zijn, zal het werk van de landmeter niet noodzakelijk verminderen. Denk bijvoorbeeld
aan een lange muur waarvan 10 foto’s genomen moeten worden. Hierdoor dienen
nog steeds (minimum) 10 keer 4 controlepunten ingemeten te worden.
In onderhavige literatuurstudie proberen wij ook hiervoor een oplossing aan te reiken.
Er zal een apart deel worden gewijd aan rectificatie. Hierbij worden verschillende
rectificatiemethoden en de berekening van een homografie uit de doeken gedaan.
2.1.2. Relatie tussen 2 foto’s onderling: overeenkomstige
punten
Er bestaat niet enkel een homografie tussen foto en werkelijkheid. Ook bij foto’s
onderling, waartussen een overlappende zone zichtbaar is, bestaat een homografie.
12 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
In deze wetenschap zal het mogelijk zijn om een foto dermate te transformeren dat
de perspectiefvervorming ervan gelijk wordt aan deze van de andere foto.
Voorwaarde is wel dat er voldoende overlap bestaat tussen beide foto’s. Wanneer
beide foto’s dezelfde perspectiefvervorming hebben, kunnen die foto’s samen
geplakt worden tot één grotere foto.
De berekening van deze homografie dient te gebeuren aan de hand van
overeenkomstige punten in de overlappende zone tussen beide foto’s. Het
lokaliseren van deze overeenkomstige punten tussen twee foto’s kan manueel
gebeuren, maar ook automatisch aan de hand van algoritmen.
In een tweede deel van deze literatuurstudie wordt er dieper ingegaan op het
vaststellen en het lokaliseren van overeenkomstige punten tussen foto’s. Op het
einde van dit hoofdstuk zal tevens kort de bestaande software worden toegelicht.
In een volgende hoofdstuk tenslotte zullen de methodologie, de procedures en
werkwijzen van deze masterproef, uit de doeken worden gedaan.
Huidig hoofdstuk wordt dus onderverdeeld in:
2.2 Rectificatie
2.3 Overeenkomsten tussen foto’s
2.4 Bestaande software
2.2. Rectificatie
2.2.1. Inleiding
Het ontdoen van perspectiefvervorming oftewel het rectificeren van foto’s kan tot
gevolg hebben dat er op een foto gemeten kan worden, en bovendien in ware
schaal. Geometrische metingen uitvoeren op een foto bespaart immers veel tijd en
kosten ten opzichte van veldwerk. Er bestaan verscheidene methoden (Hartley &
Zisserman, 2004) om afbeeldingen te rectificeren. Niet alle methoden zijn evenwel
even bruikbaar voor elke situatie.
Om een rectificatie te voltrekken wordt er in de literatuur een eerste indeling gemaakt
(Hemmleb & Wiedemann, 1997). Zo is er de parametrische benadering en de niet-
parametrische benadering. De parametrische benadering berust op interne en
externe oriëntatieparameters, terwijl de niet-parametrische benadering berust op
13 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
gekende controlepunten in het vlak. In onze masterproef opteerden wij voor de
laatste benadering, precies omdat deze gebaseerd is op controlepunten en het
eerder vernoemde tijdsvoordeel oplevert. Binnen de niet-parametrische benadering
kunnen een viertal belangrijke rectificatiemethoden onderscheiden worden: de
projectieve rectificatiemethode, de veeltermrectificatiemethode, de ontwikkelbare
rectificatiemethode en tenslotte de differentiële rectificatiemethode.
2.2.1.1. Projectieve rectificatiemethode
Wanneer er gewerkt wordt in één vlak is een projectieve rectificatiemethode het
meest geschikt. Daar er in dit eindwerk initieel in één vlak wordt gewerkt werd aan
deze methode de voorkeur gegeven. Bijgevolg zal deze methode en de daarbij
horende procedure later uitvoerig besproken worden.
2.2.1.2. Veelterm rectificatiemethode
De veelterm rectificatiemethode wordt vaak toegepast bij satelliet- en luchtfotografie
en wordt meestal berekend aan de hand van grondcontrolepunten (GCP’s). Wanneer
in het vlak oneffenheden voorkomen is de veelterm rectificatiemethode meer
geschikt dan de projectieve rectificatiemethode. Deze veeltermmethode zal echter
verschillende voorwaarden en/of problemen met zich meebrengen. Wanneer gebruik
wordt gemaakt van een hogere graadveelterm, zal het aantal controlepunten stijgen
net zoals de kans op oscillaties in de veelterm. Wanneer voldoende controlepunten
beschikbaar zijn, kunnen gebogen vlakken met deze methode beschreven worden.
Figuur 2-1: Veelterm rectificatiemethode: hogere orde veeltermen1
1 www.esri.com : polynomial transformation
14 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.2.1.3. Ontwikkelbare rectificatiemethode
Wanneer ontwikkelbare oppervlakken gerectificeerd dienen te worden, biedt de
ontwikkelbare rectificatiemethode oplossingen. Deze methode wordt vaak gebruikt
om een gebogen object als een vlakke structuur voor te stellen, en zal het dus
mogelijk maken om kegels of cilinders te beschrijven aan de hand van x-, y-, z-
coördinaten van controlepunten. Ter voorbeeld de westertoren van Moritzburg te
Halle (Duitsland), gefotografeerd (Figuur 2-2) en digitaal gerectificeerd (Figuur 2-3).
(Hemmleb & Wiedemann, 1997)
Figuur 2-2: Foto van de westertoren van Kasteel Moritzburg (Hemmleb & Wiedemann, 1997)
Figuur 2-3: Ontwikkeld resultaat van Kasteel Moritzburg (Hemmleb & Wiedemann, 1997)
15 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.2.1.4. Differentiële rectificatiemethode
Als bovenstaande methoden niet geschikt zijn, kan de rectificatie nog gebeuren met
de differentiële rectificatiemethode (Mayr & Heipke, 1988). Hierbij wordt het
oppervlak van het te beschrijven model in een geometrische beschrijving gegoten,
zoals bijvoorbeeld een digitaal oppervlaktemodel (DTM), zoals weergegeven in
onderstaande afbeelding.
Figuur 2-4: Differentiële rectificatiemethode (Mayr & Heipke, 1988)
2.2.2. Projectieve rectificatieprocedure
Doordat we het in deze masterproef voornamelijk hebben over het opmeten van
vlakke gevels zal het minder interessant zijn om een veelterm rectificatie-,
ontwikkelbare rectificatie- of differentiële rectificatiemethode te gebruiken. Er wordt
gewerkt met de projectieve rectificatiemethode, welke vlakke structuren correct kan
rectificeren met een minimum van 4 controlepunten. Dit is erg interessant, doordat
een beperkt aantal controlepunten toch een accurate rectificatie kan afleveren.
Bij het rectificeren van een afbeelding aan de hand van de projectieve
rectificatiemethode dient de volgende procedure doorlopen te worden (Van
Genechten, 2010):
1. De camera kalibreren
2. De foto’s nemen
3. Controlepunten inmeten
16 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
4. Controlepunten aanduiden op de foto
5. De homografie berekenen aan de hand van de controlepunten in de foto
en in werkelijkheid
6. De foto rectificeren aan de hand van de berekende homografie
Met deze zes stappen zal in huidige literatuurstudie het rectificeren van een foto
worden uitgelegd.
2.2.2.1. Het kalibreren van de camera
Wanneer foto’s worden genomen met een camera zullen er vervormingen in de foto
optreden. Deze zijn grotendeels te wijten aan de lens. De meest voorkomende
distorsies zijn radiale- en tangentiële distorsies.
2.2.2.1.1. Radiale distorsie
Radiale distorsies kunnen op hun beurt opgedeeld worden in twee soorten
1. Ton-distorsie
Tonvormige distorsie (Figuur 2-5) kan voorgesteld worden als lijnen die zich weg
bewegen van het centrum van de lens wanneer een foto wordt gemaakt van een
onvervormd grid. Een veelgebruikte soort lens die opzettelijk gebruik maakt van dit
distorsie-effect is de ‘Fisheye lens’.
Figuur 2-5: Tonvormige distorsie (Johnson & Farid, 2006)
17 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2. Speldenkussen-distorsie
Speldenkussen-distorsie (Figuur 2-6) daarentegen zorgt ervoor dat de lijnen van het
onvervormde grid meer naar binnen worden weergegeven ten opzichte van het
centrum van de lens.
Figuur 2-6: Speldenkussen-vervorming (Johnson & Farid, 2006)
Het is mogelijk dat beide, zowel ton- als speldenkussen-distorsie optreden, wat leidt
tot een meer complexere vervorming.
2.2.2.1.2. Tangentiële distorsie
Tangentiële distorsie zal een kleiner aandeel hebben in de vervormingen dan radiale
distorsie. Desalniettemin mag deze vervorming niet verwaarloosd worden.
Tangentiële distorsie komt voor wanneer de lens niet perfect parallel geplaatst is ten
opzichte van het beeldvlak (sensor), zoals in onderstaande figuur (Figuur 2-7) wordt
voorgesteld.
Figuur 2-7: Tangentiële distorsie (Sinha, 2010)
18 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.2.2.1.3. Ontdoen van vervormingen
Er zijn nu twee mogelijkheden om de hierboven beschreven vervormingen te
minimaliseren of te verwijderen. Ten eerste kunnen er aan de hand van de lens, die
gebruikt wordt om foto’s vast te leggen, verbeteringen aangebracht worden. De
kwaliteit van de lens is een belangrijke factor, vervormingsafwijkingen op duurdere
(kwaliteitsvolle) lenzen zijn immers kleiner.
Ten tweede blijkt dat ook de brandpuntafstand een invloed op vervormingen. Uit
lenstesten uitgevoerd door ‘Digital Photography Review’ blijkt dat de Sigma 18-
200mm F/3.5-6.3 DC OS lens, die later in deze masterproef bij het praktijkvoorbeeld
zal gebruikt worden, kleine vervormingen vertoont bij verschillende
brandpuntsafstanden. Hierna wordt de vervorming weergegeven, uitgedrukt in
percentage vervorming langsheen de korte en lange zijde van de genomen foto.
Een overzicht2
Brandpuntsafstand Korte zijde Lange zijde Soort vervorming
18 mm 1.8% 0.22% Tonvormige distorsie
28 mm 1.38% -0.75% Speldenkussendistorsie
39 mm -2.03% -0.89% Speldenkussendistorsie
50 mm -1.93% -0.73% Speldenkussendistorsie
80 mm 1.48% 0.5% Speldenkussendistorsie
135 mm 1.25% -0.39% Speldenkussendistorsie
200 mm 1.16% -0.34% Speldenkussendistorsie Tabel 1: Vervormingen in percentage per brandpuntsafstand
Bij de toepassing in ons praktijkvoorbeeld gaven we uiteindelijk de voorkeur aan een
brandpuntsafstand van 50mm. Testen met verschillende brandpuntafstanden leerden
ons dat 50mm in ons voorbeeld het juiste evenwicht bood inzake beeldhoek. Met het
50mm-objectief is de beeldhoek het best vergelijkbaar met wat we normaal met
eigen ogen zien.
Uit bovenstaande leerden we dus dat we hoe dan ook rekening moeten houden met
vervormingen te wijten aan de instellingen van de camera (de brandpuntsafstand).
Een manier om deze vervormingen te verwijderen is softwarematig. De verschillende
distorsies kunnen immers berekend worden door een camera kalibratie. Hierop wordt
in het volgend hoofdstuk 3 uitgebreid ingegaan.
2 http://www.dpreview.com/lensreviews/sigma_18-200_3p5-6p3_os_n15/3
19 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.2.2.2. De foto nemen
Het maken van de foto’s is ook gebonden aan enkele voorwaarden. Zo wordt de lens
best loodrecht en de camera parallel ten opzichte van het vlak (bijvoorbeeld de
gevel) gehouden. Dit om initieel perspectiefvervormingen reeds zo veel mogelijk te
vermijden. Immers, wanneer er veel perspectiefvervorming in een foto optreedt en de
foto gerectificeerd wordt (de perspectiefvervorming verwijderd), gaat er informatie uit
de foto verdwijnen of wordt er minder correcte informatie bijgemaakt door middel van
bijvoorbeeld interpolatie. Dit is respectievelijk het geval bij compressie van pixels en
het uitrekken van pixels (zie ook 2.2.3).
Dus is het gebruik van een camera met een hogere resolutie aan te raden. Want hoe
meer pixels er in een foto zijn, hoe meer informatie er over het gefotografeerde
object bekend is.
2.2.2.3. Controlepunten inmeten
Om te weten waar bepaalde objecten op een foto dan tevens in de realiteit precies
terug te vinden zijn, worden punten gebruikt die in een welbepaald coördinatenstelsel
(bijvoorbeeld het cartesisch stelsel) gekend zijn. Dit zijn de zogenaamde
controlepunten.
De controlepunten dienen in x- en y-coördinaten in het vlak uitgedrukt te worden. In
werkelijkheid blijkt dit meestal niet overeen te stemmen, doordat een vlak (zoals
bijvoorbeeld een gevel) vaak niet volledig “vlak” is, maar oneffenheden laat zien
waardoor alle punten dus niet altijd perfect in één vlak liggen.
Een mogelijkheid om dit euvel te verhelpen bestaat erin om punten met een
theodoliet of totaalstation in te meten in x-, y-, z-coördinaten en vervolgens een fictief
vlak te creëren dat het beste doorheen deze punten zal gaan. Vervolgens kunnen in
dit bepaald vlak de x- en y-coördinaten nodig voor de berekening bepaald worden.
Aan de hand van de kleinste kwadratenmethode (eFunda, 2000) kan een best
passend vlak bepaald worden. Bij deze methode wordt het beste vlak gekozen door
de som van de kwadratische afstand van ieder punt tot het vlak te minimaliseren. Of
anders geschreven:
∑
∑[ ( )]
20 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Vergelijking 2-1
Zoals een paar stappen later zal blijken, zijn er minimum 4 controlepunten nodig om
de rectificatie te voltooien.
2.2.2.4. Controlepunten aanduiden op de foto
De aanduiding van de controlepunten op de foto is nodig om zodoende in een
volgende stap de relatie tussen de controlepunten op de foto en de controlepunten in
het werkelijke vlak vast te leggen door middel van een homografie. Er dient
opgemerkt te worden dat controlepunten best uitgespreid zijn over de vlakke
structuur, vastgelegd in de foto. De controlepunten representeren immers deze
vlakke structuur (bijvoorbeeld een muur). Des te verder de punten uiteen liggen, des
te beter deze structuur zal voorgesteld worden.
Figuur 2-8: Werkelijk vlak x & foto-vlak x' (Hartley & Zisserman, 2004)
De relatie tussen het werkelijke vlak en het vlak in de perspectief vervormde foto is
hierboven grafisch weergegeven (Figuur 2-8) en dient berekend te worden aan de
hand van de homografie.
2.2.2.5. De homografie berekenen
Om van het foto-vlak over te gaan naar het werkelijke vlak is er een projectieve
transformatie nodig. Een projectieve transformatie wordt, zoals reeds eerder vermeld,
ook wel een homografie genoemd. Ter verduidelijking (Hartley & Zisserman, 2004):
21 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
(
) [
] (
)
Vergelijking 2-2
Of korter genoteerd
Vergelijking 2-3
Met
Een vlak in een foto is een perspectiefvervorming van het vlak in de werkelijke
wereld. Om deze perspectiefdistorsie “ongedaan te maken” moet bovenstaande
theorie toegepast worden. Er moet dus een inverse transformatie berekend worden
en toegepast worden op de desbetreffende foto om het werkelijke vlak te verkrijgen.
Vergelijking 2-4
Wanneer alle punten in de foto een projectieve transformatie ondergaan hebben, dan
zal als resultaat een nieuwe foto bekomen worden met geometrisch correcte
afmetingen, dit doordat de coördinaten in het vlak van de foto worden
getransformeerd naar coördinaten in de werkelijke wereld.
2.2.2.6. De foto rectificeren a.d.h.v. de berekende homografie
Om homografie H op te lossen, middels de projectieve rectificatiemethode, zijn er
minimum 4 bekende punten nodig in het werkelijke vlak. Homografie H kan steeds
vermenigvuldigd worden met een constante (niet nul) zonder dat de projectieve
transformatie verandert. Hierdoor wordt de homografie aanzien als een homogene
matrix en heeft 8 vrijheidsgraden, alhoewel dat deze homografie negen elementen
bevat (Dubrofsky, 2007). Bij elk overeenkomstig punt (x- en y-coördinaten) zijn er
twee vergelijkingen op te stellen, namelijk:
22 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Vergelijking 2-5
Vergelijking 2-6
(Hartley & Zisserman, 2004)
Uit deze vergelijkingen kunnen, voor de 4 punten, alle onbekenden berekend worden
waarna homografie H bekend is. Als de inverse van H berekend is en toegepast
wordt op de gehele foto, zal het effect van perspectief vervorming verdwijnen en het
werkelijke vlak worden getoond.
Figuur 2-9: Overgang van werkelijke naar coördinaten in het vlak en vice versa (Johnson & Farid, 2006)
Bovenstaande afbeelding (Figuur 2-9) laat zien hoe de transformatie van werkelijke
coördinaten naar coördinaten in de foto gebeuren door middel van homografie H. Zo
is ook de transformatie van coördinaten in de foto naar werkelijke coördinaten
mogelijk met een transformatie aan de hand van H-1.
2.2.3. Resampling technieken
Wanneer een afbeelding wordt getransformeerd, in ons geval gerectificeerd, dan
worden alle pixels in de originele afbeelding geprojecteerd naar een andere locatie in
de vervormde outputafbeelding.
Men zal dan opmerken dat het centrum van een pixel in de nieuwe afbeelding over
het algemeen niet meer overeenstemt met het centrum van een pixel in de originele
(‘input’) afbeelding. Hiervoor werd resampling (SeaDAS, 2013) in het leven
23 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
geroepen. Resampling is een interpolatieproces waarbij pixels in de originele
afbeelding aan de basis liggen voor nieuwe pixelwaarden in de outputafbeelding. Er
bestaan verschillende soorten interpolatietechnieken om pixels nieuwe waarden te
geven. Drie voorname resampling methoden, zijnde ‘dichtste-buren interpolatie’,
‘bilineaire interpolatie’ en ‘bi-kubische convolutie’ worden verder besproken. Hierbij
worden tevens ook hun voor- en nadelen opgesomd, met het oog op later gebruik in
deze masterproef.
2.2.3.1. Dichtste-buren interpolatie
Bij de dichtste-buren interpolatie (Engels: nearest neighbour interpolation) krijgt elke
pixel in de outputafbeelding de pixelwaarde van het dichtste centrum van een pixel in
de inputafbeelding. Onderstaande afbeelding verduidelijkt deze redenering.
Figuur 2-10: Dichtste buren interpolatietechniek (SeaDAS, 2013)
Een groot voordeel van deze methode is dat het relatief eenvoudig en snel werkt,
waarbij geen nieuwe pixelwaarden dienen berekend te worden. In verhouding met
bijvoorbeeld bi-kubische convolutie werkt deze methode dan ook sneller. Er dient wel
opgemerkt te worden dat er pixelwaarden verloren zullen gaan terwijl anderen
worden gedupliceerd. Een bijkomend nadeel is ook dat foto’s minder scherp kunnen
ogen, precies omdat er geen nieuwe pixelwaarden worden berekend.
2.2.3.2. Bilineaire interpolatie
Bij de bilineaire interpolatietechniek worden nieuwe pixelwaarden berekend door de
gewogen waarden van vier omliggende pixels.
24 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 2-11: Bilineaire interpolatietechniek (SeaDAS, 2013)
De berekende waarde P’ in bovenstaande afbeelding kan dan beschreven worden
volgens volgende vergelijking
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( )
Vergelijking 2-7
Een groot voordeel ten opzichte van vorige techniek is dat extreme pixelwaarden
worden uitgebalanceerd. Hierdoor zal ook de afbeelding scherper ogen dan bij de
dichtst-burenmethode. Helaas verliest deze methode contrast vergeleken met de
dichtste-burenmethode. Ook kan het feit, dat er nieuwe pixelwaarden worden
berekend die initieel niet aanwezig waren in de originele afbeelding, als een nadeel
gezien worden.
2.2.3.3. Bi-kubische convolutie
Bij deze techniek wordt een nieuwe pixelwaarde berekend aan de hand van 16
omringende pixels. De berekeningsmethode wordt duidelijk aan de hand van
onderstaande afbeelding.
25 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 2-12: Bi-kubische convolutietechniek (SeaDAS, 2013)
De berekening is complexer dan deze bij voorgaande technieken. Eerst worden de
gemiddelden gemaakt voor de 4 pixels per horizontale lijn. Vervolgens worden met
deze vier nieuwe waarden één nieuwe waarde berekend. De vergelijking voor
pixelwaarde P’ in bovenstaande afbeelding kan als volgt worden opgesteld:
( ) ( ) ( ( ) ( ) ( ) ) ( ) ( )
( )( ( ) ( ) ) ( ) ( ( ) ( )
( ) )
Vergelijking 2-8
Net zoals vorige techniek worden extreme pixelwaarden uitgebalanceerd. Bij deze
methode wordt een scherper beeld gecreëerd ten opzichte van bilineaire interpolatie.
Nadelig is weer het contrast, deze is minder vergeleken met de dichtste-
burenmethode. Ook worden, net zoals bij bilineaire methode, nieuwe pixelwaarden
berekend die nog niet aanwezig waren in de originele afbeelding. Door de grotere
berekeningen zal deze methode ook trager werken dan de dichtste-burenmethode.
Het visueel vergelijken van de drie verschillende technieken zal bovenstaande
berekeningen en voor- en nadelen verduidelijken.
26 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 2-13: Dichtste bureninterpolatie
Figuur 2-14: Bi-lineaire interpolatie
Figuur 2-15: Bi-kubische interpolatie
De drie resampling-technieken hebben allen voordelen en nadelen. Er is dus geen
‘beste’ of ‘slechtste’ methode. Afhankelijk van de toepassing zal de ene methode
meer geschikt zijn dan de andere. Na afweging werd uiteindelijk in dit werk
geopteerd voor de bilineaire interpolatietechniek, voornamelijk om het scherp
beeldresultaat, de gewogen nieuwe pixelwaarden en de snellere berekeningen (t.o.v.
de bi-kubische interpolatietechniek).
27 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.3. Overeenkomsten tussen foto’s
2.3.1. Inleiding
In deze paragraaf bekijken we hoe twee foto’s, die een overlappende zone vertonen,
worden gekoppeld zodat de beide foto’s ten opzichte van elkaar kunnen georiënteerd
worden. Denk ter illustratie hierbij aan het aaneenplakken van een panoramafoto.
Deze bestaat ook uit verschillende aparte foto’s die samen één geheel vormen.
Een relatie vinden tussen twee foto’s kan aan de hand van overeenkomstigheden
tussen foto’s. Vervolgens kunnen de foto’s aan de hand van deze
overeenkomstigheden aan elkaar worden gekoppeld. De overeenkomstige punten,
randen of lijnen in de foto’s kunnen handmatig aangeduid worden.
Eenmaal de overeenkomstige punten, randen of lijnen in beide foto’s teruggevonden
zijn, kan met deze informatie ook een homografie worden berekend. Deze
homografie beschrijft dan de overgang van punten van het ene fotovlak naar het
andere fotovlak. Het resultaat zal zijn dat, aan de hand van deze homografie, één
foto zo wordt getransformeerd, dat deze in hetzelfde fotovlak komt te liggen als de
tweede foto. Dit resulteert op zijn beurt in twee foto’s, maar wel met dezelfde
perspectiefvervorming!
Als nu twee foto’s een vlakke structuur, zoals een lange muur, vastleggen met een
bepaalde overlappende zone en er manueel overeenkomstige punten op aangeduid
worden, kan de relatie (homografie) tussen de twee vlakken uitgerekend worden.
Vervolgens is het mogelijk, nadat het ene fotovlak naar het andere fotovlak wordt
getransformeerd (waarna ze dus dezelfde perspectief vervorming hebben), om de
beide foto’s samen te plakken tot één foto. Wanneer de foto’s op de juiste plaats ten
opzichte van elkaar opéén geplakt zijn, wordt één lange foto van deze muur
getoond, waarbij het lijkt alsof er slechts één foto werd genomen. In werkelijkheid
werden er dus twee foto’s gemaakt.
Dit is een correcte manier van werken. Maar het manueel zoeken en aanduiden van
overeenkomstige punten, lijnen of randen zal veel tijd in beslag nemen. Dit kan
geautomatiseerd gebeuren. Het koppelen van afbeeldingen kan echter ook gebeuren
aan de hand van features.
28 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.3.2. Features
Een feature kan het best omschreven worden als een stukje informatie in een foto.
Een feature kan bijvoorbeeld een specifiek object zijn in de foto zelf, zijnde punten,
randen of meer complexere structuren. We proberen hierbij features te vinden die
interessant of relevant zijn om te gebruiken bij latere berekeningen of algoritmen. Met
behulp van deze kleine stukken informatie in één foto kunnen weer overeenkomstige
stukjes informatie in de andere foto aangeduid worden om uiteindelijk een koppeling
te maken tussen beide foto’s.
De methode om overeenkomstige features te vinden en te koppelen kan opgedeeld
worden in 3 stappen (Szeliski, 2010)
1. Feature detectie: een interessant punt identificeren
2. Feature beschrijving: een feature vector (descriptor) beschrijft de zone
rond een interessant punt
3. Feature koppeling (matching): het besluiten of features tussen twee
foto’s overeenkomstig zijn of niet.
Wanneer tussen twee beelden slechts een geringe beweging bestaat, zoals
bijvoorbeeld tussen twee frames in een video, zal de laatste stap tracking worden
genoemd in plaats van matching. Hierbij wordt er slechts in een kleine radius
omheen het gedetecteerde feature gezocht.
2.3.3. Feature detectie
Feature detectie wordt toegepast om pixels, of de buurt rond pixels te onderzoeken
om zo’n interessant stukje informatie, een feature, te lokaliseren. Echter, de detectie
van een feature in verschillende foto’s zal niet voor elke stukje informatie even
gemakkelijk gaan. Ter verduidelijking volgende afbeelding.
29 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 2-16: Detectie van vlakken, randen en hoeken (Szeliski, 2010)
We kunnen de omgeving rond elke feature voorstellen als een klein venster
waardoor we kijken. Zoals in bovenstaande afbeelding (Figuur 2-16) zichtbaar, zijn er
onder elke foto drie vensters weergegeven. Niet alle drie de vensters kunnen met
dezelfde nauwkeurigheid herkend worden. Het linker venster (volledig lichtblauwe
lucht), onder de respectievelijke foto’s, bevindt zich in een effen vlak. Als ditzelfde
venster een beetje naar links, rechts, boven of onder beweegt, zal er zichtbaar
weinig kleur- of textuurverandering in een bepaalde richting kunnen worden
gedetecteerd. Dit venster zal dus het moeilijkste gelokaliseerd kunnen worden. Het
middelste venster geeft een rand (van een schaduw op sneeuw) weer, waarbij geen
verandering wordt gedetecteerd wanneer het venster zal verschuiven in de richting
parallel aan de rand van de schaduw. Als laatste is een hoek (van de berg)
weergegeven. Hier wordt in elke richting verandering vastgesteld, waardoor dit
venster het beste te lokaliseren zal zijn in de beide foto’s.
Voor de detectie van features bestaan er vele algoritmen. Voor randdetectie zijn
enkele bekende algoritmen (Shirahatti, 2005):
- Robert’s randdetector
- Prewitt’s randdetector
- Sobel randdetector
- Frie Chen randdetector
- Canny randdetector
Ook voor hoekdetectie bestaan er menige algoritmen. Enkele voorbeelden:
- Harris hoekdetector
30 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
- Smallest Univalue Segment Assimilating Nucleus (SUSAN) hoekdetector
- Förstner hoekdetector
- Wang and Brady hoekdetector
In ons praktijkvoorbeeld werd er geen enkele van deze voorbeelden weerhouden,
omdat het algoritme dat uiteindelijk gebruikt werd (SURF), de detectie verricht, maar
daarenboven andere voordelen biedt. Hierop komen we later terug.
2.3.4. Feature descriptie
Elke regio rond een gedetecteerde feature wordt geconverteerd in een compacte en
stabiele (invariante) vector en wordt een descriptor genoemd. Zo zal een descriptor
worden vergeleken met de descriptoren uit een andere foto, dit met het oog op een
match, besproken in volgende paragraaf.
2.3.5. Feature matching
Een gepast algoritme dient gezocht te worden om het matchen van features zo snel
(en dus efficiënt) mogelijk te laten verlopen. Om pixels, die hetzelfde object
voorstellen, in twee foto’s met elkaar te matchen, bestaan er vele soorten algoritmen.
De simpelste manier is om alle overeenkomstige paren van features in foto’s te
vergelijken op potentiële matching.
In deze masterproef zal er dieper worden ingegaan op de bekendste en meest
gebruikte algoritmen: Sum of Absolute Differences (SAD), Sum of Squared
Differences (SSD) en Normalized Cross Correlation (NCC). Andere algoritmen zijn
bijvoorbeeld Zero-mean Sum of Absolute Differences (ZSAD), Locally scaled Sum of
Absolute Differences (LSAD), Zero-mean Sum of Squared Differences (ZSSD),
Locally scaled Sum of Squared Differences (LSSD), Zero-mean Normalized Cross
Correlation (ZNCC), Sum of Hamming Distances (SHD).
2.3.5.1. Sum of Absolute Differences (SAD)
Dit algoritme (Roma, et al., 2002) is gebaseerd op het zoeken van ongelijkheden
tussen pixelwaarden. Hierbij wordt de overeenkomst gemeten tussen twee ‘blokken’
pixels in twee afbeeldingen. Dit betekent dat het absolute verschil tussen elke pixel
in de ene afbeelding en de overeenkomstige pixel in de andere afbeelding wordt
vergeleken. Deze verschillen worden vervolgens opgeteld. De resultante zal nul zijn
wanneer de twee afbeeldingen exact matchen.
31 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Of anders geschreven
∑ ( ) ( )
( )
Vergelijking 2-9: Som van het absoluut verschil tussen twee pixels
Waarbij de pixel in de eerste afbeelding I1(i,j) en de matchende pixel in de tweede
afbeelding I2(x+i,y+j) is.
2.3.5.2. Sum of Squared Differences (SSD)
Dit algoritme (Roma, et al., 2002) werkt volgens een andere methode. Hierbij wordt
het gekwadrateerde verschil genomen tussen twee overeenkomstige pixels en
gesommeerd voor elke overeenkomstige pixel. Ook deze resultante zal nul zijn
wanneer de twee afbeeldingen exact matchen.
Of anders geschreven:
∑ [ ( ) ( )]
( )
Vergelijking 2-10: Som van het gekwadrateerd verschil tussen twee pixels
Waarbij opnieuw de pixel in de eerste afbeelding I1(i,j) en de matchende pixel in de
tweede afbeelding I2(x+i,y+j) is.
2.3.5.3. Normalized Cross Correlation (NCC)
Normalized Cross Correlation (Roma, et al., 2002) is complexer dan SAD en SSD
doordat er gebruikt wordt gemaakt van meerdere vermenigvuldigingen, delingen en
kwadraten.
∑ ( ) ( )( )
√∑ ( ) ∑ ( )( ) ( )
Vergelijking 2-11: Genormaliseerde kruiscorrelatie
Waarbij de pixel in de eerste afbeelding I1(i,j) en de matchende pixel in de tweede
afbeelding I2(x+i,y+j) is.
32 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.3.6. Algoritmen
Er zijn verscheidene algoritmen om features te detecteren, te beschrijven en te
matchen, zoals in vorige paragrafen reeds besproken. Op enkele algoritmen wordt
echter dieper ingegaan, namelijk op SIFT en op SURF. Deze algoritmen blijken
uitermate geschikt om features te herkennen op foto’s die bijvoorbeeld een andere
belichting of schaalverandering vertonen. Verder zullen we ook zullen we hier even
dieper ingaan op het RANSAC-algoritme. Dit algoritme zal in het geval van deze
masterproef minder correcte data (uitschieters) negeren bij het berekenen van een
homografie.
2.3.6.1. SIFT: Scale-invariant feature transform
Scale-invariant feature transform (Lowe, 1999) (Lowe, 2004) is, zoals de naam al
doet vermoeden, een herkenningsalgoritme waarbij de features niet enkel
onveranderlijk zijn aan schaalwijziging, maar ook aan translatie of rotatie. Tevens is
het ook gedeeltelijk invariant aan belichtingsverschillen in een afbeelding. Vooraleer
het SIFT-algoritme was bedacht, vormden schaalveranderingen en
belichtingsverschillen tussen foto’s met overeenkomstigheden een groot probleem.
De SIFT methode werkt niet rechtstreeks met de afbeelding zelf, maar vervangt de
foto door een grote verzameling van feature-vectoren, waarvan ieder dus invariant is
aan bovenvermelde transformaties.
De berekening om de features te bekomen aan de hand van SIFT kan opgedeeld
worden volgens de hoger besproken stappen, namelijk feature detectie en feature
descriptie (Lowe, 2004). Het volledige algoritme wordt in dit eindwerk niet uit de
doeken gedaan. .Dit zou ons te ver afleiden van de essentie van dit werk. Er wordt
echter wel stapsgewijs uitgelegd hoe dit algoritme opgebouwd wordt.
1. Feature detectie
a. Zoeken van extrema in eeen scale space
Vooreerst wordt er een karakteristieke schaal gezocht voor een
welbepaalde feature. Met andere woorden, er wordt gezocht over alle schalen
en locaties in de afbeelding. Dit gebeurt efficiënt aan de hand van een
33 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
‘Difference of Gaussians’3 functie om op deze wijze ‘interessante’ punten (die
invariant zijn aan schaal en oriëntatie) te vinden.
b. Lokalisatie van sleutelpunten
Van elk bekomen ‘interessant’ punt uit bovenstaande stap wordt de
locatie en schaal in een model gegoten. Vervolgens worden sleutelpunten
geselecteerd gebaseerd op hun stabiliteit.
2. Feature descriptie
a. Toewijzen van een oriëntatie
Aan elk sleutelpunt worden een of meerdere oriëntaties toegewezen op
basis van een lokale vectorrichting. Vanaf nu worden alle operaties toegepast
op de data (van de foto) waaraan de oriëntatie, schaal en locatie zijn
toegewezen. Hierdoor zullen de operaties invariant zijn aan deze
transformaties.
b. Sleutelpunt descriptie
De lokale vectoren worden gemeten in de buurt van elk sleutelpunt,
waarna deze worden voorgesteld, zodat verandering van belichting en lokale
distorsies toegelaten worden.
2.3.6.2. SURF: Speeded-Up Robust Features
SURF oftewel Speeded-Up Robust Features (Bay, et al., 2008) is net zoals SIFT een
schaal- en rotatie invariante detector en descriptor. SIFT en SURF hebben qua
methode vele raakvlakken (Oyallon & Rabin, 2013). SURF werkt echter volgens een
beter algoritme qua robuustheid en repetitiviteit. Dit leidt tot een snellere berekening.
Door de berekeningsmethoden tot hun essentie te vereenvoudigen kan winst worden
gemaakt op verscheidene vlakken.
Om overeenkomsten tussen twee afbeeldingen te vinden, dienen er drie stappen
doorlopen te worden. Vooreerst dienen “interessante punten” gevonden te worden op
kenmerkende plaatsen. Deze plaatsen kunnen hoeken of randen zijn, maar het kan
3 Het verschil tussen een geblurde versie van een originele afbeelding met een minder geblurde versie
ervan.
34 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
ook een blob 4 zijn. Bij deze interessante punten is repetitiviteit erg belangrijk.
Hiermee wordt de betrouwbaarheid bedoeld waarmee deze zelfde interessante
punten kunnen gevonden worden onder andere omstandigheden (andere belichting,
rotaties, etc.).
Vervolgens wordt de buurt rond elk interessant punt voorgesteld als een feature
vector. Deze vector wordt berekend aan de hand van intensiteitsveranderingen, moet
te onderscheiden zijn van andere vectoren en moet goed weerstand bieden tegen
ruis, detectiefouten en geometrische vervormingen.
Als derde en laatste stap worden twee gevonden vectoren in verschillende foto’s
‘gematched’. De matching is veelal gebaseerd op een afstand tussen de vectoren,
zoals bijvoorbeeld de Euclidische afstand5. Ook de dimensie van de descriptor is van
belang. Het rekenen met een lage dimensie (bijvoorbeeld 36-dimensionale vector)
zal sneller, maar minder nauwkeurig zijn dan descriptors met hogere dimensies
(bijvoorbeeld 128-dimensionale vector). SURF tracht hier een gulden middenweg te
vinden tussen nauwkeurigheid en snelheid.
Terwijl SURF’s detector sneller is en goed bestand tegen herhaalbaarheid, is
bovendien de descriptor van SURF sneller en meer onderscheidend in zijn werk.
Laat dit laatste nu het meest overtuigend argument zijn waarom er in deze
masterproef wordt gekozen voor SURF in plaats van een andere soort algoritme
zoals bijvoorbeeld de vaak gebruikte Harris hoekdetectie.
Met de Harris hoekdetectie wordt een hoek niet altijd gedetecteerd wanneer een foto
wordt genomen vanuit twee verschillende standpunten. Aan de hand van SURF
worden echter geen hoeken gedetecteerd, maar regio’s rond bepaalde punten, wat
een grotere kans geeft om succesvol overeenkomstige punten te vinden.
De detector is gebaseerd op de Hessiaan6. Dit zorgt er mede voor dat er slechts drie
optellingen nodig zijn om de som van de intensiteiten binnen een rechthoekige regio
rond een interessant punt te berekenen, ongeacht zijn grootte. Gedetecteerde
interessante punten krijgen een rotatie en schaal invariante descriptor mee. Om
schaalinvariantie te garanderen, wordt een foto op verschillende schalen
geanalyseerd. Dit gebeurt door gebruik te maken van schaalniveau’s (‘scale
space’).
4 Punten met dezelfde eigenschappen en hierdoor erg op elkaar gelijken, worden beschouwd in een
‘blob-regio’ te liggen. 5 De kortste verbindingsafstand
6 Matrix van tweede-orde partiële afgeleiden van een functie met meerdere variabelen
35 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Een scale space kan verklaard worden met het voorbeeld van een persoon die voor
het eerst in een bepaalde ruimte komt en er op zoek gaat naar een bepaald
voorwerp. Wanneer deze persoon binnenkomt in de ruimte ‘scant’ hij de hele ruimte.
Naar mate hij meer details in de deze ruimte bekijkt, zal hij zijn focus verleggen,
zoals bijvoorbeeld naar het voorwerp dat hij zoekt. Een scale space werkt op
dezelfde manier. Echter wordt de ruimte hierbij weergegeven aan de hand van
meerdere schalen. Deze schalen worden gecreëerd door een Gaussiaanse filter toe
te passen met toenemende variantie, wat resulteert in een foto waarbij een steeds
waziger beeld wordt weergeven. Ter illustratie een “ludiek” katje, waarbij de blur
(wazigheid) toeneemt in de foto’s van links naar rechts en boven naar onder.
Figuur 2-17: Gaussiaanse filter met toenemende variantie (Sinha, 2010)
Er wordt bij SURF niet enkel gewerkt met verschillende schaalniveau’s, maar ook
met octaven. Elke octaaf bestaat uit een constant aantal schaalniveau’s. Per nieuwe
octaaf verdubbelt de filter in grootte (voorbeeld 6-12-24-48). Ter verduidelijking
onderstaande afbeelding van het katje, waarbij de Gaussiaanse filter van boven naar
onder toeneemt, met toenemende octaven van links naar rechts.
36 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 2-18: Octaven + schaalniveau's (Sinha, 2010)
2.3.6.3. RANSAC
Het RANSAC algoritme (Fischler & Bolles, 1981) zal weliswaar geen features
detecteren, maar wordt in deze scriptie nog gebruikt om bepaalde data in een set te
verwerpen. Daarom hierover een woordje uitleg.
RANSAC (Random Sample Consesus) is een algoritme ontwikkeld door Martin A.
Fischler en Robert C. Bolles. Het doel van dit algoritme is een benadering te vinden
om een groot aantal uitschieters aan te kunnen in een dataset. Wanneer bijvoorbeeld
van onderstaande puntendata (Figuur 2-19) een best passende rechte wordt
gecreëerd aan de hand van de kleinste kwadraten methode, zal dit leiden tot een
slechte fit. Dit komt doordat er ook rekening wordt gehouden met verschillende
uitschieters (outliers). De kleinste kwadratenmethode werkt immers enkel goed
wanneer er gewerkt wordt zonder uitschieters (dus enkel inliers).
37 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 2-19: 2D dataset7
Het RANSAC algoritme zal de uitschieters wèl kunnen onderscheiden van de inliers
waardoor een beter resultaat zal bekomen worden. Het algoritme is een iteratief
proces waarbij verschillende stappen kunnen onderscheiden worden (Fischler &
Bolles, 1981)
1. Selecteer willekeurig een minimum aan punten nodig om een model
op te stellen
2. Stel een hypothetisch model voor
3. Bereken het aantal inliers en outliers binnen een bepaalde tolerantie
voor dat model
4. Wanneer het aantal inliers, in verhouding tot het totaal aantal punten,
een bepaalde vooraf vastgelegde drempel overschrijdt, wordt het
model berekend aan de hand van deze inliers.
5. Indien niet voldaan aan vorige stap, herhaal vanaf stap 1.
Het aantal iteraties wordt hoog genoeg gekozen, zodat er een bepaalde zekerheid
(bijvoorbeeld een zekerheid van 0,99) bestaat dat de set geen outliers bevat.
Het resultaat van het doorlopen van de vijf stappen van het RANSAC algoritme,
toegepast op de bovenstaande dataset (Figuur 2-19), leidt tot onderstaand figuur
(Figuur 2-20). Hierbij valt op dat er een goede fit bekomen wordt. De kleinste
7 http://www.visual-experiments.com/2012/04/22/ransac-js/
38 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
kwadratenmethode zou hier geen goede fit geven, wat met RANSAC in dit geval dus
wel het geval is.
Figuur 2-20: 2D dataset fitting m.b.v. RANSAC8
RANSAC wordt niet enkel gebruikt om functies te fitten door een bepaalde dataset.
Het kan ook gebruikt worden om een homografie te berekenen, gebaseerd op punten
die in twee verschillende foto’s overeenkomen. Zo zal RANSAC via de vijf stappen
eerst een willekeurig aantal overeenkomstige punten selecteren. Aan de hand van
deze punten wordt dan een homografie berekend. Vervolgens wordt er met deze
berekende homografie gekeken hoeveel in- en outliers er zijn. Hiermee wordt
bedoeld hoeveel punten tussen beide foto’s wel of niet overeenkomen aan de hand
van de berekende homografie. Vertrekkende van een vooraf bepaalde zekerheid zal
er, wanneer er niet voldaan werd aan deze zekerheid, terug vanaf de eerste stap
worden begonnen. Dit wordt herhaald tot de verlangde zekerheid bereikt is.
Doordat verschillende uitschieters niet worden meegenomen in de berekening van
de homografie tussen twee genomen foto’s lijkt RANSAC een uiterst goede ‘filter van
slechte overeenkomsten’, beter dan de kleinste kwadratenmethode. Hierdoor blijkt
RANSAC een beter algoritme om in deze masterproef toe te passen.
8 http://www.visual-experiments.com/2012/04/22/ransac-js/
39 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2.4. Bestaande software
Om de werking van rectificaties, overeenkomstige punten of homografieën juist te
interpreteren is het nuttig om reeds bestaande software te bekijken.
2.4.1. PhoToPlan
Een bekende landmeetkundige software is PhoToPlan 9 van Kubit Software.
PhoToPlan werkt binnen AutoCAD10 en bied de mogelijkheid om digitale foto’s te
corrigeren (door middel van rectificatie) waarna in AutoCAD kan gemeten worden op
de foto’s. Dit lijkt op het eerste zicht erg interessant. Nadelig is echter dat er per foto
voldoende controlepunten (minimum vier) of voldoende referentielengtes moeten
worden opgegeven om de rectificatie te kunnen voltrekken.
In deze masterproef dient er bovendien een bijkomstige stap gezet te worden. We
willen namelijk weten of het mogelijk is om foto’s reeds aan elkaar te voegen voordat
het geheel wordt gerectificeerd.
Figuur 2-21: PhoToPlan binnen AutoCAD
2.4.2. Hugin
Hugin 11 is een opensource panorama software, gespecialiseerd in het
aaneenplakken van foto’s. Hugin is in tegenstelling tot PhoToPlan geen kant en klaar
9 http://nl.kubit-software.com/CAD/Products/PhoToPlan_Camera/CAD_photogrammetry.php
10 Autodesk CAD-software
11 http://hugin.sourceforge.net
40 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
landmeetkundige software, maar het bezit wel goede toepassingen, die aansluiten bij
deze vereist voor huidige masterproef.
Het is onder meer mogelijk om een foto te rectificeren aan de hand van verticale en
horizontale lijnen binnen een foto, maar helaas niet aan de hand van coördinaten van
controlepunten. Ook is het mogelijk om in Hugin te werken met het SIFT algoritme,
onder de benaming ‘autopano-sift-C’12, om overeenkomstige punten in overlappende
foto’s te vinden. Dit algoritme dient wel apart geïnstalleerd te worden in Hugin omdat
het algoritme gepatenteerd is.
Figuur 2-22: Aanduiden van horizontale en verticale lijnen binnen Hugin
Testen met software geven een goed beeld van de mogelijkheden. Zo zal
uiteindelijke blijken dat in deze masterproef het beste van beide werelden,
PhoToPlan en Hugin, dient gecombineerd te worden. Dit aan de hand van een
vergelijkbare rectificatieprocedure als deze in PhoToPlan en een stitching-methode
gelijkend op deze van Hugin.
In hoofdstuk 5 zal bovendien blijken dat de methode in deze masterproef wordt
opgebouwd in een MATLAB omgeving. Dit heeft als voordeel dat, in tegenstelling tot
commerciële software als PhoToPlan, de volledige broncode dient gemaakt te
worden. Hierdoor is de werking ervan volledig gekend.
12
http://hugin.sourceforge.net/docs/manual/Hugin_Preferences.html#Control_Point_Detectors
41 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Camera kalibratie 3.
Doordat foto’s genomen met een digitale camera verscheidene vervormingen
vertonen zoals reeds uitgelegd in paragraaf 2.2.2.1, kunnen deze foto’s op
verschillende manieren gecorrigeerd worden waardoor radiale en tangentiele
distorsies worden teniet gedaan. We bekijken correcties door middel van Adobe
Photoshop en door middel van de Camera Calibration Toolbox in MATLAB.
3.1. Lens correctie door middel van Adobe
Photoshop13
Om te begrijpen hoe vervormingen in een afbeelding optreden en hoe deze kunnen
verwijderd worden, kan er gebruik gemaakt worden van Adobe Photoshop.
Voor dit werk gebruikten wij de Adobe Creative Suite 6 versie van Photoshop om
foto’s te corrigeren.
Via Filter – Lens Corrections (of snel toets Shift+Ctrl+R) kan, nadat een afbeelding is
ingeladen, deze gecorrigeerd worden. De foto’s werden vastgelegd aan de hand van
een Canon EOS450D cameratoestel in combinatie met een Sigma 18-200 mm F3.5-
6.3 DC lens.
Nadat de correcte instellingen zijn aangevinkt, worden correcties dadelijk toegepast
op de afbeelding. Hierbij wordt er ook rekening gehouden met de instellingen die op
de camera werden gebruikt wanneer de foto werd getrokken. Deze gegevens zijn
belangrijk om de juiste vervormingen te kennen. Hiervoor zal Photoshop de EXIF-
metagegevens 14 achterhalen die nodig zijn om de camera en lens te herkennen
waarmee de foto’s zijn gemaakt. In Photoshop worden standaard enkel profielen
weergegeven die overeenkomen met de camera en de lens waarmee de foto is
vastgelegd. Deze lensprofielen geven dus de vervormingen snel weer aan de hand
van het gekende cameramodel en lens. Het cameratype hoeft hiervoor volgens
Adobe niet exact overeen te stemmen. Photoshop selecteert dan ook automatisch
13
http://helpx.adobe.com/nl/photoshop/using/correcting-image-distortion-noise.html 14
Exchangeable image file format: geeft metadata specifiek voor vastgelegde foto’s a.d.h.v. een fotocamera, bijvoorbeeld merk/model van de camera, camera instellingen, etc.
42 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
een overeenkomend subprofiel voor de geselecteerde lens op basis van
brandpuntsafstand en diafragmagetal15.
Figuur 3-1: Instellingen Adobe Photoshop
Bovenstaande afbeelding (Figuur 3-1) toont de gekozen instellingen. Aan de hand
van deze gekozen instellingen en de EXIF-metadata die Photoshop uit de foto afleidt,
zal vervolgens de foto gecorrigeerd worden. De te verwachten vervormingen zullen
in dezelfde ordegrootte liggen als de waarden in Tabel 1: Vervormingen in
percentage per brandpuntsafstand’ (pag. 18).
3.2. Lens correctie door middel van Camera
Calibration Toolbox in MATLAB
Doordat niet elke camera en lens exact dezelfde zijn, zelfs niet wanneer het
hetzelfde model betreft, is het interessanter om een complete camera kalibratie te
voltrekken in plaats van een relatief eenvoudige lens correctie in Adobe Photoshop.
Hierdoor zal er juist geweten zijn hoe een foto zal vervormen met bijbehorende
parameters. Met behulp van de Camera Calibration Toolbox (Bouguet, 2001),
15
De diameter van de intreepupil gedeeld door brandpuntsafstand
43 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
ontwikkeld door Jean-Yves Bouguet in MATLAB, kan een camerakalibratie gedaan
worden door enkel gebruik te maken van een schaakbordpatroon. De techniek om de
camera te kalibreren is veelal gebaseerd op het werk, ‘Flexible Camera Calibration
By Viewing a Plane From Unknown Orientations’, van Zhengyou Zhang (Zhang,
1999). Het intrinsieke camera model is sterk gelijkend op deze gebruikt door Heikkilä
en Sliven in ‘A Four-step Camera Calibration Procedure with Implicit Image
Correction’ (Heikkilä & Silvén, 1997).
3.2.1. Intrinsieke parameters
- Focal length (fc): de brandpuntsafstand. Deze wordt uitgedrukt in pixels (niet
in milimeters) en wordt opgeslagen in een 2x1 vector. Dit betekent dus dat
fc(1) en fc(2) de brandpuntsafstand zijn, uitgedrukt in respectievelijk
horizontale en verticale pixels. Er kan opgemerkt worden dat beide
componenten qua waarde vrij dicht bijeen leunen. De verhouding fc(2)/fc(1)
geeft dan de zogenaamde beeldverhouding, waarbij deze verhouding
verschillend is van 1 wanneer de pixels in het CCD niet perfect vierkant zijn.
Daarom werkt de Toolbox ook met niet-vierkante pixels.
- Principal point (cc): de coördinaten van het principal point worden ook
opgeslagen in een vector met grootte 2x1
- Skew coëfficiënt (alpha_c): geeft de hoek gedefinieerd tussen de x en y pixel
assen van de sensor
- Distorsie: radiale en tangentiele distorsie in de afbeelding, opgeslagen in een
5x1 vector.
Aan de hand van bovenstaande parameters kan cameramatrix KK opgesteld worden.
Deze cameramatrix beschrijft de relatie tussen de pixel x- en y-coördinaat en de
vervormde x- en y-coördinaat door volgende lineare vergelijking.
[
] [
]
Met cameramatrix KK;
[ ( ) ( ) ( )
( ) ( )
]
Waarbij fc de focal lengte is, alpha_c de skew coëfficiënt is en cc het principal point
is.
44 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
3.2.2. Extrinsieke parameters
De extrinsieke parameters zorgen voor de transformatie van het gridreferentieframe
naar het camerareferentieframe . De onderstaande afbeelding (Figuur 3-2) toont het
gridreferentieframe op het kalibratiegrid. XXc is een coördinaatvector in het
camerareferentieframe, en XX een coördinatenvector van hetzelfde punt maar in het
gridreferentieframe. Figuur 3-5 toont dan weer het camera-referentieframe.
Figuur 3-2: Gridreferentieframe
Als XXc = [Xc,Yc,Zc] en XX = [X,Y,Z] dan kan de relatie tussen beide
referentieframes geschreven worden als
Waarbij Rc en Tc respectievelijk de rotatiematrix en de translatievector van de
desbetreffende afbeelding zijn. Om beter te kunnen begrijpen wat zo’n vector nu
inhoudt: de translatievector is de coördinaatvector vanuit de oorsprong in het
camerareferentieframe. Wanneer de coördinaten van een punt gekend zijn in het
camerareferentieframe, dan kunnen deze geprojecteerd worden op in het vlak van
het beeld.
45 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
3.2.3. Toepassing camera kalibratie
Aan de hand van het fotograferen van een schaakbord of een afbeelding van een
schaakbordpatroon is het mogelijk om een volledige kalibratie uit te voeren. Zo
dienen verschillende foto’s gemaakt te worden van dat schaakbord, waarbij het bord
in verschillende oriënteringen wordt gehouden. Na meerdere testen met de toolbox
blijkt het erg belangrijk dat het bord op de verscheidene foto’s telkens op andere
posities terug te vinden is. Om de werking juist te kunnen begrijpen wordt deze
hierna uitgelegd aan de hand van een aantal stappen.
3.2.3.1. Afbeeldingen inlezen
Nadat de toolbox geïnstalleerd is en de grafische interface van de toolbox is
opgestart, dienen de afbeeldingen ingelezen te worden in het geheugen van
MATLAB. Vooreerst zijn de juiste foto’s geselecteerd op basis van hun
bestandsnamen.
Figuur 3-3: Ingelezen foto's van het schaakbordpatroon
3.2.3.2. Hoekpunten zoeken
Vervolgens dienen alle hoekpunten van het schaakbordrooster afgeleid te worden.
Dit wordt gedaan door de (uiterste) hoekpunten van het schaakbord manueel in elke
foto ongeveer op de juiste plaats aan te duiden. Het is belangrijk dat de
venstergrootte in het oog wordt gehouden, de instelling staat standaard op 5 pixels
(wintx=winty=5). Dit betekent dat het te vinden hoekpunt wordt aangeduid binnen
een venster van 11x11 pixels (2 maal de vensterbreedte + middelste pixel). Een
algoritme om hoekpunten te herkennen is het Harris Corner Detection, reeds kort
besproken in hoofstuk 2. Nadat de 4 hoekpunten zijn aangeduid, dient ook
46 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
opgegeven te worden hoeveel schaakbordvakjes er juist tussen de verschillende
aangeduide hoeken zitten. Ook wordt de waarde van dX en dY, zijnde de grootte van
elke vakje, ingegeven. Standaard in een schaakbord zijn de verschillende vakjes
3cm groot, dus dient 0,30 (m) of 30 (mm) ingegeven te worden als waarde.
Vervolgens kunnen alle vakjes worden geschat, waarbij de rode kruisjes dicht
aangesloten dienen te zijn aan een kruispunt van vakjes (Figuur 3-4). Indien dit niet
het geval is, is de radiale distorsie te groot en dienen er andere stappen ondernomen
te worden. Na de schatting worden alle roosterhoeken automatisch vastgelegd en
getoond.
Figuur 3-4: Geschatte hoekpunten (rode kruisjes) na aanduiden van de vier uiterste hoekpunten (groene
kruisjes)
3.2.4. Kalibratiestap
Aan de hand van de kalibratiefunctie van de toolbox wordt de procedure opgestart.
Deze bestaat uit twee stappen: Eerste initialisatie en niet-lineaire optimalisatie.
1. De initialisatiestap berekent een closed-form oplossing voor de
kalibratieparameters zonder rekening te houden met distorsie. Zoals reeds in de
theorie besproken kunnen parameters uit EXIF-metadata gehaald worden. Echter
worden bij de initialisatiestap geen EXIF-metadata gebruikt maar worden de
parameters berekend, een zogenaamde closed-form oplossing.
2. De niet-lineaire optimalisatiestap zorgt voor het minimaliseren van de
reprojectiefout voor alle kalibratieparameters. Hierbij wordt de reprojectiefout
berekend aan de hand van alle 129 parameters. Namelijk 9 intrinsieke parameters
(focal length, principal point, distorsie coëfficiënten) en 6x20 extrinsieke parameters.
47 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Deze optimalisatiestap wordt berekend door een iteratieve berekening van de
Jacobi-matrix 16. We gaan niet dieper in op deze stap, wat ons te ver zou doen
afwijken van het uiteindelijke doel van deze masterproef.
Na de kalibratiestap kunnen de reprojectiefout (pixel error) en de extrinsieke
parameters (world-centered of camera-centered) visueel worden weergegeven.
Hieruit blijkt dat de spreiding van de reprojectiefout nog erg verspreid geplot wordt.
Dit komt doordat de hoeken in sommige foto’s niet helemaal correct werden
gevonden. Maar de hoekpunten van elke vakje in elke foto kunnen steeds terug
geprojecteerd worden op een foto aan de hand van de momentele intrinsieke en
extrinsieke parameters. Op onderstaande figuren worden de extrinsieke parameters
getoond in een 3D plot, waarbij in de eerste afbeelding (Figuur 3-6) het schaakbord
ten opzichte van de camerastandpunten visueel kunnen geplaatst worden.
In Figuur 3-5 is het camerareferentieframe zichtbaar. Deze wordt beschreven door
Oc (oorsprong) en Xc,Yc,Zc. Dit toont hoe de genomen foto’s ten opzichte van de
camera vastgelegd zijn.
Figuur 3-5: Extrinsieke parameters - world-centered (camera-referentieframe)
16
De matrix van de eerste-orde partiële afgeleide van een functie
48 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 3-6: Extrinsieke parameters - camera-centered
Figuur 3-7: Initiële reprojectiefout
Na de herberekening van de hoekpunten zullen de hoeken van de vakken van het
schaakbord opnieuw en correcter berekend en gezocht worden. De reprojectiefout
(pixel error) zal dan ook kleiner zijn (Figuur 3-9): de twee waarden zijn de
standaarddeviatie van deze reprojectiefout in respectievelijk x en y richting. De
reprojectiefout is een geometrische fout overeenkomende met het verschil tussen
een geprojecteerd punt en een gemeten punt. Het geeft dus aan hoe dicht een punt
wordt geprojecteerd ten opzichte van de werkelijke plaats van het punt. (Hartley &
Zisserman, 2004)
49 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 3-8: Hoekpunten opnieuw geprojecteerd op de foto's a.d.h.v. momentele parameters
Figuur 3-9: Kleinere reprojectiefout
3.2.4.1. Distorsie visualiseren
Het is mogelijk om het complete distorsiemodel te visualiseren, ook is het mogelijk
om enkel de tangentiele of radiale component van dit model te laten tonen. Op
onderstaande afbeeldingen worden de specifieke componenten en het compleet
distorsie model getoond specifiek voor de door ons uitgevoerde camerakalibratie. In
elke afbeelding geven de blauwe pijlen de effectieve vervorming van de pixels weer,
50 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
terwijl centraal het kruisje en het cirkeltje respectievelijk het centrum van de foto en
het principal point aanduiden. Uit de afbeeldingen valt af te leiden dat pixels, in het
complete distorsiemodel, in de linkerbovenhoek tot 50 pixels verplaatsen.
Figuur 3-10: Radiale distorsie component
Uit de bovenstaande afbeelding met het radiale distorsiemodel valt dus af te leiden
dat er speldenkussendistorsie optreedt, zie ook paragraaf 2.2.2.1.
Figuur 3-11: Tangentiële distorsie component
51 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Ook valt op te merken dat de tangentiele component een kleiner, maar een niet te
verwaarlozen aandeel heeft, zoals reeds op voorhand werd verwacht.
Figuur 3-12: Complete distorsie component
3.2.4.2. Resultaat parameters
De parameters werden reeds besproken in ‘Intrinsieke parameters’ paragraaf 3.2.1.
Camerakalibratie resultaten na optimalisatie (met onzekerheid tussen haakjes):
- Focal Length: fc = [ 9375.03925 9406.38601 ] ± [ 34.88465 35.59036 ]
- Principal point: cc = [ 1983.75190 1138.40659 ] ± [ 33.60817 42.60885 ]
- Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes = 90.00000
± 0.00000 degrees
- Distortion: kc = [ 0.21198 0.65191 -0.01749 -0.00754 0.00000 ] ± [
0.02084 0.31366 0.00272 0.00217 0.00000 ]
- Pixel error: err = [ 1.19862 1.33565 ]
Opmerking: de numerieke fouten zijn bij benadering drie maal de standaardafwijking
(ter referentie).
52 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
3.2.4.3. Afbeeldingen corrigeren
Nu het distorsiemodel, eigen aan het toestel en de lens, bekend is kan elke foto
ontdaan worden van de distorsie. Aan de hand van de functie Undistort Image
(zwart-wit) of Undistort Color Image (kleur), wordt elke afbeelding apart gecorrigeerd
aan de hand van de bovenvernoemde berekende intrinsieke en extrinsieke
parameters. Ter illustratie onderstaande afbeelding (Figuur 3-13).
Wanneer de afbeeldingen worden gebruikt om objecten te herkennen aan de hand
van het Speeded-Up Robust Features algoritme, is het in principe niet nodig om
gebruik te maken van kleuren in afbeeldingen. En dus mag de afbeelding in
grijsschalen worden gecorrigeerd. Indien dit toch in kleur dient te gebeuren beschikt
de toolbox over Undistort Color Image.
Figuur 3-13: Originele (links) en gecorrigeerde (rechts) foto in grijstinten
53 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Methodologie 4.
In het tweede hoofdstuk zijn de belangrijkste begrippen en theorieën gekaderd. In
onderhavig hoofdstuk wordt dit alles toegepast om het uiteindelijke doel van dit
eindwerk te bereiken. Het hoofdstuk hierna zal deze toepassing worden
geïmplementeerd in een softwaretoepassing.
De te volgen stappen in dit hoofdstuk zijn:
1. De relatie tussen de foto’s onderling
2. De relatie tussen de foto’s en de werkelijkheid.
Deze indeling wordt in dit hoofdstuk aangehouden doordat deze respectievelijk
verwijzen naar de theorie van ‘Overeenkomstigheden tussen foto’s’ en ‘Rectificatie’
in het tweede hoofdstuk.
Wanneer een lange gevel dient ingemeten te worden, en de landmeter op een
alternatieve wijze wil te werk gaan zoals in hoofdstuk 1 besproken, dan worden
verscheidene foto’s van de gevel vastgelegd, waarbij een zekere overlap tussen de
foto’s verzekerd is. Voldoende overlap is nodig om overeenkomsten tussen twee
foto’s te vinden. Hoe kleiner de overlap, des te minder nauwkeurig kunnen
overeenkomsten worden berekend.
Zoals reeds in het vorige hoofdstuk aangehaald kan distorsie in foto’s softwarematig
worden verwijderd. Er is gekozen om met foto’s te werken die ontdaan zijn van
distorsie aan de hand van de Camera Calibration Toolbox.
Een belangrijke voorwaarde om met de hiernavolgende methode te kunnen werken,
is dat de gevel uit één vlak bestaat. Doordat slechts één vlak wordt gerectificeerd, is
het onmogelijk om in de gevel te werken met diepe inspringende of met
verscheidene vlakken in eenzelfde foto.
4.1. De relatie tussen foto’s onderling
De vastgelegde en softwarematig gecorrigeerde foto’s vertonen ten opzichte van
elkaar overlappende delen. Er zijn dus overeenkomstige punten tussen verschillende
foto’s. Aan de hand van deze overeenkomstigheden kan de relatie tussen de foto’s
berekend worden.
54 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Indien er een set punten in een afbeelding is gevonden en overeenkomstige punten
in een andere afbeelding, kan een projectieve transformatie matrix berekend worden.
Deze matrix beschrijft de relatie tussen beide afbeeldingen. Deze projectieve
transformatie wordt ook een homografie genoemd.
Kan deze homografie enkel aan de hand van twee foto’s worden berekend? De
methode loopt als volgt: eerst dienen overeenstemmende features gevonden te
worden. Dit kan bijvoorbeeld door de methoden gezien in de literatuurstudie (Harris
Corner Detection, SIFT, SURF, …). Aan de hand van de coördinaten van deze
overeenstemmende punten kan vervolgens de homografie berekend worden
(Kleinste kwadraten methode, RANSAC, …). Zoals hoger gemotiveerd, geven wij
hier de voorkeur aan de SURF- en RANSAC-methode.
Als alle foto’s in relatie staan tot elkaar, zal het mogelijk zijn om al deze foto’s samen
te smelten tot een grote foto, waarna in een volgende stap de relatie tussen deze
samengestelde foto en een werkelijk vlak wordt berekend.
4.2. De relatie tussen een foto en de werkelijkheid
Zoals reeds besproken in de literatuurstudie is de relatie tussen punten in het
werkelijke vlak en punten op een afbeelding ook beschreven door een homografie.
De berekening van deze homografie verloopt echter enigszins anders dan de
berekening van de relatie tussen foto’s onderling. Er worden met behulp van een
totaalstation vier punten van de gevel ingemeten. Om een zo goed mogelijk resultaat
te bekomen zijn de vier punten zo goed mogelijk verspreid, bijvoorbeeld in de uiterste
hoeken van de muur.
Dit levert een set van vier punten op, gekend in x- en y-coördinaten. Wanneer de vier
overeenkomstige punten in de foto worden aangeduid zijn de punten ook bekend in
de foto (dus in pixel-coördinaten). Wanneer de coördinaten in het vlak van de foto
gekend zijn en in het werkelijk vlak, kan zoals gezien in vorig hoofdstuk de
homografie H berekend worden.
Vergelijking 4-1
met
55 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
(
) [
] ( )
Vergelijking 4-2
dan
Vergelijking 4-3
Vergelijking 4-4
en
( )
Vergelijking 4-5
( )
Vergelijking 4-6
dit leidt tot
[
]
[
]
Vergelijking 4-7
Het oplossen van bovenstaande vergelijking leidt tot het vinden van alle elementen
van de homografie.
56 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Nu de homografie bekend is tussen de foto van de gevel en de werkelijke gevel is
het mogelijk om rechtstreeks op de foto te meten: eerst wordt de virtueel
samengeplakte foto uit vorige paragraaf gerectificeerd aan de hand van de
berekende homografie. Hierdoor wordt er vanuit het standpunt van de “fotograaf”
loodrecht op de muur gekeken. De foto bevat nu geen perspectiefvervorming meer.
Zodoende zal de foto met de correcte schaal (want deze is nu gekend) in AutoCAD
kunnen geladen worden om hierop te meten.
57 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
MATLAB 5.
5.1. Inleiding
Nu de theorie en de uitvoeringsstrategie zijn besproken in de vorige hoofdstukken,
kan de implementatie gebeuren. Er is gekozen om dit in MATLAB 17 (oorspronkelijk
noemde het MATrix LABoratory) te verrichten omdat een eventuele overgang van
MATLAB code naar een programmeertaal als C of C++ eenvoudiger is. Bovendien is
MATLAB een gemakkelijke wiskundige programmeeromgeving door zijn groot aantal
functies en bibliotheken.
In dit eindwerk zal de implementatie in verscheidene delen worden uitgezet. De
complete, zelf ontwikkelde code kan in bijlage 8.1: “MATLAB code” terug gevonden
worden. In een volgende paragraaf zal deze code stap voor stap verklaard worden.
5.2. MATLAB code: ontleding
In onderstaande paragrafen zal de code in MATLAB in detail worden uitgelegd met
verantwoording waarom een bepaalde functie of algoritme gebruikt werd.
5.2.1. Eerste stap: Automatische rectificatie met behulp
van SURF
In het eerste MATLAB bestand (.m file) worden twee foto’s geladen. Belangrijk op te
merken is, dat er een bepaalde minimale overlapping is tussen de twee foto’s
(Mohamed Mansoor Roomi, et al., 2010). Indien dit niet het geval is, kunnen er ook
geen overeenkomstige punten gedetecteerd worden. De SURF detectie methode
levert hierbij het beste resultaat (Harding & Robertson, 2009) ten opzichte van
andere detectiemethoden. Dit was dus één van de redenen waarom er geopteerd
werd om te werken met SURF detectiepunten in MATLAB.
%Inlezen eerste afbeelding org_afbeelding1 = imread('1.JPG'); figure(1), imshow(org_afbeelding1); title('Afbeelding 1'); afbeelding1 = rgb2gray(double(org_afbeelding1)/255);
17
www.mathworks.com
58 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
%Inlezen tweede afbeelding org_afbeelding2 = imread('2.JPG'); figure(2), imshow(org_afbeelding2); title('Afbeelding 2'); afbeelding2 = rgb2gray(double(org_afbeelding2)/255);
Vervolgens worden SURF features gedetecteerd. Hiervoor is het nodig dat beide
foto’s in grijstinten worden afgedrukt. De detectSURFFeatures( is een implementatie
op het Speeded-Up Robust Features algoritme (zie hoofdstuk 2.3.6.2) zal als
uitkomst SURF punten geven. Deze bevatten informatie omtrent de gedetecteerde
punten in de foto in grijstinten.
%features detecteren (descriptors) in afbeelding 1 en afbeelding 2 %aan de hand van SURF punten_Afb1 = detectSURFFeatures(afbeelding1); punten_Afb2 = detectSURFFeatures(afbeelding2);
De stap extractFeatures(afbeelding , SURF punten) geeft descriptoren als resultaat
samen met hun overeenkomstige locatie in de afbeelding. Deze functie berekent dus
de descriptoren aan de hand van omringende pixels rond een SURFpunt.
%features extracten [features_afb1 validPtsIn] = extractFeatures(afbeelding1, punten_Afb1,
'SURFSize', 128); [features_afb2 validPtsOut] = extractFeatures(afbeelding2, punten_Afb2,
'SURFSize', 128);
matchFeatures( geeft een X-maal-2 matrix terug met X aantal features, die
overeenkomen tussen de twee featuresets van de eerste en de tweede afbeelding.
Hierbij wordt de matching gedaan aan de hand van Sum of Squared Differences (zie
ook 2.3.5.2).
%features matchen aan de hand van hun descriptors index_pairs = matchFeatures(features_afb1, features_afb2);
Vervolgens worden de locaties van de overeenkomstige punten in elke foto
achterhaald.
%plaatsbepaling van overeenkomstige punten Afbeelding1_gematched_punten = validPtsIn(index_pairs(:,1)); Afbeelding2_gematched_punten = validPtsOut(index_pairs(:,2));
59 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Met de functie cvexShowMatches wordt een composietbeeld gegenereerd waarbij de
overeenkomstige punten in beide foto’s worden getoond. Deze stap is louter visueel
interessant.
%Overeenkomstige punten met elkaar vergelijken aan de hand van een %composietbeeld (een afbeelding rood, ander cyaan). cvexShowMatches(afbeelding1,afbeelding2,Afbeelding1_gematched_punten, ... Afbeelding2_gematched_punten, 'Punten in afbeelding 1', ... 'Punten in afbeelding 2'); title('Composietbeeld: Overeenkomstige punten in de twee afbeeldingen (met
uitschieters)');
Er dient nu een transformatiematrix berekend te worden aan de hand van de
corresponderende punten in beide afbeeldingen. Dit kan met een
GeometricTransformEstimator( functie. Dit verloopt met behulp van het RANdom
SAmpling Consensus (RANSAC) algoritme, zoals in hoofdstuk 2.3.6.3 theoretisch
besproken. Hierbij worden ook uitschieters verwijderd teneinde een goede
transformatiematrix te berekenen.
%Transformatiematrix berekenen te worden a.d.h.v. corresponderende punten %in beide afbeeldingen. Dit m.b.v. Geometric Transform Estimator (RANSAC) geometrische_transform_benadering = vision.GeometricTransformEstimator; geometrische_transform_benadering.Method = 'Random Sample Consensus
(RANSAC)'; geometrische_transform_benadering.Transform = 'Projective'; geometrische_transform_benadering.NumRandomSamplingsMethod = 'Desired
confidence'; geometrische_transform_benadering.MaximumRandomSamples = 100000; geometrische_transform_benadering.DesiredConfidence = 99.999;
geometrische_transform_benadering.InlierPercentage = 99.999;
Vervolgens kan de transformatie van de tweede naar de eerste afbeelding berekend
worden, zodat de eerder vernoemde homografie gekend is.
[transformatie_matrix inlierIdx] = step(geometrische_transform_benadering,
... Afbeelding2_gematched_punten.Location,
Afbeelding1_gematched_punten.Location);
Vervolgens worden nog eens met de functie cvexShowMatches( de overeenkomstige
punten getoond, dit met behulp van een composietbeeld waarbij de uitschieters dit
keer verwijderd zijn.
60 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
%Overeenkomstige punten met elkaar vergelijken a.d.h.v. een composietbeeld %waarbij de uitschieters verwijderd zijn. cvexShowMatches(afbeelding1,afbeelding2,... Afbeelding1_gematched_punten(inlierIdx),... Afbeelding2_gematched_punten(inlierIdx),... 'Punten in afbeelding 1',...'Punten in afbeelding 2'); title('Overeenkomstige punten in de twee afbeeldingen (uitschieters
verwijderd)');
Om de tweede afbeelding nu juist te transformeren met behulp van de imtransform(-
functie, is het nodig dat de transformatiematrix (berekend met behulp van het
RANSAC algoritme) in een bepaalde structuur wordt gegoten. Dit is een TFORM
structuur (een multidimensionale transformatie structuur). Zodoende wordt een
projectieve transformatiestructuur gecreëerd.
%Afbeelding 2 wordt nu geprojecteerd naar afbeelding1 tform = maketform('projective',double(transformatie_matrix));
homografie = tform.tdata.T toont de projectieve transformatiematrix.
homografie = tform.tdata.T
Tenslotte transformeert imtransform( de tweede afbeelding volgens de berekende
transformatiematrix, zodat deze in het zelfde vlak als de eerste afbeelding wordt
weergegeven.
rect_afb2 = imtransform(org_afbeelding2,tform);
imshow( en imwrite( tonen en schrijven respectievelijk de afbeelding weg naar een
bepaalde locatie op de computer.
%Tonen en wegschrijven gerectificeerde afbeelding figure, imshow(rect_afb2) imwrite(rect_afb2,'gerect_afbeelding1.png','png')
5.2.2. Tweede stap: Samenplakken van getransformeerde
foto’s
Deze stap is een handige hulp om de verschillende foto’s, die getransformeerd
werden in de stap 1, aan elkaar te rijgen.
61 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Eerst worden twee afbeeldingen ingeladen in MATLAB via de imread( functie. Om tot
een juist resultaat te komen is het natuurlijk nodig dat er punten zijn die in beide
foto’s hetzelfde zijn. Maar dit zou normaal geen probleem mogen zijn, omdat er in de
eerste stap immers overlap vereist was.
%Inlezen eerste afbeelding afbeeldingL = imread('1.JPG'); %figure(1), imshow(afbeeldingL); %title('Linkse Foto');
%Inlezen tweede afbeelding afbeeldingR = imread('B.png'); %figure(2), imshow(afbeeldingR); %title('Rechtse Foto');
cpselect( zal een nieuw venster openen waarna er in beide foto één overeenkomstig
punt dient aangeduid te worden.
%één punt selecteren om beide foto's samen te voegen [puntL puntR] = cpselect(afbeeldingL, afbeeldingR, 'wait', true);
Vervolgens zal er, aan de hand van de x- en y- coördinaten van de aangeduide
punten in beide afbeeldingen, een grote zwarte achtergrond gecreëerd worden
waarop vervolgens de eerste en de tweede foto kunnen worden ingeplakt, dit op de
correcte plaats op deze zwarte achtergrond.
%coordinaten in linker foto puntL_x = puntL(1,1); puntL_y = puntL(1,2);
%coordinaten in rechter foto puntR_x = puntR(1,1); puntR_y = puntR(1,2);
%punt van de eerste foto in te plakken fit1_rect_x = 1; fit1_rect_y = 1;
%punt waar de tweede foto wordt ingeplakt fit2_rect_x = round(puntL_x - puntR_x); fit2_rect_y = round(puntL_y - puntR_y);
%zwarte achtergrond waar beide foto's op komen samen_x = size(afbeeldingL,2)+size(afbeeldingR,2)-(size(afbeeldingL,2)- ... abs(fit2_rect_x)); samen_y = size(afbeeldingL,1)+size(afbeeldingR,1)-(size(afbeeldingL,1)- ... abs(fit2_rect_y)); foto_samen = uint8(zeros(samen_y,samen_x));
62 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Vervolgens wordt er op een tweesprong gestoten. Ofwel wordt de linkerfoto lager
dan de rechterfoto ingeplakt. Ofwel wordt deze linkerfoto hoger ingeplakt dan de
rechterfoto. Hiervoor wordt een if-else-voorwaarde gebruikt. Beide foto’s worden op
deze manier correct ingeplakt op de zwarte achtergrond.
if fit2_rect_y <= 0 %als afbeelding 2 hoger komt t.o.v. afbeelding 1
%eerste foto ingeplakt foto_samen(fit1_rect_y+abs(fit2_rect_y):fit1_rect_y+abs(fit2_rect_y)+
... size(afbeeldingL,1)-1 , fit1_rect_x:fit1_rect_x+ ... size(afbeeldingL,2)-1, 1 : 3) = afbeeldingL(1:1+ ... size(afbeeldingL,1)-1,1:1+size(afbeeldingL,2)-1,1:3); %tweede foto ingeplakt foto_samen(fit1_rect_y:fit1_rect_y+size(afbeeldingR,1)-1 , ... fit2_rect_x:fit2_rect_x+size(afbeeldingR,2)-1, 1 : 3) = ... afbeeldingR(1:1+size(afbeeldingR,1)-1,1:1+size(afbeeldingR,2)-
1,1:3);
else %als afbeelding 2 lager komt t.o.v. afbeelding 1
%eerste foto ingeplakt foto_samen(fit1_rect_y:fit1_rect_y+size(afbeeldingL,1)-1 , ... fit1_rect_x:fit1_rect_x+size(afbeeldingL,2)-1, 1 : 3) = ... afbeeldingL(1:1+size(afbeeldingL,1)-1,1:1+size(afbeeldingL,2)-
1,1:3); %tweede foto ingeplakt foto_samen(fit1_rect_y+abs(fit2_rect_y):fit1_rect_y+abs(fit2_rect_y)+
... size(afbeeldingR,1)-1 , fit2_rect_x:fit2_rect_x+ ... size(afbeeldingR,2)-1, 1 : 3) = afbeeldingR(1:1+ ... size(afbeeldingR,1)-1,1:1+size(afbeeldingR,2)-1,1:3); end
Als laatste wordt opnieuw de foto getoond met imshow( en weggeschreven op de
harde schijf met imwrite( met een gekozen bestandsnaam en extensie.
%tonen en wegschrijven van nieuwe foto imshow(foto_samen) imwrite(foto_samen,'test.png','png')
5.2.3. Derde stap: rectificatie van samengeplakte foto’s
Nadat met behulp van de tweede stap de verschillende foto’s samen zijn gebracht is
het nu enkel nog zaak om deze gehele foto te rectificeren. Hiervoor is het nodig dat
63 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
er (bijvoorbeeld met een totaalstation) nauwkeurig minimum vier punten op de muur
of het vlak worden bepaald. Zoals hoger reeds gemotiveerd zal het beste resultaat
worden bekomen wanneer de punten gespreid zijn over het gehele vlak.
Als eerst wordt de samengeplakte foto (uit de tweede stap) ingelezen in MATLAB.
%Samengeplakte foto inlezen afbeelding = imread('samengeplakte_foto.png');
Vervolgens dienen de coördinaten van de (minimum) 8 onbekenden ingelezen te
worden. Hiervoor dienen in het .m bestand de (minimum) 4 punten (in x- en y-
coördinaten) ingegeven te worden die met het totaalstation werden opgemeten.
%Werkelijke coorinaten ingeven punten_werkelijk = [5.412 7.444; 36.654 7.498; 6.69 0.854; 35.124 2.633]
Dan wordt met behulp van de cpselect( functie een nieuw venster geopend. Hierop
dienen de vier punten aangeduid te worden in de foto die overeenkomen met de
werkelijke coördinaten.
%Coorinaten van pixels in de linker foto juist aanduiden! [punten_pixels puntenR] = cpselect(afbeelding, afbeelding, 'wait', true);
Aan de hand van de coördinaten aangeduid op de foto’s (in pixels) en de coördinaten
in werkelijkheid (in meters) kan vervolgens de transformatie berekend worden. Ook
kan, ter controle, een onbekend punt worden berekend door de werkelijke waarde in
te voeren.
t_proj = cp2tform(punten_pixels,punten_werkelijk,'projective'); t_pros = t_proj.tdata.Tinv;
%Elementen van projectieve transformatie A = t_pros(1,1); B = t_pros(2,1); C = t_pros(3,1); D = t_pros(1,2); E = t_pros(2,2); F = t_pros(3,2); G = t_pros(1,3); H = t_pros(2,3); I = t_pros(3,3);
%Hier coordinaten van onbekend punt ingeven: x,y x = 1.8969 ;
64 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
y = 6.2846 ;
%Coordinaten in pixels: u,v u = (A*x + B*y + C)/(G*x + H*y + I) v = (D*x + E*y + F)/(G*x + H*y + I)
Ten slotte wordt de gerectificeerde foto getoond en weggeschreven.
%rectificeren van de gehele foto & tonen + wegschrijven rect_img = imtransform(afbeelding,t_proj); rect_img = rect_img(end:-1:1,:,:); imshow(afbeelding), figure, imshow(rect_img); imwrite(rect_img,'gerectificeerd_geheel.png','png')
5.3. MATLAB functies ontleding
Om de werking van de belangrijkste MATLAB functies goed te begrijpen en om de
verschillende parameters van de functies te kennen, worden in deze paragraaf de
verschillende MATLAB functies ontleed. Voor een nog meer uitgebreide verklaring
kan steeds de ingebouwde bibliotheek van MATLAB of de website van de Computer
Vision System Toolbox18 in MATLAB worden geraadpleegd.
5.3.1. detectSURFFeatures(
Zoals eerder werd verklaard, vindt deze functie SURF features aan de hand van het
Speeded-Up Robust Features (SURF) algoritme. POINTS = detectSURFFeatures(I)
geeft een SURFPoints object terug, waarbij deze informatie bevat omtrent de
gedetecteerde SURF features in een afbeelding. In MATLAB werkt deze functie
enkel met grijswaarden. Hiervoor werd in de MATLAB code gewerkt met de
rgb2grey( functie. Dit zet de afbeelding om naar een afbeelding in grijswaarden.
De functie kan worden gepersonaliseerd door middel van 3 parameters.
1. MetricTreshold
Deze parameter specifieert de drempelwaarde om de sterkte van de features aan te
geven. Hoe hoger het getal, des te strenger deze drempelwaarde. Deze waarde mag
niet negatief zijn en staat standaard op 1000. Uit testen blijkt dat het verlagen van
deze waarde zorgt voor het detecteren van meer blobs.
18
http://www.mathworks.nl/help/vision/index.html
65 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
2. NumOctaves
Deze parameter kan enkel integers bevatten (gehele getallen) en geeft het aantal
octaven weer gebruikt voor het SURF algoritme. De aanbevolen waarde bevindt zich
tussen 1 en 4. Standaard wordt voor deze waarde 3 genomen. Een meer uitgebreide
uitleg over octaven werd besproken in 2.3.6.2.
3. NumScalesLevels
Ook deze parameter kan enkel gehele getallen bevatten en geeft het aantal
schaalniveaus aan die per octaaf dient berekend te worden. Aanbevolen dient te
waarde tussen 3 en 6 te zitten. De waarde moet wel groter zijn als 3. Daarom wordt
als standaard 4 genomen. Een verdere uitleg over schaalniveaus kan terug
gevonden worden in paragraaf 2.3.6.2.
5.3.2. extractFeatures(
Deze functie geeft featurevectoren, ook bekend als de eerder besproken
descriptoren, terug in een M-maal-N matrix. De descriptoren zijn afgeleid van de
pixels rondom een interessant punt. Met M het aantal featurevectoren met elke
descriptor van de lengte N. Tevens geeft de functie validatiepunten terug
corresponderend met een descriptor.
Ook bij deze functie kunnen 3 parameters ingesteld worden
1. Method
Dit is de methode waarmee gewerkt wordten kan ingesteld worden op ‘Block’, ’SURF’
of ‘Auto’. Standaard staat deze op ‘Auto’. Echter doordat er in een vorige stap in de
MATLAB code met SURFPoints gewerkt is, zal MATLAB automatisch ‘SURF’
gebruiken.
2. Blocksize
Blocksize is niet van toepassing bij gebruik van SURF.
3. SURFsize
Deze parameter is wel van toepassing voor SURF. SURFsize is een integer ingesteld
op 64. Dit is de lengte van de featurevector (of descriptor) en eerder in 2.3.6.2
66 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
besproken als de dimensie van een descriptor. Het is interessant om deze waarde
van 64 naar 128 te veranderen. De nauwkeurigheid van bij elkaar horende
descriptoren zal toenemen. Deze toename zal echter ten koste gaan van de
berekeningssnelheid.
5.3.3. matchFeatures(
Als input worden twee M-maal-N matrices gegeven, berekend met de
extractFeatures( functie voor twee verschillende afbeeldingen. Hierbij wordt
nagegaan welke features uit beide matrices waarschijnlijk bij elkaar passen.
Er zijn twee parameters die ingesteld kunnen worden
1. Metric
Deze parameter specifieert de matching methode, mogelijke methoden zijn reeds
besproken in 2.3.5.
‘SAD’: som van de absolute verschillen (zie ook 2.3.5.1)
‘SSD’: som van de gekwadrateerde verschillen (zie ook 2.3.5.2)
‘normxcorr’: genormaliseerde kruiscorrelatie (zie ook 2.3.5.3)
In de MATLAB toepassing van dit eindwerk is er gekozen om te werken met de som
van de gekwadrateerde verschillen
MatchTreshold
Dit is een waarde tussen 0 en 100 waarbij een drempelwaarde wordt gespecifieerd
om de best bijeen horende features te selecteren. Deze waarde geeft dus het
percentage weer waarbij een feature wordt verwijderd wanneer dit percentage afwijkt
van een perfecte match. Standaard wordt deze in MATLAB als 1% vastgelegd.
5.3.4. Estimate Geometric Transformation
GeometricTransformEstimator( komt uit de Computer Vision Toolbox in MATLAB. De
functie wordt gebruikt om een transformatiematrix te berekenen die overeenkomt met
puntparen tussen de twee foto’s. Zo’n puntpaar refereert naar een punt in de eerste
afbeelding en zijn overeenkomstig punt in de andere afbeelding.
67 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Aan de hand van RANSAC of kleinste kwadraten methode kunnen uitschieters
verwijderd worden om zodoende de transformatiematrix correct te berekenen.
Voor deze functie zijn er weer een aantal parameters die gedefinieerd moeten
worden.
1. Transform
Er is de keuze uit drie transformatietypen
Non-reflective similarity
Affine
Projective
In dit geval wordt er natuurlijk gewerkt met het ‘projective’ transformatietype.
2. ExcludeOutliers
Deze instelling kan op True of False gezet worden, waarbij uitschieters worden
verwijderd uit de punten opgegeven via de input. In het geval van de MATLAB code
zal deze op True worden gezet (door default).
3. Method
RANdom SAmple Consensus (RANSAC)
Least Median of Squares (kleinste kwadraten methode)
Er wordt gekozen voor de RANSAC methode. De werking ervan werd eerder
uitgelegd in de literatuurstudie.
4. AlgebraicDistanceThreshold
Dit is de bovenwaarde om de afstand tot een punt te vinden en wordt gebruikt
wanneer het transformatietype ‘Projective’ is en de methode ‘RANSAC’. Omdat er
standaard 2,5 wordt gebruikt, was in het deze masterproef interessant om de waarde
strenger te nemen (1,5), teneinde een nauwkeuriger resultaat te bekomen
5. NumRandomSamplingsMethod
Wanneer ExcludeOutliers op ‘True’ staat en de methode ‘RANSAC’ is, dan kan het
aantal random samplings worden gespecifieerd. Wanneer de parameter ‘Desired
confidence’ actief is, kan een te behalen percentage en een maximum aantal worden
68 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
opgegeven. Dit met behulp van respectievelijk de parameters DesiredConfidence
(default waarde: 99) en MaximumRandomSamples (default waarde: 1000).
6. Inlierpercentage
Hier kan het percentage puntenparen opgegeven worden die beschouwd moeten
worden als inliers om de random sampling te stoppen. Indien de waarde niet wordt
veranderd, zal MATLAB deze op 75% instellen.
5.3.5. maketform(
Deze functie creëert een TFORM transformatiestructuur. Dit is een speciale vorm die
gebruikt kan worden in onder andere volgende functie: imtransform(. Hierbij dient ook
het transformatietype opgegeven te worden.
Er kan een parameter opgegeven worden voor deze functie:
1. Transformationtype
Deze kan ingsteld worden als;
‘Affine’
‘Projective’
‘Custom’
‘Box’
‘Composite’
In het geval van de MATLAB code wordt er gebruik gemaakt van een projectieve
transformatiestructuur, hierdoor wordt er een TFORM structuur gecreëerd van een N-
dimensionale projectieve transformatie.
5.3.6. imtransform(
Deze functie transformeert een afbeelding volgens de in vorige functie gedefinieerde
TFORM. Doordat er nieuwe pixelwaarden worden berekend bij deze stap dient er
ook een gepaste interpolatietechniek opgegeven te worden. Zo kan er gekozen
worden voor ‘nearest’ (dichtste-buren interpolatie), ‘bicubic’ (bi-kubische convolutie)
of ‘bilineair’ (bi-lineaire interpolatie). Zie voor verdere uitleg 2.2.3 ‘Resampling
69 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
technieken’. Er is gekozen om met bi-lineaire interpolatie te werken, dewelke ook
standaard wordt gebruikt indien er geen specifieke techniek wordt opgegeven.
Er zijn een aantal parameters in te stellen bij deze functie, waarbij onder andere
volgende parameters interessant zijn
1. Size
Hier kan het aantal rijen en kolommen van de afbeelding in de output vastgelegd
worden.Standaard zal de outputafbeelding de gehele foto omvatten waarbij dezelfde
schaal wordt behouden van de inputafbeelding.
2. FillValues
Hier kan een waarde opgegeven worden voor de pixels in de output afbeelding
waarvan hun locatie buiten de grenzen van de input afbeelding vallen. Zoals op de
gerectificeerde afbeeldingen van het Kasteel Arenberg, te zien is, worden deze pixels
opgevuld met code 0: zwart.
5.3.7. cp2tform(
De naam van deze functie doet het al vermoeden, cp2tform neemt controlepunten en
gebruikt deze om een transformatie uit te rekenen.
Hierbij is het nodig dat het transformatietype als parameter wordt gedefinieerd
1. Transformationtype
'nonreflective similarity' (2 paar controlepunten)
'similarity' (3 paar controlepunten)
'affine' (3 paar controlepunten)
'projective' (4 paar controlepunten)
'polynomial' (ORDER=2) ( 6 paar controlepunten)
'polynomial' (ORDER=3) (10 paar controlepunten)
'polynomial' (ORDER=4) (15 paar controlepunten)
'piecewise linear' (4 paar controlepunten)
'lwm' ( 6 paar controlepunten)
In dit geval is een ‘projective’ transformatie nodig. Hiervoor is het nodig, zoals
hierboven genoteerd, dat er minimum 4 paar controlepunten worden opgegeven
teneinde de projectieve transformatie uit te kunnen rekenen. Wanneer er meer dan 4
70 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
paar wordt opgegeven, wordt er aan de hand van de kleinste kwadraten methode
een oplossing berekend.
71 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Voorbeeld: Kasteel Arenberg 6.
6.1. Inleiding
Om de MATLAB code toe te passen op en te vergelijken met een voorbeeld in de
realiteit, is er gekozen om een bestaande muur volledig in te meten met een
totaalstation en zodoende de accuraatheid van de techniek te evalueren. Er werd
gebruikt gemaakt van een Sokkia SRX 319, een toestel waarmee reflectorloos kan
gemeten worden met een nauwkeurigheid van 3mm ± 2ppm. In paragraaf 8.2:
‘Specificaties totaalstation: Sokkia SRX 3’ kan een uitgebreide technische
specificatie van het toestel teruggevonden worden.
Voor een goede toepassing dienden we een rechte, lange muur te hebben. Hiervoor
is een buitenmuur van het Kasteel van Arenberg te Heverlee gekozen en ingemeten
aan de hand van een honderdtal punten om zodoende voldoende verspreiding te
hebben, dit met het oog op controlepunten in een later stadium.
In dit hoofdstuk wordt eerst het vastleggen van de foto’s en het resultaat van de
meetcampagne uitgebreid besproken, vervolgens wordt de eigen ontwikkelde
MATLAB code toegepast op het voorbeeld.
6.1. Foto’s muur
Aan de hand van een Canon EOS 450D (camera) en een Sigma 18-200mm f/3.5-6.3
DC OS (lens) zijn verschillende foto’s van de muur gemaakt in hoge resolutie
(4272px bij 2848px). Zoals reeds eerder besproken werden de foto’s vastgelegd met
een brandpuntsafstand van 50 millimeter.
Bij het vastleggen van foto’s dienen dezelfde instellingen gebruikt te worden als de
instellingen waarbij de camerakalibratie werd voltrokken. Ook dienen de foto’s op
ongeveer dezelfde afstand tot de muur getrokken. Immers, wanneer de muur wordt
vastgelegd vanuit één positie, zullen pixels die overeenkomen met een regio op de
muur, die het verst verwijderd is van de fotograaf, een hogere Ground Sample
Distance hebben. Dit wil zeggen dat de pixels overeenkomen met een grotere
19
www.sokkia.eu
72 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
afstand op de muur. Door vanuit verschillende posities steeds even ver van de muur
de foto’s te maken, wordt er gewerkt met een constante Ground Sample Distance.
We wijzen erop dat twee foto’s overeenkomsten moeten hebben in overlappende
zones, waaruit een homografie kan berekend worden. Met deze homografie kan één
foto zo getransformeerd worden waardoor deze dezelfde perspectiefvervorming heeft
als de andere foto. Wanneer er verscheidene foto’s worden gemaakt, verspreid over
één gevel, wordt de perspectiefvervorming van de ene foto dus steeds gebaseerd op
de vorige. Dit wordt geïllustreerd op onderstaande afbeelding (Figuur 6-1). Hierbij
wordt de perspectiefdistorsie van foto 2 gebaseerd op foto 1. Foto 3 op die van foto
2, etc. Hieruit blijkt dat wanneer fouten plaats zouden vinden, deze voortbewegen
vanuit de meeste rechtse foto en steeds verder uitbreiden naar foto 5 toe.
Figuur 6-1: Voortbeweging van kleine fouten
Dit kan op een eenvoudige manier opgelost worden, door vanuit de middelste foto te
beginnen werken. Hierdoor zullen kleine fouten zich minder ver kunnen
voortbewegen, zoals in onderstaande afbeelding getoond (Figuur 6-2). Deze
methode van werken werd in deze masterproef dan ook gebruikt.
Figuur 6-2: Alternatief inperking voortbeweging kleine fouten
73 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
6.2. Inmeten buitenmuur Kasteel Arenberg
6.2.1. Resultaat in geocentrische coördinaten
De westelijke muur van het Kasteel van Arenberg werd ingemeten vanuit twee
standpunten in een lokaal assenstelsel. Er is gekozen om standplaats 1 met de
coördinaten 1000m, 1000m, 10m in respectievelijk X,Y en Z-as vast te leggen. Na
inmeten van standplaats 2 en vereffening (nadat ook standplaats 1 werd ingemeten
vanuit standplaats 2) kunnen beide standplaatsen gelokaliseerd worden volgens
volgende coördinatentabel.
Standplaats 1 1000,000m 1000,000m 10,000m
Standplaats 2 1000,000m 1017,980m 9,971m
Tabel 2: Coördinaten standplaats
Er is gekozen om zo veel mogelijk punten op de gevel vanuit twee standplaatsen in
te meten. Wanneer een punt immers minder nauwkeurig, of per ongeluk verkeerd
werd ingemeten, dan zal dit dadelijk opgemerkt worden. In bijlage 8.3: ‘Resultaat
gevelmeting (x-y-z coördinaten)’ zijn de metingen vanuit beide opstelpunten terug te
vinden zijn.
6.2.2. Resultaat in verticaal vlak
Omdat er in deze masterproef in één vlak wordt gewerkt, worden de rechtstreeks
ingemeten geocentrische coördinaten getransformeerd tot X,Y-coördinaten in één
vlak. Hierdoor worden de ingemeten punten in een nieuw coördinatenstelsel
gegoten.
Eerst wordt met behulp van de kleinste kwadraten methode (2.2.2.3) een loodrecht
vlak bepaald doorheen de punten opgemeten op de muur. De bekomen x- en y-
waarden geven respectievelijk de breedte en de hoogte van de muur weer. De
RMSE waarde (Root-Mean-Square Error) is de afstand tot dit vlak en geeft dus een
indicatie hoe ver het punt verwijderd is van het berekende vlak.
De transformatie is uitgevoerd met de tekensoftware van Pythagoras BVBA. Nadat
de coördinatenlijst is ingeladen zullen de punten zichtbaar zijn, waarbij vanboven af
op de muur wordt gekeken. Wanneer nu een best passende rechte wordt gefit door
74 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
de verschillende punten, zal dit gebeuren aan de hand van de kleinste kwadraten
methode20. Wordt er verondersteld dat het vlak van de muur loodrecht onder deze
gecreëerde best passende loopt, dan kan er eenvoudig een nieuw coördinatenstelsel
gecreëerd worden waarbij de afstand van elk punt tot aan dit vlak bepaald wordt.
Deze afstand is de RMSE van elk punt.
In bijlage 8.4: ‘Transformatie één vlak (x-y coördinaten)’ worden de nieuwe x- en y-
waarden weergegeven, gevolgd door de RMSE-waarde. Er dient opgemerkt te
worden dat ook de x- en y-waarde een translatie hebben ondergaan waarbij de
laagste waarde in x- en y-richting als waarde 0 wordt gekozen. Alle andere punten
krijgen net dezelfde translatie met het verschil van de laagste waarde tot nul.
6.2.3. Gemiddeld resultaat van beide metingen
Doordat de gevel vanuit twee opstelpunten is ingemeten, kan gecontroleerd worden
of de verschillende metingen wel correct zijn gebeurd. Indien het verschil onder een
bepaalde drempelwaarde ligt (bijvoorbeeld 5mm), dan zal er hoogstwaarschijnlijk
geen foutieve meting gebeurd zijn. Vervolgens zal dan het gemiddelde van beide
metingen de nauwkeurigheid ten goede komen. In bijlage 8.5: ‘Gemiddeld resultaat
in één vlak (x-y coördinaten)’ de nieuwe gemiddelde metingen (begonnen vanaf
puntnummer 1000). Omdat er vanuit twee verschillende opstelpunten werd gemeten
kan het ook zijn dat sommige punten zichtbaar waren vanuit de ene standplaats
maar niet vanuit de andere. Deze punten kregen een puntnummer vanaf 2000 mee.
Om deze reden wordt er best gewerkt met de puntennummers vanaf 1000, deze zijn
immers gecontroleerd en correct gelokaliseerd.
6.3. Toepassing MATLAB op Kasteel Arenberg
In dit voorbeeld worden drie foto’s van de muur aan het Kasteel Arenberg stap voor
stap voorbereid, zodat meten op deze foto’s mogelijk wordt. Vervolgens wordt er in
een volgende paragraaf (6.4) gekeken hoe nauwkeurig deze methode is wanneer
gebruik wordt gemaakt van de minimaal vereiste 4 controlepunten. Ook wordt
vergeleken in welke mate de nauwkeurigheid stijgt wanneer meer controlepunten
worden gebruikt.
Onderstaande foto’s (Figuur 6-3, Figuur 6-4 & Figuur 6-5) worden gebruikt om de
toepassing te analyseren. Tussen de verschillende foto’s bestaat er onderling een
20
Pythagoras CAD+GIS V12.27 Referentie Gids p. 150
75 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
bepaalde overlapzone. Deze zone is zoals eerder vermeld nodig zodat er
overeenkomstige features tussen twee foto’s kunnen gevonden worden. Ook kan er
opgemerkt worden dat de verschillende foto’s reeds gekalibreerd zijn a.d.h.v. de
Camera Calibration Toolbox.
Figuur 6-3: Foto 1
Figuur 6-4: Foto 2
76 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-5: Foto 3
De toepassing wordt uitgevoerd aan de hand van de 3 uitgewerkte stappen in
MATLAB. In een volgende paragrafen 6.4.1 en 6.4.2 wordt er respectievelijk voor 4
en 6 controlepunten bekeken hoe nauwkeurig de toepassing is en hoe de
nauwkeurigheid toeneemt wanneer er meer controlepunten worden gebruikt.
6.3.1. Eerste stap: Automatische rectificatie met behulp
van SURF
Twee foto’s, waartussen een overlappende zone bestaat, worden in MATLAB
ingelezen. Vervolgens worden er overeenkomstige features gezocht met behulp van
het SURF algoritme. Een groot aantal features worden gevonden, dit wordt visueel
weergegeven in onderstaande afbeelding (Figuur 6-6). Het betreft een
composietbeeld waarbij beide foto’s samen, maar in een andere kleur (rood of
cyaan) worden weergegeven. Corresponderende features zijn verbonden aan de
hand van een gele lijn.
77 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-6: Overeenkomstige features m.b.v. SURF algoritme
Na het doorlopen van het RANSAC algoritme worden enkel features overgehouden
die aan strenge voorwaarden (bijvoorbeeld 99,9% gewenste zekerheid, zie 5.3)
voldoen. Dit is visueel weergegeven in onderstaande afbeelding (Figuur 6-7). Aan de
hand van deze overeenkomstige features kan nu een homografie uitgerekend
worden.
Figuur 6-7: Overeenkomstige punten na verwijderen van uitschieters m.b.v. RANSAC
Eens de homografie (3x3 matrix) bekend is, ligt de relatie tussen beide foto’s vast.
78 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
[
]
Vergelijking 6-1: Homografie
Nu kan de Foto 2 een projectieve transformatie ondergaan zodat de
perspectiefdistorsie voor beide foto’s (Foto 1 & Foto 2) dezelfde is.
Figuur 6-8: Getransformeerde Foto 2
Doordat er nu niet met slechts twee foto’s wordt gewerkt, maar met drie foto’s moet
deze stap nog een keer doorlopen worden waarbij Foto 3 nog dient getransformeerd
te worden naar Foto 2. Hieruit wordt onderstaande foto bekomen.
79 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-9: Getransformeerde Foto 3
6.3.2. Tweede stap: Samenplakken van getransformeerde
foto’s
Nu wordt er verder gegaan met originele Foto 1, getransformeerde Foto 2 (Figuur
6-8) en getransformeerde Foto 3 (Figuur 6-9). De perspectiefvervorming in de drie
foto’s is nu dezelfde, maar de foto’s dienen nog samen gevoegd te worden.
Figuur 6-10: Foto's dienen samengevoegd te worden in Stap 2
Aan de hand van een selectietool om controlepunten aan te duiden, wordt er in beide
afbeeldingen één overeenkomstig punt aangeduid.
80 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-11: Selectietool in MATLAB voor het aanduiden van een overeenkomstig punt
Het vinden van een overeenkomstig punt gebeurd manueel.
Ook automatisatie bij deze stap zou kunnen. Zoals in vorige stap (Stap 1) uitgelegd
zijn er een groot aantal overeenkomstige punten gevonden tussen beide
afbeeldingen met het SURF algoritme. Een van de gevonden features (best een zo
goed mogelijke) zou hier ook als overeenkomstig punt kunnen dienen.
Er is echter gekozen om de verschillende stappen van deze masterproef duidelijk in
MATLAB op te delen om een gestructureerde redenering op te bouwen. Om deze
reden wordt er manueel een punt gekozen.
Het resultaat is dan een nieuwe foto die de drie vorige foto’s omvat (Figuur 6-12).
81 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-12: Samengevoegde foto's (Stap 2)
6.3.3. Derde stap: rectificatie van samengeplakte foto’s
In de derde en laatste stap wordt met behulp van minimaal vier opgemeten punten
de samengevoegde foto (Figuur 6-12) gerectificeerd. De vier of meer punten zijn best
zo veel mogelijk verspreid over de verschillende hoeken van de foto om een zo
accuraat mogelijk resultaat te bekomen.
Controlepunten X Y
1020 22,712 7,437
1032 41,096 7,442
1048 40,519 2,657
1040 20,286 4,635 Tabel 3: 4 controlepunten
Aan de hand van de coördinaten van deze punten (in meter), en de coördinaten van
de punten in de foto (in pixels) kan de foto gerectificeerd worden zodat de muur
zonder perspectief distorsie geprojecteerd wordt.
In MATLAB worden de X- en Y-coördinaten van de 4 punten ingegeven en opnieuw
wordt er een selectietool gestart waar de 4 punten manueel moeten aangeduid
worden op de foto zelf (Figuur 6-13).
82 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-13: Selectietool voor het aanduiden van controlepunten
Als resultaat wordt er een gerectificeerde afbeelding (Figuur 6-14) bekomen zonder
perspectief distorsie.
Figuur 6-14: Gerectificeerd geheel
83 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Een mogelijkheid om rechtstreeks op de foto te meten, is door dit finale resultaat met
correcte schaal in AutoCAD te laden zoals in Figuur 6-15. Dit is mogelijk doordat de
coördinaten van de vier punten zowel gekend zijn in X en Y-richting als in pixels.
Figuur 6-15: Ingemeten punten met gerectificeerde foto in AutoCAD
6.4. Nauwkeurigheidscontrole
Een belangrijk onderdeel van deze masterproef is natuurlijk om te weten hoe
accuraat deze techniek nu is. Logischerwijs zal er een nauwkeurigheidsverlies zijn
ten opzichte van het traditioneel punt per punt inmeten, maar de vraag is hoe beperkt
dit verlies blijft.
Aan de hand van de gerectificeerde foto’s van Kasteel Arenberg wordt er bekeken
hoeveel de berekende coördinaten afwijken van de coördinaten die ingemeten
werden in de meetcampagne.
Punt X (m) Y (m)
1020 22,711 7,437
1021 23,761 7,433
1025 30,373 7,434
1026 30,610 5,447
1027 29,096 5,444
1032 41,096 7,442
1035 41,108 5,437
1040 20,286 4,635
1042 30,114 4,564
1047 35,106 2,653
1048 40,518 2,657 Tabel 4: gemeten coördinaten
Wanneer de gemeten (met totaalstation) coördinaten nu opnieuw worden gemeten in
de foto (in AutoCAD) dan kan aan de hand van deze verschillen worden gekeken wat
84 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
de nauwkeurigheid van deze methode is. In volgende paragrafen wordt dit gedaan
voor respectievelijk 4 en meerdere (6) controlepunten.
6.4.1. Rectificatie a.d.h.v. 4 controlepunten
In vorige paragraaf werd reeds uitgelegd hoe een foto wordt gerectificeerd aan de
hand van 4 controlepunten. Onderstaande afbeelding is dus de foto uit stap 2 (nog
niet gerectificeerd.
Figuur 6-16: Samengevoegde foto's uit Stap 2
Controlepunten X Y
1020 22,712 7,437
1032 41,096 7,442
1048 40,519 2,657
1040 20,286 4,635 Tabel 5: Vier controlepunten
Wanneer bovenstaande foto (Figuur 6-16) nu gerectificeerd wordt aan de hand van
bovenstaande 8 coördinaten (Tabel 5), wordt de gehele foto getransformeerd door
onderstaande homografie.
[
]
Vergelijking 6-2: Homografie a.d.h.v. 4 controlepunten
Dit resulteert in onderstaande, gerectificeerde, foto (Figuur 6-17).
85 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-17: Gerectificeerde foto aan de hand van 4 controlepunten
Wanneer nu de punten die gemeten werden (Tabel 4) opnieuw worden gezocht in de
foto, dan worden volgende coördinaten bekomen (Tabel 6).
Punt X (m) Y (m)
1020a 22,707 7,440
1021a 23,753 7,424
1025a 30,328 7,398
1026a 30,605 5,439
1027a 29,104 5,429
1032a 41,082 7,447
1035a 41,096 5,429
1040a 20,279 4,633
1042a 30,116 4,567
1047a 35,087 2,704
1048a 40,521 2,680 Tabel 6: berekende coördinaten a.d.h.v. 4 controlepunten
Om goed te kunnen inschatten hoe nauwkeurig er gewerkt wordt kan het verschil
gemaakt worden tussen de gemeten (totaalstation) en de berekende (op foto
aangeduide) waarden.
Verschil ∆ X ∆ Y
1020 - 1020a 0,004 0,003
1021 - 1021a 0,008 -0,009
1025 - 1025a 0,045 -0,036
1026 - 1026a 0,005 -0,008
1027 - 1027a -0,008 -0,015
1032 - 1032a 0,014 0,005
86 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
1035 - 1035a 0,012 -0,008
1040 - 1040a 0,007 -0,002
1042 - 1042a -0,002 0,003
1047 - 1047a 0,019 0,051
1048 - 1048a -0,003 0,023 Tabel 7: Verschil tussen gemeten en berekende coördinaten a.d.h.v. 4 controlepunten
Bovenstaande tabel geeft het verschil tussen de gemeten en berekende coördinaten.
Aan de hand van deze relatieve verschilwaarde kan een eerste conclusie getrokken
worden. Hierbij liggen 68,27% van deze berekende punten binnen de straal van 1,4
cm rond het origineel opgemeten punten in de X-richting en 2,2 cm in de Y-richting.
Voor 95,45% is dit respectievelijk 3 cm en 4,7 cm.
Analyse X Y
σ 0,014 0,022
2 keer σ 0,030 0,047
3 keer σ 0,047 0,073
minimum -0,008 -0,036
maximum 0,045 0,051 Tabel 8: Analyse tussen gemeten en berekende coördinaten a.d.h.v. 4 controlepunten
Er kan opgemerkt worden dat er enkele hoge waarden ten opzichte van anderen.
Kijk hierbij bijvoorbeeld naar de waarde van puntnummer 1025a of 1047a. De reden
hiervoor is terug te vinden wanneer we de afstand van elk punt tot aan het
dichtstbijzijnde controlepunt bekijken. Hoe verder het te berekenen punt afgelegen is
van een controlepunt, des te minder nauwkeurig zal het te berekenen punt zijn.
Afstand tot dichtstbijzijnde cp (m)
tot 1020a 0,005
tot 1021a 1,041
tot 1025a 7,617
tot 1026a 8,142
tot 1027a 6,700
tot 1032a 0,015
tot 1035a 2,013
tot 1040a 0,007
tot 1042a 7,941
tot 1047a 5,432
tot 1048a 0,024 Tabel 9: Afstand van berekend punt tot dichtstbijzijnde controlepunt
87 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
De enige manier om te controleren of deze redenering effectief klopt is door meer
controlepunten te gebruiken. In volgende paragraaf worden net dezelfde stappen
doorlopen, maar met zes controlepunten in plaats van vier.
6.4.2. Rectificatie a.d.h.v. 6 controlepunten
Figuur 6-18: Samengevoegde foto's uit Stap 2
Controlepunten X (m) Y (m)
1020 22,712 7,437
1025 30,373 7,434
1032 41,096 7,442
1048 40,519 2,657
2006 32,296 2,648
1040 20,286 4,635 Tabel 10: Zes controlepunten
[
]
Vergelijking 6-3: Homografie aan de hand van 6 controlepunten
88 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Figuur 6-19: Gerectificeerde foto a.d.h.v. 6 controlepunten
Punt X (m) Y (m)
1020b 22,721 7,448
1021b 23,761 7,441
1025b 30,348 7,412
1026b 30,61 5,432
1027b 29,117 5,434
1032b 41,09 7,448
1035b 41,101 5,42
1040b 20,275 4,626
1042b 30,117 4,552
1047b 35,081 2,66
1048b 40,519 2,656 Tabel 11: berekende coördinaten a.d.h.v. 6 controlepunten
Verschil ∆ X ∆ Y
1020 - 1020b -0,010 -0,011
1021 - 1021b 0,000 -0,008
1025 - 1025b 0,025 0,022
1026 - 1026b 0,000 0,015
1027 - 1027b -0,021 0,010
1032 - 1032b 0,006 -0,006
1035 - 1035b 0,007 0,017
1040 - 1040b 0,011 0,009
1042 - 1042b -0,003 0,012
1047 - 1047b 0,025 -0,007
1048 - 1048b -0,001 0,001 Tabel 12: Verschil tussen gemeten en berekende coördinaten a.d.h.v. 6 controlepunten
89 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
We merken dadelijk op, wanneer dezelfde foto wordt gerectificeerd aan de hand van
meer (zes) controlepunten, dat de verschilwaarden tussen de gemeten en berekende
punten is gedaald.
Analyse X Y
σ 0,014 0,012
2 keer σ 0,027 0,022
3 keer σ 0,043 0,030
minimum -0,021 -0,011
maximum 0,025 0,022 Tabel 13: Analyse tussen gemeten en berekende coördinaten a.d.h.v. 6 controlepunten
Hierbij liggen 68,27% van deze berekende punten binnen de straal van 1,4 cm in de
X-richting en 1,2 cm in de Y-richting. Vooral in de Y-richting is een sterke stijging op
te merken (bijna 10mm beter). Voor 95,45% is dit respectievelijk 2,7cm en 2,2 cm. En
voor 99,73% 4,3cm en 3,0cm.
Afstand tot dichtstbijzijnde cp (m)
tot 1020b 0,015
tot 1021b 1,050
tot 1025b 0,033
tot 1026b 2,016
tot 1027b 2,361
tot 1032b 0,009
tot 1035b 2,022
tot 1040b 0,014
tot 1042b 2,881
tot 1047b 2,785
tot 1048b 0,001 Tabel 14: Afstand van berekend punt tot dichtstbijzijnde controlepunt
90 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
91 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Conclusie 7.
In onderhavige masterproef onderzochten we een alternatief voor het traditioneel on-
site inmeten van een vlakke structuur (in casu een lange gevel). De vraag die we ons
stelden was of er hierdoor aan efficiëntie (tijdsaspect) kon gewonnen worden, zonder
dat er wezenlijk aan nauwkeurigheid diende ingeboet te worden.
In eerste instantie kwamen we tot de conclusie dat het fotograferen van de vlakke
structuur als een waardig alternatief kan beschouwd worden. Dit alternatief biedt een
aantal wezenlijke voordelen. Vooreerst kan het traditionele on-site inmeten
aanzienlijk in tijd beperkt worden, los van de klimatologische omstandigheden waarin
er soms moet gewerkt worden. Zo zullen slechts een aantal controlepunten
ingemeten moeten worden, terwijl op de traditionele manier alle nodige punten on-
site moeten ingemeten worden. Ook zal achteraf punten aanduiden op een foto veel
sneller verlopen dan on-site inmeten met het totaalstation. Bovendien krijgt men,
samen met het uiteindelijk meetresultaat, ook een duidelijke visuele voorstelling van
de vlakke structuur.
Maar, om het fotograferen als een geldig en volwaardig alternatief te kunnen
beschouwen, dienen er belangrijke randvoorwaarden vervuld te worden. De kwaliteit
van het toestel en voornamelijk van de lens speelt een belangrijke rol, zoals
aangetoond in huidig proefschrift. Ook de brandpuntsafstand en de instellingen
inzake fotoresolutie mogen niet zomaar over het hoofd worden gezien. De plaats
waar de landmeter zich opstelt, ten opzichte van de vlakke structuur, is, zoals hoger
besproken, niet te veronachtzamen.
Met behulp van MATLAB ontwikkelden we een code waardoor we uiteindelijk een
foto kregen, dat het resultaat was van een rectificatie en het samenvoegen van
meerdere foto’s. Hierbij werd er vertrokken van minstens 4 controle punten. Op het
uiteindelijk resultaat kan er vervolgens verder gemeten worden.
Vervolgens onderzochten we de nauwkeurigheid van de voorgestelde, alternatieve
methode. Zowel in het traditioneel opmeten als in deze alternatieve methode zijn de
ingemeten (controle-)punten afhankelijk van de nauwkeurigheid van het totaalstation.
Bij de methode in deze masterproef kwam er echter nog meer bij kijken. Zo hangt de
nauwkeurigheid zeker ook af van het aantal controlepunten op de muur, waarvan er
minimaal vier nodig zijn. Wij toonden aan dat wanneer er meer controlepunten
worden ingemeten, dit de nauwkeurigheid deed stijgen. Ook mag het belang van het
aanduiden van deze controlepunten op de foto niet uit het oog verloren worden. Het
92 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
minder accuraat aanduiden ervan resulteert al snel in een groot verlies aan
nauwkeurigheid!
Wij beklemtonen eveneens het belang van de fotoresolutie. De nauwkeurigheid
wordt immers beperkt door de afstand die overeen komt per pixel. Indien
bijvoorbeeld één pixel in de finaal gerectificeerde foto van een gevel overeenkomt
met 1 cm op de gevel, zal de nauwkeurigheid nooit beter kunnen worden dan deze
één centimeter. In het geval van de meting op het Kasteel van Arenberg, is de
Ground Sample Distance gelijk aan 3,63 mm voor foto’s op een afstand van
ongeveer 35 meter van de muur getrokken.
Uit de toepassing op het Kasteel van Arenberg kan geconcludeerd worden dat de
nauwkeurigheid niet gelijk is aan het traditioneel volledig opmeten met behulp van
het totaalstation. En dit is ook logisch, doordat in het voorgestelde alternatief een
gehele muur nu afhankelijk is van slechts een aantal (minimum vier) controlepunten.
Wij toonden echter aan dat, wanneer er meerdere controlepunten worden aangeduid
op de muur (in onze toepassing namen we er 6), dit de accuraatheid ten goede komt.
In het voorbeeld met zes controlepunten is er een verbetering van ongeveer 10% in
de X-richting en bijna de helft in de Y-richting in vergelijking met de minimum vereiste
vier controlepunten. Een standaardafwijking van respectievelijk 1,4 cm en 1,2 cm kan
en mag natuurlijk niet zomaar over het hoofd gezien worden. De toepassing
ontwikkeld in deze masterproef zal dus niet moeten gebruikt worden voor vlakken
waar punten op millimeter-niveau exact bepaald dienen te worden. Ook mag niet
vergeten worden dat het gebruikte toestel ook maar een nauwkeurigheid van +-3mm
garandeert. Maar in de andere gevallen kan de voorgestelde toepassing als een
waardig alternatief beschouwd worden.
Tenslotte en alhoewel er in de MATLAB-code steeds in deelprojecten wordt gewerkt,
bewijst deze masterproef dat automatisatie van het gehele proces zeker mogelijk is.
Zo is het mogelijk dat foto’s worden ingeladen en automatisch aan elkaar worden
geplakt zonder een tussenstap. Het zal echter steeds nodig blijven om de
controlepunten aan te duiden in de samengeplakte foto om deze correct te
rectificeren. Doordat de overgang van MATLAB code naar bijvoorbeeld een
programmeertaal als C eerder eenvoudig is, kan er naar een meer doorgedreven
automatisatie gestreefd worden. Dit zou het opmeten van een gevel in een CAD
toepassing wel uiterst interessant maken!
93 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Bijlagen 8.
8.1. MATLAB code
8.1.1. Eerste stap: Automatische rectificatie met behulp
van SURF
%Inlezen eerste afbeelding org_afbeelding1 = imread('1.JPG'); figure(1), imshow(org_afbeelding1); title('Afbeelding 1'); afbeelding1 = rgb2gray(double(org_afbeelding1)/255);
%Inlezen tweede afbeelding org_afbeelding2 = imread('2.JPG'); figure(2), imshow(org_afbeelding2); title('Afbeelding 2'); afbeelding2 = rgb2gray(double(org_afbeelding2)/255);
%features detecteren (descriptors) in afbeelding 1 en afbeelding 2 %aan de hand van SURF punten_Afb1 = detectSURFFeatures(afbeelding1); punten_Afb2 = detectSURFFeatures(afbeelding2);
%features extracten [features_afb1 validPtsIn] = extractFeatures(afbeelding1, punten_Afb1,
'SURFSize', 128); [features_afb2 validPtsOut] = extractFeatures(afbeelding2, punten_Afb2,
'SURFSize', 128);
%features matchen aan de hand van hun descriptors index_pairs = matchFeatures(features_afb1, features_afb2);
%plaatsbepaling van overeenkomstige punten Afbeelding1_gematched_punten = validPtsIn(index_pairs(:,1)); Afbeelding2_gematched_punten = validPtsOut(index_pairs(:,2));
%Overeenkomstige punten met elkaar vergelijken aan de hand van een %composietbeeld (een afbeelding rood, ander cyaan). cvexShowMatches(afbeelding1,afbeelding2,Afbeelding1_gematched_punten, ... Afbeelding2_gematched_punten, 'Punten in afbeelding 1', ... 'Punten in afbeelding 2'); title('Composietbeeld: Overeenkomstige punten in de twee afbeeldingen (met
uitschieters)');
%Transformatiematrix berekenen te worden a.d.h.v. corresponderende punten %in beide afbeeldingen. Dit m.b.v. Geometric Transform Estimator (RANSAC) geometrische_transform_benadering = vision.GeometricTransformEstimator; geometrische_transform_benadering.Method = 'Random Sample Consensus
(RANSAC)';
94 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
geometrische_transform_benadering.Transform = 'Projective'; geometrische_transform_benadering.NumRandomSamplingsMethod = 'Desired
confidence'; geometrische_transform_benadering.MaximumRandomSamples = 100000; geometrische_transform_benadering.DesiredConfidence = 99.999;
geometrische_transform_benadering.InlierPercentage = 99.999;
[transformatie_matrix inlierIdx] = step(geometrische_transform_benadering,
... Afbeelding2_gematched_punten.Location,
Afbeelding1_gematched_punten.Location);
%Overeenkomstige punten met elkaar vergelijken a.d.h.v. een composietbeeld %waarbij de uitschieters verwijderd zijn. cvexShowMatches(afbeelding1,afbeelding2,... Afbeelding1_gematched_punten(inlierIdx),... Afbeelding2_gematched_punten(inlierIdx),... 'Punten in afbeelding 1',...'Punten in afbeelding 2'); title('Overeenkomstige punten in de twee afbeeldingen (uitschieters
verwijderd)');
%Afbeelding 2 wordt nu geprojecteerd naar afbeelding1 tform = maketform('projective',double(transformatie_matrix));
homografie = tform.tdata.T rect_afb2 = imtransform(org_afbeelding2,tform);
%Tonen en wegschrijven gerectificeerde afbeelding figure, imshow(rect_afb2) imwrite(rect_afb2,'gerect_afbeelding1.png','png')
95 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
8.1.2. Tweede stap: Samenplakken van getransformeerde
foto’s
%Inlezen eerste afbeelding afbeeldingL = imread('1.JPG'); %figure(1), imshow(afbeeldingL); %title('Linkse Foto');
%Inlezen tweede afbeelding afbeeldingR = imread('B.png'); %figure(2), imshow(afbeeldingR); %title('Rechtse Foto');
%één punt selecteren om beide foto's samen te voegen [puntL puntR] = cpselect(afbeeldingL, afbeeldingR, 'wait', true);
%coordinaten in linker foto puntL_x = puntL(1,1); puntL_y = puntL(1,2);
%coordinaten in rechter foto puntR_x = puntR(1,1); puntR_y = puntR(1,2);
%punt van de eerste foto in te plakken fit1_rect_x = 1; fit1_rect_y = 1;
%punt waar de tweede foto wordt ingeplakt fit2_rect_x = round(puntL_x - puntR_x); fit2_rect_y = round(puntL_y - puntR_y);
%zwarte achtergrond waar beide foto's op komen samen_x = size(afbeeldingL,2)+size(afbeeldingR,2)-(size(afbeeldingL,2)- ... abs(fit2_rect_x)); samen_y = size(afbeeldingL,1)+size(afbeeldingR,1)-(size(afbeeldingL,1)- ... abs(fit2_rect_y)); foto_samen = uint8(zeros(samen_y,samen_x));
if fit2_rect_y <= 0 %als afbeelding 2 hoger komt t.o.v. afbeelding 1
%eerste foto ingeplakt foto_samen(fit1_rect_y+abs(fit2_rect_y):fit1_rect_y+abs(fit2_rect_y)+
... size(afbeeldingL,1)-1 , fit1_rect_x:fit1_rect_x+ ... size(afbeeldingL,2)-1, 1 : 3) = afbeeldingL(1:1+ ... size(afbeeldingL,1)-1,1:1+size(afbeeldingL,2)-1,1:3); %tweede foto ingeplakt foto_samen(fit1_rect_y:fit1_rect_y+size(afbeeldingR,1)-1 , ... fit2_rect_x:fit2_rect_x+size(afbeeldingR,2)-1, 1 : 3) = ... afbeeldingR(1:1+size(afbeeldingR,1)-1,1:1+size(afbeeldingR,2)-
1,1:3);
else %als afbeelding 2 lager komt t.o.v. afbeelding 1
96 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
%eerste foto ingeplakt foto_samen(fit1_rect_y:fit1_rect_y+size(afbeeldingL,1)-1 , ... fit1_rect_x:fit1_rect_x+size(afbeeldingL,2)-1, 1 : 3) = ... afbeeldingL(1:1+size(afbeeldingL,1)-1,1:1+size(afbeeldingL,2)-
1,1:3); %tweede foto ingeplakt foto_samen(fit1_rect_y+abs(fit2_rect_y):fit1_rect_y+abs(fit2_rect_y)+
... size(afbeeldingR,1)-1 , fit2_rect_x:fit2_rect_x+ ... size(afbeeldingR,2)-1, 1 : 3) = afbeeldingR(1:1+ ... size(afbeeldingR,1)-1,1:1+size(afbeeldingR,2)-1,1:3); end
%tonen en wegschrijven van nieuwe foto imshow(foto_samen) imwrite(foto_samen,'test.png','png')
8.1.3. Derde stap: rectificatie van samengeplakte foto’s
%Samengeplakte foto inlezen afbeelding = imread('samengeplakte_foto.png');
%Werkelijke coordinaten ingeven punten_werkelijk = [5.412 7.444; 36.654 7.498; 6.69 0.854; 35.124 2.633]
%Coordinaten van pixels in de linker foto juist aanduiden! [punten_pixels puntenR] = cpselect(afbeelding, afbeelding, 'wait', true);
t_proj = cp2tform(punten_pixels,punten_werkelijk,'projective'); t_pros = t_proj.tdata.Tinv;
%Elementen van projectieve transformatie A = t_pros(1,1); B = t_pros(2,1); C = t_pros(3,1); D = t_pros(1,2); E = t_pros(2,2); F = t_pros(3,2); G = t_pros(1,3); H = t_pros(2,3); I = t_pros(3,3);
%Hier coordinaten van onbekend punt ingeven: x,y x = 1.8969 ; y = 6.2846 ;
%Coordinaten in pixels: u,v u = (A*x + B*y + C)/(G*x + H*y + I) v = (D*x + E*y + F)/(G*x + H*y + I)
%rectificeren van de gehele foto & tonen + wegschrijven rect_img = imtransform(afbeelding,t_proj); rect_img = rect_img(end:-1:1,:,:); imshow(afbeelding), figure, imshow(rect_img); imwrite(rect_img,'gerectificeerd_geheel.png','png')
97 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
8.2. Specificaties totaalstation: Sokkia SRX 3
Opmerking: de meetafstand en –nauwkeurigheid hangt mede af van het gemeten
object (kleur, textuur,..), situaties en condities waaronder gemeten wordt.
De nauwkeurigheid van het gebruikte toestel bedraagt 3mm + 2ppm*afstand
wanneer er gemeten wordt tussen een afstand van 0,3 tot 200 meter. Voor deze
masterproef werden geen afstanden groter dan maximumwaarde gemeten. Voor
hogere waarden gelden immers lagere nauwkeurigheden.
98 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
8.3. Resultaat gevelmeting (x-y-z coördinaten)
Dit is het resultaat van een meetcampagne waarbij de volledige westermuur van het
Kasteel van Arenberg in kaart werd gebracht. De gevelmeting gebeurde vanuit twee
standplaatsen, waarbij vanuit standplaats 1 en standplaats 2 respectievelijk vanaf
puntnummer 100 en puntnummer 200 gebruikt werd gemaakt.
Standplaats 1 1000,000m 1000,000m 10,000m
Standplaats 2 1000,000m 1017,980m 9,971m
Puntnummer X (m) Y (m) Z (m) Puntnummer X (m) Y (m) Z (m)
100 983,679 980,340 17,938 200 983,673 980,334 17,935
101 983,607 981,396 17,935 201 983,600 981,390 17,934
102 983,594 981,481 15,896 202 983,586 981,474 15,889
103 983,665 980,263 15,909 203 983,660 980,252 15,907
104 983,426 984,477 17,948 204 983,419 984,474 17,945
105 983,354 985,525 17,949
106 983,338 985,675 15,912 206 983,331 985,671 15,913
107 983,423 984,354 15,916 207 983,416 984,353 15,912
108 983,129 989,053 17,966 208 983,122 989,049 17,964
109 983,056 990,105 17,968 209 983,049 990,098 17,969
110 983,049 990,185 15,933 210 983,042 990,178 15,923
111 983,130 988,997 15,935 211 983,124 988,994 15,933
112 982,844 993,641 17,983 212 982,837 993,638 17,980
113 982,783 994,692 17,984 213 982,778 994,691 17,985
114 982,766 994,813 15,930 214 982,760 994,808 15,927
115 982,858 993,557 15,928 215 982,842 993,539 15,920
116 982,589 998,224 18,000 216 982,584 998,219 17,997
117 982,530 999,242 18,001 217 982,523 999,247 18,000
118 982,528 999,327 15,939 218 982,523 999,320 15,934
119 982,599 998,161 15,942 219 982,598 998,159 15,941
120 982,292 1002,965 18,025 220 982,288 1002,962 18,025
121 982,213 1004,014 18,022 221 982,209 1004,013 18,020
122 982,210 1004,216 16,006 222 982,203 1004,211 16,000
123 982,292 1002,898 16,006 223 982,290 1002,898 16,010
124 981,850 1009,574 18,021 224 981,847 1009,576 18,023
125 981,778 1010,626 18,024 225 981,774 1010,624 18,020
126 981,782 1010,863 16,040 226 981,777 1010,861 16,030
127 981,873 1009,352 16,028 227 981,869 1009,345 16,036
128 981,469 1015,677 18,025 228 981,467 1015,679 18,026
129 981,408 1016,729 18,021 229 981,408 1016,728 18,023
130 981,405 1016,846 16,015 230 981,403 1016,845 16,010
131 981,480 1015,668 16,018 231 981,479 1015,665 16,017
99 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
132 981,178 1021,348 18,029 232 981,178 1021,348 18,030
133 981,143 1022,400 18,031 233 981,141 1022,397 18,030
134 981,134 1022,397 16,021 234 981,132 1022,397 16,021
135 981,166 1021,357 16,026 235 981,171 1021,363 16,023
136 983,507 982,906 15,149 236 983,503 982,894 15,145
137 983,234 987,324 15,178 237 983,229 987,314 15,174
138 982,938 991,937 15,087 238 982,932 991,955 15,082
139 982,686 996,450 15,149 239 982,679 996,442 15,149
140 982,461 1000,530 15,224 240 982,454 1000,546 15,222
141 982,118 1005,821 15,234 241 982,117 1005,811 15,226
142 981,822 1010,374 15,155 242 981,820 1010,358 15,150
143 981,531 1014,996 15,205 243 981,530 1014,991 15,204
144 983,514 982,832 12,983 244 983,577 981,554 14,826
245 983,509 982,826 12,978
246 983,267 986,924 12,229
147 983,281 986,934 11,495 247 983,275 986,929 11,491
148 983,134 989,237 13,155 248 983,126 989,235 13,153
149 983,154 989,25 10,588 249 982,624 998,033 13,205
150 982,631 998,034 13,212 250 981,709 1012,548 13,236
151 982,651 998,034 10,636 251 981,751 1012,554 10,677
152 981,748 1012,123 13,237 252 981,555 1015,353 13,240
153 981,553 1015,362 13,242 253 981,223 1020,769 13,244
154 981,224 1020,772 13,245 254 981,139 1022,605 13,246
155 981,258 1020,772 10,701 255 981,214 1022,575 10,695
100 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
8.4. Transformatie één vlak (x-y coördinaten)
Om met coördinaten in één vlak (x- en y-coördinaten) te kunnen werken, is het nodig
om een transformatie van bovenstaande x-y-z-coördinaten uit te voeren. Vervolgens
werden er een best passend vlak door alle gemeten punten op de gevel gefit. Dit
resulteert in onderstaande x en y-waarden. di is dan RMSE (root-mean-square error)
en geeft een indicatie hoe ver het punt gelegen is van dit berekende vlak.
Standplaats 1 Standplaats 2
Puntnummer X (m) Y (m) di (m) Puntnummer X (m) Y (m) di (m)
100 0,088 7,350 0,018 200 0,082 7,347 0,012
101 1,144 7,347 0,010 201 1,138 7,346 0,003
102 1,229 5,308 0,002 202 1,222 5,301 0,006
103 0,011 5,321 0,000 203 0,000 5,319 0,006
104 4,225 7,360 0,016 204 4,222 7,357 0,009
105 5,273 7,361 0,008
106 5,423 5,324 0,001 206 5,419 5,325 0,006
107 4,102 5,328 0,006 207 4,101 5,324 0,001
108 8,801 7,378 0,003 208 8,797 7,376 0,010
109 9,853 7,380 0,012 209 9,846 7,381 0,019
110 9,933 5,345 0,014 210 9,926 5,335 0,021
111 8,745 5,347 0,005 211 8,742 5,345 0,011
112 13,389 7,395 0,009 212 13,386 7,392 0,016
113 14,440 7,396 0,006 213 14,439 7,397 0,011
114 14,561 5,342 0,016 214 14,556 5,339 0,022
115 13,305 5,340 0,000 215 13,287 5,332 0,017
116 17,972 7,412 0,014 216 17,967 7,409 0,009
117 18,990 7,413 0,017 217 18,995 7,412 0,010
118 19,075 5,351 0,020 218 19,068 5,346 0,015
119 17,909 5,354 0,020 219 17,907 5,353 0,019
120 22,713 7,437 0,005 220 22,710 7,437 0,001
121 23,762 7,434 0,010 221 23,761 7,432 0,014
122 23,964 5,418 0,001 222 23,959 5,412 0,008
123 22,646 5,418 0,001 223 22,646 5,422 0,001
124 29,322 7,433 0,036 224 29,324 7,435 0,038
125 30,374 7,436 0,044 225 30,372 7,432 0,048
126 30,611 5,452 0,025 226 30,609 5,442 0,030
127 29,100 5,440 0,026 227 29,093 5,448 0,030
128 35,425 7,437 0,046 228 35,427 7,438 0,048
129 36,477 7,433 0,043 229 36,476 7,435 0,043
130 36,594 5,427 0,039 230 36,593 5,422 0,041
131 35,416 5,430 0,035 231 35,413 5,429 0,037
132 41,096 7,441 0,007 232 41,096 7,442 0,007
133 42,148 7,443 0,036 233 42,145 7,442 0,034
101 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
134 42,145 5,433 0,027 234 42,145 5,433 0,025
135 41,105 5,438 0,004 235 41,111 5,435 0,001
136 2,654 4,561 0,002 236 2,642 4,557 0,003
137 7,072 4,590 0,003 237 7,062 4,586 0,008
138 11,685 4,499 0,019 238 11,703 4,494 0,023
139 16,198 4,561 0,003 239 16,190 4,561 0,004
140 20,278 4,636 0,026 240 20,294 4,634 0,020
141 25,569 4,646 0,005 241 25,559 4,638 0,003
142 30,122 4,567 0,015 242 30,106 4,562 0,018
143 34,744 4,617 0,025 243 34,739 4,616 0,027
144 2,580 2,395 0,005 244 1,302 4,238 0,010
245 2,574 2,390 0,001
246 6,672 1,641 0,006
147 6,682 0,907 0,021 247 6,677 0,903 0,014
148 8,985 2,567 0,013 248 8,983 2,565 0,005
149 8,998 0,000 0,034 249 17,781 2,617 0,038
150 17,782 2,624 0,045 250 32,296 2,648 0,004
151 17,782 0,048 0,065 251 32,302 0,089 0,046
152 31,871 2,649 0,017 252 35,101 2,652 0,020
153 35,110 2,654 0,019 253 40,517 2,656 0,017
154 40,520 2,657 0,018 254 42,353 2,658 0,045
155 40,520 0,113 0,052 255 42,323 0,107 0,118
102 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
8.5. Gemiddeld resultaat in één vlak (x-y coördinaten)
Nadat de verschillende punten in één vlak werden uitgedrukt, en dit vanuit twee
standpunten, kan vervolgens de gemiddelde waarde genomen worden van beide
metingen. Omdat er vanuit twee verschillende opstelpunten werd gemeten, waren
sommige punten zichtbaar vanuit de ene standplaats maar niet vanuit de andere.
Deze punten kregen een puntnummer vanaf 2000 mee. Om deze reden wordt er
best gewerkt met de puntennummers vanaf 1000, deze zijn immers gecontroleerd
vanuit twee standplaatsen en dus correct gelokaliseerd.
Puntnummer X (m) Y (m) Puntnummer X (m) Y (m)
1001 0,085 7,349 1030 36,594 5,425
1002 1,141 7,347 1031 35,415 5,430
1003 1,226 5,305 1032 41,096 7,442
1004 0,006 5,320 1033 42,147 7,443
1005 4,224 7,359 1034 42,145 5,433
1006 5,421 5,325 1035 41,108 5,437
1007 4,102 5,326 1036 2,648 4,559
1008 8,799 7,377 1037 7,067 4,588
1009 9,850 7,381 1038 11,694 4,497
1010 9,930 5,340 1039 16,194 4,561
1011 8,744 5,346 1040 20,286 4,635
1012 13,388 7,394 1041 25,564 4,642
1013 14,440 7,397 1042 30,114 4,565
1014 14,559 5,341 1043 34,742 4,617
1015 13,296 5,336 1044 6,680 0,905
1016 17,970 7,411 1045 8,984 2,566
1017 18,993 7,413 1046 17,782 2,621
1018 19,072 5,349 1047 35,106 2,653
1019 17,908 5,354 1048 40,519 2,657
1020 22,712 7,437 2001 5,273 7,361
1021 23,762 7,433 2002 2,574 2,39
1022 23,962 5,415 2003 6,672 1,641
1023 22,646 5,420 2004 8,998 0,000
1024 29,323 7,434 2005 17,782 0,048
1025 30,373 7,434 2006 32,296 2,648
1026 30,610 5,447 2007 32,302 0,089
1027 29,097 5,444 2008 35,101 2,652
1028 35,426 7,438 2009 42,353 2,658
1029 36,477 7,434 2010 42,323 0,107
2011 40,520 0,113
103 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
8.6. Gevelmeting westermuur Kasteel Arenberg,
Leuven
Bijgevoegd de meting met aanduiding van de verschillende ingemeten punten met
coördinatenlijst. Achter de meting zijn gerectificeerde foto’s geplaatst om de
verschillende punten juist te kunnen lokaliseren.
104 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
105 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Referenties 9.
Bay, H., Ess, A., Tuytelaars, T. & Van Gool, L., 2008. SURF: Speeded Up Robust
Features. Computer Vision and Image Understanding (CVIU), Vol. 110, No. 3, pp.
346-359.
Bouguet, J.-Y., 2001. Camera Calibration Toolbox for Matlab. [Online]
Available at: http://www.vision.caltech.edu/bouguetj/calib_doc/index.html
Dubrofsky, E., 2007. Homography Estimation, The University of Britisch Columbia
(Vancouver): sn
eFunda, 2000. Least Squares Method. [Online]
Available at: http://www.efunda.com/math/leastsquares
[Geopend oktober 2013].
Fischler, M. A. & Bolles, R. C., 1981. Random Sample Consensus: A Paradigm for
Model Fitting with Applications to Image Analysis and Automated Cartography. SRI
International, pp. 381-395.
Harding, P. & Robertson, N., 2009. A Comparison of Feature Detectors with Passive
and Task-Based Visual Saliency. SCIA '09 Proceedings of the 16th Scandinavian
Conference on Image Analysis, pp. 716 - 725.
Harris, C. & Stephens, M., 1988. A combined corner and edge detector. Fourth Alvey
Vision Conference, p. p. 147–151.
Hartley, R. & Zisserman, A., 2004. Multiple View Geometry in Computer Vision,
Second Edition. Cambridge: Cambridge University Press.
Heikkilä, J. & Silvén, O., 1997. A Four-step Camera Calibration Procedure with
Implicit Image Correction, University of Oulu: Infotech Oulu and Department of
Electrical Engineering.
Hemmleb, M. & Wiedemann, A., 1997. Digital Rectification and Generation of
Orthoimages in Architectural Photogrammetry. y. International Archives of
Photogrammetry and Remote Sensing, pp. p. 261-267.
106 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Izumiya, S., Katsumi, H. & Yamasaki, T., 1998. The rectifying developable and the
spherical. Geometry and topology of caustics-Caustics, Issue Banach, pp. 137-149.
Johnson, M. K. & Farid, H., 2006. Metric measurements on a plane from a single
image, Dartmouth College: Department of Computer Science.
Lowe, D., 1999. Object Recognition from Local Scale-Invariant Features.
International Conference on Computer Vision, pp. p. 1150-1157.
Lowe, D. G., 2004. Distinctive Image Features from Scale-Invariant Keypoints.
International journal of computer vision, pp. p. 91-110.
Mayr, W. & Heipke, C., 1988. A Contribution to Digital Orthophoto Generation.
International Archives of Photogrammetry and Remote Sensing, Volume 27, Part
B11-IV, pp. 430-439.
Mohamed Mansoor Roomi, S., Manojkumar, V. & Senthilarasi, M., 2010. Pan
Correction through Overlap Estimation in a Multi-Camera Environment. Journal of
Computer Science 6 (9), pp. 985-993.
Oyallon, E. & Rabin, J., 2013. An analysis and implementation of the SURF method,
and its, sl: sn
Roma, N., Santos-Victor, J. & Tomé, J., 2002. A comparative analysis of cross-
correlation matching algorithms using a pyramidal resolution approach, sl: Instituto
Superior Técnico.
SeaDAS, O., 2013. BEAM Help - Resampling Methods. [Online]
Available at: http://seadas.gsfc.nasa.gov/
[Geopend oktober 2013].
Shirahatti, N., 2005. Edge detection algorithms. [Online]
Available at: http://vision.sista.arizona.edu/nvs/research/image_analysis/edge.html
[Geopend oktober 2013].
Sinha, U., 2010. SIFT: Scale Invariant Feature Transform. [Online]
Available at: http://www.aishack.in/2010/05/sift-scale-invariant-feature-transform/
[Geopend oktober 2013].
107 Meten op vlakke structuren door middel van gerectificeerde foto’s
KU Leuven: Campus De Nayer Vincent Vrijsen
Sinha, U., 2010. Two major physical defects in cameras. [Online]
Available at: http://www.aishack.in/2010/07/two-major-physical-defects-in-cameras/
[Geopend oktober 2013].
Stockman, G., 2009. Point/feature matching methods, Michigan State University: sn
Szeliski, R., 2010. Computer Vision: Algorithms and Applications. sl:sn
Van Genechten, B., 2010. Manual ImageMap, sl: sn
Zhang, Z., 1999. Flexible Camera Calibration By Viewing a Plane From Unknown
Orientations. One Microsoft Way, Redmond, Microsoft Research.
© Copyright KU Leuven
Zonder voorafgaande schriftelijke toestemming van zowel de promotor(en) als de auteur(s) is overnemen, kopiëren, gebruiken of realiseren van deze uitgave of gedeelten ervan verboden. Voor aanvragen tot of informatie i.v.m. het overnemen en/of gebruik en/of realisatie van gedeelten uit deze publicatie, wend u tot KU Leuven Campus De Nayer, Jan De Nayerlaan 5, B-2860 Sint-Katelijne-Waver, +32 15 31 69 44 of via e-mail [email protected].
Voorafgaande schriftelijke toestemming van de promotor(en) is eveneens vereist voor het aanwenden van de in deze masterproef beschreven (originele) methoden, producten, schakelingen en programma’s voor industrieel of commercieel nut en voor de inzending van deze publicatie ter deelname aan wetenschappelijke prijzen of wedstrijden.
FACULTEIT INDUSTRIELE INGENIEURSWETENSCHAPPEN CAMPUS DE NAYER (@Thomas More)
Jan De Nayerlaan 5 2860 SINT-KATELIJNE-WAVER, België
tel. + 32 15 31 69 44 [email protected]
www.iiw.kuleuven.be