Eine nähere Betrachtung des Multi-Code Barcode-Lesens mit mobilen Geräten

Using a mobile device to scan multiple barcodes on a box label

Es gibt keinen Zweifel daran, dass schnelleres und genaueres Barcode-Scannen vielen Workflows Produktivitätssteigerungen bringt. Nahezu jede Verkaufsstelle, vom Supermarkt bis zum Sportwarenhändler profitiert von scanbaren Produkt-Barcodes nicht nur in der Verkaufsstelle, sondern auch beim Bestandsmanagement und dem Nachschub. Verteilzentren, Lagereinrichtungen, Veranstaltungstickets, Airlines... Die Liste der Branchen und Anwendungsmöglichkeiten für Barcodes ist endlos.

Im Streben nach weiteren Produktivitätssteigerungen möchten Unternehmen jetzt mehrere Barcodes in einem einzigen Scan lesen. Für Anwendungen wie das Lesen von bis zu einem halben Dutzend GS1-Barcodes auf Palettenetiketten ist das eine sinnvolle Erweiterung. Ein weiteres gängiges Beispiel ist das Scannen eines Produktetiketts mit mehreren Barcodes beim Bestandseingang. Da Lösungen mit mobilen Geräten jedoch immer leistungsstärker wurden sowie mit besseren Kameras und schnelleren Prozessoren ausgestattet sind, suchten Benutzer noch modernere Multi-Code-Scananwendungen.

In einem solchen Fall trat ein Kunde kürzlich an uns mit einer Anwendung heran, die er als ideal für das Multi-Code Barcode-Lesen einschätzte. In diesem Fall wurden Artikel von einem Versorgungsschrank verwendet; die Produktetiketten darauf waren auf einem Nachbestellformular angebracht, wobei jedes Etikett zwei Barcodes aufwies, die das Produkt identifizierten; jede Seite konnte ein bis 15 Etiketten haben, die in ein oder zwei Spalten angeordnet waren. Der Kunde wollte jede Barcode-Seite mit einem mobilen Gerät scannen, indem er einfach das Mobiltelefon über die Seite hielt und die gesamte Seite scannte.

Er zeigte uns eine clevere Präsentation eines Konkurrenzprodukts, das die Barcodes relativ schnell hervorheben und dann eine Ergebnisliste ausgeben würde. Der erste Versuch mit dieser Demo bestand darin, das Mobiltelefon über das Stück Papier zu halten, um die gesamte Seite auf einmal zu erfassen; das funktionierte aber nicht sehr gut, da die Barcodes relativ klein waren, einige eine fragliche Qualität aufwiesen und die Software nicht immer alle sofort aus der Entfernung lesen konnte.

Der zweite Versuch bestand in der Verwendung eines „Batch-Betriebs“, bei dem das Mobiltelefon näher an die Codes gehalten, dann eher schwungvoll über die Seite bewegt wurde und die Barcodes im Laufe der Zeit sammelte. Da das Mobiltelefon näher herangehalten wurde, funktionierte diese Methode besser. Es gab nur zwei Probleme: Die Barcodes wurden nicht in derselben Reihenfolge ausgegeben, in der sie auf dem Stück Papier erschienen (was für seine Anforderungen wichtig war), und manchmal fehlten seltsamerweise einige Codes in den Ergebnissen. Alles, was wir tun mussten, war, eine Lösung bereitzustellen, die dasselbe tat, aber alle Codes in der richtigen Reihenfolge ausgab. Einfach, nicht wahr? Nicht wirklich.

Wie Multi-Code Barcode-Lesen funktioniert

Cognex bietet seit Jahrzehnten Barcode-Scansysteme in stationären Systemen, tragbaren Scannern und neuerdings mobilen Barcode-Terminals, Mobiltelefonen und Tablets. Das Multi-Code Barcode-Lesen ist in stationären Anwendungen üblich, aber weniger häufig in tragbaren und mobilen Geräten. Der Hauptgrund dafür ist die Bildstabilität: In stationären Anwendungen (in denen ein Barcode-Scansystem in einer fixen Position montiert ist) bewegt sich die Kamera nicht. Sie befindet sich in einer bekannten Ausrichtung und ist auf die Scanentfernung und das Sichtfeld eingestellt, die zum Scannen der Artikel optimal sind. Außerdem werden Beleuchtung und Bewegung normalerweise gut gesteuert oder verstanden, was sogar eine noch bessere Einstellung der Scanleistung ermöglicht. Während diese Merkmale einer stationären Scananlage zu einer besser gesteuerten Umgebung für das Multi-Code-Scannen beitragen, ist es keinesfalls eine einfache Aufgabe.

