• No results found

Een realistischer digitaal model voor archeologische opgravingen

N/A
N/A
Protected

Academic year: 2021

Share "Een realistischer digitaal model voor archeologische opgravingen"

Copied!
44
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Bachelor Informatica

Een realistischer digitaal

mo-del voor archeologische

opgra-vingen

Bram Dekker

15 juni 2020

Supervisor(s): dr. R.G. Belleman, T.J.R. Lanjouw

Inf

orma

tica

Universiteit

v

an

Ams

terd

am

(2)
(3)

Samenvatting

Digitale methoden zoals fotogrammetrie worden steeds vaker gebruikt om archeologische opgravingen te documenteren. Deze methoden produceren een model van gestapelde opgra-vingsvlakken zonder volumetrische informatie. Dit is geen realistisch model van een archeolo-gische opgraving. Om een realistischer model te cre¨eren wordt voorgesteld om de verschillen tussen de opgravingsvlakken om te zetten naar volumetrische objecten. Er zijn drie metho-den ge¨ımplementeerd om dit te realiseren: ruimte-geori¨enteerd met balk volume primitieven, ruimte-geori¨enteerd met tetra¨eder volume primitieven en een object-geori¨enteerde methode. De object-geori¨enteerde methode heeft veel potentie vanwege de nauwkeurige benaderingen van simpele vormen, maar moet verbeterd worden om ook op complexe opgravingsvlakken correcte resultaten te genereren. De ruimte-geori¨enteerde methode met tetra¨eder primitieven benadert objecten over het algemeen beter dan de ruimte-geori¨enteerde methode met balk primitieven. De uitvoertijd van de tetra¨eder methode is echter langer is dan de uitvoertijd van de rechthoekige methode. In dit onderzoek weegt de nauwkeurigheid van de benadering van objecten zwaarder dan de uitvoertijd. De ruimte-geori¨enteerde methode met tetra¨eder primitieven is daarom de effectiefste methode om tussen afzonderlijke opgravingsvlakken 3D modellen te maken en het volume van de modellen te berekenen.

(4)
(5)

Inhoudsopgave

1 Introductie 7

1.1 Opbouw van de scriptie . . . 8

2 Achtergrond 9 2.1 Gerelateerd werk . . . 9 2.2 Ethische aspecten . . . 10 2.2.1 Positieve aspecten . . . 10 2.2.2 Negatieve aspecten . . . 10 2.3 3D modelleren . . . 11 2.3.1 Ruimte-geori¨enteerd . . . 11 2.3.2 Object-geori¨enteerd . . . 12 2.4 Volume berekenen . . . 13

2.5 Stitchen van twee driehoek meshes . . . 14

3 Ge¨ımplementeerde methoden 17 3.1 Ruimte-geori¨enteerde methoden . . . 18

3.1.1 Rechthoekig . . . 18

3.1.2 Tetra¨eder . . . 19

3.2 Object-geori¨enteerde methode . . . 20

3.2.1 Verwijderen van vertices die te dichtbij liggen . . . 20

3.2.2 Kleine, losliggende delen verwijderen . . . 20

3.2.3 Meshes aan elkaar stitchen . . . 21

3.2.4 Overgebleven gaten opvullen . . . 22

3.2.5 Volume van de gegenereerde mesh berekenen . . . 22

4 Experimenten en resultaten 23 4.1 Tijd experiment . . . 23

4.1.1 Tijd experiment: resultaten . . . 24

4.2 Nauwkeurigheid experiment . . . 24

4.2.1 Nauwkeurigheid experiment: resultaten . . . 25

4.3 Tweede nauwkeurigheid experiment . . . 26

4.3.1 Tweede nauwkeurigheid experiment: resultaten . . . 26

5 Discussie 29 5.1 Conclusie . . . 30

5.2 Vervolgonderzoek . . . 30

A Input meshes tijd experiment 35 A.1 Origineel oppervlak . . . 35

A.2 Opgravingsvlak op 10 juli . . . 35

A.3 Opgravingsvlak op 15 juli . . . 36

(6)

B Input meshes nauwkeurigheid experiment 37 B.1 Eerste laag van 12 objecten . . . 37 B.2 Tweede laag van 12 objecten . . . 38

C Data: Tijd experiment 39

C.1 Uitvoertijd in seconden . . . 39

D Data: Nauwkeurigheid experiment 41

D.1 Nauwkeurigheid in kubieke centimeters . . . 41 D.2 Nauwkeurigheid in procenten . . . 42

E Data: Tweede nauwkeurigheid experiment 43 E.1 Nauwkeurigheid in kubieke centimeters . . . 43 E.2 Nauwkeurigheid in procenten . . . 44

(7)

HOOFDSTUK 1

Introductie

Archeologische opgravingen zijn complexe structuren bestaande uit onregelmatige grondlagen en artefacten. Vroeger werden opgravingen gedocumenteerd door middel van tekeningen op papier. Tegenwoordig worden steeds vaker digitale methoden zoals fotogrammetrie gebruikt om opgravingen te documenteren. Echter, een probleem van de gebruikte digitale methoden is dat het resulteert in afzonderlijke driehoek meshes die geen formeel gedefinieerde relatie tot elkaar hebben. Daarnaast is er geen volumetrische informatie aan deze meshes gekoppeld, zie Figuur 1.1. Dit is geen realistisch model van een archeologische opgraving.

(a) Eerste stadium. (b) Tweede stadium. (c) Combinatie van de twee stadia.

Figuur 1.1: Voorbeeld van afzonderlijke opgravingsvlakken afkomstig van input data van deze scriptie. Er is geen volumetrische informatie en ruimtelijke relaties zijn moeilijk te zien.

Een realistischer model van een archeologische opgraving bestaat uit volumetrische grondla-gen. Zo blijven volumetrische data en ruimtelijk relaties tussen de artefacten behouden. Met het volume van de grondlagen kan de vondst-dichtheid bepaald worden, oftewel het aantal artefacten per volume-eenheid. Archeologen gebruiken vondst-dichtheid om opgravingen te analyseren [10]. Een ander voordeel van een 3D model is dat op willekeurige locaties in de opgraving verticale dwarsdoorsneden gemaakt kunnen worden, ook wel secties genoemd in de archeologie. In het veld worden maar op een beperkt aantal locaties secties gemaakt omdat het gedocumenteerd wordt met tekeningen waardoor het tijdrovend is [16]. Secties geven de archeoloog inzicht in de gelaagdheid van de grond (stratigrafie) van een opgraving [8]. Het onbeperkt en willekeurig maken van secties helpt dus om een opgraving grondiger te kunnen analyseren. Als de input data informatie bevat over de locaties van verschillende typen grondlagen, kan de software beschreven in deze scriptie het maken van secties digitaal simuleren. Momenteel wordt deze informatie echter zelden in 3D gedocumenteerd. Een bijkomend doel van deze scriptie is daarom om archeologen te stimuleren meer data in 3D te documenteren zodat het digitaal verwerkt kan worden.

De afzonderlijke driehoek meshes die de digitale methoden genereren, stellen stadia van een opgravingsvlak voor. Een opgravingsvlak is de status van de grond van een opgraving op een bepaald tijdstip. Een 3D model van de opgraving kan worden gemaakt door het verschil tussen opeenvolgende stadia van opgravingsvlakken om te zetten naar een volumetrisch object. De op-graving wordt zo gerepresenteerd door gestapelde objecten die uitgegraven grond voorstellen. Het genereren van een 3D object tussen twee opgravingsvlakken kan op verschillende manieren gerea-liseerd worden. Het moet op een zo effectief mogelijke manier gedaan worden zodat niet onnodig

(8)

lang moet worden gewacht op het genereren van het model terwijl het wel voldoende nauwkeurig is zodat de data bruikbaar is voor analyse. Een aantal methoden zullen ge¨ımplementeerd en vergeleken worden.

Ondanks dat er veel onderzoek is gedaan naar de 3D visualisatie van archeologische data, is er nog geen open source software die tussen afzonderlijke opgravingsvlakken 3D objecten maakt en van deze gegenereerde objecten het volume kan berekenen. Het genereren van een 3D model kan op verschillende manieren gedaan worden, daarom is de onderzoeksvraag:

Wat is de effectiefste manier om tussen verschillende afzonderlijke opgravingsvlakken een 3D model te maken en het volume van het model te berekenen?

Effectief is in dit geval een combinatie van een korte tijd om de output te genereren en hoge nauwkeurigheid van het gegenereerde object. In dit onderzoek zal de nauwkeurigheid zwaarder wegen dan de tijd omdat er geen real-time toepassing aan gekoppeld is. Er wordt ´e´en keer een volumetrisch object gegenereerd dat opgeslagen kan worden. Idealiter wordt de software dus maar ´e´en keer uitgevoerd per input set en daarom heeft de uitvoer-tijd geen grote invloed op de gebruikerservaring.

Het eindproduct van dit onderzoek zal open source software zijn die tussen de input data ´e´en of meerdere 3D modellen genereert. De software is geschreven als Python 3 script voor het gratis 3D graphics programma Blender.

1.1

Opbouw van de scriptie

In Hoofdstuk 2 wordt achtergrond informatie besproken. Hier wordt ingegaan op eerder gedaan onderzoek naar 3D modelleren in de archeologie, ethische aspecten van dit project, 3D modelleren in het algemeen, het volume berekenen van een 3D model en het stitchen van 2 meshes. In Hoofdstuk 3 worden de ge¨ımplementeerde methoden om een 3D model te maken besproken. In Hoofdstuk 4 worden de experimenten die zijn uitgevoerd op de methoden behandeld. De resultaten worden hier ook weergegeven. In Hoofdstuk 5 worden de resultaten bediscussieerd, een conclusie geformuleerd en worden er voorstellen voor vervolgonderzoek gedaan.

(9)

HOOFDSTUK 2

Achtergrond

2.1

Gerelateerd werk

In eerder werk van Lieberwirth wordt met behulp van open source software een methode beschre-ven die van tekeningen op papier een 3D model maakt die de verschillende grondlagen zichtbaar maakt [12]. Er wordt hier gebruik gemaakt van digitale hoogte-modellen, een soort reli¨efs. De ruimte tussen de lagen van de hoogte-modellen worden dan met behulp van een ’flood-filling’ algoritme gevuld met voxels. Deze studie laat zien dat het mogelijk is om van 2D data een 3D object te produceren. Dit model kan echter geen 3D statistieken berekenen. Daarnaast gebruikt het veel verschillende software. Hierdoor kan het moeilijk zijn om de beschreven methode te gebruiken en te automatiseren.

