Automatische planextractie uit 3D fotogrammetrie. Mathieu Theerens

Maat: px
Weergave met pagina beginnen:

Download "Automatische planextractie uit 3D fotogrammetrie. Mathieu Theerens"

Transcriptie

1 Automatische planextractie uit 3D fotogrammetrie Mathieu Theerens 23 mei 2013

2 ii

3 Voorwoord Vooraleer we starten met deze thesis wil ik eerst nog enkele personen en Thomas More Campus De nayer bedanken voor hun hulp bij het opstellen van deze thesis. Eerst zou ik Toon Goedemé willen bedanken voor zijn steun en advies bij deze thesis. Daarnaast wil ik ook mijn familie bedanken voor hun steun.

4 iv Abstract (Nederlands) Deze thesis is een onderdeel van het project 3D4SURE door de onderzoeksgroep EAVISE, dit project onderzoekt de mogelijkheden van 3D fotogrammetrie voor landmeters. In deze thesis gaan we onderzoeken of het mogelijk is om met behulp van 3D fotogrammetrie automatisch een 3D model te maken van een gebouw. Dit model kan worden gebruikt door een landmeter en het enige wat hij moet doen om het op te stellen is foto's trekken van een gebouw, aangezien het programma geen andere invoer vereist. Het 3D model wordt gemaakt in AutoCAD maar we werken eerst met een tussenstap namelijk een puntenwolk. Deze puntenwolk moet ons helpen de belangrijke punten te bepalen van het gebouw en met deze punten kunnen we het 3D model in AutoCAD maken. De puntenwolk wordt gemaakt met behulp van het programma Bundler, deze neemt als input een set van foto's en geeft als resultaat een puntenwolk en ook informatie over de transformatie van 2D (foto's) naar 3D (puntenwolk). De gegenereerde puntenwolk bevat nog vele ruispunten en extra bewerkingen zijn vereist om de belangrijke punten te kunnen identiceren in de puntenwolk. We gaan namelijk lijndetectie toepassen op de foto's en deze gedetecteerde lijnen projecteren van 2D naar 3D met behulp van de informatie verkregen van Bundler. De lijndetectie gebeurt in OpenCV, welke een gratis bibliotheek is voor C++. Deze bevat al enkele functies die randen en lijnen detecteren in foto's welke we kunnen gebruiken. Voor onze thesis hebben we de Progressive Probabilistic Hough Transformation gekozen als onze lijndetector. Hij maakt gebruik van Canny om de randen te detecteren en past dan de Hough transformatie toe om in de randen lijnen te detecteren. Eens alle lijnen gevonden zijn gaan we per foto de gedetecteerde lijnen projecteren naar de puntenwolk. Hiervoor gebruiken we PCL, welke ook een gratis bibliotheek is voor C++ die speciek over werken met puntenwolken gaat. Voor de projectie hebben we de rotatie, translatie en de intrinsieke matrices nodig van elke foto. Deze krijgen we allemaal van Bundler en het enigste dat we bijgevolg moeten doen is de juist formule berekenen om deze transformatie uit te voeren. Tijdens de projectie gaan we punten in de puntenwolk votes geven, namelijk elk punt dat dichtbij een berekende projectie ligt krijgt een vote. Alle punten die aan het eind van de projectiestap meer votes hebben dan een bepaalde threshold worden onze punten voor het 3D model in AutoCAD. We hebben deze stappen allemaal geschreven in C++ aangezien de functies die we nodig hadden in C++ bibliotheken zaten. We zijn resultaten bekomen voor elke stap, echter was de lijndetectie niet van voldoende kwaliteit zodat de rest van de stappen hier ook nadeel van ondervonden. De lijndetectie gaf namelijk 2 grote fouten, het detecteerde maar delen van lijnen en de verhouding ruislijnen tot goede lijnen was veel te hoog. Hierdoor was het algemene 3D model in AutoCAD van slechte kwaliteit. Een oplossing voor het probleem is een andere lijndetector implementeren, maar er was geen andere betere te vinden online en er was te weinig tijd om er zelf nog één te schrijven.

5 v Abstract (English) This thesis is a part of the project 3D4SURE by the research group EAVISE, this project researches the possibilties of 3D photogrammetry for surveyors. In this thesis we're going to research whether it's possible to use 3D photogrammetry in order to automatically create a 3D model of a building which can by used by a surveyor, and the only thing he had to do is taking pictures of said building. The 3D model is made in AutoCAD but we work with a pointcloud to obtain the points needed to create the 3D model in AutoCAD. This pointcloud is made using the program Bundler, this program takes a set of pictures as input and gives a pointcloud as result as well as information about the transformation between 2D (pictures) and 3D (pointcloud). However, the generated pointcloud still contains a lot of noise and extra processing is needed to identify the important points of the pointcloud. What we're going to do is perform line detection on the pictures and then we're going to project these detected lines on the pointcloud using the information of Bundler. The linedetection takes place in OpenCV which is a free library for C++, it already contains some functions about edge detection and line detection which we can use. For our thesis we've chosen the Progressive Probabilistic Hough Transformation as our line detection method, it uses Canny to detect the edges in the pictures and then applies the Hough transformation to detect the lines in these edges. Once all the lines are found we're going to project the detected lines for each picture to the pointcloud. We use PCL for the projection, since PCL is a free C++ library that is made specically to make working with pointclouds easier. For the projection we need the rotation, translation and the intrinsic matrices of each picture, but we already got that from Bundler and the only thing we need to do is work out the right formula to do this transformation. During the projection we're going to give the points in the pointcloud votes, each point that is close to a calculated projection gets a vote. Every point that has more votes than a certain threshold gets selected as point for the 3D model in AutoCAD. We have written all these steps in C++ as all the functions we need are from C++ libraries. We've obtained results for each step, however the line detection was not of sucient quality which caused the rest of the steps to get bad results as well. The line detection gave 2 big errors, one was that it detected only parts of the lines and the other one was that there were too many noiselines in comparison to the good lines. Because of this the nal 3D model in AutoCAD was of bad quality. A solution for the problem is to implement another linedetector, but we couldn't nd another better one online and there was too little time left to actually write one ourselves.

6 vi

7 Short Summary Introduction In this thesis we're going to research whether it's possible to create a 3D model of a building in AutoCAD using 3D photogrammetry. The thesis is part of the project 3D4SURE by the research group EAVISE, in this project the possibilities of 3D photogrammetry for surveyors are being researched. At the moment surveyors make a plan of a building using a 'total station', this takes quite some time and work. Therefore we would like to replace this method with 3D photogrammetry, the only thing the surveyor needs to do then is taking pictures of all the sides of the building. Afterwards he uploads the pictures to the computer and runs our program. This would take a lot less time than having to measure everything with the total station. The program itself consists of a few steps, rst the pictures are used to create a 3D pointcloud of the building. However, this pointcloud contains a lot of noise and we will need to nd a way to work around this noise. That's why for the next step we'll put aside the pointcloud for a moment and use the pictures to detect all the possible lines. These lines would give us in the ideal situation the structure of the building and after we've found them we'll then project them on the pointcloud using the extrinsic and intrinsic matrices of each picture. These matrices give information about the camera and the position of each picture in the scéne, we need this information in order to do the transformation between 2D (pictures) and 3D (pointcloud). During this projection we will vote points, with this we mean that we're going to give a point of the pointcloud a vote if they are close to the calculated projection. After this step is complete we'll have a few dozen points with a votecount higher than a chosen threshold and we'll then use these points to make the actual model in AutoCAD. Creating the pointcloud To create the pointcloud we can use SFM (Structure From Motion) programs found online, SFM means that we take pictures while moving and we create a structure (pointcloud) of these pictures. For this thesis we will use Bundler as SFM program as it is well documented and is easy to use. To get a decent pointcloud, pictures have to be taken every 15 of the building, ofcourse more pictures can be taken to increase the detail of the pointcloud. Once Bundler is complete it will generate said pointcloud and also a projection matrix, which contains the extrinsic and intrinsic matrices of the pictures, which we use for the projection. Something to note about the pointcloud is that the ground of the building

8 viii doesn't start at Z-coordinate 0, since Bundler has no way to tell which points represent the ground. For that same reason it may be that the building is slightly rotated, so that the coordinate system isn't pointing exactly at the front of the building. Line detection Since we're going to program in C++ we can use the free library OpenCV, which is used for image processing. In OpenCV there are already 2 line detectors that we can use, namely the Standard Hough Transform (SHT) and the Progressive Probabilistic Hough Transform (PPHT). Since the PPHT outputs the lines as [beginpoint, endpoint] we'll use this one instead of the SHT. First we're going to detect all the edges in the pictures, for this there are 3 functions in OpenCV: Canny, Sobel and Laplace. All 3 do a decent job of nding the edges, but for Hough Canny is the best one since it creates edges of 1 pixel thick. To detect the edges Canny calculates the gradient of every pixel and those with a gradient higher than a given threshold are edge points. On these edge points we'll then apply the Hough transform, which means that we're going to transform the points from the XY plane to the Hough plane. Every point in the XY plane becomes a sine in the Hough plane and every point in the Hough plane is a line in the XY plane. Once all the points are transformed to the Hough plane we'll look for the intersections of the dierent sines, because these intersections represent the lines in the XY plane. The fact that Canny creates edges of 1 pixel thick means that we have a lot less points to transform, which is better. Line projection After all the lines are detected we have to project them on the pointcloud, to do this we need a calibration model which says how the transformation between 2D and 3D is done. There are 2 common calibration models, the one of Hartley and Zisserman and the one of Tsai. Both dene the transformation but Hartley and Zisserman's model doesn't work with distortion and Tsai's model does. Distortion is the fact that points in a picture will get a slightly altered position than their expected one due to the lens of the camera. Because we want an accurate 3D model in AutoCAD we must try to use the most accurate method in every step, but we also are bound on the calibration model that Bundler uses to do the transformation. Luckily Bundler uses a calibration model that is only slightly dierent from Tsai's model and also takes account of distortion. We had to use this calibration model to compute a formula which we can use to calculate the 3D points of the detected lines. Unfortunately a point in 2D doesn't correspond to exactly one point in 3D, instead it corresponds to a whole line in 3D since we don't know anything about the depth of that point. But as said in the introduction we'll solve this problem by giving points votes, each point of the pointcloud that is within a certain distance to such a 3D line gets a vote. At the end the points with the most votes will be written to a le and normally those points should represent the important points of the building, such as the cornerpoints.

9 ix Construction 3D model AutoCAD The last step of the line projection was writing the 3D points to a le. All we have to do in AutoCAD is to drag the le we've written into the AutoCAD window, because the le doesn't only contain the points, it's actually a script which contains commands that AutoCAD can use. However, once we have all the points in AutoCAD we still have to give all the points a global rotation since the building might be rotated as said previously. This rotation is dierent for each pointcloud as it is dependent on the pictures and we haven't found out how to caculate it exactly so the surveyor has to do this after the program has run. Results We've written code for each step and we've become results for all of them, but we've found out that our implementation of the line detection doesn't give good results. The Hough detector we use gives 2 great errors, one is that only parts of a line are detected and the other error is that we get a lot of lines which aren't really important, or in other words noise. This noise came especially from tiles of the roof and from trees in the garden of the building. The fact that when we do the projection we expect the detected lines to be good, means that our projection step will also contain errors. We don't test if the input lines are good, we just project them and determine which of these lines are detected the most. Ofcourse, if our projection isn't good then our nal 3D model in AutoCAD won't be good either. Everything is dependent on the line detector, so in order to get good results, we have to nd another line detector. Unfortunately we didn't nd the code of another better line detector online and we didn't have enough time left to create our own line detector. Conclusion When trying to create a 3D model of a building in AutoCAD using only pictures there are several ways to do so. Our method was using a pointcloud (created by the pictures) as temporary workspace, in which we detect the important points of the building. We try to determine which points are important and which are not using line detection on the pictures and then projecting those lines onto the pointcloud. At the end of the projection we know the points that represent our building and we export them to AutoCAD to create a 3D model. Unfortunately the quality of the 3D model in AutoCAD was not high enough, there were too few points and not all points were good (as in, represented an important part of the building). This was due to the line detection giving bad results, what happened was that only parts of the lines were detected and that there was a lot of noise. The solution was to nd a better line detector, but we couldn't nd the code of a better line detector online nor did we have enough time left to create one ourselves. All in all it should be possible to create a 3D model of a building given that the line detector is good.

10 x

11 Inhoudsopgave 1 Inleiding Situering Aanpak Doelstellingen Conclusie Organisatie van deze tekst Literatuurstudie Fotogrammetrie Omzetting foto's naar puntenwolk Arc3D Catch 123D VisualSFM Bundler Conclusie Lijndetectie Randdetectie Hough transformatie Verschil PPHT en SHT Conclusie Projectie van 2D lijnen in foto's naar 3D in het puntenwolkmodel Hartley en Zisserman Intrinsieke matrix Extrinsieke matrices Projectie matrix Conclusie Hartley en Zisserman

12 xii INHOUDSOPGAVE Tsai Conclusie Tsai Conclusie Overzicht van de uitwerking 23 4 Omzetting foto's naar puntenwolk Conclusie Lijndetectie Thresholds Conclusie Projectie naar 3D Bundler's cameramodel Berekening formule projectie Probleem projectie Conclusie Constructie 3D model AutoCAD 35 8 Resultaten Omzetting naar puntenwolk Lijndetectie Projectie Constructie 3D model AutoCAD Ander voorbeeld Besluit 50 Bibliograe 51

13 L¼st van guren 1.1 Een tachymeter, het toestel waarmee een landmeter het gebouw gaat opmeten Dit is een voorbeeld van hoe het uiteindelijke resultaat van deze thesis eruit zou moeten zien, een 3D model dat de structuur van het gebouw weergeeft Links staat de puntenwolk waarvan de ruis weggelterd is, rechts staat een puntenwolk met nog veel ruispunten in De projectie van 2D naar 3D. De foto's bestaan uit een lijn, waarvan men het begin en eindpunt gaat projecteren. Deze punten komen niet overeen met juist 1 punt in 3D maar vormen een lijn in 3D Het linkse deel is de puntenwolk met de referentiepunten aangeduid, het rechtse deel is de originele foto Mogelijke input en output van fotogrammetrie Het resultaat van randdetectie op een beeld, links staat het originele beeld, rechts het resultaat van de randdetectie op de foto Voorstelling van een lijn met r, θ Mapping van het (x,y) vlak naar het (r, θ) vlak Skew bij een beeld Rotatie en translatie Rotatie rond de z-as Lens distorsie, links barrel distortion, rechts pincushion Het overzicht van alle stappen die doorlopen worden in deze thesis Het verkregen resultaat van Bundler met de bijhorende posities van waaruit elke foto getrokken is. Dit model is gemaakt met 60 foto's, maar allemaal getrokken vanuit het oosten van het gebouw Hier ziet men 2 foto's met de positie van de bijhorende camera's en het assenstelsel van Bundler dat als Y-niveau 0 het midden heeft van de lijn.. 26

14 xiv LœST VAN FIGUREN 5.1 Output van het lijndetectie programma, rechts is de originele foto. Hier wordt een redelijk hoge threshold gebruikt voor Canny, hierdoor heeft men weinig ruislijnen, maar als gevolg ook weinig lijnen in totaal Output van het lijndetectie programma, rechts is de originele foto. Hier wordt een lagere threshold gebruikt dan de foto hierboven, men heeft nu meer lijnen in het algemeen, maar bijgevolg ook meer ruislijnen Projectie van hetzelfde punt in 2 foto's naar 3D. Punt A heeft nu 2 votes Een voorbeeld van het nale model na alle stappen te doorlopen Het gebouw dat we gebruiken als test voor de thesis De puntenwolk die gegenereerd werd van het gebouw. De groene, blauwe en rode lijn vormen het assenstelsel. De blauwe lijn is de Z-as, de groene de Y-as en de rode de X-as De puntenwolk die gegenereerd werd van het gebouw Fout bij de lijndetectie, er wordt maar een deel van de lijn gedetecteerd, wat resulteerd in fouten De lijndetectie die maar delen van de lijnen detecteerd in plaats van de hele lijn, zoals te zien bij de ramen en deuren De lijndetectie die te veel ruis oplevert De projectie uitgevoerd op het gebouw Het model gecreëerd met AutoCAD met als vergelijking een foto van het gebouw. Zoals men ziet zijn er te veel punten geprojecteerd zodat het niet echt duidelijk is welk punt waar zit op de foto De puntenwolk Een ander aanzicht van de puntenwolk De lijndetectie die hier al veel beter werkt dan in het vorige voorbeeld, bijna elka belangrijke lijn wordt volledig gedetecteerd Nog een voorbeeld van de lijndetectie De projecties op de puntenwolk Een ander aanzicht van de projecties Het AutoCAD model, men ziet hier al duidelijker waar elk punt zit op de foto. Het raam en één van de twee garagas worden ook getoond in het model. Het is al een grote verbetering van het vorige model

15 Hoofdstuk 1 Inleiding 1.1 Situering Eenvoudig gezegd is het doel van deze thesis het onderzoeken of we door middel van foto's een plan kunnen opstellen van een gebouw, wat kan gebruikt worden door landmeters. Want één van de vele taken van een landmeter op dit moment is het opstellen van een topograsch plan van een gebouw, waarvoor hij een tachymeter gebruikt (ook wel 'total station' genoemd). Een voorbeeld hiervan vindt men in foto 1.1. Figuur 1.1: Een tachymeter, het toestel waarmee een landmeter het gebouw gaat opmeten. Dit opmeten met een tachymeter kost echter vrij veel tijd aangezien men voor elk hoekpunt van het gebouw een meting moet doen. Daarom is men op zoek naar nieuwe snellere manieren om deze metingen te doen waarbij men de tachymeter niet meer nodig heeft. In deze thesis gaan we onderzoeken of het mogelijk is om dit werk te doen door middel van 3D fotogrammetrie, waarbij men een 3D-model genereert uit een hoop digitale beelden. Fotogrammetrie is het bepalen van de vorm en locatie van objecten en gebieden met behulp van foto's. Het wordt tegenwoordig gebruikt in vele vakgebieden zoals chirurgie, biologie, forensisch onderzoek, civiele techniek en natuurlijk de architectuur en bouwtechniek. De fotogrammetrie die wij gaan gebruiken heet Multiple View Geometry, hierbij wordt automatisch een model gegenereerd op basis van de foto's die getrokken zijn, er is

16 2 Inleiding geen hulp vereist van de gebruiker. Men gaat namelijk kenmerken detecteren in elke foto, ook wel features genoemd, deze kenmerken bevatten informatie over de kleurenovergang en de uniekheid van een punt. Wanneer elke foto maar lichtjes verschilt van de vorige foto, zullen vaak dezelfde features gedetecteerd worden en door deze features met elkaar te vergelijken kan zo hetzelfde punt in verschillende foto's teruggevonden worden. Door informatie te gebruiken in verband met de positie van elke camera in de 3D scéne kunnen we zo een 3D model genereren. Dit model is echter niet zuiver, het bevat nog vele ruispunten van bijvoorbeeld de omgeving en schaduwen of reecties. Maar het uiteindelijke resultaat zou een zuiver en nauwkeurig 3D AutoCAD model moeten zijn, wat het plan voorstelt. Een voorbeeld van hoe zo'n AutoCAD model er zou moeten uitzien is te zien in guur 1.2. Figuur 1.2: Dit is een voorbeeld van hoe het uiteindelijke resultaat van deze thesis eruit zou moeten zien, een 3D model dat de structuur van het gebouw weergeeft. Het werken met fotogrammetrie zou het werk van een landmeter vele malen vereenvoudigen, omdat het nemen van foto's veel vlugger gebeurt dan opmetingen met de tachymeter. We moeten wel zorgen dat de fotogrammetrie methode even accuraat is als de methode met de tachymeter en moeten daarom bij elke stap van de thesis streven naar een zo nauwkeurig mogelijke oplossing. Zoals hierboven al aangegeven heeft fotogrammetrie echter ook een nadeel namelijk informatie-overvloed, dit is bijvoorbeeld te zien in guur 1.3. De verschillende foto's gaan een 3D puntenwolk genereren die tienduizenden punten kan bevatten, deze zijn natuurlijk niet allemaal goede punten. Hoe we deze ruis gaan oplossen bespreken we in Aanpak Om een zuiver beeld te krijgen van het gebouw gaan we eerst een deel buiten de puntenwolk werken, we gaan namelijk eerst de foto's verder analyseren met als doel al de rechte lijnstukken in elke foto te detecteren. Deze lijnen geven in het ideale geval perfect

17 1.3 Doelstellingen 3 Figuur 1.3: Links staat de puntenwolk waarvan de ruis weggelterd is, rechts staat een puntenwolk met nog veel ruispunten in. de structuur van het gebouw weer, zoals bijvoorbeeld de lijnen van guur 1.2. We kunnen dan door deze lijnen te gebruiken in de puntenwolk zeggen welke punten belangrijk zijn en welke niet. Een alternatief is binnen de puntenwolk blijven en door middel van RANSAC de lijnen gaan bepalen in de puntenwolk. Maar als men binnen de puntenwolk blijft doet men eigenlijk niets met de foto's en aangezien we deze extra informatiebron hebben is het beter om deze ook te gebruiken. Het is ook zo dat er op de foto's weinig ruis is in verhouding tot de ruis in de puntenwolk, waardoor de lijndetectie op de foto's betere resultaten zou moeten geven dan de lijndetectie in de puntenwolk. Als we deze gedetecteerde lijnen willen gebruiken moeten we ze op één of andere manier in de puntenwolk zien te krijgen, wat we gaan doen is de lijnen projecteren van 2D (foto) naar 3D (puntenwolk). Elk lijnstuk heeft een begin en eindpunt en deze punten kunnen we door middel van een formule omvormen van 2D naar 3D. We kijken dan welk punt van de puntenwolk hiermee overeenkomt en negeren zo als het ware de ruis omdat deze niet geprojecteerd zal worden. Een voorbeeld om het principe van projectie beter te begrijpen is te vinden in guur 1.4. Eens de projectie gedaan is zullen er een honderdtal punten overblijven en deze kunnen we dan ingeven in AutoCAD voor het zuiver 3D model. Een alternatief hiervoor zou zijn dat we de foto's op elkaar gaan leggen, met de nodige rotatie en translatie en dat we kijken welke lijnen steeds terugkomen in de verschillende foto's. Men heeft dan minder lijnen die men moet projecteren en men zou ook minder ruislijnen hebben, maar een nadeel hiervan is dat het veel moeilijker is om de verschillende foto's te roteren en transleren en dus op elkaar te leggen. Om deze reden hebben we niet voor deze methode gekozen. 1.3 Doelstellingen In deze thesis gaan we proberen het antwoord te vinden op enkele onderzoeksvragen, de voornaamste is natuurlijk: Hoe kunnen we een nauwkeurig 3D model (.dxf) van een gebouw generen in Auto-

18 4 Inleiding CAD met behulp van foto's? Men kan deze vraag niet ineens oplossen, met moet ze opsplitsen in enkele deelvragen: Hoe kunnen we een ruw model verkrijgen van het gebouw op de computer, wat we gaan gebruiken als basis voor de rest van de thesis? Dit model heeft echter heel veel ruispunten (zoals te zien was op guur 1.3) en is dus zeker niet bruikbaar als naal resultaat. Hierdoor ontstaat de vraag: Hoe kunnen we ondanks de vele ruispunten toch een nauwkeurig beeld krijgen van het gebouw? En als laatste vraag is er: Als we de omlijning hebben van het gebouw in de puntenwolk, hoe zetten we dit dan om naar een plan? Figuur 1.4: De projectie van 2D naar 3D. De foto's bestaan uit een lijn, waarvan men het begin en eindpunt gaat projecteren. Deze punten komen niet overeen met juist 1 punt in 3D maar vormen een lijn in 3D. 1.4 Conclusie Bij het opstellen van een topograsch plan gaat een landmeter meestal gebruik maken van een tachymeter, dit is echter veel werk en tijdsrovend. Daarom gaan we in deze

19 1.5 Organisatie van deze tekst 5 thesis onderzoeken of het mogelijk is om dit werk te vergemakkelijken en te versnellen door gebruik te maken van 3D fotogrammetrie. De landmeter moet dan niet meer alles opmeten met een tachymeter, maar moet enkel nog maar foto's nemen van het gebouw en de software doet de rest. De thesis kan opgesplitst worden in enkele stappen die doorlopen moeten worden. Eerst zullen we de genomen foto's van het gebouw moeten omzetten naar een 3D model, namelijk een puntenwolk. Daarna gaan we de foto's verder analyseren door de verschillende lijnen in de foto's detecteren. Deze lijnen worden geprojecteerd op de puntenwolk en men kan zo de ruis uit de puntenwolk verwijderen, want alles wat niet op de lijnen ligt hebben we niet nodig. We verkrijgen hierdoor een aantal lijnen in de puntenwolk die de structuur van het gebouw weergeven, en met deze 3D lijnen kunnen we een AutoCAD model maken. 1.5 Organisatie van deze tekst Het vervolg van de masterproeftekst is als volgt opgebouwd: Eerst volgt een literatuurstudie in hoofdstuk 2 waarin wordt onderzocht welke technieken we moeten gebruiken om deze masterproef op te lossen. Daarna volgt de uitwerking van de masterproef in hoofdstuk 3, 4, 5, 6 en 7. Daarna volgt een overzicht van onze resultaten die we verkregen op een set van gebouwen in 8. En tot slot is er het besluit van de thesis in hoofdstuk 9.

20 6 Inleiding

21 Hoofdstuk 2 Literatuurstudie Aangezien we nu goed weten wat de doelstellingen zijn van deze thesis is het best eerst eens na te gaan of er al dingen bestaan die we kunnen gebruiken voor deze thesis. Met name gaan we kijken naar wat er al te vinden is over 3D fotogrammetrie in de literatuur. We beginnen de literatuurstudie met het uitleggen wat fotogrammetrie juist is in sectie 2.1, daarna gaan we in sectie 2.2 kijken hoe we de foto's kunnen omzetten in een ruw model, met nog vele ruispunten. In sectie 2.3 gaan we het lijndetectie algoritme uitleggen en in de rest van de literatuurstudie wordt de transformatie van 2D naar 3D uitgelegd en dit kan men vinden in sectie Fotogrammetrie Zoals in de inleiding gezegd is fotogrammetrie de techniek om met foto's de locatie, vorm en afmetingen van een object of gebied te bepalen. Er zijn 2 soorten fotogrammetrie, namelijk terrestrische fotogrammetrie en aerofotogrammetrie. Bij terrestrische fotogrammetrie gaat men foto's nemen vanop de grond, terwijl bij aerofotogrammetrie men foto's gaat nemen vanuit een vliegtuig. Terrestrische wordt vooral gebruikt om 3D modellen te creëeren van bijvoorbeeld gebouwen, terwijl aerofotogrammetrie meer gebruikt wordt om een gebied in kaart te brengen. Wij gaan voor deze thesis foto's nemen vanop de grond, dichtbij het gebouw dus doen we aan terrestrische fotogrammetrie. Men heeft zowel manuele 3D fotogrammetrie als automatische 3D fotogrammetrie. Bij de manuele fotogrammetrie gaat men zelf referentiepunten aanduiden in al de verschillende foto's. Van deze referentiepunten weet men de positie in de wereld en ze duiden steeds dezelfde punten aan, maar dan in verschillende foto's. Wanneer men ook de lenseigenschappen en de positie van de camera weet kan men hieruit een 3D model genereren door de verschillende punten te gaan matchen met elkaar. Een voorbeeld hiervan is te vinden in guur 2.1. Naast de manuele fotogrammetrie is er dus ook de automatische fotogrammetrie, oftewel Multiple View Geometry. Deze gebruiken we in deze thesis en is al in de inleiding besproken, maar voor de volledigheid gaan we hier nog eens uitleggen wat Multiple View Geometry is. Het 3D model gaat hier zonder tussenkomst van een persoon gegenereerd

22 8 Literatuurstudie worden. Men heeft geen referentiepunten meer nodig, het gebeurt automatisch aan de hand van features. Deze features zijn belangrijke punten in een foto, punten die uniek zijn omwille van kleurovergang en contrast. Aangezien elke foto maar lichtjes verschillend was van de vorige foto worden vaak dezelfde features gedetecteerd in de foto's. Als men aan feature matching gaat doen, dan kan men zo weten van waaruit elke foto getrokken is en kan men het 3D model genereren. Maar met fotogrammetrie kan men meer dan alleen de 3D positie van punten bepalen op de foto's. Op guur 2.2 ziet men wat de input en output kan zijn van fotogrammetrie. Elke lijn met aan beide kanten een pijlpunt kan zowel input als output zijn, men kan zoals hierboven uitgelegd de 3D positie verkrijgen, maar men kan ook de 2D positie op de foto verkrijgen van een object. Daarnaast kan men ook de positie van de camera in de wereld verkrijgen en tot slot kan men ook de eigenschappen van de camera zelf verkrijgen, zoals de focale lengte en schalingsfactoren. Fotogrammetrie wordt gebruikt wanneer snel goede meetgegevens van een bestaand object nodig zijn, wanneer men grote complexe objecten of gebieden heeft die moeilijk op te meten zijn kan fotogrammetrie veel tijd besparen. Figuur 2.1: Het linkse deel is de puntenwolk met de referentiepunten aangeduid, het rechtse deel is de originele foto.

23 2.2 Omzetting foto's naar puntenwolk 9 Figuur 2.2: Mogelijke input en output van fotogrammetrie. 2.2 Omzetting foto's naar puntenwolk De eerste stap die we moeten uitvoeren is, zoals uitgelegd in de doelstellingen, het creëren van een 3D model door middel van foto's, dit wordt ook wel Structure From Motion(SFM) genoemd. Hiervoor bestaan echter al programma's die dit zonder problemen doen. We moeten dus zelf geen code gaan schrijven maar kunnen een reeds bestaand programma hiervoor gebruiken. Men kan kiezen uit een hele lijst van deze programma's, maar diegene die wij gaan bespreken zijn: Arc3D Catch 123D VisualSFM Bundler Arc3D Arc3D is een webgebaseerd SFM programma dat gemaakt is door Van Gool en Tingdahl [9]. Eens men de foto's genomen heeft van het object waarvan men een 3D model zou willen creëren, kan men deze doorsturen naar de servers van Arc3D. Op deze servers gebeurt de omzetting naar een 3D model en wanneer deze omzetting klaar is wordt de output teruggestuurd naar de gebruiker. Het voordeel van Arc3D is dat er veel informatie is over welk camera model er gebruikt wordt, wat belangrijk is voor een latere stap in de thesis, namelijk de projectie van 2D naar 3D. Het nadeel van Arc3D is dat men niet direct de output heeft, maar dat men moet wachten tot deze output ook eectief teruggestuurd wordt naar de pc. Als men niet direct een antwoord nodig heeft, dan is Arc3D geen probleem.

24 10 Literatuurstudie Catch 123D Catch 123D is het SFM programma van AutoDesk. Het heeft zowel een webgebaseerde versie, die bijna gelijk is aan die van Arc3D, als een versie op de PC zelf. Het nadeel van Catch 123D is dat er bijna geen informatie gegeven wordt over het camera model, waardoor het niet erg nuttig is voor deze thesis VisualSFM Dan heeft men nog VisualSFM [16] [3] [17], dit is een SFM programma dat geschreven werd door Changchang Wu. Het is computer gebaseerd en geeft een meer grasche weergave van alle stappen die doorlopen worden. Ook bij VisualSFM krijgt men informatie over het camera model dat gebruikt is, wat een voordeel is. Maar een nadeel is dat de output, dus de puntenwolk, geroteerd is en getransleerd is. Hierdoor moet men eerst nog de output aanpassen voordat men ermee kan werken. Dit is extra werk en kan voor problemen zorgen Bundler Als laatste is er nog Bundler [11] [12], een SFM programma geschreven door Noah Snavely, welke de beste resultaten gaf van alle programma's. Het is niet webgebaseerd, waardoor men niet moet wachten op de upload van foto's en het terugsturen van de output, en de output is niet geroteerd of getransleerd zoals bij VisualSFM. Ook hier weer krijgt men informatie over het camera model dat gebruikt werd. Hierdoor zal Bundler het meeste geschikt zijn voor deze thesis als SFM programma Conclusie In deze thesis gaan we Bundler gebruiken als SFM programma, aangezien het een cliënt gebaseerd programma is en het voldoende informatie geeft over het camera systeem dat het gebruikt om de omzetting van 2D naar 3D te doen. Daarboven is het ook nog vrij eenvoudig te gebruiken en kan men via andere programma's zoals PMVS en CMVS een dichtere puntenwolk creëren met de output van Bundler. 2.3 Lijndetectie Om een zuiver beeld te krijgen van het gebouw gaan we eerst een deel buiten de puntenwolk werken, we gaan namelijk eerst de foto's verder analyseren met als doel al de rechte lijnstukken in elke foto te detecteren. Deze lijnen geven in het ideale geval perfect de structuur van het gebouw weer en kunnen we gebruiken om te zeggen welke punten in de puntenwolk ruis zijn en welke niet. Een alternatief is binnen de puntenwolk blijven en door middel van RANSAC de lijnen gaan bepalen in de puntenwolk. Maar als men binnen de puntenwolk blijft doet men eigenlijk niets met de foto's en aangezien we

25 2.3 Lijndetectie 11 deze extra informatiebron hebben is het beter om deze ook te gebruiken. Het is ook zo dat er op de foto's weinig ruis is in verhouding tot de ruis in de puntenwolk, waardoor de lijndetectie op de foto's betere resultaten zal geven dan de lijndetectie in de puntenwolk. Nadat we de foto's hebben gebruikt om een puntenwolkmodel te creëren, gaan we de foto's hergebruiken om alle mogelijke lijnen te detecteren van het gebouw. Er zijn tal van algoritmes die lijnen gaan detecteren in foto's, welke bijna allemaal gebaseert zijn op de Hough transformatie. Aangezien wij gaan programmeren in OpenCV zijn we gelimiteerd tot wat er in deze bibliotheek zit van algoritmes, voor lijndetectie zijn dit er 2: de Standard Hough Transform (SHT) [14] en de Progressive Probabilistic Hough Transform (PPHT) [1]. Beide algoritmen maken gebruik van randdetectie en een transformatie naar het Hough vlak, hieronder volgt een uitleg over deze twee Randdetectie De eerste stap in lijndetectie algoritmes is randdetectie, men gaat de randen van objecten opsporen en als uitkomst een zwart-wit foto genereren zoals weergegeven in foto 2.3. Een witte pixel stelt een rand voor en alles wat geen rand is wordt voorgesteld door een zwarte pixel. De witte pixels kan men gebruiken voor de volgende stappen, met name de Hough transformatie, maar meer informatie daarover in sectie De randdetectie is belangrijk omdat we na deze stap alle overbodige pixels weggooien uit de foto, aangezien men enkel in de randen van objecten lijnen vindt, niet in de platte vlakken. Figuur 2.3: Het resultaat van randdetectie op een beeld, links staat het originele beeld, rechts het resultaat van de randdetectie op de foto. Men heeft verschillende soorten randdetectors, één van de meest bekende en meest gebruikte is waarschijnlijk die van Canny. Daarnaast heeft men ook nog die van Sobel, Laplace en nog vele anderen, maar enkel deze zitten al in OpenCV. Op basis van een studie [6] is gebleken dat de Canny Edge Detector geprefereerd wordt boven de andere detectoren omdat deze continue randen geeft met een dikte van één pixel. Dit is zeer gunstig voor onze masterproef aangezien we een zo nauwkeurig mogelijke oplossing willen hebben. We gaan niet dieper in op de werking van de Canny edge detector, meer infor-

26 12 Literatuurstudie matie over Canny vindt men in referentie [2]. De Canny Edge Detector wordt gebruikt als randdetectie voor SHT en PPHT in OpenCV Hough transformatie Nadat we de randen gedetecteerd hebben, is de volgende stap het zoeken naar een manier om de rechte lijnstukken gemakkelijk te kunnen deniëren. We hebben dit namelijk nodig indien we willen achterhalen tot welke lijn een punt in de foto behoort. Dit is mogelijk via een transformatie waarbij men de punten in een (x,y) vlak gaat omzetten naar punten in een ander vlak. Bij PPHT en SHT gaan we de lijnen transformeren met de Hough transformatie [7], welke zegt dat een lijn kan voorgesteld worden als een vergelijking met 2 parameters. Zo heeft men bijvoorbeeld: y = ax + b (2.1) Hierin is a de richtingscoëcient en b de oset waar de lijn de Y-as snijdt. Echter kan men met deze voorstelling geen verticale lijnen voorstellen, aangezien de richtingscoecient en de oset dan beiden naar oneindig zouden gaan. Daarom gebruikt Hough een andere voorstelling: r = xcosθ + ysinθ (2.2) Waarbij r de afstand is van de oorsprong tot de lijn en θ de hoek is tussen de X-as en r, zoals te zien is op guur 2.4. Alle lijnen kunnen voorgesteld worden als θ [0,180] en r R. Figuur 2.4: Voorstelling van een lijn met r, θ. Men kan bijgevolg het Hough vlak opstellen, waarbij men 2 dimensies heeft (r, θ). Een lijn in het (x,y) vlak wordt een punt in het (r, θ) vlak, en een punt in het (x,y) vlak komt overeen met een sinusoidale curve in het Hough vlak [14]. Deze mapping is voorgesteld in guur 2.5.

27 2.3 Lijndetectie 13 Om lijnen te detecteren, gaat men voor elk punt afzonderlijk deze mapping doen en kijkt men waar de intersecties zijn in het Hough vlak. Deze intersecties stellen lijnen voor in het (x,y) vlak en door de inverse transformatie kan men te weten komen waar deze lijnen liggen in het (x,y) vlak. Figuur 2.5: Mapping van het (x,y) vlak naar het (r, θ) vlak Verschil PPHT en SHT Zoals eerder gezegd maken beide algoritmes gebruik van zowel de randdetectie als de transformatie naar het Hough vlak, het verschil ligt echter in hoeveel punten er getransformeerd worden naar het Hough vlak. Als men elk punt dat men verkrijgt bij de randdetectie gaat omzetten naar het Hough vlak, dan spreekt men van de SHT. Dit kan echter wat tijd kosten, aangezien zelfs na de randdetectie er nog steeds veel punten overblijven. Daarom probeert men bij PPHT dit te versnellen door maar een klein deel van deze punten te transformeren. Welke punten gekozen worden, wordt hieronder uitgelegd: 1. Kies één willekeurig punt uit de randpunten, indien er geen meer zijn stopt het algoritme. 2. Voer de Hough transformatie uit voor dit gekozen punt en verhoog de accumulator 1 daar waar het nodig is. Het verhogen van de waardes noemt men het stemmen van een punt. 3. Verwijder het gekozen punt uit de foto met randpunten. 4. Kijk of er al ergens in de accumulator een waarde is die hoger is dan de threshold 2 waarde. Zo niet, ga terug naar stap Doe de inverse Hough transformatie en vindt het langste segment dat men verkrijgt als men deze lijn afgaat in de foto met randpunten. Dit segment is ofwel een continue 1 Een accumalator is eigenlijk een digitale voorstelling van het Hough vlak, in de vorm van een 2- dimensionale array. Elke cel in de array stelt een deel van het Hough vlak voor. 2 Door de quantizatie van het Hough vlak, en door ruis kan de accumulator op verkeerde plaatsen een hoge waarde verkrijgen. Om dit tegen te gaan maakt men gebruik van een threshold waarde.

28 14 Literatuurstudie lijn, ofwel een lijn met een kleine opening in dat niet groter is dan een bepaalde threshold. 6. Verwijder al de randpunten die op dit segment liggen uit de foto met randpunten. 7. Verwijder de stemmen van de punten die op de lijn liggen. Dit wilt zeggen dat men de accumulatorwaardes terug gaat verlagen. 8. Als het lijn segment groter is dan de minimale lengte voor een lijn (deze legt men op voorhand vast), voeg de lijn toe aan het output bestand. 9. Ga terug naar stap Conclusie Aangezien we een keuze moeten maken tussen de 2 algoritmes gaan we voor deze thesis PPHT gebruiken omdat PPHT sneller is en bijna dezelfde resultaten levert als SHT [4]. Nog een voordeel van PPHT is dat in OpenCV deze als resultaat de begin en eindpunten geeft voor elke lijn die gevonden wordt. Dit in tegenstelling tot SHT in OpenCV, die de parameters van het Hough vlak terug geeft (r, θ). Als we al meteen de begin en eindpunten van een lijn hebben is dit gemakkelijker voor het volgende deel, de projectie van 2D naar 3D. 2.4 Projectie van 2D lijnen in foto's naar 3D in het puntenwolkmodel Nadat we de lijnen gedetecteerd hebben in de foto's moeten we deze lijnen gaan projecteren naar de 3D puntenwolk. Een probleem hierbij is dat een foto werkt met 2D (x,y) en de puntenwolk met 3D (x,y,z), we missen dus de z-dimensie oftewel de diepte [10]. (Referentie [10] verwijst naar een thesis van EAVISE waarin men een vereenvoudigd model van een persoon in 3D gaat reconstrueren door middel van camera's die rond de persoon staan. Hiervoor moest men ook de projectie doen van 2D naar 3D, het enige verschil is dat ze een ander calibratiemodel gebruikt hebben dan in deze thesis. Voor meer informatie rond hoe men een vereenvoudigd model kan maken van een persoon, kan deze thesistekst gelezen worden.) Deze extra dimensie kan men niet zomaar verkijgen uit de foto, we gaan ze in deze thesis verkrijgen door middel van trial en error. Men gaat namelijk 2 vergelijkingen opstellen, één voor de X-component en één voor de Y-component, welke beiden in functie van Z geschreven worden. Z is dan de vrijheidsgraad in beide vergelijkingen en als men Z verhoogt of verlaagt zullen de X- en de Y-component ook veranderen. Uiteindelijk zullen we dan de juiste (x,y,z) combinatie verkrijgen en hebben we ons 2D punt omgevormt naar een 3D punt. We kunnen echter niet meteen beginnen met het opstellen van deze vergelijkingen, we hebben eerst meer informatie nodig over wat de relatie is tussen de foto en de scène in

29 2.4 Projectie van 2D lijnen in foto's naar 3D in het puntenwolkmodel 15 de wereld. Aangezien we de foto's nemen met een gewoon fototoestel moeten we eerst de interne parameters van dit toestel weten te vinden. Deze parameters bepalen hoe een fototoestel de omzetting doet van 3D naar 2D en men kan deze parameters bepalen door de camera te calibreren. Op dit moment zijn er 2 calibratiemodellen die veel gebruikt worden, namelijk het model van Hartley en Zisserman [13] en het model van Tsai [15]. Eerst zullen we hieronder het model van Hartley en Zisserman uitleggen en daarna het model van Tsai Hartley en Zisserman Het calibratiemodel van Hartley en Zisserman maakt gebruik van een projectiematrix [10], deze bevat alle mogelijke informatie over de camera. Met deze projectiematrix kan men dan gemakkelijk de punten omzetten van 3D naar 2D en omgekeerd. De projectiematrix kan opgedeeld worden in 2 aparte matrices, een intrinsieke matrix en een extrinsieke matrix. De intrinsieke matrix geeft informatie over camera specieke dingen, zoals de focale lengte. Deze intrinsieke matrix moet men daarom telkens opnieuw berekenen indien men van camera verandert, maar kan telkens herbruikt worden indien men steeds dezelfde camera gebruikt (tenzij de zoom van de camera veranderd wordt, want dan verandert ook de focale lengte van de lens). Dan heeft men nog de extrinsieke matrices, deze geven informatie over de positie van de camera ten opzichte van het wereldassenstelsel. Extrinsieke matrices zijn niet camera afhankelijk, maar zullen afhankelijk zijn van de positie waarin de fotograaf zich bevindt. Dit wilt zeggen dat men dezelfde extrinsieke matrices krijgt, indien men met verschillende camera's op dezelfde plaats een foto neemt. We zullen eerst beginnen met de intrinsieke matrix uit te leggen en daarna de extrinsieke Intrinsieke matrix Deze matrix A geeft, zoals hierboven beschreven, informatie over camera specieke dingen en heeft de vorm: Met a x s u x A = 0 a y u y (2.3) a x, a y de schaalfactor voor de x en de y-richting, welke berekend worden met de formule a x = fk x (2.4) a y = fk y (2.5) Hierin is f de focale lengte van de camera en k is een camera specieke parameter met als eenheid [pixels/lengte] die kan berekend worden door k = resolutie filmsize (2.6)

30 16 Literatuurstudie u x, u y de x- en y-component van het principal point. Meestal is dit gelijk aan het middenpunt van het beeld, maar bij sommige camera's is dit anders. s de skew factor, die aangeeft of er een helling is tussen de X en de Y as van het beeld. s wordt berekend door volgende formule: s = tan(θ) (2.7) Tegenwoordig is deze skew factor bij de meeste camera's echter verwaarloosbaar klein [10]. Een voorbeeld van een foto met skew groter dan 0 vindt men in guur 2.6. Figuur 2.6: Skew bij een beeld Extrinsieke matrices Men heeft 2 soorten extrinsieke matrices, een rotatiematrix R en een translatiematrix T. Een voorbeeld van zo'n translatie en rotatie van het assenstelsel vindt men in guur 2.7. De rotatiematrix geeft de rotatie van de camera ten opzichte van het wereldassenstelsel. Men heeft 3 soorten rotaties, een rotatie rond de X-as, één rond de Y-as, en één rond de z-as. Elke rotatierichting heeft een 3x3 matrix, en de vermenigvuldiging van alle 3 de matrices geeft de rotatiematrix R. Een voorbeeld van een rotatie rond de z-as vindt men in guur 2.8. De algemene formules voor de rotatie van een punt rond de Z-as zijn: x = xcos(θ) ysin(θ) (2.8) y = xsin(θ) + ycos(θ) (2.9)

31 2.4 Projectie van 2D lijnen in foto's naar 3D in het puntenwolkmodel 17 Figuur 2.7: Rotatie en translatie. Figuur 2.8: Rotatie rond de z-as Met θ de hoekverschuiving tussen de 2 punten. Indien we deze vergelijkingen in een matrixvorm zetten krijgen we: Hetzelfde geldt voor de rotatie rond de x-as: en voor de y-as: x cos(θ) sin(θ) 0 x y = sin(θ) cos(θ) 0. y (2.10) z z x x y = 0 cos(θ) sin(θ). y (2.11) z 0 sin(θ) cos(θ) z

32 18 Literatuurstudie x cos(θ) 0 sin(θ) x y = y (2.12) z sin(θ) 0 cos(θ) z Als men 2.10, 2.11, 2.12 met elkaar vermenigvuldigt krijgt men zoals gezegd de rotatiematrix R: R = R x.r y.r z (2.13) r 1 r 2 r 3 R = r 4 r 5 r 6 (2.14) r 7 r 8 r 9 Naast de rotatiematrix heeft men ook nog de translatiematrix die de verplaatsing van de camera ten opzichte van het wereldassenstel weergeeft. Als een punt verschoven wordt, dan krijgt men: met x x y z = T. y z (2.15) t x T = t y t z (2.16) Projectie matrix Als we alle 3 de matrices (2.3, 2.14, 2.16) met elkaar combineren krijgen we de projectie matrix. Dit is een 3x4 matrix en heeft de volgende vorm: m 1 m 2 m 3 m 4 P = m 5 m 6 m 7 m 8 (2.17) m 9 m 10 m 11 m 12 Met deze matrix kan men dan gemakkelijk de omzetting van 2D naar 3D doen, en omgekeerd. Een willekeurig punt P in 3D wordt het punt p in 2D: X x m 1 m 2 m 3 m 4 y = m 5 m 6 m 7 m 8. Y Z (2.18) 1 m 9 m 10 m 11 m 12 1

33 2.4 Projectie van 2D lijnen in foto's naar 3D in het puntenwolkmodel Conclusie Hartley en Zisserman Met de methode van Hartley en Zisserman is het zeer gemakkelijk om de omzetting van 2D naar 3D te doen en omgekeerd omdat men een projectiematrix heeft. Eens men de projectiematrix kent, is de projectie gemakkelijk te berekenen. Een nadeel is wel dat er geen rekening gehouden wordt met de mogelijke vervorming van de punten in de foto door de lens. Hierdoor zal het eindresultaat niet volledig accuraat zijn. Maar indien men geen accuraat model nodig heeft, is deze methode perfect Tsai Bij Tsai werkt men niet met een projectiematrix waarmee men gemakkelijk de omzetting kan doen, maar werkt men in stappen. Men kan deze stappen wel allemaal tesamen brengen, zodat men één formule krijgt. Dit wordt in de implementatie dan ook gedaan om gemakkelijk de omzetting te doen. Volgens Tsai zijn er 4 stappen die men moet doorlopen om te gaan van een 3D punt in de scène naar een 2D punt op een foto. 1. De eerste stap is het omzetten van het 3D punt in een wereldassenstelsel (X w, Y w, Z w ) naar een 3D punt dat het assenstelsel van de camera gebruikt (x, y, z). Hiervoor is een rotatie en/of een translatie nodig. De rotatiematrix is dezelfde als diegene die we gebruikt hebben voor Hartley en Zisserman, namelijk de matrix in vergelijking De translatiematrix is lichtjes verschillend, aangezien men bij Tsai de translatiematrix optelt bij het punt, in plaats van te vermenigvuldigen: De eerste stap kan dan geschreven worden als: T x T = T y (2.19) T z x X w y = R Y w + T (2.20) z Z w 2. De volgende stap is het omzetten van het 3D punt in de camera naar een ideaal 2D punt in de foto. Ideaal wilt hier zeggen dat er nog geen rekening gehouden wordt met de distorsie, maar meer hierover in de volgende stap. De nieuwe coördinaten (X u, Y u ) worden berekend als volgt: X u = f x z (2.21) Y u = f y z (2.22)

34 20 Literatuurstudie Met f de focale lengte van de camera, deze kan gevonden worden in de intrinsieke matrix. Deze is verschillend aan de intrinsieke matrix van Hartley en Zisserman, aangezien deze geen skew factor meer bezit en ook geen schaalfactor. Enkel de focale lengte in x en y-richting en de x en y-coördinaten van het principal point (in pixels): f x s C x A = 0 f y C y (2.23) Aangezien fx en fy meestal gelijk zijn aan elkaar gaan we in het verloop van de tekst de focale lengte voor zowel x als y aangeven met f. 3. De 3e stap in het omzetten is het in rekening brengen van de distorsie. Distorsie is de vervorming van punten op een foto, dit komt door de lens in de camera. Deze vervorming is het beste te merken bij lijnen. Men heeft 2 soorten distorsie, de lijnen kunnen naar buiten gebogen zijn wat men barrel distortion noemt, of naar binnen gebogen wat men pincushion distortion noemt. Beide gevallen zijn te zien op guur 2.9. Figuur 2.9: Lens distorsie, links barrel distortion, rechts pincushion. De parameters voor distorsie vindt men in een aparte vector terug, de distorsievector. Deze bevat de componenten voor radiale distorsie en tangentiële distorsie, welke beiden de vervorming van de lijnen karakterisen. Maar volgens Tsai [15] is het voldoende indien men enkel de eerste component gebruikt (k 1 ), aangezien deze de meeste invloed heeft op de distorsie en bijna hetzelfde eect heeft als wanneer men toch ook de andere coëcienten zou gebruiken. De distorsievector heeft de volgende vorm: De vergelijkingen voor de 3e stap zijn: D = [ k 1 k 2 p 1 p 2 k 3 ]

35 2.4 Projectie van 2D lijnen in foto's naar 3D in het puntenwolkmodel 21 Xd + Dx = Xu (2.24) Y d + Dy = Y u (2.25) Hierin zijn Dx en Dy gelijk aan: Met r: D x = X d (K 1 r 2 + K 2 r ) D y = Y d (K 1 r 2 + K 2 r ) r = X 2 d + Y 2 d 4. Bij de laatste stap zet men het punt in de camera over naar een punt op de computer, hiervoor moet men rekening houden met de resolutie van de pc en het principal point X f = s x d '-1 x X d + C x (2.26) Hierin is: Met Y f = d -1 y Y d + C y (2.27) d x = d x N cx N fx (C x, C y ) de middelpunten in pixels die men terugvindt in matrix s x een scale factor. (d x, d y ) de afstand tussen de middelpunten van 2 naast elkaar gelegen CCD elementen van de sensor van de camera in respectievelijk de X-richting en de Y-richting. N cx het aantal sensor elementen in de X richting en N fx het aantal pixels in de x-richting Conclusie Tsai Hier zijn de voor en de nadelen het omgekeerde van bij Hartley en Zisserman. Het voordeel van Tsai is namelijk dat men wel met distorsie rekening houdt, waardoor men zeer accurate oplossingen kan vinden voor de projectie van 2D naar 3D. Het nadeel echter

36 22 Literatuurstudie is dat men geen projectiematrix heeft die de projectie eenvoudig maakt, maar men heeft verschillende vergelijkingen. Deze vergelijkingen zal men moeten invullen in elkaar, wat leidt tot wat rekenwerk Conclusie De twee modellen zijn beiden goed om de omzetting van 2D naar 3D te doen, echter moeten we in deze thesis proberen zo accuraat mogelijk te werken aangezien het plan de juiste afmetingen en de juiste coördinaten moet bevatten. Daarom moeten we het model van Tsai gebruiken omdat deze rekening houdt met de mogelijke distorsie in een foto. Deze distorsie zou anders leiden tot de foute coördinaten in het model van Hartley en Zisserman. De omzetting die we gaan doen is echter niet volledig gelijk aan die van Tsai, want het camera model van Bundler (het programma om een puntenwolk te creëren uit foto's) laat de laatste stap van Tsai weg.

37 Hoofdstuk 3 Overzicht van de uitwerking De thesis wordt uitgewerkt in enkele stappen, deze zijn weergegeven in een blokkendiagram dat te zien is in guur 3.1 Nadat er foto's getrokken zijn geweest van alle hoeken van het gebouw, zodat alles goed op beeld staat, gaat de eerste stap van de thesis uitgevoerd moeten worden. Deze eerste stap is het omzetten van de foto's naar een puntenwolk welke beschreven staat in hoofdstuk 4. Hiervoor gaan we het Structure from Motion programma Bundler gebruiken, dit is te vinden online en kan vrij gebruikt worden. Het neemt als invoer de foto's en genereert op basis hiervan een puntenwolk en bepaalt de parameters van de camera waarmee de foto's getrokken zijn, dit zijn de intrinsieke en extrinsieke matrices.. De puntenwolk die gegenereerd wordt is een goede eerste 3D benadering van het gebouw, maar er zijn wel nog tal van ruispunten en hierdoor belanden we bij stap 2. Hier gaan we de output van Bundler even niet gebruiken en gaan we verderwerken met de initiële foto's, we gaan namelijk lijnen detecteren in de verschillende foto's, de uitwerking hiervan staat beschreven in hoofdstuk 5. We moeten ervoor zorgen dat er zoveel mogelijk juiste lijnen gedetecteerd worden, want deze lijnen gaan de basis vormen voor de volgende stap. Eens we de lijndetectie hebben uitgevoerd zullen we deze lijnen projecteren van 2D naar 3D in stap 3 welke beschreven staat in hoofdstuk 6. Hiervoor gaan we de output van de lijndetectie gebruiken en ook terug de output van Bundler, zowel de puntenwolk als de parameters van de camera. Deze parameters zijn namelijk nodig om te zeggen waar exact de gedetecteerde lijn zich bevindt in 3D. Het resultaat van deze stap is dat we alle belangrijke punten in de puntenwolk overhouden, een punt is belangrijk als het iets zegt over de structuur van het gebouw, bijvoorbeeld een hoekpunt van het dak. Als laatste rest er enkel nog het ingeven van deze punten in AutoCAD, we maken hiervoor een.dwg bestand en geven met behulp van een script alle punten in en we zeggen welke paren een lijn vormen.

38 24 Overzicht van de uitwerking Figuur 3.1: Het overzicht van alle stappen die doorlopen worden in deze thesis.

39 Hoofdstuk 4 Omzetting foto's naar puntenwolk Zoals gezegd in het overzicht maken we gebruik van het SFM programma Bundler. Deze kan aan de hand van foto's een puntenwolk maken, echter zijn er een heleboel foto's nodig aangezien er minstens een foto moet genomen worden om de 15 van het gebouw. Dit is nodig omdat anders de gelijkenis tussen de foto's te klein gaat zijn waardoor de gecreëerde puntenwolk niet correct gaat zijn. Het nemen van een foto om de 15 betekent dat we minstens 24 foto's nodig hebben voor een 3D model te maken van een gebouw, echter zijn deze 24 foto's allemaal vanuit 1 hoogte getrokken en zeggen ze bijvoorbeeld niets over het dak van het gebouw. Daarom kan het zijn dat we gemakkelijk aan een 50 à 100-tal foto's komen om een gedetailleerd 3D model te maken. Een voorbeeld van hoe zo'n puntenwolk eruit ziet is te zien in guur 4.1. Figuur 4.1: Het verkregen resultaat van Bundler met de bijhorende posities van waaruit elke foto getrokken is. Dit model is gemaakt met 60 foto's, maar allemaal getrokken vanuit het oosten van het gebouw. Er zijn echter wel enkele aspecten in verband met de puntenwolk waar we rekening mee moeten houden, zo heeft de puntenwolk een schalingsfactor. Dit wilt zeggen dat de afstand tussen 2 punten in de puntenwolk verschillend is aan de afstand tussen diezelfde punten in de realiteit. Deze factor verschilt echter van scène tot scène en moet telkens opnieuw berekend worden. Ze is echter wel hetzelfde voor alle punten in één puntenwolk, waardoor men de factor maar 1 keer moet berekenen. Een ander belangrijk punt bij Bundler is dat de grond van het model niet juist overeenkomt met Y-niveau 0, dit komt doordat Bundler niet kan weten welke punten van de puntenwolk de grond voorstellen. Bundler bekijkt de foto's ook anders want normaal gezien is in een foto de coördinaat (0,0) linksboven, maar

40 26 Omzetting foto's naar puntenwolk Bundler zegt dat de coördinaat (0,0) zich in het midden van de foto bevindt. Hierdoor zal in de puntenwolk het Y-niveau 0 ook overeenkomen met ongeveer het midden van het gebouw. Een voorbeeld om dit aan te tonen is te vinden in guur 4.2. Het is ook zo dat meestal het gebouw iets gedraaid staat ten opzichte van het assenstelsel, dit wilt zeggen dat de voorkant van het gebouw niet parallel loopt met het XY vlak. Dit hangt af van hoeveel foto's getrokken zijn en vanuit welke hoek deze getrokken zijn, indien bijvoorbeeld meer foto's van de linkerkant getrokken zijn dan van de rechterkant dan zal de puntenwolk gedraaid zijn. Dit is belangrijk om te onthouden voor het naal model in AutoCAD, aangezien we daar nog een globale rotatie moeten toepassen op alle punten want anders is de positionering van het model niet correct. Naast de puntenwolk geeft Bundler ook nog andere output, namelijk de extrinsieke en intrinsieke matrices van elke foto en ook de positie van de camera voor die bepaalde foto. De extrinsieke en intrinsieke matrices hebben we nodig voor de projectie, zoals gezegd in 2.4. Figuur 4.2: Hier ziet men 2 foto's met de positie van de bijhorende camera's en het assenstelsel van Bundler dat als Y-niveau 0 het midden heeft van de lijn. 4.1 Conclusie Om een deftige puntenwolk te verkrijgen is het noodzakelijk dat er minstens een 50 à 100 tal foto's van het gebouw getrokken worden. De foto's zullen door Bundler verwerkt worden en deze geeft ons de puntenwolk alsook informatie over de camera welke we kunnen gebruiken om de projectie te doen. Er zijn wel 2 factoren waar rekening moet mee gehouden worden bij de puntenwolk, namelijk een scalingsfactor die de afstanden tussen de punten verandert en een globale rotatie van het model die afhankelijk is van de getrokken foto's. Beiden hebben een invloed op de correctheid van het naal model in AutoCAD.

41 Hoofdstuk 5 Lijndetectie Nadat we een model gegeneeerd hebben moeten we de lijnen detecteren in al de verschillende foto's, het is belangrijk dat de gedetecteerde lijnen zo goed mogelijk overeen komen met de eectieve lijnen aangezien deze de basis vormen voor de volgende stappen. Indien er iets misloopt met de lijndetectie ondervindt de projectie daar ook nadeel van. 5.1 Thresholds Zoals in 2.3 gezegd gaan we gebruik maken van de PPHT, welke gebruik maakt van de Canny Edge Detector om randen te detecteren in een foto. Maar voor we eectief de randen gaan detecteren moeten we eerst de foto's blurren, dit doen we omdat er soms ruis kan aanwezig zijn op de foto's. Ruis in de vorm van zeer sterke overgangen tussen naburige pixels door bijvoorbeeld schaduw of lichtinval. Om deze ruis te vermijden blurren we aangezien de overgang dan verspreid wordt over de naburige pixels. Als gevolg zal er geen randpunt meer gedetecteerd worden want de gradiënt zal niet meer zo groot zijn als daarvoor. Eens we de randen hebben gaan we de PPHT oproepen, deze zal de verschillende lijnen teruggeven. Echter zullen nooit alle lijnen in een foto gevonden worden, welke wel en welke niet hangt af van welke waarden we gebruiken voor de thresholds. Men heeft voor de lijndetectie verschillende thresholds, namelijk 2 voor Canny en 3 voor Hough. Deze thresholds zijn gemakkelijk in te geven aangezien men in OpenCV Canny en Hough beiden kan oproepen met een functieoproep waarbij men de waarden van de thresholds kan ingeven als argumenten. Bij Canny hebben beide thresholds betrekking tot de waarden van de gradiënt. Een randpunt moet namelijk een gradiënt hebben die groter is dan T 1, welke de eerste threshold voorstelt. Maar indien men een een rand aan het aopen is en men vindt geen punten meer met een gradiënt groter dan T 1, dan kijkt men of er misschien nog punten zijn met een gradiënt groter dan T 2 en worden deze toegevoegd als randpunten. T 2 stelt de tweede threshold voor en is normaal 2 tot 3 keer kleiner dan T 1, daarom hebben wij gekozen voor een verhouding van 3 (T 2 = T 1 /3). De waarde van T 1 kunnen we ook kiezen maar aangezien deze afhangt van scène tot scène is het best om deze te bepalen via trial and error. Bij Hough hebben we 3 thresholds die iets gaan zeggen over wat voor soort lijnen we willen detecteren in de foto's. De eerste bepaalt hoeveel randpunten er minstens moeten gedetecteerd worden opdat men kan

42 28 Lijndetectie spreken van een lijn, de tweede bepaalt wat de maximale grootte mag zijn van de opening tussen 2 gedetecteerde lijnen (hoeveel punten er tussen mogen liggen) opdat deze kunnen samengevoegd worden tot één doorlopende lijn en de derde bepaalt hoeveel intersecties er minimaal nodig zijn in het Hough vlak. Ook deze parameters hangen heel veel af van de scène waar de foto's getrokken zijn en opnieuw is het best om via trial and error de thresholds te bepalen. Het is daarom belangrijk dat bij elke nieuwe groep van foto's we kijken of de waarden nog steeds goed zijn en indien nodig bijstellen. Een voorbeeld van de gedetecteerde lijnen is te zien op foto 5.1 en op foto 5.2. Figuur 5.1: Output van het lijndetectie programma, rechts is de originele foto. Hier wordt een redelijk hoge threshold gebruikt voor Canny, hierdoor heeft men weinig ruislijnen, maar als gevolg ook weinig lijnen in totaal. Figuur 5.2: Output van het lijndetectie programma, rechts is de originele foto. Hier wordt een lagere threshold gebruikt dan de foto hierboven, men heeft nu meer lijnen in het algemeen, maar bijgevolg ook meer ruislijnen.

43 5.2 Conclusie Conclusie Via de lijndetectie kan spijtig genoeg niet elke lijn gedetecteerd worden. Hoeveel er gedetecteerd worden hangt af van de thresholds die men gebruikt, maar ook van de manier waarop de foto's getrokken zijn. Zo is het beter indien er overal eenzelfde verlichting is en er veel contrast is tussen het gebouw en de omgeving. Natuurlijk zal het soms zijn dat dit onmogelijk is en moet men experimenteren met de waarden van de thresholds opdat men goede resultaten krijgt. Het is beter indien alle lijnen gedetecteerd worden, zelfs als dit betekend dat er ook een deel ruislijnen gaan aanwezig zijn, want in de volgende stap gaan we met behulp van het voting algoritme deze ruislijnen toch wegwerken. Maar we moeten oppassen met deze ruislijnen aangezien het verhogen of verlagen van de thresholds met een kleine waarde soms kan zorgen voor een drastische verhoging van het aantal ruislijnen.

44 Hoofdstuk 6 Projectie naar 3D De projectie gaat ervoor zorgen dat we de gedetecteerde lijnen in de foto's kunnen gebruiken in de 3D puntenwolk. Hiervoor moeten we weten welk cameramodel Bundler gebruikt om de omzetting te doen van 2D naar 3D, wat de camera parameters zijn van elke foto en moet elke lijn die gedetecteerd wordt bij de lijndetectie worden weggeschreven in de vorm van [beginpunt,eindpunt]. Als we deze informatie allemaal hebben kunnen we beginnen met de projectie. We kunnen met het cameramodel van Bundler een formule berekenen die ons toelaat om deze projectie te doen. 6.1 Bundler's cameramodel Zoals gezegd in de literatuurstudie maakt Bundler gebruik van een camera model dat ongeveer gelijk is aan dat van Tsai, enkel de laatste stap wordt overgeslagen. Het model dat Bundler gebruikt om de wereldcoördinaten (X w, Y w, Z w ) om te zetten in pixelcoördinaten (X d, Y d ) is: Stap 1: Conversie van wereldcoördinaten naar cameracoördinaten: x X w y = R Y w + T Met R gelijk aan 2.14 en T gelijk aan 2.19 (6.1) z Z w Stap 2: Van 3D naar 2D: X u = x z (6.2) Y u = y z (6.3) Stap 3: Conversie naar pixelcoördinaten: X d = f X u D x (6.4)

45 6.2 Berekening formule projectie 31 Y d = f Y u D y (6.5) Hierin zijn Dx en Dy gelijk aan: Met r: D x = (1 + K 1 r 2 + K 2 r ) D y = (1 + K 1 r 2 + K 2 r ) r = X 2 u + Y 2 u 6.2 Berekening formule projectie We moeten deze stappen omvormen tot 1 formule waarin we X w en Y w kunnen bepalen aan de hand van de andere parameters en om dit gemakkelijker te maken gaan we veronderstellen dat er geen distorsie is. Want we gaan met de output van Bundler, namelijk de intrinsieke matrix en de distorsievector, de foto's undistorten nog voor de lijndetectie en zo hoeven we niet te rekenen met de distorsieparameters. De berekening is als volgt: Uit stap 6.1 volgt: x = r 1 X w + r 2 Y w + r 3 Z w + T x (6.6) y = r 4 X w + r 5 Y w + r 6 Z w + T y (6.7) z = r 7 X w + r 8 Y w + r 9 Z w + T y (6.8) Aangezien we zeggen dat er geen distorsie is, kunnen we 6.2 en 6.4 omvormen tot: x = X uz f (6.9) En 6.3 en 6.5 omvormen tot: y = Y uz f (6.10) Als we 6.6 en 6.8 in 6.9 invullen krijgen we:

46 32 Projectie naar 3D r 1 X w + r 2 Y w + r 3 Z w + T x = X u[r 7 X w + r 8 Y w + r 9 Z w + T z ] f (6.11) X w [r 1 + r 7X u f ] = Y w[ r 2 r 8X u f ] + Z w[ r 3 r 9X u f ] T x T zx u f (6.12) X w = Vervolgens doen we hetzelfde voor 6.10:... r 1 + r 7X u f (6.13) r 4 X w + r 5 Y w + r 6 Z w + T y = Y u[r 7 X w + r 8 Y w + r 9 Z w + T z ] f (6.14) X w [r 4 + r 7Y u f ] = Y w[ r 5 r 8Y u f ] + Z w[ r 6 r 9Y u f ] T y T zy u f (6.15) X w =... r 4 + r 7Y u f (6.16) 6.13 gelijk stellen aan 6.16 geeft: Y w [ r 2 r 8X u f Y w [ r 5 r 8Y u f ][r 4 + r 7Y u f ][r 1 + r 7X u f ] + Z w[ r 3 r 9X u f ] + Z w[ r 6 r 9Y u f ][r 4 + r 7Y u f ][r 1 + r 7X u f ] T x[r 4 + r 7Y u f ] T y[r 1 + r 7X u f ] T zx u [r 4 + r 7Y u f f ] = ] T zy u f [r 1 + r 7X u f ] (6.17) Om de berekening iets makkelijker te maken zeggen we dat [r 4 + r 7Y u ] = a f 1 en dat [r 1 + r 7X u ] = a f 2. Als uiteindelijke resultaat, na het samenvoegen van de termen krijgt men: ( Y w a 1 [ r 2 r 8X u f ] a 2[ r 5 r ) ( 8Y u f ] = Z w a 2 [ r 6 r 9Y u f ] a 1[ r 3 r 9X u f ] +T x a 1 T y a 2 + T z [ a 1X u f ) a 2Y u f ] (6.18) Met deze formule kunnen we voor elke pixel op een foto de Y coördinaat vinden in de puntenwolk. Als we al de vorige stappen doen in functie van Y w bekomen we ook de X coördinaat. Het resultaat hiervan:

47 6.3 Probleem projectie 33 ( X w a 1 [ r 1 r 7X u f ] a 2[ r 4 r ) ( 7Y u f ] = Z w Waarin a 1 = [r 5 + r 8Y u ] en a f 2 = [r 2 + r 8X u ]. f a 2 [ r 6 r 9Y u f ] a 1[ r 3 r 9X u f ] +T x a 1 T y a 2 + T z [ a 1X u f ) a 2Y u f ] (6.19) 6.3 Probleem projectie Met 6.19 en 6.18 kunnen we voor elke pixel zeggen wat de X en de Y coördinaten zijn, maar zoals te zien in de vergelijkingen komen we niet juist uit op 1 punt aangezien we een vrijheidsgraad hebben, namelijk Z w. We zullen dus per pixel een lijn bekomen in 3D, die we verkijgen door telkens Z w met een kleine waarde te verhogen en de bijhorende X en Y waarden opnieuw te berekenen. Dit zorgt echter voor een probleem, aangezien we niet weten waar op de lijn het eectieve 3D punt zich bevindt. We lossen dit op door een voting systeem te implementeren, we gaan namelijk voor elke geprojecteerde lijn kijken of er punten van de puntenwolk dichtbij deze lijn liggen. Wanneer er punten dichtbij liggen (hoe dichtbij wordt ingesteld met een threshold), dan krijgen deze een vote. De punten met de meeste votes na de projectie zijn de eectieve punten in 3D. Het is echter wel zo dat soms meerdere punten dichtbij een projectie liggen, daarom gaan we telkens het gemiddelde nemen van alle punten die dichtbij liggen en deze nieuwe positie bewaren en een vote geven. Als bij een volgende projectie dan zo'n opgeslagen punt dichtbij ligt, dan gaat opnieuw het gemiddelde berekend worden en de positie van het opgeslagen punt wordt dan gewijzigd naar deze nieuwe berekende positie. Ook wordt de votecount van het opgeslagen punt verhoogd, zo gaat men niet allemaal punten hebben die dicht bij elkaar liggen en een votecount hebben van 1. Een voorbeeld van hoe dit er uit ziet in de praktijk is te zien op guur Conclusie Via de vergelijkingen 6.19 en 6.18 en het voting systeem kan men gemakkelijk de punten van de puntenwolk overhouden die het meest gedetecteerd worden in de foto's. Indien steeds dezelfde lijnen gedetecteerd worden is het makkelijk om paren van punten bij te houden, die samen 1 lijn vormen. Indien echter de lijndetectie niet optimaal is en telkens andere delen van eenzelfde lijn gedetecteerd worden in de verschillende foto's wordt steeds een ander punt gevote. Dit zorgt ervoor dat ook de output van de projectiestap fout is want enkel punten die een votecount hebben hoger dan de threshold blijven behouden. Het resultaat is dus afhankelijk van de lijndetectie. Maar het is ook belangrijk dat de puntenwolk goed is, want indien de puntenwolk slecht is gaat deze maar een klein aantal punten bevatten en wordt het moeilijker om punten te vinden die dicht bij een projectielijn

48 34 Projectie naar 3D Figuur 6.1: Projectie van hetzelfde punt in 2 foto's naar 3D. Punt A heeft nu 2 votes. liggen. Het kan zelfs zo erg zijn dat men de threshold voor de afstand moet verhogen en bijgevolg slechte punten uitkomt. Of de puntenwolk goed is hangt af van hoeveel foto's er genomen zijn en hoeveel overlapping er is tussen de foto's. Men moet dus zorgen dat de input van voldoende kwaliteit is voordat men aan de projectie begint, enkel indien de kwaliteit voldoende hoog is zal het resultaat ook goed zijn.

49 Hoofdstuk 7 Constructie 3D model AutoCAD Eens we de belangrijkste lijnen hebben gehaald uit de puntenwolk zullen we deze nog moeten ingeven in AutoCAD zodat er gemakkelijk gewerkt kan worden met het 3D model. Aangezien het enkel lijnen zijn kan dit worden ingegeven met behulp van een AutoCADscript, dit is een bestand dat enkele taken uitvoert voor de gebruiker. Deze taken worden normaal opgegeven via de command-line van AutoCAD en aangezien lijnen tekenen kan uitgevoerd worden met de command-line kunnen we zo'n script gebruiken om dit automatisch te doen. Het enige wat er moet gebeuren is dat de persoon die AutoCAD opstart dit script sleept binnen het AutoCAD venster en alles wordt dan voor hem uitgevoerd. We moeten wel zoals gezegd in 4 nog een globale rotatie doen op het model opdat de grond gelijk zou komen te liggen met het XZ-vlak. Dit kan echter niet automatisch gedaan worden aangezien de rotatie afhangt van de genomen foto's en dus verschilt van puntenwolk tot puntenwolk. Ook moeten we rekening houden met de scalingfactor van de Bundler, opnieuw moet deze manueel toegepast worden op het model. In het ideale geval, zonder optreden van enige fouten, zou het model dat we willen verkrijgen er bijvoorbeeld uitzien als guur 7.1. Figuur 7.1: Een voorbeeld van het nale model na alle stappen te doorlopen.

50 Hoofdstuk 8 Resultaten In de vorige hoofdstukken hebben we uitgelegd wat we exact gaan doen om een 3D model te genereren van een gebouw, in dit hoofdstuk zullen we bespreken wat we bekomen zijn als resultaten. We hebben foto's genomen van 8 huizen, deze waren allemaal alleenstaande huizen en zonder tuin, zodat men goed zicht had op het huis zelf. We hebben echter niet van elk huis een 360 beeld, meestal hebben we een tal foto's getrokken van de voorkant en zijkant van het huis. Dit mag echter geen invloed hebben op het resultaat, het enige verschil is dat het 3D model minder volledig zal zijn. Om de resultaten van de verschillende stappen te bespreken zullen we het huis in guur 8.1 als voorbeeld nemen. Figuur 8.1: Het gebouw dat we gebruiken als test voor de thesis.

51 8.1 Omzetting naar puntenwolk Omzetting naar puntenwolk De eerste stap was Bundler oproepen op de foto's, het resultaat hiervan is te vinden in guur 8.2 en 8.3. Op te merken valt dat indien de foto's getrokken zijn van op een degelijk lange afstand (5-10 meter) van het gebouw Bundler geen goede resultaten geeft aangezien de puntenwolk dan minder detail gaat hebben en het kan ook leiden tot fouten in het gebouw, zoals muren die krom staan. Zoals gezegd in hoofdstuk 4 zal het model ook een scalingfactor hebben, we hebben deze voor elk model ruw bepaald en kwamen uit dat deze lag tussen de 1.10 en 4. Met andere woorden, de afstand tussen 2 punten in de puntenwolk is 1.10 tot 4 keer groter dan de afstand in de realiteit. We hebben echter maar 8 huizen als meting genomen dus het zou kunnen dat deze scalingfactor nog veel groter kan zijn en het is zoals daarjuist gezegd een ruwe benadering van de scalingfactor. Om deze met grote nauwkeurigheid te bepalen moeten we terug 2 punten van het huis op de oude manier gaan meten, namelijk met een tachymeter. Maar voor nu volstond het om de scalingfactor op een ruwe manier te meten. Daarnaast was er ook nog de rotatie van het model, we konden echter niet achterhalen wat deze was per puntenwolk, het is daarom noodzakelijk om achteraf zelf via trial en error alle punten een rotatie te geven in AutoCAD en kijken naar het resultaat. Figuur 8.2: De puntenwolk die gegenereerd werd van het gebouw. De groene, blauwe en rode lijn vormen het assenstelsel. De blauwe lijn is de Z-as, de groene de Y-as en de rode de X-as.

52 38 Resultaten Figuur 8.3: De puntenwolk die gegenereerd werd van het gebouw.

53 8.2 Lijndetectie Lijndetectie Zoals gezegd in hoofdstuk 6 gaan we geen rekening houden met distorsie in de projectie om de formule iets eenvoudiger te maken, maar om dit te mogen doen moeten we alle foto's undistorten voordat we de lijndetectie gaan uitvoeren. Het undistorten van de foto's is echter niet zo moeilijk, men heeft namelijk functies in OpenCV die dit voor ons gaan doen. Het enige dat we nodig hebben zijn de distorsieparameters en de intrinsieke matrix per foto, beiden verkrijgen we met Bundler. Deze undistorsie had tot eect dat alle pixels ongeveer 10 plaatsen waren opgeschoven ten opzichte van hun originele positie, veel eect heeft dit niet maar het is wel belangrijk om een nauwkeurig model af te leveren. Na de distorsie te verwijderen en de lijndetectie toe te passen op de foto's merkten we dan voor de meeste foto's de lijndetectie geen goede resultaten gaf, er waren namelijk 2 grote fouten: 1. De gedetecteerde lijnen sluiten niet perfect aan op elkaar. Hiermee bedoelen we dat steeds maar delen gedetecteerd worden van de lijnen waardoor ze niet samenkomen in één punt, ook uitgelegd op guur 8.4. Hier zien we dat door de fout er 4 lijnen gaan gedetecteerd worden, en het kan zijn dat in de volgende foto's nog eens andere delen van de lijnen gedetecteerd worden. Hierdoor gaan bij de projectie telkens andere punten gevote worden want de verschillende begin en eindpunten van de lijnen worden andere punten in de puntenwolk, zoals uitgelegd in hoofdstuk 6. Het is echter nodig dat de lijnen samenkomen in één punt (linkse deel van de guur) want anders gaat de projectie niet juist zijn. Wat ook soms gebeurd is dat de volledige lijn gedetecteerd wordt, maar dat bijkomstig ook verschillende delen van die lijn gedetecteerd worden. Zodat in één foto er 5 verschillende delen van 1 lijn gedetecteerd wordt bovenop de volledige lijn. In het voorbeeldgebouw hadden we ook te maken met deze soort fouten, zoals te zien in guur 8.5. Als men bijvoorbeeld naar de ramen kijkt dan zou in het ideale geval rond elk raam een rode rechthoek zitten, echter zijn er delen van de rand van het raam die niet gedetecteerd worden. Dit leidde ertoe dat in de meeste foto's andere delen van bijvoorbeeld het raam gedetecteerd werden en dit is een groot probleem, aangezien we verwachten dat telkens hetzelfde punt moet geprojecteerd worden. 2. Het aantal ruislijnen dat gedetecteerd werd door Hough was ook te hoog. Ruislijnen zijn groepen van tientallen lijnen die heel dicht bij elkaar liggen, welke dingen weergeven die we niet willen detecteren. In onze set van huizen hebben we gemerkt dat vooral dakpannen en bomen in de tuin zorgden voor heel veel ruis, ook bijvoorbeeld een verschil in lichtinval op de bakstenen zorgde voor ruis. Men kan zelf kiezen natuurlijk ofdat deze lijnen ruis zijn of niet, het hangt af van hoe compleet het uiteindelijke 3D model moet zijn. Indien men ook de lijnen van de cementlagen van de bakstenen en de dakpannen erbij wilt dan zijn deze geen ruis, maar wij willen enkel de lijnen tussen de hoekpunten van het gebouw detecteren, of anders gezegd de breeklijnen van het gebouw. Dit leidde ertoe dat in de foto's soms 3/4 van de gedetecteerde lijnen ruislijnen waren, wat natuurlijk ongewenst is. Deze ruislijnen gaan overdragen worden naar het AutoCAD model, aangezien we in de projectiestap er vanuit gaan dat een ruislijn maar weinig voorkomt en door te werken met votes

54 40 Resultaten Figuur 8.4: Fout bij de lijndetectie, er wordt maar een deel van de lijn gedetecteerd, wat resulteerd in fouten. deze ruislijnen kunnen wegwerken. Echter indien er meer ruislijnen zijn dan juiste lijnen kunnen we ons niet meer baseren op votes want deze geven een fout beeld. In het voorbeeldgebouw zorgden vooral de dakpannen voor heel veel ruis, zoals te zien is op guur 8.6. Om het aantal ruislijnen te reduceren tot een minimum kan men best foto's nemen van gebouwen waar geen planten voor staan en dat geen dakpannen heeft. Op zich kan men het aantal ruislijnen ook reduceren door de thresholds te verhogen, maar indien we dat doen gaan we in het algemeen veel minder lijnen detecteren en verliezen we ook een heel deel goede lijnen. Aangezien we deze fouten krijgen zouden we beter een andere lijndetector gebruiken in plaats van de PPHT die in OpenCV zit. De nieuwe lijndetector zou 2 dingen extra moeten doen, namelijk verschillende korte lijnsegmenten samenvoegen opdat er 1 grote lijn vormt en een betere manier om onderscheid te maken tussen randpunten en punten in een vlak. Echter hebben we zo'n nieuwe lijndetector niet meer gevonden, er waren wel enkele papers over lijndetectors (zie [8], [5]) die verschillende lijnsegmenten samenvoegden maar er stond geen code online van die papers. We konden ook zelf een eigen lijndetector schrijven maar dit zou te veel werk zijn en aangezien we deze fouten hebben is het al moeilijk om nog tot een goed naal resultaat te komen want de projectiestap gaat ervan uit dat de lijndetectie in orde was.

55 8.2 Lijndetectie 41 Figuur 8.5: De lijndetectie die maar delen van de lijnen detecteerd in plaats van de hele lijn, zoals te zien bij de ramen en deuren. Figuur 8.6: De lijndetectie die te veel ruis oplevert.

56 42 Resultaten 8.3 Projectie Nadat we de lijnen gedetecteerd hadden en we de puntenwolk gegeneerd hadden was de volgende stap het projecteren van de lijnen, echter moeten we eerst nog een conversie doen. De puntenwolk die gecreëerd werd door Bundler is namelijk in.ply formaat, maar PCL werkt enkel met.pcd formaat. Beiden zijn gelijkwaardig, enkel zijn de headers iets anders en worden de punten anders weggeschreven. Om de conversie te doen van.ply naar.pcd gebruiken we een python script dat de header veranderd en de punten anders wegschrijft. In het projectie algoritme hebben we ook een aanpassing moeten doen want normaal gezien was het de bedoeling om telkens een hele lijn te projecteren en dus voor 2 punten tegelijk (begin en eindpunt van de lijn) gaan kijken of deze punten ook in de puntenwolk voorkomen, maar we hebben dit moeten aanpassen omdat de lijndetectie geen uniforme resultaten gaf. De lijndetectie detecteerde namelijk vaak verschillende delen van eenzelfde lijn in de verschillende foto's waardoor we nooit dezelfde punten projecteerden, dit leidde tot het feit dat geen enkele lijn meer dan 1 vote had want elke lijn was anders. Om toch een resultaat te krijgen voor de projectie gaan we in plaats van een lijn projeceteren, een punt projecteren. Men werkt niet meer met 2 punten tegelijk, maar voor elke gedetecteerde lijn wordt nu apart gekeken naar begin en eindpunt en gaan we na of deze overeenkomen met een punt van de puntenwolk. Ze worden los van elkaar verwerkt, als gevolg daarvan weten we op het einde van de projectie niet meer welke punten een lijn vormen maar de votecount van de punten is wel signicant hoger dan wanneer we ze samen bekijken. We hebben echter nog een probleem, namelijk de grote hoeveelheid ruislijnen die gedetecteerd worden. Want als er in een aantal foto's de helft van de lijnen ruis zijn, dan zorgen deze voor een verkeerde beoordeling van het aantal votes aangezien de ruis dan voor meer votes zullen zorgen dan de goede punten. We hebben de projectiestap uitgevoerd op het voorbeeldgebouw en we bekwamen een 30-tal goede punten, waarvan een tiental punten ruis waren. De projecties zijn te zien in guur 8.7. Elke lijn die men ziet op de guur is een projectielijn, welke dicht bij een punt van de puntenwolk ligt dat aan het eind van de stap een votecount had van 50 of hoger. Deze threshold kan nog aangepast worden om meer punten te krijgen maar dan krijgt men ook weer meer onbelangrijke punten want men heeft honderden projecties met minder dan 50 votes. Men moet dus afwegen of deze onbelangrijke punten kwaad kunnen of niet.

57 8.3 Projectie 43 Figuur 8.7: De projectie uitgevoerd op het gebouw.

58 44 Resultaten 8.4 Constructie 3D model AutoCAD Nadat we het script uitvoeren in AutoCAD zitten alle punten in het model, het engiste wat we dan nog moesten doen was de globale rotatie toepassen op de punten. Echter is dit vrij gemakkelijk, we moeten namelijk de punten tot 1 groep maken en dan op deze groep een rotatie uitvoeren. Het is ook niet zo belangrijk dat het model correct georiënteerd is, want we moeten enkel de afstanden weten tussen de verschillende punten, de correcte 3D positie van elk punt hoeft niet geweten te worden. Maar zelfs na de rotatie was het gereconstrueerde model nog verre van perfect. De meeste van de verkregen punten waren ruis, ze gaven niet de juiste lijnen weer, maar dit was al te verwachten door de vele ruislijnen in de lijndetectie. Het is ook zo dat er vaak meerdere punten van eenzelfde lijn in het model zitten, dit is een gevolg van het feit dat we per punt werken in plaats van per lijn. Dit kan eigenlijk geen kwaad, maar het was oorspronkelijk de bedoeling om een mooi zuiver model te maken met enkel de begin en eindpunten van elke lijn in het model. Een voorbeeld van het model dat we gegenereerd hebben op basis van de foto's is te zien in guur 8.8.

59 8.4 Constructie 3D model AutoCAD 45 Figuur 8.8: Het model gecreëerd met AutoCAD met als vergelijking een foto van het gebouw. Zoals men ziet zijn er te veel punten geprojecteerd zodat het niet echt duidelijk is welk punt waar zit op de foto.

60 46 Resultaten 8.5 Ander voorbeeld Ter vergelijking zullen we de resultaten laten zien van de voorkant van een huis zonder dakpannen en weinig ruis, wat een iets beter resultaat gaf als naal model (nog steeds niet bruikbaar voor een landmeter, maar toch al beter). Puntenwolk Figuur 8.9: De puntenwolk. Figuur 8.10: Een ander aanzicht van de puntenwolk.

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK STAFLEU

Nadere informatie

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead 7.1 Exploring Combinations of Ten Look at these cubes. 2. Color some of the cubes to make three parts. Then write a matching sentence. 10 What addition sentence matches the picture? How else could you

Nadere informatie

Eye Feature Detection Towards Automatic Strabismus Screening

Eye Feature Detection Towards Automatic Strabismus Screening Eye Feature Detection Towards Automatic Strabismus Screening Ken Allen, Khanh Nguyen Gettysburg College What is strabismus? Eye defect that causes eyes to look in two different directions If left untreated,

Nadere informatie

Classification of triangles

Classification of triangles Classification of triangles A triangle is a geometrical shape that is formed when 3 non-collinear points are joined. The joining line segments are the sides of the triangle. The angles in between the sides

Nadere informatie

Engels op Niveau A2 Workshops Woordkennis 1

Engels op Niveau A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Woordkennis 1 Bestuderen Hoe leer je 2000 woorden? Als je een nieuwe taal wilt spreken en schrijven, heb je vooral veel nieuwe woorden nodig. Je

Nadere informatie

Firewall van de Speedtouch 789wl volledig uitschakelen?

Firewall van de Speedtouch 789wl volledig uitschakelen? Firewall van de Speedtouch 789wl volledig uitschakelen? De firewall van de Speedtouch 789 (wl) kan niet volledig uitgeschakeld worden via de Web interface: De firewall blijft namelijk op stateful staan

Nadere informatie

S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g

S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g S e v e n P h o t o s f o r O A S E K r i j n d e K o n i n g Even with the most fundamental of truths, we can have big questions. And especially truths that at first sight are concrete, tangible and proven

Nadere informatie

De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition)

De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition) De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition) L. A. te Winkel Click here if your download doesn"t start automatically

