http://ias.informatik.tu-muenchen.de/_media/people/steger/teaching/bildverstehen-ii/bildverstehen-ii-03.pdf

Beschriftungserkennung
 Barcode-Identifikation
 Optische Zeichenerkennung
© 2014 MVTec Software GmbH, München
233
Barcode-Identifikation
 Barcodes werden typischerweise mit Barcode-Scannern gelesen
(billiger als ein Bildverarbeitungssystem)
 Barcode-Identifikation mit einem Bildverarbeitungssystem ist
sinnvoll, wenn
 die Barcode-Identifikation nur eine Teilaufgabe der eigentlichen
Prüfung ist
 schlechte Kontrastverhältnisse herrschen
 die Barcodes kreisförmig aufgebracht sind (z.B. auf CDs)
 gestörte Barcodes erkannt werden müssen
 Barcode-Identifikation besteht aus zwei Teilaufgaben
 Segmentierung des Barcodes (falls Position im Bild nicht
konstant gehalten werden kann)
 Lesen des Barcodes (Dekodierung der Strichbreiten)
© 2014 MVTec Software GmbH, München
234
Aufbau der Barcodes
 Barcodes bestehen aus schwarzen Strichen und den dazwischen
liegenden Lücken (Elementen)
 Bei fast allen Barcodes wird auch die Lückenbreite zur Kodierung
von Information verwendet
 Barcodes bestehen i.a. aus Ruhezone, Start- und Stopzeichen, und
der dazwischen liegenden Nutzinformation
 Bei den meisten Barcodes legen die Start- und Stopzeichen die
Leserichtung fest
 Beispiel: Code 2/5 Industrial
Code
Startzeichen
Stopzeichen
Leserichtung
© 2014 MVTec Software GmbH, München
235
Barcode-Typen
 Zeichen: Element aus dem Zeichenvorrat, den der Barcode
darstellen kann und dessen Kodierung durch Striche und Lücken
 Zweibreitencodes
 Die Zeichen bestehen aus Elementen mit zwei verschiedenen
Breiten
 Verhältnis von breiten zu schmalen Elementen liegt i.a.
zwischen 2:1 und 3:1
 Einfache Herstellung (hohe Toleranzen bei den Strichbreiten)
 Informationsdichte ist nicht sehr hoch
 Mehrbreitencodes
 Die Zeichen bestehen aus Elementen mit mehr als zwei Breiten
 Kompliziertere Herstellung (geringere Toleranzen bei den
Strichbreiten)
 Informationsdichte ist höher
© 2014 MVTec Software GmbH, München
236
Barcode-Typen
 Kennzeichnung von Barcodes durch
 Verhältnis von breitem zu schmalem Element (bei
Zweibreitencodes)
 Modulbreite (= Breite des dünnsten Elementes)
 Toleranzen der Modulbreiten
 Folge von Strichen und Lücken, die durch den Barcode
vorgegeben sind
 Zeichenvorrat (Menge der darstellbaren Zeichen)
 Jeder Barcode kann alle Ziffern darstellen
 Einige Barcodes lassen auch die Darstellung von
Buchstaben, sowie Sonder- und Steuerzeichen zu
 Anzahl der nutzbaren Zeichen (feste oder variable Anzahl)
 Anordnung der Start- und Stopzeichen
 Fähigkeit zur Fehlererkennung oder -korrektur
© 2014 MVTec Software GmbH, München
237
Beispiele für Barcode-Typen
 Code 2/5 Industrial: Zweibreitencode, Ziffern 0-9, variable Anzahl
von Zeichen, Prüfzeichen nicht vorgeschrieben, Start- und
Stopzeichen
 Code 2/5 Interleaved: Zweibreitencode, Ziffern 0-9, variable gerade
Anzahl von Zeichen, Prüfzeichen nicht vorgeschrieben, Start- und
Stopzeichen
 Code Codabar: Zweibreitencode, Zeichen besteht aus sieben
