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
© Copyright 2026 Paperzz