Faculteit Ingenieurswetenschappen Vakgroep Telecommunicatie en Informatieverwerking Onderzoeksgroep Image Processing and Interpretation
3D-beeldverwerking Analyse van balpenlijnen op papier
door Eva De Leersnyder
Promotor: Prof. Dr. Ir. W. Philips (UGent) Copromotor: Dr. J. De Kinder (NICC) Thesisbegeleiders: Dr. Ir. P. De Smet (UGent / NICC), Ir. H. Quang Luong (UGent)
Afstudeerwerk ingediend tot het behalen van de academische graad van Burgerlijk Elektrotechnisch Ingenieur
Academiejaar 2005–2006
Faculteit Ingenieurswetenschappen Vakgroep Telecommunicatie en Informatieverwerking Onderzoeksgroep Image Processing and Interpretation
3D-beeldverwerking Analyse van balpenlijnen op papier
door Eva De Leersnyder
Promotor: Prof. Dr. Ir. W. Philips (UGent) Copromotor: Dr. J. De Kinder (NICC) Thesisbegeleiders: Dr. Ir. P. De Smet (UGent / NICC), Ir. H. Quang Luong (UGent)
Afstudeerwerk ingediend tot het behalen van de academische graad van Burgerlijk Elektrotechnisch Ingenieur
Academiejaar 2005–2006
Woord vooraf
Televisiekijkend Vlaanderen wordt te pas en te onpas om de oren geslagen met ‘Crime Scene Investigators’. Mannen en vrouwen in witte labojassen lopen rond in hypermoderne gebouwen waar net een binnenhuisarchitect met specialisatie sfeerverlichting is langsgeweest. De wetenschappers vinden op de plaats van de misdaad een minuscuul haartje of analyseren een stofje en zestig minuten later is de dader gevat. Natuurlijk wordt de waarheid in zo een serie meermaals geweld aangedaan, maar over ´e´en ding valt niet te twisten, wetenschap en techniek maken meer en meer deel uit van de criminaliteitsbestrijding. Waar criminologie en wetenschap elkaar vinden, daar is het domein van de criminalistiek. Mijn interesse in criminalistiek verklaart deze keuze als thesisonderwerp. Deze interesse vloeit echter niet voort uit de blitse tv-series, maar een sterk verlangen om wetenschap en technologie toe te passen in een maatschappelijk relevante context.
Graag had ik nog de volgende mensen bedankt die bijgedragen hebben tot het welslagen van deze thesis: Wilfried Philips en Jan De Kinder als respectievelijk de promotor en de copromotor van deze thesis. Patrick De Smet, mijn thesisbegeleider bij het NICC die daarnaast ook ontelbare uren balpenlijnen op papier heeft ingescand en mij zo vele ritten naar Brussel bespaard heeft. Hiep Quang Luong, mijn thesisbegeleider bij TELIN, die mij de geheimen van de beeldverwerking geopenbaard heeft en op inspiratieloze momenten inspireerde. Werner Goeman, voor zijn raad in verband met ridgedetectie. De doctoraatstudenten in TELIN voor hun bijstand in verband met TELIN-computers. Philippe Serbruyns, de systeembeheerder van TELIN, die nu eindelijk verlost is van mijn nukkige USB-stick. De anderen die ik hier niet allemaal kan opnoemen, maar mij bijgestaan hebben tijdens mijn studies en/of afstudeerwerk. In het bijzonder vermeld ik mijn fotonicaklasgenoten voor de aangename masterjaren.
Eva De Leersnyder Gent, juni 2006
i
De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen ervan te kopi¨eren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting uitdrukkelijk de bron te vermelden bij het aanhalen van resultaten uit deze scriptie. The author gives the permission to use this thesis for consultation and to copy parts of it for personal use. Every other use is subject to the copyright laws, more specifically the source must be extensively specified when using from this thesis. Gent, juni 2006 De auteur
Eva De Leersnyder
iii
3D-beeldverwerking: Analyse van balpenlijnen op papier door Eva De Leersnyder Afstudeerwerk ingediend tot het behalen van de academische graad van burgerlijk elektrotechnisch ingenieur Academiejaar 2005-2006 Universiteit Gent Faculteit Ingenieurswetenschappen Promotor: Prof. Dr. Ir. W. Philips (UGent) Co-promotor: Dr. J. De Kinder (NICC) Thesisbegeleiders: Dr. Ir. P. De Smet (NICC / UGent), Ir. H. Quang Luong (UGent)
Samenvatting Gebaseerd op voorgaande onderzoeken die handelen over de schrijfvolgorde van twee kruisende lijnen in het kader van schriftvervalsing, zet dit onderzoek het werk van zijn voorgangers verder en boort het nieuwe mogelijkheden aan door verdere beeldverwerking van het profiel van balpenlijnen op papier. De balpenlijnen worden semi-automatisch gedetecteerd met behulp van een lijndetector. De schrijfvolgorde van de kruisende lijnen wordt bestudeerd alsook de vorm van een balpenlijn op zich. Dit laatste gebeurt door de lijnen zowel in langsdoorsnede als dwarsdoorsnede te beschouwen. Zo wordt informatie bekomen omtrent onder andere de hoek waaronder de balpen gehouden werd tijdens het schrijven en de links- of rechtshandigheid van de schrijver. Het vroegere topografische onderzoek wordt dus voortgezet en verbreed.
Trefwoorden Documentonderzoek, kruisende lijnen, balpenlijnen, handschrift, profilometrie
Inhoudsopgave 1 Inleiding 1.1 Probleem en doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Situering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Inhoud hoofdstukken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Handschriftvergelijking 2.1 Inspectietechnieken . . . . . . . . . . . . . . . . . . . 2.1.1 2D-beeldvorming . . . . . . . . . . . . . . . . 2.1.2 Profilometrie . . . . . . . . . . . . . . . . . . 2.1.3 2D-beeldvorming met dynamische informatie 2.1.4 Beeldvorming via speciale technieken: ESDA 2.1.5 Papier, inkt- en toneronderzoek . . . . . . . . 2.2 Vormen van handschriftvergelijking . . . . . . . . . . 2.2.1 Visuele handschriftanalyse . . . . . . . . . . . 2.2.2 Offline handschriftvergelijking . . . . . . . . . 2.2.3 Online handschriftvergelijking . . . . . . . . . 2.2.4 Profielstudie . . . . . . . . . . . . . . . . . . 2.3 Vergelijkingsmethodes . . . . . . . . . . . . . . . . . 2.3.1 Op basis van afstandsmethodes . . . . . . . . 2.3.2 Op basis van Hidden Markov modellen . . . . 2.3.3 Op basis van neurale netwerken . . . . . . . . 2.3.4 Beoordeling van de gebruikte methodes . . . 3 Acquisitie van het 3D-beeld 3.1 Meettoestel en techniek . . 3.1.1 Meettoestel . . . . . 3.1.2 Scannen . . . . . . . 3.2 Structuur van papier . . . . 3.3 Schrijfmateriaal en plotter . 4 Beeldverwerkingstechnieken 4.1 Ruwe dataverwerking . . . . 4.1.1 .SUR-formaat . . . . 4.1.2 Mediaanfilter . . . . 4.1.3 Referentievlak . . . 4.1.4 Spatiale reductie . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
iv
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . .
. . . . .
. . . . .
1 1 3 3
. . . . . . . . . . . . . . . .
5 5 5 6 7 8 8 9 9 10 11 11 13 13 14 14 15
. . . . .
16 16 16 17 18 19
. . . . .
21 21 21 22 22 24
Inhoudsopgave
4.2
4.3
v
Het extraheren van lijnen . . . . . . 4.2.1 Ridgedetectie . . . . . . . . . 4.2.2 Reduceren tot pixelbreedte 1 Kenmerkenextractie . . . . . . . . . 4.3.1 Dwarsdoorsnede . . . . . . . 4.3.2 Langsdoorsnede . . . . . . . . 4.3.3 Kruispunten . . . . . . . . . .
5 Resultaten 5.1 Scansets . . . . . . . . . . . . . 5.1.1 Papier . . . . . . . . . . 5.1.2 Kruisingen . . . . . . . 5.1.3 Upstroke of downstroke 5.2 Ridgedetectie . . . . . . . . . . 5.3 Kruisende lijnen . . . . . . . . 5.4 Linkshandig of rechtshandig . . 5.5 Upstrokes en downstrokes . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . .
25 25 29 31 31 33 33
. . . . . . . .
36 36 36 37 37 37 41 44 46
6 Conclusie en toekomstperspectieven
48
A Graphical User Interface (GUI) in Matlab
50
B Lijst van scans B.1 Lijst van afkortingen bij de specificaties van B.2 Papier . . . . . . . . . . . . . . . . . . . . . B.3 Kruisingen . . . . . . . . . . . . . . . . . . . B.3.1 papierset1-* . . . . . . . . . . . . . . B.3.2 papierset2-* . . . . . . . . . . . . . . B.3.3 papiergew2hoek1-* . . . . . . . . . . B.3.4 papiergew2hoek2-* . . . . . . . . . . B.3.5 angle*-* . . . . . . . . . . . . . . . . B.3.6 angles* . . . . . . . . . . . . . . . . B.3.7 diffangles* . . . . . . . . . . . . . . . B.4 Upstroke of downstroke . . . . . . . . . . . B.4.1 Downstroke . . . . . . . . . . . . . . B.4.2 Upstroke . . . . . . . . . . . . . . .
de scans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
52 52 53 53 53 53 54 54 54 54 55 55 55 55
C Bemonsteringsafstand
56
D Toelichtingen bij de broncode D.1 surf2raw.m . . . . . . . . . . D.2 verwerking.m . . . . . . . . . D.2.1 Globaal . . . . . . . . D.2.2 GUI test gf.m . . . . . D.3 mask en analyse.m . . . . . . D.4 mask en analyse2.m . . . . .
58 58 59 59 60 60 62
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Inhoudsopgave
D.4.1 GUI dwarsprofiel2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.4.2 GUI langsprofiel2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.4.3 GUI kruispunten2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliografie
vi
62 63 63 65
Hoofdstuk 1
Inleiding 1.1
Probleem en doelstelling
Het aantal wetenschappelijke papers over handschriftvergelijking verraadt de sterke interesse van onder meer het bankwezen en justitie voor dergelijke vergelijkingstechnieken, maar nog geen enkele formele methode maakt gebruik van de 3D-informatie die een balpenlijn op papier bezit. Wanneer met een balpen een lijn getrokken wordt op papier, laat deze altijd een indruk na in het papier (zie figuur 1.1). Mogelijks vallen uit deze bijkomende diepte-informatie bijkomende handschriftkarakteristieken te halen. Het combineren van deze 3D-beelden met resultaten uit 2D-onderzoeken zou een accurater resultaat kunnen opleveren. We zullen dan ook in deze thesis 3D-beelden onderzoeken en 3D-kenmerken proberen te extraheren. Voorbeelden van vervalsingen zijn een later bijgevoegd cijfer nul op een cheque, een ondertekende nepdreigbrief of zogezegde historische documenten. We kunnen drie soorten vervalsingen onderscheiden: de willekeurige, de eenvoudige en de bekwame vervalsing. Een willekeurige vervalsing is een vervalsing waarbij de vervalser het juiste handschrift niet kent. Hij geeft zich uit als de echte persoon zonder een poging te doen om zijn handschrift te wijzigen in het juiste. Een eenvoudige vervalsing probeert de vorm van de handtekening of het type handschrift na te bootsen zonder echter tot in het kleinste detail te treden. Een bekwame vervalsing poogt het handschrift zeer goed te imiteren. Hiervoor is het grondig bestuderen van het handschrift op voorhand noodzakelijk. Het is vanzelfsprekend dat de ontmaskering van een bekwame vervalsing veel moeilijker is dan van een eenvoudige of een willekeurige vervalsing.
1
Hoofdstuk 1. Inleiding
2
Figuur 1.1: Links: 3D-beeld van een balpenlijn op papier. Rechts: 3D-beeld van twee kruisende balpenlijnen op papier. De rode gebieden duiden op de hoogste punten, de blauwe op de laagste. De getallen op de x-en y-assen duiden op het aantal bemonsteringspunten. De z-waarde moet vermenigvuldigd worden met 10nm.
In [1] bespreekt Morris de vijf basisprincipes van handschriftvergelijking, namelijk (naar vrije vertaling): 1. “Geen twee mensen schrijven exact gelijk.” 2. “Niemand schrijft een tweede keer exact gelijk.” 3. “De betekenis van elk kenmerk, als bewijs van identiteit of niet-identiteit, en het probleem van vergelijking, wordt er ´e´en van het beschouwen van de zeldzaamheid van een kenmerk, de relatieve snelheid en natuurlijkheid waarmee het geschreven is, alsook zijn overeenkomst en verschil met het kenmerk (de kenmerken) waarmee het kan vergeleken worden.” 4. “Een schrijver kan niet alle kenmerken imiteren van het handschrift van een andere terwijl hij met dezelfde relatieve snelheid en vaardigheidsniveau als dat van de persoon schrijft die hij probeert te imiteren.” 5. “Waar de schrijver succesvol zijn eigen handschriftgewoontes vermomt of waar hij de schrijfgewoontes van een ander imiteert terwijl hij geen eigen spoor achterlaat, is het virtueel onmogelijk de imitator te identificeren.” Voorgaande principes duiden erop dat zowel inter- (wat slaat op het eerste principe) als intrapersoonlijke (wat slaat op het tweede principe) vergelijking moet gebeuren. De intrapersoonlijke verschillen zijn de verschillen die bestaan tussen twee teksten van eenzelfde persoon. Interpersoonlijke verschillen zijn de verschillen die bestaan tussen het handschrift van twee verschillende personen. Voorts is het evident dat ook de omstandigheden waarin werd geschreven hun stempel uitoefenen. Zieke of vermoeide personen of personen onder invloed van alcohol zullen op een andere manier gaan schrijven.
Hoofdstuk 1. Inleiding
3
Om het handschrift van twee personen te kunnen onderscheiden moeten we ons baseren op de kans dat een typisch persoonlijk kenmerk van het eerste handschrift bij de vervalser ontbreekt en de kans dat dit kenmerk bij de eerste schrijver niet opdaagt (wat slaat op het derde principe). Bij schriftvergelijking is het dus belangrijk, twee personen van elkaar te onderscheiden zonder twee keer het handschrift van ´e´enzelfde persoon als verschillend te beschouwen.
1.2
Situering
Deze thesis kwam tot stand door een samenwerking tussen de UGent en het Nationaal Instituut voor Criminalistiek en Criminologie (NICC)1 . Het NICC is gevestigd in Brussel en heeft als doel onafhankelijke analyses en wetenschappelijk forensisch onderzoek uit te voeren in opdracht van Justitie. Het beschikt ook over enkele nationale gegevensbanken zoals het DNA Index System (DIS) en de Nationale Ballistische Gegevensbank (NBG). Het NICC werd in 1991 opgericht en bestond toen uit vier secties: ballistiek, biologie, brand & explosie en drugs & toxicologie. Momenteel gebeuren er expertises in brandonderzoek, DNAonderzoek, drugsanalyses, illegale drugsfabricage, onderzoek van menselijke en dierlijke haren, onderzoek van kras-, indruk- en vormsporen, onderzoek van vezels en textiel, onderzoek van wapens en munitie, schotrestonderzoek, toxicologie, verfonderzoek. Zoals de aandachtige lezer bemerkte, is er momenteel geen sectie gewijd aan documentonderzoek. Het meettoestel dat in deze thesis gebruikt wordt is er ´e´en van de sectie ballistiek (onder leiding van Jan De Kinder, die tevens copromotor is van deze thesis), waarmee eveneens kogels en kogelhulzen worden opgemeten. Aan de universitaire zijde gebeurde het onderzoek binnen de vakgroep Telecommunicatie en Informatieverwerking (TELIN), meer bepaald binnen de onderzoeksgroep Image Processing and Interpretation (IPI) van de Faculteit Ingenieurswetenschappen aan de Universiteit Gent. Deze onderzoeksgroep verdiept zich in beeldverwerkingstechnieken en technieken voor beeldrestauratie en -compressie alsook in biomedische beeldvorming.
1.3
Inhoud hoofdstukken
Hoofdstuk 1 bespreekt het probleem en de doelstelling van deze thesis. In hoofdstuk 2 worden de bestaande technieken om handschriftvergelijking uit te voeren, besproken. Hoofdstuk 3 behandelt het aanmaken van voorbeelden en het scannen van de 3D-beelden. 1
http://nicc.fgov.be/
Hoofdstuk 1. Inleiding
4
Hoofdstuk 4 geeft toelichting bij de specifieke beeldverwerkingsalgoritmes die in deze thesis gebruikt worden. Hoofdstuk 5 bespreekt de bekomen resultaten na de beeldverwerking. In hoofdstuk 6 wordt een conclusie getrokken en worden de mogelijkheden besproken voor verdere studies omtrent balpenlijnen op papier. De bijlagen bevatten informatie over GUI’s in Matlab, de 3D-scans, de bemonsteringsafstand en de broncode.
Hoofdstuk 2
Handschriftvergelijking In dit tweede hoofdstuk halen we de methodes aan om balpenlijnen, kenmerken en papier te visualiseren en te typeren. Daarna plaatsen we de bestaande vormen van handschriftvergelijking op een rijtje. We bespreken achtereenvolgens visuele handschriftanalyse, offline en online handschriftverificatie en profielstudie. Vanuit deze laatste wordt de link gelegd naar deze thesis. De verschillende vergelijkingsmethodes en de wijze van beoordeling worden daarna besproken. Voor een uitgebreide bespreking van deze vergelijkingsmethodes verwijzen we naar [2].
2.1 2.1.1
Inspectietechnieken 2D-beeldvorming
Macro- en microscopie Macro- en microscopie is een courant visualisatiemiddel waarbij men op re¨ele grootte (macro) of na vergroting met een microscoop (micro) het testmateriaal gaat inspecteren. Het microscoop kan voorzien worden van een camera zodat het bekomen beeld doorgestuurd kan worden naar een computer voor verdere verwerking. 3D-microscopie Bij microscopie ontstaat dikwijls het probleem dat sommige stukken van het beeld scherp zijn (staan in het focuspunt) terwijl andere delen onscherp zijn. Deze delen staan uit het focuspunt omdat ze dieper of minder diep liggen dan de scherpe punten. Via 3D-microscopie [3] kan dit probleem verholpen worden. Hierbij zal men gebruik maken van een hele reeks beelden met verschillende focuspunten en zal men alle scherpe delen met behulp van beeldverwerking samenbrengen tot ´e´en scherp beeld.
5
Hoofdstuk 2. Handschriftvergelijking
2.1.2
6
Profilometrie
Laserprofilometrie Laserlicht wordt uitgestraald op het testobject. Dit licht zal weerkaatsen op het object en terug in de probe terechtkomen. Wanneer het testobject net op een hoogte staat die overeenkomt met het focuspunt van het laserlicht, zal de grootste hoeveelheid licht teruggekaatst worden (zie figuur 2.1). De probe en dus de laser wordt bewogen tot hij in deze positie staat. We kunnen nu de hoogte van het te meten punt bepalen. Dit wordt voor ieder bemonsteringspunt herhaald waardoor we een 3D-oppervlak bekomen.
Figuur 2.1: Als de probe op de ideale afstand van het testobject staat wordt het meeste licht gereflecteerd.
Witlichtprofilometrie Witlichtprofilometrie is gebaseerd op het principe van chromatische aberratie van lenzen [4]. Wit licht bestaat uit verschillende golflengtes. Elke golflengte heeft in ´e´enzelfde medium een andere brekingsindex (chromatische dispersie). Hierdoor zal een lens niet alle componenten van wit licht in dezelfde mate afbuigen. Dit verschijnsel heet chromatisch aberratie. Omwille van deze chromatische aberratie zal slechts ´e´en golflengte perfect gefocuseerd worden op het oppervlak (zie figuur 2.2). Van deze golflengte wordt het meeste licht gereflecteerd. Het spectrum van het gereflecteerde licht zal dus een piek vertonen voor deze golflengte. Via deze golflengte behorend bij de piek, kan de afstand van de probe tot het oppervlak berekend worden. Het is deze meettechniek die in de thesis gebruikt wordt voor het scannen van het papier (zie paragraaf 3.1.1). Deze oppervlakteprofilometrie op basis van chromatische aberratie van een lens is de geprefereerde meettechniek voor de gebruikte testobjecten van het NICC aangezien men hiermee, in tegenstelling tot andere meettechnieken, ook in staat is om angulaire oppervlakken op te meten. Met deze techniek kan, na het wijzigen van instellingen van het meettoestel, ook materiaal opgemeten worden waarvan de reflectiviteit zeer groot of betrekkelijk klein is. De verscheidenheid aan op te meten oppervlakken is belangrijk in de criminalistiek. Papier heeft een lage reflectiviteit. Kogels en kogelhulzen daarentegen hebben een grote reflectiviteit en angulaire oppervlakken.
Hoofdstuk 2. Handschriftvergelijking
7
Figuur 2.2: De focuspunten van de verschillende golflengtes vallen niet samen. Slechts ´e´en golflengte wordt perfect gefocuseerd op het oppervlak.
Deze meettechniek gaat echter wel ten koste van de resolutie in de hoogterichting die niet de hoogst haalbare is (voor details omtrent de resolutie verwijzen we naar paragraaf 3.1.1).
2.1.3
2D-beeldvorming met dynamische informatie
Met speciale schrijftabletten, touchscreens of schrijfpennen is het mogelijk om het handschrift tijdens het schrijven te registreren. Zo kan informatie omtrent druk, snelheid en versnelling opgemeten en doorgestuurd worden. Hierdoor verkrijgt men een veelheid aan informatie waaruit betere schriftkarakteristieken kunnen worden afgeleid. De schrijfpads hebben een LCD-scherm dat de geschreven lijnen weergeeft. Dit vergroot de gebruiksvriendelijkheid. Boven de LC’s ligt een laag glas die bedekt is aan de bovenzijde met een laag ITO (indium tin oxide). Daarbovenop ligt een laag plastiek die langs de onderzijde bedekt werd met een laag ITO. Wanneer druk wordt uitgeoefend op deze plastieken laag zal de eerste laag ITO plaatselijk contact maken met de tweede laag. Zo wordt een elektrische verbinding gemaakt en wordt een signaal dat de positie van de pen bevat, doorgestuurd. Soms zijn de schrijftabletten achterwege gelaten en is het de pen zelf die alles registreert [5]. Combinaties van pennen met speciale schrijfpads bestaan ook. De meeste van de pennen gebruiken accelometertechnologie, maar op dit moment winnen optische pennen terrein. Het is de relatieve beweging van de pentip ten opzichte van de pen die geregistreerd wordt. De bijkomende informatie bevat bijvoorbeeld de hoek die de pen maakt met het blad, het draaien van de pen, de druk die door de pen wordt uitgeoefend op het papier, de totale schrijftijd, de snelheid, de versnelling of de tijd dat de pen niet op het papier drukt (penup-time). Tijdens het schrijven wordt per tijdseenheid een punt opgeslagen. We krijgen dus een handschrift dat voorgesteld wordt door niet-equidistante punten. Om sommige kenmerken te kunnen bepalen is dit echter onpraktisch. Daarom wordt ook een representatie berekend met equidistante punten. Deze punten worden geschat aan de hand van Beziercurves op de opgemeten punten. We bekomen zo een 2D-beeld van de geschreven tekst met aanvullende informatie.
Hoofdstuk 2. Handschriftvergelijking
2.1.4
8
Beeldvorming via speciale technieken: ESDA
Wanneer twee bladen papier op elkaar liggen en op het bovenste een lijn getrokken wordt, zal ook in het onderste blad de lijn terug te vinden zijn omdat het papier plaatselijk werd samengedrukt. Een apparaat om deze doorgedrukte tekst beter zichtbaar te maken is een Electrostatic Detection Apparatus (ESDA) (zie figuur 2.3) [6]. Het papier wordt hierbij bedekt met een dunne kunststoffolie. Het papier met folie wordt tegen een bronzen plaat vacuum gezogen zodat de folie zeer nauw gaat aansluiten tegen het papier. Daarna wordt de folie elektrostatisch geladen. Het geheel wordt schuin gehouden en overgoten met een mengsel van glaskorrels en tonerpoeder. Dit tonerpoeder zal op de plaatsen waar de vezels beschadigd werden, blijven vasthangen zodanig dat de oorspronkelijke tekst leesbaar wordt.
2.1.5
Papier, inkt- en toneronderzoek
Papier, inkt en toner kunnen chemisch onderzocht worden op hun samenstelling. Bij de productie van papier kan men bijvoorbeeld kleurstoffen of stoffen die het papier glanzender maken hebben toegevoegd. Sommige fabricanten voegen UV-additieven toe om het papier witter te laten lijken. Daardoor kunnen onder UV-belichting twee witte bladen papier een verschillende kleur hebben. Via luminescentietechnieken met infrarood licht of spectrale decompositie kunnen inktsoorten onderscheiden worden [7]. Aan de hand van de chemische samenstelling kan men het tijdstip of de plaats van productie bepalen.
Figuur 2.3: Links: ESDA-toestel. Midden: Tekst met schuine lichtinval is moeilijk leesbaar. Rechts: Leesbare tekst na ESDA-bewerking. [Bron: http://www.bvda.com/NL/sect16/nl_16_4a.html/]
Hoofdstuk 2. Handschriftvergelijking
2.2 2.2.1
9
Vormen van handschriftvergelijking Visuele handschriftanalyse
In deze oudste vorm van handschriftvergelijking wordt het handschrift visueel (zowel microscopisch als macroscopisch) zorgvuldig bestudeerd en ontleed [8]1 . De terugkerende patronen en kenmerken van een authentiek document worden bestudeerd. Men kan dan nagaan of deze ook terugkeren in het te bestuderen document. Vanuit deze vergelijking gaat men over tot de beslissing of een document een vervalsing is of niet. Dit gebeurt vooral om de literaire en historische waarde van bepaalde manuscripten te kunnen schatten, maar ook in een forensische context. De studie begint met het benoemen van het schrift, bijvoorbeeld rond, cursief... samen met het omschrijven van de snelheid en de vastheid van het schrift. Er bestaat veel specifieke terminologie om handschrift te beschrijven. Zo zal men bijvoorbeeld spreken over een upstroke en een downstroke. Als een lijn van boven naar beneden getrokken wordt (downstroke) zal omwille van de bijhorende spiercontractie meer druk uitgeoefend worden dan bij een lijn die van beneden naar boven getrokken wordt (upstroke) waarbij een spierdilatatie hoort. Enkele kenmerken en patronen van een handschrift waarop men zich kan baseren worden hieronder opgesomd: de relatieve hoogte van kleine en lange letters de verhouding tussen hoogte en breedte van de letters de aard en plaats van verbindingslijnen tussen letters de helling van het schrift gewoontes zoals de plaats tussen het eerste woord van een lijn en de kant of het gebruik van kantlijnen stijl van leestekens en symbolen witregels en plaats tussen woorden plaats van het opheffen van de pen de lijnkwaliteit, de ruwheid van een lijn2 verschillen in inktkleur veroorzaakt door een verschil in schrijfdruk 1
Deze methode zouden we verkeerdelijk kunnen benoemen als grafologie. Grafologie verwijst echter naar ‘de kunst om aanleg en karaktereigenschappen van een persoon te bepalen uit zijn handschrift’. [Bron: http://www.vandale.be/] 2 Een schrijver zal veel vlotter schrijven dan een vervalser die onderwijl ook nog het schrift moet na-apen.
Hoofdstuk 2. Handschriftvergelijking
10
Letters verschillen daarenboven ook in vorm naargelang hun plaats in een woord: vooraan, middenin of achteraan, wat de analyses een stuk moeilijker maakt. Men gaat op zoek naar de intrapersoonlijke en interpersoonlijke kenmerken van het handschrift (zie paragraaf 1.1). Handschriftkarakteristieken kunnen opgedeeld worden in individuele karakteristieken en stijlkarakteristieken. De individuele karakteristieken bevatten de persoonlijke vormgeving van letters of leestekens en vallen onder intrapersoonlijke kenmerken. Enkel met deze kan het onderscheid tussen twee verschillende handschriften gemaakt worden. De stijlkarakteristieken zijn karakteristieke schrijfwijzen waarop meerdere personen schrijven, zoals bijvoorbeeld een cirkeltje als punt op de ‘i’. Zij vallen duidelijk onder de interpersoonlijke kenmerken. Het is dus heel belangrijk de stijlkarakteristieken te kunnen onderscheiden van de individuele karakteristieken. Helaas zijn enkel professionele handschriftanalysten hiertoe in staat. Handschriftvergelijking met het blote oog is door de aard van zijn beoordeling zeer subjectief getint. Om een handschrift goed te kunnen typeren zijn een hele reeks voorbeelden van dat handschrift nodig. Dat de echtheid hiervan ontegensprekelijk moet zijn, hoeft geen twijfel, zo bewijze ´e´en van de grootste vervalsingen uit de vorige eeuw: de zo verklaarde dagboeken van Hitler (The Hitler Diaries)[9]. Deze dagboeken werden door het Duits magazine Stern in 1983 de wereld ingestuurd als zijnde authentiek. Uit de dagboeken bleek dat Hitler een aimabeler persoon was dan aanvankelijk gedacht. Hij zou ook weinig of geen weet gehad hebben van de gruwelijke feiten die zich afspeelden in de concentratiekampen. Kortom, het beeld van de wereld over Hitler zou erdoor drastisch veranderen. De dagboeken zouden in 1945 uit een gecrasht en uitgebrand Nazivliegtuig gered geweest zijn. Ook in de memoires van het hoofd van de SS-piloten werd bevestigd dat deze documenten zich inderdaad aan boord van dit vliegtuig bevonden hadden. Enkele notoire experts kwamen eraan te pas om de echtheid van de dagboeken te bewijzen. Zij kregen gekopieerde pagina’s uit deze dagboeken te zien om die te vergelijken met andere teksten van Hitlers hand die zich in de Duitse federale archieven bevonden. De twee handschriften bleken overeen te komen en Stern ging daarom met roekeloos enthousiasme over tot het verkopen van de publicatierechten aan andere tijdschriften. Omdat enkele historische feiten niet met de dagboeken strookten en de mensen uit de onmiddellijke omgeving van Hitler deze man nooit als aimabel hadden gekend, bleven velen twijfelen aan de echtheid van deze boeken. Daarom werden de dagboeken opnieuw vergeleken en brachten andere experts aan het licht dat de dagboeken en de documenten uit het Duitse federaal archief wel degelijk twee maal hetzelfde handschrift bevatten, echter niet dat van Hitler, maar van ´e´enzelfde vervalser. Vergelijkingen met het ´echte handschrift van Hitler toonden aan dat de dagboeken in feite zeer slechte vervalsingen waren. Bovendien waren het papier, de inkt en de lijm ontegensprekelijk geproduceerd na de Tweede Wereldoorlog.
2.2.2
Offline handschriftvergelijking
Omwille van de ontbrekende objectiviteit van een visuele handschriftanalyse ging men al vlug werken met een betere methode. Hierbij wordt het te bestuderen document ingescand. Dyna-
Hoofdstuk 2. Handschriftvergelijking
11
mische informatie over de schrijfwijze (snelheid, versnelling, schrijfvolgorde) is niet beschikbaar. Dit noemen we offline handschriftvergelijking. De criminalistiek is inherent aan zijn werkingsdomein beperkt tot offlinemethodes. Bij het scannen wordt het document gediscretiseerd tot een matrix met pixels. Deze pixels zijn zwart als het een inktlijn betreft en wit voor de achtergrond. Zo bekomen we een binair beeld. Het is ook mogelijk om een grijswaardenbeeld te gebruiken. Zo kan de verdeling van de inktintensiteit ook bestudeerd worden.
2.2.3
Online handschriftvergelijking
Een derde vorm is een recentere methode die we in tegenstelling tot de voorgaande bij de onlinemethodes kunnen onderbrengen. Deze onlinemethodes zijn gebaseerd op dynamische kenmerken die tijdens het schrijven worden opgemeten. Het is vooral de banksector die gretig gebruik maakt van deze onlinemethodes om handtekeningen te vergelijken. Onlinemethodes vereenvoudigen identificatie bij e-banking.
2.2.4
Profielstudie
Een vierde vorm houdt verband met het bestuderen van bijhorend 3D-profiel. Aan de hand van deze diepte-informatie kunnen bijkomende kenmerken afgeleid worden. In [10], dat handelt over onderzoek uitgevoerd door het NICC, wordt beschreven hoe men het profiel van kruisende lijnen onderzoekt via laserprofilometrie (zie paragraaf 2.1.2). Hierin wordt de mogelijkheid vermeld om via het profiel de volgorde van twee kruisende lijnen te bepalen. Men varieert de druk waarmee de lijnen geschreven worden en de tests worden zowel op een harde als op een zachte ondergrond uitgevoerd. Men test enkele verschillende schrijfmaterialen uit. De hoek tussen de twee lijnen blijft steeds 90 graden bedragen. Wanneer twee kruisende lijnen getekend worden, wordt ofwel een totale intersectie van de eerste lijn waargenomen, ofwel een ovaalvormige put op de plaats van de kruising (zie figuur 2.4), ofwel blijft het geval onbeslist. In het geval van de volledige intersectie is het de lijn die als tweede geschreven wordt, die de eerste lijn volledig zal doorkruisen. In het geval van de ovaalstructuur zal de lange as van de ovaal overeenkomen met de tweede lijn, de korte as met de eerste. Dit kan zijn verklaring vinden in het feit dat als de tweede lijn de eerste lijn ontmoet, de balpenpunt in de groef van de eerste lijn valt. Het bolletje in de balpen laat een diepere indruk na op deze plaats. In bepaalde gevallen is een sluitende conclusie onmogelijk. Dit gebeurt vooral bij kruisingen waarbij de eerste lijn geschreven wordt met een grote druk op de pen en de tweede lijn met een zachtere druk. Ook blijven meer gevallen onbeslist op een harde ondergrond dan op een zachte ondergrond. Het belangrijkste resultaat is dat wanneer er een ovaal of een volledige intersectie te zien is er geen verkeerde conclusies getrokken worden.
Hoofdstuk 2. Handschriftvergelijking
12
Figuur 2.4: Links: We zien een complete intersectie (het profiel werd in deze figuur omgedraaid). Rechts: We zien een ovaalvormige structuur [Bron: [10]]
In [11] wordt een soortgelijk onderzoek naar kruisende lijnen besproken. Hoewel men in deze paper niet hetzelfde meettoestel (principe van conoscopische holografie) gebruikt als het NICC, is de basisredenering toch dezelfde: uitgaande van een 3D-studie van het profiel, werd de volgorde van twee kruisende lijnen bepaald. Hierin wordt ook gewag gemaakt van een ovaalvormige put of een totale intersectie op de kruising (zie figuur 2.5). Het aanduiden van start- en eindpunt van de lijn van het cijfer ‘8’ wordt bepaald door het profiel van de kruising en de daaruit volgende volgorde van de lijnen (zie figuur 2.6). Er blijkt een logisch verband te zijn tussen de diepte van een lijn en de druk bij het schrijven. Meerdere schrijfmaterialen en ondergronden werden uitgetest. Het schrijven met een BIC-balpen geeft op elke ondergrond goede resultaten. De paper vermeldt echter niets over de druk die op het schrijfmateriaal werd uitgeoefend tijdens het schrijven van de lijnen.
Figuur 2.5: We zien twee maal het profiel, het geroteerde profiel en het omgekeerde profiel van twee kruisende balpenlijnen op papier. Links: We zien dat de tweede lijn de eerste volledig doorsnijdt. Rechts: We zien een ovaalvormige structuur op de plaats van het kruispunt.[Bron: [11]]
Deze observaties zullen we in deze thesis gebruiken als basis om de volgorde van twee kruisende lijnen semi-automatisch te bepalen. We zullen echter het onderzoek niet beperken tot kruisende lijnen onder een hoek van 90° zoals in de studie van het NICC [10].
Hoofdstuk 2. Handschriftvergelijking
13
Figuur 2.6: Uit de volgorde van de lijnen op het kruispunt is het mogelijk de schrijfrichting en dus het start- en eindpunt te bepalen.[Bron: [11]]
Deze thesis heeft de ambitie om niet alleen dieper (automatische detectie) maar ook breder (karakteristieken van een lijn) te gaan dan in [10, 11], teneinde zo ook andere lijnkarakteristieken te kunnen bestuderen.
2.3
Vergelijkingsmethodes
Wanneer het computergeheugen de 2D- of 3D-scan van de balpenlijnen op papier bevat (dus in het geval van offline, online handschriftvergelijking of profielstudie) kunnen deze scans statistisch vergeleken worden met andere scans en dus andere handschriften. De voornaamste methodes zijn deze gebaseerd op afstandsmethodes [12, 13], Hidden Markov modellen [5, 14] of neurale netwerken [5]3 .
2.3.1
Op basis van afstandsmethodes
Deze techniek is gebaseerd op het feit dat het verschil of de ‘afstand’ tussen twee handtekeningen of twee dezelfde tekens in een handschrift kleiner zal zijn dan tussen twee handtekeningen of tekens in twee verschillende handschriften [12, 13]. De afstand tussen referentiehandschrift en het te onderzoeken handschrift wordt berekend en vergeleken met een drempelwaarde. Zo worden besluiten getrokken omtrent de echtheid van het in twijfel getrokken handschrift. De drempelwaarde wordt bepaald aan de hand van gemiddelden van kenmerken berekend via het referentiehandschrift. Het aanleggen van een grote database met referentiehandschrift is dus onontbeerlijk. De eerste stap bestaat uit het scannen van het handschrift. Hierna moeten deze scans in grootte genormaliseerd worden en gedraaid. Voor de draaiing wordt de hoek gekozen zodat het woord of de handtekening zo horizontaal mogelijk staat. Daartoe worden zwaartepunt en tweede orde momenten berekend. Hierna worden de kenmerken gekozen waarmee men de afstanden zal 3
Dezelfde technieken worden aangewend voor tekstherkenning.
Hoofdstuk 2. Handschriftvergelijking
14
berekenen. We kunnen deze kenmerken indelen in globale, statistische en geometrische en topologische kenmerken. De globale kenmerken worden enkel bepaald aan de hand van een volledige handtekening, woorden of een volledige tekst. Een voorbeeld van een globaal kenmerk is de schuinte van de letters. Statistische kenmerken bekijken de verdeling van de zwart-wit pixels of grijswaarde. Verhoudingen tussen bijvoorbeeld de grootte van kleine en grote letters worden hier berekend. Geometrische en topologische kenmerken bundelen lokale en globale eigenschappen en kijken naar de geometrie en topologie van de woorden. Meestal zal men kenmerken uit de drie categorie¨en gebruiken om afstandswaarden te berekenen. De kenmerken kunnen een gewicht meekrijgen om de belangrijkheid aan te duiden. Zeer typische, persoonlijke kenmerken zullen een groter gewicht hebben dan kenmerken die stijlkarakteristieken typeren. Of kenmerken zeer persoonlijk zijn, kan bepaald worden via een berekening van de standaardafwijking van het kenmerk in het referentiehandschrift. De gewogen afstanden van de verschillende kenmerken kunnen dan worden opgeteld.
2.3.2
Op basis van Hidden Markov modellen
In [5] en [14] vinden we vergelijkingsmethodes terug die gebaseerd zijn op Hidden Markov Modellen (HMM). Deze modellen werden in het midden van de jaren ’70 voor het eerst toegepast in de spraakverwerking. Een HMM bestaat uit staten die met elkaar verbonden zijn door een probabiliteit. De outputprobabiliteit vermeldt de kans dat een bepaalde reeks staten werd doorlopen. Hier wordt in de eerste plaats (na de gebruikelijk normalisaties zoals besproken in paragraaf 2.3.1) over de woorden of handtekeningen een rooster geplaatst. Zo wordt de scan opgedeeld in meerdere gebieden. Daaruit zal men dan kenmerken extraheren voor elk gebied. Mogelijke kenmerken zijn pixeldensiteit of kenmerken waarbij de schuinte van de letters naar voren komt. Deze kenmerken zullen dan gebruikt worden om het model op te stellen. Met behulp van het referentiehandschrift worden de Hidden Markov Modellen getraind. Zo krijgt elke verbinding tussen staten een probabiliteit. Er is dus ook een grote nood aan voorbeelden van het echte handschrift. Na het trainen geeft de outputprobabiliteit van het te testen handschrift de kans op echtheid weer.
2.3.3
Op basis van neurale netwerken
Een derde mogelijkheid is om het testen te baseren op neurale netwerken [5]. Een neuraal netwerk bestaat uit knopen die verbonden zijn. Deze verbindingen kunnen vari¨eren in sterkte. De sterkte van de verbindingen wordt in dit geval bepaald door het referentiehandschrift. Om schriftcontrole uit te voeren wordt een letter / lettergroep ingedeeld in drie toestanden: het eerste, het middelste en het laatste segment. Deze indeling gebeurt op basis van tijdinformatie. Deze methode zal dus enkel bruikbaar zijn voor online handschriftvergelijking. Een mogelijk neuraal netwerk is het Time Delay Neural Network (TDNN). Dit is net zoals voorgaande methode afkomstig uit het domein van de spraakverwerking. Eerst worden kenmerken afgeleid van letters of lettergroepen. Vervolgens worden deze met
Hoofdstuk 2. Handschriftvergelijking
15
een neuraal netwerk gecombineerd. Neurale netwerken kunnen patronen herkennen en objecten classificeren of clusteren aan de hand van objectkenmerken. Het vergelijken van referentiehandschrift en testhandschrift kan op drie manieren gebeuren. Een eerste manier is de holistische benadering. Hierbij worden woorden in hun geheel vergeleken met elke gelijkaardige referentie. Lokale verandering zullen niet in rekening gebracht worden. Bij de lokale matching benadering wordt het referentiehandschrift en het te testen handschrift in segmenten gesplitst die daarna aan elkaar getoetst worden. Hierbij zal voor elk segment een overeenkomstig segment moeten kunnen gevonden worden in het referentiehandschrift. Hierdoor is er een grote nood aan referentiehandschrift. Dit nadeel wordt voor een stuk vermeden in de meervoudige lokale matching. Hierbij wordt voor elke segment een overeenkomstige segment gezocht tussen alle letters en lettergroepen. Als voor elk segment ergens een equivalent voorkomt, wordt het testhandschrift als echt aanvaard.
2.3.4
Beoordeling van de gebruikte methodes
Zoals vermeld in paragraaf 1.1 moeten we ervoor zorgen dat de kans dat twee dezelfde handschriften als gelijk worden aanzien zo groot mogelijk blijft, maar tergelijkertijd moet de kans dat we twee verschillende handschriften kunnen onderscheiden ook zo groot mogelijk blijven. In het geval dat een handschrift verkeerdelijk geaccepteerd wordt als authentiek zal deze verkeerde conclusie aanleiding geven tot een verhoogde False Acceptance Rate (FAR) 4 . In het geval dat een handschrift verkeerdelijk als vals wordt ontmaskerd geeft dit aanleiding tot een verhoging van de False Rejection Rate (FRR) [12]5 . Als we bij een methode met afstandsvectoren de drempelwaarde verhogen, zal logischerwijs de FAR dalen maar zal de FRR stijgen. Daarom werd een derde verhouding ingevoerd, de EER (Equal Error Rate). Dit is het punt waarop FAR en FRR een gelijke waarde hebben. Deze tracht men zo klein mogelijk te houden en weerspiegelt dus de globale performantie van een vergelijkingsmethode. Het gemiddelde van FAR en FRR wordt AER (Average Error Rate) genoemd en kan ook gebruikt worden om verschillende methodes te vergelijken. Het staat buiten kijf dat deze statistische benaderingen de kans op een foute interpretatie zo klein mogelijk doch niet onmogelijk maken.
4 5
Dit wordt ook wel een type II fout genoemd. Dit wordt ook wel een type I fout genoemd.
Hoofdstuk 3
Acquisitie van het 3D-beeld 3.1 3.1.1
Meettoestel en techniek Meettoestel
Het meettoestel, een witlichtprofilometer (zie figuur 3.1), is afkomstig van het Franse bedrijf Altimet, een spin-off van Cotec dat gespecialiseerd is in oppervlaktemetrologie 1 . De meettech-
Figuur 3.1: Witlichtprofilometer en x- en y-richting. (Om over een hoek θ te draaien moet het onderstel veranderd worden. Het testobject zal dan tussen twee roterende houders geplaatst worden.)
niek wordt witlichtprofilometrie of white-light surface profilometry genoemd en is gebaseerd op chromatische aberratie (zie paragraaf 2.1.2). In de behuizing van het toestel bevindt zich een gewone halogeenlamp, vandaar de benaming ‘witlichtprofilometer’. Volgens de fabrikant zijn de metingen tot op 10nm nauwkeurig omdat de focuspunten van de gemeten golflengtes 10nm uit elkaar liggen. In de praktijk is dit echter iets slechter aangezien vele factoren de metingen be¨ınvloeden, bijvoorbeeld de temperatuur die veranderingen veroorzaakt in de thermische ruis van de CCD’s , trillingen . . . (zie figuur 3.2). Aangezien het een non-contactmeettechniek betreft, beschadigt deze het te testen object niet, wat zeer wenselijk is in de criminalistiek. 1
http://www.cotec.fr/altimet/eng/societe.htm/
16
Hoofdstuk 3. Acquisitie van het 3D-beeld
17
Figuur 3.2: Deze figuur toont de metingen van ´e´en punt op verschillende tijdstippen. We zien duidelijk dat de meetwaarde niet constant blijft.
3.1.2
Scannen
Het scannen gebeurt snel. Een scan van een oppervlakte van ongeveer 4mm2 duurt zes uur. Vroeger werd in het NICC een laserprofilometer gebruikt waardoor het scannen veel meer tijd inbeslag nam2 . Het toestel kan in verschillende modi gebruikt worden, namelijk: het meten van ´e´en rij punten op de x- of respectievelijk y-as: 1D X / 1D Y (zie figuur 3.1) het meten van ´e´en rij punten op de θ-as (dus angulair): 1D θ het meten van ´e´en rij punten in hetzelfde punt z maar op verschillende tijdstippen: 1D t (zoals op figuur 3.2 te zien is) het meten van ´e´en rij punten op de x-as (y-as), dan wordt langs de y-as (x-as) verschoven en wordt een nieuwe rij punten op de x-as (y-as) gemeten, enz: 2D XY (2D YX) het meten van ´e´en rij punten op de x-as (θ-as), dan wordt langs de θ-as (x-as) verschoven en wordt een nieuwe rij punten op de x-as (θ-as) gemeten, enz: 2D Xθ (2D θX).
Bij het scannen van papier zullen we enkel in de x- en y-richtingen opmeten. Ook de volgorde van de metingen kan ingesteld worden (zie figuur 3.3): steeds van links naar rechts of afwisselend eens van links naar rechts en van rechts naar links. De tweede methode zal vlugger verlopen maar kan onderhevig zijn aan een mechanische onnauwkeurigheid. Als de tandwieltjes van het meettoestel wat speling vertonen zullen de opgemeten punten op twee aangrenzende scanlijnen niet exact onder elkaar liggen (backlash). De eerste methode is dus nauwkeuriger. Bij de metingen moeten we rekening houden met enkele tekortkomingen van het meettoestel: 2
Voor deze en andere meettechnieken verwijzen we naar paragraaf 2.1.
Hoofdstuk 3. Acquisitie van het 3D-beeld
18
Figuur 3.3: Links: Steeds van rechts naar links in de x-richting. Rechts: Afwisseld van rechts naar links en van links naar rechts in de x-richting.
Het toestel werkt met CCD’s en is dus onderhevig aan hun bijhorende tekortkomingen: opnameruis, saturatie van de CCD’s. Saturatie komt vooral voor bij glanzende oppervlakken, daarom is de sluitertijd instelbaar. Dit komt echter niet voor bij papier. Het te meten voorwerp mag (als het macroscopisch een spiegel is) niet onder een grotere hoek geplaatst worden dan 30 graden. Het licht zal anders niet meer terugreflecteren binnen de conus van de sensor. Bij het scannen van papier ondervinden we dit probleem niet. Het toestel moet een half uur op voorhand worden aangeschakeld als we precieze metingen willen doen. De meetwaarden kunnen namelijk wat wijzigen doordat de halogeenlamp bepaalde golflengtes sterker of minder uitzendt bij lagere temperatuur. De sensor moeten binnen het werkgebied gebracht worden (= 5mm van het te meten oppervlak), het meetbereik is slechts 0,3mm. De metingen zijn sterk onderhevig aan temperatuursschommelingen. Daarom wordt het toestel in een afgesloten ruimte met airconditioning geplaatst.
3.2
Structuur van papier
Enkele in de thesis opduikende moeilijkheden zijn rechtstreeks te wijten aan de specifieke structuur van papier. Papier is een composiet bestaande uit papiervezels en een lijmachtige stof. Omwille van het specifieke proces om papier te maken, zullen de papiervezels veelal in ´e´enzelfde richting liggen. Dit komt echter niet tot uiting in de papierscans voor deze thesis. Deze specifieke vezelrichting is slechts waarneembaar op grotere schaal. De papiervezels op de scans in deze thesis zullen dus geen voorkeursrichting hebben. De samenstellende delen van een composiet vermengen zich niet volledig en zijn dus nog fysisch te onderscheiden. We mogen composieten als anisotrope materialen beschouwen. Hun eigenschappen zijn dus niet in alle richtingen dezelfde. We kunnen dit eenvoudig aantonen door een blad papier iets over de tafelrand te leggen en te kijken hoe ver het papier doorbuigt. Vervolgens draaien we het papier over negentig graden, leggen we het blad even ver over de tafelrand en zien we dat het papier nu iets minder of meer doorbuigt.
Hoofdstuk 3. Acquisitie van het 3D-beeld
19
In [15] werd de structuur van papier driedimensionaal bestudeerd. Papier bestaat, zoals eerder aangehaald, uit papiervezels die in drie dimensies dooreen liggen. Dit brengt met zich mee dat tussen de papiervezels pori¨en zitten en het papieroppervlak verre van glad is op microscopische schaal (zie figuur 3.4). De ruwheid van het papier hangt af van de stoffen waarmee het papier werd nabehandeld. Zo is het mogelijk om van gewoon papier glanzend papier te maken door er een extra laagje coatingmateriaal op aan te brengen 3 . Wanneer met een balpen een lijn getrokken wordt op het papier, zullen de papiervezels samen-
Figuur 3.4: 3D-structuur van een stukje melkkarton.
[Bron: [15]]
gedrukt worden en zullen sommige pori¨en door de druk verdwijnen. Na het schrijven van de lijn zal het papier dus plastisch en elastisch vervormd zijn. De elastische vervorming verdwijnt na een tijd. Omwille van de complexe structuur van de papiervezels wordt het onmogelijk om de elastische vervorming in te kunnen schatten. In welke mate plastisch of elastisch vervormd werd, hangt namelijk af van de zeer lokale structuur van de papiervezels. We kunnen daarom het exacte profiel dat de balpen heeft achtergelaten niet meer terugvinden. Het papier kan ook v´o´or het schrijven plastisch vervormd zijn, bijvoorbeeld wanneer het onder een zwaar voorwerp lag, of wanneer het blad gevouwen werd. Het papieroppervlak wijkt dan al op voorhand af van het standaardpapier. Hiermee werd in deze thesis echter geen rekening gehouden.
3.3
Schrijfmateriaal en plotter
De geschreven lijnen in deze thesis zijn beperkt tot balpenlijnen. Ander schrijfmateriaal laat een andere indruk na in het papier (vorm, diepte...) en zou verder onderzoek vergen. De gebruikte balpen is een standaard balpen (E-0-19, crystal(R)) van het merk BIC. Het balletje in de balpen heeft een diameter van ongeveer 0,935 mm. 3
Meer info op http://www.paperonline.com/.
Hoofdstuk 3. Acquisitie van het 3D-beeld
20
De meeste lijnen werden getrokken met een plotter waarop een balpenhouder gemonteerd werd (zie figuur 3.5). De balpen maakt hierbij een schuine hoek met het papier zoals te zien is in figuur 3.6. We zullen de aanwezigheid van deze hoek dus enkel kunnen bemerken in lijnen die een verticale verplaatsing maken. Een horizontale lijn zal niet veranderen van vorm. Door de richting van de hoek imiteert de plotter een linkshandige schrijver. De druk waarmee de balpen op het papier drukt, kan veranderd worden door er gewichtjes aan te hangen. Enkele lijnen werden geschreven met de vrije hand door een rechtshandige schrijver.
Figuur 3.5: De plotter met balpenhouder. [Bron:[10]].
Figuur 3.6: De hoek tussen balpen en papier wordt gekozen door de afstand a en b te wijzigen.
Hoofdstuk 4
Beeldverwerkingstechnieken We schetsen in dit hoofdstuk op hoger niveau de gebruikte filters en algoritmes. Voor een gedetailleerdere uitleg verwijzen we naar de toelichtingen bij de Matlabcode in bijlage D. Voor de implementatie verwijzen we naar de bijhorende cd-rom met Matlabcode.
4.1 4.1.1
Ruwe dataverwerking .SUR-formaat
We vermelden hier terloops dat hoewel we een 3D-oppervlak opmeten, we naar een 2D-representatie kunnen overgaan. We zullen immers de hoogteco¨ordinaten van elk punt beschouwen als een soort intensiteitswaarde. Hierdoor kunnen we verderwerken met een beeld dat per punt de hoogteinformatie bevat. De profilometer, zoals beschreven in paragraaf 3.1.1, schrijft de gemeten punten weg naar een bestand in surfformaat (.SUR , .PRO of .SPRO). Het surfformaat is het standaardformaat voor profielen en oppervlakken in de Mountains Software. In Matlab kan dit formaat worden ingelezen door het bestand als een binair document te openen en groepen binaire digits te laten overeenstemmen met een voor Matlab gekend gegevensformaat (double, integer. . . ). Uit de meetsnelheid en de bemonsteringssnelheid, die beiden te vinden zijn in de header (zie paragraaf D.1), kan de afstand tussen twee bemonsteringspunten bepaald worden namelijk 200µm/s = 2µm. 100/s Of in andere gevallen: 500µm/s = 1, 66µm. 300/s
21
Hoofdstuk 4. Beeldverwerkingstechnieken
4.1.2
22
Mediaanfilter
Om de piekruis te filteren wordt een mediaanfilter toepast. Dit is een filter die ervoor zorgt dat randen toch scherp blijven. Deze filter neemt de mediaan van elke 3x3 pixelgroep en plaatst die in een nieuwe beeld op de plaats van de middelste pixel.
4.1.3
Referentievlak
Aangezien er geen zekerheid is dat het blad tijdens de meting perfect loodrecht op de probe lag, moet dit gecorrigeerd worden. Algoritme We doen dit via een bilineaire compensatie met behulp van een hulpvlak. We bepalen hiervoor eerst de gemiddeldes van 50x50 matrices in de vier hoeken van het beeld1 . Deze vier waarden veronderstellen we als hoekwaarden van het hulpvlak en we zullen deze gebruiken om op een bilineaire manier de waarde van een punt P(x,y) te bepalen (zie figuur 4.1). We noemen de linker- en rechterbovenhoek en de linker- en rechteronderhoek respectievelijk punt P1 (x1 , y1 ), P2 (x1 , y2 ), P3 (x2 , y1 ) en P4 (x2 , y2 ).
Figuur 4.1: Bilineaire bepaling van het hulpvlak, hier in het punt P.
We zullen eerst de waarde bepalen in twee tussenliggende punten T1 (x, y1 ) en T2 (x, y2 ) door lineaire interpolatie: f (T1 ) = 1
x − x2 x − x1 f (P1 ) + f (P3 ) x1 − x2 x2 − x1
Er mogen geen balpenlijnen door deze 50x50 matrices lopen
Hoofdstuk 4. Beeldverwerkingstechnieken
f (T2 ) =
23
x − x2 x − x1 f (P2 ) + f (P4 ) x1 − x2 x2 − x1
waarbij f(p) de hoogte is in het punt p. We bepalen vervolgens de lineaire interpolatie tussen deze twee punten en vinden zo de waarde voor het punt P: f (P ) =
y − y2 y − y1 f (T1 ) + f (T2 ) y1 − y 2 y2 − y1
We hebben twee maal lineair ge¨ınterpoleerd, vandaar de benaming ‘bilineaire’ compensatie. Als het aantal pixels in de x-richting ‘m’ is en het aantal pixels in de y-richting ‘n’ mogen we stellen dat dit de bijhorende co¨ordinaten de volgende zijn: P1 (1, 1), P2 (1, n), P3 (m, 1) en P4 (m, n). We kunnen deze co¨ordinaten in voorgaande formules invullen en krijgen zo: f (x, y) =
x−1 y−1 x−m x−1 y−n x−m ( f (1, 1) + f (m, 1)) + ( f (1, n) + f (m, n)) 1−n 1−m m−1 n−1 1−m m−1
We kunnen nu voor elk punt berekenen wat de tussenliggende waarde van het punt in het hulpvlak zou moeten zijn als P1, P2, P3 en P4 de hoekpunten zouden zijn. Wanneer we deze waarden aftrekken van de oorspronkelijke scan vinden we het oppervlak terug dat bij benadering loodrecht op de probe lag. Deze methode is statistisch onafhankelijk van witte Gaussiaanse ruis maar zal onnauwkeurige resultaten opleveren als: het bemonsteringsbeeld niet groot genoeg is (dan zal 50x50 in verhouding veel te groot zijn en zal de bilineaire interpolatie niet goed werken). het blad een gebogen oppervlak was. de balpenlijnen in de pixelblokken liggen waarvan de gemiddelden worden berekend.
Deze restricties vormen in het geval van de gebruikte beelden echter geen bezwaar. We moeten er wel rekening mee houden dat de bemonsteringsafstand verandert. De oorspronkelijke tussenafstand (2µm of 1, 66µm) moet dus gecorrigeerd worden (zie bijlage C).
Hoofdstuk 4. Beeldverwerkingstechnieken
24
Toegepast We zien deze corrigering via een hulpvlak voor een kruising op figuur 4.2 en voor een lijn op figuur 4.3.
Figuur 4.2: Links: Het beeld na de mediaanfilter. Midden: Het berekende hulpvlak dat wordt afgetrokken van het beeld. Rechts: Het resultaat waarop we zien dat het beeld ongeveer overal dezelfde gemiddelde hoogte heeft. (De x- en y-as stellen de pixelco¨ordinaten voor, de hoogte moet vermenigvuldigd worden met 10nm.)
Figuur 4.3: Links: Het beeld na de mediaanfilter. Midden: Het berekende hulpvlak dat wordt afgetrokken van het beeld. We zien dat het beeld vooral in de y-richting gecorrigeerd wordt. Rechts: Het resultaat waarop we zien dat het beeld ongeveer overal dezelfde gemiddelde hoogte heeft. (De x- en y-as stellen de pixelco¨ordinaten voor, de hoogte moet vermenigvuldigd worden met 10nm.)
4.1.4
Spatiale reductie
Omwille van de rekentijd zullen we enkele bewerkingen uitvoeren op een verkleinde versie van het beeld. Dit gaat natuurlijk ten koste van de nauwkeurigheid maar is ten gunste van de snelheid. Beelden van ongeveer 1000 op 1000 pixels zullen we vijf maal verkleinen. Voor meer uitleg verwijzen we naar de toelichting bij de gebruikte Matlabcode in paragraaf D.2.1.
Hoofdstuk 4. Beeldverwerkingstechnieken
4.2 4.2.1
25
Het extraheren van lijnen Ridgedetectie
Mogelijkheden tot ridgedetectie Een ravijn of ridge — in wat volgt zullen we altijd de Engelse term ridge gebruiken — is in het ideale geval een dieper gelegen smalle strook met als randen twee stapfuncties. Er zijn drie mogelijkheden om aan ridgedetectie te doen [16]. De eerste methode bekijkt de intensiteiten en plaatst er een drempelwaarde op. Dit zal echter leiden tot vele verkeerdelijk gedetecteerde lijnen. Een tweede methode maakt gebruik van de eigenschappen van een ridge, namelijk dat een ridge twee evenwijdige randen heeft. De breedte van de lijn is echter niet op voorhand gekend. Daarom moet men zich in deze methode beroepen op een schalingsruimte of scalespace. Zo kan op elk punt de beste schaling gekozen worden. Dit brengt met zich mee dat de methode zeer rekenintensief wordt. De derde methode, de Stegermethode, zullen we in deze thesis gebruiken. Ze houdt rekening met de specifieke eigenschappen van een ridge (deze is onder andere overal even breed) en in het bijzonder van de afgeleides van de ridge. Stegermethode Met Stegermethode kunnen lijnen detecteerd worden. Omdat meetfouten, papiervezels en dergelijke zorgen voor ruis op de bemonsteringswaarden, zal in een eerste stap van de randdetectie het beeld uitgemiddeld worden met een Gaussiaanse filter. Op die manier worden de randen waziger maar beter detecteerbaar via randdetectie. Een Gaussiaanse filter heeft een zelfde werking als een gewone uitmiddelaar, maar zal aan de naburige punten een grotere wegingsfactor toekennen dan aan verder gelegen punten. Zo zullen de verder verwijderde punten minder invloed hebben. De wegingsfactor is gerelateerd aan de Gaussiaanse verdeling, vandaar de benaming ‘Gaussiaanse filter’. De kernfunctie van de Gaussiaan (in ´e´en dimensie) is x2
b = e− 2σ2 Om de ridges te detecteren hebben we de eerste en tweede afgeleide van de matrix nodig. Voor de eenvoud worden deze afgeleides samen met de Gaussiaanse filter verrekend: D(b) =
D(D(b)) =
−x b σ2
−1 x2 b + 4b 2σ σ
Hoofdstuk 4. Beeldverwerkingstechnieken
26
Ten slotte worden de filters genormaliseerd zodat de som van de co¨effici¨enten van de Gaussiaanse filter 1 en de som van de co¨effici¨enten van een afgeleide 0 is. Deze filters worden in eerste instantie bepaald volgens x- en y-richting (dus in ´e´en dimensie) en zullen daarna samengevoegd worden (twee dimensies). Uit [16] blijkt dat σ groter dan of gelijk moet zijn aan √w3 en dat de ideale σ-waarde voor een ridge gevormd door twee perfecte stapfuncties σ = √w3 is, met w de halve breedte van de ridge. Een ridge bestaat zoals eerder aangehaald uit twee parallele randen, die in het ideale geval twee stapfuncties vormen (zie figuur 4.4). De richting loodrecht op de lengterichting van een rand noemen we in wat volgt de eerste hoofdrichting, de richting volgens de lengterichting van een rand, de tweede hoofdrichting. Als we volgens de eerste hoofdrichting kijken, dan wordt de eerste afgeleide op de plaats van de rand nul. De tweede afgeleide zal zeer groot worden. De tweede afgeleide in de tweede hoofdrichting zal daarentegen zeer klein worden. Zo kunnen we een rand detecteren. Op een kruispunt van twee randen zullen beide tweede afgeleides (volgens de beide hoofdrichtingen dus) groot zijn. Zo kunnen we ook kruispunten detecteren.
Figuur 4.4: Een ridge met daarop de twee hoofdrichtingen.
Om de twee hoofdrichtingen in een punt te bepalen stellen we de Hessiaanse matrix op. Deze bevat de tweede afgeleide in twee maal de x-richting (f xx) , twee maal de y-richting (f xy) en ´e´en maal de x- en ´e´en maal de y-richting (f xy) (zie figuur 4.5).
Figuur 4.5: De Hessiaanse matrix.
We zoeken de eigenwaarden van deze matrix en bekomen zo een maat voor de grootte van de afgeleide namelijk via de eigenwaarden λ, en de hoofdrichtingen namelijk via de eigenvectoren.
Hoofdstuk 4. Beeldverwerkingstechnieken
27
De eigenvectoren die horen bij de grootste λ vormen de eerste hoofdrichting, de andere de tweede. We stellen een matrix op die de grootste λ-waarde in dat punt bevat en plaatsen op deze matrixpunten een drempelwaarde. Indien we de drempelwaarde goed kiezen zullen in dit nieuw binair beeld enkel pixels op de plaats van de ridges ‘1’ worden. We hebben nu een binair masker met daarop een aanduiding van de ligging van de ridges. Het is mogelijk dat dit masker verstoord wordt door foutieve ridgedetecties. We zullen deze uit het masker filteren door enkel de gebieden te behouden die uit meer pixels bestaan dan een opgegeven drempelwaarde. Toegepast We kiezen enkele waarden (10, 15, 20, 25, 30, 35, 40, 50 en 60) als lengte van de Gaussiaanse filter (zie figuur 4.6). Deze lengte is wat in het Stegeralgoritme vermeld wordt als ‘w’ en wordt gebruikt om σ te bepalen namelijk σ = √w3 . De beste keuze voor ‘w’ is in het ideale geval van een perfecte ridge de halve breedte van de ridge. Aangezien de lijnen die we zullen bestuderen ongeveer 30 `a 40 pixels breed zijn, verwachten we dat 15 `a 20 een ondergrens voor σ zal zijn. Als we naar figuur 4.6 met de absolute waarde van de gradi¨ent kijken, zien we dat de lijnen inderdaad vanaf 15 `a 20 zeer duidelijk zichtbaar worden. Als we een kleinere waarde nemen, verdwijnen de duidelijke lijnen. Als we een te grote waarde nemen, wordt de figuur te wazig en verdwijnen de lijnen opnieuw. Om de verdere stappen van de detectie gemakkelijker te maken kiezen we bij dit beeld voor 35 als lengte van de Gaussiaanse filter. We kiezen een drempelwaarde voor λ en kijken naar het ridgemasker. Wanneer we een te lage drempelwaarde kiezen, worden teveel punten geselecteerd. Bij een te hoge drempelwaarde zijn de lijn niet zichtbaar (zie figuur 4.7). We verwijderen de foutieve pixels via een andere drempelwaarde en bekomen zo het ridgemasker afgebeeld in figuur 4.8.
Figuur 4.6: Absolute waarde van de gradi¨ent met w respectievelijk 10, 15, 20, 25, 30, 35, 40, 60.
Hoofdstuk 4. Beeldverwerkingstechnieken
28
Figuur 4.7: Links: Drempelwaarde = 0,25 (te laag). Midden: Drempelwaarde = 0,5 (te hoog). Rechts: Drempelwaarde = 0,34 (goed).
Figuur 4.8: Ridgemasker
Hoofdstuk 4. Beeldverwerkingstechnieken
4.2.2
29
Reduceren tot pixelbreedte 1
Algoritme De ridges in het masker zijn meer dan ´e´en pixel breed. Daarom zullen we dit masker verder reduceren. Op dit moment wijken we af van de ridgedetectiemethode zoals beschreven in [16]. Deze zou immers in een eerste stap de punten gaan selecteren waarop de eerste afgeleide nul wordt en in een tweede stap die punten gaan verbinden. De ligging van de ridges wordt hierbij ook maar bij benadering bepaald in twee stappen. Wij maken gebruik van de morfologische operatie verdunning of thinning ingebouwd in Matlab. Deze verdunning (reduceren tot pixelbreedte 1) gebeurt in ´e´en algoritme. De verdunningsoperatie is een hit-and-miss-operatie [17]. Bij zo een operatie wordt een pixelgroep met een centrale pixel, vergeleken met een opgegeven pixelgroep (structuurelement). Als de 1’en en de 0’en van het structuurelement exact overeenkomen met de pixelgroep uit de beeldmatrix wordt de centrale pixel op ‘1’ of op ‘0’ geplaatst. Een lege plaats in het structuurelement duidt op een willekeurige waarde. Elke pixel in de beeldmatrix wordt overlopen zodanig dat we een nieuw binair beeld bekomen. Bij de verdunningsoperatie worden de ‘1’-pixels waar de bijhorende pixelgroep en ´e´en van de acht structuurelement perfect overeenkomen op ‘0’ geplaatst. De andere pixels behouden hun oorspronkelijke waarde. Wanneer we de structuurelementen beredeneerd kiezen kunnen de randen van het object op die manier verdwijnen. We itereren deze verdunningsoperatie net zo lang tot het binaire beeld niet meer verandert. We vinden dan de ridges van pixelbreedte 1 terug. Hierbij werd de 8-connectiviteit2 bewaard. De structuurelementen zijn in figuur 4.9 weergegeven.
Figuur 4.9: De 8 structuurelementen van het verdunningsalgoritme.
Merk op dat we eigenlijk maar twee verschillende structuurelementen gebruiken maar dat deze drie maal geroteerd worden over 90 graden. 2
Dit betekent dat twee schuin gelegen pixels ook als geconnecteerd beschouwd worden.
Hoofdstuk 4. Beeldverwerkingstechnieken
30
Toegepast In figuur 4.10 zien we het masker dat gereduceerd wordt tot een masker met pixelbreedte 1.
Figuur 4.10: Links: Het masker met dikke lijnen. Rechts: Het gereduceerde masker
Bijkomende aanpassingen Nu het ridgemasker gekend is, gaan we de ‘1’-pixels ervan onderverdelen in kruispunten en lijnen. De punten die met meer dan twee ‘1’-pixels geconnecteerd zijn, worden als kruispunten beschouwd. Er wordt een extra kruispuntenmasker aangemaakt dat enkel deze punten bevat. Na verwijdering van de kruispunten uit het masker is het eenvoudiger om de lijnen te gaan bepalen. Dit gebeurt door een algoritme die op zoek gaat naar een startpunt en verder propageert tot het eindpunt. Voor meer informatie over de algoritmes verwijzen we naar paragraaf D.3. In sommige gevallen kunnen de balpenlijnen niet goed gedetecteerd worden zoals te zien is in figuur 4.11. Dit kan veroorzaakt worden door een te ruwe papiersoort of doordat de druk op de
Figuur 4.11: Samen met de balpenlijnen werden nog enkele foutieve lijnen gedetecteerd.
balpen niet groot genoeg was om voldoende indruk na te laten in het papier. Meestal kunnen we dan slechts bij benadering de lijnen in het ridgemasker herkennen. Daarom maken we het mogelijk de juiste ridges in het masker te selecteren en de foutief gedetecteerde ridges weg te laten. Soms gebeurt het dat in de omgeving van het kruispunt een zogenaamde ‘lijn’ voorkomt die eigenlijk bestaat uit kruispunten, zoals te zien is in figuur 4.12. We kunnen deze lijn manueel
Hoofdstuk 4. Beeldverwerkingstechnieken
31
toevoegen aan de kruispunten. Sommige lijnen werden ten onrechte in twee gesplitst, deze kunnen we manueel samenvoegen. Wanneer we een lijn willen bestuderen over de gehele lengte, dus ook op en over het kruispunt, kunnen we deze twee lijnen selecteren en vervolgens verbinden (zie figuur 4.13).
Figuur 4.12: We zien dat op de plaats van het kruispunt een ‘lijn’ getekend staat. We voegen daarom deze ‘lijn’ toe aan de kruispunten.
Figuur 4.13: We hebben de twee delen van de verticale lijn van een kruispunt (links) geselecteerd en verbonden. Zo houden we enkel de lijn over waarvan we de eigenschappen willen bestuderen (rechts).
4.3 4.3.1
Kenmerkenextractie Dwarsdoorsnede
We kunnen een punt op een ridge van het masker selecteren en daarvan de doorsnede uittekenen. Op figuur 4.14 is duidelijk de grote invloed van de papiervezels te zien. Deze bemoeilijken een tweedegraadspolynoomfit aan de dwarsdoorsnede. We weten immers niet met zekerheid of een dal in het profiel veroorzaakt werd door de druk van een balpen of een porie in de papierstructuur. Een tweedegraadsveelterm lijkt visueel een goede benadering te zijn voor de dwarsdoorsnede. Voor verdere uitleg ivm de schatting van de veelterm zie paragraaf D.4.1. Een hogere graad verandert niet veel aan de vorm van de veelterm en is dus overbodig (zie figuur 4.15).
Hoofdstuk 4. Beeldverwerkingstechnieken
32
Figuur 4.14: Dwarsdoorsnede op een punt van de balpenlijn. (De verticale as is de hoogte, deze moet vermenigvuldigd worden met 10nm. De horizontale as stelt de pixelplaats in de doorsnede voor.)
Figuur 4.15: De dwarsdoorsnede wordt benaderd door een tweedegraads-, een derdegraads- en een vierdegraadspolynoom. We zien dat de vorm van het polynoom bij toenemende graad niet veel verandert. (De verticale as is de hoogte, deze moet vermenigvuldigd worden met 10nm. De horizontale as stelt de pixelplaats in de doorsnede voor.)
Indien we de hoge frequenties door fouriertransformatie uit de dwarsdoorsnede zouden filteren, zouden we kostbare informatie kunnen verliezen. We zullen daarom de dwarsdoorsnedes met behulp van de naburige dwarsdoorsnedes gaan uitmiddelen om ruis te onderdrukken. We merken op dat we de punten waarvan we de dwarsdoorsnedes berekenen uit het gereduceerde masker halen. In werkelijkheid liggen de dwarsdoorsnedes waarmee uitgemiddeld wordt dus niet ´e´en punt van elkaar verwijderd maar vijf punten in het geval van een verkleiningsfactor 5 (zie paragraaf 4.1.4). Deze dwarsdoorsnedes worden v´o´or de uitmiddeling op elkaar gelegd en ten opzichte van elkaar verschoven tot de kwadratische fout het kleinst is en pas daarna punt per punt uitgemiddeld. Het aantal dwarsdoorsnedes dat samen wordt uitgemiddeld kan via een parameter ingesteld worden (zie figuur 4.16). Via een uitmiddeling over 7 dwarsdoorsnedes bekomen we een vloeiender profiel. Uitmiddelen over 21 of 51 dwarsdoorsnedes levert een nog vloeiender profiel op, 51 dwarsdoorsnedes uitmiddelen neemt echter een lange tijd in beslag. Wanneer we uitmiddelen over teveel dwarsdoorsnedes (bijvoorbeeld 101) krijgen we ongeveer een symmetrisch profiel waaruit veel specifieke informatie verdwenen is (bijvoorbeeld over asymmetrie).
Hoofdstuk 4. Beeldverwerkingstechnieken
33
Figuur 4.16: Uitmiddeling over respectievelijk 7, 21, 51 en 101 dwarsdoorsnedes. (De verticale as is de hoogte, deze moet vermenigvuldigd worden met 10nm. De horizontale as stelt de pixelplaats in de doorsnede voor.)
4.3.2
Langsdoorsnede
We kunnen een langsdoorsnede van een lijn bekijken over de gehele lengte. Hiervoor duiden we een lijn in het ridgemasker aan, waarna het verloop wordt uitgetekend. Op de langsdoorsnede kunnen we tijdelijke verdiepingen zien in het profiel van de lijn. We zien op welke plaats tijdens het schrijven van de lijn meer of minder druk op de balpen uitgeoefend werd (zie figuur 4.17 en 4.18).
Figuur 4.17: Bovenaan, links: Langsprofiel van de verticale lijn van de kruising (De verticale as is de hoogte, deze moet vermenigvuldigd worden met 10nm. De horizontale as stelt de pixelplaats in de doorsnede voor.).
4.3.3
Kruispunten
Het bestuderen van de plaats waar twee lijnen elkaar kruisen zal, zoals in paragraaf 2.2.4 aangehaald, een belangrijke aanduiding vormen om de volgorde waarin de twee lijnen geschreven werden te achterhalen. We kennen via het ridgemasker de ligging van de twee kruisende lijnen. Wanneer ´e´en van de lijnen de andere volledig intersecteert of wanneer een ovaalvorm waar te nemen is (zoals in figuur
Hoofdstuk 4. Beeldverwerkingstechnieken
34
Figuur 4.18: Bovenaan, links: Langsprofiel van de horizontale lijn van de kruising (De verticale as is de hoogte, deze moet vermenigvuldigd worden met 10nm. De horizontale as stelt de pixelplaats in de doorsnede voor.).
4.19), veronderstellen we dat de gemiddelde waarde van de maskerlijnen in de buurt van het kruispunt voor de ene lijn een stuk lager zal liggen dan voor de andere. Om de gemiddeldes te berekenen moeten we lijnen van gelijke lengte beschouwen in de vier richtingen van het kruispunt weg (zie figuur 4.20)3 . We kunnen de in beschouwing genomen delen van de twee lijnen op eenzelfde assenstelsel tekenen. Hierop kunnen we de lijnen onderling vergelijken op diepte (zie figuur 4.21). De lijn met de laagste gemiddelde waarde is de lijn die het laatst geschreven werd .
Figuur 4.19: We zien een ovaalstructuur met de lange as in de horizontale richting, op de plaats van het kruispunt. (De x- en y-as stellen de pixelco¨ordinaten voor, de hoogte in de z-richting moet vermenigvuldigd worden met 10nm.)
3
Omwille van de bilineaire compensatie in paragraaf 4.1.3 zijn deze lengtes zoals in paragraaf C besproken werd niet helemaal gelijk in lengte maar wel in pixellengte.
Hoofdstuk 4. Beeldverwerkingstechnieken
35
Figuur 4.20: We berekenen de gemiddelden van een gedeelte van de beide lijnen. De punten binnen de ovaal liggen dieper. Bijgevolg zal het gemiddelde over de horizontale lijn kleiner zijn dan het gemiddelde over de verticale lijn.
Figuur 4.21: De gemiddelde waarde van de groene lijn zal lager liggen dan de gemiddelde waarde van de blauwe lijn. Dit zou erop kunnen wijzen dat de balpenlijn die bij de groene lijn hoort als tweede geschreven is, na de lijn die correspondeert met de blauwe lijn. (De verticale as is de hoogte die met 10nm vermenigvuldigd moet worden. De horizontale as stelt de pixelplaats in de doorsnede voor.)
Hoofdstuk 5
Resultaten 5.1
Scansets
We beschikken over een hele reeks scansets waarmee we verschillende invloedsparameters willen bestuderen. Een volledige lijst van de scans is te vinden in bijlage B.
5.1.1
Papier
We maken een scan van standaard printpapier en een scan van fotopapier. Op figuur 5.1 is duidelijk te zien dat op het oppervlak van het printpapier de papiervezels zichtbaar zijn in tegenstelling tot op het oppervlak van het fotopapier. Het oppervlak is dus veel ruwer dan dat van fotopapier (zie ook paragraaf 3.2). We berekenen de standaardafwijking en bekomen voor het standaard printpapier σ = 166,43µm en voor het fotopapier σ = 18,58µm wat het bovenstaande bevestigt. Alle balpenlijnen in deze thesis werden geschreven op standaard printpapier of op een schrijfblok voor de lijnen op een zachte ondergrond.
Figuur 5.1: Links: Het standaard printpapier waarbij de papiervezels zichtbaar zijn. Rechts: Het gladde oppervlak van fotopapier. (De x- en y-as stellen de pixelco¨ordinaten voor, de hoogte moet vermenigvuldigd worden met 10nm.)
36
Hoofdstuk 5. Resultaten
5.1.2
37
Kruisingen
Om de kruisingen te bestuderen gebruiken we scanssets waarbij de druk op de balpen varieert. De ene keer wegen de gewichtjes (zie paragraaf 3.3) 240g, de ander keer 503g. Deze gewichten zorgen voor een lichte tot matige indruk in het papier. Sommige lijnen werden met de hand geschreven, hiervan is de druk onbekend of relatief gekend (zacht, gewoon, hard). Volgens [10] komt het gewicht van 503g (en dus matig) ongeveer overeen met handgeschreven teksten. Wanneer de balpenlijn met de plotter getekend werd, konden we de hoek die de balpen met het papier maakt wijzigen. We kunnen deze lijn zo gelijkstellen aan een lijn geschreven door een linkshandige zoals vermeld in paragraaf 3.3. De lijnen die met de hand getrokken werden, zijn afkomstig van een rechtshandige schrijver. We hebben de hoek waaronder de lijnen kruisen gewijzigd: ongeveer 90 graden, ongeveer 45 graden en nog scherpere hoeken. De ondergrond waarop geschreven werd was soms hard, soms zacht. Onder de omstandigheden van een zachte ondergrond verstaan we dat het papier op ´e´en of meerdere vellen papier lag terwijl het beschreven werd. Zo kan de druk van de balpen beter opgenomen worden in het papier.
5.1.3
Upstroke of downstroke
We beschikken over met de hand geschreven balpenlijnen die van boven naar onder en van onder naar boven getrokken zijn, zowel op harde als zachte ondergrond, om eigenschappen in verband met upstroke en downstroke op te sporen (zie paragraaf 2.2.1).
5.2
Ridgedetectie
Het ridgedetectiealgoritme werd uitgetest op alle scans met balpenlijnen (zie tabel 5.1 en tabel 5.2). Voor ps1*1 kon geen goede detectie gebeuren, terwijl die beter was voor ps2*. De lijnen werden goed tot zeer goed gedetecteerd in pg1* maar moeizaam in pg2*. Als we naar de hoek tussen de balpen en een loodrechte op het papieroppervlak kijken van deze vier sets (respectievelijk 35, 12, 25 en 9 graden), zien we dat dit geen verklaring kan leveren voor de verschillende kwaliteit van detectie. We hebben immers een goede detectie voor een hoek van 12 en 25 graden, maar niet voor een grotere of kleinere hoek. We kunnen concluderen dat het verschil in detectie afhankelijk is van andere factoren. Mogelijks zijn dit trillingen en andere stoorfactoren in de plotter of het gewichtje aan de balpen dat steeds langs een kant van de balpen hangt en dus nooit een druk loodrecht op de pen zal genereren. Een andere factor zijn de plaatselijke verschillen in het papieroppervlak. Zo werden voor pg2-2 slechts drie armen van de kruisende lijnen teruggevonden omdat in de vierde arm een papiervezel of meerdere papiervezels de lijn kruisen (zie figuur 5.2). Dat de kwaliteit in ps** slechter is dan in pg1* valt gemakkelijk te verklaren als we kijken naar het gewicht dat aan de balpen hangt. Een grotere druk laat een diepere indruk na. Lijnen 1
De volledige lijst van scans is te vinden in bijlage B.
Hoofdstuk 5. Resultaten
38
Scan
Ridge
Volgorde
ps11
n
gd
ps12
n
gd
ps13
n
gd
ps14
n
gd
ps15
n
gd
ps16
n
gd
ps17
n
gd
ps21
a
c
ps22
j
f
ps23
j
c
ps24
n
gd
pg11
a
f
pg12
j
c
pg13
j
f
pg14
n
gd
pg21
j
c
pg22
n
gd
pg23
a
gd
pg24
a
gd
a451
j
c
a452
j
f
a901
j
f
a902
j
c
a1
j
f
a2
a
f
a3
a
gd
a4
j
gd
da1
n
gd
da2
j
f
da3
j
f
da4
a
c
da5
a
c
da6
a
c
da7
n
gd
da8
j
c
Ovaal
z z
z
z
z
z
z
z z
Tabel 5.1: De resultaten van de ridgedetectie, de volgordebepaling van de kruisende lijnen met lengteas = 100 en het al dan niet zichtbaar zijn van een ovaalstructuur.
Hoofdstuk 5. Resultaten
39
Scan
Ridgedetectie
hl1b
j
hl1o
j
hl2b
j
hl2o
j
hl12os
j
hl12bs
j
hlB12b
j
hlB12o
j
hlB12bs
j
hlB12os
j
Tabel 5.2: De resultaten van de ridgedetectie voor de up- en downstrokes.
getekend met een groot gewicht zijn gemakkelijker detecteerbaar. De lijnen geschreven op een zachte ondergrond zijn op twee uitzonderingen na (da1 en da7), allemaal gedetecteerd (da*, a*, a***). Dit wijst erop dat de detectie veel gemakkelijker gebeurt als het papier de kans krijgt om meer te vervormen onder druk van de balpenpunt. De upstrokes en downstrokes werden allemaal zeer goed gedetecteerd. Dit vindt zijn verklaring in het feit dat er heel hard op de balpen gedrukt werd tijdens het schrijven waardoor we het profiel duidelijk in het papier terugvinden. In de meeste gevallen leidt een detectie niet tot een perfect resultaat (enkel de balpenlijnen geselecteerd). Meestal moeten uit het bekomen masker nog de juiste lijnen geselecteerd of verbonden worden. Het valt op dat wanneer de lijnen onderling een schuine of zeer schuine hoek maken, het masker op de plaats van het kruispunt een gemeenschappelijke lijn kan vertonen (zoals in figuur 4.11 in paragraaf 4.2.2). Aan de oorzaak hiervan zou de kleine discontinu¨ıteit kunnen liggen die we soms opmerken bij kruisingen waar de twee lijnen een zeer scherpe hoek maken. Dit gemeenschappelijke stuk zal problemen opleveren in het algoritme om de schrijfvolgorde van kruisende lijnen te bepalen. Voor meer uitleg verwijzen we naar paragraaf 5.3. In figuur 5.3 zien we een scan waarin de lijnen te weinig contrasterend zijn omwille van oneffenheden in de papierstructuur. De detectie zal niet kunnen gebeuren.
Hoofdstuk 5. Resultaten
40
Figuur 5.2: Het beeld bij pg22.
Figuur 5.3: In ps24 zijn de bovenste verticale en de linkse horizontale lijn erg duidelijk, maar de twee andere lijnen niet. We kunnen de kruisende lijnen niet detecteren.
Wanneer we het ridgemasker op het hoogtebeeld leggen, zien we, zoals we het mogen verwachten, dat de gelokaliseerde ridge ongeveer in het midden van de ballijn ligt (zie figuur 5.4). Op de kruispunten van de lijnen, zijn de ridges minder nauwkeurig gelokaliseerd, dus daar is voorzichtigheid geboden.
Hoofdstuk 5. Resultaten
41
Figuur 5.4: Het ridgemasker op het beeld in respectievelijk pg11, a451 en a1.
Als we de resultaten samenvatten (zie tabel 5.1 in de kolom ‘ridgedetectie’) bekomen we voor de 35 beelden met kruisende lijnen, 12 beelden waarvan de lijnen zeer moeilijk tot onmogelijk te detecteren zijn (‘n’), 9 beelden waarvan de lijnen detecteerbaar zijn mits een aanpassing van het masker (‘a’) en 14 beelden waarvan de lijnen perfect teruggevonden worden (‘j’). 16 op 16 van de upstrokes en downstrokes zijn goed gedetecteerd (zie tabel 5.2). De voornaamste factoren die een goede detectering van de balpenlijnen be¨ınvloeden zijn: De druk die tijdens het schrijven op de pen uitgeoefend wordt. Het type ondergrond. De onregelmatigheden op het papieroppervlak.
Wanneer ridgedetectie toegepast zou worden op te onderzoeken handschrift moeten we er rekening mee houden dat de detectie op sommige plaatsen onmogelijk is. Het handschrift zou vergeleken moeten worden op een plaats die zowel goed gedetecteerd wordt in het referentiehandschrift als in het te testen handschrift.
5.3
Kruisende lijnen
De volgorde van kruisende lijnen kan een zeer belangrijk kenmerk zijn in schriftvervalsing. Dit is namelijk een kenmerk dat meteen een vals handschrift kan uitsluiten. Stel dat we twee handtekeningen vergelijken. De eerste handtekening is zeker een echte handtekening. De tweede is misschien een vervalsing. Als in de eerste handtekening een kruising voorkomt waarvan de volgorde niet dezelfde is als die van de overeenkomstige kruising in de tweede handtekening mogen we met zekerheid concluderen dat de tweede handtekening een vervalsing is. Het gaat immers om handtekeningen, we mogen veronderstellen dat deze steeds volgens een zelfde patroon geschreven worden. Het verschil in volgorde van kruisende lijnen op een specifieke plaats is een interpersoonlijk kenmerk (zie paragraaf 1.1). We berekenen de gemiddelde waarde voor een stuk van de twee lijnen in de buurt van het kruispunt zoals besproken in paragraaf 4.3.3. Wanneer we bij pg11 als lengte van dit stuk 1000 punten nemen, dus 500 aan beide kanten van het kruispunt, bekomen we een foute volgorde
Hoofdstuk 5. Resultaten
42
van de balpenlijnen. Dit valt te verklaren doordat we de lengte van het stuk veel groter dan de lengteas van de ovaal kiezen. Als de eerste balpenlijn dieper ligt dan de tweede balpenlijn zal bij een grote lengte het gemiddelde van de eerste balpenlijn altijd lager liggen dan dat van de tweede balpenlijn. Het gemiddelde hangt dan immers weinig af van de lokale ovaalstructuur. Bij een keuze van 200 punten als lengte wordt de volgorde wel juist teruggevonden. We verkleinen de lengte tot 100, dus 50 punten aan elke kant van het kruispunt, zodat we bij de andere beelden een goed resultaat kunnen vinden. We merken op dat er, hoewel de verticale en de horizontale lijnen in theorie door de plotter met dezelfde druk geschreven werden, soms2 toch een significant verschil is in diepte tussen de verticale en de horizontale balpenlijn (zie figuur 5.5). Aangezien we ons baseren op de gemiddeldes van twee assen, ondervinden we problemen als de twee assen gedeeltelijk of volledig overlappen, zoals bij een scherpe hoek tussen de twee lijnen het geval kan zijn (zie figuur 4.12). Bij a3 en a4 is de overlap van die mate dat de volgorde niet correct bepaald kan worden. Van de andere beelden met kruisende lijnen waar de balpenlijnen goed gedetecteerd werden in de vorige stap, vergeleken we de schrijfvolgorde bekomen via het algoritme, met de echte schrijfvolgorde. Slechts bij 10 van de 19 kruisingen werd de volgorde correct bepaald (‘c’ is correct, ‘f’ is fout, ‘gd’ is geen detectie). De kans op een juiste beslissing over de volgorde is dus iets meer dan 50%. Aangezien er maar twee mogelijke volgordes zijn, is dit duidelijk een zeer slecht resultaat. Als we de beelden visueel gaan bekijken, zien we dat waar we een duidelijke ovaalstructuur kunnen zien (‘z’ in kolom ‘Ovaal’), de berekende volgorde overeenkomt met de volgorde die de ovaalstructuur volgens de veronderstellingen in [10] en [11], oplegt. We kunnen daaruit besluiten dat het beslissingsalgoritme wel degelijk goed werkt in het geval we te maken hebben met een duidelijke ovaalstructuur of een totale intersectie, als de basisveronderstellingen hierover juist zijn. Maar aangezien we deze structuren (ovaal of intersectie aanwezig) sowieso op het zicht moeten selecteren, is het algoritme om de lijnenvolgorde te bepalen overbodig. Wanneer we da3 van dichterbij bestuderen (in figuur 5.6), zien we dat de lange as van de ovaalstructuur in de horizontale richting ligt. Dit impliceert dat de horizontale lijn als tweede lijn geschreven werd. We weten echter dat de horizontale als eerste geschreven werd. We mogen dan ook grote vraagtekens zetten bij de basisveronderstelling over de ovaalstructuur en de volgorde van de lijnen. We berekenden het verschil tussen de twee gemiddeldes. Een groot verschil wijst eerder op een fout (wegens het grote verschil in diepte tussen de twee kruisende lijnen) dan op een zeer duidelijke ovaalstructuur. 2
bijvoorbeeld in pg12
Hoofdstuk 5. Resultaten
43
Figuur 5.5: De verticale ligt hier iets dieper dan de horizontale. Links: Het beeld met kruisende lijnen. (De x- en y-as stellen de pixelco¨ordinaten voor.) Rechts: De groene lijn is het langsprofiel van de horizontale, de blauwe van de verticale. (De verticale as stelt de hoogte voor en moet vermenigvuldigd worden met 10nm, de horizontale as stelt de pixelplaats in de doorsnede voor.)
Figuur 5.6: We bemerken een ovaalvorm met lange as volgens de horizontale. (De x- en y-as stellen de pixelco¨ ordinaten voor, de hoogte moet vermenigvuldigd worden met 10nm.)
Hoofdstuk 5. Resultaten
5.4
44
Linkshandig of rechtshandig
We onderzochten in hoeverre de hoek die de balpen met het papier maakt terug te vinden is in het profiel van de balpenlijn. Hiervoor namen we de dwarsdoorsnede op een punt van een balpenlijn. Het uitmiddelen van de dwarsdoorsnede door middel van 6 nabije dwarsdoorsnedes (de drie voorgaande en de drie achterkomende) levert een vloeiender profiel op. De uitmiddeling wordt nog beter als we daarvoor 20 nabije doorsnedes gebruiken. Indien we over te veel dwarsdoorsnedes (bijvoorbeeld 100) gaan uitmiddelen verliezen we de lokale veranderingen en kunnen we geen kenmerken meer terugvinden in de uitgemiddelde dwarsprofielen. We kiezen voor een uitmiddeling over 21 dwarsdoorsnedes, tien in de voorgaande punten, ´e´en in het punt zelf en tien in de achterkomende punten. We benaderen de uitgemiddelde dwarsdoorsnedes door twee tweedegraadspolynomen3 (zoals beschreven in paragraaf 4.3.1 en D.4.1). Als we de eerste factor van de tweedegraadspolynoom, met andere woorden ‘a’ in ax2 + bx + c, uittekenen voor elk punt van de balpenlijn zowel voor het linkse als het rechtse deel van het dwarsprofiel, kunnen we conclusies trekken omtrent de steilheid van het dwarsprofiel langs beide kanten en het bolle of holle karakter. De hoek tussen de balpen en het papieroppervlak zal tot uiting komen bij het uittekenen van de co¨effici¨ent ‘a’ van de verticale balpenlijnen (zie paragraaf 3.3). Zoals we verwachten, zien we bij de horizontale balpenlijn van pg11 (op figuur 5.7, links) dat de steilste kant willekeurig nu eens langs links, dan eens langs rechts ligt. De wanden van de dwarsdoorsnede zijn hoofdzakelijk bol. Bij de verticale balpenlijn is ´e´en kant van de dwarsdoorsnede bijna over de gehele lijn de steilste kant (op figuur 5.7, rechts) . Enkel in de buurt van het kruispunt wordt dit verstoord, wat eveneens te verwachten valt. De andere kant wordt op sommige momenten hol. Bij de handgeschreven kruising da3 zien we dat de horizontale en verticale balpenlijn een gelijkaardig verloop kennen (zie figuur 5.8). We zien dat bij de verticale balpenlijn de stippellijn over het algemeen hoger ligt dan de volle lijn. Bij de plotterlijnen is dit net andersom. De asymmetrie is dus tegengesteld. Dit zou kunnen wijzen op een linkshandige (ge¨ımiteerd door de plotter) en een rechtshandige schrijver. Vreemd genoeg zien we bij diffangle2 (zie figuur 5.9) dat de steilste kant dezelfde is als die van de plotterlijnen. Bij het bestuderen van andere kruisingen keert de asymmetrie van de verticale balpenlijnen steeds terug. Verder onderzoek naar het verband tussen de hoek en de asymmetrie is echter nog noodzakelijk. Hoewel we duidelijke asymmetrie¨en ontdekten, kunnen we voorlopig nog geen conclusies trekken in verband met links- of rechtshandigheid op basis van het uitgemiddelde dwarsprofiel. Een verder onderzoek zou het verband tussen de hoek (die de balpen en het papieroppervlak ma3
Soms zouden de hellingen benaderd kunnen worden door een rechte. De meeste dwarsdoorsnedes hebben echter een uitgesproken parabolische vorm. Om rekening te houden met deze vorm benaderen we de dwarsdoorsnede standaard door tweedegraadspolynomen.
Hoofdstuk 5. Resultaten
45
Figuur 5.7: Volle lijn: Linkerzijde. Stippellijn: Rechterzijde. Links: co¨effici¨ent ‘a’ voor de linker- en rechterzijde van het dwarsprofiel langs de horizontale plotterlijn. Rechts: co¨effici¨ent ‘a’ voor de linker- en rechterzijde van het dwarsprofiel langs de verticale plotterlijn. (De verticale as stelt de ‘a’-waarde voor, de horizontale as de pixelplaats in de doorsnede.)
Figuur 5.8: Volle lijn: Linkerzijde. Stippellijn: Rechterzijde. Links: co¨effici¨ent ‘a’ voor de linker- en rechterzijde van het dwarsprofiel langs de horizontale, handgeschreven balpenlijn. Rechts: co¨effici¨ent ‘a’ voor de linker- en rechterzijde van het dwarsprofiel langs de verticale, handgeschreven balpenlijn. (De verticale as stelt de ‘a’-waarde voor, de horizontale as de pixelplaats in de doorsnede.)
Hoofdstuk 5. Resultaten
46
Figuur 5.9: We zien een gelijkaardig verloop als in figuur 5.8, maar hier is het vooral de volle lijn, dus de linkse co¨effici¨ent, die hoger ligt. (De verticale as stelt de ‘a’-waarde voor, de horizontale as de pixelplaats in de doorsnede.)
ken) en het dwarsprofiel kunnen bestuderen. Een nieuwe reeks scans waarbij de balpen onder verschillende hoeken (zowel van 90 tot 0 graden als van 0 tot -90 graden) gehouden wordt, zou een logischer verband kunnen aantonen. Hier werd ook maar een heel klein deeltje van de balpenlijn beschouwd (namelijk in de buurt van het kruispunt). Het onderzoeken van de parameter ‘a’ over grotere lengte zou correctere resultaten kunnen opleveren.
5.5
Upstrokes en downstrokes
We berekenen de mediaanwaarde van het langsprofiel van de up- en downstrokes. We bemerken dat de lijnen die geschreven werden op een zachte ondergrond een merkelijk diepere indruk nalieten in het papier (zie tabel 5.3). Als we de up- en downstrokes visueel bestuderen lijkt de indruk van het eindpunt in vele gevallen dieper te zijn dan de indruk van het beginpunt, zowel voor de up- als de downstrokes. Dit zou verklaard kunnen worden door te bemerken dat in het beginpunt de balpenpunt al meteen met een zekere snelheid voortbeweegt. Hierdoor zal de indruk niet zo diep zijn. Naar het eindpunt toe vertraagt de pen en zal hij even in het eindpunt blijven stilstaan om vervolgens weg te bewegen van het papieroppervlak. Er blijft een diepere indruk na omdat de balpenpunt er een tijdje heeft stilgestaan. De studie van de langsdoorsnedes van de lijnen toont aan dat in vele gevallen (7 op 8) het eindpunt inderdaad een diepere indruk heeft dan het beginpunt (zoals te zien in figuur 5.10 voor handline1). We hebben daarvoor het gemiddelde berekend over 50 punten aan het begin van de lijn voor het beginpunt en 50 punten aan het einde van de lijn voor het eindpunt. Het verloop van de hoogte langs de balpenlijn is echter zeer grillig, zodat deze uitspraak toch met enige voorzichtigheid benaderd moet worden. De beelden bevatten bovendien enkel korte lijntjes. Wanneer we het begin- en eindpunt van een heel woord bestuderen zal het diepteverschil
Hoofdstuk 5. Resultaten
47
waarschijnlijk niet meer merkbaar of zelfs omgekeerd zijn omdat begin- en eindpunt verder uit elkaar liggen.
Figuur 5.10: Links: Het beginpunt ligt aan de linkerkant van de grafiek. Rechts: Het eindpunt ligt aan de rechterkant van grafiek. (De verticale as stelt de hoogte voor die vermenigvuldigd moet worden met 10nm. De horizontale as stelt de pixelplaats voor in de doorsnede.
Zoals al gezegd werd in paragraaf 2.2.4 hangt de diepte van een lijn samen met de druk die tijdens het schrijven op de balpen uitgeoefend werd. In paragraaf 2.2.1 hebben we het verband gelegd tussen een up- en een downstroke en de druk. De druk bij een downstroke is in theorie groter dan bij een upstroke omdat de spieren die voor een downstroke gebruikt worden samentrekken en de spieren voor een upstroke ontspannen. We kunnen dus de diepte van een lijn bestuderen om meer te weten te komen over de richting waarin de lijn geschreven werd. Wanneer we de mediaanwaarden uit tabel 5.3 bestuderen zien we dat de mediaanwaarden van de upstrokes over het algemeen een minder diepe indruk nalaten in het papier dan het equivalente downstrokes. Nog opvallender is dat het diepteverschil tussen het beginpunt en het eindpunt kleiner is bij upstrokes dan bij downstrokes.
Scan
Mediaan lijn bovenaan
Mediaan lijn onderaan
hl1
-5945
-7041
hl2
-5608
-6727
hl1 B
-5135
-6085
hl2 B
-5023
-4754
hl1 soft
-10850
-24391
hl2 soft
-8104
-17144
hl1 B soft
-12901
-9295
hl2 B soft
-10610
-8928
Tabel 5.3: De mediaanwaarden aan het begin en einde van de up- en downstrokes.
Hoofdstuk 6
Conclusie en toekomstperspectieven We bestudeerden in deze thesis het diepteprofiel van balpenlijnen op papier. Zodoende verwierven we bijkomende informatie over de schrijfvolgorde van kruisende lijnen en voor het eerst ook over het diepteprofiel van de balpenlijnen zelf. We implementeerden verscheidende GUI’s om de algoritmevariabelen gemakkelijk te kunnen wijzigen in een goede waarde en de te bestuderen gedetecteerde lijn met de muis te kunnen aanduiden en aanpassen. Nadat het gemeten oppervlak bilineair gecompenseerd was zodat het loodrecht stond op de scanprobe, werden de balpenlijnen met behulp van een randdetector semi-automatisch gedetecteerd. Hiervoor gebruikten we een aangepaste versie van het Stegeralgoritme, namelijk waarbij de laatste stap vervangen werd door een verdunningsoperatie uit Matlab. Deze ridgedetectie verliep vlotter naarmate de balpenlijnen met grotere druk geschreven werden. Wanneer het papier op een zachte ondergrond lag en weinig onregelmatigheden vertoonde, waren de resultaten ook aanzienlijk beter. De balpenlijnen geschreven op een zachte ondergrond lieten zeer duidelijk een diepere indruk na in het papier. Het berekende ridgemasker duidde de plaats van de lijnen aan. Dit masker bleek zeer nauwkeurig voor losse lijnen maar was slechter in de buurt van de kruising van lijnen. Aan de oorzaak hiervan lag het verdunningsalgoritme van de ridgedetector. Wanneer we de volgorde van de kruisende lijnen, geschreven met lichte of matig druk, bepaalden, was het resultaat hiervan in vele gevallen foutief. Ook ontstonden er twijfels omtrent de gemaakte veronderstellingen gebaseerd op vorige papers. Wanneer de lijnen onder een andere hoek kruisten of met andere drukken geschreven werden, bleken de ovaalstructuren niet altijd dezelfde eigenschappen te vertonen zoals in die vorige papers. Meer nog, soms bleken de basisveronderstellingen niet meer geldig, wat de automatische detectie uiteraard bemoeilijkte zoniet onmogelijk maakte. Sommige dwarsdoorsnedes vertoonden een uitgesproken asymmetrie waarmee de aard van de hoek tussen de balpen en het papier (balpen naar links of naar rechts hellend) uit de lijnen kon gehaald worden. Op basis van deze hoek zouden besluiten getrokken kunnen worden omtrent de links- of rechtshandigheid van de schrijver. Bij het bestuderen van de up- en downstrokes bemerkten we dat de eindpunten meestal dieper
48
Hoofdstuk 6. Conclusie en toekomstperspectieven
49
lagen dan de beginpunten. Voorts was het verschil in diepte tussen begin- en eindpunt voor een downstroke veel groter dan voor een upstroke. We kunnen dus de aard (up- of downstroke) van een korte lijn afleiden uit het diepteverschil tussen de begin- en eindpunten. Voor de metingen beschikten we slechts over enkele scans om elk kenmerk te onderzoeken. We konden hierdoor enkele vermoedens aanscherpen en enkele besluiten trekken. Een groter aantal scans zou de nauwkeurigheid van de resultaten kunnen verhogen. Het scannen is echter bijzonder tijdrovend zodat de besluiten uit deze thesis eerder een belangrijke indicatie vormen voor bruikbare scans en onderzoek in de toekomst. De mogelijkheden voor verder onderzoek zijn legio. Vooreerst kunnen we de basisveronderstellingen over de ovaalstructuur en de totale intersectie toetsen voor lijnen die elkaar niet loodrecht snijden en voor grotere en andere drukverschillen. Ook zijn enkele beeldverwerkingsstappen voor verbetering vatbaar. De mediaanfilter kan vervangen worden door een anisotrope variant zodat de randen nog beter behouden blijven. Het verdunningsalgoritme kan aangepast worden zodat de ridges in de buurt van de kruispunten een logischer en rechter verloop kennen. De dwarsdoorsnede kan uitgemiddeld worden met behulp van de dwarsdoorsnedes die slechts ´e´en pixel uit elkaar liggen. Het verband tussen de asymmetrie en de hoek die de balpen en het papieroppervlak maken, kan bestudeerd worden aan de hand van meerdere scans met lijnen waar de balpen telkens onder een iets andere hoek gehouden wordt. We kunnen nagaan of we begin- en eindpunt ook kunnen onderscheiden in langere lijnen, of zelfs woorden. Verder kunnen andere papiersoorten of andere schrijfmateriaal uitgetest worden. Op lange termijn zouden we het diepteverloop van twee handtekeningen of handschriften naast elkaar kunnen leggen en vergelijken. De 2D-informatie en dynamische informatie zou dan de verworven diepte-informatie kunnen aanvullen of omgekeerd.
In het kader van dit afstudeerwerk werd een samenvatting van deze thesis opgestuurd naar de 4th Conference of the European Document Experts Working Group: “Digital Technology: the Document Examiner’s Friend and Foe”. Deze conferentie vindt plaats in september 2006 in Den Haag, Nederland.
Bijlage A
Graphical User Interface (GUI) in Matlab Om de interactie tussen de gebruiker en Matlab te vergemakkelijken (bijvoorbeeld bij het kiezen van een lijn om het dwarsprofiel uit te tekenen) kozen we ervoor om bepaalde zaken als GUI’s (Graphical Users Interfaces) te implementeren. Tijdens het bestuderen van de scans moesten er ook parameters geschat worden (bijvoorbeeld bij de ridgedetectie). Dit werd ook als GUI geimplementeerd. In Matlab bestaat een GUI uit 2 files, een .fig-file en een .m-file. De .fig-file bevat alle informatie over hoe de GUI er grafisch zal uitzien en welke elementen die zal bevatten (layout). De m-file bevat de achterliggende code. Het maken van een GUI gebeurt eenvoudigheidshalve in de GUI Development Environment, GUIDE. We komen hierdoor eerst terecht in de layouteditor. Hier kunnen we door simpele drag and drop componenten aan de GUI toevoegen. Veelvoorkomende componenten in deze thesis zijn drukknoppen (push button), tuimelschakelaars (toggle button), schuifregelaars (slider), vaste en bewerkbare tekstboxen (static en edit text) en assenkruisen (axes). De eigenschappen (bv. min/max, tekst...) kunnen in de Property Inspector gewijzigd worden door dubbelklikken op de component. Hierna kan je overschakelen naar de M-file editor, die al een raamwerk voor de GUI klaarheeft. De .m-file bevat standaard een initialisatiecode, die ongewijzigd moet blijven, een Opening Function, een Output Function, Create Functions en Callbacks voor elke toegevoegde component uit de .fig-file. De Opening Function wordt gestart alvorens de GUI zichtbaar wordt voor de gebruiker. Mogelijks worden de inputargumenten ingelezen en/of commando’s uitgevoerd. De Output Function wordt standaard meteen na de Opening Function uitgevoerd. Het is mogelijk deze outputfunctie te blokkeren tot de outputargumenten de juiste waarden hebben aangenomen. Dit gebeurt met het commando ‘uiwait;’ in de Opening Function. Om de outputfunctie verder uit te voeren moeten we het commando ‘uiresume;’ ingeven. In deze thesis wordt elke keer er outputargumenten zijn, een Close Button toegevoegd. Dit is een drukknop met de naam Close. Deze zal ervoor zorgen dat het commando uiresume wordt
50
Bijlage A. Graphical User Interface (GUI) in Matlab
51
uitgevoerd, waardoor ook de Output Functie verdergaat. Voor elke bijkomstige component wordt een Create Function aangemaakt en indien toepasselijk een Callback. Aan de Create Function wordt niets toegevoegd. De Callback wordt uitgevoerd van zodra de gebruiker de corresponderende component in de GUI activeert. Om variabelen over de verschillende functies van de GUI heen door te geven, worden deze geplaatst in een handlesstructuur. Wanneer we bijvoorbeeld de variabele var1 willen doorgeven van de Opening Function naar de Close Function gebeurt dit via volgende omweg in de Opening Function handles.naam var = var1; guidata(hObject ,handles); in de Output Function var1 = handles.naam var; waarbij naam var een willekeurig gekozen naam is en het commando guidata gebruikt wordt om de handlestructuren te updaten. Ook om bepaalde waarden uit de GUIcomponenten te halen worden handles gebruikt. get(handles.slider1,‘Min’) geeft bijvoorbeeld het ingestelde minimum terug van de schuifregelaar met als naam ‘slider1’. Wanneer we waarden willen plotten, moeten we eerst het juiste assenstelsel aanduiden door middel van de bijhorende handle: axes(handles.axes3); Dit commando spreekt het assenkruis aan met naam ‘axes3’. Voor verdere uitleg over GUI’s in Matlab verwijzen we naar de broncode bij deze thesis en de desbetreffende Matlabhelpfiles.
Bijlage B
Lijst van scans B.1
Lijst van afkortingen bij de specificaties van de scans
Volgende afkortingen werden gebruikt: pl = met plotter getekend hand = met de hand getekend hk = hoek waaronder de kruisende lijnen elkaar snijden phk = hoek tussen pen en papier V = verticale lijn H = horizontale lijn S = schuine lijn O = onder B = boven L = links R = rechts hard = harde ondergrond soft (1) = zachte ondergrond, ´e´en vel papier onder bovenste vel soft (5) = zachte ondergrond, vijf vellen papier onder bovenste vel hz = horizontaal vt = verticaal DS: downstroke US: upstroke
52
Bijlage B. Lijst van scans
53
BP: beginpunt EP: eindpunt gew = gewicht SB: schrijfblok PP: printpapier OZh = ovaal visueel zichtbaar in horizontale richting OZv = ovaal visueel zichtbaar in verticale richting nOZ = ovaal niet visueel zichtbaar (IZ = intersectie zichtbaar) VL = verticale visueel lager HL = horizontale visueel lager bma = bemonsteringsafstand bij meting
B.2
Papier
papiervezels.sur: fotopapier.sur:
Standaard printpapier, bma = 2µm Standaard fotopapier, bma = 1,66µm
B.3
Kruisingen
B.3.1
papierset1-*
Algemeen: PP, pl, hk 90gr, papierset1-1.sur (ps11): papierset1-2.sur (ps12): papierset1-3.sur (ps13): papierset1-4.sur (ps14): papierset1-5.sur (ps15): papierset1-6.sur (ps16): papierset1-7.sur (ps17):
B.3.2
hard, bma = 2µm, phk +- 35 graden (5cm hz, 7,3cm vt), gew 240g V van O naar B, H van R naar L, nOZ, VL V van O naar B, H van L naar R, OZh V van B naar O, H van R naar L, OZv V van B naar O, H van L naar R, nOZ V van O naar B, H van R naar L, nOZ, HL V van B naar O, H van L naar R, nOZ V van O naar B, H van L naar R, nOZ
papierset2-*
Algemeen: PP, pl, hk 90gr, hard, bma = 2µm, phk +- 12 graden (2cm hz, 10cm vt), gew 240g papierset2-1.sur (ps21): V van B naar O, H van L naar R, OZh papierset2-2.sur (ps22): V van O naar B, H van L naar R, nOZ
Bijlage B. Lijst van scans
papierset2-3.sur (ps23): papierset2-4.sur (ps24):
B.3.3
54
V van B naar O, H van R naar L, OZv, HL V van O naar B, H van R naar L, nOZ
papiergew2hoek1-*
Algemeen: PP,pl, hk 90gr, bma = 2µm, phk +- 25 papiergew2hoek1-1.sur (pg11): V van B naar O, H papiergew2hoek1-2.sur (pg12): V van B naar O, H papiergew2hoek1-3.sur (pg13): V van O naar B, H papiergew2hoek1-4.sur (pg14): V van O naar B, H
B.3.4
graden (4cm hz, 8,6cm vt), gew 503g van L naar R, OZh van R naar L, OZh van L naar R, nOZ van R naar L, nOZ, HL
papiergew2hoek2-*
Algemeen: PP,pl, hk 90gr, bma = 2µm, phk +- 8 graden (1cm hz, 6,8cm vt), gew 503g papiergew2hoek2-1.sur (pg21): V van O naar B, H van R naar L, OZv papiergew2hoek2-2.sur (pg22): V van O naar B, H van L naar R, nOZ papiergew2hoek2-3.sur (pg23): V van B naar O, H van R naar L, nOZ papiergew2hoek2-4.sur (pg24): V van B naar O, H van L naar R, nOZ
B.3.5
angle*-*
Algemeen: SB, pl, bma = 1,66µm, zacht(1) angle45-1.sur (a451): hk 45gr, V van B naar O, angle45-2.sur (a452): hk 45gr, V van O naar B, angle90-1.sur (a901): hk 90gr, V van O naar B, angle90-2.sur (a902): hk 90gr, V van B naar O,
B.3.6
S van L naar R, (OZS) S van R naar L, nOZ H van R naar L, nOZ H van L naar R, (OZH)
angles*
Algemeen: SB, pl, zacht(1), bma = 1,66µm angles1.sur (a1): scherpe hk, V van O naar B, S van R naar L, nOZ bijna discontinuiteit in S angles2.sur (a2): scherpe hk, V van O naar B, S van L naar R, nOZ angles3.sur (a3): zeer scherpe hk, V van O naar B, S van L naar R, OZh angles4.sur (a4): zeer scherpe hk, V van O naar B, S van R naar L, OZs
Bijlage B. Lijst van scans
B.3.7
55
diffangles*
Algemeen: SB, hand, hk = 90gr, zacht(5), bma = 1,66µm diffangles1.sur (da1): H van R naar L, V van B naar O, diffangles2.sur (da2): H van R naar L, V van B naar O, diffangles3.sur (da3): H van R naar L, V van B naar O, diffangles4.sur (da4): H van R naar L, V van B naar O, diffangles5.sur (da5): H van L naar R, V van B naar O, diffangles6.sur (da6): H van L naar R, V van B naar O, diffangles7.sur (da7): H van L naar R, V van B naar O, diffangles8.sur (da8): H van L naar R, V van B naar O,
B.4 B.4.1
(OZh) nOZ OZh (zeer duidelijk) nOZ nOZ OZh nOZ nOZ, VL
Upstroke of downstroke Downstroke
Algemeen: PP, hand, DS, bma = 1,66µm handline1.sur (hl1b): hard, BP, eerste lijn handline1-onder.sur (hl1o): hard, EP, eerste lijn handline2.sur (hl2b): hard, BP, tweede lijn handline2-onder.sur (hl2o): hard, EP, tweede lijn handline1en2-soft-onder.sur (hl12os): handline1en2-soft.sur (hl12bs):
B.4.2
zacht, EP, twee lijnen zacht, BP, twee lijnen
Upstroke
Algemeen: PP, hand, US, bma = 1,66µm handlineB1en2.sur (hlB12b): hard, EP, twee lijnen handlineB1en2onder.sur (hlB12o): hard, BP, twee lijnen handlineB1en2-softboven.sur (hlB12bs): zacht, EP, twee lijnen handlineB11en2-soft-onder.sur (hlB12os): zacht, EP, twee lijnen
Bijlage C
Bemonsteringsafstand Na de bilineaire compensatie van het gescande oppervlak (zoals beschreven in 4.1.3 is de bemonsteringsafstand in x- en y-richting niet meer eenvoudigweg 2µm of 1,66µm (zie figuur C.1). We moeten de bemonsteringsafstand corrigeren. Aangezien de helling van het vlak niet over de hele lengte constant blijft, zal ook de bemonsteringsafstand langs die lengte niet constant blijven. Om de bemonsteringsafstand te kennen berekenen we eerst het hoogteverschil tussen de punten ter hoogte van P1 en P3 : hx31 =
Hx31 x2 − x1 − 1
waarbij Hx31 het verschil is tussen f (P3 ) en f (P1 ). hx31 is het hoogteverschil tussen 2 opeenvolgende bemonsteringspunten, dus de bemonsteringsafstand in de x-richting, ter hoogte van P1 en P3 . Het hoogteverschil tussen de punten ter hoogte van P2 en P4 is: hx42 =
Hx42 x2 − x1 − 1
waarbij Hx42 het verschil is tussen f (P4 ) en f (P2 ) en hx42 het hoogteverschil is tussen 2 opeenvolgende bemonsteringspunten ter hoogte van P2 en P4 . Als we dit hoogteverschil gaan interpoleren in de y-richting krijgen we: hx (y) =
y − y2 y − y1 hx31 + hx42 y1 − y2 y2 − y1
De bemonsteringsafstand in de x-richting hangt af van de y-co¨ordinaat en bedraagt:
56
Bijlage C. Bemonsteringsafstand
57
Figuur C.1: De oorspronkelijke bemonsteringsafstand bedraagt 2µm. De bemonsteringsafstand is in werkelijkheid iets groter omdat het vlak niet horizontaal ligt.
bmax (y) =
p
(hx (y))2 + (bma)2
waarbij bma de oorspronkelijke bemonsteringsafstand is. Analoog vinden we voor de bemonsteringsafstand in de y-richting:
hy (x) =
hy21 =
Hy21 y2 − y1 − 1
hy43 =
Hy43 y2 − y1 − 1
x − x2 x − x1 hy21 + hy43 x1 − x2 x2 − x1
bmay (x) =
q (hy (x))2 + (bma)2
Dat de bemonsteringsafstand afhangt van de x- of y-co¨ordinaat lijkt hinderlijk, maar aangezien we twee maal lineair interpoleerden blijven de verhoudingen kloppen. Het is pas als we twee snijdende rechtes van gelijke lengte beschouwen (zoals in paragraaf 4.3.3), dat we met de verschillen in bemonsteringsafstand rekening zouden moeten houden. In deze thesis wordt echter verondersteld dat de verschillen in lengte ten gevolge van de bilineaire compensatie miniem zijn en dus verwaarloosbaar.
Bijlage D
Toelichtingen bij de broncode De Matlabcode bestaat uit vier delen. In het eerste deel surf2raw.m worden de .SUR bestanden omgezet naar een voor Matlab leesbare matrix in een .MAT-file. In het tweede deel verwerking.m gebeuren enkele van de beeldverwerkingsstappen namelijk het uitmiddelen, het corrigeren naar een vlak loodrecht op de probe en het schatten van de parameters voor de ridgedetectie. In het derde deel mask en analyse.m kan het ridgemasker nog gewijzigd worden om daarna in het vierde en laatste deel mask en analyse2.m de verschillende lijnen van dichtbij te gaan inspecteren. We treden hieronder voor elk deel verder in detail. In figuur D.1 worden de onderlinge connecties van de Matlabfiles schematisch weergegeven.
D.1
surf2raw.m
In surf2raw.m wordt de .SUR-file omgezet naar het Matlabformaat .MAT . De inputargumenten zijn de naam van de .SUR-file en de naam die we aan de .MAT-file willen geven. Het outputargument is deze gecre¨eerde .MAT-file. De .SUR-file wordt ingelezen als een file met binaire digits. Deze binaire digits groeperen we in velden volgens een verdeling eigen aan het surfformaat. Elk veld heeft een specifieke betekenis. De eerste velden vormen de header. Via de header is het mogelijk de headerlengte te bepalen en gegevens over de meting in te lezen. De header wordt afgesloten met headercommentaar waarna de eigenlijk meetgegevens volgen. Het zijn enkel deze meetgegevens die we in de .MAT-file opslaan. Een voorbeeld van een deel van het headercommentaar (namelijk van ’papierset1-1.sur’) vinden we hieronder: SEN SOR N AM E = AltiP robeOptic RAN GE N AM E = HeadN o.1 RAN GE SIZE = 299.96µm M EASU REM EN T SP EED = 200µm/s SAM P LIN G RAT E = 100Hz
58
Bijlage D. Toelichtingen bij de broncode
59
Figuur D.1: Schematische weergave van de onderlinge connecties tussen de Matlabfiles.
waaruit, zoals berekend werd in paragraaf 4.1.1, de bemonsteringsafstand van 2 µm volgt.
D.2 D.2.1
verwerking.m Globaal
In verwerking.m wordt het beeld met hoogtewaarden ingelezen en via de mediaan uitgemiddeld (zoals besproken in paragraaf 4.1.2). Het vlak wordt rechtgetrokken zodanig dat het loodrecht op de probe staat. Er wordt een verkleinde versie van het beeld aangemaakt door spatiale reductie. We gebruiken hiervoor het commando ‘surface = surface(1:5:lim x,1:5:lim y)’ waarbij 5 een voorbeeld van de verkleiningsfactor is, surface de matrix en lim x en lim y het aantal pixels in respectievelijk x- en y-richting. De omgekeerde bewerking kan met surface = imresize(surface, 5). Hierbij wordt geinterpoleerd met de methode van nearest-neighbour 1 om de ontbrekende bemonsteringswaarden in te vullen. De verkleiningsfactor wordt meegegeven aan de inputvariabele ‘factor’. Dit kleine beeld wordt vervolgens naar een GUI (zie bijlage A) gestuurd. Daarin kunnen we 1
De waarde van de dichtste buurpixel wordt overgenomen.
Bijlage D. Toelichtingen bij de broncode
60
de parameters van de ridgedetectie interactief gaan schatten (voor meer uitleg zie paragraaf 4.2.1). De outputvariabele is een .MAT-file waarin een ‘cell’ zit die een aantal gegevens bevat. Het eerste element is bij benadering de halve breedte van de ridge, waaruit de σ-waarde van de Gaussiaanse filter bepaald wordt. Het tweede element bepaalt de drempelwaarde op λ. Het derde element is een parameter om de kleine, foutief gedetecteerde ridges uit het masker te filteren, namelijk het minimum aantal pixels die tot een object moeten behoren om niet uit het masker verwijderd te worden. Het vierde element is de matrix na het uitmiddelen en corrigeren. In het vijfde element komt het masker en in het zesde de verkleiningsfactor.
D.2.2
GUI test gf.m
In deze GUI (zie figuur D.2) stellen we eerst een waarde voor ‘w’ in via de schuifregelaar of het invoervakje. Intern worden nu de co¨effici¨enten van de Gaussiaanse filter en de afgeleides hiervan berekend in ridge1.m en filters g.m. Deze co¨effici¨enten worden gebruikt om de afgeleiden van het beeld in twee dimensies te gaan bepalen in ridge2.m. De absolute waarde van de gradi¨ent voor elk punt van het beeld wordt weergegeven in de middelste figuur van de GUI. Hierna kunnen we een drempelwaarde gaan bepalen voor λ (via ridge3.m). We vullen deze in in het tweede invoervakje of via de tweede schuifregelaar. We krijgen in de rechtse figuur het voorlopige masker te zien, alsook de globale maximumwaarde van λ zodat we nu de drempelwaarde beter kunnen inschatten. Na enkele iteraties van parameterkeuzes en het goedkeuren van het voorlopige masker, geven we onderaan de parameter in die de kleine gebieden zal verwijderen. Gebieden die minder pixels connecteren dan aangegeven door deze parameter verdwijnen uit het masker na een druk op de ‘plot’-knop. Ten slotte voeren we nog de verdunningsoperatie uit, waarbij we de tuimelschakelaar ‘thinning’ activeren en nogmaals op de ‘plot’-knop drukken. Wanneer we tevreden zijn over het maskerresultaat wordt dit masker en de bijhorende parameters via de ‘close’-knop opgeslagen in de in paragraaf D.2.1 vermelde cell-structuur.
D.3
mask en analyse.m
In mask en analyse.m wordt de cell-structuur opnieuw ingelezen. De lijst en het masker met de kruispunten worden aangemaakt, alsook de cell-structuur die een lijn per element onderbrengt. Om de kruispunten te bepalen worden de ‘1’-pixels geselecteerd die meer dan 2 ‘1’-pixels als buur hebben. Zij krijgen een ‘1’-waarde in het masker met de kruispunten. De lijst met kruispunten bestaat uit de x-co¨ordinaten op de oneven plaatsen en de y-co¨ordinaten op de even plaatsen. Het masker zonder kruispunten wordt aangewend om de lijnen te bepalen. Daarvoor wordt op zoek gegaan naar een startpunt (‘1’-pixel die maar met ´e´en ‘1’-pixel geconnecteerd is) en wordt de lijn gevolgd tot het eindpunt. Elke lijn wordt in een element van de cell-structuur ‘lijnen’ opgeslagen. Wanneer het masker foutieve lijnen bevat, kunnen we dit corrigeren via de knop ‘juiste lijnen
Bijlage D. Toelichtingen bij de broncode
61
Figuur D.2: GUI test gf.
selecteren’. Enkel de geselecteerde lijnen blijven behouden. Als we punten aan de lijst van kruispunten willen toevoegen gebruiken we de knop ‘bij kruispunten toevoegen’. De volledige lijn verandert hierdoor in kruispunten. Als we twee lijnen willen verbinden duwen we op ‘verbinden twee lijnen’. De lijnen worden verbonden (in verbind lijnen.m en connectiviteit.m) door het toevoegen van essenti¨ele, in de buurt liggende kruispunten. Het nieuwe masker van naderbij bekijken kan via ‘masker bekijken’. Een voorbeeld van deze GUI zien we in figuur D.3. Wanneer we het beoogde masker aangemaakt hebben drukken we op de ‘OK’-knop die het resultaat opslaat en ons naar de volgende GUI (zie figuur D.4) brengt.
Figuur D.3: GUI mask en analyse.
Bijlage D. Toelichtingen bij de broncode
D.4
62
mask en analyse2.m
We kunnen het nieuwe masker gaan inspecteren, in het bijzonder langs de dwarsdoorsnede (GUI dwarsprofiel2.m) of de langsdoorsnede (GUI langsprofiel2.m) van een lijn of op het kruispunt van twee lijnen (GUI kruispunten2.m). Deze GUI berekent ook al enkele beeldspecifieke waarden zoals het gemiddelde van de hoogtes, de standaardafwijking op de hoogtes, de minimum- en de maximumwaarde.
Figuur D.4: GUI mask en analyse2.
D.4.1
GUI dwarsprofiel2.m
In deze GUI (zie figuur D.5) wordt het dwarsprofiel in ´e´en punt van de lijn berekend. Hiervoor wordt de loodrechte in het punt bepaald (in loodrechte.m). Deze loodrechte wordt bepaald door de bestaande maskerrechte over 90 graden te draaien. We hadden hiertoe ook de eigenvectoren kunnen gebruiken die bij de ridgedetectie bepaald werden. We willen echter niet afhankelijk zijn van snelle verandering van deze eigenvectoren. Bovendien zouden op kruispunten problemen kunnen optreden om de dwarsdoorsnede te bepalen (misschien moeten daar de eigenvectoren van de tweede hoofdrichting genomen worden, zie paragraaf 4.2.1). Ook de verdere verwerking, in het bijzonder voor het gebruik van de Matlabfunctie improfile.m, zal gebaat zijn bij deze keuze. Het dwarsprofiel wordt hierna uitgemiddeld aan de hand van de dwarsprofielen van voorgaande en achterliggende punten (in dd uitmiddelen.m). Dit uitgemiddelde dwarsprofiel wordt, op basis van een ruwe schatting van het minimum via een tweedegraadspolynoom, in twee gedeeld en vervolgens wordt aan elke zijde een polynoom gefit (fit papierprofiel.m). We kunnen de graad zelf kiezen door in het invoervakje ‘orde’ een cijfer in te geven die de graad van de polynoom weergeeft. Om te fitten gebruiken we enkel de meetwaarden tot op een zekere hoogte die gelijk is aan
Bijlage D. Toelichtingen bij de broncode
63
het minimum vermeerderd met 3/4 maal het verschil tussen het maximum en het minimum. Als deze hoogte op de randen van het dwarsprofiel niet bereikt wordt, zullen we de factor 3/4 vermenigvuldigen met 0,9 en het voorgaande opnieuw proberen. Zolang de stophoogte door de meetwaarde niet bereikt wordt, vermenigvuldigen we de factor met 0,9. Na vijf iteraties zou de stophoogte bereikt moeten zijn. Indien dit niet het geval is, zoeken we hoogstwaarschijnlijk naar een dwarsdoorsnede in de nabijheid van een kruispunt (ongeveer in de richting van de tweede lijn) wat toch geen goede fit zou opleveren. De geschatte polynomen worden bovenop de uitgemiddelde dwarsdoorsnede getekend.
Figuur D.5: GUI dwarsprofiel.
D.4.2
GUI langsprofiel2.m
We kiezen een lijn in GUI langsprofiel2.m om het langsprofiel van uit te tekenen. De lengte van de lijn, het gemiddelde, de standaardafwijking, het minimum en het maximum worden ook weergegeven (zie figuur D.6).
D.4.3
GUI kruispunten2.m
In deze GUI (zie figuur D.7) duiden we de buurt van het kruispunt aan. Automatisch worden de vier lijnen gezocht die het kruispunt vormen. Hierna worden de lijnen twee per twee verbonden door essenti¨ele kruispunten uit de kruispuntenlijst toe te voegen (in verbind lijnen.m en connectiviteit.m). Het snijpunt van deze twee nieuwe lijnen wordt gezocht. De twee langsprofielen van deze lijnen worden uitgetekend. Op deze twee assen worden twee lijnstukken genomen van gelijke lengte waarbij het snijpunt in het midden ligt. We bepalen de gemiddelde hoogtes van de punten van de lijnstukken. Volgens de ovaaltheorie en de totale intersectietheorie zal de lijn met het laagste gemiddelde het laatste geschreven zijn.
Bijlage D. Toelichtingen bij de broncode
64
Figuur D.6: GUI langsprofiel2.
Nu we de vermoedelijke schrijfvolgorde van de lijnen kennen, tekenen we deze lijnen ´e´en voor ´e´en op het masker. De lijnen worden onderling gescheiden door een pause-commando voor het gemak van de gebruiker.
Figuur D.7: GUI kruispunten.
Bibliografie [1] R. N. Morris, Forensic Handwriting Identification: Fundamental Concepts and Principles. San Diego, California: Academic Press, 2000, p. 130. [2] D. Feil-Seifer and B. B. Kimia, “A brief survey of approaches to signature verification,” http://www.lems.brown.edu/∼dfs/background.htm/. [3] J. Hart, “3D microscopy and high-magnification macro-photography: Digital reconstruction and depth-of-field expansion,” website, november 2003, http://www.crystalcanyons.com/ Pages/TechNotes/3DMicroMacro.shtm/. [4] S. et Techniques Industrielles de la Lumi`ere (Stil), “Optical principles,” http://www.stilsa. com/EN/prin.htm/. [5] O. Rohl´ık, “Handwritten text analysis,” Afstudeerwerk, University of West Bohemia, Pilsen, Tsjechi¨e, maart 2003. [6] W. BVDA, “Speciale apparatuur: ESDA,” http://www.bvda.com/NL/sect16/nl 16 4a. html/. [7] G. M. Mokrzycki, Advances in Document Examination: The Video Spectral Comparator 2000, oktober 1999, vol. 1, nr.3. [8] G. Heaton, “Literary manuscript analysis: Forgeries,” 2005, http://www2.warwick.ac.uk/ fac/arts/ren/publications/lima/handwriting/. [9] R. Bell, “Scams & hoaxes: Hitler diaries,” 2005, http://www.crimelibrary.com/criminal mind/scams/hitler diaries/. [10] V. Berx and J. De Kinder, The application of profilometry in the analysis of the ‘crossing lines’ problem. American Society of Questioned Document Examiners, inc., 2005, vol. 8, nr.1. [11] G. S. Spagnolo, C. Simonetti, and L. Cozzella, Superposed strokes analysis by conoscopic holography as an aid for a handwriting expert. Institute of Physics Publishing, 2004, vol. 6. [12] M. K. Kalera, Offline signature verification and identification using distance statistics. World Scientific Publishing Company, 2004, vol. 18, nr.7.
65
Bibliografie
66
[13] L. Wan, Z.-C. Lin, and R.-C. Zhao, “Signature verification using integrated classifiers,” in Signature Verification using Integrated Classifiers,in Proceedings of the 4th Chinese Conference on Biometric Recognition (Sinobiometrics’03), Beijing, China, December 2003. [14] J. Coetzer, B. Herbst, and J. du Preez, Offline Signature Verification Using the Discrete Radon Transform and a HiddenMarkov. Hindawi Publishing Corporation, 2004, vol. 4. [15] M. Aronsson, “On 3d fibre measurements of digitized paper: from microscopy to fibre network,” Doctoraatsthesis, Centre for Image Analysis, Swedish University of Agricultural Sciences, Uppsala, Zweden, 2002. [16] C. Steger, An Unbiased Detector of Curvilinear Structures, 1996, vol. 3. [17] R. Fisher, S. Perkins, A. Walker, and E. Wolfart, “Hypermedia image processing reference: Thinning,” 2000, http://homepages.inf.ed.ac.uk/rbf/HIPR2/thin.htm/.