De ’Stratigraphy 3D Viewer’ is een online, open source tool gebaseerd op WebGL (Web Graphics Library) [7]. Hoewel het enkele handige functies heeft zoals afstand tussen twee punten meten en dwarsdoorsneden maken, is het een groot gemis dat er geen volume is en dus dat de ruimtelijke relaties moeilijk zichtbaar zijn. Deze tool maakt een 3D visualisatie waarin ge¨ısoleerde oppervlakken boven elkaar lijken te zweven waardoor het 3D effect weinig inzicht geeft, zie Figuur 2.1.

Figuur 2.1: Screen-shot van de ’Stratigraphy 3D Viewer waarin grondlagen boven elkaar zweven in een 3D ruimte [7].

Het onderzoek van Forte et al. beschrijft ook een 3D visualisatie tool, maar is meer gefocust op het hele proces van data vergaren tijdens de opgraving zelf tot een 3D model cre¨eren van die vergaarde data [6]. Het doel van dit onderzoek was om andere archeologen een kans te geven de opgraving zelf digitaal uit te voeren en dus de hele opgraving te herhalen in Virtual Reality (VR). Het genereren van de verschillende lagen gaat dus niet automatisch en volume berekeningen kunnen niet worden gedaan.

(10)

´e´en 3D model te maken [13]. Echter, dit wordt gedaan met behulp van het software pakket GOCAD (Geographical Object Computer-Aided-Design) wat niet open source is. Deze software kan wel volumetrische en ruimtelijke analyses uitvoeren op het verkregen 3D model. De input data voor dit onderzoek heeft een veel lagere resolutie dan de data die tegenwoordig gegenereerd wordt bij een opgraving en waarmee in deze scriptie gewerkt zal worden. Het eindproduct van deze scriptie zal desondanks veel gelijkenis tonen met de software beschreven in dit onderzoek, zie Figuur 2.2.

Figuur 2.2: Een screen-shot van de software beschreven in [13], de verschillende lagen zijn goed zichtbaar en er kan een volume berekening gedaan worden.

Het werk beschreven in deze scriptie verschilt van de hierboven besproken onderzoeken in dat het zich specifiek focust op het genereren van een 3D model tussen opeenvolgende driehoek meshes die stadia van opgravingsvlakken voorstellen. Het vergaren en bewerken van de data speelt hierbij geen rol. Het eindproduct is een tool die een 3D model genereert en het volume van de verschillende lagen kan uitrekenen. Deze tool is bedoeld voor archeologen die meer ruimtelijke inzicht willen in de data die zij bezitten en de data beter willen onderzoeken door op willekeurige locaties secties te maken of vondst-dichtheden te bepalen. Het eindproduct is open-source zodat elke archeoloog er gebruik van kan maken en het product kan verbeteren of op de software voort kan bouwen. Dit project is juist nu extra relevant omdat er steeds meer 3D data wordt ingewonnen bij archeologische opgravingen met behulp van bijvoorbeeld drones. Daarom is het belangrijk om deze data goed te kunnen verwerken zodat de data nuttig gebruikt kan worden en verder onderzoek naar 3D visualisatie in de archeologie te stimuleren.

2.2

Ethische aspecten

2.2.1

Positieve aspecten

Het doel van deze scriptie is onderzoek naar 3D visualisatie in de archeologie stimuleren door een open-source software tool te maken die archeologische data inzichtelijker maakt. Omdat deze software er voorheen niet was, brengt dit de archeologie een stapje verder. De software is open-source waardoor iedereen die een computer tot zijn beschikking heeft de software gebruiken. Vanuit dit oogpunt heeft iedereen dus gelijke rechten met betrekking tot de software. Iedereen, onderzoeker of hobbyist, kan zo een bijdrage leveren aan onderzoek in de archeologie als ze de data ervoor hebben. Ook personen die niet fysiek bij de opgraving aanwezig kunnen zijn, kunnen met behulp van deze software meewerken. Dit project maakt onderzoek dus toegankelijker voor niet-onderzoekers en helpt onderzoekers om beter onderzoek te kunnen doen.

2.2.2

Negatieve aspecten

Het eindproduct is software voor de computer wat betekent dat personen zonder beschikking tot een computer geen gebruik kunnen maken van de tool. Ook wordt er van personen verlangt

(11)

dat ze met een computer kunnen werken en de software kunnen uitvoeren en gebruiken. Voor personen zonder computer en digibeten is het dus niet of heel lastig te gebruiken. Onbewust draagt dit project bij aan de digitalisering van de maatschappij. Dit kan als een negatief aspect beschouwd worden. Een ander punt is dat het open-source software is wat betekent dat personen die een bijdrage leveren aan de software geen financi¨ele beloning krijgen. Je zou kunnen zeggen dat het meehelpen met het verbeteren van het product niet gestimuleerd wordt of dat mensen die wel meehelpen niet genoeg waardering krijgen. Daarnaast is de software voor een specifiek 3D graphics programma gemaakt en in de bijbehorende programmeertaal geschreven. Deze software maakt dus een keuze voor de gebruiker over welke andere software hij moet gebruiken. Dit kan de gebruiker uitleggen als een beperking van zijn keuzevrijheid. Als laatste is de data die nodig is als input voor de software niet altijd vrij verkrijgbaar. Dit kan ervoor zorgen dat bezitters van deze data zich een machtspositie kunnen toe-eigenen.

De positieve aspecten lijken op te wegen tegen de negatieve aspecten. Tegenwoordig heeft bijna iedereen toegang tot een computer en is de digitalisering van de maatschappij over het algemeen geaccepteerd en ver gevorderd. Open-source software zal altijd voor- en tegenstanders hebben, maar juist omdat het open-source is kan het worden omgeschreven naar een andere programmeer-taal of voor een ander 3D graphics programma. Het grootste nadeel is het niet vrij beschikbaar zijn van de input data. Nu is het misschien ook geen goed idee, in verband met privacy, om deze data voor iedereen beschikbaar te stellen, maar je zou het als archeoloog wel moeten kunnen verkrijgen.

2.3

3D modelleren

3D modelleren is het ontwikkelen van een representatie van een voorwerp in drie dimensies. Er bestaan verschillende methoden om zo’n representatie te maken. Een volumetrische representatie van een voorwerp betekent dat de representatie niet alleen een omhulling maar ook het volume weergeeft. Bij een oppervlakte representatie wordt alleen een omhulling weergegeven. Doordat er geen volume is zullen dwarsdoorsneden op het voorwerp hol zijn. Figuur 2.3 laat het verschil zien tussen beide representaties.

Figuur 2.3: Links: oppervlakte representatie van een bol. Rechts: volumetrische representatie van een bol [4].

In de paper van Losier et al. worden verschillende methoden om 3D modellen te maken be-sproken [13]. De 3D modelleermethoden worden in twee categorie¨en verdeeld, ruimte-geori¨enteerd en object-geori¨enteerd. Beide methoden leveren een beschrijving van een voorwerp in 3D op. Hieronder zullen deze categorie¨en van methoden besproken worden.

2.3.1

Ruimte-geori¨

enteerd

In een ruimte-geori¨enteerde methode wordt de gehele ruimte opgedeeld in volume primitieven. Een volume primitief is een simpele 3D vorm zoals een kubus, balk, piramide, tetra¨eder of bol. Ruimte-geori¨enteerde methoden genereren dus allemaal een volumetrische representatie. Voor elk primitief in de ruimte wordt bepaald of het aan het te beschrijven voorwerp toegekend moet

(12)

worden of niet. Het voorwerp wordt dus beschreven door een verzameling van volume primitieven en levert bijna nooit een exacte beschrijving van het voorwerp op. Aan welke voorwaarden een primitief moet voldoen om aan het voorwerp toegekend te worden is een implementatie-keuze. Voorbeelden van deze voorwaarden zijn: het hele primitief ligt in het voorwerp, in ieder geval de helft van het primitief ligt in het voorwerp of het middelpunt van het primitief ligt in het voorwerp, et cetera. Het volume van het voorwerp berekenen is relatief eenvoudig: het is de som van de volumes van alle primitieven die aan het voorwerp zijn toegekend. Omdat alle primitieven in de ruimte doorlopen worden, kan dit incrementeel worden bijgehouden.

Een eenvoudige methode uit de categorie van ruimte-geori¨enteerde methoden is het verdelen van de ruimte in volume primitieven van dezelfde vorm en grootte. De nauwkeurigheid van de benadering van een voorwerp van deze methode hangt af van zowel de grootte als de vorm van het primitief. Kleinere primitieven zorgen voor nauwkeurigere benaderingen maar ook voor een langere uitvoertijd omdat er meer primitieven doorlopen moet worden. Ook is er meer geheugen nodig om alle primitieven op te slaan.

Het ligt het meest voor de hand om met rechthoekige primitieven (balken) te werken omdat deze de ruimte op een regelmatige manier kunnen verdelen. Het nadeel van balken is dat ze niet goed onregelmatige objecten, bijvoorbeeld een bol, kunnen benaderen mits de balken heel klein zijn in verhouding tot het onregelmatige object. Het opdelen van een balk in andere primitieven heeft twee voordelen. De ruimte kan regelmatig verdeeld worden terwijl de gebruikte primitieven onregelmatige objecten beter kunnen benaderen. Een balk kan bijvoorbeeld in zes tetra¨eders of in zes piramiden verdeeld worden, zie Figuur 2.4.

Figuur 2.4: Een balk kan verdeeld worden in tetra¨eders of piramiden zodat de ruimte regelma-tig verdeeld kan worden terwijl de gebruikte primitieven onregelmaregelma-tige objecten beter kunnen benaderen [5], [14].

2.3.2

Object-geori¨

enteerd

Object-geori¨enteerde methoden geven een exacte beschrijving van een voorwerp. Een beschrij-ving kan bijvoorbeeld gegeven worden door punten en kanten van een object te specificeren (wi-reframe) of door een boom van volume primitieven en operaties op die primitieven (’constructive solid modeling’). In Figuur 2.5 worden deze exacte beschrijvingen en een ruimte-geori¨enteerde benadering van een mok weergegeven.