Nadere informatie

Hertentamen 8D040 - Basis beeldverwerking

Hertentamen 8D040 - Basis beeldverwerking Hertentamen 8D040 - Basis beeldverwerking 6 augustus 203, 4:00-7:00 Opmerkingen: Maak elke opgave op een apart vel. Antwoord op vraag 4 mag gewoon in het Nederlands. Een gewone rekenmachine is toegestaan.

Nadere informatie

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Add the standing fingers to get the tens and multiply the closed fingers to get the units. Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first

Nadere informatie

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of: Document properties Most word processors show some properties of the text in a document, such as the number of words or the number of letters in that document. Write a program that can determine some of

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 8 februari 2010 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Bewijzen en Technieken 1 7 januari 211, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe.

Nadere informatie

MyDHL+ Van Non-Corporate naar Corporate

MyDHL+ Van Non-Corporate naar Corporate MyDHL+ Van Non-Corporate naar Corporate Van Non-Corporate naar Corporate In MyDHL+ is het mogelijk om meerdere gebruikers aan uw set-up toe te voegen. Wanneer er bijvoorbeeld meerdere collega s van dezelfde

Nadere informatie

Read this story in English. My personal story

Read this story in English. My personal story My personal story Netherlands 32 Female Primary Topic: SOCIETAL CONTEXT Topics: CHILDHOOD / FAMILY LIFE / RELATIONSHIPS IDENTITY Year: 1990 2010 marriage/co-habitation name/naming court/justice/legal rights

