Java EE Webservice basiert auf RESTlet, JaxB und JPA...

Preview:

Citation preview

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

Recommended