Object-geori¨enteerde methoden worden onderverdeeld in twee subcategorie¨en: gebaseerd op volume en gebaseerd op oppervlakken.

Object-geori¨enteerd: Gebaseerd op volume

Object-geori¨enteerde methoden gebaseerd op volume representeren een voorwerp met volume primitieven. De output van deze methoden is dus een volumetrische representatie van een voor-werp. Een voorbeeld van een object-geori¨enteerde methode op basis van volume primitieven is constructive solid modeling.

Object-geori¨enteerd: Gebaseerd op oppervlakken

Object-geori¨enteerde methoden gebaseerd op oppervlakken leveren een oppervlakte representatie van een voorwerp op als output. Omdat er geen 3D primitieven worden gebruikt is het volume

(13)

(a) Ruimte-geori¨enteerd [15]. (b) Constructive solid modeling [9]. (c) Wireframe [11].

Figuur 2.5: Voorbeeld van representaties van een mok door verschillende methoden.

lastiger te berekenen dan voor volume representaties. Een wireframe is een voorbeeld van een object-geori¨enteerde methode gebaseerd op oppervlakken.

Voor de ’boundary representation’ methode is een techniek bekend om het volume te bereke-nen, zie Sectie 2.4. De ’boundary representation’ methode representeert de grensvlakken van een voorwerp met behulp van een mesh, dit kan een driehoek mesh zijn of een andere veelhoek mesh. In Figuur 2.6 is een kubus door boundary representation met een driehoek mesh gerepresenteerd. Een nadeel van deze methode is dat het voorwerp hol blijft en dus dat dwarsdoorsneden ook hol zijn. Daarom zou het model na het genereren gevuld moeten worden met bijvoorbeeld kleine volume primitieven zodat gevulde dwarsdoorsneden gemaakt kunnen worden.

Figuur 2.6: Een driehoek mesh boundary representation van een kubus [3].

De opgravingsvlakken die deze scriptie als input heeft, zijn vrij complexe oppervlakken. Daar-door is het lastig om de verschillen tussen de oppervlakken exact te beschrijven met volume primitieven. De categorie van object-geori¨enteerde methoden gebaseerd op oppervlakken lijkt meer geschikt om te gebruiken voor dit onderzoek omdat de input ook uit oppervlakken be-staat. De input oppervlakken kunnen voor een groot deel gebruikt worden voor de oppervlakte representatie van de verschillen tussen de opgravingsvlakken.

2.4

Volume berekenen

Het is belangrijk om het volume van de gegenereerde modellen te berekenen om vondst-dichtheden te kunnen bepalen. Als er met volume primitieven wordt gemodelleerd kan het volume incremen-teel worden bijhouden. De afmetingen en dus inhoud van een primitief zijn bekend. De inhoud wordt opgeteld bij het totale volume als het primitief bij het object hoort. Voor oppervlakte representaties kan dit niet worden gedaan en dus moet er een andere techniek worden toegepast om het volume te berekenen.

In de paper van Zhang et al. wordt een algoritme besproken die van een mesh gerepresenteerd door de boundary representation methode de inhoud berekent, zonder er eerst een volumetrische representatie van te maken [18]. De mesh wordt allereerst omgezet naar een driehoek mesh. Alle driehoeken worden dan verbonden aan de oorsprong met zijn drie hoekpunten om zo een tetra¨eder te vormen, zie Figuur 2.7. Het maakt niet uit of de oorsprong binnen of buiten het object ligt.

(14)

De inhoud van al deze tetra¨eders wordt dan bij elkaar opgeteld en de absolute waarde van deze som is dan de inhoud van de mesh. Dit gaat goed omdat sommige tetra¨eder volumes negatief zijn, afhankelijk van de normaal vector van de driehoek. Dit algoritme werkt dan ook alleen als alle normalen van de driehoeken consistent zijn, dus of alle normalen wijzen naar de binnenkant van de mesh of naar de buitenkant. De inhoud van een tetra¨eder van een driehoek met vertices (x1, y1, z1), (x2, y2, z2) en (x3, y3, z3) die verbonden is met de oorsprong, wordt berekend door:

1

6 (−x3y2z1+ x2y3z1+ x3y1z2− x1y3z2− x2y1z3+ x1y2z3). Deze methode om de inhoud van

een driehoek mesh te berekenen kan worden gebruikt in combinatie met een object-geori¨enteerde methode gebaseerd op oppervlakken.

Figuur 2.7: Drie driehoeken worden met hun drie hoekpunten verbonden met de oorsprong waardoor er tetra¨eders gecre¨eerd worden [18].

2.5

Stitchen van twee driehoek meshes

Stitchen is het aan elkaar vastmaken van twee losse meshes door kanten tussen de twee randen van de meshes te plaatsen. Twee losse meshes worden dus omgezet naar ´e´en mesh. Stitchen kan bijvoorbeeld gebruikt worden om twee opgravingsvlakken aan elkaar vast te maken tot ´e´en volumetrisch object. Brandao et al. hebben een algoritme voor het stitchen van twee meshes voorgesteld genaamd Joint Alignment and Stitching of Non-Overlapping Meshes (JASNOM) [2]. Alleen de stitching stap is voor deze scriptie interessant omdat de input meshes al ’aligned’ zijn. Figuur 2.8 laat de drie stappen van de stitching stap zien voor twee meshes in 2D.

Figuur 2.8: De drie stappen van de stitching stap van het JASNOM algoritme. De groene kanten zijn de kanten die zijn toegevoegd in de huidige stap [2].

(15)

Algoritme 1 geeft de pseudocode voor de drie stappen voor het stitchen van twee meshes. Als alle stappen zijn doorlopen, zijn de 2 meshes aan elkaar gestitched en bestaat de hele mesh uit alleen maar driehoeken. Het algoritme garandeert dat de gecre¨eerde kanten elkaar nooit kruisen, waardoor de ontstane mesh ’manifold’ is.

Algoritme 1 JASNOM stitching Input: twee losse meshes

Output: ´e´en manifold mesh

rand vertices mesh1 = [alle vertices die op de rand van mesh 1 liggen] rand vertices mesh2 = [alle vertices die op de rand van mesh 2 liggen]

for vi in rand vertices mesh1 do

target vertex = vertex uit rand vertices mesh2 die qua afstand het dichtst bij vi ligt

maak de kant (vi, target vertex)

end for

for vi in rand vertices mesh1 do

maak de kant (vi, target vertex van vi+1)

end for

for vj in rand vertices mesh2 do

if vj heeft geen kant naar een vertex uit rand vertices mesh1 then

maak de kant (vj, target vertex van vj−1)

end if end for

(16)
(17)

HOOFDSTUK 3

Ge¨ımplementeerde methoden

De input voor de algoritmen zijn twee of meerdere driehoek meshes bestaande uit punten, kanten en vlakken. Een voorbeeld van een input mesh is te zien in Figuur 3.1. De algoritmen genereren tussen boven elkaar liggende meshes een volumetrische mesh en berekenen daarvan het volume. Deze gegenereerde volumetrische meshes stellen uitgegraven grond voor.

Figuur 3.1: Links: een bovenaanzicht van een input mesh. Rechts: zijaanzicht van een input mesh.

Alle methoden beginnen met initialisatie fase. Hierin worden alle geselecteerde objecten naar de oorsprong verplaatst en wordt de bounding box bepaald. De bounding box geeft de minimale en maximale waarden aan voor de x-, y- en z-co¨ordinaten. Er wordt ´e´en bounding box voor alle objecten gemaakt. Dit zorgt ervoor dat de gehele ruimte gelijkmatig verdeeld wordt waardoor de gegenereerde primitieven van de ruimte-geori¨enteerde algoritmen goed op elkaar aansluiten. In de initialisatie worden ook eerder gegeneerde volumes verwijderd en wordt de uitvoertijd bijgehouden. De input meshes worden meegegeven als een lijst van objecten gesorteerd van boven naar beneden op basis van de gemiddelde hoogte van alle punten in een object.

De gebruiker kan zelf een threshold instellen. Dit is een afstand in centimeters en geeft aan hoever een punt van de andere mesh af moet liggen om als significant verschil te worden gezien. Dit betekent dat punten die minder dan de threshold-afstand van de andere mesh liggen, niet beschouwd worden als uitgegraven grond. De threshold wordt gebruikt om te bepalen of een primitief tussen de meshes ligt en of punten moet worden meegenomen in het object-geori¨enteerde algoritme. Dit wordt gedaan omdat niet elk verschil tussen de meshes uitgegraven grond is. Ten eerste kunnen er kleine onnauwkeurigheden in de input data zitten. Ten tweede kunnen er plekken zijn waar de archeologen veel gelopen hebben, waardoor de grond daar een klein beetje is uitgesleten. Met de threshold kan voorkomen worden dat deze verschillen worden gezien als uitgegraven grond.

(18)

3.1

Ruimte-geori¨

enteerde methoden

De ruimte-geori¨enteerde methoden hebben naast de meshes, bounding box en de threshold ook het soort primitief en de lengte, breedte en hoogte van het primitief als parameters. Als extra feature kan je ook een puntenwolk laten exporteren als PLY-bestand om solide dwarsdoorsneden te kunnen maken in een ander 3D-programma of Blender zelf. Algoritme 2 geeft de pseudocode van de ruimte-geori¨enteerde methoden.

Algoritme 2 Ruimte-geori¨enteerd algoritme Input: lijst van opeenvolgende meshes

Output: volumes tussen de opeenvolgende meshes

for 2 opeenvolgende meshes do primitieven lijst = []

totaal volume = 0

verdeel de hele bounding box in de gespecificeerde volume primitieven for elk primitief in de bounding box do

if primitief tussen de 2 meshes then

totaal volume += volume van het primitief primitieven lijst.append(primitief)

end if end for

maak een nieuwe mesh van de primitieven lijst end for

Als de primitieven niet een geheel aantal keer in de bounding box passen, worden er extra primitieven aan toegevoegd die voor een deel in de bounding box en voor een deel buiten de bounding box liggen. Dit zorgt ervoor dat de gehele bounding box gevuld is met primitieven.