Nadere informatie

Introductie in flowcharts

Introductie in flowcharts Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 6 januari 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition)

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition) Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition) C.R.C. Huizinga-Arp Click here if your download doesn"t start automatically Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition) C.R.C.

Nadere informatie

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op! Benodigdheden:!!

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op!  Benodigdheden:!! WildPeacockOmslagdoek VertalingdoorEerlijkeWol. Hetgarenvoorditpatroonisteverkrijgenopwww.eerlijkewol.nl Benodigdheden: 4strengenWildPeacockRecycledSilkYarn rondbreinaaldnr8(jekuntnatuurlijkookgewonebreinaaldengebruiken,maar

Nadere informatie

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren (1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs (2) Ons gezelschap is er om kunsteducatie te verbeteren (3) Ons gezelschap helpt gemeenschappen te vormen en te binden (4) De producties

Nadere informatie

150 ECG-problemen (Dutch Edition)

150 ECG-problemen (Dutch Edition) 150 ECG-problemen (Dutch Edition) John R. Hampton, Piet Machielse Click here if your download doesn"t start automatically 150 ECG-problemen (Dutch Edition) John R. Hampton, Piet Machielse 150 ECG-problemen

Nadere informatie

It s all about the money Group work

It s all about the money Group work It s all about the money Group work Tijdsduur: 45 minuten Kernwoorden: money (geld) coin (munt), banknote (bankbiljet), currency (munteenheid) Herhalings-/uitbreidingswoorden: debate (debat), proposal

Nadere informatie

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Settings for the C100BRS4 MAC Address Spoofing with cable Internet. Settings for the C100BRS4 MAC Address Spoofing with cable Internet. General: Please use the latest firmware for the router. The firmware is available on http://www.conceptronic.net! Use Firmware version

Nadere informatie

Group work to study a new subject.

Group work to study a new subject. CONTEXT SUBJECT AGE LEVEL AND COUNTRY FEATURE OF GROUP STUDENTS NUMBER MATERIALS AND TOOLS KIND OF GAME DURATION Order of operations 12 13 years 1 ste year of secundary school (technical class) Belgium

Nadere informatie

Puzzle. Fais ft. Afrojack Niveau 3a Song 6 Lesson A Worksheet. a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel.

Puzzle. Fais ft. Afrojack Niveau 3a Song 6 Lesson A Worksheet. a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel. Puzzle a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel. een beloning voor de winnaar iemand die piano speelt een uitvoering 4 wat je wil gaan doen; voornemens 5 niet dezelfde 6 deze heb je

Nadere informatie

Preschool Kindergarten

Preschool Kindergarten Preschool Kindergarten Objectives Students will recognize the values of numerals 1 to 10. Students will use objects to solve addition problems with sums from 1 to 10. Materials Needed Large number cards

Nadere informatie

04/11/2013. Sluitersnelheid: 1/50 sec = 0.02 sec. Frameduur= 2 x sluitersnelheid= 2/50 = 1/25 = 0.04 sec. Framerate= 1/0.

04/11/2013. Sluitersnelheid: 1/50 sec = 0.02 sec. Frameduur= 2 x sluitersnelheid= 2/50 = 1/25 = 0.04 sec. Framerate= 1/0. Onderwerpen: Scherpstelling - Focusering Sluitersnelheid en framerate Sluitersnelheid en belichting Driedimensionale Arthrokinematische Mobilisatie Cursus Klinische Video/Foto-Analyse Avond 3: Scherpte

Nadere informatie

Comics FILE 4 COMICS BK 2

Comics FILE 4 COMICS BK 2 Comics FILE 4 COMICS BK 2 The funny characters in comic books or animation films can put smiles on people s faces all over the world. Wouldn t it be great to create your own funny character that will give

Nadere informatie

Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2

Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2 167 Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2 Task clarity 1. I understand exactly what the task is 2. I understand exactly what is required of

Nadere informatie

Ontpopping. ORGACOM Thuis in het Museum

Ontpopping. ORGACOM Thuis in het Museum Ontpopping Veel deelnemende bezoekers zijn dit jaar nog maar één keer in het Van Abbemuseum geweest. De vragenlijst van deze mensen hangt Orgacom in een honingraatpatroon. Bezoekers die vaker komen worden

Nadere informatie

HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM READ ONLINE AND DOWNLOAD EBOOK : HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN Click button to download this ebook READ ONLINE AND DOWNLOAD

Nadere informatie

B1 Woordkennis: Spelling

B1 Woordkennis: Spelling B1 Woordkennis: Spelling Bestuderen Inleiding Op B1 niveau gaan we wat meer aandacht schenken aan spelling. Je mag niet meer zoveel fouten maken als op A1 en A2 niveau. We bespreken een aantal belangrijke

Nadere informatie

Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition)

Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition) Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition) Ron Schipper Click here if your download doesn"t start automatically Duurzaam projectmanagement - De nieuwe realiteit

