03.09.2013 Views

Labo verslag

Labo verslag

Labo verslag

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Verslag<br />

aan Mr. Ledda<br />

van Jasper Janssens & Mikhaël Regni<br />

datum 21-05-2013<br />

pagina’s 13<br />

Beeldverwerking 4<br />

Munt detectie


De probleemstelling 3<br />

De literatuurstudie 4<br />

Comparing Images Using Joint Histograms 4<br />

Korte Inhoud 4<br />

Features 4<br />

Test 4<br />

Bijdrage tot ons onderzoek 5<br />

Comparing Images Using Color Coherence Vectors 6<br />

Korte Inhoud 6<br />

Color Coherence Vectors 6<br />

Test 7<br />

Bijdrage tot ons onderzoek 7<br />

De voorgestelde oplossingen 8<br />

Munt detectie 8<br />

Vergelijkingsmethodes 8<br />

Kleur histogrammen 8<br />

Euclidische afstand 10<br />

Joint Histogram 11<br />

Muntvergelijking 12<br />

Gebruik 13<br />

Besluit 13<br />

Literatuurlijst 13<br />

© artesis – Beeldverwerking 4 p 2 / 13


De probleemstelling<br />

Hoe kan men het land van oorsprong van een euro munt bepalen doormiddel van de tools in<br />

matlab?<br />

© artesis – Beeldverwerking 4 p 3 / 13


De literatuurstudie<br />

Comparing Images Using Joint Histograms<br />

Korte Inhoud<br />

Kleur histogrammen worden veel gebruikt voor het ophalen van op inhoud gebaseerde beelden in<br />

een database vanwege hun efficientie en robuustheid. Echter, een kleuren histogram registreert<br />

alleen algemene kleur compositie van een afbeelding, zodat beelden met zeer verschillende inhoud<br />

soortgelijke kleur histogrammen kunnen hebben. Dit probleem is vooral van belang bij grote<br />

beeldbanken, waar veel afbeeldingen dezelfde kleur histogram hebben. In deze paper stellen ze<br />

een alternatief, voor kleur histogrammen voor, dit heet een joint histogram. Een joint historgram<br />

gebruikt aanvullende informatie, zonder opoffering van de robuustheid van kleur histogrammen. Ze<br />

creëren een gezamenlijke histogram door een reeks van lokale pixel features te selecteren en het<br />

bouwen van een multidimensionale histogram. Elk item in een joint histogram bevat het aantal<br />

pixels in het beeld die worden beschreven door een bepaalde combinatie van feature waarden. Ze<br />

beschrijven een aantal joint histogrammen en evalueert hun prestaties voor het ophalen van<br />

images in een database met meer dan 210.000 foto's.<br />

Features<br />

De functies die ze hebben gebruikt werden empirisch geselecteerd. Ze kunnen efficient worden<br />

geïmplementeerd in lineaire tijd, en lenen zich voor parallel programmering.<br />

Kleur<br />

Rand dichtheid<br />

Textuur<br />

Gradiëntgrootte<br />

Rank<br />

Bij het testen zijn er verschillende joint histogrammen gebruikt, deze hebben verschillende features.<br />

JH1: Kleur, Rand dichtheid<br />

JH2: Kleur, Rand dichtheid, Textuur<br />

JH3: Kleur, Rand dichtheid, Textuur, Gradiëntgrootte<br />

JH4: Kleur, Rand dichtheid, Textuur, Gradiëntgrootte, Rank<br />

Test<br />

De gebruikte beeldbank bestaat uit meer dan 210.000 afbeeldingen. De beelden werden gemaakt<br />

uit een verscheidenheid van bronnen en met verschillende resolutie en kwaliteit. Er wordt gestreefd<br />

naar een onafhankelijke maatstaf voor het ophalen van afbeeldingen. Typisch is een gebruiker<br />

bereid om door een bepaald aantal van de opgehaalde resultaten te bladeren met de hand,<br />

vergelijkbaar met text-based zoeken op het web. Dit aantal zal waarschijnlijk niet veranderen als de<br />

database veranderd in grote, omdat het in feite een maat van menselijke geduld is. Men noemt dit<br />

aantal de scope van de user. Een goede prestatie maatstaf moet oordelen over de methode voor<br />

het ophalen binnen een bepaalde scope.<br />

Men heeft 52 paren van beelden, die verschillende zichten van de zelfde scene bevatten<br />