Het bepalen of een primitief tussen de twee meshes ligt is een essentieel deel van het algoritme en kan op meerdere manieren gedaan worden. In dit project wordt gebruik gemaakt van de ray cast() functie in Blender [1]. Vanaf het middelpunt van het primitief wordt er zowel een ray recht naar boven (richting (0, 0, 1)) als recht naar beneden (0, 0, -1) geschoten. Een primitief wordt tot het volume gerekend als het aan de volgende voorwaarden voldoet:

• de naar boven geschoten ray raakt de bovenste mesh een oneven aantal keer • de naar beneden geschoten ray raakt de onderste mesh een oneven aantal keer

• de afstand tussen beide eerste raakpunten is groter of gelijk aan de meegegeven threshold Op deze manier wordt voorkomen dat punten die wel tussen maar niet in de mesh liggen niet worden meegenomen, zie Figuur 3.2.

Volume primitieven die naast elkaar liggen, hebben een aantal punten en een vlak gemeen-schappelijk. Voor elk primitief worden al zijn punten en vlakken aan de mesh toegevoegd zonder te checken of deze al in de mesh zitten. Dit betekent dat er dubbele punten en vlakken in de uiteindelijke mesh zitten. Voor elk punt en voor elk vlak checken of deze al in de mesh zit bleek een erg tijdrovende operatie. Dubbele punten en vlakken worden daarom niet verwijderd.

Als de hele bounding box is doorlopen wordt er van alle primitieven die tussen de meshes in liggen een nieuwe mesh gemaakt. Deze krijgt een bepaalde kleur op basis van het aantal al gegenereerde meshes. De verschillende lagen zijn zo goed herkenbaar.

3.1.1

Rechthoekig

Het rechthoekig ruimte-geori¨enteerde algoritme gebruikt balk primitieven. Het middelpunt van een balk is het gemiddelde van zijn acht hoekpunten. Het volume wordt berekend door de

(19)

Figuur 3.2: Een punt ligt in een object als een ray vanuit dat punt het object een oneven aantal keer snijdt (’crossing number algorithm’) [17].

formule: lengte × breedte × hoogte. Per balk worden er acht punten en zes vlakken aan de mesh toegevoegd.

3.1.2

Tetra¨

eder

Het tetra¨eder ruimte-geori¨enteerde algoritme gebruikt tetra¨eder primitieven. Om een regelmatige verdeling te kunnen maken van de bounding box worden er tetra¨eders gebruikt die precies zes keer in een balk passen, zie Figuur 3.3. Deze worden gemaakt door een balk in drie richtingen (x-, y- en z-richting) diagonaal te doorsnijden. Dit geeft als extra voordeel dat het volume van ´e´en tetra¨eder

1

6 van het volume van de balk is. Het middelpunt van een tetra¨eder is het gemiddelde van zijn

vier hoekpunten. Het tetra¨eder algoritme is precies hetzelfde als het rechthoekig algoritme, alleen wordt elke balk nog eens in zes tetra¨eders verdeeld. Per tetra¨eder worden er vier punten en vier vlakken aan de mesh toegevoegd. Hieronder volgt een bewijs dat een balk verdeelt kan worden in zes tetra¨eders met gelijke inhoud.

Figuur 3.3: Een kubus wordt verdeeld in zes tetra¨eders met gelijke volumes. Ook balken kunnen zo verdeeld worden [5].

Stelling 1. Een balk wordt, door drie keer diagonaal te snijden in verschillende richtingen (x-, y- en z-richting), in zes tetra¨eders met gelijke inhoud verdeeld.

Bewijs. De formule van de inhoud van een balk wordt gegeven door lengte × breedte × hoogte. Laten we de balk een lengte l, een breedte b en een hoogte h geven, dan is de inhoud van de balk dus l × b × h.

Nu wordt de balk in drie verschillende richtingen diagonaal gesneden, zoals in Figuur 3.3 met een kubus gedaan is. Een tetra¨eder heeft zes kanten en elk tetra¨eder heeft de lichaams-diagonaal van de balk als kant. Zoals te zien is in Figuur 3.3 heeft elke tetra¨eder precies ´e´en kant die even groot is als de lengte van de balk, ´e´en kant die even groot is als de breedte en ´e´en kant die even groot is als de hoogte van de balk. De inhoud van een tetra¨eder is

1

3× oppervlakte basis driehoek × hoogte. We kunnen nu drie gevallen onderscheiden:

1. Twee tetra¨eders hebben de hoogte van de balk (h) als hoogte en een basis oppervlakte van

1

(20)

2. Twee tetra¨eders hebben de breedte van de balk (b) als hoogte en een basis oppervlakte van

1

2× l × h (tetra¨eder 0 en 5 in Figuur 3.3)

3. Twee tetra¨eders hebben de lengte van de balk (l) als hoogte en een basis oppervlakte van

1

2× b × h (tetra¨eder 3 en 4 in Figuur 3.3)

Nu kunnen we de inhoud van de tetra¨eders per geval berekenen: 1. 13×1 2 l b × h = 1 6 l b h 2. 13×1 2 l h × b = 1 6 l h b 3. 13×1 2 b h × l = 1 6 b h l

Hieruit kunnen we dus concluderen dat elke tetra¨eder precies 16 van het volume van de balk heeft.

3.2

Object-geori¨

enteerde methode

De object-geori¨enteerde methode heeft de meshes, de threshold en de bounding box als functie parameters. Algoritme 3 geeft de pseudocode voor de object-geori¨enteerde methode.

Algoritme 3 Object-geori¨enteerd algoritme Input: lijst van opeenvolgende meshes

Output: volumes tussen de opeenvolgende meshes

for 2 opeenvolgende meshes do

verwijder alle vertices die te dichtbij de andere mesh liggen verwijder kleine, losliggende delen

stitch boven elkaar liggende delen aan elkaar vul de overgebleven gaten op

bereken het volume van de gegenereerde mesh end for

3.2.1

Verwijderen van vertices die te dichtbij liggen

De eerste stap van het algoritme is het verwijderen van vertices die te dichtbij te andere mesh liggen. Vertices waarvan de afstand kleiner is dan de meegegeven threshold worden verwijderd. Algoritme 4 weergeeft de pseudocode voor deze stap.

Algoritme 4 Vertex verwijder stap Input: 2 opeenvolgende meshes

Output: 2 meshes met een verticale afstand tussen elkaar van minimaal 1 threshold

for elke vertex in een van de meshes do

if afstand naar andere mesh < threshold then verwijder vertex

end if end for

3.2.2

Kleine, losliggende delen verwijderen

Deze stap maakt gebruik van de ingebouwde functie bpy.ops.mesh.separate(type=”LOOSE”) in Blender. Het geselecteerde object wordt gesplitst in alle losse delen van het object. Algoritme 5 is de pseudocode voor deze stap.

(21)

Algoritme 5 Verwijderen van kleine, losse delen

Input: 2 meshes met een verticale afstand tussen elkaar van minimaal 1 threshold Output: 2 meshes waarvan elk los deel meer dan 1000 vertices heeft

for beide meshes do

splits de mesh in losse delen

for elk los deel do

if mesh heeft minder dan 1000 vertices then verwijder de mesh

end if end for

join de overgebleven delen weer samen tot ´e´en mesh end for

3.2.3

Meshes aan elkaar stitchen

Het aan elkaar stitchen van de meshes is meest complexe stap van dit algoritme. Allereerst worden de losse vlakken, kanten en vertices verwijderd uit de mesh. Dit zijn vlakken, kanten en vertices die niet aan andere vlakken grenzen. Dan worden er vertex eilanden gemaakt. Een vertex eiland bestaat uit vertices die op de rand van een los deel liggen. Er worden paren gemaakt van vertex eilanden die boven elkaar liggen. Dit gebeurt op basis van de kleinste afstand tussen de gemiddelde (x, y)-co¨ordinaten van de eilanden. Voordat het stitching algoritme wordt toegepast, worden loops uit de vertex eilanden gehaald en worden de vertices in de eilanden gesorteerd. Het sorteren van de vertices wordt gedaan door een willekeurige vertex in het eiland te kiezen en van daaruit de kanten op de rand af te lopen, totdat de start-vertex weer wordt bezocht. Deze procedure verloopt alleen correct als er geen loops in het eiland aanwezig zijn. Een voorbeeld van een vertex eiland en een loop wordt in Figuur 3.4 weergegeven.

(a) Vertex eiland. (b) Een loop in een vertex eiland.

Figuur 3.4: Voorbeeld van een vertex eiland en een loop in een vertex eiland. Om de loop te visualiseren zijn de rand-kanten ook getekend.

Op de gesorteerde vertex eilanden wordt vervolgens een variant van het JASNOM algoritme toegepast [2]. Deze bestaat uit drie stappen die eerder besproken zijn in Sectie 2.5. De eerste stap geeft prioriteit aan verticale kanten. Alleen als de lengte van een horizontale kant meer dan drie keer zo klein is als de lengte van de verticale kant wordt de horizontale kant gebruikt. Een kant wordt als horizontaal geclassificeerd als het voldoet aan de volgende twee eisen:

• de absolute waarde van de hoek van de kant met de richting recht omhoog (0, 0, 1) is groter dan 0.6 radialen (∼34◦)

• de absolute waarde van de hoek van de kant met de richting recht omlaag (0, 0, -1) is groter dan 0.6 radialen

(22)

De derde stap is ook aangepast ten opzichte van het originele algoritme. Eerst wordt er gekeken naar de nieuw gecre¨eerde kanten waar de nog niet verbonden vertex tussen ligt. Als deze beide dezelfde target vertex hebben, wordt de vertex hier ook aan verbonden. Alle vertices die dan nog niet verbonden zijn, worden opgedeeld in groepen waarbij de vertices in een groep aan elkaar verbonden zijn door middel van rand-kanten. Deze vertex groepen worden dan allemaal aan de vertex verbonden die het dichtst bij de gemiddelde locatie van de groep ligt. De twee verschillende gevallen worden weergegeven in Figuur 3.5. Als laatste worden de nieuw gecre¨eerde kanten en vlakken aan de mesh toegevoegd.

(a) Vertices liggen tussen twee kanten die dezelfde target vertex hebben.

(b) Een groep vertices die niet tussen twee kanten met dezelfde target vertex liggen.

