DE112021003744T5 - Strichcodescannen basierend auf gestenerkennung und -analyse - Google Patents

Strichcodescannen basierend auf gestenerkennung und -analyse Download PDF

Info

Publication number
DE112021003744T5
DE112021003744T5 DE112021003744.7T DE112021003744T DE112021003744T5 DE 112021003744 T5 DE112021003744 T5 DE 112021003744T5 DE 112021003744 T DE112021003744 T DE 112021003744T DE 112021003744 T5 DE112021003744 T5 DE 112021003744T5
Authority
DE
Germany
Prior art keywords
barcode
gesture
image
image stream
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021003744.7T
Other languages
English (en)
Inventor
Ozgur Ozserin
Luke Walton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zebra Technologies Corp
Original Assignee
Zebra Technologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zebra Technologies Corp filed Critical Zebra Technologies Corp
Publication of DE112021003744T5 publication Critical patent/DE112021003744T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

Ein System zur Dekodierung eines Strichcodes auf der Basis von Gestenerkennung und -analyse wird hier offenbart. Das System kann einen Bildstrom aus einer Umgebung empfangen. Das System kann, basierend auf der Verarbeitung von Bildern des Bildstroms, einen Gestenbereich des Bildstroms bestimmen. Das System kann eine Geste eines Benutzers auf der Grundlage einer Analyse des Gestenbereichs erkennen. Das System kann einen Strichcodebereich des Bildstroms auf der Grundlage einer Position des Benutzers bei der Ausführung der Geste bestimmen. Das System kann einen Strichcode in der Umgebung auf der Grundlage einer Analyse des Strichcodebereichs identifizieren. Das System kann den Strichcode auf der Grundlage eines Formats des Strichcodes dekodieren.

