Labo verslag
Labo verslag
Labo verslag
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