Figuur 3.5: De twee gevallen voor de derde stap in het stitching algoritme. De oranje vertices zijn de vertices waarvandaan een kant moet worden gemaakt.

Algoritme 6 Stitchen van de meshes

Input: 2 meshes waarvan elk los deel meer dan 1000 vertices heeft Output: 1 aan elkaar gestitchte mesh

verwijder alle losse vlakken, kanten en vertices uit de mesh maak vertex eilanden en maak vertex eiland-paren

haal loops uit eilanden en sorteer de vertices in de eilanden

maak nieuwe kanten en vlakken gegenereerd door een aangepast JASNOM algoritme voeg alle nieuwe kanten en vlakken toe aan de mesh

3.2.4

Overgebleven gaten opvullen

Het JASNOM algoritme werkt correct op niet-overlappende meshes. De input die de stitching stap krijgt is echter niet altijd niet-overlappend. Het stitching algoritme werkt dan niet cor-rect waardoor er na het stitchen nog gaten in de mesh zitten. De overgebleven gaten worden gevuld met behulp van de functie bmesh.ops.contextual create(). Deze functie wordt op elk gat uitgevoerd. Hierna worden de nieuwe vlakken naar driehoeken omgezet met de functie bmesh.ops.triangulate().

3.2.5

Volume van de gegenereerde mesh berekenen

Het berekenen van het volume van de gegenereerde mesh wordt gedaan met behulp van de me-thode besproken in Sectie 2.4. Voor elk driehoek-vlak in de mesh wordt een tetra¨eder gegenereerd met de oorsprong als vierde hoekpunt. Het volume van de tetra¨eder wordt aan het totale volume toegevoegd. De absolute waarde van het totale volume is het daadwerkelijke volume van het object.

(23)

HOOFDSTUK 4

Experimenten en resultaten

4.1

Tijd experiment

Voor het tijd experiment wordt elke methode op drie verschillende inputs uitgevoerd die elk ´

e´en volume genereren. Voor de ruimte-geori¨enteerde methoden is het exporteren van een PLY-bestand uitgezet. Hierdoor is de output hetzelfde als het object-geori¨enteerde algoritme, namelijk een mesh getekend in Blender.

Voor elke methode werd Blender herstart om gelijke omstandigheden te cre¨eren. Alle input meshes werden vervolgens in Blender geladen en gecentreerd. Iedere methode is vijf keer uitge-voerd op een input. De gegenereerde objecten werden meteen verwijderd zodat bij elke uitvoering het aantal objecten in Blender gelijk was. De threshold is in alle experimenten op vijf centimeter gezet.

Om tetra¨eders met gelijke volumes te maken, worden de afmetingen van de balken vermenig-vuldigt met de kubieke wortel van zes. Dus de tetra¨eders krijgen de afmetingen: (√3

6 · lengte) × (√3

6 · breedte) × (√3

6 · hoogte) = 6 × (lengte × breedte × hoogte). Elke tetra¨eder heeft dan een volume van lengte × breedte × hoogte, net als de balken in het rechthoekige algoritme.

De drie inputs zijn:

• Input 1: origineel oppervlak (Bijlage A.1) en opgravingsvlak op 10 juli (Bijlage A.2) • Input 2: opgravingsvlak op 10 juli (Bijlage A.2) en op 15 juli (Bijlage A.3)

• Input 3: opgravingsvlak op 15 juli (Bijlage A.3) en op 19 juli (Bijlage A.4)

De zeven methoden die getest zijn:

• R5: rechthoekig ruimte-geori¨enteerd met balken van (5, 5, 5) centimeter • T9.1: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5√3

6, 5√3

6 5√3

6) centimeter

• T5: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5, 5, 5) centimeter • R2.5: rechthoekig ruimte-geori¨enteerd met balken van (5, 5, 2.5) centimeter

• T4.5: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5√36, 5√36, 2.5√36) centimeter

• T2.5: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5, 5, 2.5) centimeter • Object: object-geori¨enteerde methode

(24)

4.1.1

Tijd experiment: resultaten

De resultaten van het tijd experiment staan in Figuur 4.1. De derde input op het object-geori¨enteerde algoritme gaf een error waardoor er geen data van is. Alle uitvoertijden die dit experiment opleverden zijn terug te vinden in Bijlage C.

De standaard deviatie is voor dit experiment berekend als de populatie standaard deviatie en wordt beschreven door de volgende formule:

σ = r

1 NΣ

N

i=1(xi− µ)2, waar N = aantal waarden in de set, xi= i-de waarde van de set en

µ = de gemiddelde waarde van de set.

Figuur 4.1: De gemiddelde uitvoertijden per input per methode. Het zijn gemiddelden van vijf uitvoeringen, de standaard afwijking is ook aangegeven.

4.2

Nauwkeurigheid experiment

Voor het nauwkeurigheid experiment worden de methoden uitgevoerd op verschillende vormen waarvan het volume van bekend is. De berekende volumes van de methoden kunnen dan verge-leken worden met de exacte volumes van de vormen. De exacte volumes zijn tot op de kubieke centimeter nauwkeurig. De vormen zijn twee meshes die boven elkaar geplaatst zijn. Het expe-riment is uitgevoerd op 24 verschillende vormen, zie Bijlage B.

Het object-geori¨enteerde algoritme moest worden aangepast voor dit experiment. Het verwij-deren van kleine, losse stukken moest worden uitgezet omdat het alle vormen van dit experiment als kleine, losse stukken ziet en dus alles verwijderd. Ook het verwijderen van losse vlakken, kanten en vertices moet worden uitgezet. Sommige vormen bestaan uit ´e´en vlak en worden door deze functie verwijderd. Als laatste is het verwijderen van vertices die te dichtbij liggen veran-derd. Vertices die op een hoek van een vorm boven elkaar liggen, raken elkaar soms niet met de ray cast() functie. Hierdoor worden deze vertices verwijderd omdat ze de boven- of onderkant van de vorm niet raken en dus een oneindige afstand naar de boven- of onderkant hebben. Dit wordt opgelost door het punt waar de ray vandaan wordt geschoten iets naar de oorsprong (0, 0, 0) te verplaatsen. Voor dit experiment werkt dat omdat de vormen allemaal in de oorsprong liggen als de methoden worden uitgevoerd op de vormen.

Voor dit experiment is een script geschreven die alle 24 vormen in Blender laadt en ´e´en me-thode op alle 24 vormen uitvoert. Het script is dus voor iedere meme-thode ´e´en keer uitgevoerd. De

(25)

threshold is op vijf centimeter gezet voor alle experimenten.

De zeven methoden die getest zijn:

• R15: rechthoekig ruimte-geori¨enteerd met balken van (15, 15, 15) centimeter • T27.3: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (15√3

6, 15√3

6, 15√3

6) centimeter

• T15: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (15, 15, 15) centimeter • R5: rechthoekig ruimte-geori¨enteerd met balken van (5, 5, 5) centimeter • T9.1: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5√3

6, 5√3

6, 5√3

6) centimeter

• T5: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5, 5, 5) centimeter • Object: object-geori¨enteerde methode

4.2.1

Nauwkeurigheid experiment: resultaten

De resultaten zijn gemeten in afwijking ten opzichte van het exacte volume van de vorm. De afwijking is zowel in kubieke centimeters als in procenten gemeten. In Figuur 4.2 staat de gemiddelde absolute afwijking in kubieke centimeters per methode en in Figuur 4.3 de gemiddelde absolute afwijking in procenten per methode.

Een opvallend resultaat is dat de object-geori¨enteerde methode de twee halve torussen boven elkaar niet goed benadert, zie Bijlage D. Dit komt omdat het maken van vertex eiland paren niet goed gaat. De eilanden worden op basis van gemiddelde (x, y)-co¨ordinaten aan elkaar gekoppeld. Het probleem is dat alle vier de vertex eilanden dezelfde gemiddelde (x, y)-co¨ordinaten hebben. Daardoor worden de buitenste eilanden gepaard met de binnenste eilanden in plaats van met elkaar. Dit resultaat is niet meegenomen in de gemiddelde absolute afwijking van de object-geori¨enteerde methode.

(26)

Figuur 4.3: De absolute gemiddelde afwijking per methode in procenten.

4.3

Tweede nauwkeurigheid experiment

Het tweede nauwkeurigheid experiment wordt alleen uitgevoerd op de ruimte-geori¨enteerde me-thode met balken en op de ruimte-geori¨enteerde methode met tetra¨eders met dezelfde inhoud. De afmetingen zijn geen ronde getallen, maar komma getallen zodat de primitieven niet een geheel aantal keer in de bounding boxes passen. Dit experiment wordt uitgevoerd op zestien vormen. Dit zijn dezelfde vormen als in het eerste nauwkeurigheid experiment (zie Bijlage B), maar zon-der de kubus en rechthoek prisma vormen. Zo kunnen de ruimte-geori¨enteerde methoden met elkaar vergeleken worden op de relatief complexe vormen.

De zes methoden die getest zijn:

• R5.77: rechthoekig ruimte-geori¨enteerd met balken van (5.77, 5.77, 5.77) centimeter • T10.48: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5.77√3

6, 5.77√3

6, 5.77√3

6) cen-timeter

• R5.81: rechthoekig ruimte-geori¨enteerd met balken van (5.81, 5.81, 5.81) centimeter • T10.56: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5.81√36, 5.81√36, 5.81√36)

cen-timeter

• R5.86: rechthoekig ruimte-geori¨enteerd met balken van (5.86, 5.86, 5.86) centimeter • T10.65: tetra¨eder ruimte-geori¨enteerd met tetra¨eders van (5.86√3

6, 5.86√3

6, 5.86√3

6) cen-timeter

4.3.1

Tweede nauwkeurigheid experiment: resultaten

Alle resultaten van dit experiment zijn in Bijlage E. In Figuur 4.4 staat de gemiddelde absolute afwijking in kubieke centimeters per methode en in Figuur 4.5 de gemiddelde absolute afwijking in procenten per methode.

(27)

Figuur 4.4: De absolute gemiddelde afwijking per methode in kubieke centimeters in het tweede nauwkeurigheid experiment.

Figuur 4.5: De absolute gemiddelde afwijking per methode in procenten in het tweede nauwkeu-righeid experiment.

(28)
(29)