Description

  • HINTERGRUND
  • Strichcodes können mit verschiedenen Arten von Objekten verbunden werden, um Informationen über die Objekte mit Hilfe eines Strichcode-Scanners bereitzustellen oder zu erhalten. In einigen Fällen kann ein Benutzer einen manuellen Strichcode-Scanner verwenden, um einen Strichcode zu scannen. Der manuelle Strichcode-Scanner, der von einer Hand oder einem Arm des Benutzers gehalten wird oder daran befestigt ist, erfordert typischerweise die Verwendung einer oder beider Hände des Benutzers, um den Scanvorgang durchzuführen (z. B. um den Scanvorgang auszulösen und/oder eine Position des manuellen Strichcode-Scanners und/oder des Objekts zu manipulieren). Oft ist der Benutzer mit anderen Aktivitäten beschäftigt, die das Objekt betreffen, während er den Strichcode auf dem Objekt scannt. Daher besteht ein Bedarf an einem präzisen Strichcode-Scansystem, das die Hände des Benutzers freigibt, damit dieser die anderen Tätigkeiten leichter und einfacher ausführen kann, ohne den Strichcode-Scanner zwischen den Scans absetzen oder aufnehmen zu müssen.
  • BESCHREIBUNG
  • In einigen Implementierungen umfasst ein Verfahren das Empfangen eines Bildstroms, der eine Umgebung darstellt; das Überwachen des Bildstroms unter Verwendung eines Bildverarbeitungsmodells, um einen Satz von Gesten in der Umgebung zu erkennen; das Bestimmen unter Verwendung des Bildverarbeitungsmodells, dass ein erster Abschnitt des Bildstroms eine erste Geste des Satzes von Gesten darstellt; das Bestimmen unter Verwendung des Bildverarbeitungsmodells, dass die erste Geste einem Anzeigen eines Strichcodebereichs des Bildstroms zugeordnet ist; das Analysieren, unter Verwendung des Bildverarbeitungsmodells, des Strichcodebereichs des Bildstroms, um einen Strichcode zu identifizieren; das Bestimmen, unter Verwendung des Bildverarbeitungsmodells, dass ein zweiter Abschnitt des Bildstroms eine zweite Geste des Satzes von Gesten darstellt, die dem Dekodieren des Strichcodes zugeordnet ist; das Dekodieren des Strichcodes basierend auf dem Bestimmen, dass der zweite Abschnitt des Bildstroms die zweite Geste darstellt; und das Durchführen einer Aktion, die einem Objekt zugeordnet ist, das dem Strichcode zugeordnet ist.
  • In einigen Implementierungen enthält eine Vorrichtung einen oder mehrere Speicher; und einen oder mehrere Prozessoren, die kommunikativ mit dem einen oder den mehreren Speichern gekoppelt sind, die konfiguriert sind, um: einen Bildstrom zu empfangen, der eine Umgebung darstellt; den Bildstroms unter Verwendung eines Bildverarbeitungsmodells zu überwachen, um einen Satz von Gesten in der Umgebung zu erfassen; unter Verwendung des Bildverarbeitungsmodells zu bestimmen, dass ein erster Abschnitt des Bildstroms eine erste Geste des Satzes von Gesten darstellt; unter Verwendung des Bildverarbeitungsmodells zu bestimmen, dass die erste Geste einem Anzeigen eines Strichcodebereichs des Bildstroms zugeordnet ist; unter Verwendung des Bildverarbeitungsmodells den Strichcodebereich des Bildstroms zu analysieren, um einen Strichcode zu identifizieren, der sich in der Umgebung befindet; unter Verwendung des Bildverarbeitungsmodells zu bestimmen, dass ein zweiter Abschnitt des Bildstroms eine zweite Geste des Satzes von Gesten darstellt, die einer Dekodierung des Strichcodes zugeordnet ist; und den Strichcode auf der Grundlage des Bildstroms zu dekodieren, der die zweite Geste darstellt.
  • In einigen Implementierungen enthält ein zugreifbares, maschinenlesbares Medium, das Anweisungen speichert, einen oder mehrere Befehle, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen zum: Empfangen eines Bildstroms einer Umgebung; Bestimmen eines Gestenbereichs des Bildstroms auf der Grundlage der Verarbeitung von Bildern des Bildstroms; Erfassen einer Geste durch einen Benutzer auf der Grundlage einer Analyse des Gestenbereichs; Bestimmen eines Strichcodebereichs des Bildstroms auf der Grundlage einer Position des Benutzers beim Ausführen der Geste; Identifizieren eines Strichcodes in der Umgebung auf der Grundlage der Analyse des Strichcodebereichs; und Dekodieren des Strichcodes auf der Grundlage eines Formats des Strichcodes.
  • Figurenliste
  • Die beigefügten Figuren, in denen gleiche Bezugszeichen identische oder funktional ähnliche Elemente in den einzelnen Ansichten bezeichnen, sind zusammen mit der nachfolgenden detaillierten Beschreibung in die Offenbarung inkorporiert und bilden einen Bestandteil der Offenbarung und dienen dazu, hierin beschriebene Ausführungsformen von Konzepten, die die beanspruchte Erfindung umfassen, weiter zu veranschaulichen und verschiedene Prinzipien und Vorteile dieser Ausführungsformen zu erklären.
    • 1 ist ein Diagramm einer hier beschriebenen Beispielimplementierung.
    • 2 ist ein Diagramm einer anderen hier beschriebenen Beispielimplementierung.
    • 3 ist ein Diagramm einer anderen hier beschriebenen Beispielimplementierung.
    • 4 ist ein Diagramm einer Beispielumgebung, in der die hierin beschriebenen Systeme und/oder Verfahren implementiert werden können.
    • 5 ist ein Diagramm von Beispielkomponenten einer oder mehrerer Vorrichtungen aus 4.
    • 6 ist ein Flussdiagramm eines Beispielprozesses für das Strichcode-Scannen auf der Grundlage von Gestenerkennung und -analyse.
  • Fachleute werden erkennen, dass Elemente in den Figuren der Einfachheit und Klarheit halber dargestellt sind und nicht notwendigerweise maßstabsgetreu gezeichnet wurden. Zum Beispiel können die Abmessungen einiger der Elemente in den Figuren relativ zu anderen Elementen übertrieben sein, um das Verständnis von Ausführungsformen der vorliegenden Erfindung zu verbessern.
  • Die Vorrichtungs- und Verfahrenskomponenten wurden, wo es angemessen ist, durch herkömmliche Symbole in den Zeichnungen dargestellt, die nur jene spezifischen Details zeigen, die zum Verständnis der Ausführungsformen der vorliegenden Erfindung relevant sind, um somit die Offenbarung nicht mit Einzelheiten zu verdecken, die für die Fachleute auf dem Gebiet, die auf die vorliegende Beschreibung zurückgreifen, ohne weiteres ersichtlich sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende detaillierte Beschreibung von Ausführungsbeispielen bezieht sich auf die beigefügten Zeichnungen. Die gleichen Referenznummern in verschiedenen Zeichnungen können gleiche oder ähnliche Elemente bezeichnen.
  • Strichcodes werden üblicherweise verwendet, um Informationen über bestimmte Objekte (z. B. Produkte, Inventar, Proben, Zubehör, Verbrauchsmaterial und/oder Ähnliches) bereitzustellen und/oder zu erhalten. Beispielsweise kann ein Strichcode-Scanner verwendet werden, um einen Strichcode zu dekodieren, der an einem Objekt angebracht ist, damit ein System (z. B. in Verbindung mit einem Unternehmen oder einer Organisation) die dem Objekt zugeordneten Informationen abrufen kann. Einige Strichcode-Scanner können manuell gesteuerte Vorrichtungen sein, die so konfiguriert sind, dass sie von einem Benutzer gehalten und/oder an ihm befestigt werden und vom Benutzer ausgelöst werden (z. B. mit einer Taste oder einer anderen Eingabevorrichtung), um einen Strichcode zu scannen. Andere Strichcode-Scanner können automatisierte Vorrichtungen sein, die die Umgebung kontinuierlich überwachen und erkannte Strichcodes automatisch scannen, wenn sich die Strichcodes im Sichtfeld des Strichcode-Scanners befinden. Solche automatischen Strichcode-Scanner können zwar eine Freihand-Benutzung durch den Benutzer erleichtern, doch wenn sich mehrere Strichcodes gleichzeitig im Sichtfeld befinden, mögen die automatischen Strichcode-Scanner möglicherweise nicht unterscheiden, welche Strichcodes zu bestimmten Zeiten oder für bestimmte Objekte gescannt werden sollen. Mit anderen Worten, da die automatischen Strichcode-Scanner so konfiguriert sind, dass sie jeden oder alle erkannten Strichcodes scannen (z. B. sobald sie erkannt werden), können bestimmte gewünschte Informationen, die den Objekten zugeordnet sind, nicht erkannt werden. Wenn also ein bestimmter Strichcode aus einer Gruppe von Strichcodes in einer Umgebung gescannt werden soll, muss ein Benutzer den Strichcode manuell scannen, was typischerweise den Einsatz einer oder mehrerer Hände und/oder Arme des Benutzers erfordert, um den Scanvorgang durchzuführen (z. B. um eine Position und/oder Ausrichtung des Strichcode-Scanners und/oder des Objekts zu manipulieren). Bisherige Techniken zum manuellen Scannen des Strichcodes behindern die Fähigkeit des Benutzers, weitere Aktivitäten und/oder Operationen durchzuführen, die mit dem Scannen der Strichcodes und/oder der Objekte verbunden sind (z. B. das Objekt zu kategorisieren, das Objekt zu benutzen, das Objekt zu bewegen, eine andere Maschine oder Vorrichtung zu steuern, die mit dem Objekt verbunden ist, und/oder ähnliches).
  • Einige hier beschriebene Implementierungen stellen ein System bereit, das das Scannen und/oder Dekodieren eines Strichcodes mit Hilfe von Gestenerkennung ermöglicht. Zum Beispiel kann der Benutzer, wie hier beschrieben, eine oder mehrere identifizierbare und/oder bestimmte Gesten ausführen, um anzuzeigen, dass ein Strichcode gescannt werden soll, um den spezifischen Strichcode anzuzeigen, der gescannt werden soll, und/oder um den Strichcode-Scan auszulösen. In einigen Implementierungen kann das System ein Bildverarbeitungsmodell enthalten und/oder verwenden, um die Gesten in einem Bildstrom zu erkennen und/oder zu identifizieren. Der Bildstrom kann Bilder enthalten, die von einer Kamera erfasst wurden und den Benutzer in einer Umgebung darstellen, zusammen mit Strichcodes, die mit einer oder mehreren Gesten gescannt werden sollen. Die Kamera kann einer tragbaren Benutzervorrichtung (z. B. einer intelligenten Brille oder Augmented-Reality-Brille, einer intelligenten Uhr oder einer anderen Art von tragbarer Vorrichtung) zugeordnet sein. Dementsprechend ermöglicht das hier beschriebene System einem Benutzer, einzelne Strichcodes in einer Umgebung zu scannen, ohne dass der Benutzer einen manuellen Strichcode-Scanner halten muss, wodurch die Fähigkeit des Benutzers verbessert wird, eine oder mehrere andere Aktivitäten (z. B. die die Hände des Benutzers einbeziehen) auszuführen, da der Benutzer den manuellen Strichcode-Scanner zwischen den Scans nicht aufnehmen und/oder ablegen oder die anderen Aktivitäten ausführen muss, während er den manuellen Strichcode-Scanner hält. Darüber hinaus reduziert das hier beschriebene System den Verbrauch von Computerressourcen (z. B. Verarbeitungsressourcen, Speicherressourcen und/oder Kommunikationsressourcen), die andernfalls durch das unnötige Scannen von Strichcodes durch automatisierte Strichcode-Scanner (z. B. weil die Strichcodes nicht gescannt werden sollten oder nicht hätten gescannt werden dürfen) und die Verarbeitung und/oder Übermittlung von Daten im Zusammenhang mit den unnötig gescannten Strichcodes verschwendet werden könnten.
  • 1 ist ein Diagramm einer Beispielimplementierung 100, die mit dem Scannen von Strichcodes auf der Grundlage von Gestenerkennung verbunden ist. Wie in 1 gezeigt, umfasst die Beispielimplementierung 100 ein Strichcode-Datenverwaltungssystem und eine Benutzervorrichtung, die eine Kamera enthält. In der Beispielimplementierung 100 ist die Benutzervorrichtung als intelligente Brille dargestellt, die von einem Benutzer in Verbindung mit der Ausführung einer oder mehrerer Gesten zum Scannen eines Strichcodes, wie hier beschrieben, getragen wird. Andere Beispieltypen von Benutzervorrichtungen können in ähnlicher Weise verwendet werden, wie hier beschrieben, um die Gesten zu erkennen und/oder zu analysieren (z. B. ein Smartphone, eine Körperkamera/ein Scanner, eine intelligente Uhr und/oder Ähnliches).
  • Das Strichcode-Datenverwaltungssystem im Beispiel von 1 kann ein Backend-System sein, das der Verwaltung von Informationen im Zusammenhang mit Objekten und/oder dekodierten Strichcodes zugeordnet ist. So kann das Strichcode-Datenverwaltungssystem beispielsweise eine Plattform umfassen, die den Objekten zugeordnete Bestände (z. B. zur Lokalisierung, Sortierung, Klassifizierung und/oder Ähnlichem), den Objekten zugeordnete Transaktionen (z. B. für Kauf, Verkauf, Miete und/oder andere Arten der Transaktionsverarbeitung), den Objekten zugeordnete Transportvorgänge (z. B. zur Einleitung von Sendungen, zur Weiterleitung von Sendungen und/oder Ähnlichem), die Kennzeichnung der Objekte (z. B. zur Erstellung von den Objekten zugeordneten Etiketten) und/oder Ähnliches verwaltet. Obwohl sich die folgende Beschreibung der Beispielimplementierung 100 auf die Benutzervorrichtung beziehen kann, die eine oder mehrere Aktionen oder Operationen durchführt, die dem Scannen eines Strichcodes auf der Grundlage von Gestenerkennung und/oder Gestenanalyse zugeordnet sind, kann das Backend-Verwaltungssystem in ähnlicher Weise konfiguriert sein, um eine oder mehrere der Aktionen oder Operationen durchzuführen.
  • Wie in 1 und unter der Referenznummer 110 gezeigt, erhält und/oder verarbeitet die Benutzervorrichtung einen Bildstrom von einer Kamera. Der Bildstrom kann ein Echtzeit-Bildstrom sein, der eine Reihe von Bildern enthält, die eine Umgebung des Benutzers (z. B. aus der Sicht des Benutzers) darstellen, während der Benutzer eine oder mehrere den Objekten zugeordnete Aktivitäten durchführt. Der Bildstrom kann beispielsweise von der Kamera der Benutzervorrichtung in Verbindung mit der Durchführung einer oder mehrerer den Objekten zugeordneter Tätigkeiten durch den Benutzer erfasst werden. Darüber hinaus verarbeitet die Benutzervorrichtung den Bildstrom, wie hier beschrieben, um die Umgebung des Benutzers und/oder der Objekte zu überwachen. Insbesondere kann die Benutzervorrichtung, wie hierin beschrieben, den Bildstrom (z. B. in Echtzeit) verarbeiten, um eine Geste der Benutzervorrichtung und/oder einen Strichcode zu identifizieren, der basierend auf der Geste dekodiert werden kann. In der Beispielimplementierung 100 umfasst der Bildstrom Frame A und Frame B, die einzelne Bilder des Bildstroms sein können, die zu unterschiedlichen Zeiten erfasst werden, während der Benutzer eine oder mehrere Gesten ausführt, die dem Scannen eines oder mehrerer mit den Objekten verbundener Strichcodes zugeordnet sind.
  • Wie hierin beschrieben, kann die Benutzervorrichtung (und/oder das Strichcode-Datenverwaltungssystem) ein oder mehrere Bildverarbeitungsmodelle verwenden, um den Bildstrom zu verarbeiten. In einigen Implementierungen kann die Benutzervorrichtung ein maschinelles Lernmodell verwenden (z. B. lokal auf der Benutzervorrichtung und/oder auf dem Strichcode-Datenverwaltungssystem installiert), um eine oder mehrere Gesten des Benutzers und/oder einen oder mehrere Strichcodes, die in den von der Kamera erfassten Bildern dargestellt sind, zu erkennen und/oder zu analysieren. Zum Beispiel kann das Bildverarbeitungsmodell eine Computerbildverarbeitungstechnik enthalten und/oder verwenden, um bei der Klassifizierung von Bilddaten zu helfen, ob sie eine oder mehrere Gesten und/oder einen oder mehrere hierin beschriebene Strichcodes enthalten oder nicht. In einigen Fällen kann das Bildverarbeitungsmodell ein neuronales Netzwerk (z. B. ein neuronales Faltungsnetzwerk, ein rekurrentes neuronales Netzwerk und/oder ähnliches) enthalten, um die Computerbildverarbeitungstechnik zu implementierenDie Das Computerbildverarbeitungstechnik kann die Verwendung eines Bilderkennungsverfahrens (z. B. eines Inception-Frameworks, eines ResNet-Frameworks, eines Visual Geometry Group (VGG)-Frameworks und/oder ähnliches) zur Erkennung eines oder mehrerer Strichcodes, eines Objekterkennungsverfahrens (z. B., ein Single Shot (SSD) -Detector-Framework, ein You Only Look Once (YOLO)-Framework und/oder Ähnliches), um eine Hand (oder einen anderen Körperteil) des Benutzers zu erkennen, der eine Geste ausführt, ein Objekt-in-Bewegung-Verfahren (z.B. ein Optical Flow Framework und/oder Ähnliches), um die Geste zu analysieren, und/oder Ähnliches.
  • Ein Bildverarbeitungsmodell, wie hier beschrieben, kann trainiert werden (z. B. durch die Strichcode-Datenverwaltungsplattform und/oder durch eine oder mehrere andere Plattformen, die der Strichcode-Verwaltungsplattform zugeordnet sind), indem historische Daten verwendet werden, die der Erkennung und Analyse einer oder mehrerer Gesten und/oder der Erkennung und/oder Analyse eines oder mehrerer Strichcodes auf der Grundlage historischer Werte für einen oder mehrere Bildparameter zugeordnet sind. Solche Bildparameter können Gestenparameter (z. B. in Verbindung mit Positionen oder Positionsänderungen der Hände oder anderer Körperteile eines Benutzers), Strichcodeparameter (z. B. in Verbindung mit Erscheinungsbildern wie Formen, Größen, Typen und/oder dergleichen verschiedener Strichcodes) und/oder dergleichen umfassen. Unter Verwendung der historischen Daten und des Bildstroms als Eingaben für das Bildverarbeitungsmodell kann die Benutzervorrichtung eine Geste und/oder einen Strichcode erkennen, um das Scannen des Strichcodes auf der Grundlage der Geste zu ermöglichen, wie hier beschrieben. In einigen Implementierungen kann die Benutzervorrichtung (und/oder das Strichcode-Datenverwaltungssystem) das Bildverarbeitungsmodell neu trainieren, indem es die historischen Daten aktualisiert, um validierte oder ungültige Ergebnisse einzuschließen, die damit verbunden sind, ob das Bildverarbeitungsmodell einen Strichcode, wie hierin beschrieben, genau oder ungenau erfasst, analysiert und/oder dekodiert hat (z. B. basierend auf einer Benutzereingabe und/oder einer Rückmeldung des Benutzers).
  • Auf diese Weise kann der Bildstrom überwacht werden, um eine oder mehrere Gesten (z. B. aus einem bestimmten Satz von Gesten) des Benutzers zu erkennen und/oder zu analysieren und um einen oder mehrere der Strichcodes auf der Grundlage der einen oder mehreren Gesten zu erkennen und/oder zu dekodieren.
  • Wie in 1 mit der Referenznummer 120 dargestellt, erkennt die Benutzervorrichtung eine Anzeigegeste im Bildstrom. Die Anzeigegeste kann beispielsweise damit verbunden sein, dass der Benutzer (z. B. durch Zeigen auf) einen Strichcode in der Umgebung angibt, der gescannt werden soll (z. B. dargestellt als eine Hand, die auf einen bestimmten Strichcode zeigt, der gescannt werden soll). In 1, wie in Frame A des Bildstroms gezeigt, kann der Benutzer eine Anzeigegeste ausführen, um einen bestimmten Strichcode zu identifizieren, der gescannt werden soll. Die Anzeigegeste kann ausgeführt werden, indem die Hand in eine Anzeigekonfiguration gebracht wird. In der Beispielimplementierung 100 bringt der Benutzer die Hand in die Anzeigekonfiguration, indem er einen Zeigefinger und/oder Daumen der Benutzerhand ausstreckt und die übrigen Finger der Benutzerhand schließt. Es können jedoch auch andere Handkonfigurationen verwendet werden, um einen Strichcode anzuzeigen oder darauf hinzuweisen.
  • In einigen Implementierungen kann die Benutzervorrichtung (z. B. unter Verwendung des Bildverarbeitungsmodells) so konfiguriert sein, dass es den Bildstrom auf eine oder mehrere Gesten überwacht, die dem Scannen des Strichcodes zugeordnet sind. Die Geste kann auf der Grundlage der Erkennung erkannt werden, dass ein Objekt (z. B. die Hand des Benutzers oder ein anderes Körperteil) in einem Gestenbereich des Bildstroms abgebildet ist. Der Gestenbereich kann sich in einem Vordergrund des Bildstroms befinden, der durch die Durchführung einer dreidimensionalen (3D) Verarbeitungstechnik des Bildverarbeitungsmodells erkannt und/oder identifiziert wird. Eine solche 3D-Verarbeitungstechnik kann eine oder mehrere Tiefenwahrnehmungstechniken beinhalten, die auf Pixelwerten von identifizierten Objekten basieren, die in der Umgebung abgebildet sind (z. B. eine monokulare Tiefenwahrnehmungstechnik, die auf der relativen Objektgröße, der Interpositionsanalyse, der Analyse der linearen Perspektive, der Analyse der Luftperspektive, der Beleuchtungsanalyse, der Bewegungsanalyse und/oder dergleichen basiert). Die Gestenregion und/oder der Vordergrund des Bildstroms können 3D-Zonen des Bildstroms sein, die Zonen einer Umgebung entsprechen, die sich in unterschiedlichen Entfernungen zum Benutzer befinden. Auf diese Weise kann das Bildverarbeitungsmodell den Bildstrom überwachen, um eine vom Benutzer in einer 3D-Umgebung ausgeführte Geste (z. B. die Anzeigegeste) zu erkennen.
  • Wie hierin beschrieben, kann der Benutzer, wenn er „eine Geste ausführt“, eine Hand in einer bestimmten Konfiguration platzieren, die Hand an einem bestimmten Ort platzieren (z. B. relativ zu einem Ort eines Strichcodes und/oder dem Sichtfeld der Kamera) und/oder die Hand und/oder die Finger der Hand in einer bestimmten Weise bewegen. Dementsprechend können ein oder mehrere Bilder, wie hier beschrieben, in Verbindung mit der Erkennung, dass ein Benutzer eine Geste ausgeführt hat, analysiert werden. Wie in Frame Ader Beispielimplementierung 100 gezeigt, ist der spezifische Strichcode, der der vom Benutzer ausgeführten Zeigegeste zugeordnet ist, der Strichcode 1, der dem Objekt 1 zugeordnet ist (z.B. basierend darauf, dass er am Objekt 1 angebracht ist). Frame A kann ein Bild sein, das einem Abschnitt des Bildstroms zugeordnet ist, der Bilder enthält, die die Bewegung der Hand des Benutzers innerhalb des Sichtfelds der Kamera und/oder innerhalb der Sichtlinie des Strichcodes zeigen. Unter Verwendung des Bildverarbeitungsmodells kann die Benutzervorrichtung die Anzeigegeste basierend auf dem Erkennen, dass Frame A eine Hand in einer Konfiguration zeigt, die einer Anzeigegeste zugeordnet ist, und/oder basierend auf dem Erkennen, dass der Abschnitt den Benutzer zeigt, der die Hand bewegt und die Hand in der Anzeigekonfiguration konfiguriert, erkennen.
  • Auf diese Weise kann die Benutzervorrichtung die Anzeigegeste erkennen, um es der Benutzervorrichtung zu ermöglichen, einen Strichcode zu identifizieren und/oder eine Auslösegeste zu überwachen, die dem Scannen und/oder Dekodieren des Strichcodes zugeordnet ist.
  • Wie in 1 und unter der Referenznummer 130 gezeigt, identifiziert die Benutzervorrichtung einen Strichcode innerhalb eines Bereichs, der der Anzeigegeste zugeordnet ist (z. B. durch sie angezeigt wird). Beispielsweise kann die Benutzervorrichtung unter Verwendung des Bildverarbeitungsmodells den Strichcodebereich auf der Grundlage einer Position der Benutzerhand bei der Ausführung der Geste bestimmen. Insbesondere kann die Benutzervorrichtung, wie in Frame A und/oder Frame B von 1 gezeigt, feststellen, dass der Strichcodebereich einem Bereich des Bildstroms entspricht, der ein Ende des Zeigefingers des Benutzers umfasst, wenn dieser in der Anzeigekonfiguration platziert ist. In einem solchen Fall kann das Bildverarbeitungsmodell eine Pixelposition des Zeigefingers des Benutzers identifizieren (z. B. eine Position eines Pixels, das einen Teil der Spitze des Zeigefingers des Benutzers darstellt) und den Strichcodebereich des Bildstroms als einen Pixelbereich identifizieren, der die Pixelposition umfasst. Der Pixelbereich kann eine bestimmte Größe und/oder Form haben, die vorkonfiguriert ist (z. B. als Standardeinstellung) und/oder die auf der Grundlage eines ermittelten oder geschätzten Abstands zwischen dem Strichcode und der Hand des Benutzers variabel ist (z. B. wie unter Verwendung einer 3D-Verarbeitungstechnik ermittelt, die der Analyse der Hand des Benutzers und des Strichcodebereichs zugeordnet ist, wie hier beschrieben).
  • In einigen Implementierungen kann die Sichtlinie der Kamera in ähnlicher Weise der Sichtlinie des Benutzers entsprechen, da die Kamera an einer intelligenten Brille oder einer anderen Art von kopfgetragenem Scanner angebracht ist, der vom Benutzer getragen wird. In einem solchen Beispiel kann der Benutzer die Anzeigegeste ausführen, um anzuzeigen, dass ein Strichcode gescannt werden soll, ohne den Strichcode physisch zu berühren. Dementsprechend kann der Benutzer eine Geste ausführen, um einen Strichcode zu scannen, der sich außerhalb der Armreichweite des Benutzers befindet. In einem solchen Fall kann der Strichcodebereich als in einem Hintergrundbereich des Bildes liegend bestimmt werden (z. B. ein Teil des Bildes, der eine Hintergrundumgebung des Benutzers darstellt (z. B. eine Umgebung mit einer größeren Ausdehnung als eine Armlänge des Benutzers)). Der Hintergrundbereich kann auf der Grundlage eines oder mehrerer hierin beschriebener 3D-Verarbeitungsverfahren bestimmt und/oder identifiziert werden.
  • Wie hier beschrieben, kann das Bildverarbeitungsmodell eine oder mehrere Bilderkennungstechniken verwenden, um einen Strichcode innerhalb des Strichcodebereichs zu identifizieren, der der Anzeigegeste zugeordnet ist. Beispielsweise kann das Bildverarbeitungsmodell darauf trainiert sein, einen oder mehrere Typen von zweidimensionalen (2D) Strichcodes (z. B. parallele Strichcodes, Quick-Response-Codes (QR-Codes) und/oder Ähnliches) in einem Bild zu identifizieren und/oder zu erkennen, das eine 3D-Umgebung darstellt. In einigen Implementierungen kann das Bildverarbeitungsmodell das Bild verarbeiten, um die Strichcoderegion von Frame A zu beschneiden, zu extrahieren, zu verbessern und/oder ähnliches, um einen oder mehrere Teile des Strichcodes zu identifizieren (z. B. einen Umfang des Strichcodes). In einigen Implementierungen kann die Benutzervorrichtung auf der Grundlage der Identifizierung des Strichcodes den Strichcode anzeigen und/oder überprüfen, dass der Strichcode vom Benutzer für einen Scan ausgewählt wird, indem eine dem Strichcode zugeordnete Überlagerung auf einer Benutzerschnittstelle (z. B. einem Display) der Benutzervorrichtung (z. B. eine Augmented-Reality-Anzeige, die einen Strichcode-Identifikator (z. B. eine transparente Farbe oder Hervorhebung) über dem Strichcode über Linsen der intelligenten Brille anzeigt) vergrößert wird. In einem solchen Fall kann die Benutzervorrichtung eine Augmented-Reality-Brille enthalten, die so konfiguriert ist, dass sie Informationen im Zusammenhang mit erkannten Strichcodes und/oder Objekten wiedergibt. Beispielsweise kann die Benutzervorrichtung einen Umriss der erkannten Strichcodes innerhalb des Sichtfelds der Kamera darstellen (z. B. unter Verwendung einer Zeichen- und/oder Objekterkennungstechnik der Bildverarbeitung). Daher kann die Benutzervorrichtung so konfiguriert sein, dass der Benutzer überprüfen und/oder bestätigen kann, dass ein bestimmter Strichcode gescannt und/oder dekodiert werden soll.
  • Auf diese Weise kann die Benutzervorrichtung einen Strichcode in einem Strichcodebereich des Bildstroms identifizieren, damit die Benutzervorrichtung auf eine Auslösegeste achten und/oder einen Scan des Strichcodes durchführen kann, damit der Strichcode dekodiert werden kann.
  • Wie in 1 und unter der Referenznummer 140 dargestellt, erkennt die Benutzervorrichtung eine Auslösegeste im Bildstrom. Die Auslösegeste kann zum Beispiel damit verbunden sein, dass der Benutzer einen Scan des Strichcodes auslöst, damit der Strichcode dekodiert werden kann. Ähnlich wie bei der Erfassung der Anzeigegeste kann die Benutzervorrichtung das Bildverarbeitungsmodell verwenden, um die Auslösegeste auf der Grundlage einer Analyse von Frame B des Bildstroms zu erfassen. Die vom Benutzer in der Beispielimplementierung 100 ausgeführte Auslösegeste kann dem Scannen des Strichcodes 1 zugeordnet sein, der dem Objekt 1 zugeordnet ist (z. B. weil er am Objekt 1 angebracht ist). Frame B kann ein Bild sein, das einem Abschnitt des Bildstroms zugeordnet ist, der Bilder enthält, die den Benutzer innerhalb des Sichtfelds der Kamera und/oder innerhalb der Sichtlinie des Strichcodes zeigen, wie er die Hand relativ zu der Anzeigegeste einstellt. Unter Verwendung des Bildverarbeitungsmodells kann die Benutzervorrichtung die Auslösegeste auf der Grundlage der Identifizierung, dass Frame B eine Hand in einer Konfiguration darstellt, die einer Auslösegeste zugeordnet ist, und/oder auf der Grundlage der Identifizierung, dass der Abschnitt den Benutzer darstellt, der die Hand in die Auslösekonfiguration überführt, erkennen.
  • In 1, wie in Frame B des Bildstroms gezeigt, kann der Benutzer eine Auslösegeste ausführen, um das Scannen des Strichcodes zu veranlassen. Die Auslösegeste kann ausgeführt werden, indem die Hand in eine Auslösekonfiguration gebracht wird. In Beispiel 100 bringt der Benutzer die Hand in die Auslösekonfiguration, indem er den Zeigefinger aus der Anzeigekonfiguration schließt (z. B. um das Ziehen eines Abzugs zu simulieren). Dementsprechend kann die Ausführung der Auslösekonfiguration beinhalten und/oder darauf basieren, dass der Benutzer die Hand von der Anzeigekonfiguration (z. B. mit dem Zeigefinger des Benutzers in einer ausgestreckten Position) in die Auslösekonfiguration (z. B. mit dem Zeigefinger des Benutzers in einer geschlossenen Position) überführt. Es können jedoch auch andere Handkonfigurationen verwendet werden, um den Strichcode zu scannen.
  • Auf diese Weise kann die Benutzervorrichtung die Auslösegeste erkennen und dementsprechend bestimmen, dass die Benutzervorrichtung den Strichcode scannen und/oder dekodieren soll. In einigen Implementierungen kann die Benutzervorrichtung den Strichcode innerhalb des Strichcodebereichs, wie oben beschrieben, auf der Grundlage der Erfassung der Auslösegeste identifizieren.
  • Wie in 1 und unter der Referenznummer 150 gezeigt, scannt und/oder dekodiert die Benutzervorrichtung den Strichcode im Strichcodebereich. In einigen Implementierungen kann die Benutzervorrichtung beim Scannen eines Strichcodes ein Strichcodebild des Strichcodes aus dem Bildstrom erhalten, verarbeiten und/oder speichern, damit der Strichcode über das Strichcodebild dekodiert werden kann. Beispielsweise kann unter Verwendung eines Strichcode-Scanmodells (oder einer Anwendung, die mit einer oder mehreren Bildverarbeitungstechniken zum Scannen eines Strichcodes verbunden ist) das Strichcode-Bild aus dem Bildstrom „gescannt“ werden, indem der Strichcode aus dem Bildstrom kopiert und/oder extrahiert wird (z. B. unter Verwendung von Pixelwerten des Frames B, die zur Darstellung des Strichcodes verwendet werden) und/oder der Strichcode formatiert wird (z. B. durch Verbessern, Filtern, Rauschunterdrückung, Konfigurieren und/oder dergleichen), damit der Strichcode dekodiert werden kann. In einigen Implementierungen kann das Strichcode-Scanmodell trainiert werden, um ebene Konfigurationen des Strichcodes in einer 3D-Umgebung zu erkennen (z. B. basierend auf historischen Daten, die Bildern von Strichcodes zugeordnet sind, die in einer Umgebung aus verschiedenen Winkeln dargestellt sind). In solchen Fällen kann das Strichcode-Scanmodell das extrahierte Bild des Strichcodes in ein Format rekonfigurieren und/oder verändern, das es der Benutzervorrichtung ermöglicht, den Strichcode zu dekodieren.
  • Gemäß einigen Implementierungen kann die Benutzervorrichtung einen Laserscanner veranlassen, den Strichcode zu scannen (z. B. einen Laserscanner der Benutzervorrichtung, wie einen Lasersender und/oder Lichtsensor auf der intelligenten Brille). In einem solchen Fall kann die Benutzervorrichtung den Laserscanner veranlassen, den Strichcode zu scannen, indem sie Licht in Richtung des Strichcodes aussendet, und den Strichcode auf der Grundlage von Scan-Informationen dekodiert, die einem Lichtsensor zugeordnet sind, der das vom Strichcode reflektierte Licht misst.
  • Die Benutzervorrichtung kann den Strichcode mit Hilfe geeigneter Dekodierungstechniken dekodieren, die auf der Art des Strichcodes basieren können (z. B. ein Strichcode mit parallelen Linien, ein QR-Code und/oder dergleichen). Beim Dekodieren des Strichcodes können Strichcodedaten erzeugt werden, die verwendet werden können, um Informationen zu erhalten, zu identifizieren und/oder zu bestimmen, die mit dem Objekt und/oder mit einer Konfiguration der Benutzervorrichtung und der Tatsache, dass die Benutzervorrichtung den Scanvorgang durchgeführt hat, in Verbindung stehen. Beispielsweise können die Strichcodedaten Identifizierungsinformationen enthalten und/oder darstellen, die einem Status des Objekts in Bezug auf eine Umgebung der Benutzervorrichtung zugeordnet sind (z. B. Informationen, die anzeigen, ob das Objekt verfügbar ist, empfangen wurde und/oder transportiert werden soll), Standortinformationen (z. B. Gebäudestandortinformationen, geografische Koordinaten und/oder Ähnliches), die der Benutzervorrichtung in Bezug auf die Umgebung zugeordnet sind, Transaktionsinformationen (z. B, Zeitinformationen, dem Benutzer zugeordnete Benutzerinformationen, dem Objekt zugeordnete Wertinformationen und/oder Ähnliches) und/oder Benutzerinformationen (z. B. eine Kennung des Benutzers, ein Standort des Benutzers, eine Rolle des Benutzers und/oder Ähnliches), die dem Benutzer zugeordnet sind (z. B. basierend darauf, dass der Benutzer bei der Benutzervorrichtung angemeldet oder dieser zugeordnet ist).
  • Wie hier beschrieben, kann der Strichcodebereich verwendet werden, um zu erkennen, dass ein bestimmter (oder einzelner) Strichcode in der Umgebung gescannt werden soll. Obwohl sich beispielsweise der Strichcode 2, der dem Objekt 2 zugeordnet ist, innerhalb des Sichtfelds der Kamera und somit innerhalb von Frame A und Frame B befindet, kann die Benutzervorrichtung aufgrund der Auslösegeste nur den Strichcode 1 scannen, da sich der Strichcode 2 außerhalb des Strichcodebereichs befindet. Gemäß einigen Implementierungen kann der Benutzer eine oder mehrere Gesten verwenden, um anzuzeigen, dass mehrere Strichcodes gescannt und/oder dekodiert werden sollen. Beispielsweise kann der Benutzer eine Strichcode-Begrenzungsgeste ausführen, die einer Begrenzung des Strichcodebereichs zugeordnet ist, und dementsprechend eine Mehrfach-Strichcode-Auslösegeste ausführen, um anzuzeigen, dass ein oder alle Strichcodes innerhalb der Begrenzung gescannt werden sollen (z. B. gleichzeitig oder nacheinander).
  • Auf diese Weise kann die Benutzervorrichtung einen Scan durchführen und/oder den Strichcode dekodieren, damit die Benutzervorrichtung und/oder das Strichcode-Datenverwaltungssystem die dem Strichcode und/oder dem Objekt zugeordneten Informationen verwalten kann.
  • Wie in 1 und unter der Referenznummer 160 gezeigt, erhält und/oder liefert die Benutzervorrichtung Informationen, die dem dekodierten Strichcode und/oder dem dem Strichcode zugeordneten Objekt zugeordnet sind. Beispielsweise kann die Benutzervorrichtung die Statusinformationen, die Standortinformationen, die Transaktionsinformationen und/oder die Benutzerinformationen in Verbindung mit und/oder auf der Grundlage der Dekodierung des Strichcodes bereitstellen. Zusätzlich oder alternativ kann die Benutzervorrichtung dem Strichcode-Datenverwaltungssystem Strichcodedaten zur Verfügung stellen, damit das Strichcode-Datenverwaltungssystem die Statusinformationen, die Standortinformationen, die Transaktionsinformationen und/oder die Benutzerinformationen bestimmen und/oder erhalten kann.
  • Auf diese Weise kann die Benutzervorrichtung eine oder mehrere Aktionen im Zusammenhang mit dem Objekt und/oder dem Strichcode durchführen, um die Verwaltung der dem Strichcode und/oder dem Objekt zugeordneten Informationen zu ermöglichen.
  • Wie bereits erwähnt, ist 1 als Beispiel zu verstehen. Andere Beispiele können von der Beschreibung in 1 abweichen. Die Anzahl und Anordnung der in 1 gezeigten Vorrichtungen ist ein Beispiel. In der Praxis kann es zusätzliche Vorrichtungen, weniger Vorrichtungen, andere Vorrichtungen oder eine andere Anordnung als die in 1 gezeigten geben. Darüber hinaus können zwei oder mehr der in 1 gezeigten Vorrichtungen in einer einzigen Vorrichtung implementiert sein, oder eine einzelne in 1 gezeigte Vorrichtung kann als mehrere verteilte Vorrichtungen implementiert sein. Zusätzlich oder alternativ kann ein in 1 dargestellter Satz von Vorrichtungen (z. B. eine oder mehrere Vorrichtungen) eine oder mehrere Funktionen ausführen, die von einem anderen in 1 dargestellten Satz von Vorrichtungen ausgeführt werden.
  • 2 ist ein Flussdiagramm eines Beispielprozesses 200, der von einem Bildverarbeitungsmodell, wie dem in Verbindung mit der Beispielimplementierung 100 beschriebenen Bildverarbeitungsmodell, durchgeführt werden kann. Gemäß einigen Implementierungen kann das Bildverarbeitungsmodell durch die Benutzervorrichtung und/oder das Strichcode-Datenverwaltungssystem von 1 konfiguriert, trainiert und/oder verwendet werden. Wie in 2 gezeigt, kann das Bildverarbeitungsmodell einen Bildstrom von einer Benutzervorrichtung (z. B. dargestellt als intelligente Brille und/oder eine Körperkamera) empfangen, die so konfiguriert ist, dass sie einen oder mehrere erkannte Strichcodes basierend auf einer oder mehreren Gesten eines Benutzers scannt.
  • Wie in 2 gezeigt, kann das Bildverarbeitungsmodell in Block 210 feststellen, ob eine Scan-Geste erkannt wurde. Zum Beispiel kann das Bildverarbeitungsmodell Bilder eines Bildstroms verarbeiten, um die Anzeigegeste, die Auslösegeste und/oder eine oder mehrere Kombinationen von Gesten zu identifizieren. Wenn das Bildverarbeitungsmodell keine Geste erkennt, kann das Bildverarbeitungsmodell mit der Überwachung des Bildstroms fortfahren. Wenn das Bildverarbeitungsmodell in Block 210 eine Scan-Geste erkennt, bestimmt das Bildverarbeitungsmodell in Block 220 einen Bereich der Geste (z. B. den Strichcodebereich der Beispielimplementierung von 1). In Block 230 analysiert das Bildverarbeitungsmodell (z. B. unter Verwendung eines Bilderkennungsmodells, eines Objekterkennungsmodells, eines Strichcode-Scanmodells und/oder dergleichen) den Bereich der Geste.
  • In Block 240 von 2 kann das Bildverarbeitungsmodell bestimmen, ob in dem Bereich ein Strichcode erkannt wird. In einigen Implementierungen kann das Bildverarbeitungsmodell ein Punktesystem verwenden, das so konfiguriert ist, dass es eine Wahrscheinlichkeit bestimmt, dass der Bereich einen Strichcode enthält, der gescannt werden kann. Das Bewertungssystem kann die Wahrscheinlichkeit auf der Grundlage bestimmen, ob das Bild bestimmte Formen, Linien, Text und/oder Ähnliches enthält, die auf das Vorhandensein eines Strichcodes hinweisen. Basierend auf der Bestimmung eines Wertes durch das Bewertungssystem, der anzeigt, dass der Bereich wahrscheinlich nicht den Strichcode enthält, kann das Bildverarbeitungsmodell in Block 250 bestimmen, ob der Bereich (z. B. in nachfolgenden Bildern des Bildstroms) erneut analysiert werden soll, um den Strichcode zu identifizieren. Beispielsweise kann das Bildverarbeitungsmodell bestimmen, ob die Identifizierung des Strichcodes auf der Grundlage der erkannten Geste erneut versucht werden soll, je nachdem, ob das Bildverarbeitungsmodell ein oder mehrere andere Frames des Bildstroms analysiert hat, um den Strichcode zu identifizieren, und/oder ob eine Menge von Frames des Bildstroms, die der Geste zugeordnet sind, analysiert wurde, um den Strichcode zu erkennen. Wenn das Bildverarbeitungsmodell in einem solchen Fall in Block 250 nicht eine Schwellenmenge von Frames des Bildstroms analysiert hat, um einen Strichcode auf der Grundlage der erkannten Geste zu identifizieren, kann das Bildverarbeitungsmodell zu Block 220 zurückkehren, um einen Bereich der Geste in einem anderen Frame des Bildstroms zu bestimmen. Wenn das Bildverarbeitungsmodell die Schwellenmenge an Frames analysiert hat, kann das Bildverarbeitungsmodell zu Block 210 zurückkehren, um eine andere oder andere Geste zu erkennen. In einigen Implementierungen kann das Bildverarbeitungsmodell in einem solchen Fall die Benutzervorrichtung veranlassen, den Benutzer zu warnen, dass ein Strichcode nicht in Verbindung mit der erkannten Scan-Geste erkannt wurde.
  • Wenn das Bildverarbeitungsmodell in Block 240 einen Strichcode erkennt (der gescannt werden kann), kann das Bildverarbeitungsmodell in Block 260 eine oder mehrere Operationen durchführen, um den Strichcode zu scannen und zu dekodieren und/oder dem Strichcode zugeordnete Strichcodedaten bereitzustellen. Zum Beispiel kann das Bildverarbeitungsmodell das Bild verarbeiten, um den Strichcode zu extrahieren, den Strichcode zu formatieren oder den Strichcode neu zu konfigurieren und/oder zu verändern, damit der Strichcode dekodiert werden kann.
  • Auf diese Weise kann das Bildverarbeitungsmodell so konfiguriert werden, dass es einen Bildstrom überwacht, um eine oder mehrere Gesten zu erkennen und/oder zu identifizieren, damit ein im Bildstrom dargestellter Strichcode gescannt werden kann.
  • Wie bereits erwähnt, ist 2 als Beispiel zu verstehen. Andere Beispiele können von der Beschreibung in 2 abweichen.
  • 3 ist ein Diagramm, das ein Beispiel 300 für das Training und die Verwendung eines maschinellen Lernmodells in Verbindung mit der Erkennung und/oder Analyse von Gesten eines Benutzers zur Dekodierung und/oder Verarbeitung von Strichcodes, wie hier beschrieben, zeigt. Das hier beschriebene Training und die Verwendung des maschinellen Lernmodells kann mit einem maschinellen Lernsystem durchgeführt werden. Das maschinelle Lernsystem kann eine Computervorrichtung, einen Server, eine Cloud-Computerumgebung und/oder Ähnliches umfassen oder darin enthalten sein, wie beispielsweise die Benutzervorrichtung und/oder das an anderer Stelle hierin detaillierter beschriebene Strichcode-Datenverwaltungssystem.
  • Wie unter der Referenznummer 305 dargestellt, kann ein maschinelles Lernmodell unter Verwendung eines Satzes von Beobachtungen trainiert werden (z. B. in Verbindung mit einem Satz von Bildströmen). Der Satz von Beobachtungen kann aus historischen Daten gewonnen werden, wie z. B. aus Daten, die während eines oder mehrerer hierin beschriebener Prozesse gesammelt wurden. In einigen Implementierungen kann das maschinelle Lernsystem den Satz von Beobachtungen (z. B. als Eingabe) von der Benutzervorrichtung erhalten (z. B. um das maschinelle Lernmodell neu zu trainieren), wie an anderer Stelle hierin beschrieben.
  • Wie unter der Referenznummer 310 dargestellt, umfasst der Satz von Beobachtungen einen Merkmalssatz. Der Merkmalssatz kann eine Reihe von Variablen enthalten, und eine Variable kann als Merkmal bezeichnet werden. Eine bestimmte Beobachtung kann einen Satz von Variablenwerten (oder Merkmalswerten) enthalten, die dem Satz von Variablen entsprechen. In einigen Implementierungen kann das maschinelle Lernsystem Variablen für einen Satz von Beobachtungen und/oder Variablenwerte für eine spezifische Beobachtung auf der Grundlage von Eingaben bestimmen, die von der Benutzervorrichtung (z. B. die vom Benutzer verwendet wurde, um einen Strichcode zu scannen und/oder zu dekodieren, indem eine oder mehrere Gesten, wie hierin beschrieben, verwendet wurden) und/oder einer anderen ähnlichen Benutzervorrichtung (z. B. die vom Benutzer oder anderen Benutzern bedient wurde) empfangen wurden. Beispielsweise kann das maschinelle Lernsystem einen Merkmalsatz (z. B. ein oder mehrere Merkmale und/oder Merkmalswerte) identifizieren, indem es den Merkmalsatz aus strukturierten Daten extrahiert, indem es eine natürliche Sprachverarbeitung durchführt, um den Merkmalsatz aus unstrukturierten Daten zu extrahieren, indem es Eingaben von einem Bediener empfängt und/oder dergleichen.
  • Beispielsweise kann ein Merkmalssatz für einen Satz von Beobachtungen ein erstes Merkmal enthalten, das einem Strichcode zugeordnet ist (z. B. Bilder von Strichcodetypen im Satz von Beobachtungen), ein zweites Merkmal, das einer Anzeigegeste zugeordnet ist (z. B. Bilder von Anzeigegesten des Satzes von Beobachtungen), ein drittes Merkmal, das einer Auslösegeste zugeordnet ist (z. B. Bilder von Auslösegesten des Satzes von Beobachtungen), und so weiter. Wie gezeigt, kann für eine erste Beobachtung das erste Merkmal den Wert Strichcodetyp 1 haben (z. B. Bilddaten, die einem Bild zugeordnet sind, das einen ersten Strichcodetyp darstellt), das zweite Merkmal kann den Wert Gestenbild 1.1 haben (z. B. Bilddaten, die einem Bild zugeordnet sind, das eine erste Anzeigegeste darstellt), das dritte Merkmal kann den Wert Gestenbild 1.2 haben (z. B. Bilddaten, die einem Bild zugeordnet sind, das eine erste Auslösegeste darstellt), und so weiter. Diese Merkmale und Merkmalswerte werden als Beispiele angegeben und können in anderen Beispielen abweichen. Beispielsweise kann der Merkmalssatz eines oder mehrere der folgenden Merkmale enthalten: andere Arten von Gesten, ob das Bild mehrere Strichcodes enthält, den Bildern zugeordnete Parameter (z. B. Auflösung, Größen, Seitenverhältnisse und/oder Ähnliches), der Gestenausführung zugeordneter Zeitablauf, eine Benutzervorrichtung oder eine Kamera, die der Erfassung von Bildern oder Bildströmen der Beobachtungen zugeordnet ist, und/oder Ähnliches.
  • Wie unter der Referenznummer 315 dargestellt, kann der Satz von Beobachtungen einer Zielvariablen zugeordnet sein. Die Zielvariable kann eine Variable mit einem numerischen Wert darstellen, sie kann eine Variable mit einem numerischen Wert darstellen, der in einen Wertebereich fällt oder einige diskrete mögliche Werte hat, sie kann eine Variable darstellen, die aus einer von mehreren Optionen auswählbar ist (z. B. eine von mehreren Klassen, Klassifizierungen, Etiketten und/oder dergleichen), sie kann eine Variable mit einem booleschen Wert darstellen und/oder dergleichen. Eine Zielvariable kann einem Zielvariablenwert zugeordnet sein, und ein Zielvariablenwert kann für eine Beobachtung spezifisch sein. In Beispiel 300 ist die Zielvariable der Dekodier-Scanindikator, der für die erste Beobachtung den Wert „Ja“ und für die zweite Beobachtung den Wert „Nein“ hat, was anzeigt, dass ein Strichcode in der ersten Beobachtung gescannt wurde und dass ein Strichcode in der zweiten Beobachtung nicht gescannt wurde. In einigen Ausführungsformen kann die Zielvariable einer Punktzahl zugeordnet werden, die eine Wahrscheinlichkeit darstellt, dass ein Strichcode der Beobachtungen in Verbindung mit der Anzeigegeste und/oder Auslösegeste, die einen Strichcode identifiziert und/oder einen Strichcode-Scan auslöst, wie hierin beschrieben, gescannt werden sollte. Beispielsweise kann ein Bewertungssystem auf der Grundlage eines Vertrauensniveaus konfiguriert werden, das in Bezug auf die korrekte Erkennung und Analyse der Anzeigegesten und/oder Auslösegesten bestimmt wird, und/oder eines Vertrauensniveaus, das in Bezug auf die korrekte Identifizierung und/oder Dekodierung der Strichcodes in Verbindung mit den Scans bestimmt wird. Dementsprechend kann ein „Ja“ damit verbunden sein, dass das Bewertungssystem eine Punktzahl berechnet, die eine Schwellenwahrscheinlichkeit erfüllt, und ein „Nein“ kann damit verbunden sein, dass das Bewertungssystem eine Punktzahl berechnet, die die Schwellenwahrscheinlichkeit nicht erfüllt.
  • Die Zielvariable kann einen Wert darstellen, für dessen Vorhersage ein maschinelles Lernmodell trainiert wird, und der Merkmalssatz kann die Variablen darstellen, die in ein trainiertes maschinelles Lernmodell eingegeben werden, um einen Wert für die Zielvariable vorherzusagen. Der Satz von Beobachtungen kann Werte der Zielvariablen enthalten, so dass das maschinelle Lernmodell darauf trainiert werden kann, Muster im Merkmalssatz zu erkennen, die zu einem Zielvariablenwert führen. Ein maschinelles Lernmodell, das für die Vorhersage eines Zielvariablenwertes trainiert wird, kann als überwachtes Lernmodell bezeichnet werden.
  • In einigen Implementierungen kann das maschinelle Lernmodell auf einem Satz von Beobachtungen trainiert werden, die keine Zielvariable enthalten. Dies kann als unüberwachtes Lernmodell bezeichnet werden. In diesem Fall kann das maschinelle Lernmodell Muster aus der Menge der Beobachtungen ohne Kennzeichnung oder Überwachung lernen und eine Ausgabe liefern, die solche Muster anzeigt, z. B. durch Clustern und/oder Assoziation, um verwandte Gruppen von Elementen innerhalb der Menge der Beobachtungen zu identifizieren.
  • Wie unter der Referenznummer 320 dargestellt, kann das maschinelle Lernsystem ein maschinelles Lernmodell unter Verwendung des Beobachtungssatzes und eines oder mehrerer maschineller Lernalgorithmen trainieren, wie z. B. eines Regressionsalgorithmus, eines Entscheidungsbaumalgorithmus, eines neuronalen Netzwerkalgorithmus, eines k-Nearest-Neighbor-Algorithmus, eines Support-Vector-Machine-Algorithmus und/oder Ähnlichem. Nach dem Training kann das maschinelle Lernsystem das maschinelle Lernmodell als trainiertes maschinelles Lernmodell 325 speichern, um es für die Analyse neuer Beobachtungen zu verwenden.
  • Wie unter der Referenznummer 330 dargestellt, kann das maschinelle Lernsystem das trainierte maschinelle Lernmodell 325 auf eine neue Beobachtung anwenden, indem es beispielsweise eine neue Beobachtung empfängt und die neue Beobachtung in das trainierte maschinelle Lernmodell 325 eingibt. Wie gezeigt, kann die neue Beobachtung ein erstes Merkmal enthalten, das einem Strichcode zugeordnet ist, ein zweites Merkmal, das einer Anzeigegeste zugeordnet ist, ein drittes Merkmal, das einer Auslösegeste zugeordnet ist, und so weiter, als ein Beispiel. Das maschinelle Lernsystem kann das trainierte maschinelle Lernmodell 325 auf die neue Beobachtung anwenden, um eine Ausgabe (z. B. ein Ergebnis) zu erzeugen. Die Art der Ausgabe kann von der Art des maschinellen Lernmodells und/oder der Art der durchgeführten maschinellen Lernaufgabe abhängen. Zum Beispiel kann die Ausgabe einen vorhergesagten Wert einer Zielvariablen enthalten, wie z.B. bei überwachtem Lernen. Zusätzlich oder alternativ kann die Ausgabe Informationen enthalten, die einen Cluster identifizieren, zu dem die neue Beobachtung gehört, Informationen, die den Grad der Ähnlichkeit zwischen der neuen Beobachtung und einer oder mehreren anderen Beobachtungen angeben, und/oder Ähnliches, wenn z. B. unüberwachtes Lernen eingesetzt wird.
  • Beispielsweise kann das trainierte maschinelle Lernmodell 325 den Wert „Ja“ für die Zielvariable des für die neue Beobachtung dekodierten Strichcodes vorhersagen (z. B. auf der Grundlage eines erfüllten Schwellenwerts), wie durch die Referenznummer 335 dargestellt. Auf der Grundlage dieser Vorhersage kann das maschinelle Lernsystem eine erste Empfehlung abgeben, eine Ausgabe zur Bestimmung einer ersten Empfehlung bereitstellen, eine erste automatisierte Aktion durchführen, die Durchführung einer ersten automatisierten Aktion veranlassen (z. B. durch Anweisung an eine andere Vorrichtung, die automatisierte Aktion durchzuführen) und/oder Ähnliches. Die erste Empfehlung kann zum Beispiel eine Empfehlung an den Benutzer sein, den Scan durchzuführen, eine Empfehlung, dass der Benutzer den Strichcode-Scan validiert, und/oder Ähnliches. Die erste automatisierte Aktion kann zum Beispiel das automatische Scannen des Strichcodes, die automatische Bereitstellung von Strichcodedaten, die der Dekodierung des Strichcodes über den Strichcode-Scan zugeordnet sind, die Bereitstellung von Informationen, die einem Objekt zugeordnet sind, das dem Strichcode zugeordnet ist (z. B. Informationen, die einen Status, einen Ort, eine Transaktion, einen Benutzer und/oder Ähnliches identifizieren, die dem Objekt und/oder der Benutzervorrichtung zugeordnet sind), und/oder Ähnliches umfassen.
  • Ein weiteres Beispiel: Wenn das maschinelle Lernsystem für die Zielvariable des dekodierten Strichcodes den Wert „Nein“ vorhersagt (z. B. weil der Schwellenwert nicht erfüllt ist), kann das maschinelle Lernsystem eine zweite (z. B. andere) Empfehlung aussprechen (z. B. angeben, dass der Strichcode nicht gescannt werden kann und/oder Ähnliches) und/oder eine zweite (z. B. andere) automatische Aktion durchführen oder veranlassen (z. B. den erkannten Strichcode ignorieren, das Modell neu trainieren und/oder Ähnliches).
  • In einigen Implementierungen kann das trainierte maschinelle Lernmodell 325 die neue Beobachtung in einem Cluster klassifizieren (z. B. Clustern), wie durch die Referenznummer 340 dargestellt. Die Beobachtungen innerhalb eines Clusters können einen Schwellenwert für den Grad der Ähnlichkeit aufweisen. Wenn das maschinelle Lernsystem beispielsweise die neue Beobachtung in einem ersten Cluster klassifiziert (z. B. einem Cluster, der anzeigt, dass sich ein Strichcode in der Beobachtung befindet), dann kann das maschinelle Lernsystem eine erste Empfehlung bereitstellen, wie die oben beschriebene erste Empfehlung. Zusätzlich oder alternativ kann das maschinelle Lernsystem eine erste automatisierte Aktion durchführen und/oder die Durchführung einer ersten automatisierten Aktion veranlassen (z. B. durch Anweisung an eine andere Vorrichtung, die automatisierte Aktion durchzuführen), basierend auf der Klassifizierung der neuen Beobachtung in dem ersten Cluster, wie die oben beschriebene erste automatisierte Aktion.
  • Als ein weiteres Beispiel, wenn das maschinelle Lernsystem die neue Beobachtung in einem zweiten Cluster klassifiziert (z. B. einem Cluster, der einen Strichcode und mindestens eine Anzeigegeste oder eine Auslösegeste enthält), kann das maschinelle Lernsystem eine zweite (z. B. andere) Empfehlung bereitstellen (z. B. den der Geste zugeordneten Strichcode hervorheben) und/oder eine zweite (z. B. andere) automatisierte Aktion durchführen oder veranlassen, wie z. B. das Scannen des Strichcodes und/oder das Dekodieren des Strichcodes.
  • In einigen Implementierungen kann die Empfehlung und/oder die automatisierte Aktion, die der neuen Beobachtung zugeordnet ist, auf einem Zielvariablenwert basieren, der eine bestimmte Kennzeichnung hat (z. B. Klassifizierung, Kategorisierung und/oder Ähnliches), kann darauf basieren, ob ein Zielvariablenwert einen oder mehrere Schwellenwerte erfüllt (z. B. ob der Zielvariablenwert größer als ein Schwellenwert ist, kleiner als ein Schwellenwert ist, gleich einem Schwellenwert ist, in einen Bereich von Schwellenwerten fällt und/oder Ähnliches), kann auf einem Cluster basieren, in dem die neue Beobachtung klassifiziert ist, und/oder Ähnliches.
  • Auf diese Weise kann das maschinelle Lernsystem einen strengen und automatisierten Prozess anwenden, um eine oder mehrere Gesten zu erkennen und/oder zu analysieren, die der Identifizierung und/oder dem Scannen eines Strichcodes zugeordnet sind. Das maschinelle Lernsystem ermöglicht die Erkennung und/oder Identifizierung von Dutzenden, Hunderten, Tausenden oder Millionen von Merkmalen und/oder Merkmalswerten für Dutzende, Hunderte, Tausende oder Millionen von Beobachtungen, wodurch die Genauigkeit und Konsistenz erhöht und die Verzögerung verringert wird, die der Identifizierung des zu scannenden Strichcodes, der Bereitstellung von Strichcodedaten, die der Dekodierung des gescannten Strichcodes zugeordnet sind, und/oder Ähnlichem zugeordnet ist, im Vergleich zu der Notwendigkeit, Rechenressourcen für Strichcode-Scanner zuzuweisen, die jeden oder alle Strichcodes scannen, die mit dem Strichcode-Merkmal erkannt werden.
  • Wie bereits erwähnt, ist 3 als Beispiel zu verstehen. Andere Beispiele können von der Beschreibung in 3 abweichen.
  • 4 ist ein Diagramm einer Beispielumgebung 400, in der die hier beschriebenen Systeme und/oder Verfahren implementiert werden können. Wie in 4 gezeigt, kann die Umgebung 400 ein Strichcode-Datenverwaltungssystem 401 umfassen, das ein oder mehrere Elemente eines Cloud-Computersystems 402 enthalten und/oder darin ausgeführt werden kann. Das Cloud-Computersystem 402 kann ein oder mehrere Elemente 403-413 enthalten, wie im Folgenden näher beschrieben. Wie in 4 weiter dargestellt, kann die Umgebung 400 ein Netzwerk 420 und/oder eine Benutzervorrichtung 430 umfassen. Die Vorrichtungen und/oder Elemente der Umgebung 400 können über drahtgebundene und/oder drahtlose Verbindungen miteinander verbunden sein.
  • Das Cloud-Computersystem 402 umfasst Computerhardware 403, eine Ressourcenverwaltungskomponente 404, ein Host-Betriebssystem (OS) 405 und/oder ein oder mehrere virtuelle Computersysteme 406. Die Ressourcenverwaltungskomponente 404 kann eine Virtualisierung (z. B. Abstraktion) der Computerhardware 403 durchführen, um das eine oder die mehreren virtuellen Computersysteme 406 zu erstellen. Durch die Verwendung von Virtualisierung ermöglicht die Ressourcenverwaltungskomponente 404, dass eine einzelne Computervorrichtung (z. B. ein Computer, ein Server und/oder ähnliches) wie mehrere Computervorrichtungen funktioniert, z. B. durch Erstellen mehrerer isolierter virtueller Computersysteme 406 aus der Computerhardware 403 der einzelnen Computervorrichtung. Auf diese Weise kann die Computerhardware 403 effizienter, mit geringerem Stromverbrauch, höherer Zuverlässigkeit, höherer Verfügbarkeit, höherer Auslastung, größerer Flexibilität und niedrigeren Kosten als bei der Verwendung separater Computervorrichtungen arbeiten.
  • Die Computerhardware 403 umfasst Hardware und entsprechende Ressourcen von einer oder mehreren Computervorrichtungen. Beispielsweise kann die Computerhardware 403 Hardware von einer einzelnen Computervorrichtung (z. B. einem einzelnen Server) oder von mehreren Computervorrichtungen (z. B. mehreren Servern) umfassen, wie z. B. mehrere Computervorrichtungen in einem oder mehreren Datenzentren. Wie gezeigt, kann die Computerhardware 403 einen oder mehrere Prozessoren 407, einen oder mehrere Speicher 408, eine oder mehrere Speicherkomponenten 409 und/oder eine oder mehrere Netzwerkkomponenten 410 umfassen. Beispiele für einen Prozessor, einen Speicher, eine Speicherkomponente und eine Netzwerkkomponente (z. B. eine Kommunikationskomponente) sind an anderer Stelle beschrieben.
  • Die Ressourcenverwaltungskomponente 404 umfasst eine Virtualisierungsanwendung (die z. B. auf Hardware, wie der Computerhardware 403, ausgeführt wird), die in der Lage ist, die Computerhardware 403 zu virtualisieren, um ein oder mehrere virtuelle Computersysteme 406 zu starten, zu stoppen und/oder zu verwalten. Die Ressourcenverwaltungskomponente 404 kann beispielsweise einen Hypervisor (z. B. einen Bare-Metal- oder Typ-1-Hypervisor, einen gehosteten Hypervisor oder Typ-2-Hypervisor und/oder Ähnliches) oder einen Monitor für virtuelle Maschinen umfassen, beispielsweise wenn die virtuellen Computersysteme 406 virtuelle Maschinen 411 sind. Zusätzlich oder alternativ kann die Ressourcenverwaltungskomponente 404 einen Containerverwalter enthalten, z. B. wenn es sich bei den virtuellen Computersystemen 406 um Container 412 handelt. In einigen Implementierungen wird die Ressourcenverwaltungskomponente 404 innerhalb und/oder in Koordination mit einem Host-Betriebssystem 405 ausgeführt.
  • Ein virtuelles Computersystem 406 umfasst eine virtuelle Umgebung, die eine Cloudbasierte Ausführung der hier beschriebenen Operationen und/oder Prozesse unter Verwendung von Computerhardware 403 ermöglicht. Wie dargestellt, kann ein virtuelles Computersystem 406 eine virtuelle Maschine 411, einen Container 412, eine hybride Umgebung 413, die eine virtuelle Maschine und einen Container enthält, und/oder Ähnliches umfassen. Ein virtuelles Computersystem 406 kann eine oder mehrere Anwendungen unter Verwendung eines Dateisystems ausführen, das Binärdateien, Softwarebibliotheken und/oder andere Ressourcen enthält, die zur Ausführung von Anwendungen auf einem Gastbetriebssystem (z. B. innerhalb des virtuellen Computersystems 406) oder dem Host-Betriebssystem 405 erforderlich sind.
  • Obwohl das Strichcodedatenverwaltungssystem 401 ein oder mehrere Elemente 403-413 des Cloud-Computersystems 402 enthalten, innerhalb des Cloud-Computersystems 402 ausgeführt und/oder innerhalb des Cloud-Computersystems 402 gehostet werden kann, kann das Strichcodedatenverwaltungssystem 401 in einigen Implementierungen nicht Cloud-basiert sein (z. B. kann es außerhalb eines Cloud-Computersystems implementiert werden) oder kann teilweise Cloud-basiert sein. Beispielsweise kann das Strichcodedatenverwaltungssystem 401 eine oder mehrere Vorrichtungen umfassen, die nicht Teil des Cloud-Computersystems 402 sind, wie das Strichcodedatenverwaltungssystem von 1, das einen eigenständigen Server oder eine andere Art von Computervorrichtung umfassen kann. Das Strichcodedatenverwaltungssystem 401 kann einen oder mehrere Vorgänge und/oder Prozesse durchführen, die an anderer Stelle hierin ausführlicher beschrieben sind.
  • Das Netzwerk 420 umfasst ein oder mehrere drahtgebundene und/oder drahtlose Netzwerke. Das Netzwerk 420 kann beispielsweise ein Mobilfunknetz, ein öffentliches Mobilfunknetz (PLMN), ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN), ein privates Netzwerk, das Internet und/oder Ähnliches und/oder eine Kombination dieser oder anderer Arten von Netzwerken umfassen. Das Netzwerk 420 ermöglicht die Kommunikation zwischen den Vorrichtungen der Umgebung 400.
  • Die Benutzervorrichtung 430 umfasst eine oder mehrere Vorrichtungen, die in der Lage sind, Informationen zu empfangen, zu erzeugen, zu speichern, zu verarbeiten und/oder bereitzustellen, die dem Scannen von Strichcodes auf der Grundlage einer Gestenerkennung und/oder -analyse zugeordnet sind, wie an anderer Stelle hierin beschrieben. Die Benutzervorrichtung 430 kann eine Kommunikationsvorrichtung und/oder eine Computervorrichtung umfassen. Beispielsweise kann die Benutzervorrichtung 430 eine drahtloses Kommunikationsvorrichtung, eine Benutzervorrichtung (UE), ein Mobiltelefon (z. B. ein Smartphone oder ein Mobiltelefon, neben anderen Beispielen), einen Tablet-Computer, einen handgehaltenen Computer, eine tragbare Kommunikationsvorrichtung (z. B. eine intelligente Armbanduhr oder eine intelligente Brille, neben anderen Beispielen), eine Internetof-Things-Vorrichtung (loT-Vorrichtung) oder eine ähnliche Art von Vorrichtung umfassen. Die Benutzervorrichtung 430 kann mit einer oder mehreren anderen Vorrichtungen der Umgebung 400 kommunizieren, wie an anderer Stelle hier beschrieben.
  • Die in 4 dargestellte Anzahl und Anordnung von Vorrichtungen und Netzwerken ist ein Beispiel. In der Praxis können zusätzliche Vorrichtungen und/oder Netzwerke, weniger Vorrichtungen und/oder Netzwerke, andere Vorrichtungen und/oder Netzwerke oder anders angeordnete Vorrichtungen und/oder Netzwerke als die in 4 gezeigten vorhanden sein. Darüber hinaus können zwei oder mehr der in 4 gezeigten Vorrichtungen in einer einzigen Vorrichtung implementiert sein, oder eine einzige in 4 gezeigte Vorrichtung kann als mehrere verteilte Vorrichtungen implementiert sein. Zusätzlich oder alternativ kann ein Satz von Vorrichtungen (z. B. eine oder mehrere Vorrichtungen) der Umgebung 400 eine oder mehrere Funktionen ausführen, die als von einem anderen Satz von Vorrichtungen der Umgebung 400 ausgeführt beschrieben werden.
  • 5 ist ein Diagramm von Beispielkomponenten einer Vorrichtung 500, die dem Strichcodedatenverwaltungssystem 401 und/oder der Benutzervorrichtung 430 entsprechen kann. In einigen Ausführungsformen kann das Strichcodedatenverwaltungssystem 401 und/oder die Benutzervorrichtung 430 eine oder mehrere Vorrichtungen 500 und/oder eine oder mehrere Komponenten der Vorrichtung 500 umfassen. Wie in 5 dargestellt, kann die Vorrichtung 500 einen Bus 510, einen Prozessor 520, einen Speicher 530, eine Speicherkomponente 540, eine Eingabekomponente 550, eine Ausgabekomponente 560 und eine Kommunikationskomponente 570 umfassen.
  • Bus 510 umfasst eine Komponente, die eine drahtgebundene und/oder drahtlose Kommunikation zwischen den Komponenten der Vorrichtung 500 ermöglicht. Prozessor 520 umfasst eine zentrale Prozessoreinheit, eine Grafikverarbeitungseinheit, einen Mikroprozessor, eine Steuerung, einen Mikrocontroller, einen digitalen Signalprozessor, ein feldprogrammierbares Gate-Array, eine anwendungsspezifische integrierte Schaltung und/oder eine andere Art von Verarbeitungskomponente. Der Prozessor 520 ist in Hardware, Firmware oder einer Kombination aus Hardware und Software implementiert. In einigen Implementierungen umfasst der Prozessor 520 einen oder mehrere Prozessoren, die so programmiert sein können, dass sie eine Funktion ausführen. Der Speicher 530 umfasst einen Direktzugriffsspeicher, einen Festwertspeicher und/oder einen anderen Speichertyp (z. B. einen Flash-Speicher, einen magnetischen Speicher und/oder einen optischen Speicher).
  • Die Speicherkomponente 540 speichert Informationen und/oder Software, die mit dem Betrieb der Vorrichtung 500 zusammenhängen. Die Speicherkomponente 540 kann beispielsweise ein Festplattenlaufwerk, ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Festkörperplattenlaufwerk, eine Compact Disc, eine Digital Versatile Disc und/oder eine andere Art von nicht-transitorischem, computerlesbarem Medium umfassen. Die Eingabekomponente 550 ermöglicht es der Vorrichtung 500, Eingaben zu empfangen, beispielsweise Benutzereingaben und/oder erfasste Eingaben. Die Eingabekomponente 550 kann beispielsweise einen Touchscreen, eine Tastatur, ein Tastenfeld, eine Maus, eine Taste, ein Mikrofon, einen Schalter, einen Sensor, eine Komponente des globalen Positionierungssystems, einen Beschleunigungsmesser, ein Gyroskop, einen Aktuator und/oder Ähnliches umfassen. Die Ausgabekomponente 560 ermöglicht es der Vorrichtung 500, Ausgaben zu tätigen, z. B. über ein Display, einen Lautsprecher und/oder eine oder mehrere Leuchtdioden. Die Kommunikationskomponente 570 ermöglicht es der Vorrichtung 500, mit anderen Vorrichtungen zu kommunizieren, z. B. über eine drahtgebundene Verbindung und/oder eine drahtlose Verbindung. Die Kommunikationskomponente 570 kann beispielsweise einen Empfänger, einen Sender, einen Sendeempfänger, ein Modem, eine Netzwerkschnittstellenkarte, eine Antenne und/oder Ähnliches umfassen.
  • Die Vorrichtung 500 kann einen oder mehrere hierin beschriebene Prozesse durchführen. Zum Beispiel kann ein nicht-transitorisches computerlesbares Medium (z. B. Speicher 530 und/oder Speicherkomponente 540) einen Satz von Anweisungen (z. B. eine oder mehrere Anweisungen, Code, Softwarecode, Programmcode und/oder Ähnliches) zur Ausführung durch Prozessor 520 speichern. Der Prozessor 520 kann den Satz von Anweisungen ausführen, um einen oder mehrere hierin beschriebene Prozesse durchzuführen. In einigen Implementierungen bewirkt die Ausführung des Satzes von Anweisungen durch einen oder mehrere Prozessoren 520, dass der eine oder die mehreren Prozessoren 520 und/oder die Vorrichtung 500 einen oder mehrere hierin beschriebene Prozesse durchführen. In einigen Implementierungen können festverdrahtete Schaltungen anstelle von oder in Kombination mit den Anweisungen verwendet werden, um einen oder mehrere hierin beschriebene Prozesse auszuführen. Daher sind die hier beschriebenen Implementierungen nicht auf eine bestimmte Kombination von Hardware-Schaltkreisen und Software beschränkt.
  • Die Anzahl und Anordnung der in 5 gezeigten Komponenten ist nur ein Beispiel. Die Vorrichtung 500 kann zusätzliche Komponenten, weniger Komponenten, andere Komponenten oder anders angeordnete Komponenten als die in 5 gezeigten enthalten. Zusätzlich oder alternativ kann ein Satz von Komponenten (z. B. eine oder mehrere Komponenten) der Vorrichtung 500 eine oder mehrere Funktionen ausführen, die von einem anderen Satz von Komponenten der Vorrichtung 500 ausgeführt werden.
  • 6 ist ein Flussdiagramm eines Beispielprozesses 600, der dem Scannen von Strichcodes auf der Grundlage von Gestenerkennung und -analyse zugeordnet ist. In einigen Implementierungen können ein oder mehrere Prozessblöcke von 6 von einer Benutzervorrichtung (z. B. Benutzervorrichtung 430) ausgeführt werden. In einigen Ausführungsformen können ein oder mehrere Prozessblöcke von 6 von einer anderen Vorrichtung oder einer Gruppe von Vorrichtungen ausgeführt werden, die von der Benutzervorrichtung getrennt sind oder dieses einschließen, wie z. B. das Strichcodedatenverwaltungssystem 401 und/oder dergleichen. Zusätzlich oder alternativ können ein oder mehrere Prozessblöcke von 6 von einer oder mehreren Komponenten einer Vorrichtung 500 ausgeführt werden, wie z. B. Prozessor 520, Speicher 530, Speicherkomponente 540, Eingabekomponente 550, Ausgabekomponente 560, Kommunikationskomponente 570 und/oder dergleichen.
  • Wie in 6 gezeigt, kann der Prozess 600 den Empfang eines Bildstroms beinhalten, der eine Umgebung darstellt (Block 610). Zum Beispiel kann die Benutzervorrichtung einen Bildstrom empfangen, der eine Umgebung darstellt, wie oben beschrieben.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 die Überwachung des Bildstroms unter Verwendung eines Bildverarbeitungsmodells beinhalten, um einen Satz von Gesten in der Umgebung zu erkennen (Block 620). Zum Beispiel kann die Benutzervorrichtung unter Verwendung eines Bildverarbeitungsmodells den Bildstrom überwachen, um eine Reihe von Gesten in der Umgebung zu erkennen, wie oben beschrieben.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 unter Verwendung des Bildverarbeitungsmodells bestimmen, dass ein erster Abschnitt des Bildstroms eine erste Geste des Gestensatzes darstellt (Block 630). Beispielsweise kann die Benutzervorrichtung unter Verwendung des Bildverarbeitungsmodells bestimmen, dass ein erster Abschnitt des Bildstroms eine erste Geste des Gestensatzes darstellt, wie oben beschrieben.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 die Bestimmung unter Verwendung des Bildverarbeitungsmodells beinhalten, dass die erste Geste einem Anzeigen eines Strichcodebereichs des Bildstroms zugeordnet ist (Block 640). Zum Beispiel kann die Benutzervorrichtung unter Verwendung des Bildverarbeitungsmodells feststellen, dass die erste Geste einem Anzeigen eines Strichcodebereichs des Bildstroms zugeordnet ist, wie oben beschrieben.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 das Analysieren des Strichcodebereichs des Bildstroms unter Verwendung des Bildverarbeitungsmodells beinhalten, um einen Strichcode zu identifizieren (Block 650). Zum Beispiel kann die Benutzervorrichtung unter Verwendung des Bildverarbeitungsmodells den Strichcodebereich des Bildstroms analysieren, um einen Strichcode zu identifizieren, wie oben beschrieben.
  • In einigen Implementierungen umfasst das Analysieren des Strichcodebereichs: Identifizieren einer Position eines Benutzerelements, das die erste Geste ausgeführt hat; das Bestimmen, dass der Strichcodebereich einem Bereich der Umgebung entspricht, der innerhalb eines Schwellenabstands von der Position des Benutzerelements dargestellt ist, und das Identifizieren des Strichcodes innerhalb des Strichcodebereichs auf der Grundlage des Strichcodes, der innerhalb des Schwellenabstands dargestellt ist. Zusätzlich oder alternativ wird der Strichcode auf der Grundlage des Bildverarbeitungsmodells identifiziert, das konfiguriert ist, um: zu identifizieren, dass der Bildstrom den Strichcode darstellt, basierend auf ebenen Konfigurationen anderer Strichcodes, die dem Strichcode zugeordnet sind, und den Strichcodebereich zu verarbeiten, basierend auf der Bestimmung, dass der Strichcode in Verbindung mit einer der ebenen Konfigurationen dargestellt ist.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 die Bestimmung, unter Verwendung des Bildverarbeitungsmodells, beinhalten, dass ein zweiter Abschnitt des Bildstroms eine zweite Geste des Gestensatzes darstellt, die der Dekodierung des Strichcodes zugeordnet ist (Block 660). Beispielsweise kann die Benutzervorrichtung unter Verwendung des Bildverarbeitungsmodells feststellen, dass ein zweiter Abschnitt des Bildstroms eine zweite Geste aus dem Satz von Gesten darstellt, die der Dekodierung des Strichcodes zugeordnet ist, wie oben beschrieben.
  • In einigen Implementierungen ist die zweite Geste einer Gestenbewegung zugeordnet, die einem Benutzer entspricht, der ein Benutzerelement von einer Gestenposition der ersten Geste zu einer Gestenposition der zweiten Geste überführt.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 das Dekodieren des Strichcodes auf der Grundlage der Bestimmung beinhalten, dass der zweite Abschnitt des Bildstroms die zweite Geste darstellt (Block 670). Zum Beispiel kann die Benutzervorrichtung den Strichcode dekodieren, indem sie bestimmt, dass der zweite Abschnitt des Bildstroms die zweite Geste darstellt, wie oben beschrieben.
  • In einigen Implementierungen umfasst das Dekodieren des Strichcodes: das Veranlassen eines Laserscanners, den Strichcode zu scannen, und das Verarbeiten der vom Laserscanner empfangenen Scaninformationen (z. B. Strichcodedaten), um den Strichcode zu dekodieren. Zusätzlich oder alternativ umfasst das Dekodieren des Strichcodes: das Verarbeiten des Strichcodebereichs unter Verwendung des Bildverarbeitungsmodells, um ein Bild des Strichcodes aus dem Bildstrom zu extrahieren; das Formatieren des Bildes für die Dekodierung unter Verwendung eines Strichcode-Scanmodells, um ein formatiertes Bild zu erzeugen; und das Dekodieren des Strichcodes unter Verwendung des Strichcode-Scanmodells auf der Grundlage des formatierten Bildes.
  • Wie in 6 weiter gezeigt, kann der Prozess 600 die Durchführung einer Aktion beinhalten, die einem Objekt zugeordnet ist, das dem Strichcode zugeordnet ist (Block 680). Zum Beispiel kann die Benutzervorrichtung eine Aktion durchführen, die einem Objekt zugeordnet ist, das dem Strichcode zugeordnet ist, wie oben beschrieben. In einigen Implementierungen umfasst die Durchführung der Aktion mindestens eines von: Bereitstellen von Statusinformationen, die dem Objekt relativ zur Umgebung zugeordnet sind, Bereitstellen von Standortinformationen, die dem Objekt relativ zur Umgebung zugeordnet sind, Bereitstellen von Transaktionsinformationen, die dem Objekt relativ zur Umgebung zugeordnet sind, und Bereitstellen von Benutzerinformationen, die einem Benutzer zugeordnet sind, der das Objekt verarbeitet.
  • Obwohl 6 Beispielblöcke des Prozesses 600 zeigt, kann der Prozess 600 in einigen Implementierungen zusätzliche Blöcke, weniger Blöcke, andere Blöcke oder anders angeordnete Blöcke als die in 6 dargestellten umfassen. Zusätzlich oder alternativ können zwei oder mehr der Blöcke des Prozesses 600 parallel ausgeführt werden.
  • In der vorstehenden Beschreibung wurden spezifische Ausführungsformen beschrieben. Ein Durchschnittsfachmann erkennt jedoch, dass verschiedene Modifikationen und Änderungen vorgenommen werden können, ohne den Schutzumfang der Erfindung, wie sie in den untenstehenden Ansprüchen definiert ist, abzuweichen. Dementsprechend sind die Beschreibung und die Figuren vielmehr in einem illustrativen als in einem einschränkenden Sinne zu betrachten, und alle derartigen Modifikationen sollen im Umfang der vorliegenden Lehren eingeschlossen sein. Darüber hinaus sollten die beschriebenen Ausführungsformen/Beispiele/Implementierungen nicht als sich gegenseitig ausschließend interpretiert werden, sondern als potenziell kombinierbar, wenn solche Kombinationen in irgendeiner Weise permissiv sind. Mit anderen Worten kann jedes Merkmal, das in einem der vorgenannten Beispiele oder Implementierungen offenbart wird, in jedem der anderen vorgenannten Beispiele oder Implementierungen enthalten sein.
  • Der hier verwendete Begriff „Komponente“ soll im weitesten Sinne als Hardware, Firmware und/oder eine Kombination aus Hardware und Software verstanden werden. Die Begriffe „zugreifbares maschinenlesbares Medium“, „nicht-transitorisches maschinenlesbares Medium“ und „maschinenlesbare Speichervorrichtung“ werden hier ausdrücklich als ein Speichermedium (z. B. eine Platte eines Festplattenlaufwerks, eine Digital Versatile Disc, eine Compact Disc, ein Flash-Speicher, ein Festwertspeicher, ein Speicher mit wahlfreiem Zugriff oder Ähnliches) definiert, auf dem maschinenlesbare Anweisungen (z. B. Code in Form von Software und/oder Firmware) gespeichert werden können. Die Anweisungen können für eine beliebige Zeitdauer gespeichert werden, z. B. dauerhaft, für einen längeren Zeitraum (z. B. während der Ausführung eines mit den Anweisungen verknüpften Programms) oder für einen kurzen Zeitraum (z. B. während der Zwischenspeicherung der Anweisungen, während eines Pufferungsprozesses o. ä.). Darüber hinaus werden die Begriffe „zugreifbares maschinenlesbares Medium“, „nicht-transitorisches maschinenlesbares Medium“ und „maschinenlesbare Speichervorrichtung“ hier ausdrücklich so definiert, dass sie sich ausbreitende Signale ausschließen. Das heißt, dass ein „zugreifbares maschinenlesbares Medium“, ein „nicht-transitorisches maschinenlesbares Medium“ und eine „maschinenlesbare Speichervorrichtung“ oder Ähnliches, wie sie in einem der Ansprüche verwendet werden, nicht als ein sich ausbreitendes Signal zu verstehen sind.
  • Je nach Kontext kann sich die Erfüllung eines Schwellenwerts auf einen Wert beziehen, der größer als der Schwellenwert, mehr als der Schwellenwert, höher als der Schwellenwert, größer oder gleich dem Schwellenwert, kleiner als der Schwellenwert, weniger als der Schwellenwert, niedriger als der Schwellenwert, kleiner oder gleich dem Schwellenwert, gleich dem Schwellenwert, usw. ist.
  • Die Nutzen, Vorteile, Lösungen für Probleme und alle Elemente, die zum Auftreten oder einer Verstärkung eines Nutzens, eines Vorteils, oder einer Lösung führen können, sind nicht als kritische, erforderliche oder wesentliche Merkmale oder Elemente in einigen oder sämtlichen Ansprüchen zu verstehen. Die Erfindung ist lediglich durch die angehängten Ansprüche definiert, einschließlich jeglicher Änderungen, die während der Anhängigkeit dieser Anmeldung vorgenommen wurden und aller Äquivalente der erteilten Ansprüche.
  • Darüber hinaus können hier verwendete relationale Begriffe wie „erster“ und „zweiter“, „oben“ und „unten“ o. ä. nur zur Unterscheidung einer Einheit oder Handlung von einer anderen Einheit oder Handlung verwendet werden, ohne dass eine solche Beziehung oder Reihenfolge zwischen diesen Einheiten oder Handlungen erforderlich ist oder impliziert wird. Die Ausdrücke „umfasst“, „umfassend“, „hat“, „aufweisend“, „beinhalten“, „beinhaltend“, „enthält“, „enthaltend“ oder eine andere Abwandlung davon sollen eine nicht ausschließliche Einbeziehung abdecken, so dass ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/die eine Liste von Elementen umfasst, hat, aufweist, enthält, nicht nur diese Elemente einschließt, sondern auch andere Elemente einschließen kann, die nicht ausdrücklich aufgeführt sind oder zu einem solchen Prozess, Verfahren, Artikel oder einer Vorrichtung gehören. Ein Element, das mit „umfasst ...ein“, „hat ...ein, „beinhaltet ...ein“, „enthält ...ein“ eingeleitet wird, schließt ohne weitere Einschränkungen die Existenz weiterer identischer Elemente in dem Prozess, Verfahren, Artikel oder der Vorrichtung, die das Element umfasst, hat, beinhaltet oder enthält, nicht aus.
  • Die Begriffe „ein“ und „eine“ werden als „ein“ oder „mehrere“ definiert, sofern hier nicht ausdrücklich anders angegeben. Ferner soll der Artikel „der/die/das“, wie hier verwendet, einen oder mehrere Artikel umfassen, auf die in Verbindung mit dem Artikel „der/die/das“ Bezug genommen wird, und kann austauschbar mit „der eine oder die mehreren“ verwendet werden. Darüber hinaus soll der hier verwendete Begriff „Satz“ einen oder mehrere Gegenstände (z. B. verwandte Gegenstände, nicht verwandte Gegenstände, eine Kombination aus verwandten und nicht verwandten Gegenständen usw.) umfassen und kann austauschbar mit „ein oder mehrere“ verwendet werden. Wenn nur ein Gegenstand gemeint ist, wird der Ausdruck „nur ein“ oder eine ähnliche Formulierung verwendet. Auch die hier verwendeten Begriffe „hat“, „haben“, „aufweisend“ oder dergleichen sind als offene Begriffe zu verstehen. Der Ausdruck „basiert auf“ bedeutet „basiert zumindest teilweise auf“, sofern nicht ausdrücklich anders angegeben. Auch der hier verwendete Begriff „oder“ soll bei Verwendung in einer Reihe umfassend sein und kann austauschbar mit „und/oder“ verwendet werden, sofern nicht ausdrücklich etwas anderes angegeben ist (z. B. bei Verwendung in Kombination mit „entweder“ oder „nur eines von“). Die Ausdrücke „im Wesentlichen“, „im Allgemeinen“, „ungefähr“, „etwa“ oder jede andere Version davon sind so definiert, dass sie nahe an dem liegen, was ein Fachmann versteht, und in einer nicht einschränkenden Ausführungsform ist der Begriff so definiert, dass er innerhalb von 10 % liegt, in einer anderen Ausführungsform innerhalb von 5 %, in einer weiteren Ausführungsform innerhalb von 1 % und in einer weiteren Ausführungsform innerhalb von 0,5 %. Der Begriff „gekoppelt“, wie er hier verwendet wird, ist definiert als verbunden, wenn auch nicht unbedingt direkt und nicht unbedingt mechanisch. Eine Vorrichtung oder eine Struktur, die auf eine bestimmte Weise „konfiguriert“ ist, ist zumindest auf diese Weise konfiguriert, kann aber auch auf andere Weise konfiguriert sein, die nicht aufgeführt ist.
  • Es wird deutlich, dass die hier beschriebenen Systeme und/oder Verfahren in verschiedenen Formen von Hardware, Firmware oder einer Kombination aus Hardware und Software implementiert werden können. Die tatsächliche spezialisierte Steuerungshardware oder der Softwarecode, der zur Implementierung dieser Systeme und/oder Verfahren verwendet wird, ist keine Einschränkung der Implementierungen. Daher werden die Funktionsweise und das Verhalten der Systeme und/oder Verfahren hier ohne Bezugnahme auf einen bestimmten Softwarecode beschrieben, wobei davon ausgegangen wird, dass Software und Hardware entwickelt werden können, um die Systeme und/oder Verfahren auf der Grundlage der hierin enthaltenen Beschreibung zu implementieren.
  • Auch wenn in den Ansprüchen und/oder in der Beschreibung bestimmte Kombinationen von Merkmalen aufgeführt sind, sollen diese Kombinationen die Offenbarung verschiedener Ausführungsformen nicht einschränken. Tatsächlich können viele dieser Merkmale in einer Weise kombiniert werden, die in den Ansprüchen nicht ausdrücklich erwähnt und/oder in der Beschreibung offenbart ist. Obwohl jeder unten aufgeführte abhängige Anspruch direkt von nur einem Anspruch abhängt, umfasst die Offenbarung der verschiedenen Ausführungsformen jeden abhängigen Anspruch in Kombination mit jedem anderen Anspruch im Anspruchssatz.
  • Die Zusammenfassung der Offenbarung soll es dem Leser ermöglichen, sich schnell ein Bild von der Art der technischen Offenbarung zu machen. Sie wird mit der Maßgabe vorgelegt, dass sie nicht zur Auslegung oder Einschränkung des Umfangs oder der Bedeutung der Ansprüche verwendet wird. Darüber hinaus ist in der vorstehenden Beschreibung zu erkennen, dass verschiedene Merkmale in verschiedenen Ausführungsformen zusammengefasst sind, um die Offenbarung zu vereinfachen. Diese Art der Offenbarung ist nicht so zu verstehen, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als in den einzelnen Ansprüchen ausdrücklich aufgeführt sind. Vielmehr kann, wie die folgenden Ansprüche zeigen, der Erfindungsgegenstand in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform liegen. Daher werden die folgenden Ansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich genommen einen gesonderten beanspruchten Gegenstand darstellt.