Elementen (vier Striche, drei Lücken), variable Anzahl von Zeichen,
10 Ziffern und 6 Sonderzeichen, Prüfzeichen nicht vorgeschrieben
 Code 39: Zweibreitencode, 10 Ziffern, 26 Buchstaben, 7
Sonderzeichen, 1 Leerzeichen, Anzahl Zeichen variabel, Zeichen
besteht aus 9 Elementen (3 breit, 6 schmal)
 EAN 13: Mehrbreitencode, Zeichen bestehen aus 4 unterschiedlich
breiten Elementen, 10 Ziffern, Prüfziffern sind vorgeschrieben, 13
Zeichen pro Barcode, Start-, Stop- und Trennzeichen
© 2014 MVTec Software GmbH, München
238
Barcode-Typen
2/5 Interleaved
Codabar
Code 39
EAN 13
© 2014 MVTec Software GmbH, München
239
Segmentierung des Barcodes
 Strategie: Finden der Striche des Barcodes
 Striche sind Bereiche im Bild, in denen die Kantenrichtung zwei
dominante Maxima mit 180° Differenz im Histogramm besitzt
 Segmentierungsalgorithmus:
 Kantenextraktion mit dem Sobel-Operator und Non-MaximumSuppression
 Schwellwertoperation auf den verdünnten Kanten
 Zusammenhangskomponenten
 Berechnung des Richtungshistogramms innerhalb jeder
Zusammenhangskomponente
 Wenn eine oder zwei dominante Richtungen vorliegen,
Auswahl aller Punkte, die den Hauptrichtungen entsprechen
 Schätzung der Richtung des gesamten Barcodes aus den
dominanten Richtungen aller selektierten Regionen
 Zusammenfassung aller relevanten Regionen zur BarcodeRegion
© 2014 MVTec Software GmbH, München
240
Segmentierung der Barcode-Region
Eingabebild
Zusammenhangskomponenten der
segmentierten Kanten
© 2014 MVTec Software GmbH, München
241
Segmentierung der Barcode-Region
Kantenregion eines Zeichens
Histogramm der Kantenrichtungen
Kantenregion eines Strichs
Histogramm der Kantenrichtungen
© 2014 MVTec Software GmbH, München
242
Segmentierung der Barcode-Region
Kandidaten für Striche
Selektierte Strichkanten
Barcode-Region (Closing der Strichkanten und Auswahl nach Größe)
© 2014 MVTec Software GmbH, München
243
Segmentierung der Barcode-Region
Eingabebild
Kandidaten für Striche
Selektierte Strichkanten
Barcode-Region
© 2014 MVTec Software GmbH, München
244
Segmentierung bei kreisförmigen Barcodes
 Bei kreisförmig aufgebrachten Barcodes funktioniert das
beschriebene Segmentierungsverfahren nicht, da keine dominante
Kantenrichtung vorliegt
 In diesen Anwendungen kann die Polartransformation verwendet
werden
 Im resultierenden Bild erscheint der Barcode bei geeigneter Wahl
des Transformationszentrums waagerecht
 Das Transformationszentrum kann meistens mit den normalen
Segmentierungsverfahren bestimmt werden
 Im transformierten Bild kann die Barcode-Region mit dem
beschriebenen Verfahren segmentiert werden
© 2014 MVTec Software GmbH, München
245
Segmentierung bei kreisförmigen Barcodes
Eingabebild
Segmentierte Region und Schwerpunkt
Polartransformation
Barcode-Region
© 2014 MVTec Software GmbH, München
246
Bestimmung der Strichbreiten
 Strichbreiten werden als 1D-Kanten innerhalb der Barcode-Region
senkrecht zur Richtung der dominanten Kantenrichtung extrahiert
 Um die diskreten Strichbreiten bestimmen zu können, muß die
Kantenextraktion subpixelgenau erfolgen
 Bei der Bestimmung der Breite der Grauwertprojektionen muß
