21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und...

47
21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher, Ansgar Schulte

Transcript of 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und...

Page 1: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

21. Januar 2008

Mobile Media Processing: Text Localization and Recognition

Seminar Bildverstehen und Mustererkennung

Jan-Christoph Küster, Philipp Schirmacher, Ansgar Schulte

Page 2: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 2

Agenda

1. Motivation

2. Konzept

3. Realisierung

4. Fazit

Page 3: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 3

Motivation

• U-Bahnplan der Stadt Seoul (koreanisch / Hangul)

• Übersetzen der Stationsnamen ins Englische mit selbstentwickelter Symbian C++ Anwendung auf Nokia N95

Page 4: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 4

Agenda

1. Motivation

2. Konzept

3. Realisierung

4. Fazit

Page 5: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 5

Konzept

VorverarbeitungVorverarbeitungTextlokalisierungTextlokalisierung

Grauwertbild

Kantendetektion

KantendichteSkew-Korrektur

Otsu

MatchingMatching

Template-MatchingPattern.pngConnected Components

Morphologische Operationen

Region 1 Region n

Stationsname auf Englischals ASCII

Bounding Boxes

Quellbild gewünschte Regionen

Bereinigung

Page 6: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 6

Konzept

VorverarbeitungVorverarbeitungTextlokalisierungTextlokalisierung

Grauwertbild

Kantendetektion

KantendichteSkew-Korrektur

Otsu

MatchingMatching

Template-MatchingPattern.pngConnected Components

Morphologische Operationen

Region 1 Region n

Stationsname auf Englischals ASCII

Bounding Boxes

Quellbild gewünschte Regionen

Bereinigung

Page 7: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 7

Textlokalisierung

• Ziel: Regionen finden, die Text enthalten

• Annahmen: dunkler Text auf hellem Hintergrundeinheitlicher Schrifttyp (Maschinenschrift)gleichmäßige Beleuchtung

Page 8: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 8

Grauwertbild

• Umwandlung in Grauwertbild

Page 9: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 9

Kantendetektion

• Binärbild (Kante ja/nein)

• Kantenstärke mit Sobel-Operator

• Schwellwert: 2 * mittlere Kantenstärke

• Keine Gaußglättung

Page 10: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 10

• Kantendichte in jedem Punkt berechnen

• Ist in der Umgebung von Text hoch

• 8x8-Filtermaske

• Schwellwert: 10

Kantendichte

1 1 … 1

1 1 … 1

… …

1 1 … 1

8

8

Page 11: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 11

• Closing-Operation

• Opening-Operation

Morphologische Operationen

Lücken im Text schließen

Strukturelement 2x2

Trennung von Stationsname und -nummer

Strukturelement 3x3

Page 12: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 12

• Zusammenhangskomponenten berechnen

Connected Component

Page 13: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 13

Bounding Boxes

• Boundingbox für jede Komponente

• Selektion von Boxen– Breite/Höhe Verhältnis

– Größe der Box (mindestens 13x13)

Page 14: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 14

Konzept

VorverarbeitungVorverarbeitungTextlokalisierungTextlokalisierung

Grauwertbild

Kantendetektion

KantendichteSkew-Korrektur

Otsu

MatchingMatching

Template-MatchingPattern.pngConnected Components

Morphologische Operationen

Region 1 Region n

Stationsname auf Englischals ASCII

Bounding Boxes

Quellbild gewünschte Regionen

Bereinigung

Page 15: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 15

Vorverarbeitung

• Ziel: Vorbereiten einer Region für das Matching

Page 16: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 16

Otsu

• Trennung von Text und Hintergrund

– Automatische Schwellwertbestimmung

– Annahme: 2 Klassen von Pixeln (Text und Hintergrund)

– Annahme: Bimodale Verteilung

Schwellwert

Hintergrund

Text

Page 17: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 17

Otsu

• Nicht robust und präzise genug

Page 18: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 18

Otsu

• Besser: mathematischer Ansatz

– Minimiere Varianz innerhalb der Klassen (variance within classes)

– Maximiere Varianz zwischen den Klassen (variance between classes)