Nadere informatie

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN STAFLEU

Nadere informatie

CHROMA STANDAARDREEKS

CHROMA STANDAARDREEKS CHROMA STANDAARDREEKS Chroma-onderzoeken Een chroma geeft een beeld over de kwaliteit van bijvoorbeeld een bodem of compost. Een chroma bestaat uit 4 zones. Uit elke zone is een bepaald kwaliteitsaspect

Nadere informatie

General info on using shopping carts with Ingenico epayments

General info on using shopping carts with Ingenico epayments Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an

Nadere informatie

Calculator spelling. Assignment

Calculator spelling. Assignment Calculator spelling A 7-segmentdisplay is used to represent digits (and sometimes also letters). If a screen is held upside down by coincide, the digits may look like letters from the alphabet. This finding

Nadere informatie

The colour of a pixel in a bit map picture can be presented in different ways. For this assignment, we distinguish two categories:

The colour of a pixel in a bit map picture can be presented in different ways. For this assignment, we distinguish two categories: Bitmap conversion A bit map picture is exactly what the name makes one suspect: a sequence of bits (0 or 1) that together represent a digital photo. The picture consists of a matrix (rectangle grid) of

Nadere informatie

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij ENGLISH VERSION SEE PAGE 3 Tentamen Lineaire Optimalisering, 0 januari 0, tijdsduur 3 uur. Het gebruik van een eenvoudige rekenmachine is toegestaan. Geef bij elk antwoord een duidelijke toelichting. Als