HOOFDSTUK 5

Discussie

In dit onderzoek is de volume berekening als een maatstaf genomen voor de nauwkeurigheid van het benaderen van een object. Echter, de nauwkeurigheid van de volume berekening is niet ´

e´en op ´e´en met de nauwkeurigheid van de benadering van een object. Een extreem voorbeeld is de benadering van een geroteerde balk met balk primitieven van dezelfde grootte. Met de huidige implementatie van het ruimte-geori¨enteerd algoritme zal ´e´en balk primitief het volume representeren en dus klopt de volume berekening precies. Het object is desondanks niet correct benadert omdat de benadering niet geroteerd is, zie Figuur 5.1a.

(a) (200, 200, 250) cm. (b) (25, 25, 250) cm. (c) (1, 1, 250) cm.

Figuur 5.1: Volume berekeningen geven bij relatief grote primitieven niet goed de nauwkeurigheid van benadering weer.

Een oplossing voor dit probleem is om kleine volume primitieven te gebruiken in verhouding tot het te benaderen object. Dan treedt dit effect minder op en geeft de volume berekening een betere indicatie van de nauwkeurigheid van de benadering, zie Figuur 5.1b en Figuur 5.1c. Daarom zijn voor het nauwkeurigheid experiment kleine primitieven gebruikt ten opzichte van de te benaderen vormen. Zo kunnen er uitspraken worden gedaan over de nauwkeurigheid van de benadering van het object op basis van de nauwkeurigheid van de volume berekening.

In Figuur 4.1 is te zien dat input 1 een langere uitvoertijd heeft voor de ruimte-geori¨enteerde methoden. Dit komt omdat de bounding box van input 1 groter is dan dan de bounding boxes van input 2 en 3 en dus moeten er meer primitieven doorlopen worden. Het valt op dat het tetra¨eder algoritme met gelijke volumes een iets langere uitvoertijd heeft dan het rechthoekige algoritme. Dit komt omdat het tekenen van de tetra¨eders meer berekeningen vereist dan het tekenen van balken. Specifieker, het bepalen van de vertices van een tetra¨eder met gegeven afmetingen en middelpunt is moeilijker dan het bepalen van de vertices van een balk met gegeven afmetingen en middelpunt. Het is ook te zien dat de uitvoertijd van de ruimte-geori¨enteerde methoden een lineair verband heeft met het aantal primitieven dat doorlopen moet worden. De uitvoertijd van de object-geori¨enteerde methode wordt be¨ınvloed door het aantal vertex eilanden dat gesorteerd en gestitched moet worden. Input 1 heeft veel minder vertex eilanden en daarom is de uitvoertijd

(30)

korter dan voor input 2.

In Figuur 4.2 en Figuur 4.3 is te zien dat de object-geori¨enteerde methode de vormen erg nauwkeurig benadert. De methode is echter niet robuust. Het kan complexe vormen niet aan en dus werkt het niet correct op complexe opgravingsvlakken. De implementatie van de object-geori¨enteerde methode in deze scriptie moet verbeterd om door archeologen gebruikt te kunnen worden.

In Figuur 4.2 en Figuur 4.3 is ook te zien dat de ruimte-geori¨enteerde methode met tetra¨eders (T15, T5) nauwkeuriger volumes benadert dan de ruimte-geori¨enteerde methode met balken met dezelfde afmetingen (R15, R5). Dit was te verwachten omdat een tetra¨eder zes keer in een balk met dezelfde lengte, breedte en hoogte past. Het produceert dus meer en kleinere volume primitieven en is daarom nauwkeuriger dan de rechthoekige methode. Het is ook te zien dat de ruimte-geori¨enteerde methode met tetra¨eders (T27.3, T9.1) ´e´en keer nauwkeuriger is en ´e´en keer minder nauwkeurig is dan de ruimte-geori¨enteerde methode met balken met hetzelfde volume (R15, R5). De R5 methode presteert veel beter dan de R15 methode, de gemiddelde afwijking van R5 is ongeveer zestien keer kleiner ten opzichte van R15. De gemiddelde afwijking van T9.1 ten opzichte van T27.3 en de gemiddelde afwijking van T5 ten opzichte van T15 zijn ongeveer vier keer kleiner. De R5 methode presteert dus opvallend goed. De reden hiervoor is waarschijnlijk een combinatie van de relatief veel simpele vormen die worden benadert en afmetingen die gunstig in de bounding boxes passen. Ook kan het zijn dat door het symmetrische karakter van balken, de delen van de benadering die buiten het vorm liggen opwegen tegen de lege ruimtes die in de vorm liggen, dit effect is te zien in Figuur 5.1b. Om de ruimte-geori¨enteerde methoden beter met elkaar te vergelijken is er een tweede nauwkeurigheid experiment uitgevoerd.

Het tweede nauwkeurigheid experiment laat een duidelijk verschil zien tussen de ruimte-geori¨enteerde methoden. In Figuur 4.4 en Figuur 4.5 is te zien dat de tetra¨eder methode ook nauwkeuriger is dan de rechthoekige methoden als primitieven met hetzelfde volume gebruikt worden. Dit experiment laat ook zien dat de nauwkeurigheid van de methoden afhangt van de manier waarop de gebruikte primitieven in de bounding box van de te benaderen vorm passen. Kleinere primitieven betekent niet altijd dat het volume nauwkeuriger benaderd wordt, zie R5.77, R.81 en T10.48, T10.56.

5.1

Conclusie

De ruimte-geori¨enteerde methode met tetra¨eder primitieven benadert een object over het alge-meen beter dan de ruimte-geori¨enteerde methoden met balk primitieven. De uitvoertijd van deze methode is wel langer dan de rechthoekige methode. Omdat nauwkeurigheid voor de toepassing van deze methoden zwaarder weegt dan uitvoertijd, is de methode met tetra¨eders de effectiefste methode om tussen verschillende afzonderlijke opgravingsvlakken een 3D model te maken en het volume van het model te berekenen.

5.2

Vervolgonderzoek

Het nauwkeurigheid experiment toont de potentie van object-geori¨enteerde methoden aan. Voor complexe driehoek meshes werkt de object-geori¨enteerde methode die in deze scriptie is beschre-ven niet correct. Meer onderzoek naar object-geori¨enteerde methoden op complexe meshes kan wel een werkende methode opleveren. De nauwkeurige volume berekening kan dan op complexe opgravingsvlakken worden uitgevoerd. Een nadeel van de object-geori¨enteerde methode op ba-sis van oppervlakken is dat het gegenereerde object hol is. Dwarsdoorsneden leveren niet het gewenste resultaat op voor archeologen. Dit is een reden om object-geori¨enteerde methoden op basis van volume te onderzoeken. Een andere mogelijkheid is om te onderzoeken op welke manier een hol object gevuld kan worden, zodat dwarsdoorsneden wel gevuld zijn.

Ook kan het interessant zijn om meer onderzoek te doen naar de ruimte-geori¨enteerde me-thoden. Bijvoorbeeld naar de voorwaarden waar een volume primitief aan moet voldoen om te bepalen of het tussen twee meshes in ligt. Daarnaast kan er ook ge¨experimenteerd worden met andere volume primitieven, bijvoorbeeld piramiden.

(31)

Het parallelliseren van de ruimte-geori¨enteerde methoden zou de uitvoertijd kunnen redu-ceren. Het loopen over alle volume primitieven kan parallel gedaan worden omdat er geen afhankelijkheid is tussen de primitieven en de volgorde van uitvoering niet uitmaakt. Grafische kaarten en clusters kunnen zo ge¨exploiteerd worden door de methoden.

(32)
(33)

Bibliografie

[1] Blender 2.82a Python API. Blender 2.82a Python API Documentation. 2020. url: https: //docs.blender.org/api/current/index.html (bezocht op 10-04-2020).

[2] Susana Brandao, Joao P Costeira en Manuela Veloso. “Effortless scanning of 3D object mo-dels by boundary aligning and stitching”. In: 2014 International Conference on Computer Vision Theory and Applications (VISAPP). Deel 1. IEEE. 2014, p. 667–674.

[3] John Burkardt. MEDIT A File Format for Finite Element Meshes. 2014. url: https : //people.sc.fsu.edu/~jburkardt/data/medit/medit.html (bezocht op 29-04-2020). [4] Lydia Cline. 3D Design Software for Beginners. 2015. url: https://pinshape.com/blog/

3d-design-software-for-beginners/ (bezocht op 29-04-2020).

[5] Dune 2.6.0 Documentation. Dune Core Modules (2.6.0). 2018. url: https://www.dune-project.org/doxygen/2.6.0/classDune_1_1GridFactoryInterface.html (bezocht op 16-04-2020).

[6] Maurizio Forte e.a. “3D archaeology at C¸ atalh¨oy¨uk”. In: International Journal of Heritage in the Digital Era 1.3 (2012), p. 351–378.

[7] F. Galeazzi e.a. “Web-based visualization for 3D data in archaeology: The ADS 3D viewer”. English. In: Journal of Archaeological Science: Reports 9.C (2016), p. 1–11. issn: 2352409X. [8] Nick Gilmour. A Basic Introduction toArchaeological Excavation. https://jigsawcambs. org / images / Introduction _ to _ Archaeological _ Excavation . pdf. Bezocht op 01-06-2020. 2016.

[9] Dominic Gray. Constructive Solid Geometry. 2014. url: https : / / slideplayer . com / slide/781248/ (bezocht op 02-06-2020).

[10] Mark D Groover. “Defining Historical Material Trends and Consumption Groups through Artifact Density”. In: Southeastern Archaeology 33.1 (2014), p. 55–67.

[11] Highend3D. Mug 3D Model. 2019. url: https://www.highend3d.com/3d- model/mug-3d-model-105490 (bezocht op 02-06-2020).

[12] Undine Lieberwirth. “3D GIS voxel-based model building in archaeology”. In: Layers of Perception. Proceedings of the 35th International Conference on Computer Applications and Quantitative Methods in Archaeology (CAA), Berlin, Germany, April 2–6. Deel 10. 2008, p. 8.

[13] L.-M Losier, J Pouliot en M Fortin. “3D geometrical modeling of excavation units at the archaeological site of Tell ‘Acharneh (Syria)”. eng. In: Journal of Archaeological Science 34.2 (2007), p. 272–288. issn: 0305-4403.