Claims (20)

  1. Verfahren, umfassend: Empfangen eines Bildstroms, der eine Umgebung darstellt, durch eine Vorrichtung; Überwachen des Bildstroms durch die Vorrichtung und unter Verwendung eines Bildverarbeitungsmodells, um einen Satz von Gesten in der Umgebung zu erkennen; Bestimmen, durch die Vorrichtung und unter Verwendung des Bildverarbeitungsmodells, dass ein erster Abschnitt des Bildstroms eine erste Geste aus dem Satz von Gesten darstellt; Bestimmen, durch die Vorrichtung und unter Verwendung des Bildverarbeitungsmodells, dass die erste Geste einem Anzeigen eines Strichcodebereichs des Bildstroms zugeordnet ist; Analysieren des Strichcodebereichs des Bildstroms durch die Vorrichtung und unter Verwendung des Bildverarbeitungsmodells, um einen Strichcode zu identifizieren; Bestimmen, durch die Vorrichtung und unter Verwendung des Bildverarbeitungsmodells, dass ein zweiter Abschnitt des Bildstroms eine zweite Geste aus dem Satz von Gesten darstellt, die einer Dekodierung des Strichcodes zugeordnet ist; Dekodieren des Strichcodes durch die Vorrichtung, basierend auf einem Bestimmen, dass der zweite Abschnitt des Bildstroms die zweite Geste darstellt; und Durchführen einer Aktion durch die Vorrichtung, die einem Objekt zugeordnet ist, das dem Strichcode zugeordnet ist.
  2. Verfahren nach Anspruch 1, wobei das Analysieren des Strichcodebereichs umfasst: Identifizieren einer Position eines Benutzerelements, der die erste Geste ausgeführt hat; Bestimmen, dass der Strichcodebereich einem Bereich der Umgebung entspricht, der innerhalb einer Schwellenentfernung von der Position des Benutzerelements dargestellt ist; und Identifizieren des Strichcodes innerhalb des Strichcodebereichs basierend darauf, dass der Strichcode innerhalb der Schwellenentfernung dargestellt ist.
  3. Verfahren nach Anspruch 1, wobei der Strichcode basierend auf dem Bildverarbeitungsmodell identifiziert wird, das so konfiguriert ist, dass es: identifiziert, dass der Bildstrom den Strichcode darstellt, basierend auf ebenen Konfigurationen anderer Strichcodes, die dem Strichcode zugeordnet sind; und den Strichcodebereich verarbeitet, basierend auf einem Bestimmen, dass der Strichcode in Verbindung mit einer der ebenen Konfigurationen dargestellt wird.
  4. Verfahren nach Anspruch 1, wobei die zweite Geste einer Gestenbewegung zugeordnet ist, die einem Benutzer entspricht, der ein Benutzerelement von einer Gestenposition der ersten Geste zu einer Gestenposition der zweiten Geste überführt.
  5. Verfahren nach Anspruch 1, wobei das Dekodieren des Strichcodes umfasst: Veranlassen eines Laserscanners, den Strichcode zu scannen; und Verarbeiten der vom Laserscanner empfangenen Scan-Informationen zur Dekodierung des Strichcodes.
  6. Verfahren nach Anspruch 1, wobei das Dekodieren des Strichcodes umfasst: Verarbeiten des Strichcodebereichs unter Verwendung des Bildverarbeitungsmodells, um ein Bild des Strichcodes aus dem Bildstrom zu extrahieren; Formatieren des Bildes zur Dekodierung unter Verwendung eines Strichcode-Scanmodells, um ein formatiertes Bild zu bilden; und Dekodieren des Strichcodes basierend auf dem formatierten Bild unter Verwendung des Strichcode-Scanmodells.
  7. Verfahren nach Anspruch 1, wobei das Durchführen der Aktion mindestens eines umfasst von: Bereitstellen von Statusinformationen, die dem Objekt in Bezug auf die Umgebung zugeordnet sind, Bereitstellen von Standortinformationen, die dem Objekt in Bezug auf die Umgebung zugeordnet sind, Bereitstellen von Transaktionsinformationen, die dem Objekt in Bezug auf die Umgebung zugeordnet sind, und Bereitstellen von Benutzerinformationen, die einem Benutzer zugeordnet sind, der das Objekt verarbeitet.
  8. Vorrichtung, umfassend: einen oder mehrere Speicher; und einen oder mehrere Prozessoren, die kommunikativ mit dem einen oder den mehreren Speichern gekoppelt sind und so konfiguriert sind, dass sie: einen Bildstrom empfangen, der eine Umgebung darstellt; den Bildstrom unter Verwendung eines Bildverarbeitungsmodells überwachen, um einen Satz von Gesten in der Umgebung zu erkennen; unter Verwendung des Bildverarbeitungsmodells bestimmen, dass ein erster Abschnitt des Bildstroms eine erste Geste aus dem Satz von Gesten darstellt; unter Verwendung des Bildverarbeitungsmodells bestimmen, dass die erste Geste einem Anzeigen eines Strichcodebereichs des Bildstroms zugeordnet ist; unter Verwendung des Bildverarbeitungsmodells den Strichcodebereich des Bildstroms analysieren, um einen Strichcode zu identifizieren, der sich in der Umgebung befindet; unter Verwendung des Bildverarbeitungsmodells bestimmen, dass ein zweiter Abschnitt des Bildstroms eine zweite Geste aus dem Satz von Gesten darstellt, die einem Dekodieren des Strichcodes zugeordnet ist; und den Strichcode basierend dem Bildstrom dekodieren, der die zweite Geste darstellt.
  9. Vorrichtung nach Anspruch 8, wobei der eine oder die mehreren Prozessoren beim Analysieren des Strichcodebereichs so konfiguriert sind, dass sie: den Strichcodebereich basierend auf der Position eines Benutzerelements bestimmen, das die erste Geste ausgeführt hat; bestimmen, dass der Strichcodebereich einem Bereich der Umgebung entspricht, der innerhalb einer Schwellenentfernung von der Position des Benutzerelements dargestellt ist; und den Strichcode innerhalb des Strichcodebereichs basierend darauf bestimmen, dass der Strichcode innerhalb der Schwellenentfernung liegt.
  10. Vorrichtung nach Anspruch 8, wobei der Strichcode basierend auf dem Bildverarbeitungsmodell identifiziert wird, das so konfiguriert ist, dass es: identifiziert, dass der Bildstrom den Strichcode darstellt, basierend auf einem Format des Strichcodes; und den Strichcodebereich basierend auf dem Format des Strichcodes verarbeitet, um zu überprüfen, ob der Strichcodebereich den Strichcode darstellt, wobei der Strichcode basierend auf dem Strichcodebereich dekodiert wird, der verarbeitet wird, um zu überprüfen, ob der Strichcodebereich den Strichcode darstellt.
  11. Vorrichtung nach Anspruch 8, wobei das Bildverarbeitungsmodell so konfiguriert ist, dass es: den Satz von Gesten in einem Vordergrund des Bildstroms erkennt, und den Strichcode in einem Hintergrund des Bildstroms identifiziert.
  12. Vorrichtung nach Anspruch 8, wobei der eine oder die mehreren Prozessoren, vor dem Bestimmen, dass der zweite Abschnitt die zweite Geste darstellt, so konfiguriert sind, dass sie: einen Strichcode-Identifikator in Verbindung mit dem Strichcode über ein Display einer Benutzerschnittstelle, die der Umgebung zugeordnet ist, ergänzen.
  13. Vorrichtung nach Anspruch 8, wobei der eine oder die mehreren Prozessoren beim Dekodieren des Strichcodes so konfiguriert sind, dass sie: unter Verwendung des Bildverarbeitungsmodells den Strichcodebereich verarbeiten, um ein Bild des Strichcodes aus dem Bildstrom zu extrahieren; und den Strichcode unter Verwendung eines Strichcode-Scanmodells basierend auf dem Bild des Strichcodes dekodieren.
  14. Vorrichtung nach Anspruch 8, wobei der eine oder die mehreren Prozessoren ferner so konfiguriert sind, dass sie: basierend auf der Dekodierung des Strichcodes eine einem Objekt zugeordnete Aktion durchführen, wobei das Objekt dem Strichcode zugeordnet ist, und wobei der eine oder die mehreren Prozessoren, wenn sie die Aktion durchführen, so konfiguriert sind, dass sie mindestens eines ausführen von: Bereitstellen von Statusinformationen, die dem Objekt in Bezug auf die Umgebung zugeordnet sind, Bereitstellen von Standortinformationen, die dem Objekt in Bezug auf die Umgebung zugeordnet sind, Bereitstellen von Transaktionsinformationen, die dem Objekt in Bezug auf die Umgebung zugeordnet sind, und Bereitstellen von Benutzerinformationen, die einem Benutzer zugeordnet sind, der das Objekt verarbeitet.
  15. Zugreifbares maschinenlesbares Medium, das Anweisungen speichert, wobei die Anweisungen umfassen: eine oder mehrere Anweisungen, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, um: einen Bildstrom aus einer Umgebung zu empfangen; basierend auf einem Verarbeiten von Bildern des Bildstroms einen Gestenbereich des Bildstroms zu bestimmen; eine Geste eines Benutzers basierend auf einem Analysieren des Gestenbereichs zu erkennen; einen Strichcodebereich des Bildstroms basierend auf einer Position des Benutzers bei der Ausführung der Geste zu bestimmen; einen Strichcode in der Umgebung basierend auf einer Analyse des Strichcodebereichs zu identifizieren; und den Strichcode basierend auf einem Strichcodeformat zu dekodieren.
  16. Zugreifbares maschinenlesbares Medium nach Anspruch 15 , wobei der Gestenbereich basierend auf den Bildern bestimmt wird, die ein Benutzerelement des Benutzers in einem Vordergrund des Bildstroms darstellen.
  17. Zugreifbares maschinenlesbares Medium nach Anspruch 15 , wobei der Strichcodebereich basierend auf dem Strichcodebereich bestimmt wird, der sich in einem Hintergrund relativ zum Gestenbereich des Bildstroms befindet.
  18. Zugreifbares maschinenlesbares Medium nach Anspruch 15 , wobei der Gestenbereich und der Strichcodebereich dreidimensionalen Zonen des Bildstroms entsprechen, und wobei das Format des Strichcodes einer zweidimensionalen Darstellung des Strichcodes innerhalb des Strichcodebereichs entspricht.
  19. Zugreifbares maschinenlesbares Medium nach Anspruch 15, wobei der eine oder die mehreren Anweisungen, die den einen oder die mehreren Prozessoren veranlassen, den Strichcode zu dekodieren, den einen oder die mehreren Prozessoren veranlassen, mindestens eines auszuführen von: Dekodieren des Strichcodes unter Verwendung mindestens eines von: einem Laserscan des Strichcodes; und einem Strichcode-Scanmodell, das eine Bildverarbeitungstechnik verwendet, um den Strichcode unter Verwendung eines Bildes aus dem Bildstrom zu dekodieren.
  20. Zugreifbares maschinenlesbares Medium nach Anspruch 15 , wobei die eine oder die mehreren Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren ferner dazu veranlassen, mindestens eines auszuführen von: Bereitstellen von Statusinformationen, die einem Objekt zugeordnet sind, das dem Strichcode zugeordnet ist, Bereitstellen von Standortinformationen, die dem Objekt zugeordnet sind, Bereitstellen von Transaktionsinformationen, die dem Objekt zugeordnet sind, und Bereitstellen von Benutzerinformationen, die dem Benutzer und dem Objekt zugeordnet sind.