– Kein Widerspruch der Zielbedingungen

[0, S] [S+1, 255]

Page 19: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 19

Otsu

• Schwellwert mit 0,7 multiplizieren

Region 0,9 0,8 0,7 0,6 0,5

Page 20: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 20

Skew-Korrektur

• Region nicht immer horizontal ausgerichtet– Bedingt durch Kameraführung– Annahme: Drehung im Bereich [-10,10] Grad

• Skew-Winkel finden durch Ausprobieren– in 1º Schritten durchgehen– Kriterium: maximale Anzahl Hintergrundspalten (nur weisse

Pixel)

Skew-Winkel: 10º

Page 21: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 21

Konzept

VorverarbeitungVorverarbeitungTextlokalisierungTextlokalisierung

Grauwertbild

Kantendetektion

KantendichteSkew-Korrektur

Otsu

MatchingMatching

Template-MatchingPattern.pngConnected Components

Morphologische Operationen

Region 1 Region n

Stationsname auf Englischals ASCII

Bounding Boxes

Quellbild gewünschte Regionen

Bereinigung

Page 22: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 22

Template-Matching

• Ziel: Vergleich vorverarbeiteter Region mit Mustern

– Kriterium: kleinste quadratische Abweichung

• Pattern.png speichert alle Muster

– linksbündig – oben und unten bündig abschließend– rechter Rand mit weiß aufgefüllt

.

.

.

123

697071

Index Pattern

101 px

13 px

Page 23: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 23

Template-Matching

• Probleme beim Template-Matching

– Region schließt am Rand nicht immer bündig mit Text ab

– Region und Muster sind unterschiedlich groß

– Alle quadratischen Differenzen gleich zu gewichten?

Page 24: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 24

• Entfernung von weißen Zeilen am oberen und unteren Rand

– Berechnung des Weißanteils in jeder Zeile

– Löschen der Zeilen > 85% weiß

Template-Matching

Page 25: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 25

Template-Matching

• Skalierung der Region auf Größe 13 x 101

– Proportionale Skalierung auf die Höhe 13

– rechten Rand mit weißen Pixeln auf Breite 101 auffüllen

Page 26: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 26

Template-Matching

• Quadratische Differenzen an jeder Position berechnen

– Für jede Position Gewichtung finden

– An jeder Position: über alle Muster Varianz berechnen

– Normierung auf [0,1]

Template1

Template n

Template n-1

g1

gn-1

Page 27: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 27

Templatematching

• Berücksichtigung von weißen Spalten an den Seiten

– Verschiebung nach links und rechts

– Kleinste Abweichung zählt

1

Muster

9 101...

1

Verschiebung nach links

9 101...

1

Verschiebung nach rechts

9 101...

Page 28: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 28

Agenda

1. Motivation

2. Konzept

3. Realisierung• MATLAB Prototyp• Symbian C++

4. Fazit

Page 29: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 29

MATLAB Prototyp

• Effektivität des Konzepts prüfen

• 710 Testfälle um Güte im Vorfeld zu testen

• Bilder unter realen Bedingungen entstanden

– Nokia N95

– 10cm Abstand vom Plan (A3)

– Nahaufnahmemodus

Page 30: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 30

MATLAB Prototyp

Page 31: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 31

MATLAB Prototyp

100…

547 03211 16…548 03211 28…553 03211 32…810 03211 14

…P555

710 Testdaten

Stationsnummer Testbild Regionsnummer

Page 32: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 32

MATLAB Prototyp

Region Region nach Vorverarbeitung

MatchingErgebnis

Page 33: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 33

MATLAB Prototyp

• Konfusionsmatrix

• Trefferquote bei 710 Testfällen bei 85,22%

Erkannte Station (Index aus Pattern.png)

Inp

ut

Sta

tion

(In

de

x a

us

Pa

tte

rn.p

ng

)

Page 34: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 34

MATLAB Prototyp

Page 35: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 35

Agenda

1. Motivation

2. Konzept

3. Realisierung• MATLAB Prototyp• Symbian C++

4. Fazit

Page 36: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 36

