1 / 47

Mobile Media Processing: Text Localization and Recognition

Seminar Bildverstehen und Mustererkennung. Mobile Media Processing: Text Localization and Recognition. Jan-Christoph Küster, Philipp Schirmacher, Ansgar Schulte. Agenda. Motivation Konzept Realisierung Fazit. Motivation. U-Bahnplan der Stadt Seoul ( koreanisch / Hangul)

sheila
Download Presentation

Mobile Media Processing: Text Localization and Recognition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda Motivation Konzept Realisierung Fazit

  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

  5. Konzept Quellbild gewünschte Regionen Vorverarbeitung Textlokalisierung 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 gewünschte Regionen Vorverarbeitung Textlokalisierung 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 Kantendichte 8 1 1 … 1 … … 8 1 1 … 1 1 1 … 1

  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 gewünschte Regionen Vorverarbeitung Textlokalisierung 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. Otsu Trennung von Text und Hintergrund Automatische Schwellwertbestimmung Annahme: 2Klassen von Pixeln (Text und Hintergrund) Annahme: Bimodale Verteilung Hintergrund Text Schwellwert

  17. Otsu Nicht robust und präzise genug

  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]

  19. Otsu Schwellwert mit 0,7 multiplizieren Region 0,9 0,8 0,7 0,6 0,5

  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º

  21. Konzept Quellbild gewünschte Regionen Vorverarbeitung Textlokalisierung 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. 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. 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?

  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

  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

  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] Template n Template n-1 gn-1 Template1 g1

  27. Templatematching Berücksichtigung von weißen Spalten an den Seiten Verschiebung nach links und rechts Kleinste Abweichung zählt ... 1 9 101 Muster ... 1 9 101 Verschiebung nach links ... 1 9 101 Verschiebung nach rechts

  28. Agenda Motivation Konzept Realisierung MATLAB Prototyp Symbian C++ Fazit

  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

  30. MATLAB Prototyp

  31. MATLAB Prototyp 100 … 547 03211 16 … 548 03211 28 … 553 03211 32 … 810 03211 14 … P555 710 Testdaten Stationsnummer Testbild Regionsnummer

  32. MATLAB Prototyp Region nach Vorverarbeitung Matching Ergebnis Region

  33. 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 MATLAB Prototyp SymbianC++ Fazit

  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 textengine cameraappcontroller 264x198 88x66 1. iNewFrame aFrame 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++ Pixel 0 Pixel 1 Pixel 2 Pixel 3 Pixel 4 Pixel… • Bitmaps im Speicher: Zeile 0 Zeile 1 Zeile 2 Zeile 3 Zeile 4 Zeile… Start Zeilenlänge Start + 4 * Zeilenlänge Start + 4 * Zeilenlänge abhängig vom DisplayMode

  41. Realisierung mit Symbian C++ CFbsBitmapunterstützt verschiedene DisplayModes Grauwertbild: EGray256 RGB-Bild: 16,7 Mio. Farben EColor16M EColor16MU 0 7 RGB 0 8 16 23 RGB 0 8 16 24 31

  42. Realisierung mit Symbian C++ Quellbild gewünschte Regionen Vorverarbeitung Textlokalisierung 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. Agenda Vorstellung des Themas Das Konzept Realisierung Fazit

  45. Fazit Operation auf Videostream mit Symbian C++ möglich Verfahren der Bilderkennung performant realisierbar Bibliothek NokiaCVunbrauchbar schlecht dokumentiert nicht performant Quellcode nicht frei Realisierung und Testen in MATLAB empfehlenswert On-Device-Debugging notwendig (Carbide.c++ DEV)

  46. Ausblick Eigenes Framework zur Bildverarbeitung und -erkennung erstellen Debugging Erweiterung für komplexe Datentypen (Matrizen) Erweiterung des Texterkennungssystems Erkennung einzelner Zeichen/Silben

  47. Diskussion Vielen Dank für Ihre Aufmerksamkeit Noch Fragen???

More Related