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