[14] Illustrative Mathematics. Volume of a Special Pyramid. 2016. url: https : / / tasks . illustrativemathematics.org/content- standards/HSG/GMD/A/1/tasks/1920 (be-zocht op 27-05-2020).

[15] Patrick Min. Converting 3D models for building in minecraft using [binvox] and [viewvox]. 2018. url: https://www.patrickmin.com/minecraft/ (bezocht op 02-06-2020).

(34)

[16] Gemma Stewart. Archaeological Recording Practices: Guidelines for archaeological exca-vation and recording techniques. http://www.isgap.org.uk/sites/default/files/ downloads/Archaeology%20Recording_Final.pdf. Bezocht op 01-06-2020. 2013. [17] Dan Sunday. Inclusion of a Point in a Polygon. 2012. url: http://geomalgorithms.com/

a03-_inclusion.html (bezocht op 14-05-2020).

[18] Cha Zhang en Tsuhan Chen. “Efficient feature extraction for 2D/3D objects in mesh re-presentation”. In: Proceedings 2001 International Conference on Image Processing (Cat. No. 01CH37205). Deel 3. IEEE. 2001, p. 935–938.

(35)

BIJLAGE A

Input meshes tijd experiment

De input meshes voor de tijd vergelijking zijn opgravingsvlakken van de Halos opgraving in Griekenland. Het zijn wavefront bestanden met daarin een lijst van vertices, textuur co¨ordinaten, vertex normalen en vlakken.

A.1

Origineel oppervlak

Bestandsgrootte: 1.1 MB. Vertices: 7921. Vlakken: 15488.

Figuur A.1: Het originele oppervlak gerepresenteerd als een simpel, recht vlak.

A.2

Opgravingsvlak op 10 juli

Grootte: 69.5 MB. Vertices: 307765. Vlakken: 613402.

(36)

A.3

Opgravingsvlak op 15 juli

Grootte: 81.0 MB. Vertices: 356888. Vlakken: 711686.

Figuur A.3: Opgravingsvlak van de Halos opgraving op 15 juli 2019.

A.4

Opgravingsvlak op 19 juli

Grootte: 149.9 MB. Vertices: 649550. Vlakken: 1296217.

(37)

BIJLAGE B

Input meshes nauwkeurigheid experiment

B.1

Eerste laag van 12 objecten

Figuur B.1: Bovenaanzicht van de eerste 12 objecten voor de nauwkeurigheid experimenten. Elk object bestaat uit twee meshes die 2.5 meter boven elkaar liggen.

Figuur B.2: Vooraanzicht van de eerste 12 objecten voor de nauwkeurigheid experimenten. Elk object bestaat uit twee meshes die 2.5 meter boven elkaar liggen.

(38)

B.2

Tweede laag van 12 objecten

Figuur B.3: Bovenaanzicht van de tweede 12 objecten voor de nauwkeurigheid experimenten. Elk object bestaat uit twee meshes die 2.5 meter boven elkaar liggen.

Figuur B.4: Vooraanzicht van de tweede 12 objecten voor de nauwkeurigheid experimenten. Elk object bestaat uit twee meshes die 2.5 meter boven elkaar liggen.

(39)

BIJLAGE C

Data: Tijd experiment

C.1

Uitvoertijd in seconden

Input R51 T9.12 T53 R2.54 T4.55 T2.56 Object Input 1.1 15.1401 18.3683 95.9379 28.6175 32.4166 182.8635 37.8238 Input 1.2 14.9551 18.2629 93.2627 27.5356 32.5701 183.4808 38.0274 Input 1.3 15.0667 18.4839 93.6441 27.2561 32.5846 183.9650 36.4930 Input 1.4 15.1289 18.1425 94.1221 27.0973 32.5735 183.8214 36.9033 Input 1.5 15.2751 18.3405 94.1352 27.6160 32.6565 182.2879 37.9690 Input 2.1 10.8800 14.2755 65.9689 17.2919 22.9585 122.0240 158.5810 Input 2.2 10.5107 15.2468 64.0256 17.2623 24.0104 122.1485 157.2072 Input 2.3 9.3563 13.5249 62.7742 16.1702 24.5496 123.4127 152.5211 Input 2.4 9.2992 13.5932 64.2136 16.1916 22.9429 121.2070 148.1547 Input 2.5 9.2993 14.4706 62.7976 16.2406 22.8551 121.8826 150.1197 Input 3.1 10.2176 14.1327 65.9235 16.8690 22.8587 120.1807 error Input 3.2 9.4319 13.8517 63.7514 16.1613 23.9481 118.8970 error Input 3.3 9.3683 13.1914 61.9559 16.1300 23.8358 119.4581 error Input 3.4 9.5485 13.1369 62.3558 16.1288 22.8011 118.2998 error Input 3.5 9.3995 13.1517 61.6224 16.1278 22.7503 118.3609 error GEM Input 1 15.1132 18.3196 94.2204 27.6245 32.5603 183.2837 37.4433 GEM Input 2 9.8691 14.2222 63.9560 16.6313 23.4633 122.1350 153.3167 GEM Input 3 9.5932 13.4929 63.1218 16.2834 23.2393 119.0393 -STDDEV Input 1 0.10425 0.11347 0.91826 0.53060 0.07844 0.62615 0.62562 STDDEV Input 2 0.68498 0.63186 1.17145 0.52785 0.68919 0.71693 4.00871 STDDEV Input 3 0.31812 0.41765 1.57735 0.29308 0.53558 0.70789

-1R5=Rechthoekig ruimte-geori¨enteerd algoritme (5, 5, 5),

2T9.1=Tetra¨eder ruimte-geori¨enteerd algoritme (5√3

6, 5√36 5√36),

3T5=Tetra¨eder ruimte-geori¨enteerd algoritme (5, 5, 5),

4R2.5=Rechthoekig ruimte-geori¨enteerd algoritme (5, 5, 2.5),

5T4.5=Tetra¨eder ruimte-geori¨enteerd algoritme (5√36, 5√36 2.5√36),

6T2.5=Tetra¨eder ruimte-geori¨enteerd algoritme (5, 5, 2.5)

Tabel C.1: De uitvoertijd in seconden van de verschillende methoden op verschillende inputs (GEM = gemiddelde, STDDEV = standaard deviatie).

(40)
(41)

BIJLAGE D

Data: Nauwkeurigheid experiment

D.1

Nauwkeurigheid in kubieke centimeters

Input R151 T27.32 T153 R54 T9.15 T56 Object Kubus -303625.0 -219250.0 -11125.0 0.0 43000.0 0.0 0.0 Kubus 30◦ 270125.0 -158500.0 2937.5 0.0 49875.0 0.0 11.0 Kubus 45◦ 384875.0 -583750.0 -10000.0 -25000.0 85750.0 -22916.7 6.4 Kubus 60◦ 270125.0 158500.0 2937.5 0.0 49875.0 0.0 7.3 Rechthoek prisma 729125.0 158500.0 -16750.0 0.0 136000.0 0.0 0.1 Rechthoek prisma 30◦ 270125.0 -188875.0 2937.5 6250.0 46500.0 -3125.0 -2.0 Rechthoek prisma 45◦ 327500.0 -523000.0 220625.0 -12500.0 -14000.0 60416.7 1.4 Rechthoek prisma 60◦ 270125.0 -188875.0 2937.5 6250.0 46500.0 -3125.0 -2.0 Driehoek prisma 98000.0 -188875.0 2375.0 0.0 43000.0 0.0 0.0 Driehoek prisma 30◦ 212750.0 -67375.0 67062.5 -31250.0 29000.0 10416.7 -3.3 Driehoek prisma 45◦ 327500.0 54125.0 -26312.5 -25000.0 83750.0 6250.0 -2.8 Driehoek prisma 60◦ 212750.0 -97750.0 -46562.5 -6250.0 53250.0 0.0 0.6 Vijfhoek prisma 98778.1 -127346.9 2028.1 19528.1 43028.1 2861.4 0.2 Vijfhoek prisma 30◦ 156153.1 -157721.9 -14284.4 7028.1 64403.1 2861.4 1.5 Vijfhoek prisma 45◦ 557778.1 127346.9 -24409.4 75778.1 95153.1 -32555.2 6.4 Vijfhoek prisma 60◦ 213528.1 127346.9 13840.6 -5471.9 67903.1 778.1 0.1 Ster prisma -143121.5 -679746.5 11566.0 23628.5 59378.5 -7621.5 -0.2 Ster prisma 30◦ 201128.5 -163371.5 -246.5 -7621.5 54753.5 1753.5 1.9 Ster prisma 45◦ 717503.5 -588621.5 2003.5 42378.5 85128.5 36128.5 -3.6 Ster prisma 60◦ 201128.5 -163371.5 -246.5 -7621.5 54753.5 1753.5 0.3 Kegel -60876.8 182123.2 76373.2 20373.2 52123.2 10998.2 1.0 Cilinder 162357.8 -30017.2 76857.8 19482.8 104982.8 11149.5 1.1 Halve bol 3254.0 145004.0 96629.0 23004.0 53004.0 13670.7 -102.2 Torus -89200.4 464299.6 108799.6 38799.6 80799.6 -34492.1 4078621.9 GEM 261726.4 230987.2 34993.6 16800.7 62329.63 10956.8 6.8*

1R15= Rechthoekig ruimte-geori¨enteerd algoritme (15, 15, 15),

2T27.3=Tetra¨eder ruimte-geori¨enteerd algoritme (15√36, 15√36, 15√36),

3T15=Tetra¨eder ruimte-geori¨enteerd algoritme (15, 15, 15),

4R5= Rechthoekig ruimte-geori¨enteerd algoritme (5, 5, 5),

5T9.1=Tetra¨eder ruimte-geori¨enteerd algoritme (5√3

6, 5√36, 5√36),

6T5=Tetra¨eder ruimte-geori¨enteerd algoritme (5, 5, 5)

*Torus resultaat niet meegenomen

Tabel D.1: De afwijking van de volume berekening van de algoritmen met de exacte volumes in kubieke centimeters (GEM = gemiddelde).

(42)

D.2

Nauwkeurigheid in procenten