Realisierung mit Symbian C++

• Zugriff auf die Kamera

– Einzelne Bilder des Videostreams

• Kameranutzung unter Symbian: Klasse CCamera

– Kamera reservieren

– Kamerasucher starten

– Callback-Methoden, bspw. wenn Sucherbild abrufbereit

– Autofokus verwenden

Page 37: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 37

Realisierung mit Symbian C++

• Demoapplikation CameraApp– Quellcode offen– Grundlage für Kamera-Applikationen

• Model-View-Controller Architektur (MVC)

cameraappview

cameraappcontroller

textengine

cameraappdocument cameracaptureengine

cameraappappui

cameraappapp

cameraappcontainer

Model

Controller

View

Page 38: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 38

Realisierung mit Symbian C++

cameraappbasecontainercameraappbasecontainer

cameraappcontrollercameraappcontroller

aFrame+ Bounding Boxes

+ Text

textenginetextengine

iNewFrameaFrame

iBackupFrame

Kamera

Display

3.

1.

2.

264x198

264x198

Ecken der Bounding Boxes

Pattern.png Index

Berechnung

Stationsnamen-Array (englisch)

88x66

Page 39: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 39

Realisierung mit Symbian C++

• Bildverarbeitung: NokiaCV Library

• Ziel: einheitliche Basis für entsprechende Anwendungen

– Geometrische Transformationen

– Kanten- und Eckendetektion

– Bildstatistiken

– Motion Estimation

• Problem: Performance ist sehr schlecht

Page 40: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 40

• Bitmaps im Speicher:

Realisierung mit Symbian C++

Zeile 0

Start

Zeile 1 Zeile 2 Zeile 3 Zeile 4 Zeile…

Zeilenlänge Start + 4 * Zeilenlänge

Pixel 0 Pixel 1 Pixel 2 Pixel 3 Pixel 4 Pixel…

Start + 4 * Zeilenlänge

abhängig vom DisplayMode

Page 41: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 41

Realisierung mit Symbian C++

• CFbsBitmap unterstützt verschiedene DisplayModes

• Grauwertbild:– EGray256

• RGB-Bild: 16,7 Mio. Farben– EColor16M EColor16MU R G B

0 8 16 23

0 7

R G B 0 8 16 24 31

Page 42: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 42

Realisierung mit Symbian C++

VorverarbeitungVorverarbeitungTextlokalisierungTextlokalisierung

Grauwertbild

Kantendetektion

KantendichteSkew-Korrektur

Otsu

MatchingMatching

Template-MatchingPattern.pngConnected Components

Morphologische Operationen

Region 1 Region n

Stationsname auf Englischals ASCII

Bounding Boxes

Quellbild gewünschte Regionen

Bereinigung

Page 43: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 43

Realisierung mit Symbian C++

• Von 71 Stationsnamen werden 66 erkannt (92,96%)

– Sicher erkannt: 42

– Mit Mühe erkannt: 24

– Region nicht richtig gefunden: 4

– Region gefunden aber falsch erkannt: 1

Page 44: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 44

Agenda

1. Vorstellung des Themas

2. Das Konzept

3. Realisierung

4. Fazit

Page 45: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 45

Fazit

• Operation auf Videostream mit Symbian C++ möglich

• Verfahren der Bilderkennung performant realisierbar

• Bibliothek NokiaCV unbrauchbar– schlecht dokumentiert– nicht performant– Quellcode nicht frei

• Realisierung und Testen in MATLAB empfehlenswert

• On-Device-Debugging notwendig (Carbide.c++ DEV)

Page 46: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 46

Ausblick

• Eigenes Framework zur Bildverarbeitung und -erkennung erstellen

• Debugging Erweiterung für komplexe Datentypen (Matrizen)

• Erweiterung des Texterkennungssystems– Erkennung einzelner Zeichen/Silben

Page 47: 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Seminar Bildverstehen und Mustererkennung Jan-Christoph Küster, Philipp Schirmacher,

Seite 47

Diskussion

Vielen Dank für Ihre Aufmerksamkeit

Noch Fragen???