Nadere informatie

Borstkanker: Stichting tegen Kanker (Dutch Edition)

Borstkanker: Stichting tegen Kanker (Dutch Edition) Borstkanker: Stichting tegen Kanker (Dutch Edition) Stichting tegen Kanker Click here if your download doesn"t start automatically Borstkanker: Stichting tegen Kanker (Dutch Edition) Stichting tegen Kanker

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Click here if your download doesn"t start automatically

Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Click here if your download doesnt start automatically Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Click here if your download doesn"t start automatically Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Duiding Strafuitvoering (Larcier

Nadere informatie

Archief Voor Kerkelijke Geschiedenis, Inzonderheid Van Nederland, Volume 8... (Romanian Edition)

Archief Voor Kerkelijke Geschiedenis, Inzonderheid Van Nederland, Volume 8... (Romanian Edition) Archief Voor Kerkelijke Geschiedenis, Inzonderheid Van Nederland, Volume 8... (Romanian Edition) Click here if your download doesn"t start automatically Archief Voor Kerkelijke Geschiedenis, Inzonderheid

Nadere informatie

Opgave 2 Geef een korte uitleg van elk van de volgende concepten: De Yield-to-Maturity of a coupon bond.

Opgave 2 Geef een korte uitleg van elk van de volgende concepten: De Yield-to-Maturity of a coupon bond. Opgaven in Nederlands. Alle opgaven hebben gelijk gewicht. Opgave 1 Gegeven is een kasstroom x = (x 0, x 1,, x n ). Veronderstel dat de contante waarde van deze kasstroom gegeven wordt door P. De bijbehorende