Im Idealfall sollte ein Bildscanner in der Lage sein, einen einzigen Schnappschuss vom Barcode-Feld zu machen und jeden einzelnen lokalisieren und dekodieren können; dies ist aber selten der Fall—denn nicht jeder Barcode ist aufgrund von Abweichungen bei Fokus, Beleuchtung, Schieflage usw. lokalisier- oder dekodierbar. Selbst bei stationären Anwendungen geschieht dies praktisch nie. Stattdessen wird die Multi-Code-Dekodierung durch Prüfung vieler Einzelbilder (Frames) aus einem Live-Videostream aus der Kamera mit anschließender Kombination der Ergebnisse aus dieser Scanserie erreicht. Das bedeutet in den meisten Anwendungen die Bündelung der dekodierten Ergebnisse aus 10, 20, 30 oder noch mehr Frames, da wahrscheinlich kein einzelner Frame einen einzelnen Barcode enthält.

Da mehrere Frames analysiert und die Ergebnisse kombiniert werden, müssen die Dekodierungsalgorithmen ausgefeilt genug sein, um Duplikate zu eliminieren, jedoch ohne gültige Daten herauszufiltern. Betrachten Sie das folgende einfache Beispiel mit vier Barcodes:


Multi-Code - Beispiel mit 4 Barcodes

Wenn unser Benutzer diese Codes mit einem Multi-Code-Scanner scannt, erwartet er vier Ergebnisse: { A, B, C, A}. Nehmen wir an, dass wir beim Scannen dieser Codes aufgrund von Abweichungen bei Fokus und Beleuchtung zwei Bilder (Frames) scannen müssen, um alle Codes zu finden. Auf dem ersten Frame dekodieren wir die beiden oberen Barcodes, { A, B }:


Multi-Code - Frame 1

Auf dem zweiten Frame dekodieren wir dagegen die unteren drei { B, C, A }:


Multi-Code - Frame 2

Jeder Frame zeigt einen Barcode-Satz, aber wir können diese beiden Sätze nicht einfach verbinden: ansonsten wäre unser Ergebnis { A, B, C }; wir haben das zweite Auftreten von A übersehen! Die Bündelung der Ergebnisse aus mehreren Frames erfordert jedoch eine viel ausgefeiltere Methode, als einfach nur doppelte Barcode-Werte zu eliminieren.

Hinzufügen von etwas (oder mehr) Bewegung

Offenbar scheint eine Lösung zur Bündelung der Ergebnisse mehrerer Frames darin zu bestehen, Positionsinformationen sowie den Barcode-Wert in die Filterung von Duplikaten miteinzubeziehen; schließlich geht aus unserem Beispiel klar hervor, dass das zweite Auftreten von BARCODE A deutlich beim ersten Auftreten im ersten Frame positioniert ist. Tatsächlich gibt es einige Multi-Code-Implementierungen, die genau so vorgehen, um festzustellen, ob ein Code doppelt ist oder nicht. Dies funktioniert, weil sich die relativen Positionen der Barcodes von einem Bildframe zum nächsten nicht oder zumindest nur sehr wenig ändern.

Aber betrachten wir nun wieder unseren Anwendungsfall, bei dem üblicherweise eine Live-Vorschau der Kamera am Bildschirm erfolgt, damit der Benutzer das mobile Gerät über die zu scannenden Barcodes positionieren (zielen) kann. Während der Benutzer das Mobiltelefon positioniert, werden viele Frames erfasst und dekodiert, wobei sich das Telefon selbst mit der ruhigsten Hand die ganze Zeit bewegt.

Im obigen einfachen Beispiel kann der Benutzer die Kamera wahrscheinlich so positionieren, dass er alle vier Barcodes auf einmal erfassen kann. Was aber, wenn es zu viele Codes gibt (im Beispiel unseres Kunden: eine ganze Seite) und der Benutzer jetzt die Kamera über die Barcodes „bewegt“, um sie alle zu scannen? Anders gesagt, die Bewegung des mobilen Geräts ist erforderlich, um alle Codes zu erfassen.

Die Handhabung von Bewegung bei einem mobilen Scanner kann sehr schwierig sein, da die Geschwindigkeit und Richtung der Bewegung dem Scanner normalerweise nicht bekannt sind—schlimmer noch, sie werden höchstwahrscheinlich variieren, während der Benutzer das mobile Gerät hält und bewegt.