Input R151 T27.32 T153 R54 T9.15 T56 Object Kubus -3.036 -2.193 -0.111 0.000 0.430 0.000 0.000 Kubus 30◦ 2.701 -1.585 0.029 0.000 0.499 0.000 0.000 Kubus 45◦ 3.849 -5.838 -0.100 -0.250 0.858 -0.229 0.000 Kubus 60◦ 2.701 -1.585 0.029 0.000 0.499 0.000 0.000 Rechthoek prisma 7.291 -1.585 -0.168 0.000 1.360 0.000 0.000 Rechthoek prisma 30◦ 2.701 -1.889 0.029 0.063 0.465 -0.031 0.000 Rechthoek prisma 45◦ 3.275 -5.230 2.206 -0.125 -0.140 0.604 0.000 Rechthoek prisma 60◦ 2.701 -1.889 0.029 0.063 0.465 -0.031 0.000 Driehoek prisma 0.980 -1.889 0.024 0.000 0.430 0.000 0.000 Driehoek prisma 30◦ 2.128 -0.674 0.671 -0.313 0.290 0.104 0.000 Driehoek prisma 45◦ 3.275 0.541 -0.263 -0.250 0.838 0.063 0.000 Driehoek prisma 60◦ 2.128 -0.978 -0.466 -0.063 0.533 0.000 0.000 Vijfhoek prisma 0.988 -1.274 0.020 0.195 0.430 0.029 0.000 Vijfhoek prisma 30◦ 1.562 -1.577 -0.143 0.070 0.644 0.029 0.000 Vijfhoek prisma 45◦ 5.578 -1.274 -0.244 0.758 0.952 -0.326 0.000 Vijfhoek prisma 60◦ 2.135 -1.274 0.138 -0.055 0.679 0.008 0.000 Ster prisma -1.413 -6.713 0.114 0.233 0.586 -0.075 0.000 Ster prisma 30◦ 1.986 -1.613 -0.002 -0.075 0.541 0.017 0.000 Ster prisma 45◦ 7.086 -5.813 0.020 0.418 0.841 0.357 0.000 Ster prisma 60◦ 1.986 -1.613 -0.002 -0.075 0.541 0.017 0.000 Kegel -0.397 1.189 0.498 0.133 0.340 0.072 0.000 Cilinder 1.625 -0.300 0.769 0.195 1.051 0.112 0.000 Halve bol 0.020 0.909 0.606 0.144 0.332 0.086 -0.001 Torus -0.773 4.024 0.943 0.336 0.700 -0.299 35.352 GEM 2.596 2.227 0.318 0.159 0.602 0.077 <0.001*

1R15= Rechthoekig ruimte-geori¨enteerd algoritme (15, 15, 15),

2T27.3=Tetra¨eder ruimte-geori¨enteerd algoritme (15√3

6, 15√36, 15√36),

3T15=Tetra¨eder ruimte-geori¨enteerd algoritme (15, 15, 15),

4R5= Rechthoekig ruimte-geori¨enteerd algoritme (5, 5, 5),

5T9.1=Tetra¨eder ruimte-geori¨enteerd algoritme (5√36, 5√36, 5√36),

6T5=Tetra¨eder ruimte-geori¨enteerd algoritme (5, 5, 5)

*Torus resultaat niet meegenomen

Tabel D.2: De afwijking van de volume berekening van de algoritmen met de exacte volumes in procenten (GEM = gemiddelde).

(43)

BIJLAGE E

Data: Tweede nauwkeurigheid experiment

E.1

Nauwkeurigheid in kubieke centimeters

Input R5.771 T10.482 R5.813 T10.564 R5.865 T10.656 Driehoek prisma -21555.9 82946.5 35610.9 62872.0 149842.8 -92840.7 Driehoek prisma 30◦ -46336.8 92167.3 -23422.1 2662.2 132537.0 -69498.0 Driehoek prisma 45◦ -79378.0 23011.3 27177.6 -39308.1 71966.8 -45149.1 Driehoek prisma 60◦ -46336.8 101388.1 -6555.5 -6947.8 37355.2 -45752.8 Vijfhoek prisma -78599.9 56062.2 -14210.7 -7150.3 72744.9 -59463.3 Vijfhoek prisma 30◦ -78599.9 69893.4 -22644.0 16972.8 116009.3 -68719.9 Vijfhoek prisma 45◦ -103380.8 56062.2 -22644.0 63454.0 124662.2 15595.5 Vijfhoek prisma 60◦ -78599.9 69893.4 2655.8 17365.1 98703.5 -35315.7 Ster prisma -197489.2 136380.7 153804.7 -30550.9 144611.8 94505.5 Ster prisma 30◦ -73584.7 81055.9 -48594.2 19656.6 75388.6 -73320.4 Ster prisma 45◦ 33799.2 44172.6 10438.8 -43691.1 -2487.4 -144153.3 Ster prisma 60◦ 73584.7 81055.9 -48594.2 19656.6 75388.6 -73320.4 Kegel 3690.1 13103.0 57530.4 14579.4 -25922.9 27604.3 Cilinder -72395.2 76098.1 51027.0 5330.3 52990.9 -39373.7 Halve bol 14403.6 15748.3 72129.7 17803.6 -21045.7 25036.0 Torus 9164.1 -5051.2 8949.4 38367.8 52242.2 13404.8 GEM 63181.2 62755.6 37874.3 25398.0 78368.7 57690.8

1R5.77= Rechthoekig ruimte-geori¨enteerd algoritme (5.77, 5.77, 5.77),

2T5.77√3

6=Tetra¨eder ruimte-geori¨enteerd algoritme (5.77√36, 5.77√36, 5.77√36)

3R5.81= Rechthoekig ruimte-geori¨enteerd algoritme (5.81, 5.81, 5.81),

4T5.81√36=Tetra¨eder ruimte-geori¨enteerd algoritme (5.81√36, 5.81√36, 5.81√36)

5R5.86= Rechthoekig ruimte-geori¨enteerd algoritme (5.86, 5.86, 5.86),

6T5.86√3

6=Tetra¨eder ruimte-geori¨enteerd algoritme (5.86√36, 5.86√36, 5.86√36)

Tabel E.1: Afwijking van volume in kubieke centimeters van rechthoekige en tetra¨eder methoden met primitieven van dezelfde inhoud (GEM = gemiddelde).

(44)

E.2

Nauwkeurigheid in procenten

Input R5.771 T10.482 R5.813 T10.564 R5.865 T10.656 Driehoek prisma -0.216 0.830 0.356 0.629 1.498 -0.928 Driehoek prisma 30◦ -0.463 0.922 -0.234 0.027 1.325 -0.695 Driehoek prisma 45◦ -0.794 0.230 0.272 -0.393 0.720 -0.452 Driehoek prisma 60◦ -0.463 1.014 -0.066 -0.070 0.374 -0.458 Vijfhoek prisma -0.786 0.561 -0.142 -0.072 0.728 -0.595 Vijfhoek prisma 30◦ -0.786 0.699 -0.227 0.170 1.160 -0.687 Vijfhoek prisma 45◦ -1.034 0.561 -0.227 0.635 1.247 0.156 Vijfhoek prisma 60◦ -0.786 0.699 0.027 0.174 0.987 -0.353 Ster prisma -1.950 1.347 1.519 -0.302 1.428 0.933 Ster prisma 30◦ -0.727 0.800 -0.480 0.194 0.745 -0.724 Ster prisma 45◦ 0.334 0.436 0.103 -0.432 -0.025 -1.424 Ster prisma 60◦ -0.727 0.800 -0.480 0.194 0.745 -0.724 Kegel 0.024 0.086 0.376 0.095 -0.169 0.180 Cilinder -0.725 0.762 0.511 0.053 0.530 -0.394 Halve bol 0.090 0.099 0.452 0.112 -0.132 0.157 Torus 0.079 -0.044 0.078 0.333 0.453 0.116 GEM 0.624 0.618 0.347 0.258 0.767 0.561

1R5.77= Rechthoekig ruimte-geori¨enteerd algoritme (5.77, 5.77, 5.77),

2T5.77√3

6=Tetra¨eder ruimte-geori¨enteerd algoritme (5.77√36, 5.77√36, 5.77√36)

3R5.81= Rechthoekig ruimte-geori¨enteerd algoritme (5.81, 5.81, 5.81),

4T5.81√36=Tetra¨eder ruimte-geori¨enteerd algoritme (5.81√36, 5.81√36, 5.81√36)

5R5.86= Rechthoekig ruimte-geori¨enteerd algoritme (5.86, 5.86, 5.86),

6T5.86√3

6=Tetra¨eder ruimte-geori¨enteerd algoritme (5.86√36, 5.86√36, 5.86√36)

Tabel E.2: Afwijking van volume in procenten van rechthoekige en tetra¨eder methoden met primitieven van dezelfde inhoud (GEM = gemiddelde).

Referenties

GERELATEERDE DOCUMENTEN

Hier word nie net die Trekkers beskryf wat op hulle tog deur die Vaalrivier in vloed getrek het nie, maar ook die visse en gang van die rivier tydens droogte.. 282

Milla se afguns maak plek vir onverbloemde woede wanneer sy vier jaar later, tydens ’n Witsand-vakansie, hoor hoe Agaat die verhaal van Hansie en Grietjie as

Het Zorginstituut verwacht dat een Zinnige Zorg traject op een of meer van deze aandoeningen impact kan hebben, die leidt tot betere zorg voor patiënten.. 4 Inventarisatie

Daarnaast raadpleegt hij zijn leidinggevende en/of verantwoordelijk specialist over de de materialen en middelen die nodig zijn bij oogst zodat in overleg de juiste keuze wordt

The inoculated explants of experiment 5 resulted in 10 green shoots after 2 weeks on 10 mg/l hygromycin selection, these shoots were slightly lighter coloured than the

Deze fase is bedoeld om een eerste indruk te krijgen van het gebruik van de nieuwe methodiek bij alle instellingen, of medewerkers worden getraind, of het nut van het handboek

Door rationale tetra¨ eders op deze manier te klassificeren kunnen we spreken van n-parameter tetra¨ eders: de familie tetra¨ eders waarin iedere tetra¨ eder hoogstens n zijden

Bij de advisering over de toe te dienen hoeveelheid meststof- kali zou dan rekening gehouden moeten worden met de bouwvoordikte, door het kaligehalte van de grond bij dikke