DE112021003744.7T 2020-07-14 2021-06-22 Strichcodescannen basierend auf gestenerkennung und -analyse Pending DE112021003744T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/928,836 US11600115B2 (en) 2020-07-14 2020-07-14 Barcode scanning based on gesture detection and analysis
US16/928,836 2020-07-14
PCT/US2021/038417 WO2022015474A1 (en) 2020-07-14 2021-06-22 Barcode scanning based on gesture detection and analysis

Publications (1)

Publication Number Publication Date
DE112021003744T5 true DE112021003744T5 (de) 2023-06-01

Family

ID=79292530

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003744.7T Pending DE112021003744T5 (de) 2020-07-14 2021-06-22 Strichcodescannen basierend auf gestenerkennung und -analyse

Country Status (6)

Country Link
US (1) US11600115B2 (de)
JP (1) JP7454743B2 (de)
CN (1) CN116157764A (de)
DE (1) DE112021003744T5 (de)
GB (1) GB2611921A (de)
WO (1) WO2022015474A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4200792A1 (de) 2020-08-21 2023-06-28 Mobeus Industries, Inc. Integration überlagerter digitaler inhalte in angezeigte daten über grafikverarbeitungsschaltungen
US12014574B2 (en) * 2020-10-26 2024-06-18 The Boeing Company Human gesture recognition for autonomous aircraft operation
US11481933B1 (en) 2021-04-08 2022-10-25 Mobeus Industries, Inc. Determining a change in position of displayed digital content in subsequent frames via graphics processing circuitry
US11483156B1 (en) 2021-04-30 2022-10-25 Mobeus Industries, Inc. Integrating digital content into displayed data on an application layer via processing circuitry of a server
US11586835B2 (en) * 2021-04-30 2023-02-21 Mobeus Industries, Inc. Integrating overlaid textual digital content into displayed data via graphics processing circuitry using a frame buffer
US11682101B2 (en) 2021-04-30 2023-06-20 Mobeus Industries, Inc. Overlaying displayed digital content transmitted over a communication network via graphics processing circuitry using a frame buffer
US11601276B2 (en) 2021-04-30 2023-03-07 Mobeus Industries, Inc. Integrating and detecting visual data security token in displayed data via graphics processing circuitry using a frame buffer
US11475610B1 (en) 2021-04-30 2022-10-18 Mobeus Industries, Inc. Controlling interactivity of digital content overlaid onto displayed data via graphics processing circuitry using a frame buffer
US11477020B1 (en) 2021-04-30 2022-10-18 Mobeus Industries, Inc. Generating a secure random number by determining a change in parameters of digital content in subsequent frames via graphics processing circuitry
US11562153B1 (en) 2021-07-16 2023-01-24 Mobeus Industries, Inc. Systems and methods for recognizability of objects in a multi-layer display
US11557136B1 (en) * 2022-02-23 2023-01-17 Scandit Ag Identity document verification based on barcode structure
WO2024091253A1 (en) * 2022-10-28 2024-05-02 Futurewei Technologies, Inc. N-dimensional code scanning in standby mode

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5304329B2 (ja) 2009-03-05 2013-10-02 ブラザー工業株式会社 ヘッドマウントディスプレイ装置、画像制御方法および画像制御プログラム
US8644467B2 (en) 2011-09-07 2014-02-04 Cisco Technology, Inc. Video conferencing system, method, and computer program storage device
US9946963B2 (en) 2013-03-01 2018-04-17 Layar B.V. Barcode visualization in augmented reality
CA2949088C (en) 2014-05-15 2023-01-24 Federal Express Corporation Wearable devices for courier processing and methods of use thereof
US9916010B2 (en) 2014-05-16 2018-03-13 Visa International Service Association Gesture recognition cloud command platform, system, method, and apparatus
CN106778440B (zh) * 2016-12-21 2020-04-21 腾讯科技(深圳)有限公司 二维码识别方法及装置
US20180373327A1 (en) * 2017-06-26 2018-12-27 Hand Held Products, Inc. System and method for selective scanning on a binocular augmented reality device
US10254548B1 (en) 2017-09-29 2019-04-09 Hand Held Products, Inc. Scanning device
US10474857B2 (en) 2017-12-19 2019-11-12 Datalogic IP Tech, S.r.l. Gesture controllable machine-readable symbol reader systems and methods, with head worn interface