berücksichtigt werden, daß die Codes nicht immer genau
senkrecht aufgenommen werden
  Projektionsbereich ist typischerweise kleiner als die Breite der
Barcode-Region
 Berechnung der diskreten Strichbreiten (der Module) ist ein
unüberwachtes Klassifizierungsproblem (Clustering)
 Leider werden die Barcodes oft übersteuert aufgenommen
  Lücken erscheinen oft viel breiter als Striche
  Diskrete Breiten müssen oft für Striche und Lücken getrennt
berechnet werden
© 2014 MVTec Software GmbH, München
247
Bestimmung der Strichbreiten
Korrekte Beleuchtung
Übersteuerte Beleuchtung
Strichbreite
Lückenbreite
2
2.5
3
3.5
4
4.5
Strich- und Lückenbreite
5
Strichbreite
Lückenbreite
5.5 2
3
4
5
6
7
8
9
10
Strich- und Lückenbreite
11
12
13
Verteilung der Strich- und Lückenbreiten Verteilung der Strich- und Lückenbreiten
© 2014 MVTec Software GmbH, München
248
Dekodierung des Barcodes
 Dekodierung des Barcodes erfolgt anhand der diskreten
Strichbreiten und der Dekodierungsvorschrift des jeweiligen
Barcodetyps
 Beispiel: Code 2/5 Interleaved
 Gerade Anzahl kodierter Zeichen
 Zeichensatz: Ziffern
 Ein Zeichen besteht aus zwei breiten und drei schmalen
Strichen bzw. Lücken, die verschränkt (interleaved) gedruckt
werden
 Falls die eigentliche Information aus einer ungeraden Anzahl
von Zeichen besteht, kann das letzte Zeichen als Prüfzeichen
verwendet werden
 Berechnung der Prüfsumme:
 n 1 i mod 2 
cn    3
ci  mod 10
 i 1

© 2014 MVTec Software GmbH, München
249
Dekodierung des Barcodes
 Kodierung Code 2/5 Interleaved:
Strich
Zeichen
0
1
2
3
4
5
6
7
8
9
1
1
2
1
2
1
2
1
1
2
1
2
1
1
2
2
1
1
2
1
1
2
3
2
1
1
1
2
2
2
1
1
1
4
2
1
1
1
1
1
1
2
2
2
5
1
2
2
1
2
1
1
2
1
1
© 2014 MVTec Software GmbH, München
250
Dekodierung des Barcodes
Dekodierter 2/5 Interleaved Barcode:
0220534911
Dekodierung des Codabar Barcodes
gescheitert, da Eingabebild
übersteuert
© 2014 MVTec Software GmbH, München
251
Optische Zeichenerkennung (OCR)
 Optische Zeichenerkennung besteht aus zwei Teilaufgaben:
 Segmentierung der Zeichen
 Klassifikation der segmentierten Zeichen („Lesen der Zeichen“)
 Als Segmentierungsverfahren können Kombinationen aller bisher
besprochenen Verfahren verwendet werden:
 Schwellwertoperationen: global, dynamisch, automatisch
 Beleuchtungskorrektur
 Regionen- und Grauwertmorphologie
 Andere Verfahren, die von der speziellen Anwendung
abhängen
 Oft ist es schwierig, die einzelnen Zeichen vollständig zu trennen,
speziell bei niedrigen Auflösungen oder bei Zeichensätzen mit
Serifen
  Spezielle Verfahren zur Trennung der Zeichen notwendig
© 2014 MVTec Software GmbH, München
252
Trennung der Zeichen bei der OCR
 Bei Zeichensätzen konstanter Breite (häufigster Fall in der
industriellen Bildverarbeitung): Aufteilung der Regionen in
Rechtecke gleicher Breite
  Breite muß genau bekannt sein
 Falls der Zeichensatz keine konstante Breite besitzt oder die Breite
der Zeichen nur ungefähr bekannt ist:
 Vorgabe der ungefähren Breite und der möglichen