Nadere informatie

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right. Mijn Inspiratie Ik kreeg het idee om een variant te maken van een lamp die ik al eerder had gemaakt. Bij de lamp die in de onderstaande foto s is afgebeeld kun je het licht dimmen door de lamellen open

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

Keuzetwijfels in de Emerging Adulthood rondom Studie- en Partnerkeuze. in Relatie tot Depressie

Keuzetwijfels in de Emerging Adulthood rondom Studie- en Partnerkeuze. in Relatie tot Depressie 1 Keuzetwijfels in de Keuzetwijfels in de Emerging Adulthood rondom Studie- en Partnerkeuze in Relatie tot Depressie Open Universiteit Nederland Masterscriptie (S58337) Naam: Ilse Meijer Datum: juli 2011

Nadere informatie

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten.

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. The Effect of Difference in Peer and Parent Social Influences on Adolescent Alcohol Use. Nadine

Nadere informatie

Een vrouw, een kind en azijn (Dutch Edition)

Een vrouw, een kind en azijn (Dutch Edition) Een vrouw, een kind en azijn (Dutch Edition) D.J. Peek Click here if your download doesn"t start automatically Een vrouw, een kind en azijn (Dutch Edition) D.J. Peek Een vrouw, een kind en azijn (Dutch

Nadere informatie