Also Published As

Publication number Publication date
GB2611921A (en) 2023-04-19
JP2023534261A (ja) 2023-08-08
WO2022015474A1 (en) 2022-01-20
US20220019780A1 (en) 2022-01-20
CN116157764A (zh) 2023-05-23
JP7454743B2 (ja) 2024-03-22
US11600115B2 (en) 2023-03-07

Similar Documents

Publication Publication Date Title
DE112021003744T5 (de) Strichcodescannen basierend auf gestenerkennung und -analyse
CN107895367B (zh) 一种骨龄识别方法、系统及电子设备
EP4116867A1 (de) Fahrzeugverfolgungsverfahren und -vorrichtung und elektronische vorrichtung
DE112020005360T5 (de) Fein differenzierte optische erkennung in erweiterter realität
DE112009000485T5 (de) Objektvergleich für Verfolgung, Indizierung und Suche
CN110892409B (zh) 用于分析图像的方法和装置
CN107918767B (zh) 目标检测方法、装置、电子设备及计算机可读介质
DE112022002858T5 (de) Bildbasierte anomalieerkennung basierend auf einer maschinellen lernanalyse eines objekts
DE102015102679A1 (de) Effiziente freiraumfingererkennung
Öztürk et al. Transfer learning and fine‐tuned transfer learning methods' effectiveness analyse in the CNN‐based deep learning models
BE1029597B1 (de) Bildverarbeitungssysteme und -verfahren zum automatischen Erzeugen eines oder mehrerer Bildverarbeitungsaufträge auf Grundlage interessierender Regionen (ROIs) digitaler Bilder
US11755191B2 (en) Synthetic image data generation incorporating user-provided objects and relationships
Dimililer et al. Automated classification of fruits: pawpaw fruit as a case study
CN114051630A (zh) 多种杂草检测
Pohudina et al. Method for identifying and counting objects
BE1029610B1 (de) Systeme und Verfahren zum Verbessern einer Performanz einer trainierbaren optischen Zeichenerkennung (OCR)
Malik et al. A performance comparison of classification algorithms for rose plants
Sinnott et al. Run or pat: using deep learning to classify the species type and emotion of pets
Madani et al. A soft-computing-based approach to artificial visual attention using human eye-fixation paradigm: toward a human-like skill in robot vision
US12033376B2 (en) Method and system for training neural network for entity detection
US20230196748A1 (en) Method and system for training neural network for entity detection
CN112270377B (zh) 目标图像提取方法、神经网络训练方法和装置
CN114067183B (zh) 神经网络模型训练方法、图像处理方法、装置和设备
DE112021004038T5 (de) Systeme und verfahren zur optimierung einer leistung eines bildverarbeitungssystems
DE102021119128A1 (de) Systeme und verfahren zur optimierung von bildgebungseinstellungen für einen bildverarbeitungsauftrag

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)