geselecteerd. 1 afbeelding is geselecteerd als de query, en de andere is “juiste” antwoord. Voor de<br />

52 queries, vragen we hoeveel procent van de 52 antwoorden werden gevonden binnen een<br />

bepaald bereik. Het percentage juiste antwoorden wordt recall genoemd in de information retrieval<br />

literatuur . Deze resultaten zijn weergegeven in onderstaande figuur.<br />

© artesis – Beeldverwerking 4 p 4 / 13


Onderstaande figuur bevat de gegevens voor scopes van 1 en 100. Merk op dat de meeste van de<br />

joint histogrammen een hogere recall niveau hebben in een scope van 1 dan kleur histogrammen<br />

hebben in een scope van 100.<br />

Bijdrage tot ons onderzoek<br />

Bij het vergelijken van de eurostukken wordt er alleen naar de grijswaarde histogrammen gekeken.<br />

Deze manier van vergelijken geeft echter een te grote error rate. Bij het proberen te onderscheiden<br />

van 6 verschillende euro stukken is er al 1 fout. Dit is een fout die veel te groot is. Deze fout gaan<br />

we er met alleen gebruik te maken van een kleur histogram niet uit krijgen. Volgens het onderzoek<br />

gedaan in deze paper kan de error rate drastisch verlaagt worden door gebruik te maken van joint<br />

histogrammen. Hier hebben we dan ook gebruik van gemaakt.<br />

© artesis – Beeldverwerking 4 p 5 / 13


Comparing Images Using Color Coherence Vectors<br />

Korte Inhoud<br />

Color histogrammen worden gebruikt om beelden in vele toepassingen vergelijken. Hun voordelen<br />

zijn efficientie, en ongevoeligheid voor kleine veranderingen in het standpunt van de camera.<br />

Echter, kleur histogrammen hebben een gebrek ruimtelijke informatie, en dit kan leiden tot beelden<br />

met zeer verschillend uitzien vergelijkbare histogrammen hebben. Men beschrijft een histogram-<br />

gebaseerde methode voor beelden die ruimtelijke informatie bevat te vergelijken. Terwijl een<br />

kleurhistogram het aantal pixels met een bepaalde kleur telt, meet de coherentie vector (CCV) de<br />

ruimtelijke samenhang van de pixels met een bepaalde kleur. Als de rode pixels in een afbeelding<br />

lid zijn van grote rode gebieden, zal deze kleur hoge samenhang hebben, terwijl als de rode pixels<br />

op grote schaal worden verspreid zal het lage samenhang hebben. Een databank met 15.000<br />

beelden kunnen worden opgevraagd voor de beelden met de meest vergelijkbare CCV's in minder<br />

dan 2 seconden. Men demonstreert dat CCV kan worden gebruikt om objecten waarvan de kleur<br />

histogrammen gelijk zijn toch onderscheiden kan worden. We laten zien dat CCV's superieure<br />

resultaten kan geven aan kleur histogrammen voor het ophalen van afbeeldingen.<br />

Color Coherence Vectors<br />

Intuïtief definieren we samenhang van een kleur als de mate waarin pixels van deze kleur uitmaken<br />

van grote, met dezelfde kleur, gebieden. Men verwijst naar deze significante regios als<br />

samenhangend regios, en zien dat ze van significant belang bij het karakteriseren van beelden.<br />

Bijvoorbeeld, de onderstaande afbeeldingen hebben dezelfde kleur histogrammen, ondanks hun<br />

nogal verschillende inhoud. De kleur rood wordt in beide beelden in ongeveer dezelfde<br />

hoeveelheden weergegeven. In de linker afbeelding zijn rode pixels (in de bloemen) op grote<br />

schaal verspreid, terwijl in de rechtse afbeelding de rode pixels (uit overhemd van de golfer) een<br />

samenhangend gebied vormen.<br />

De coherentiemaat classificeert pixels als ofwel coherent of incoherent. Coherent pixels zijn een<br />

deel van een aanzienlijke aaneengesloten gebied, terwijl incoherent pixels niet. Een kleur<br />

coherentie vector vertegenwoordigt dit classificatie voor elke kleur in het beeld. Deze notie van<br />

coherentie stelt ons in staat om onderscheidingen, die niet kunnen worden gemaakt met<br />

eenvoudige kleur histogrammen, te maken.<br />

© artesis – Beeldverwerking 4 p 6 / 13


Test<br />

Bovenstaande figuur toont een voorbeeld van een query waarin kleur histogrammen en CCV zeer<br />

