1
Java EE Webservice basiert auf RESTlet, JaxB und JPA/Hibernate
zur Bilderkennung mit Hilfe der SURF-Merkmalsextraktion
Verantwortlicher Professor: Prof. Dr. rer. nat. Klaus Hering
Betreuer: Dr. Jürgen Beringer
Bachelorverteidigung Marco Franke
2
Hintergrund
Marco Franke
3 Monate Praktikum bei sprd.net AG (www.spreadshirt.de)
3
Zielsetzung
Marco Franke
● Anforderungen an die Bilderkennung– Farbe– Bildstörungen– Skalierung– Rotation– Translation– Verzerrung
● Anforderung der Endanwendung– Webservice– schnell– flexibel
Laufzeit <> Qualität
4
Ansatz● Merkmalsextraktion
– Extraktion von Merkmalen– Verwendung der Merkmale für Bildvergleich
● SIFT (Scale Invariant Feature Transformation)
● SURF (Speeded Up Robust Features)– Beschleunigung der Berechnungen (vgl. SIFT)
● Implementation: JOpenSURF
Marco Franke
5
Schwerpunkte● Theoretische Betrachtung der SURF-Merkmalsextraktion
– Schlüsselpunktdetektion– Eigenschaften der Schlüsselpunkte– Parameter der Detektion
● Bildvergleichsverfahren
– Nächste-Nachbar-Suche– Erweiterung der Auswertung– Validierung– Laufzeit / Laufzeitoptimierung
● Java EE Webservice
– Anwendungsfälle– Aufbau– Datenfluss– Datenbank
● Zusammenfassung / Ausblick
Marco Franke
6
Schlüsselpunktedetektion● Hesse-Detektor● Integralbild● Laplace of Gaussian
(Mittelwertfilter)● Hesse-Matrix (Determinante)● Filterpyramide (Oktaven, Skale)● Weitere Untersuchungen ob
Schlüsselpunkt in seinem Bereich markant ist.
Marco Franke
● Schlüsselpunkte
– Position (x,y)– Skale (Bereichsgröße in der der Punkt Markant ist)
7
Eigenschaften der Schlüsselpunkte● Orientierung
– Haar-Wavelets in x- und y-Richtung– Anwendung auf umliegende Pixel (abhängig von Skale)
Marco Franke
8
Eigenschaften der Schlüsselpunkte● Deskriptor
– 64 dim. Vektor– Ausrichtung nach Orientierung– Größe abhängig von Skale
Marco Franke
9
Eigenschaften der Schlüsselpunkte
Marco Franke
10
Parameter der Detektion
● Anzahl der Oktaven– Werte: 1, 2, ..., 5– max. Filtergröße
● Initiale Abtastrate– Schrittweite bei der Bildpunktuntersuchung
● Hessian Threshold– Schwellenwert den die Determinanten überschreiten müssen
Marco Franke
11
Bildvergleich● Nächste-Nachbar-Suche
– n*m Schlüsselpunktvergleiche
● Schwellenwert
Marco Franke
12Marco Franke
Bildvergleich
13
Erweiterung der Auswertung
Marco Franke
● Bezugnahme der Orientierung und Skale (nach NN-Suche)– Grundgedanke: Beziehungen zwischen allen Zuordnungen herstellen
– Initiale Verhältnisse durch Bewertung der Zuordnungen
● Verhältnisse zwischen Orientierung muss für alle Zuordnungen gelten
● Parameter: Toleranz in der das Verhältnis der Orientierung abweichen darf
● Analog für Skale
14Marco Franke
Erweiterung der Auswertung
15Marco Franke
● Ablauf
Bewertung Zuordnungen
Sortiert in Liste
Referenz Verhältnisse aus bester Zuordnung
Alle weiteren Zuordnungen müssen im Bereich der Referenz Verhältnisse liegen
Anpassung der Referenz Verhältnisse Verwerfen der Zuordnung
Erweiterung der Auswertung
16
Validierung
Marco Franke
● 89 Referenzbilder (Im System vorhanden)● 79 Suchbilder (Anfrage-Bilder)● → 7031 Bildvergleiche● Normierung auf min. 500px, max. 1000px ● Grenze z = 10 (Anzahl Zuordnungen)
● Genauigkeit (precision) P = 89%● Trefferquote (recall) R = 52%
17
Laufzeit
Marco Franke
32 ms/Bildvergleich
18
Laufzeitoptimierung
Marco Franke
● Ansatz I: Nächste-Nachbar-Suche
Problem: Distanz zu allen Schlüsselpunkten werden ermittelt
> aktuell nächste Nachbar?
19
Laufzeitoptimierung
Marco Franke
Optimierung um 25%
20
Webservice
Marco Franke
● Anwendungsfälle
21
Webservice
Marco Franke
● Aufbau
● Datenfluss
22
Webservice
Marco Franke
● Datenbank
● REST-Schnittstelle (HTTP Get/Post)
23
Webservice
Marco Franke
● Laufzeit– plagiat-web ~170ms/Bild (Anfrage + Download d. Suchbildes)– Vorverarbeitung ~654ms/Bild (Normierung + Detektion)
– Referenzbilder laden ~124ms/Bild (nur bei Session beginn)
● Bestehendes Problem: – Höhere Laufzeit beim Bildvergleich um das 2- bis 4-Fache
24
Zusammenfassung
Marco Franke
● SURF – Algortihmus / Bildvergleich– Theoretische Betrachtung des Verfahrens– Untersuchung der Implementation „JOpenSURF“– Erweiterung / Verbesserung der Implementation
● Qualität ↔ Laufzeit– Validierung
● Genauigkeit ↔ Trefferquote● Webservice
– RESTlet, JaxB, JPA/Hibernate– → Hohe Einsatzbreite
● Probleme:– Höhere Laufzeit Webservice (Lösung → Einsetzbarkeit des Systems)
25
Ausblick
Marco Franke
● Weitere Ansätze (Bildvergleich):– Qualität
● Optimierung der Parameter durch detaillierte Validierung– Bisher nur Annäherungen
● Ermittlung weiterer Eigenschaften der Schlüsselpunkte● Erweiterung der Deskriptoren
(z.B. 128 Dimensionen [SIFT])● Ansätze der Mustererkennung
– Laufzeit● Cluster-verfahren (z.B. k-means)● Bäume, Graphen, Hashfunktionen, …
● Kernproblem:– Dimensionen („Fluch der Dimensionen“)– → Laufzeit
26Marco Franke
Vielen Dank für Ihre Aufmerksamkeit!
27
Anhang
Marco Franke
F 30: IntegralbildF 31: Laplace of Gaussian (LoG)F 32: FilterpyramideF 33: Hesse-MatrixF 34: Anzahl der OktavenF 35: Initiale Abtastrate IF 36: Initiale Abtastrate II F 37: Hessian ThresholdF 38: Bildvergleich Beispiel + IF 39: Bildvergleich Beispiel + IIF 40: Bildvergleich Beispiel - IF 41: Bildvergleich Beispiel – IIF 42: Bewertung der ZuordnungenF 43: Listing: Nächste-Nachbar-SucheF 44: Listing: Erweiterte AuswertungF 45: Listing: DTO ↔ XML (JaxB)F 46: Listing: DB ↔ Model (JPA/Hibernate)
28
Schlüsselpunktedetektion● Integralbild
Marco Franke
29
Schlüsselpunktedetektion● Laplace of Gaussian (LoG)
Marco Franke
x-Richtung
y-Richtung
x-y-Richtung
30
Schlüsselpunktedetektion
● Filterpyramide
– Oktaven– Skale
Marco Franke
31
Schlüsselpunktedetektion
● Hesse-Matrix (Determinante, Spur)
● 3x3 - Nachbarschaft
Marco Franke
→ Schlüsselpunkt Eigenschaften
– Position (x,y)
– Skale (→ Bereich)
32
Parameter der Detektion● Anzahl der Oktaven
Marco Franke
33
Parameter der Detektion● Initiale Abtastrate
Marco Franke
34
Parameter der Detektion● Initiale Abtastrate
Marco Franke
35
Parameter der Detektion● Hessian Threshold
Marco Franke
36
Bildvergleich Beispiel +
Marco Franke
37
Bildvergleich Beispiel +
Marco Franke
38
Bildvergleich Beispiel -
Marco Franke
39
Bildvergleich Beispiel -
Marco Franke
40
Bewertung der Zuordnungen
Marco Franke
● Nicht korrekte „beste“ Zuordnung
● Gleiche Verhältnisse der Orientierung und Skale– Auch falsche Zuordnungen können Bedingung erfüllen
41
Nächste-Nachbar-Suche
Marco Franke
42
Erweiterte Auswertung
Marco Franke
43
DTO ↔ XML (JaxB)
Marco Franke
44
DB ↔ Model (JPA/Hibernate)
Marco Franke