URLs

Werbung
Testumgebung für die Bestimmung der
Güte von Objektvergleichsalgorithmen
Diplomarbeit
für die Prüfung zum
Diplom-Informatiker (Berufsakademie)
des Studiengangs Angewandte Informatik
an der Berufsakademie Mannheim
von
Christian Germann
22. September 2008
Bearbeitungszeitraum
Kurs
Ausbildungsfirma
3 Monate
TAI05AIM
Forschungszentrum Karlsruhe
Gutachter der Ausbildungsfirma
M. Sc. Michael Sutter
Gutachter der Studienakademie
Prof. Dr. Tobias Straub
Abstract
Durch die wachsende Popularität von Online-Auktionshäusern und die stetig ansteigende Anzahl der Internetnutzer ist die Wahrscheinlichkeit sehr groß, dort gestohlene Gegenstände unbemerkt verkaufen oder erhalten zu können. Dies liegt an
der scheinbaren Anonymität im Internet für den Einzelnen, welche durch die hohen
Nutzerzahlen begründet ist.
Die manuelle Suche nach Bildern von Diebesgut im Internet ist extrem aufwändig
und die Aussicht auf Erfolg durch die große Anzahl gleichzeitig laufender Auktionen
sehr gering. Bei einigen besonders wertvollen Einzelstücken ist es jedoch denkbar,
diese durch eine automatische Suche zu finden.
Hierfür wurde am Institut für Prozessdatenverarbeitung und Elektronik (IPE) des
Forschungszentrums Karlsruhe der Kommissar Computer“ entwickelt, eine Appli”
kation, welche das Auffinden von gestohlenen Gegenständen erleichtern soll. Diese
Applikation sucht anhand vorgegebener Schlüsselwörter automatisiert nach Bildern
im Internet und vergleicht diese mit einem Referenzbild. Je nach gefundenen Bildern
und den darauf abgebildeten Objekten führt dieses Verfahren zu mehr oder weniger
guten Ergebnisse, weshalb in einer weiteren Arbeit am IPE weitere Algorithmen für
einen solchen Vergleich implementiert wurden.
Es stellt sich die Frage, ob durch die Anwendung von unterschiedlichen Objektvergleichsalgorithmen und die Kombination der Ergebnisse dieser Algorithmen eine
bessere Trefferquote erzielt werden kann. Für diesen Zweck wurde in der vorliegenden
Arbeit eine Testumgebung implementiert, in welcher die unterschiedlichen Algorithmen ausgeführt werden können. Anschließend wurde anhand einer Bilddatenbank,
sowie eigenen Fotos die Güte der Algorithmen bestimmt.
Erklärung
Hiermit versichere ich, dass die vorliegende Arbeit von
mir selbstständig angefertigt wurde und ich keine weiteren als die angegebenen Quellen und Hilfsmittel benutzt
habe.
(Christian Germann)
Karlsruhe, den 18. September 2008
Danksagung
An dieser Stelle danke ich allen, die auf so vielfältige Weise zum Gelingen dieser
Arbeit beigetragen haben.
Ein besonderer Dank gilt meinem Erstbetreuer Herrn M. Sc. Michael Sutter,
für die stets hilfreiche und kompetente Unterstützung bei der Anfertigung und
Ausarbeitung dieser Arbeit.
Des Weiteren möchte ich mich bei Herrn Prof. Dr. Tobias Straub für die
Übernahme der Zweitbetreuung und die vielen hilfreichen Tipps hinsichtlich
formaler Aspekte dieser Arbeit bedanken.
Außerdem danke ich allen Mitarbeitern der Gruppe Softwaremethoden des
Instituts für Prozessdatenverarbeitung und Elektronik, insbesondere Herrn Dr. Rainer Stotzka und Herrn M. Sc. Jochen Haemmerle für ihre fachliche Unterstützung
und Motivation.
Ein ganz besonderer Dank gilt meiner Familie und meinen Freunden, für die
Unterstützung und das entgegengebrachte Vertrauen.
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
1.3
Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Grundlagen
2.1
2.2
1
1
2
3
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.2.3 Normalized Mutual Information . . . . . . . . .
Weitere, bereits existierende Objektvergleichsverfahren
Metrik . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbank . . . . . . . . . . . . . . . . . . . . . . . . .
Webcrawler . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 7
. 8
. 9
. 10
. 11
2.7
Grid . . . . . . . . . . . . . . .
2.7.1 Globus Toolkit . . . . .
2.7.2 OGSA-DAI . . . . . . .
2.7.3 Grid Resource Allocation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.8
Kepler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3
2.4
2.5
2.6
Kommissar Computer . . . . . . . . .
Objektregistrierung . . . . . . . . . . .
2.2.1 Mean-Squared Difference . . . .
2.2.2 Squared Correlation Coefficient
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
Management
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
6
11
12
13
14
3 Methoden
17
3.1 Evaluierungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2
Coil-20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Implementierung
20
4.1 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Funktionalität der einzelnen Aktoren . . . . . . . . . . . . . . . . . . 22
4.2.1
InitObjectComparison . . . . . . . . . . . . . . . . . . . . . . 22
I
4.2.2
4.2.3
4.2.4
4.2.5
GoogleImageSearch .
WriteImagesInDB . .
GetImagesFromDB .
WriteImagesInFolder
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
24
24
4.2.6
4.2.7
4.2.8
4.2.9
ObjectRecognition
GramService . . . .
InspectorComputer
CombineResults . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
25
26
26
.
.
.
.
5 Ergebnisse
28
5.1 Güte der Objektvergleichsverfahren . . . . . . . . . . . . . . . . . . . 28
5.2 Bestimmung der Güte mit der Coil-20 Bilddatenbank . . . . . . . . . 28
5.3
Vergleiche mit eigenen Fotos . .
5.3.1 Nokia 6233 Mobiltelefon
5.3.2 Siemens Gigaset . . . . .
5.3.3 JanSport Rucksack . . .
5.3.4 Zusammenfassung . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
33
34
36
38
6 Diskussion und Ausblick
40
Abbildungsverzeichnis
43
Literaturverzeichnis
45
II
Kapitel 1
Einleitung
1.1
Motivation
Durch die stetig ansteigende Anzahl der Internetnutzer und die wachsende Popularität von Online-Auktionshäusern ist die Wahrscheinlichkeit sehr groß, dass dort
gestohlene Gegenstände unbemerkt verkauft werden. Aufgrund der hohen Nutzerzahlen, sowie vieler gleichzeitig laufender Auktionen, herrscht eine scheinbare Anonymität für den Einzelnen. Des Weiteren sind die Auktionsplattformen einfach
bedienbar, was ihre Attraktivität zusätzlich steigert.
Die manuelle Suche nach Bildern von Diebesgut ist extrem aufwändig und die
Aussicht auf Erfolg sehr gering. Dies liegt vor allem an der hohen Anzahl gleichzeitig
laufender Auktionen. Des Weiteren müsste eine solche Suche täglich stattfinden, da
jeden Tag neue Auktionen eingestellt werden. Es gibt jedoch auch Einzelstücke,
welche so einzigartig sind oder über markante Merkmale verfügen, anhand derer
durchaus die Möglichkeit besteht, diese durch eine automatische Suche und dem
Vergleich mit einem Referenzbild zu finden.
Aus diesem Grund wurde am Institut für Prozessdatenverarbeitung und Elektronik (IPE) des Forschungszentrums Karlsruhe der Kommissar Computer“ [1][2]
”
entwickelt. Diese Applikation soll das Auffinden von gestohlenen Gegenständen erleichtern. Hierfür findet eine automatisierte Suche nach entsprechenden Bildern anhand vorgegebener Schlüsselwörter im Internet statt. Da die im Internet gefundenen
Bilder jedoch unter anderen Lichtverhältnissen und unter einem anderen Blickwinkel aufgenommen wurden als das Referenzbild, ist ein pixelweiser Bildvergleich nicht
möglich. Stattdessen muss zwischen den auf den Bildern dargestellten Objekten ein
Objektvergleich durchgeführt werden. Eine weitere Schwierigkeit ist, dass es sich
hierbei um ein allgemeines Objektvergleichsverfahren handeln soll, welches das Auf-
1
finden unterschiedlichster Objekte ermöglicht. Aus diesem Grund kann für den Objektvergleich kein Objektmodell verwendet werden, was die Standardvorgehensweise
in einem solchen Fall ist. Ein Objektmodell beschreibt die wesentlichen Eigenschaften eines Objekts und würde so den Objektvergleich vereinfachen, da die Merkmale
des Objekts durch das Objektmodell bekannt sind.
Als Ergebnis des Objektvergleichs erhält der Nutzer eine sortierte Liste der zum
Referenzbild ähnlichsten Bilder. Je nach den verwendeten Objekten führt dieses Verfahren zu mehr oder weniger guten Ergebnissen. Aus diesem Grund wurden in einer
weiteren Arbeit am IPE andere Algorithmen für einen Objektvergleich beruhend auf
einer Bildregistrierung implementiert. Hierbei wird versucht unterschiedlich dargestellte Objekte auf zwei Bildern deckungsgleich zu überlagern. Anschließend wird die
Güte der Überlagerung bestimmt und der Nutzer erhält als Ergebnis eine Liste der
Bilder, welche nach der Güte der Überlagerung und somit der Wahrscheinlichkeit
einer Übereinstimmung sortiert ist.
Hierdurch stellt sich die Frage, ob durch die Anwendung von unterschiedlichen
Objektvergleichsalgorithmen und die Kombination der Ergebnisse dieser Algorithmen, die Genauigkeit der Objekterkennung erhöht werden kann.
1.2
Aufgabenstellung
Zur Klärung der Frage, ob durch die Kombination verschiedener Objektvergleichsalgorithmen die Genauigkeit der Objekterkennung erhöht werden kann, soll eine
Testumgebung erstellt werden, in welcher die unterschiedlichen Objektvergleichsalgorithmen ausgeführt und die Ergebnisse mittels einer einfachen Metrik zusammengeführt werden können. Anhand dieser Metrik soll die Güte der unterschiedlichen
Verfahren bestimmt und eine Aussage getroffen werden, welche Vorteile oder Nachteile die Kombination verschiedener Verfahren hat und ob sich hierdurch bessere
Ergebnisse erzielen lassen. Um zukünftig die einfache Integration neuer Verfahren
zu ermöglichen, soll diese Testumgebung mit der Workflowengine Kepler [3] erstellt
werden. Dies ermöglicht jederzeit eine einfache Erweiterung. Die zum Einsatz kommenden Objektvergleichsverfahren basieren auf zwei Applikationen, welche am IPE
entwickelt wurden. Hierbei handelt es sich um den Kommissar Computer“ [1][2]
”
und ein Objektvergleichsverfahren beruhend auf einer Bildregistrierung [4], nachfolgend als Objektregistrierung“ bezeichnet. Für eine erfolgreiche Implementierung
”
der Testumgebung ist zunächst eine Einarbeitung in beide Applikationen erforderlich. Anschließend müssen die Applikationen in Kepler implementiert werden, ehe
mit einer Bilddatenbank und eigenen Fotos getestet werden kann, welcher Algorith2
mus die besseren Ergebnisse liefert und ob es unter Umständen Sinn macht beide
Algorithmen zu kombinieren.
1.3
Ziel
Das Ziel der Arbeit ist die Bestimmung der Güte der verschiedenen Objektvergleichsalgorithmen des Kommissar Computer“ und der Objektregistrierung“.
”
”
Hierfür soll eine entsprechende Testumgebung erstellt werden, in welcher die unterschiedlichen Objektvergleichsalgorithmen ausgeführt werden können. Die Ergebnisse
der unterschiedlichen Objektvergleichsverfahren sollen mittels einer einfachen Metrik verglichen werden, um so die Güte der einzelnen Algorithmen zu bestimmen.
Diese Testumgebung soll mit der Workflowengine Kepler erstellt werden, um auch in
Zukunft die einfache Integration neuer Verfahren zu ermöglichen. Hierfür ist es erforderlich die einzelnen Komponenten des Workflows, in Kepler Aktoren genannt, genau
zu definieren und Schnittstellen für die Kommunikation untereinander festzulegen.
Anschließend muss der Programmcode der verschiedenen Objektvergleichsverfahren
analysiert und in Aktoren implementiert werden. Hierbei ist darauf zu achten, dass
jeder Aktor eine wohl definierte Funktion erfüllt. Zum Schluss soll die Güte der einzelnen Verfahren mit einer Metrik bestimmt werden, indem die Ergebnisse, welche
die unterschiedlichen Objektvergleichsverfahren zurückliefern, ausgewertet werden.
3
Kapitel 2
Grundlagen
In diesem Kapitel wird auf den Stand der Technik eingegangen. Des Weiteren werden
wichtige Begriffe und verwendete Tools erklärt, welche mit der vorliegenden Arbeit
in Zusammenhang stehen. Ebenso werden die beiden Applikationen Kommissar
”
Computer“ und Objektregistrierung“, welche als Basis für diese Arbeit dienen ge”
nauer erklärt.
2.1
Kommissar Computer
Der Kommissar Computer“ [1][2] ist eine am IPE erstellte Software, mit der es
”
möglich ist, Bilder aus dem Internet zu laden und einen Objektvergleich zwischen
einem Referenzbild und den gefundenen Bildern durchzuführen [1][2]. Hierfür werden auf den gefundenen Bildern Objekte selektiert und anschließend diese Objekte
mit den Objekten des Referenzbildes verglichen. Die Selektion und der Vergleich
der Objekte beruht auf dem Autopano-Sift Verfahren [5], welches eigentlich für die
Erstellung von Panorama-Bilder entwickelt wurde. Hierbei werden auf den Bildern
markante Punkte berechnet, anhand derer die Überschneidung von einzelnen Bildern
bestimmt wird. Die Berechnung der markanten Punkte erfolgt anhand der Libsift
Bibliothek [6], auf welcher das Autopano-Sift Verfahren aufbaut. Anschließend berechnet das Verfahren die Position für ein maßgenaues Übereinanderlegen und legt
beide Bilder übereinander ( stitchen“). Der Kommissar Computer“ führt jedoch
”
”
nur die Berechnung der markanten Punkte durch. Hierbei wird davon ausgegangen,
dass mit steigernder Anzahl markanter Punkte auf zwei Bildern auch die Wahrscheinlichkeit steigt, dass auf beiden Bildern die gleichen Objekte abgebildet sind
[7].
Für die Suche von Bildern im Internet können beim Kommissar Computer“ ver”
schiedene Suchmaschinen abgefragt werden. Die gefundenen Bilder werden für den
4
nachfolgenden Bildvergleich in einer Datenbank gespeichert. Nach dem Speichern in
der Datenbank findet der eigentliche Objektvergleich statt. Hierbei werden zunächst
durch das Autopano-Sift Verfahren für einen Objektvergleich sinnvoll erscheinende
Bereiche der Bilder selektiert. Auf allen dieser Bereiche wird eine Transformation
angewendet, aus welcher sich ein Merkmalsvektor für diesen Bereich ergibt. Diese
Merkmalsvektoren werden als Schlüssel bezeichnet. Über diese Merkmalsvektoren
können verschiedene Bilder miteinander verglichen werden, indem zwischen jedem
Merkmalsvektor des Referenzbildes und den Merkmalsvektoren des zu testenden Bildes ein Ähnlichkeitswert berechnet wird [1]. Wichtig zu wissen ist, dass der Kom”
missar Computer“ keine Farben erkennen kann, da die Bilder in Grauwertbilder
umgewandelt werden.
Die Abfrage von Suchmaschinen kann eine große Anzahl von Treffern
zurückliefern. Außerdem muss die Abfrage eventuell zyklisch wiederholt werden,
da jeden Tag neue Bilder ins Internet gestellt werden auf denen potentielles Diebesgut abgebildet sein kann. Aus diesen Gründen wird der Vergleich beim Kommissar
”
Computer“ im Grid berechnet. Als Ergebnis des Vergleichs erhält der Anwender eine Liste zurück, welche nach der Anzahl der übereinstimmenden markanten Punkte
sortiert ist. Im Mittel liegt unter den ersten acht Einträgen der Liste ein Treffer
zwischen Referenzbild und gefundenen Bildern vor [1].
2.2
Objektregistrierung
In einigen Testfällen konnte festgestellt werden, dass der Objektvergleichsalgorithmus des Kommissar Computer“ weniger gute Ergebnisse liefert. Aus diesem Grund
”
wurde in einer weiteren Arbeit am IPE, die Applikation Objektregistrierung“ er”
stellt, mit welcher es möglich ist einen Objektvergleich beruhend auf einer Bildregistrierung durchzuführen. In dieser Applikation sind unterschiedliche Gütefunktionen
implementiert.
Als Registrierung wird der Vorgang bezeichnet, unterschiedlich dargestellte Objekte in zwei Bildern deckungsgleich zu überlagern [4]. Hierbei wird mit Hilfe einer
Gütefunktion die Güte der Überlagerung bestimmt. Mit Hilfe von affinen Transformationen soll die Überlagerungsgüte maximiert werden [4]. Die Transformationen
sind das Verschieben, Skalieren und Rotieren eines der Bilder. Nach jeder Transformation werden die beiden Bilder übereinander gelegt und der Wert der Gütefunktion
bestimmt. Ist dieser Wert maximal, so wurden die Bilder bestmöglich überlagert.
Als Gütefunktionen wurden in der Objektregistrierung“ drei verschiedene Algorith”
men implementiert, deren Wert zwischen 0,0 und 1,0 liegen kann. Dieser Wert ist
5
eine Maßzahl für die Übereinstimmung der Überlagerung, wobei 1,0 bedeutet, dass
die verglichenen Objekte exakt übereinstimmen. Die einzelnen Gütefunktionen in
der Objektregistrierung“ sind Mean-Squared-Difference, Squared Correlation Co”
efficient und Normalized Mutual Information. Diese werden im Folgenden näher
beschrieben.
2.2.1
Mean-Squared Difference
Mean-Squared Difference (mittlerer quadratischer Abstand) ist die einfachste der
drei implementierten Gütefunktionen [4]. Diese stützt sich auf den quadratischen
Abstand zwischen den Grauwerten der beiden zu vergleichenden Bilder. Je kleiner
der Abstand zwischen diesen Grauwerten ist, desto größer ist die Übereinstimmung
zwischen zwei Bildern.
Den mathematischen Ausdruck für die Berechnung zeigt die folgende Formel 2.1.
M SD =
NX
b −1 NX
h −1
x=0
2.2.2
(f (x, y) − g(x, y))2
(2.1)
y=0
Squared Correlation Coefficient
Der Korrelationskoeffizient (Correlation Coefficient) beschreibt den linearen Zusammenhang zwischen zwei Grauwertbildern. Dieser Wert kann zwischen 1 und -1
liegen. Hierbei bedeutet 1, dass zwei Bilder völlig übereinstimmen und -1, dass es
sich um ein invertiertes Bild zum Originalbild handelt. Sind die beiden Bilder statistisch unabhängig, beträgt der Wert des Korrelationskoeffizienten 0 [4].
Der Korrelationskoeffizient wird aus der Kovarianz beider Bilder, dividiert durch
das Produkt der Standardabweichungen berechnet.
Die Standardabweichung σ ist ein Maß für die Streuung der Werte einer Variablen
x um ihren Mittelwert.
q
σ=
V ar(x)
(2.2)
V ar(x) ist die Varianz.
Die Varianz ist das Maß für die Abweichung einer Variablen x von ihrem Erwartungswert E[x] = x̄ .
V ar(x) = E[(x − x̄)2 ]
(2.3)
Die Kovarianz ist ein Maß für den Zusammenhang zweier statistischer Merkmale x
und y.
Cov(x, y) = E[(x − x̄)(y − ȳ)]
(2.4)
6
Der Korrelationskoeffizient berechnet sich wie folgt:
Kor =
Cov(x, y)
σx σy
(2.5)
Der quadratische Korrelationskoeffizient (Squared Correlation Coefficient) (Formel
2.6) wird verwendet, um die negativen Werte des Korrelationskoeffizienten zu eliminieren, da diese nur durch die Invertierung der Bilder entstehen. Die Invertierung der
Bilder spielt bei einem Objektvergleich keine Rolle, da das Objekt dem gesuchten
Objekt auf einem invertierten Bild genauso ähnlich ist wie auf einem nicht invertiertem Bild. Der negative Koeffizient hat aus diesem Grund keine Auswirkung auf die
Güte der Übereinstimmung zweier Objekte. Der quadrierte Korrelationskoeffizient
(Squared Correlation Coefficient, SCC) lässt sich über folgende Formel berechnen:
Ã
SCC =
2.2.3
Cov(x, y)
σx σy
!2
(2.6)
Normalized Mutual Information
Besteht zwischen zwei Bildern kein linearer Zusammenhang, was häufig der Fall
ist, muss eine andere Gütefunktion eingesetzt werden. Hierfür wird die Gütefunktion
Mutual Information“ verwendet. Sie beruht auf dem Messen der enthaltenen Infor”
mationen eines Bildes. Das Maß für diesen Informationsgehalt ist die Entropie. Liegen zwei Grauwertbilder F und G vor, lässt sich eine gemeinsame Entropie H(F, G)
bestimmen [4].
H(F, G) = −
255 X
255
X
(p(a, b)log2 p(a, b))
(2.7)
a=0 b=0
p(a, b) ist die Wahrscheinlichkeit, dass die Grauwerte a und b gemeinsam auftreten.
Mutual Information lässt sich über die Wahrscheinlichkeiten definieren.
I(F, G) =
255
255 X
X
Ã
(p(a, b))log2
a=0 b=0
p(a, b)
p(a)p(b)
!
(2.8)
p(a) ist die Wahrscheinlichkeit, dass ein Pixel des Bildes F den Grauwert a hat und
p(b) ist die Wahrscheinlichkeit, dass ein Pixel des Bildes G den Grauwert b hat.
Normalized Mutual Information ergibt sich aus dem Quotient der Mutual Information mit der gemeinsamen Entropie.
NMI =
I(F, G)
H(F, G)
7
(2.9)
In einigen Tests hat sich herausgestellt, dass der Algorithmus Normalized Mutual Information die besten Ergebnisse liefert [4]. In der vorliegenden Arbeit wird
aus diesem Grund dieser Algorithmus verwendet. Im Gegensatz zum Kommissar
”
Computer“ findet der Objektvergleich bei der Objektregistrierung“ auf dem lokalen
”
Rechner statt, da der Objektvergleich der Objektregistrierung“ deutlich schneller
”
ist als der des Kommissar Computer“.
”
2.3
Weitere, bereits existierende Objektvergleichsverfahren
Der Kommissar Computer“ und die Objektregistrierung“ sind nicht die einzigen
”
”
Anwendungen, welche sich mit Objektvergleichen beschäftigen. Auf einige weitere
Anwendungen wird nachfolgend näher eingegangen.
Ein Projekt, welches sich ebenfalls mit der Objekterkennung auf Bildern
beschäftigt, ist retrievr“ [8]. Bei retrievr“ ist es möglich anhand einer selbst erstell”
”
ten Skizze oder eines Bildes nach ähnlichen Bildern in der Fotocommunity Flickr“
”
[9] zu suchen. Flickr“ ist eine Webanwendung, bei welcher Nutzer digitale Bilder mit
”
Kommentaren und Notizen versehen und diese ins Internet hochladen können, um
sie so anderen Nutzern zur Verfügung zu stellen. Allerdings kann retrievr“ nicht auf
”
den gesamten Fotobestand von Flickr“ zurückgreifen, sondern nur auf eine begrenz”
te Auswahl. Wie groß diese Auswahl ist, ist leider nicht ersichtlich. Des Weiteren
kann retrievr“ keine beliebigen Objekte erkennen und stößt so sehr schnell an sei”
ne Grenzen. Um gestohlene Gegenstände aufzufinden ist retrievr“ ungeeignet, da
”
nur bei Flickr“ nach Objekten gesucht werden kann und zudem auch nur auf einer
”
begrenzten Auswahl an Fotos. Weiterhin können keine beliebigen Objekte gefunden
werden.
Mit der kostenlosen Software Picasa“ [10] von der Firma Google Inc. [11] ist
”
eine Gesichtserkennung möglich. Picasa“ ist eine Bildverwaltungssoftware, welche
”
zusätzlich auch Bildbearbeitungsfunktionen bietet. Des Weiteren ist es mit Picasa“
”
möglich so genannte Web-Alben zu erstellen. Hierbei handelt es sich um OnlineFotoalben ähnlich wie bei Flickr“, welche für andere Nutzer freigegeben werden
”
können. In der Version 3 von Picasa“ kann innerhalb dieser Web-Alben nach Ge”
sichtern gesucht werden. Voraussetzung hierfür ist, dass der Nutzer den Gesichtern
einen Namen gibt. Anschließend kann der gesamte Bildbestand nach Fotos, auf denen diese Gesichter abgebildet sind durchsucht werden. Hierbei werden die Gesichter
miteinander verglichen und der Nutzer erhält die ähnlichsten Fotos. Für das Auffinden von gestohlenen Gegenständen ist Picasa“ ebenfalls ungeeignet, da mit Picasa“
”
”
nur Gesichter erkannt werden können, welche sich in einem Picasa“ Web-Album
”
8
befinden.
Eine Software mit der es möglich ist bei dem Online-Auktionshaus eBay [12] Auktionen zu beobachten ist BayWotch“ [13]. BayWotch“ richtet sich an potenzielle
”
”
Käufer und Verkäufer, welche bei eBay nach Auktionen suchen und diese beobachten wollen. Hierfür bietet BayWotch“ eine Suchfunktion und eine Datenbank,
”
in welcher sich Auktionen inklusive Artikelbeschreibung und Artikelbild speichern
lassen. Mit BayWotch“ lassen sich beliebig viele Auktionen beobachten und statis”
tisch auswerten. Ein Objektvergleich zwischen den gefundenen Bildern und einem
Referenzbild ist jedoch nicht möglich, weshalb BayWotch“ nicht zum Suchen von
”
Diebesgut anhand eines Referenzbildes eingesetzt werden kann. Es ist jedoch denkbar, diese Software zur Suche von entsprechenden Auktionen einzusetzen und die
zugehörigen Bilder mit einer anderen Software zu vergleichen.
Das Projekt Xcavator“ [14] von der Firma CogniSign [15] bietet die Möglichkeit
”
anhand eines Referenzbildes nach ähnlichen Bildern im Internet zu suchen. Hierbei
wählt der Nutzer auf dem Referenzbild Punkte aus, welche typisch für das zu suchende Bild sein sollen. Anhand der ausgewählten Punkte findet ein Bildvergleich nach
ähnlichen Bildern bei verschiedenen Bildagenturen und Anbietern von Bildbibliotheken, wie beispielsweise Fotolia [16], iStockPhoto [17] oder Photovault [18] statt.
Derzeitig kann auf ca. sieben Millionen Bilder zugegriffen werden. Der Nachteil dieser Anwendung ist, dass kein Bildvergleich bei Online-Auktionshäusern durchgeführt
werden kann. Somit ist Xcavator“ zum Auffinden von gestohlenen Gegenständen
”
ungeeignet.
2.4
Metrik
Eine Metrik ist eine Funktion, welche eine Eigenschaft von Software in einen
Zahlenwert (Maßzahl) abbildet [19]. Hierdurch werden Vergleichs- und Bewertungsmöglichkeiten geschaffen, anhand derer objektive Aussagen getroffen werden
können. Es gibt die unterschiedlichsten Arten von Metriken für verschiedene Aspekte der Bewertung. So kann anhand von Metriken beispielsweise die Qualität eines
Produkts oder der Ressourcenaufwand einer Anwendung gemessen werden. In der
Softwareentwicklung werden Metriken normalerweise für die Bewertung der Komplexität des Codes verwendet. Für eine Metrik gelten die nachfolgend beschriebenen
Gütekriterien [20].
• Objektivität
Es dürfen keine subjektiven Einflüsse des Messenden eingehen.
9
• Zuverlässigkeit
Bei einer Wiederholung müssen die Ergebnisse gleich sein.
• Normierung
Es muss eine Messergebnisskala und Vergleichbarkeitsskala vorhanden sein.
• Vergleichbarkeit
Das Maß muss mit anderen Maßen in Relation setzbar sein.
• Ökonomie
Die Metrik sollte nur minimale Kosten verursachen.
• Nützlichkeit
Die Metrik soll praktische Bedürfnisse messbar erfüllen.
• Validität
Mit der Metrik soll es möglich sein von messbaren Größen auf andere Kenngrößen zu schließen.
In der vorliegenden Arbeit sollen die Ergebnisse der beiden eingesetzten Objektvergleichsverfahren mittels einer einfachen Metrik zusammengeführt werden. Anhand dieser Metrik kann die Frage geklärt werden, welches Objektvergleichsverfahren die besseren Ergebnisse liefert und ob durch die Kombination der beiden
Verfahren ein besseres Gesamtergebnis erzielt werden kann.
2.5
Datenbank
In der vorliegenden Arbeit werden die im Internet gefunden Bilder mit
zusätzlichen Metainformationen in einer Datenbank gespeichert, um diese für den
anschließenden Objektvergleich vorliegen zu haben. Dies hat den Vorteil, dass die
Bilder auch zu einem späteren Zeitpunkt noch für einen Vergleich zur Verfügung stehen, selbst wenn sie im Internet bereits gelöscht wurden. Des Weiteren ermöglicht es
eine lückenlose Beweisführung und das spätere Auffinden eines vermutlichen Hehlers,
falls ein Gegenstand gestohlen wurde.
Als mögliche Datenbanken kommen unterschiedliche Typen von verschiedenen
Herstellern in Frage. Bekannte Datenbanken sind unter anderem Oracle Database
[21] von der Firma Oracle, MySQL [22] von der Firma Sun Microsystems oder DB2
[23] von IBM. Für die Kommunikation mit einer Datenbank, wird die Sprache SQL
[24] verwendet. Für die einfachen Formen des Datenbankzugriffs, wie beispielsweise
das Lesen, Schreiben oder Löschen von Daten existiert eine Standard SQL-Syntax.
10
Bei komplexeren Formen des Zugriffs und Spezialfunktionen einzelner Datenbanken
unterscheidet sich die SQL-Syntax der verschiedenen Hersteller jedoch sehr stark
untereinander.
Der Zugriff auf Datenbanken über Java ist mittels JDBC (Java Database Connectivity) [25] möglich. Alternativ hierfür kann auch ODBC (Open Database Connectivity) [26] verwendet werden, welches ursprünglich von der Firma Microsoft für
die Programmiersprache C entwickelt wurde [27]. Beides sind Schnittstellen um auf
Datenbanken unterschiedlicher Hersteller zugreifen zu können. Sowohl bei JDBC,
als auch bei ODBC sind für die unterschiedlichen Datenbanken Treiber erforderlich,
welche jedoch von den Datenbankherstellern zur Verfügung gestellt werden.
In der vorliegenden Arbeit kommt eine MySQL Datenbank zum Einsatz. Diese
Datenbank ist bereits im Institut vorhanden und in der Applikation Kommissar
”
Computer“ ist der Zugriff auf eine MySQL Datenbank implementiert.
2.6
Webcrawler
Ein Webcrawler ist eine Software, welche automatisch das Internet durchsucht
und Webseiten analysiert [28]. Hierdurch ist es möglich entweder die komplette
Website, oder wichtige Teile hiervon für bestimmte Anwendungen herunterzuladen.
Sehr häufig werden Webcrawler bei Suchmaschinen eingesetzt. Hierbei werden Internetseiten besucht und deren Inhalt analysiert. Anschließend wird die Seite für
eine spätere Suche über die Suchmaschine indiziert. Andere Anwendungsbereiche
von Webcrawlern sind das Sammeln von RSS-Newsfeeds oder E-Mailadressen.
In der vorliegenden Arbeit wird ein Webcrawler für die Suche nach Bildern im Internet verwendet. Dieser fragt die Google Bildsuche ab und speichert die gefundenen
Bilder für den anschließenden Objektvergleich in einer Datenbank ab.
2.7
Grid
Der Begriff Grid kommt von dem englischen Begriff Power Grid“, was ins Deut”
sche übersetzt Stromnetz bedeutet. Das Grid soll dem Benutzer so einfach Ressourcen (Speicher, CPU, ...) zur Verfügung stellen, wie es möglich ist aus einer
Steckdose Strom zu beziehen [29]. Ein Grid ist eine Infrastruktur, welche aus meh”
reren, unabhängigen Rechnern besteht und dem Benutzer verschiedene Ressourcen
zur Verfügung stellt“. Ressourcen können unter anderem Speicherplatz oder Rechenleistung sein. Der Vorteil des Grid ist, dass sehr hohe Rechenleistungen erzielt
werden können, da es dynamisch auf beliebige Größen skaliert.
11
Verwendet wird das Grid in der vorliegenden Arbeit für den Objektvergleich
des Kommissar Computer“, welcher eine sehr hohe Rechenleistung benötigt. Nur
”
durch die Verwendung eines Grids können die erforderlichen Ressourcen für die
Durchführung des Objektvergleichs bereitgestellt werden. Um auf ein Grid zugreifen zu können wird eine so genannte Middleware verwendet. Eine davon ist das
Globus Toolkit [30].
2.7.1
Globus Toolkit
Das Globus Toolkit (GT) ist eine kostenlose, serviceorientierte Software [30], mit
welcher auf sehr einfache Art und Weise bestehende Ressourcen in Grid Umgebungen
integriert werden können, bzw. eigene Grid Umgebungen aufgebaut werden können.
Im GT sind bereits viele Services integriert, welche die Interaktion mit einem Grid
ermöglichen. Hierbei handelt es sich jedoch überwiegend um administrative Services.
Zusätzlich zu den integrierten Services, können in Globus auch eigene Services implementiert werden. Hierfür bringt das Toolkit entsprechende APIs mit. Das GT ist
wie in Abbildung 2.1 gut zu sehen modular aufgebaut. In der vorliegenden Arbeit
werden die Module OGSA-DAI und Grid Resource Allocation Management verwendet, welche im Folgenden beschrieben werden.
In der vorliegenden Arbeit kommt die Version 4.0 des Globus Toolkits (GT 4)
zum Einsatz. Die Gründe hierfür sind, dass es bereits zur Verfügung steht und der
Kommissar Computer“ vollständig auf GT 4 aufbaut.
”
12
Abbildung 2.1. Hier ist die Architektur des GT 4 zu sehen. In den verschiedenen Farben sind die fünf Komponenten und die im GT 4 integrierten Services zu den einzelnen Komponenten zu erkennen. In dieser Arbeit werden die Module OGSA-DAI und
Grid Resource Allocation Management verwendet. Die Abbildung 2.1 entstammt aus
[31].
2.7.2
OGSA-DAI
OGSA-DAI (Open Grid Services Architecture-Data Access and Integration) [32]
ist eine Komponente des GT 4, welche den Zugriff auf Datenbanken mit GridTechnologien erlaubt und momentan der einzige Standard zur Anbindung von Datenbanken an Grid-Umgebungen ist. Den Zugriff auf unterschiedliche Datenbanken
kapselt OGSA-DAI durch die Bereitstellung von Schnittstellen. Eine Datenbank
stellt OGSA-DAI über Services zur Verfügung. Ein Client greift über diese Services
indirekt auf die Datenbank zu, so ist der Zugriff über gleich bleibende Schnittstellen auf die unterschiedlichsten Datenbanken sichergestellt. Ein Zugriff über diese
Schnittstellen ist somit auch möglich, wenn die Datenbank durch eine andere Datenbank ausgetauscht werden sollte. Es ist jedoch darauf zu achten, dass die Abfrage
13
einer Datenbank in der entsprechenden SQL-Syntax der angesprochenen Datenbank
erfolgen muss.
OGSA-DAI ist in zwei Bereiche unterteilt: Das Client-Toolkit und die eigentlichen
Gridservices, welche im Kern von OGSA-DAI laufen. Soll von einem Client eine
Anfrage an eine Datenbank erfolgen, so muss im Client Toolkit von OGSA-DAI eine
so genannte Activity verwendet werden. Für Standardabfragen beinhaltet OGSADAI bereits die notwendigen Activities, eine Erweiterung um eigenen Activities ist
jederzeit möglich.
Um eine Datenbank abzufragen, muss die Abfrage in SQL an das Client-Toolkit
gerichtet werden. Das Client-Toolkit schickt die Anfrage an den Kern von OGSADAI, welcher für die Anbindung und Kapselung der Datenbanken zuständig ist.
Der OGSA-DAI Kern fragt die Datenbank ab und liefert anschließend das Ergebnis der Abfrage zurück an das Client-Toolkit. Dort stehen die Daten zur weiteren
Verarbeitung dann zur Verfügung.
Abbildung 2.2. Die Abbildung zeigt den Ablauf der Kommunikation von OGSA-DAI. Ein
Client, welcher über OGSA-DAI auf eine Datenbank zugreifen möchte, muss zuerst mit
dem Client Toolkit von OGSA-DAI eine Anfrage erstellen. Das Client-Toolkit kapselt die
Anfrage und schickt diese an den OGSA-DAI Kern. Der OGSA-DAI Kern übernimmt die
Kommunikation mit der Datenbank und sendet die Ergebnisse zurück an das ClientToolkit.
2.7.3
Grid Resource Allocation Management
Beim Grid Resource Allocation Management (GRAM) [33] handelt es sich um
einen Web-Service im GT 4, welcher den Zugriff auf einen Scheduler kapselt. Ein
Scheduler überwacht und regelt die Ausführung verschiedener Jobs. Hierfür verwendet WS-GRAM eine XML basierte Beschreibungssprache (Job-Description). Um
14
Jobs im Grid berechnen zu können muss der Benutzer nur die Adresse zum Zugangsrechner des WS-GRAM-Service kennen und er muss lediglich die Job-Description als
XML-Datei an den WS-GRAM-Service schicken. Die Benutzung des Grid ist somit
für den Anwender völlig transparent.
Für die Verteilung der Jobs auf die einzelnen Rechner im Grid kommt ein Scheduler zum Einsatz. Der einfachste Scheduler ist Fork, welcher jedoch die freien Ressourcen der einzelnen Rechner nicht kennt. Im Gegensatz zu Fork gibt es auch Scheduler, welche die freien Ressourcen jedes einzelnen Rechners kennen und dementsprechend Jobs an die Rechner verteilen, welche gerade keine Aufgabe haben. Es
gibt mehrere mögliche Scheduler, beispielsweise Portable Batch System (PBS) [34]
oder Condor [35]. Der Zugriff auf die unterschiedlichen Scheduler wird durch den
WS-GRAM-Service gekapselt. Hierfür muss in der Job-Description nur angegeben
werden, welcher Scheduler verwendet werden soll. Der WS-GRAM estellt dann die
entsprechenden Jobs für den gewählten Scheduler und sendet sie ab.
In der vorliegenden Arbeit wird für die Objektvergleiche des Kommissar Com”
puter“ der Scheduler Condor verwendet. Dieser ist auf den Rechnern im Institut
installiert und im Kommissar Computer“ bereits implementiert. [1].
”
2.8
Kepler
Kepler ist eine in der Programmiersprache Java [36] geschriebene SoftwareApplikation zur Auswertung und Modellierung wissenschaftlicher Daten [3]. Entwickelt wurde Kepler von der Kepler Collaboration für die Erstellung wissenschaftlicher
Prozessabläufe. Mit Kepler ist es einfach möglich Prozessabläufe visuell darzustellen. Die dargestellten Prozesse werden Workflows genannt und zeigen den Datenfluss
zwischen den einzelnen Komponenten (Aktoren) des jeweiligen Workflow.
Kepler stellt eine spezielle Oberfläche zur Verfügung, auf welcher Workflows erstellt werden können. Die einzelnen Aktoren des Workflows können per Drag & Drop
frei auf der Oberfläche platziert und miteinander verbunden werden (siehe Abbildung 2.3). Hierdurch ist der Datenfluss zwischen den Aktoren einfach darzustellen
und zu verstehen. Um einen Workflow zu erstellen, kann auf viele Standardaktoren zurückgegriffen werden, welche bereits in Kepler integriert sind. So stehen unter
anderem Input/Output-Aktoren oder Aktoren für Webservices und mathematische
Berechnungen zur Verfügung. Eine Erweiterung von Kepler um eigene Aktoren, welche an spezielle Bedürfnisse angepasst sind, ist jedoch jederzeit möglich. Hierfür stellt
Kepler eine entsprechende API zur Verfügung. Um einen eigenen Aktor zu erstellen, muss eine Java-Klasse für den Aktor erstellt werden, sowie ein entsprechendes
15
Verzeichnis unter kepler/src/actors“. In diesem Verzeichnis muss eine XML-Datei
”
erstellt werden, welche die Beschreibung des Aktors enthält.
Jeder Aktor kann einen oder mehrere Ports besitzen, welche der Kommunikation
mit anderen Aktoren des Workflows dienen. Es gibt Input- und Output-Ports, wobei
die Input-Ports Daten von anderen Aktoren aufnehmen und die Output-Ports Daten
ausgeben, welche von anderen Aktoren genutzt werden können. Des Weiteren kann
ein Aktor mehrere Parameter besitzen. Ein Parameter ist ein Wert, welcher vom
Anwender eingegeben werden kann.
Die Ausführung eines Workflows wird durch einen so genannten Direktor
überwacht, hierfür muss jeder Workflow einen Direktor besitzen. Beispielsweise lässt
sich über einen Direktor steuern, wie oft der Workflow hintereinander ausgeführt
werden soll. In Kepler ist bereits eine Auswahl von einigen Direktoren enthalten.
Standardmäßig wird der Synchronus Dataflow Director“ (SDF Director) verwendet.
”
Für eine parallele Ausführung des Workflows muss ein anderer Direktor verwendet
werden.
Abbildung 2.3. Auf diesem Bild ist die grafische Oberfläche der Workflowengine Kepler zu erkennen. Links sind einige der Aktoren zu sehen, welche bereits in Kepler
integriert sind. Diese können per Drag & Drop auf der Oberfläche platziert werden.
Auf der Abbildung wurde ein einfacher Workflow erstellt. Mit dem Aktor File Reader“
”
kann eine Datei eingelesen werden. Die eingelesene Datei wird im Aktor File Wri”
ter“ wieder gespeichert und zwar unter dem Namen, welcher bei String Constant“
”
eingegeben wurde.
16
Kapitel 3
Methoden
In diesem Kapitel wird genauer auf die Methoden zur Bestimmung der Güte der
Objektvergleichsalgorithmen eingegangen. Hierfür werden unterschiedliche Evaluierungsmöglichkeiten aufgezeigt. Des Weiteren wird auf die Coil-20 Bilddatenbank
eingegangen, anhand der die Bestimmung der Güte mit einem standardisierten Datensatz gut möglich ist.
3.1
Evaluierungsmöglichkeiten
Die beiden Objektvergleichsverfahren Kommissar Computer“ und Objektregis”
”
trierung“ nutzen unterschiedliche Methoden für den Objektvergleich und liefern aus
diesem Grund unterschiedliche Ergebnisse zurück. Die Ergebnisse werden als Liste zurückgegeben, welche nach der Übereinstimmung der einzelnen Bilder mit dem
Referenzbild sortiert ist. Jedoch sind die Werte unterschiedlich. Dies ermöglicht mehrere denkbare Möglichkeiten die Objektvergeichsverfahren zu evaluieren.
Die einfachste Möglichkeit ist, für jedes Bild den arithmetischen Mittelwert aus
den Platzierungen der beiden Objektvergleichsverfahren zu bilden. Anschließend
sortiert man die Ergebnisliste anhand des berechneten Mittelwerts neu. Jedes der
beiden Objektvergleichsverfahren hätte so ein Gewichtung von 50%. Eine solche
Gewichtung würde Sinn machen, wenn sich keines der beiden Verfahren als besser
erweisen würde und die Ergebnisse nicht konstant sondern je nach verwendetem
Referenzbild bzw. dargestellten Objekten unterschiedlich gut ausfallen.
Liefert in den Tests eines der Objektvergleichsverfahren bessere Ergebnisse als
das andere zurück, so ist es denkbar dieses Verfahren stärker zu gewichten als das
andere. Somit hätte dieses Objektvergleichsverfahren einen größeren Einfluss auf das
Gesamtergebnis, was die Qualität steigern würde. Wie stark die einzelnen Verfahren
gewichtet werden muss anhand der Ergebnisse bestimmt werden, welche bei den
17
einzelnen Tests zurückgeliefert werden und in Kapitel 5 beschrieben sind.
Ist bei einem Objektvergleichsverfahren das Bild an erster Stelle mit besonders hohem Abstand zum nächsten Bild, so ist die Wahrscheinlichkeit einer
Übereinstimmung zwischen diesem Bild und dem Referenzbild besonders groß. Die
Wahrscheinlichkeit der Übereinstimmung wird weiter erhöht, wenn dieses Bild auch
bei dem anderen Objektvergleichsverfahren weit vorne liegt. In diesem Fall ist davon auszugehen, dass auf dem Referenzbild und dem verglichenen Bild die selben
Objekte abgebildet sind.
Im Gegensatz hierzu ist die Wahrscheinlichkeit, dass keine Übereinstimmung zwischen einem Bild und Referenzbild vorliegt besonders groß, wenn ein Bild bei einem
Objektvergleichsverfahren weit hinten liegt. Liegt das entsprechende Bild auch bei
dem anderen Objektvergleichsverfahren weit hinten, so ist davon auszugehen, dass
keine Übereinstimmung vorliegt.
3.2
Coil-20
Die Columbia University Object Image Library (Coil-20) [37] ist eine Datenbank bestehend aus Grauwertbildern von 20 Objekten. Die Objekte wurden auf
einer Drehscheibe gegen einen schwarzen Hintergrund fotografiert. Hierbei wurde
die Drehscheibe rotiert und mit einer feststehenden Kamera im Abstand von 5 Grad
ein Bild des Objekts aufgenommen. Dies entspricht bei einer 360 Grad Drehung 72
Bilder pro Objekt. Neben der Coil-20 Datenbank existiert auch eine Datenbank
mit Bildern von 100 Objekten, die Coil-100. Diese wurde aber aufgrund der großen
Anzahl von Bildern und der damit verbundenen langen Rechenzeit nicht verwendet. Bei den Coil Datenbanken handelt es sich um Standard-Datenbanken, welche
beispielsweise für das Testen von Objektvergleichsverfahren herangezogen werden
können.
Die Coil-20 Datenbank besteht aus zwei Sätzen von Bildern. Der erste Satz besteht
aus 360 unverarbeiteten Bildern von 5 Objekten, der zweite Satz enthält alle 1440
Bilder in normalisierter Form von den 20 Objekten. Bei den Bildern in normalisierter
Form besteht das Bild aus dem kleinsten Quadrat, welches das Objekt gerade noch
enthält. Der restliche Hintergrund wurde entfernt.
Erhältlich ist die Coil-20 Datenbank als Zip-Archiv im Internet unter [37]. Für das
Objektvergleichsverfahren “Kommissar Computer” müssen die einzelnen Bilder in
einer Datenbank gespeichert sein. Aus diesem Grund wurde für die Workflowengine
Kepler der Aktor ImagesFromFolderToDB“ erstellt. Dieser Aktor liest die Bilder
”
aus einem lokalen Verzeichnis ein und schreibt sie in die Datenbank. Benötigt wird
18
Abbildung 3.1. Beispiel für verschiedene Bilder eines Objekts der Coil-20 Datenbank.
Diese Bilder stammen aus dem Satz mit den normalisierten Bildern der Datenbank.
dieser zusätzliche Aktor, da der bereits für diese Arbeit implementierte Aktor Wri”
teImagesInDB“ Bilder direkt von einem Webserver liest und nicht aus einem lokalen
Verzeichnis.
19
Kapitel 4
Implementierung
Dieses Kapitel beschreibt den Aufbau und die Implementierung der erstellten
Testumgebung für die Bestimmung der Güte von Objektvergleichsverfahren, sowie
die Funktionalität der einzelnen Aktoren.
4.1
Aufbau
Um in Zukunft die Testumgebung einfach erweitern zu können, wurde diese modular aufgebaut. Hierfür wurde die Workflowengine Kepler verwendet. Der Workflow
besteht aus mehreren Aktoren, von denen jeder eine definierte Funktionalität besitzt.
So muss zu Beginn des Workflows eine Verbindung mit der Datenbank hergestellt
werden. Anschließend wird im Internet nach Bildern gesucht und diese werden in
der Datenbank abgelegt. Nachdem die Bilder in der Datenbank gespeichert wurden,
werden diese mit dem Referenzbild verglichen. Zum Schluss wird das Ergebnis des
Vergleichs in Form einer sortierten Liste ausgegeben. Auf die Funktionalität der
einzelnen Aktoren wird im Folgenden näher eingegangen.
20
Abbildung 4.1. Abbildung 4.1 zeigt den schematischen Aufbau des Workflows dieser
Arbeit. Oben ist ein stark vereinfachter Workflow der beiden Verfahren zu sehen. Die
Unterschiede der Verfahren bestehen nur im eigentlichen Vergleich selbst. Die Vorund Nachbearbeitung, hier mit Bilder holen“ und Ergebnis gekennzeichnet ist bei
”
”
”
beiden Verfahren gleich. Der untere Workflow stellt den Aufbau der zu erstellenden
Testumgebung dar. Zu sehen sind die einzelnen Komponenten, von denen jede eine
definierte Funktionalität besitzt.
21
4.2
Funktionalität der einzelnen Aktoren
Insgesamt besteht der Workflow für die beiden Objektvergleichsverfahren Kom”
missar Computer“ und Objektregistrierung“ aus neun unterschiedlichen Aktoren.
”
Einige kommen bei beiden Verfahren zum Einsatz, da sie eine gemeinsame Funktionalität erfüllen. Diese sind beispielsweise die Aktoren für die Initialisierung oder die
Google Bildersuche. Zusätzlich gibt es Aktoren, welche jeweils nur bei einem Verfahren eingesetzt werden, z.B. der Objektvergleichsalgorithmus selbst. Die einzelnen
Aktoren und deren Funktionalität werden im Folgenden näher beschrieben.
4.2.1
InitObjectComparison
Der Aktor InitObjectComparison“ initialisiert den Objektvergleich. Hier werden
”
die Verbindungen zur Datenbank über OGSA-DAI [32] und JDBC [25] geöffnet.
Die JDBC-Schnittstelle wurde im Kommissar Computer“ zusätzlich zu OGSA-DAI
”
implementiert, da es mit einer früheren Version von OGSA-DAi nicht möglich war
große Datenmengen mittels des OGSA-DAI Services zu lesen bzw. zu schreiben [1].
Die Verbindungen zur Datenbank sind notwendig, um die gefundenen Bilder
später in die Datenbank schreiben und aus dieser auslesen zu können. Des Weiteren
muss der Anwender in diesem Aktor angeben, ob für das Herstellen einer Internetverbindung ein Proxy benötigt wird. Ist dies der Fall, so müssen die benötigten
Einstellungen vorgenommen werden.
Die beiden Verbindungen über OGSA-DAI und JDBC werden über zwei OutputPorts an den nächsten Aktor übergeben.
4.2.2
GoogleImageSearch
Dieser Aktor dient der Bildsuche bei Google, hierfür muss der Anwender lediglich
den gewünschten Suchbegriff eingeben. Dieser Aktor ist ein Webcrawler, welcher
die Google Bildsuche abfragt und die URLs (Internetadressen) zu den gefundenen
Bildern zurückgeliefert. Die URLs werden zusammen mit dem Suchbegriff an den
nächsten Aktor übergeben. Ebenfalls werden die Verbindungen über OGSA-DAI
und JDBC, welche der Aktor an seinen Input-Ports erhält, an den nächsten Aktor
übergeben.
4.2.3
WriteImagesInDB
Der Aktor WriteImagesInDB“ bekommt vom vorherigen Aktor das Ergebnis der
”
Bildsuche in Form von URLs, den Suchbegriff mit welchem die Bilder im Internet
22
gefunden wurden, sowie die Verbindung zur Datenbank übergeben. Die zugehörigen
Bilder der URLs werden von dem entsprechenden Webserver geladen und in die
Datenbank geschrieben. In dieser existiert eine Tabelle mit mehreren Spalten, welche
für das Ablegen der durch die Suche gefundenen Bilder genutzt wird. Die einzelnen
Spalten sind:
• DATE
Hier werden Datum und Uhrzeit des Auffindens der Bilder in die Datenbank
gespeichert.
• IMAGE
Beinhaltet die Bilder selbst.
• IMAGETYPE
In dieser Spalte wird der Dateityp der Bilder gespeichert.
• KEYFILE
Diese Spalte wird für das Objektvergleichsverfahren Kommissar Computer“
”
benötigt. Die bei einem Vergleich berechneten Schlüsseldateien werden hier
abgelegt. In den Schlüsseldateien sind die berechneten Schlüssel gespeichert.
• SEARCHENGINE
Hier wird die Suchmaschine gespeichert, mit welcher die Bilder im Internet
gefunden wurden. In der vorliegenden Arbeit wird nur die Google Bildsuche
verwendet. Zukünftig ist es jedoch denkbar weitere Suchmaschinen zu integrieren.
• SEARCHTERM
Beinhaltet den Suchbegriff, mit welchem die Bildsuche durchgeführt wurde.
• SIZE
In dieser Spalte wird die Größe der Bilder gespeichert.
• URL
Die Spalte in der die URLs zu den Bildern gespeichert werden, unter welchen
diese im Internet gefunden wurden.
• NAME
Beinhaltet den Namen der Bilder.
23
Nach dem erfolgreichen Schreiben übergibt dieser Aktor an seinen Output-Ports
die Verbindung zur Datenbank über OGSA-DAI und JDBC und zusätzlich den Suchbegriff, mit welchem die Bilder bei der Bildsuche gefunden wurden. Der Suchbegriff
wird im Folgenden noch für den Vergleich benötigt.
4.2.4
GetImagesFromDB
Dieser Aktor erhält an seinen Input-Ports die Datenbankverbindung über OGSADAI und JDBC, sowie den Suchbegriff der Bilder, welcher im Aktor GoogleIma”
geSearch“ für die Bildsuche verwendet wurde. Dieser Suchbegriff wird verwendet,
um die Werte unter denen die Bilder zu diesem Suchbegriff in der Datenbank liegen
auszulesen. Hierfür wird ein entsprechender SQL-Befehl erzeugt und mit diesem die
Datenbank abgefragt. Der Benutzer muss hierfür keine Angaben machen, sich also
auch nicht mit der Datenbank auskennen, was die Bedienung sehr vereinfacht.
An den Output-Ports des Aktors werden die ausgelesenen Werte zu den entsprechenden Bildern, sowie die Datenbankverbindung an den nächsten Aktor übergeben.
Dieser Aktor ist der letzte gemeinsame Aktor beider Verfahren. Im Folgenden werden die Aktoren, welche für die einzelnen Objektvergleichsverfahren implementiert
wurden genauer erklärt.
4.2.5
WriteImagesInFolder
Der Aktor WriteImagesInFolder“ bekommt an seinem Input-Port die Werte unter
”
welchen die Bilder in der Datenbank liegen von dem vorhergehenden Aktor GetI”
magesFromDB“ übergeben. Anschließend werden die Bilder zu den übergebenen
Werten aus der Datenbank gelesen und in einem lokalen Verzeichnis gespeichert.
Hierfür muss der Anwender den Pfad des Verzeichnisses angeben, in welches die
Bilder gespeichert werden sollen. Notwendig ist dies für das Objektvergleichsverfahren Objektregistrierung“, da dieses Verfahren für den Objektvergleich nur Bilder
”
verwenden kann, welche in einem lokalen Verzeichnis gespeichert sind.
Der Pfad des Verzeichnisses, in welchem die Bilder gespeichert werden, wird an
den nächsten Aktor übergeben, in dem der eigentliche Objektvergleich mittels Registrierung stattfindet.
4.2.6
ObjectRecognition
In diesem Aktor findet der eigentliche Objektvergleich der Objektregistrierung“
”
statt. Hierfür werden die Bilder aus dem vorher übergebenen Verzeichnis verwendet. Der Pfad zu diesem Verzeichnis wird von dem vorhergehenden Aktor übergeben.
24
Ebenfalls wird ein Referenzbild verwendet, mit welchem alle eingelesenen Bilder verglichen werden. Dieses Referenzbild kann vom Anwender ausgewählt werden. Als Ergebnis wird eine Liste zurückgeliefert. Diese ist nach der Güte der Übereinstimmung,
von den Objekten des Referenzbildes mit den zu vergleichenden Bildern sortiert.
Das Ergebnis des Vergleichs wird anschließend durch den Output-Port des Aktors
an den Aktor CombineResults“ übergeben.
”
4.2.7
GramService
Dieser Aktor wird für den zweiten Objektvergleichsalgorithmus, den Kommissar
”
Computer“ benötigt. Er erhält an seinen Input-Ports die Datenbankverbindung über
OGSA-DAI und JDBC. Die Datenbankverbindungen werden später verwendet um
das Referenzbild in der Datenbank zu speichern. Zusätzlich bekommt dieser Aktor
an einem Input-Port die Werte, unter denen die Bilder in der Datenbank liegen, von
dem Aktor GetImagesFromDB“ übergeben. In dem Aktor GramService“ werden
”
”
die Parameter gesetzt, welche später für die Job-Description und somit für einen
Vergleich im Grid benötigt werden. Hierfür muss der Anwender folgende Parameter
in den Aktor eingeben:
• KeysRootFolder
Der Ordner in dem alle Dateien abgelegt werden, welche durch den Vergleich
erzeugt wurden. In diesem Ordner wird später die Job-Description für den
Vergleich im Grid abgelegt. Des Weiteren werden hier die Dateien, in welchen
die Anzahl übereinstimmender Schlüssel des Referenzbildes mit den zu vergleichenden Bildern gespeichert sind abgelegt, sowie Stdout und Stderr des
WS-GRAM Jobs.
• GramPath
Hier muss der Anwender Hostname und Port zum GRAM-Zugangsrechner
festlegen. Der WS-GRAM Service erstellt anhand der Job-Description die einzelnen Jobs und versendet sie mittels des Schedulers. Der in dieser Arbeit
eingesetzte Scheduler ist Condor.
• GridExecutable
Hier wird der Pfad zur ausführbaren Datei für den Scheduler angegeben.
Nach der Eingabe wird überprüft, ob es sich bei den eingegebenen Parametern um
gültige Werte handelt. Anschließend werden die eingegebenen Werte an den nachfolgenden Aktor InspectorComputer“ übergegeben. Ebenfalls werden die Werte,
”
25
unter denen die zu vergleichenden Bilder in der Datenbank liegen übergeben. Diese
Werte liegen an einem der Input-Ports an und werden unverändert an den Aktor
InspectorComputer“ übermittelt.
”
4.2.8
InspectorComputer
Hier findet der Objektvergleich des Objektvergleichsverfahren Kommissar Com”
puter“ statt. Hierfür wird zunächst die Job-Description für den Objektvergleich
erstellt und anschließend der eigentliche Vergleich ausgeführt. Die für den jeweiligen
Vergleich benötigten Bilder werden aus der Datenbank geladen. Aus Performancegründen erfolgt die Berechnung im Grid. Der verwendete Algorithmus für die Berechnung ist deutlich langsamer, als der Objektvergleichsalgorithmus der Objekt”
registrierung“. Die Berechnung von vielen Bildern würde deshalb auf einem lokalen
Rechner wenig Sinn machen.
Nach dem Objektvergleich wird die Datenbankverbindung geschlossen, da diese
nicht mehr benötigt wird. Anschließend wird eine sortierte Liste des Ergebnisses
erstellt. Diese Liste ist nach der Anzahl der übereinstimmenden Punkte der Bilder
mit dem Referenzbild sortiert. Sie wird die sortierte Liste an den nächsten Aktor
übergeben.
4.2.9
CombineResults
Dieser Aktor erhält an seinen Input-Ports die Ergebnisse der beiden Objektvergleichsverfahren Kommissar Computer“ und Objektregistrierung“. Die Ergebnisse
”
”
sind bereits nach der Übereinstimmung der einzelnen Bilder mit dem Referenzbild
sortiert. In diesem Aktor ist es möglich die Ergebnisse zusammenzuführen und unterschiedlich stark zu gewichten. Hierfür kann der Anwender angeben, welches Verfahren wie stark gewichtet werden soll. Anschließend werden die Ergebnisse der
einzelnen Objektvergleichsverfahren, sowie das gewichtete Gesamtergebnis auf der
Konsole ausgegeben.
Die zurückgelieferten Ergebnisse der einzelnen Verfahren sind sehr unterschiedlich.
Das Objektvergleichsverfahren Kommissar Computer“ liefert die Anzahl gemeinsa”
mer markanter Punkte zurück, während das Objektvergleichsverfahren Objektre”
gistrierung“ einen Wert für die Güte der Übereinstimmung der verglichenen Objekte
zurückliefert. Somit können diese Werte nicht direkt miteinander verglichen werden.
Die einzige Möglichkeit die unterschiedlichen Verfahren miteinander zu vergleichen,
ist somit nur über die Rangfolge der einzelnen Bilder möglich. Welches Objektvergleichsverfahren die besseren Ergebnisse liefert und dementsprechend eventuell
26
stärker gewichtet wird ist von den Ergebnissen verschiedener Test abhängig.
Abbildung 4.2. Die Kepler Oberfläche mit dem Workflow dieser Arbeit. Zu sehen sind
die einzelnen Aktoren, sowie deren Verbindung untereinander. Die Aktoren sind von
links nach rechts und von oben nach unten: InitObjectComparison“, GoogleIma”
”
geSearch“, WriteImagesInDB“, GetImagesFromDB“, WriteImagesInFolder“, Ob”
”
”
”
jectRecognition“, GramService“, InspectorComputer“ und CombineResults“. Die
”
”
”
Funktionalität dieser Aktoren wird in Kapitel 3.2 beschrieben.
27
Kapitel 5
Ergebnisse
Dieses Kapitel beschreibt die Ergebnisse, welche im Laufe dieser Arbeit erzielt wurden. Zur Bestimmung der Güte wurde einerseits die Bilddatenbank Coil-20 eingesetzt, andererseits wurde auch mit selbst aufgenommen Fotos nach den entsprechenden Gegenständen im Internet gesucht und die gefundenen Bilder mit dem
Referenzbild verglichen.
5.1
Güte der Objektvergleichsverfahren
Die Güte der beiden Objektvergleichsverfahren wurde zunächst mit der Coil-20
Bilddatenbank bestimmt. Diese Datenbank bietet aufgrund der großen Anzahl von
Bildern unterschiedlicher Objekte gute Voraussetzungen für solch einen Test. Allerdings entspricht dieser Test nicht den realen Anwendungsfällen, für die die beiden Objektvergleichsverfahren entwickelt wurden. Die beiden Objektvergleichsverfahren sollen eingesetzt werden, um anhand eines Referenzbildes im Internet nach
ähnlichen Bildern zu suchen. Aus diesem Grund wurden zusätzlich zu den Tests mit
der Coil-20 auch eigene Fotos aufgenommen, anhand derer nach den entsprechenden
Gegenständen im Internet gesucht wurde.
5.2
Bestimmung der Güte mit der Coil-20 Bilddatenbank
Hier wird näher auf die Ergebnisse eingegangen, welche mit der Coil-20 Bilddatenbank erzielt wurden. Um möglichst viele verschiedene Objekte miteinander
vergleichen zu können und somit auch die Aussagekraft der Tests zu steigern, wurde für die Tests der Bilddatensatz gewählt, welcher alle 20 Objekte der Datenbank
enthält. Das Problem hierbei ist, dass dieser Bilddatensatz aus insgesamt 1440 Bildern besteht und ein Bildvergleich eines Referenzbild mit dem kompletten Bildda28
tensatz bereits mehrere Stunden dauert. Aus diesem Grund wurde nur jedes dritte
Bild eines Objektes für den Vergleich verwendet. Dies bedeutet, dass die Drehung
des Objektes bei zwei aufeinander folgenden Bildern 15 Grad beträgt, anstatt 5
Grad, wie beim originalen Bilddatensatz. Pro Objekt stehen somit 24 Bilder für
einen Vergleich zur Verfügung. Das Referenzbild selbst soll nicht im Vergleich enthalten sein, was bedeutet, dass von den Bildern dieses Objekts 23 Bilder für den
Vergleich zur Verfügung stehen. Insgesamt müssen bei 20 Objekten also 479 Bilder
pro Vergleich mit einem Referenzbild verglichen werden. Das Objektvergleichsverfahren Objektregistrierung“ benötigt für einen Vergleich eines Referenzbildes mit
”
diesen 479 Bildern ungefähr 15 Minuten, der Kommissar Computer“ ungefähr eine
”
Stunde.
Im Idealfall sind die ersten 23 Einträge der sortierten Liste, welche von jedem
Verfahren zurückgeliefert wird, die 23 Bilder des Objekts von dem auch das Referenzbild ist. Es wurden insgesamt zehn Vergleiche durchgeführt, bei denen jeweils
ein anderes Referenzbild verwendet wurde.
Die Tabelle 5.1 zeigt, in Zehnerschritte unterteilt, wie viele der 23 Bilder eines
Objektes, unter den ersten 50 Einträgen zu finden sind. Die Werte sind die Durchschnittswerte der zehn Vergleiche. In der Tabelle ist zu erkennen, dass der Kom”
missar Computer“ die besseren Ergebnisse liefert. Der Kommissar Computer“ lie”
fert sowohl unter den ersten zehn, wie auch unter den ersten 20 Platzierungen mehr
Treffer als die Objektregistrierung“. Bei den ersten 30 Einträgen der Liste, unter
”
denen im Idealfall 23 Treffer zu finden sind, liefert der Kommissar Computer“ im
”
Durchschnitt 14,6 Treffer und die Objektregistrierung“ 10 Treffer. Dagegen liefert
”
die Objektregistrierung“ im Bereich zwischen Rang 21 und Rang 40 das etwas bes”
sere Ergebnis. Die Plätze 51 bis 479 wurden nicht mehr so detailliert betrachtet,
aber auch hier ist zu erkennen, dass der Kommissar Computer“ insgesamt ein bes”
seres Ergebnis liefert. Während die Objektregistrierung“ in diesem Bereich durch”
schnittlich 10,6 Treffer lieferte, ergab das Objektvergleichsverfahren des Kommissar
”
Computer“ nur 6,3 Treffer. Zusammenfassend lässt sich sagen, dass das Objektvergleichsverfahren des Kommissar Computer“ unter den relevanten vorderen Plätze
”
mehr Treffer erzielt, als das Objektvergleichsverfahren der Objektregistrierung“.
”
29
Objektregistrierung
Kommissar Computer
1 - 10
5
8,1
11 - 20
3,2
5,2
21 - 30
1,8
1,3
31 - 40
1,3
1,0
41 - 50
1,1
1,1
51 - 479
10,6
6,3
Tabelle 5.1. Diese Tabelle zeigt, in Zehnerschritte unterteilt, wie viele Bilder eines
Objekts unter den ersten 50 Bildern zu finden sind. Insgesamt existieren 23 Bilder,
des zu suchenden Objekts. Es ist zu erkennen, dass das Objektvergleichsverfahren
Kommissar Computer“ die besseren Ergebnisse erzielt. Unter den ersten 50 Bildern
”
erkannte der Kommissar Computer“ im Durchschnitt 16,7 Bilder des zu suchenden
”
Objekts und das Objektvergleichsverfahren Objektregistrierung“ 12,4 Bilder.
”
In der folgenden Grafik (Abbildung 5.1) ist detailliert zu erkennen, welches Objektvergleichsverfahren, welche Anzahl an Treffern unter den ersten zehn Platzierungen liefert. Die maximale Anzahl von Treffern bei jedem Platz ist zehn, da zehn
Vergleiche durchgeführt wurden.
Abbildung 5.1. Dieses Diagramm zeigt die Anzahl der Treffer, welche die beiden Objektvergleichsverfahren unter den ersten zehn Platzierungen lieferten. Es wurden
zehn Vergleiche durchgeführt, weshalb die maximale Anzahl an Treffern bei jedem
Platz zehn beträgt.
Hier ist zu erkennen, dass der Kommissar Computer“ durchgehend das bessere
”
Ergebnis liefert. Bei den ersten beiden Plätzen kommt der Kommissar Computer“
”
auf die maximale Anzahl von zehn Treffern, während die Objektregistrierung“ hier
”
nur sieben bzw. sechs Treffer liefert. Auf den weiteren Plätzen liefert der Kommissar
”
Computer“ ebenfalls das bessere Ergebnis, so kam er bei den Plätzen drei bis fünf
30
auf einen sehr guten Wert von neun Treffern, während die Objektregistrierung“
”
hier nur auf sechs bzw. vier Treffer kommt. Des Weiteren ist zu erkennen, dass das
Objektvergleichsverfahren Kommissar Computer“ immer mindestens zwei Treffer
”
mehr liefert, als das Objektvergleichsverfahren der Objektregistrierung“.
”
Nachfolgend soll ein ausgewählter Vergleich genauer betrachtet werden. Das Referenzbild für diesen Vergleich ist in Abbildung 5.2 dargestellt. Zunächst soll das
Ergebnis betrachtet werden, welches das Objektvergleichsverfahren der Objektregistrierung geliefert hat. Die Objektregistrierung liefert als Ergebnis einen Wert für
die Übereinstimmung der Objekte zurück. Auf Rang Eins liegt ein Bild, welches das
selbe Objekt wie das Referenzbild enthält. Der Wert der Übereinstimmung beträgt
0,309. Auf Rang zwei und drei liegen Bilder, welche ein anderes Objekt enthalten.
Für das Bild auf Rang zwei wurde 0,307 als Wert der Übereinstimmung berechnet
und für das Bild auf Rang drei 0,304. Die einzelnen Bilder sind unter 5.3 abgebildet.
Abbildung 5.2. Das Referenzbild, welches für den näher beschriebenen Vergleich verwendet wurde.
Das Objektvergleichsverfahren des Kommissar Computer“ liefert eine Liste
”
zurück, welche nach der Anzahl der übereinstimmenden markanten Punkte sortiert
ist. Hier liegen auf den ersten drei Plätzen Bilder, welche das Objekt des Referenzbildes enthalten. Das Bild auf Rang eins wurde mit 46 gemeinsamen markanten
Punkten erkannt, das Bild auf Rang zwei mit 43 und das Bild, welches auf Rang
drei liegt mit 23 gemeinsamen markanten Punkten. Die einzelnen Bilder sind in
Abbildung 5.4 zu sehen.
31
Abbildung 5.3. Die ersten drei Plätze (v.l.n.r.) des Objektvergleichs mit dem Objektvergleichsverfahren der Objektregistrierung“ und des Referenzbildes, welches unter
”
Abbildung 5.2 zu sehen ist. Die Werte für die Übereinstimmung der abgebildeten Objekte mit dem Referenzbild betragen bei dem linken Bild 0,309, bei dem mittleren Bild
0,307 und bei dem rechten Bild 0,304
Abbildung 5.4. Die ersten drei Plätze (v.l.n.r.) des Objektvergleichs mit dem Objektvergleichsverfahren Kommissar Computer“ und des Referenzbild, welches in der Abbil”
dung 5.2 zu sehen ist. Bei dem ersten Bild wurden 46 gemeinsame markante Punkte
gefunden, beim Zweiten 43 und beim dritten Bild 23.
5.3
Vergleiche mit eigenen Fotos
Die beiden Objektvergleichsverfahren Kommissar Computer“ und Objektregis”
”
trierung“ wurden entwickelt, um im Internet nach Bildern von Diebesgut zu suchen
und diese mit einem Referenzbild zu vergleichen. Die Bestimmung der Güte der beiden Objektvergleichsverfahren anhand der Coil-20 Datenbank liefert zwar verwertbare Ergebnisse, da es sich um eine standardisierte Datenbank handelt, entspricht
aber nicht dem realen Anwendungsfall. Um einen realistischeren Anwendungsfall
zu simulieren, wurde mit eigenen Fotos nach den entsprechenden Gegenständen im
32
Internet gesucht. Nachfolgend sind drei Tests mit eigenen Bildern beschrieben.
5.3.1
Nokia 6233 Mobiltelefon
Der erste Objektvergleich wurde mit einem Nokia 6233 Mobiltelefon durchgeführt
(siehe Abbildung 5.5). Als Suchbegriff wurde Nokia Handy“ verwendet, um den
”
Test nicht zu einfach zu gestalten. Unter dem Suchbegriff Nokia 6233“ würden fast
”
ausschließlich Bilder dieses Mobiltelefons gefunden, somit würde auch die Ergebnismenge überwiegend aus Bildern des Nokia 6233 bestehen.
Abbildung 5.5. Das Referenzbild für den ersten Objektvergleich. Bei dem abgebildeten
Mobiltelefon handelt es sich um ein Nokia 6233.
In der Abbildung 5.6 ist zu sehen, welche Bilder die ersten drei Plätze der Objektvergleichsverfahren Objektregistrierung“ (oben v.l.n.r.) und Kommissar Com”
”
puter“ (unten v.l.n.r.) belegt haben. Es ist zu erkennen, dass bei beiden Verfahren
kein Bild des Nokia 6233 unter den ersten Plätzen zu finden ist. Eine manuelle
Überprüfung der Bilder ergab, dass auch Bilder gefunden wurden, auf denen ein
Nokia 6233 abgebildet ist. Das schlechte Ergebnis lässt sich durch den sehr allgemein gehaltenen Suchbegriff und die große Ähnlichkeit der einzelnen Handymodelle
untereinander erklären. Die Werte für die Übereinstimmung der abgebildeten Objekte betragen bei der Objektregistrierung“ für das Bild auf Rang eins 0,232, bei
”
dem Bild auf Rang zwei 0,224 und beim Bild auf Rang drei 0,223. Bei einem derart
geringen Unterschied der einzelnen Werte kann von keinem eindeutigen Ergebnis ge33
sprochen werden. Das Objektvergleichsverfahren Kommissar Computer“ erkannte
”
bei dem Bild auf Rang eins acht, bei dem Bild auf Rang zwei sieben und bei dem
Bild auf Rang drei sechs gemeinsame markante Punkte.
Insgesamt wurden bei diesem Objektvergleich wurden 781 Bilder mit dem Referenzbild verglichen.
Abbildung 5.6. Hier sind die ersten drei Platzierungen der beiden Objektvergleichsverfahren Objektregistrierung“ (oben v.l.n.r.) und Kommissar Computer“ (unten v.l.n.r.)
”
”
zu sehen. Gesucht wurde nach dem Nokia 6233, welches in Abbildung 4.7 zu sehen ist. Unter den ersten Platzierungen befindet sich kein Bild des Nokia 6233. Dies
lässt sich durch den sehr allgemein gehaltenen Suchbegriff Nokia Handy“ und die
”
Ähnlichkeit der verschiedenen Handymodelle untereinander erklären.
5.3.2
Siemens Gigaset
Im folgenden Objektvergleich wurde nach einem Telefon aus der Siemens Gigaset Produktreihe gesucht. Hierbei wurde der Suchbegriff Siemens Gigaset“ für die
”
Bildsuche verwendet. Das für den Objektvergleich verwendete Referenzbild ist in
der Abbildung 5.7 zu sehen.
Bei diesem Test muss davon ausgegangen werden, dass sehr wenige Bilder gefunden werden, welche exakt das gleiche Modell wie das Referenzbild enthalten, da
34
Abbildung 5.7. Das Referenzbild des zweiten Versuchs. Hierbei handelt es sich um
ein Telefon aus der Gigaset Produktreihe der Firma Siemens.
dieses Modell bereits einige Jahre alt ist und es mehrere Nachfolgermodelle gibt,
welche alle sehr ähnlich untereinander sind. Das Ergebnis, welches die beiden Objektvergleichsverfahren zurückliefern, ist in Abbildung 5.8 zu sehen. Die oberen drei
Bilder sind die ersten drei Platzierungen der Objektregistrierung“ (v.l.n.r.) und
”
die unteren drei Bilder die ersten drei Platzierungen des Kommissar Computer“
”
(v.l.n.r.).
Wie erwartet befindet sich nicht exakt das gleiche Modell unter den ersten Platzierungen, jedoch einige sehr ähnliche Modelle. Die Werte der Übereinstimmung
der Objekte betragen bei der Objektregistrierung“ 0,283 bei dem Bild auf Rang
”
eins, 0,250 bei dem Bild auf Rang zwei und 0,237 bei dem Bild auf Rang drei. Die
Anzahl der gemeinsamen markanten Punkte, welche von dem Objektvergleichsverfahren Kommissar Computer“ berechnet wurden, beträgt bei jedem diesen drei
”
Bildern jeweils vier. Bei diesem Objektvergleich wurden 607 Bilder mit dem Referenzbild verglichen.
35
Abbildung 5.8. Hier sind die ersten drei Platzierungen der beiden Objektvergleichsverfahren zu sehen. Oben (v.l.n.r.) die ersten drei Platzierungen der Objektregistrie”
rung“ und unten die des Kommissar Computer“ (v.l.n.r.). Gesucht wurde nach einem
”
Telefon aus der Gigaset Produktreihe der Firma Siemens, welches in Abbildung 5.7
zu sehen ist. Mit Ausnahme des Bildes unten rechts, enthalten alle Bilder Objekte,
welche dem Referenzbild relativ ähnlich sind.
5.3.3
JanSport Rucksack
Der dritte Objektvergleich wurde mit einem Rucksack der Firma JanSport durchgeführt. Das hierfür verwendete Referenzbild ist in Abbildung 5.9 zu erkennen. Gesucht wurde nach dem Begriff Rucksack Jansport“. Bei diesem Suchbegriff ist da”
von auszugehen, dass viele ähnliche Bilder gefunden werden. Insgesamt wurden bei
diesem Objektvergleich 425 Bilder mit dem Referenzbild verglichen. Das Objektvergleichsverfahren Objektregistrierung“ benötigte für diesen Vergleich 16 Minuten
”
und der Kommissar Computer“ mit 50 Minuten ungefähr dreimal so lang.
”
In der Abbildung 5.10 sind die Bilder zu sehen, welche die beiden Objektvergleichsverfahren mit der größten Übereinstimmung erkannt haben. Die oberen drei
Bilder sind Rang eins bis drei (v.l.n.r.) des Objektvergleichsverfahren Objektregis”
trierung“ und die unteren drei Bilder Rang eins bis drei (v.l.n.r.) des Kommissar
”
36
Abbildung 5.9. Das Referenzbild des dritten Versuchs. Zu sehen ist ein Rucksack der
Firma JanSport.
Computer“. Bei dem Objektvergleichsverfahren Objektregistrierung“ belegen zwei
”
ähnliche Modelle die ersten beiden Plätze, allerdings unterscheiden diese sich etwas
von dem gesuchten Modell. Die Werte für die Übereinstimmung der Objekte betragen bei dem Bild auf Rang eins 0,302, bei dem Bild auf Rang zwei 0,3 und bei
dem Bild auf Rang drei 0,28. Das Ergebnis, welches der Kommissar Computer“
”
zurückliefert ist sehr gut. Hier wurden auf den ersten drei Plätzen zwei Bilder eines
Rucksacks des selben Modells erkannt, lediglich die Farben sind anders. Alle drei
Bilder enthalten sieben gemeinsame markante Punkte mit dem Referenzbild.
37
Abbildung 5.10. Auf dieser Abbildung sind die ersten drei Platzierungen der beiden
Objektvergleichsverfahren Objektregistrierung“ (oben v.l.n.r.) und Kommissar Com”
”
puter“ (unten v.l.n.r.) zu sehen. Gesucht wurde nach einem Rucksack der Firma JanSport, welcher in Abbildung 5.9 zu sehen ist. Leider sind die Bilder, welche bei dem
Objektvergleichsverfahren Objektregistrierung“ auf den vorderen Plätzen zu finden
”
sind sehr klein, so dass diese beim Skalieren unscharf werden.
5.3.4
Zusammenfassung
Wie schon bei den Objektvergleichen mit der Coil-20 Bilddatenbank, liefert der
Kommissar Computer“ auch bei den Objektvergleichen mit den eigenen Fotos die
”
besseren Ergebnisse. Es wurden fünf verschiedene Objektvergleiche durchgeführt.
Hierbei wurde das gesuchte Objekt bei dem Objektvergleichsverfahren Kommissar
”
Computer“ durchschnittlich auf Rang 93 und bei der Objektregistrierung“ auf Rang
”
185 erkannt. Dieses Ergebnis lässt sich durch die sehr allgemein gehaltenen Suchbegriffe erklären. Die Verwendung von detaillierteren Suchbegriffen würde ein deutlich
besseres Ergebnis liefern. Bei jedem dieser Objektvergleiche wurde darauf geachtet,
dass mindestens ein Bild bei der Suche im Internet gefunden wird, auf welchem das
selbe Objekt wie auf dem Referenzbild abgebildet ist. Des Weiteren wurde nach Begriffen gesucht, unter welchen mehrere Hundert Bilder gefunden werden. Das beste
Ergebnis lieferten beide Objektvergleichsverfahren bei der Suche nach dem JanSport Rucksack. Hier erkannte der Kommissar Computer“ auf Rang zwei ein Bild,
”
welches das gesuchte Objekt enthielt und die Objektregistrierung“ auf Rang 22.
”
Anhand der Ergebnisse der Objektvergleiche mit den eigenen Fotos würde es
38
wenig Sinn machen die beiden Objektvergleichsverfahren zu kombinieren, da der
Kommissar Computer“ durchgehend die besseren Ergebnisse liefert. Bei den Ob”
jektvergleichen mit der Coil-20 Bilddatenbank lieferte der Kommissar Computer“
”
unter den ersten 20 Plätzen ebenfalls die besseren Ergebnisse. Eine Möglichkeit der
Kombination wäre allerdings bei Objektvergleichen, bei welchen die Ergebnisse des
Kommissar Computer“ sehr dicht zusammen liegen. Hier könnte die Objektre”
”
gistrierung“ zusätzlich zum Kommissar Computer“ eingesetzt werden, um so ein
”
aussagekräftigeres Ergebnis zu erzielen. Aufgrund der in dieser Arbeit erzielten Ergebnisse ist es jedoch sinnvoll das Objektvergleichsverfahren des Kommissar Com”
puter“ stärker zu gewichten, als das der Objektregistrierung“. Aus diesem Grund
”
wurde der Kommissar Computer“ anschließend mit 70% gewichtet.
”
39
Kapitel 6
Diskussion und Ausblick
In der vorliegenden Diplomarbeit wurde eine Testumgebung erstellt, in welcher es
möglich ist, unterschiedliche Objektvergleichsverfahren auszuführen und ihre Güte
zu bestimmen. Diese Objektvergleichsverfahren wurden am IPE entwickelt und dienen der automatischen Suche nach Bildern von Diebesgut im Internet. Die Testumgebung wurde in der Workflowengine Kepler erstellt, was eine einfache zukünftige
Erweiterung ermöglicht. Für die Erstellung der Testumgebung mussten zunächst
verschiedene Aktoren in Kepler implementiert werden, welche die Funktionalität
der beiden Objektvergleichsverfahren Kommissar Computer“ und Objektregis”
”
trierung“ enthalten. Hierfür war es notwendig, die Funktionalität jedes einzelnen
Aktors, sowie die Schnittstellen für die Kommunikation untereinander exakt zu definieren.
Der Ablauf des erstellten Workflows beginnt mit der Initialisierung der Datenbankverbindungen. Anschließend findet bei Google eine Bildsuche nach einem
bestimmten Suchbegriff statt. Die gefundenen Bilder werden von dem jeweiligen
Webserver geladen und in einer Datenbank gespeichert. Die Speicherung in der Datenbank dient der lückenlosen Beweisführung, falls sich unter den gefundenen Bildern
Bilder mit Diebesgut befinden. Anschließend werden die Bilder aus der Datenbank
ausgelesen und mit einem Referenzbild verglichen. Hierbei kommen die beiden unterschiedlichen Objektvergleichsverfahren Kommissar Computer“ und Objektre”
”
gistrierung“ zum Einsatz. Diese Verfahren liefern als Ergebnis eine Liste zurück,
welche nach der Übereinstimmung der im Internet gefundenen Bilder mit dem Referenzbild sortiert ist. Anschließend besteht die Möglichkeit das Ergebnis der beiden
Objektvergleichsverfahren unterschiedlich stark zu gewichten.
Um die Güte der beiden Objektvergleichsverfahren zu bestimmen, wurden diese
mit der standardisierten Bilddatenbank Coil-20, sowie mit eigenen Bildern getes-
40
tet. Bei den Tests mit der Bilddatenbank stellte sich heraus, dass das Objektvergleichsverfahren des Kommissar Computer“ die etwas besseren Ergebnisse liefert.
”
So wurde beispielsweise in einer Menge von 479 Bildern nach einem bestimmten
Objekt gesucht, welches insgesamt 23 mal vorhanden war. Hierbei war das Objekt
auf jedem Bild unter einem anderen Winkel abgebildet. Bei diesem Test erkannte
das Objektvergleichsverfahren der Objektregistrierung“ im Durchschnitt 10,6 Bil”
der, auf denen dieses Objekt abgebildet war nicht unter den ersten 50 Bildern. Das
Objektvergleichsverfahren des Kommissar Computer“ hingegen erkannte nur 6,4
”
Bilder, auf welchen das Objekt abgebildet war nicht unter den ersten 50 Bildern.
Der Objektvergleich mit eigenen Bildern lieferte unterschiedlich gute Ergebnisse.
Dies hat mehrere mögliche Gründe. Nach dem Mobiltelefon Nokia 6233 wurde mit
dem Suchbegriff Nokia Handy“ gesucht. Das Ergebnis dieser Bildsuche enthält so
”
sehr viele Bilder verschiedener, sehr ähnlicher Mobiltelefone, aber nur sehr wenige
Bilder des Nokia 6233. Die Suche nach einem Telefon der Siemens Gigaset Produktreihe lieferte zwar viele Bilder mit Gigaset-Geräten, allerdings war das Telefon,
welches auf dem Referenzbild abgebildet ist, schon mehrere Jahre alt und ist nicht
mehr verfügbar. Aus diesem Grund wurden überwiegend Nachfolgemodelle dieses
Telefons gefunden. Der Vergleich eines Rucksacks der Firma JanSport erzielte hingegen gute Ergebnisse. Hierbei wurden Bilder mit dem gesuchten Objekt unter den
ersten 25 Plätzen erkannt. Eine ausführliche Beschreibung der Ergebnisse findet in
Kapitel 5 statt.
Aus Zeitgründen konnten nicht alle drei beim Objektvergleichsverfahren Ob”
jektregistrierung“ zur Verfügung stehenden Gütefunktionen getestet werden. Hier
beschränkte man sich von vorne herein auf die Gütefunktion Normalized Mutual Information, welche in vorhergehenden Tests das beste Ergebnis [4] erzielte. Die beiden
anderen Gütefunktionen wurden aber dennoch in der Testumgebung implementiert,
um diese zu einem späteren Zeitpunkt verwenden und testen zu können. Des Weiteren konnten nur fünf Objektvergleiche mit eigenen Fotos durchgeführt werden. Dies
lag zum Einen an der kurzen Zeitspanne für diese Arbeit und zum Anderen an der
langen Laufzeit der einzelnen Objektvergleiche. Hier sind zukünftig ebenfalls weitere
Tests erforderlich um ein aussagekräftigeres Ergebnis zu erhalten.
Das Objektvergleichsverfahren des Kommissar Computer“ bereitete zum Teil
”
größere Probleme. Diese sind auf die Verwendung des Grids und die hiermit verbundene Komplexität des Verfahrens zurückzuführen. So brachten z.B. Objektvergleiche
von Bildern mit mehreren Hundert Kilobyte Größe einige Rechner des Grids zum
Absturz. Für einen Objektvergleich mit Bildern dieser Größe ist sehr viel Hauptspeicher erforderlich, weshalb für die folgenden Objektvergleiche nur Bilder mit einer
41
maximalen Größe von 100 kB verwendet wurden, was aber den Großteil der gefundenen Bilder abdeckt. Des Weiteren gab es bei Objektvergleichen mit mehreren
Hundert Bildern in einer Job-Description Probleme, da diese Vergleiche nicht ausgeführt werden konnten. Dieses Problem wurde gelöst, indem immer nur 100 Bilder
mit einem Referenzbild verglichen wurden und erst wenn dieser Objektvergleich
fertig war die nächsten 100 Bilder, usw.
Zukünftig bieten sich mehrere Möglichkeiten an, diese Arbeit zu erweitern und zu
verbessern. So ist es denkbar die beiden vorhandenen Objektvergleichsverfahren hinsichtlich der Trefferquote zu verbessern. Ebenfalls ist es möglich die Güte der beiden
implementierten, aber noch nicht getesteten Algorithmen des Objektvergleichsverfahren Objektregistrierung“ zu bestimmen. Des Weiteren besteht die Möglichkeit
”
neue Objektvergleichsverfahren zu suchen und anschließend in diese Testumgebung
zu integrieren. Die Integration neuer Verfahren ist dank des modularen Aufbaus sehr
einfach möglich. Es muss lediglich ein Aktor erstellt werden, in welchem das neue
Verfahren implementiert wird.
Zum Einsatz kommen könnten die implementierten Objektvergleichsverfahren z.B
bei der Polizei oder beim Zoll um die Suche nach gestohlenen Gegenständen zu vereinfachen. Ebenfalls ist ein Einsatz bei Versicherungen denkbar. Ein weiterer Ansatzpunkt ist die Kooperation mit Suchmaschinen. Hier könnte anhand eines Referenzbildes nach ähnlichen Bildern gesucht werden, was die Suche erheblich verbessern
würde, da zur Zeit normalerweise nur die Metainformationen verwendet werden.
42
Abbildungsverzeichnis
2.1
2.2
2.3
GT 4 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
OGSA-DAI Kommunikation . . . . . . . . . . . . . . . . . . . . . . . 14
Worklowengine Kepler . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1
Beispiel für Bilder der Coil-20 Datenbank . . . . . . . . . . . . . . . . 19
4.1
4.2
Schematischer Aufbau des Workflows . . . . . . . . . . . . . . . . . . 21
Kepler mit Workflow der Testumgebung . . . . . . . . . . . . . . . . 27
5.1
5.2
Anzahl Treffer unter den ersten zehn Plätzen . . . . . . . . . . . . . . 30
Referenzbild Coil-20 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3
5.4
5.5
5.6
Ergebnis Coil-20 Objektregistrierung“ .
”
Ergebnis Coil-20 Kommissar Computer“
”
Referenzbild Objektvergleich Nokia 6233
Ergebnis Objektvergleich Nokia 6233 . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
32
33
34
5.7
5.8
5.9
5.10
Referenzbild Objektvergleich Siemens Gigaset .
Ergebnis Objektvergleich Siemens Gigaset . . .
Referenzbild Objektvergleich JanSport Rucksack
Ergebnis Objektvergleich JanSport Rucksack . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
37
38
43
.
.
.
.
.
.
.
.
.
.
.
.
Literaturverzeichnis
[1] Michael Sutter, “Anbindung einer webbasierten Bildsuche an eine GridDatenbank für die digitale Forensik,” Master’s thesis, FH, Darmstadt, 2005.
[2] Michael Sutter, Tim Müller, Rainer Stotzka, Thomas Jejkal, Marie Holzapfel,
Hartmut Gemmeke, “Inspector Computer,” Tech. Rep., Mai 2007.
[3] Kepler Collaboration. (2008, September) Kepler Project. [Online]. Available:
http://www.kepler-project.org/
[4] Marie Holzapfel, “Optimierung von Objektvergleichsalgorithmen,” Tech. Rep.,
August 2007.
[5] Sebastian Nowozin. (2008, September) Autopano-Sift, Making panoramas fun.
[Online]. Available: http://user.cs.tu-berlin.de/∼nowozin/autopano-sift/
[6] Sebastian Nowozin. Libsift - Scale-Invariant Feature Transform implementation.
[Online]. Available: http://user.cs.tu-berlin.de/∼nowozin/libsift/
[7] Björn Körtner, “Der Stolen Goods Internet Detector“ und sein Bildvergleich
”
für die digitale Forensik,” Universität Karlsruhe (TH), Institut für Betriebsund Dialogsysteme, Tech. Rep., 2005.
[8] System One. Retrievr - Search by sketch / Search by image. [Online].
Available: http://labs.systemone.at/retrievr/
[9] Yahoo. (2008, September) Flickr. [Online]. Available: http://www.flickr.com/
[10] Google Inc. (2008, September) Picasa. [Online]. Available: http://picasa.
google.com/
[11] Google Inc. (2008, September) Google. [Online]. Available: http://www.google.
de/
45
[12] eBay Inc. eBay: Neue und gebrauchte Elektronikartikel, Autos, Kleidung,
Sammlerstücke, Sportartikel und mehr – alles zu günstigen Preisen. [Online].
Available: http://www.ebay.de/
[13] Elmar Denkmann. BayWotch - Beobachten bei eBay! [Online]. Available:
http://www.baywotch.de/
[14] CogniSign LLC. Image Search Engine - Photo Search For Royalty Free Images
by Xcavator.net. [Online]. Available: http://www.xcavator.net/
[15] CogniSign LLC. Cognisign :: Welcome. [Online]. Available: http://www.
cognisign.com/
[16] Fotolia. Fotolia.de - Bildarchiv - Bildagentur - lizenzfreie Bilder - Stockfotos.
[Online]. Available: http://de.fotolia.com/
[17] iStock International Inc. Stock Photography: Search Royalty Free Images &
Photos. [Online]. Available: http://www.istockphoto.com/index.php
[18] PHOTOVAULT. PHOTOVAULT- A celebration of the Great Mystery, Stock
Photography. [Online]. Available: http://www.photovault.com/
[19] IEEE, “IEEE standard for a software quality metrics methodology,”
März 1993, http://ieeexplore.ieee.org/xpls/abs all.jsp?tp=&isnumber=6079&
arnumber=237006&punumber=2837.
[20] Wikipedia, Die freie Enzyklopädie. Softwaremetrik. [Online]. Available: http://
de.wikipedia.org/wiki/Softwaremetrik
[21] Oracle Corporation. (2008, September) Oracle Database 11g. [Online].
Available: http://www.oracle.com/database/index.html
[22] Sun Microsystems. (2008, September) MySQL: Die populärste Open-SourceDatenbank der Welt. [Online]. Available: http://www.mysql.de/
[23] IBM. (2008, September) IBM - DB2 - Data Server - Database Software Database Management - Open Source. [Online]. Available: http://www-01.
ibm.com/software/data/db2/
[24] Wikipedia, Die freie Enzyklopädie. SQL. [Online]. Available: http://de.
wikipedia.org/wiki/SQL
46
[25] Sun Developer Network. (2008, August) JDBC Overview. [Online]. Available:
http://java.sun.com/products/jdbc/overview.html
[26] Microsoft Corporation. (2008, September) Microsoft Open Database Connectivity (ODBC). [Online]. Available: http://msdn.microsoft.com/en-us/library/
ms710252(VS.85).aspx
[27] Microsoft Corporation. (2008, September) Microsoft Corporation. [Online].
Available: http://www.microsoft.com/
[28] Wikipedia, Die freie Enzyklopädie. (September) Webcrawler. [Online].
Available: http://de.wikipedia.org/wiki/Webcrawler
[29] Europäisches Kernforschungslabor CERN, Schweiz. (2008, September) Grid
Cafe. [Online]. Available: http://gridcafe.web.cern.ch/gridcafe/index.html
[30] The Globus Alliance. (2008, September) Welcome to the Globus Toolkit.
[Online]. Available: http://www.globus.org/toolkit/
[31] B. Sotomayor and L. Childers, Globus Toolkit 4 Programming Java Services.
Morgan Kaufmann Publishers, 2005.
[32] OGSA-DAI project. (2008, September) Open Grid Services Architecture Data
Access and Integration, OGSA-DAI. [Online]. Available: http://www.ogsadai.
org.uk/index.php
[33] M. Feller, I. Foster, and S. Martin. (2007) GT4 GRAM: a functionality
and performance study. [Online]. Available: http://globus.org/alliance/
publications/papers.php#TG07--GRAM
[34] Altair Engineering, Inc. (2008, September) PBS GridWorks: OpenPBS.
[Online]. Available: http://www.pbsgridworks.com/
[35] The Condor Project. (2008, September) Condor Project Homepage. [Online].
Available: http://www.cs.wisc.edu/condor/
[36] Sun Microsystems Inc. (2008, September) java.com: Java für Sie. [Online].
Available: http://www.java.com/de/
[37] Columbia University. (2008, September) CAVE — Software: COIL-20:
Columbia Object Image Library. [Online]. Available: http://www1.cs.
columbia.edu/CAVE/software/softlib/coil-20.php
47
Herunterladen