Four-card problem. Input

Four-card problem. Input Four-card problem The four-card problem (also known as the Wason selection task) is a logic puzzle devised by Peter Cathcart Wason in 1966. It is one of the most famous tasks in the study of deductive

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 8 december 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als jeeen onderdeel

Nadere informatie

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven Impact en disseminatie Saskia Verhagen Franka vd Wijdeven Wie is wie? Voorstel rondje Wat hoop je te leren? Heb je iets te delen? Wat zegt de Programma Gids? WHAT DO IMPACT AND SUSTAINABILITY MEAN? Impact

Nadere informatie

Teksten van de liederen die gospelkoor Inspiration tijdens deze Openluchtdienst zingt.

Teksten van de liederen die gospelkoor Inspiration tijdens deze Openluchtdienst zingt. Don t you worry There s an eternity behind us And many days are yet to come, This world will turn around without us Yes all the work will still be done. Look at ever thing God has made See the birds above

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 De samenstelling van rotaties in het vlak is commutatief. Vraag 1.2 De samenstelling van de orthogonale spiegelingen t.o.v. twee gegeven vlakken in de

Nadere informatie

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14 QUICK GUIDE C Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14 Version 0.9 (June 2014) Per May 2014 OB10 has changed its name to Tungsten Network

Nadere informatie