Wenn Multi-Code-Scannen nur so einfach wäre

Ein weiterer komplexer Aspekt des Multi-Code-Scannens ist jener, dass es nicht genügt, alle Barcodes zu finden, sondern dass entschieden werden muss, wann nicht mehr nach weiteren Barcodes gesucht werden muss. In unserem einfachen obigen Beispiel ist die Anzahl der zu scannenden Barcodes bekannt. Der Scanner kann so konfiguriert werden, dass er vier Barcodes sucht, bevor er die Ergebnisse ausgibt.

Was ist aber im Anwendungsfall unseres Kunden, wenn die Seite zwischen zwei und 30 Barcodes haben kann? Wie würde ein Multi-Code-System den Benutzer informieren, wenn wir eine Seite mit einer unbekannten Anzahl von Barcodes hätten und einige übersehen werden oder beschädigt sind? Wie sollte der Multi-Code-Scanner wissen, dass nicht alle Codes gelesen wurden? Das ist bei weitem der größte Fehler in einer schlecht durchdachten Multi-Code-Scanlösung: übersehene Codes. Bei unsachgemäßer Behandlung können übersehene Codes die durch Verwendung des Multi-Code-Scannens beabsichtigten Produktivitätssteigerungen leicht zunichte machen.

Behandeln Sie die Demo nicht als der Weisheit letzten Schluss

Im Beispiel unseres Kunden lieferte die Demo, die er implementieren wollte, unzuverlässige Ergebnisse, wahrscheinlich weil:

  • Die Barcodes, die er zu scannen versuchte, doppelte Codes aufwiesen, welche gültige Daten waren—sie wurden aber von der Scansoftware als Doppellesungen desselben Barcodes herausgefiltert.
  • Die Codes konnten nicht in der richtigen Reihenfolge ausgegeben werden, wie sie auf der Seite erschienen, weil die Scannersoftware keine genaue Möglichkeit hatte, die Richtung oder Ausrichtung des Scans zu messen, während der Benutzer des Telefon über die Codes bewegte und diese erfasst wurden. Da die Scansoftware nicht weiß, wo die Seite „beginnt“, wurden die Barcodes in der Scanreihenfolge ausgegeben und nicht in der physikalischen Reihenfolge auf der Seite.

Selbst wenn diese beiden Probleme gelöst würden, wäre der Workflow immer noch schlecht, wenn ein unlesbarer Barcode auftritt—der Benutzer hätte einfach keine Möglichkeit zu erfahren, welcher Code übersehen wurde und er müsste manuell bearbeitet werden.

Letztendlich empfahlen wir dennoch eine Multi-Code-Lösung: allerdings eine, bei der jede der 2 Code-Etiketten vom Benutzer nacheinander einzeln gescannt wurden: auf diese Weise konnte die Anwendung jedes Etikett/jeden Scan prüfen, während der Benutzer fortfuhr, und eine positive Rückmeldung liefern (oder eine negative, wenn ein Problem auftrat). Die daraus resultierende Anwendung war nicht so wünschenswert, wie die ursprüngliche Demo zu sein schien, aber sie bot ihren Benutzern einen soliden, brauchbaren Workflow.

Mobiltelefon und Tablets sind mit ihren hochauflösenden Kameras und leistungsstarken Prozessoren zunehmend in der Lage, komplexe Barcode-Scanaufgaben, einschließlich Multi-Code-Lesen, durchzuführen. Aber gehen Sie nicht davon aus, dass der Versuch, ein ganzes Blatt mit Barcodes oder ein ganzes Produktregal gleichzeitig scannen zu wollen, der beste Workflow ist. Diese Szenarien können für aufregende Demos sorgen, da sie normalerweise unter Idealbedingungen durchgeführt werden, aber wenn Sie einen Multi-Code-Workflow planen, möchten Sie sicher sein, dass Sie alle Variablen berücksichtigen, die seine Effizienz beeinträchtigen können. Um mehr über mobile Terminals und andere mobile Lösungen von Cognex zu erfahren, laden Sie den Produktleitfaden für mobile Lösungen herunter.

Weitere Posts auf

ERHALTEN SIE ZUGANG ZU SUPPORT & TRAINING FÜR PRODUKTE & MEHR

Werden Sie Teil von MyCognex

SIE HABEN EINE FRAGE?

Cognex is weltweit vertreten, um Sie bei Ihren Vision- und Barcode-Anwendungen zu unterstützen.

Kontakt