Breitenänderung der Zeichen
  Suchbereich zur Auftrennung um die erwartete Breite der
Zeichen
 Auftrennung der Region an den Stellen, die innerhalb des
Suchbereiches die geringste Anzahl an Punkten in vertikaler
Richtung besitzen und am nächsten zu der erwarteten Breite
liegen
© 2014 MVTec Software GmbH, München
253
Trennung der Zeichen bei der OCR
Eingabebild
Segmentierte Zeichen
Konstant aufgetrennte Zeichen
Dynamisch aufgetrennte Zeichen
© 2014 MVTec Software GmbH, München
254
Merkmale
 Das Lesen der Zeichen entspricht der Klassifikation der Regionen
 Die Klassifikation, d.h. die Zuordnung einer Region zu einer
bestimmten Klasse von Zeichen, erfolgt anhand von Merkmalen
 Regionenmerkmale:
 Anisometrie
 Verhältnis Breite/Höhe des umschließenden Rechtecks
 Anzahl Löcher
 etc.
 Grauwertmerkmale:
 Robust kontrastnormierte Grauwerte innerhalb des
umschließenden Rechtecks der Region, wobei das Rechteck
auf eine Standardgröße (z.B. 8×10 Pixel) skaliert wird
 Regionenmerkmale: Jeweils eine gemessene Größe
 Grauwertmerkmale: Viele gemessene Größen, z.B. 80 bei
Skalierung auf 8×10-Rechteck
© 2014 MVTec Software GmbH, München
255
Beispiel: OCR auf ICs
 Segmentierung der Zeichen:
 Dynamische Schwellwertoperation
 Zusammenhangskomponenten
 Auswahl der Regionen aufgrund von Fläche, Breite und Höhe
 Closing zur Bestimmung der Region der Beschriftung auf dem
IC
 Training aus den Zeichen von 4 Trainingsbildern
 Test der Klassifikationsgüte auf 3 Testbildern, die nicht zu den
Trainingsbildern gehören
 Ergebnis:
 Sowohl auf den Trainingsbildern als auch auf den Testbildern
werden alle Zeichen korrekt klassifiziert
© 2014 MVTec Software GmbH, München
256
Beispiel: OCR auf ICs
Trainingszeichen 1
Trainingszeichen 2
Trainingszeichen 3
Trainingszeichen 4
© 2014 MVTec Software GmbH, München
257
Beispiel: OCR auf ICs
Gelesene Zeichen auf Testsatz 1
Gelesene Zeichen auf Testsatz 2
Gelesene Zeichen auf Testsatz 3
© 2014 MVTec Software GmbH, München
258
Beispiel: OCR auf Fließtext
 Segmentierung
 Standardverfahren: Schwellwertoperation, Dilatation,
Zusammenhangskomponenten, Schnitt mit Originalregion
 Zusätzlich: Bestimmung der Wörter durch Dilatation mit
horizontaler Linie von geringer Ausdehnung (Überbrückung
der Zwischenräume zwischen den Zeichen)
 Bestimmung der Zeilen durch Dilatation mit horizontaler Linie
großer Ausdehnung (Überbrückung der Leerzeichen)
 Merkmale für den Klassifikator:
 Robust normierte Grauwerte, skaliert auf 8×10 Pixel
 Seitenverhältnis des umschließenden Rechtecks der Zeichen
und Anisometrie zur Unterscheidung von Zeichen, die nach der
Skalierung (fast) identisch sind, z.B. - und |
 Training aller ASCII-Zeichen aus Bildern, die mit verschiedenen
Geräten aufgenommen wurden (Scanner, Kamera)
© 2014 MVTec Software GmbH, München
259
Beispiel: OCR auf Fließtext
Gelesene Zeichen (Ausschnitt 1)
Gelesene Zeichen (Ausschnitt 1)
© 2014 MVTec Software GmbH, München
260
Beispiel: OCR auf Fließtext
 Klassifikation des gesamten Textes im wesentlichen korrekt
 Probleme treten hauptsächlich bei Zeichen auf, die nach der
