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

Beschriftungserkennung
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)
 Barcode-Identifikation
 Optische Zeichenerkennung
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
233
234
Aufbau der Barcodes
Barcode-Typen
 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
 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
Leserichtung
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
235
236
Barcode-Typen
Beispiele für 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
© 2014 MVTec Software GmbH, München
237
238
Segmentierung des Barcodes
Barcode-Typen
2/5 Interleaved
Code 39
 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
Codabar
EAN 13
 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
© 2014 MVTec Software GmbH, München
239
240
Segmentierung der Barcode-Region
Eingabebild
Kantenregion eines Zeichens
Histogramm der Kantenrichtungen
Kantenregion eines Strichs
Histogramm der Kantenrichtungen
Zusammenhangskomponenten der
segmentierten Kanten
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
241
242
Segmentierung der Barcode-Region
Kandidaten für Striche
Segmentierung der Barcode-Region
Selektierte Strichkanten
Barcode-Region (Closing der Strichkanten und Auswahl nach Größe)
Segmentierung der Barcode-Region
Eingabebild
Selektierte Strichkanten
Kandidaten für Striche
Barcode-Region
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
243
244
Segmentierung bei kreisförmigen Barcodes
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
Eingabebild
Segmentierte Region und Schwerpunkt
Polartransformation
Barcode-Region
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
245
246
Bestimmung der Strichbreiten
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
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
© 2014 MVTec Software GmbH, München
247
248
Dekodierung des Barcodes
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

cn    3i mod 2 ci  mod 10
 i 1

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
© 2014 MVTec Software GmbH, München
249
250
Dekodierung des Barcodes
Dekodierter 2/5 Interleaved Barcode:
0220534911
 Kodierung Code 2/5 Interleaved:
Optische Zeichenerkennung (OCR)
Dekodierung des Codabar Barcodes
gescheitert, da Eingabebild
übersteuert
 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
© 2014 MVTec Software GmbH, München
251
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
Trennung der Zeichen bei der OCR
Eingabebild
Konstant aufgetrennte Zeichen
Segmentierte Zeichen
Dynamisch aufgetrennte Zeichen
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
253
254
Merkmale
Beispiel: OCR auf ICs
 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
 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
© 2014 MVTec Software GmbH, München
255
256
Beispiel: OCR auf ICs
Beispiel: OCR auf ICs
Trainingszeichen 1
Trainingszeichen 2
Trainingszeichen 3
Trainingszeichen 4
Gelesene Zeichen auf Testsatz 1
Gelesene Zeichen auf Testsatz 2
Gelesene Zeichen auf Testsatz 3
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
257
258
Beispiel: OCR auf Fließtext
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)
Gelesene Zeichen (Ausschnitt 1)
Gelesene Zeichen (Ausschnitt 1)
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
259
260
Beispiel: OCR auf Fließtext
Beispiel: Nummernschilderkennung
 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)
 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
© 2014 MVTec Software GmbH, München
261
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
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
© 2014 MVTec Software GmbH, München
263
264
Beispiel: Nummernschilderkennung
Eingabebild
Große Ziffern und Suchräume
Beispiel: Nummernschilderkennung
Rohsegmentierung
Erkennungsergebnis
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
265
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
Literatur
 Carsten Steger, Markus Ulrich, Christian Wiedemann: Machine
Vision Algorithms and Applications, Wiley-VCH, 2007
© 2014 MVTec Software GmbH, München
© 2014 MVTec Software GmbH, München
267
268