Understanding and being understood begins with speaking Dutch

Understanding and being understood begins with speaking Dutch Understanding and being understood begins with speaking Dutch Begrijpen en begrepen worden begint met het spreken van de Nederlandse taal The Dutch language links us all Wat leest u in deze folder? 1.

Nadere informatie

Buy Me FILE 5 BUY ME BK 2

Buy Me FILE 5 BUY ME BK 2 Buy Me FILE BUY ME BK Can you resist all those incredible products that all seem to be screaming: Buy Me! Every day we see them on TV during the commercial break: the best products in the world. How would

Nadere informatie

Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesn"t start automatically

Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesnt start automatically Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesn"t start automatically Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch

Nadere informatie

Een vrouw, een kind en azijn (Dutch Edition)

Een vrouw, een kind en azijn (Dutch Edition) Een vrouw, een kind en azijn (Dutch Edition) D.J. Peek Click here if your download doesn"t start automatically Een vrouw, een kind en azijn (Dutch Edition) D.J. Peek Een vrouw, een kind en azijn (Dutch

Nadere informatie

The upside down Louisa tutorial by Dorothée: Noortjeprullemie.blogspot.be Written for Compagnie M.: m.com

The upside down Louisa tutorial by Dorothée: Noortjeprullemie.blogspot.be Written for Compagnie M.:  m.com The upside down Louisa tutorial by Dorothée: Noortjeprullemie.blogspot.be Written for Compagnie M.: www.compagnie- m.com Dorothée heeft een unieke Compagnie M. hack gemaakt: de Louisa op zijn kop. Als

Nadere informatie

Main language Dit is de basiswoordenschat. Deze woorden moeten de leerlingen zowel passief als actief kennen.

Main language Dit is de basiswoordenschat. Deze woorden moeten de leerlingen zowel passief als actief kennen. Lesbrief Les 2.1: My family Main language Dit is de basiswoordenschat. Deze woorden moeten de leerlingen zowel passief als actief kennen. Nouns: brother, sister, cousin, mother, father, aunt, uncle, grandmother,

Nadere informatie

Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition)

Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition) Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition) Ron Schipper Click here if your download doesn"t start automatically Duurzaam projectmanagement - De nieuwe realiteit

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 22 februari 2013 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report Exercise 2011-2012 7P672 Lightweight Structures A.P.H.W. Habraken Report Group 4: S.H.M. van Dijck J.C. Fritzsche J. Koeken T. Relker F.G.M. van Rooijen M. Slotboom M. Steenbeeke J.P.T. Theunissen Date:

Nadere informatie

Illustrator Tutorial - How to Create a Watch

Illustrator Tutorial - How to Create a Watch Illustrator Tutorial - How to Create a Watch «Andrew Bannecker - Simple, True and Tender Vector Movie Posters by GABZ» Categories: Tutorials Have you ever seen print advertising of some watch brand before?

Nadere informatie

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt.

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. OPEN TRAINING Onderhandelingen met leveranciers voor aankopers Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. Philip Meyers Making sure to come well prepared at the negotiation

Nadere informatie

MyDHL+ ProView activeren in MyDHL+

MyDHL+ ProView activeren in MyDHL+ MyDHL+ ProView activeren in MyDHL+ ProView activeren in MyDHL+ In MyDHL+ is het mogelijk om van uw zendingen, die op uw accountnummer zijn aangemaakt, de status te zien. Daarnaast is het ook mogelijk om

Nadere informatie

Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland

Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland 1. Londen In Londen kunnen gebruikers van een scootmobiel contact opnemen met een dienst

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 7 februari 2011 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Vertaling Engels Gedicht / songteksten

Vertaling Engels Gedicht / songteksten Vertaling Engels Gedicht / songteksten Vertaling door een scholier 1460 woorden 23 januari 2002 5,4 399 keer beoordeeld Vak Engels Songtekst 1 Another day in paradise Artiest: Brandy & Ray J She calls

Nadere informatie

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT TELETASK Handbook Multiple DoIP Central units DALISOFT 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool Connect the TDS20620V2 If there is a TDS13620 connected to the DALI-bus, remove it first.

Nadere informatie

TE HUUR. Maliestraat CA Den Haag. 950 p.m. ex.

TE HUUR. Maliestraat CA Den Haag. 950 p.m. ex. TE HUUR Maliestraat 18 2514 CA Den Haag 950 p.m. ex. KENMERKEN Prijs 950 p.m. ex. Postcode 2514 CA Ligging Aan rustige weg, In centrum Woningtype Benedenwoning Woonruimte 40m² Inhoud 120m³ Kamers 1 Oplevering

Nadere informatie

Academisch schrijven Inleiding

Academisch schrijven Inleiding - In this essay/paper/thesis I shall examine/investigate/evaluate/analyze Algemene inleiding van het werkstuk In this essay/paper/thesis I shall examine/investigate/evaluate/analyze To answer this question,

Nadere informatie

Stars FILE 7 STARS BK 2

Stars FILE 7 STARS BK 2 Stars FILE 7 STARS BK 2 Of course you have seen X-Factor, The Voice or Got Talent on TV or via the Internet. What is your favourite act? Do you like the dancing performances or would you rather listen

Nadere informatie

WEGWIJZER VOOR METHODEN BIJ PROJECTMANAGEMENT (PROJECT MANAGEMENT) (DUTCH EDITION) BY EDWIN BAARDMAN, GERARD BAKKER, JAN VAN BEIJNHEM, FR

WEGWIJZER VOOR METHODEN BIJ PROJECTMANAGEMENT (PROJECT MANAGEMENT) (DUTCH EDITION) BY EDWIN BAARDMAN, GERARD BAKKER, JAN VAN BEIJNHEM, FR Read Online and Download Ebook WEGWIJZER VOOR METHODEN BIJ PROJECTMANAGEMENT (PROJECT MANAGEMENT) (DUTCH EDITION) BY EDWIN BAARDMAN, GERARD BAKKER, JAN VAN BEIJNHEM, FR DOWNLOAD EBOOK : WEGWIJZER VOOR

Nadere informatie

i(i + 1) = xy + y = x + 1, y(1) = 2.

i(i + 1) = xy + y = x + 1, y(1) = 2. Kenmerk : Leibniz/toetsen/Re-Exam-Math A + B-45 Course : Mathematics A + B (Leibniz) Date : November 7, 204 Time : 45 645 hrs Motivate all your answers The use of electronic devices is not allowed [4 pt]

Nadere informatie

De ondernemende psychotherapeut (Dutch Edition)

De ondernemende psychotherapeut (Dutch Edition) De ondernemende psychotherapeut (Dutch Edition) Dick Bouman Click here if your download doesn"t start automatically De ondernemende psychotherapeut (Dutch Edition) Dick Bouman De ondernemende psychotherapeut

Nadere informatie

A2 Workshops Grammatica Heden

A2 Workshops Grammatica Heden Bestuderen Present Simple Normaal Hoe maak je de Present Simple? Kijk eerst maar even naar het volgende rijtje. I You He She It We You see see sees sees sees see see They see Je ziet dat het heel eenvoudig

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

Vergaderen in het Engels

Vergaderen in het Engels Vergaderen in het Engels In dit artikel beschrijven we verschillende situaties die zich kunnen voordoen tijdens een business meeting. Na het doorlopen van deze zinnen zal je genoeg kennis hebben om je

Nadere informatie

Basic operations Implementation options

Basic operations Implementation options Priority Queues Heaps Heapsort Student questions EditorTrees WA 6 File Compression Graphs Hashing Anything else Written Assignments 7 and 8 have been updated for this term. Each of them is smaller than

Nadere informatie

10 tips om de alledaagse momenten vast te leggen CAPTURE THE MAGICAL MOMENTS

10 tips om de alledaagse momenten vast te leggen CAPTURE THE MAGICAL MOMENTS 10 tips om de alledaagse momenten vast te leggen CAPTURE THE MAGICAL MOMENTS LET'S FIND THE MAGIC and capture it! Elke dag gebeuren er magische momenten. Vaak in de drukte vliegt de dag langs ons heen

Nadere informatie

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14)

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14) Quality requirements concerning the packaging of oak lumber of (09.09.14) Content: 1. Requirements on sticks 2. Requirements on placing sticks 3. Requirements on construction pallets 4. Stick length and

Nadere informatie

Demultiplexing reads FASTA format genome sequencing reads run

Demultiplexing reads FASTA format genome sequencing reads run Demultiplexing reads In bioinformatics, FASTA format is a text-based format for representing either nucleotide sequences or peptide sequences, in which nucleotides or amino acids are represented using

Nadere informatie

Travel Survey Questionnaires

Travel Survey Questionnaires Travel Survey Questionnaires Prot of Rotterdam and TU Delft, 16 June, 2009 Introduction To improve the accessibility to the Rotterdam Port and the efficiency of the public transport systems at the Rotterdam

Nadere informatie

This appendix lists all the messages that the DRS may send to a registrant's administrative contact.

This appendix lists all the messages that the DRS may send to a registrant's administrative contact. This appendix lists all the messages that the DRS may send to a registrant's administrative contact. Subject: 1010 De houdernaam voor #domeinnaam# is veranderd / Registrant of #domeinnaam# has been changed

Nadere informatie

Handleiding Zuludesk Parent

Handleiding Zuludesk Parent Handleiding Zuludesk Parent Handleiding Zuludesk Parent Met Zuludesk Parent kunt u buiten schooltijden de ipad van uw kind beheren. Hieronder vind u een korte handleiding met de mogelijkheden. Gebruik

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours. TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination 2DL04 Friday 16 november 2007, 14.00-17.00 hours. De uitwerkingen van de opgaven dienen duidelijk geformuleerd en overzichtelijk

Nadere informatie

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Sofie De Cooman 21 December 2006 Stagebedrijf: Interne begeleider: Externe begeleider: BarcoView Koen Van De Wiele

Nadere informatie

Schaduwkunst. Samenvatting. Aan te pakken problemen: Context. Doelen. Aansluiting bij de werkelijkheid. Vaardigheden

Schaduwkunst. Samenvatting. Aan te pakken problemen: Context. Doelen. Aansluiting bij de werkelijkheid. Vaardigheden Schaduwkunst Samenvatting Age category 9-12 jaar Topic Geometrie Meten en metend rekenen Total duration 195 minutes Leerlingen ontdekken hoe schaduwen gevormd worden. Ze creëren een kunstwerk met schaduwen

Nadere informatie

Teardrop readout gradient waveform design. Ting Ting Ren

Teardrop readout gradient waveform design. Ting Ting Ren Teardrop readout gradient waveform design Ting Ting Ren Overview MRI Background Teardrop Model Discussion Future work MRI Background: Classical Description of MRI Spins: MR relevant nuclei, like 1 H. Main

Nadere informatie

Een vrouw, een kind en azijn (Dutch Edition)

Een vrouw, een kind en azijn (Dutch Edition) Een vrouw, een kind en azijn (Dutch Edition) D.J. Peek Click here if your download doesn"t start automatically Een vrouw, een kind en azijn (Dutch Edition) D.J. Peek Een vrouw, een kind en azijn (Dutch

Nadere informatie

Screen Design. Deliverable 3 - Visual Design. Pepijn Gieles 0877217 19-12-2014. Docent: Jasper Schelling

Screen Design. Deliverable 3 - Visual Design. Pepijn Gieles 0877217 19-12-2014. Docent: Jasper Schelling Screen Design Deliverable 3 - Visual Design Pepijn Gieles 0877217 19-12-2014 Docent: Jasper Schelling Hulp bij het inloggen Inloggen Particulier Personal Banking Private Banking Zakelijk Zoeken in Particulier

Nadere informatie

MyDHL+ Tarief berekenen

MyDHL+ Tarief berekenen MyDHL+ Tarief berekenen Bereken tarief in MyDHL+ In MyDHL+ kunt u met Bereken tarief heel eenvoudig en snel opvragen welke producten er mogelijk zijn voor een bestemming. Ook ziet u hierbij het geschatte

Nadere informatie

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain.

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain. Domino tiles Dominoes is a game played with rectangular domino 'tiles'. Today the tiles are often made of plastic or wood, but in the past, they were made of real stone or ivory. They have a rectangle

Nadere informatie

CTI SUITE TSP DETAILS

CTI SUITE TSP DETAILS CTI SUITE TSP DETAILS TAPI allows an application to access telephony services provided by a telecom PABX. In order to implement its access to ETRADEAL, a TAPI interface has been developed by Etrali. As

Nadere informatie

LDA Topic Modeling. Informa5ekunde als hulpwetenschap. 9 maart 2015

LDA Topic Modeling. Informa5ekunde als hulpwetenschap. 9 maart 2015 LDA Topic Modeling Informa5ekunde als hulpwetenschap 9 maart 2015 LDA Voor de pauze: Wat is LDA? Wat kan je er mee? Hoe werkt het (Gibbs sampling)? Na de pauze Achterliggende concepten à Dirichlet distribu5e

Nadere informatie

Lists of words from the books, and feedback from the sessions, are on

Lists of words from the books, and feedback from the sessions, are on Vocabulairetrainer www.quizlet.com - handleiding 1. Woordenlijsten van de boeken en de feedback van de les staan op http://www.quizlet.com. Lists of words from the books, and feedback from the sessions,

Nadere informatie

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education DUTCH 055/02 Paper 2 Reading MARK SCHEME Maximum Mark: 45 Published This mark scheme is published

Nadere informatie

Uitwerking Tentamen Calculus B (2WBB1) van 4 november 2013

Uitwerking Tentamen Calculus B (2WBB1) van 4 november 2013 ENGLISH PAGE 5 8 Uitwerking Tentamen Calculus B (WBB1) van november 01 Kort-antwoord-vragen 1. Zij V het vlak in R door de punten P = (1, 1, 1), Q = (,, 5), en R = (0, 0, ). Bepaal een vergelijking van

Nadere informatie