Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Swanhild Zenger Geändert vor über 10 Jahren
1
Mobile Media Processing: Text Localization and Recognition
Seminar Bildverstehen und Mustererkennung 21. Januar 2008 Mobile Media Processing: Text Localization and Recognition Jan-Christoph Küster, Philipp Schirmacher, Ansgar Schulte
2
Agenda Motivation Konzept Realisierung Fazit 2
3
Motivation U-Bahnplan der Stadt Seoul (koreanisch / Hangul) Übersetzen der Stationsnamen ins Englische mit selbstentwickelter Symbian C++ Anwendung auf Nokia N95
4
Agenda Motivation Konzept Realisierung Fazit 4
5
… Konzept Quellbild Grauwertbild Otsu Bereinigung Kantendetektion
gewünschte Regionen Textlokalisierung Vorverarbeitung Grauwertbild Otsu Bereinigung Kantendetektion Skew-Korrektur Kantendichte Morphologische Operationen Matching Pattern.png Template-Matching Connected Components Bounding Boxes Stationsname auf Englisch als ASCII … Region 1 Region n
6
… Konzept Quellbild Grauwertbild Otsu Bereinigung Kantendetektion
gewünschte Regionen Textlokalisierung Vorverarbeitung Grauwertbild Otsu Bereinigung Kantendetektion Skew-Korrektur Kantendichte Morphologische Operationen Matching Pattern.png Template-Matching Connected Components Bounding Boxes Stationsname auf Englisch als ASCII … Region 1 Region n
7
Textlokalisierung Ziel: Regionen finden, die Text enthalten Annahmen: dunkler Text auf hellem Hintergrund einheitlicher Schrifttyp (Maschinenschrift) gleichmäßige Beleuchtung
8
Grauwertbild Umwandlung in Grauwertbild
9
Kantendetektion Binärbild (Kante ja/nein) Kantenstärke mit Sobel-Operator Schwellwert: 2 * mittlere Kantenstärke Keine Gaußglättung
10
Kantendichte in jedem Punkt berechnen
Ist in der Umgebung von Text hoch 8x8-Filtermaske Schwellwert: 10 … 1 … 1 … … 8
11
Morphologische Operationen
Closing-Operation Opening-Operation Lücken im Text schließen Strukturelement 2x2 Trennung von Stationsname und -nummer Strukturelement 3x3
12
Connected Component Zusammenhangskomponenten berechnen
13
Bounding Boxes Boundingbox für jede Komponente Selektion von Boxen Breite/Höhe Verhältnis Größe der Box (mindestens 13x13)
14
… Konzept Quellbild Grauwertbild Otsu Bereinigung Kantendetektion
gewünschte Regionen Textlokalisierung Vorverarbeitung Grauwertbild Otsu Bereinigung Kantendetektion Skew-Korrektur Kantendichte Morphologische Operationen Matching Pattern.png Template-Matching Connected Components Bounding Boxes Stationsname auf Englisch als ASCII … Region 1 Region n
15
Vorverarbeitung Ziel: Vorbereiten einer Region für das Matching
16
Trennung von Text und Hintergrund
Otsu Trennung von Text und Hintergrund Automatische Schwellwertbestimmung Annahme: 2 Klassen von Pixeln (Text und Hintergrund) Annahme: Bimodale Verteilung Hintergrund Text Schwellwert
17
Otsu Nicht robust und präzise genug
18
Besser: mathematischer Ansatz
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]
19
Otsu Schwellwert mit 0,7 multiplizieren Region 0,9 0,8 0,7 0,6 0,5
20
Region nicht immer horizontal ausgerichtet
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º
21
… Konzept Quellbild Grauwertbild Otsu Bereinigung Kantendetektion
gewünschte Regionen Textlokalisierung Vorverarbeitung Grauwertbild Otsu Bereinigung Kantendetektion Skew-Korrektur Kantendichte Morphologische Operationen Matching Pattern.png Template-Matching Connected Components Bounding Boxes Stationsname auf Englisch als ASCII … Region 1 Region n
22
Ziel: Vergleich vorverarbeiteter Region mit Mustern
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 Index Pattern 1 2 3 . 69 70 71 13 px 101 px
23
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?
24
Template-Matching Entfernung von weißen Zeilen am oberen und unteren Rand Berechnung des Weißanteils in jeder Zeile Löschen der Zeilen > 85% weiß
25
Skalierung der Region auf Größe 13 x 101
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
26
Quadratische Differenzen an jeder Position berechnen
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
27
Berücksichtigung von weißen Spalten an den Seiten
Templatematching Berücksichtigung von weißen Spalten an den Seiten Verschiebung nach links und rechts Kleinste Abweichung zählt 1 Muster 9 101 ... Verschiebung nach links Verschiebung nach rechts
28
Agenda Motivation Konzept Realisierung Fazit MATLAB Prototyp
Symbian C++ Fazit 28
29
Effektivität des Konzepts prüfen
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
30
MATLAB Prototyp
31
MATLAB Prototyp 100 … P555 710 Testdaten Stationsnummer Testbild Regionsnummer
32
MATLAB Prototyp Region nach Vorverarbeitung Matching Ergebnis Region
33
Trefferquote bei 710 Testfällen bei 85,22%
MATLAB Prototyp Konfusionsmatrix Trefferquote bei 710 Testfällen bei 85,22% Erkannte Station (Index aus Pattern.png) Input Station (Index aus Pattern.png)
34
MATLAB Prototyp
35
Agenda Motivation Konzept Realisierung Fazit MATLAB Prototyp
Symbian C++ Fazit 35
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
37
Realisierung mit Symbian C++
Demoapplikation CameraApp Quellcode offen Grundlage für Kamera-Applikationen Model-View-Controller Architektur (MVC) View cameraappview cameraappcontainer Controller cameraappappui cameraappcontroller Model cameraappdocument cameracaptureengine textengine cameraappapp
38
Realisierung mit Symbian C++
Kamera cameraappcontroller textengine 264x198 88x66 aFrame 1. iNewFrame iBackupFrame 2. Berechnung Ecken der Bounding Boxes Pattern.png Index 3. cameraappbasecontainer aFrame + Bounding Boxes + Text Stationsnamen-Array (englisch) 264x198 Display
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
40
Realisierung mit Symbian C++
Bitmaps im Speicher: Zeile 0 Zeile 1 Zeile 2 Zeile 3 Zeile 4 Zeile… Start 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
41
Realisierung mit Symbian C++
CFbsBitmap unterstützt verschiedene DisplayModes Grauwertbild: EGray256 RGB-Bild: 16,7 Mio. Farben EColor16M EColor16MU R G B R G B
42
Realisierung mit Symbian C++
Quellbild gewünschte Regionen Textlokalisierung Vorverarbeitung Grauwertbild Otsu Bereinigung Kantendetektion Skew-Korrektur Kantendichte Morphologische Operationen Matching Pattern.png Template-Matching Connected Components Bounding Boxes Stationsname auf Englisch als ASCII … Region 1 Region n
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
44
Vorstellung des Themas Das Konzept Realisierung Fazit
Agenda Vorstellung des Themas Das Konzept Realisierung Fazit 44
45
Operation auf Videostream mit Symbian C++ möglich
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)
46
Eigenes Framework zur Bildverarbeitung und -erkennung erstellen
Ausblick Eigenes Framework zur Bildverarbeitung und -erkennung erstellen Debugging Erweiterung für komplexe Datentypen (Matrizen) Erweiterung des Texterkennungssystems Erkennung einzelner Zeichen/Silben
47
Vielen Dank für Ihre Aufmerksamkeit
Diskussion Vielen Dank für Ihre Aufmerksamkeit Noch Fragen???
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.