verschillende resultaten geven. Figuur a toont de query image. De meest gelijkende afbeelding in<br />

onze database, volgens kleur histograms, wordt weergegeven in figuur b. Het beeld met de meest<br />

vergelijkbare CCV wordt weergegeven in figuur c. Merk op dat terwijl dit beeld hetzelfde object als<br />

de query image toont, de camerapositie ingrijpend is veranderd. De weergegeven image in figuur c<br />

is candidaat 141 volgens de kleur histogrammen. Alle drie van deze beelden hebben dezelfde kleur<br />

composities, ze zijn meestal bruin, met wat blauw en wat zilver.<br />

Bijdrage tot ons onderzoek<br />

CCV is ook manier om afbeeldingen te vergelijken. Echter gaat deze manier niet de oplossing<br />

bieden voor ons probleem, er wordt rekening gehouden met de samenhang van kleurwaarden,<br />

deze verschillen zijn bij euro munten echter heel klein. Er zijn bijna alleen maar grijswaarden,<br />

hierdoor gaat er bijna geen onderscheid gemaakt kunnen worden volgens de CCV manier.<br />

© artesis – Beeldverwerking 4 p 7 / 13


De voorgestelde oplossingen<br />

Munt detectie<br />

Eerst en vooral moeten we de verschillende munten kunnen detecteren in een afbeelding. Hiervoor<br />

hebben we de houghcircles() methode gebruikt. Deze methode detecteerd cirkels in afbeelding en<br />

slaat deze cirkels op in een array lijst.<br />

Gedetecteerde munten<br />

Deze afbeeldingen worden dan uitgeknipt en van achtergrond ontdaan.<br />

Uitgeknipte munt zonder achtergrond<br />

Bij de vergelijkingsmethode met euclidische afstand en joint histogram wordt de afbeelding ook nog<br />

omgezet in een grijsafbeelding.<br />

Vergelijkingsmethodes<br />

Om de munten te vergelijken hebben we drie methodes getest. Vergelijking met kleur<br />

histogrammen, euclidische afstand en Joint histogram.<br />

Kleur histogrammen<br />

Als eerste hebben we de euromunten vergeleken op basis van kleur histogrammen. Een<br />

afbeelding, standaard in Matlab ingeladen, bestaat uit een 3D array. Elke laag van de array is één<br />

van de 3 hoofdkleuren RGB (Rood, Groen, Blauw).<br />

Afbeelding voorgesteld als 3D array<br />

© artesis – Beeldverwerking 4 p 8 / 13


Van elk van de lagen gaan we een historgram opstellen. Zo krijgen we een 3D array die de kleur<br />

histrogrammen van de afbeelding bevat.<br />

RGB histogrammen van Koning Albert 2<br />

RGB histogrammen van paus Johannes Paulus 2<br />

Hierbij merken we direct dat deze histogrammen vrij dicht bij elkaar liggen. De verschuiving van de<br />

histogrammen kunnen we wijten aan de belichting van de muntstukken.<br />

Als we deze histogrammen in matlab vergelijken komen we er achter dat dit niet de beste manier is<br />

om muntstukken te vergelijken. Kleur histogrammen registreren namelijk alleen de algemene kleur<br />

compositie van een afbeelding, zodat beelden met zeer verschillende inhoud soortgelijke kleur<br />

histogrammen kunnen hebben.<br />

© artesis – Beeldverwerking 4 p 9 / 13


Euclidische afstand<br />

Bij euclidische afstand laden we opnieuw de afbeeldingen in een 3D array. Echter gaan we deze<br />

keer niet werken met de 3 kleur histogrammen maar met grijsafbeeldingen en hebben we maar één<br />

histogram van elke afbeelding.<br />

Grijswaarde afbeelding koning Albert 2<br />

Grijswaarde afbeelding paus Johannes Paulus 2<br />

Door in matlab de afbeeldingen met elkaar te vergelijken met de grijswaarde histogrammen<br />

volgends euclidische afstand kunnen er al redelijk wat euro’s met elkaar vergeleken worden. Echter<br />

is het probleem bij euro stukken dat alle grijswaarden veel te dicht bij elkaar liggen. Het verschil niet<br />

groot genoeg is.<br />

© artesis – Beeldverwerking 4 p 10 / 13


Joint Histogram<br />

Bij deze methode laden we de afbeeldingen opnieuw in 3D arrays en zetten we deze om naar<br />