Skalierung auf 8×10 Pixel sehr ähnlich werden (im verwendeten
Zeichensatz Courier)
 c, C
 o, O
 v, V
 Satzzeichen, z.B. Komma und Apostroph
 Diese Probleme lassen sich umgehen, wenn sowohl beim Training
als auch bei der Klassifikation Informationen über die Höhe und
Grundlinie des gesamten Zeichensatzes verwendet werden
 In der industriellen Bildverarbeitung treten diese Probleme eher
selten auf, da meist spezielle Zeichensätze verwendet werden
(OCR-A, OCR-B, MICR)
© 2014 MVTec Software GmbH, München
261
Beispiel: Nummernschilderkennung
 Beispiel: Japanische Nummernschilder
 Aufbau: Zweizeilig
 Obere Zeile: Präfektur oder Stadt (1-3 Kanji-Zeichen) und 2 oder
3 Zahlen in kleinem Zeichensatz
 Untere Zeile: Hiragana-Zeichen und zwei- oder vierstellige Zahl
in großem Zeichensatz
© 2014 MVTec Software GmbH, München
262
Beispiel: Nummernschilderkennung
 Probleme bei der Segmentierung:
 Schrauben der Befestigung des Nummernschildes
 Falls in der unteren Zeile eine zweistellige Zahl steht, werden
die fehlenden zwei Zahlen durch Punkte ersetzt
 Die Kanji- und Hiragana-Zeichen zerfallen in viel stärkerem
Maße in mehrere Teile als lateinische Zeichen
 Die Nummernschilder besitzen keinen Rand und heben sich
somit nicht notwendigerweise von der Karosserie des
Fahrzeugs ab
 Segmentierung:
 Finden der großen Ziffern durch dynamische
Schwellwertoperation und Auswahl anhand von Größe, Höhe
und Breite
 Aufspannung von Suchbereichen für die anderen Klassen von
Zeichen anhand der Position der am weitesten rechts liegenden
Ziffer
© 2014 MVTec Software GmbH, München
263
Beispiel: Nummernschilderkennung
 Segmentierung:
 Elimination von Schrauben, Punkten, Strichen und Rauschen
innerhalb der Suchregionen durch morphologische
Operationen und Auswahl anhand von Größe und Form
 Die Erkennung der Kanji-Zeichen der Präfektur als einzelne
Zeichen ist sehr schwierig
 Es gibt nur relativ wenige Präfekturen und mögliche Städte
  Segmentierung der Kanji-Zeichen als eine Region und
entsprechendes Training des Klassifikators
 Verwendung von vier Klassifikatoren bei der OCR:
 Präfektur oder Stadt (Kanji-Zeichen als eine Region)
 Hiragana-Zeichen
 Kleine Ziffern
 Große Ziffern
© 2014 MVTec Software GmbH, München
264
Beispiel: Nummernschilderkennung
Eingabebild
Rohsegmentierung
Große Ziffern und Suchräume
Erkennungsergebnis
© 2014 MVTec Software GmbH, München
265
Beispiel: Nummernschilderkennung
© 2014 MVTec Software GmbH, München
266
Zusammenfassung Beschriftungserkennung
 Wichtige Punkte, die man sich merken sollte
 Barcodeerkennung durch 1D-Kantenextraktion
 Segmentierungsverfahren bei der OCR zur Auftrennung von
verschmolzenen Zeichen
 OCR ist die Klassifikation der segmentierten Zeichen
 Klassifikation bei der OCR basiert auf Regionen- und
Grauwertmerkmalen
© 2014 MVTec Software GmbH, München
267
Literatur
 Carsten Steger, Markus Ulrich, Christian Wiedemann: Machine
Vision Algorithms and Applications, Wiley-VCH, 2007
© 2014 MVTec Software GmbH, München
268