grijswaarde afbeeldingen. Deze afbeeldingen gaan we niet vergelijken volgens de euclidische<br />

afstand maar met een joint histogram met één feature, de grijswaardes van de afbeelding. Bij het<br />

opstellen van dit histogram gaan we met de feature werken naar een eenheidsmatrix.<br />

Hoe meer waardes er op deze eenheidsmatrix liggen, hoe groter de kans is dat de vergeleken<br />

afbeeldingen van de zelfde munt zijn.<br />

Joint histogram zelfde afbeelding<br />

Als men een afbeelding van een euromunt vergelijkt met zichtzelf zien we dat de joint matrix een<br />

perfecte eenheidsmatrix is.<br />

Joint histogram gelijkaardige afbeelding<br />

Als we dezelfde euromunt vergelijken met een gelijkaardige afbeelding van dezelfde munt zien we<br />

dat de joint histogram geen eenheidsmatrix is maar dat de waarde wel een lijn vormen die er naar<br />

neigt.<br />

© artesis – Beeldverwerking 4 p 11 / 13


Joint histogram verschillende afbeelding<br />

Als we dezelfde euromunt vergelijken met een andere afbeelding zien we dat de joint histogram<br />

geen eenheidsmatrix is en hier ook niet naartoe neigt. Er is dus geen enkel verband met de twee<br />

afbeeldingen. Het verschil is duidelijk groot genoeg om te kunnen bepalen welke afbeelding welk<br />

muntstuk is.<br />

Muntvergelijking<br />

Als alle munten vergeleken zijn, met de joint histogram methode, worden de gevonden munten<br />

onder de afbeelding weergegeven. Hierbij staat ook onder welke hoek de munt in de afbeelding is<br />

gedetecteerd.<br />

Gevonden munten met draaiingshoek<br />

De munten die gevonden zijn, zijn niet gekopieerd uit de afbeelding maar worden appart ingeladen.<br />

© artesis – Beeldverwerking 4 p 12 / 13


Gebruik<br />

Om het programma te starten moet met de project.m file openen in Matlab. Deze file moet<br />

vervolgens gerund worden. Hierdoor start de GUI op. Links boven moet men de afbeelding die men<br />

wilt controleren inladen. Er is keuze uit 7 verschillende afbeeldingen met verschillende munten op.<br />

Als deze afbeelding is ingeladen moet men op de controleren-knop duwen. Hierdoor begint het<br />

programma de munten te detecteren en herkennen. Men kan de verschillende stappen van het<br />

programma volgen in de status balk. Als het programma klaar is zullen de gedetecteerde munten<br />

onder de originele afbeelding verschijnen.<br />

Het programma is getest op Matlab, versie 2012a.<br />

Besluit<br />

Er zijn drie methodes getest om te afbeeldingen van euromunten met elkaar te vergelijken. Het is<br />

duidelijk dat alleen het vergelijken van histogrammen (zowel kleur als grijswaarde) niet volstaat.<br />

Door met een joint histogram en één feature te werken is de error rate drastisch gedaald. Deze<br />

error rate kan nog harder dalen als men gebruik maakt van meerdere features. Deze manier maakt<br />

gebruik van afbeeldingen in grijswaarde, hierdoor is dus het ook mogelijk om munten van andere<br />

waarden te detecteren. De munten moeten wel minstens een diameter van 45 pixels en maximum<br />

60 pixels hebben.<br />

Het is dus perfect mogelijk om met Matlab en zijn tools het verschil in euro munten te detecteren.<br />

Literatuurlijst<br />

Amir Pasha Mahmoudzadeh. Joint Histogram. The MathWorks, Inc.<br />

Beschikbaar op http://www.mathworks.com [21/05/2013].<br />

Greg Pass, Ramin Zabih, Justin Miller, Comparing Images Using Color Coherence Vectors.<br />

MULTIMEDIA '96, 65-73, 1996.<br />

Greg Pass, Ramin Zabih. Comparing Images Using Joint Histograms. Multimedia Systems, 3:234 –<br />

240, Mei 1999.<br />

Nicolae Cindea. Drawing an ellipse into a matrix image. The MathWorks, Inc.<br />

Beschikbaar op http://www.mathworks.com [21/05/2013].<br />

Yuan-Liang Tang. Detects multiple disks (coins) in an image using Hough Transform. The<br />

MathWorks, Inc. Beschikbaar op http://www.mathworks.com [21/05/2013].<br />

© artesis – Beeldverwerking 4 p 13 / 13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!