-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht den Vorteil der nicht vorläufigen
US-Patentanmeldung Nr. 15/911,850 , mit dem Titel „VISUAL FEEDBACK OF PROCESS STATE“, eingereicht am 5. März 2018; die vollständige Offenbarung dieser Anmeldung wird hiermit durch Bezugnahme für alle Zwecke aufgenommen.
-
ALLGEMEINER STAND DER TECHNIK
-
Benutzer verwenden zunehmend elektronische Geräte, um verschiedene Arten von Informationen zu erhalten. Beispielsweise kann ein Benutzer, der ein Produkt kaufen möchte, auf einen elektronischen Marktplatz zugreifen, um nach den über diesen Marktplatz angebotenen Arten von Produkten zu suchen. Sofern der Benutzer keine genaue Marke oder keinen genauen Produktstil kennt, die bzw. den der Benutzer möchte, muss er möglicherweise Hunderte oder Tausende verschiedener Produkte mit verschiedenen Optionen durchsuchen, um zu versuchen, die Produktart zu finden, an der der Benutzer interessiert ist. Wenn der Benutzer an einem Produkt einer bestimmten Art interessiert ist, hat der Benutzer möglicherweise keine andere Wahl, als diese Ergebnisse durchzugehen. Ferner können Produkte in einem elektronischen Katalog einer endlichen Anzahl von spezifischen Schlüsselwörtern oder Klassifikationen zugeordnet sein und Benutzer kennen möglicherweise nicht die genauen Schlüsselwörter, um die Produkte zu beschreiben, nach denen sie suchen. Somit wurde eine Technologie entwickelt, die es einem Benutzer ermöglicht, der daran interessiert ist, Informationen zu einem Produkt zu erhalten oder nach ähnlichen Produkten zu suchen, ein Bild des Produkts aufzunehmen und das aufgenommene Bild an ein Objekterkennungssystem zu senden, um Informationen zu erhalten, die dem Produkt zugeordnet sind, oder visuell ähnliche Produkte zu finden. In einigen zusätzlichen Szenarien kann ein Benutzer ein Bild einer Szene aufnehmen und eine Darstellung eines Produkts kann durch Augmented Reality in die Szene projiziert werden, sodass der Benutzer das Produkt als Teil der Szene visualisieren kann.
-
Figurenliste
-
Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes gilt:
- 1 veranschaulicht ein Beispiel gemäß verschiedenen Ausführungsformen, in dem ein Benutzer ein Bild eines Objekts aufnehmen kann, um nach Produkten zu suchen, die dem Objekt visuell ähnlich sind.
- 2A veranschaulicht eine beispielhafte Schnittstelle der Rechenvorrichtung gemäß verschiedenen Ausführungsformen, die ein Bild oder eine Live-Kameraansicht des Objekts zum Durchführen einer Bilderkennung aufnimmt.
- 2B veranschaulicht eine beispielhafte Schnittstelle der Rechenvorrichtung gemäß verschiedenen Ausführungsformen, die Suchergebnisse basierend auf dem aufgenommenen Bild des Objekts bereitstellt.
- 3 veranschaulicht eine beispielhafte Pipeline eines Bilderkennungsprozesses gemäß verschiedenen Ausführungsformen.
- 4A veranschaulicht eine beispielhafte Schnittstelle gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „inaktives“ Verhalten aufweisen.
- 4B veranschaulicht eine beispielhafte Schnittstelle gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein Verhalten „Objekt erfasst“ aufweisen.
- 4C veranschaulicht eine beispielhafte Schnittstelle gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „Fehler“-Verhalten aufweisen.
- 4D veranschaulicht eine beispielhafte Schnittstelle gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „Führungs“-Verhalten aufweisen.
- 4E veranschaulicht eine beispielhafte Schnittstelle gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein Verhalten „Oberfläche erfasst“ in einer Augmented-Reality-Anwendung aufweisen.
- 4F veranschaulicht eine beispielhafte Schnittstelle gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „Render“-Verhalten in einer Augmented-Reality-Anwendung aufweisen.
- 5 veranschaulicht eine beispielhafte Umgebung gemäß verschiedenen Ausführungsformen, in der verschiedene Ausführungsformen umgesetzt sein können.
- 6 veranschaulicht ein Flussdiagramm, das einen beispielhaften Prozess zum Bereitstellen eines visuellen Feedbacks zu Bilderkennungsprozesszuständen gemäß verschiedenen Ausführungsformen beschreibt.
- 7 veranschaulicht ein Flussdiagramm, das einen visuellen Suchprozess mit visuellem Feedback über Verhalten von visuellen Markern gemäß verschiedenen Ausführungsformen beschreibt.
- 8 veranschaulicht ein Flussdiagramm, das einen Augmented-Reality-Prozess mit visuellem Feedback über Verhalten von visuellen Markern gemäß verschiedenen Ausführungsformen beschreibt.
- 9 veranschaulicht eine beispielhafte Rechenvorrichtung, die gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
- 10 veranschaulicht einen Satz beispielhafter Komponenten einer oder mehrerer Vorrichtungen der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 11 veranschaulicht eine beispielhafte Umgebung zum Umsetzen von Aspekten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung werden verschiedene Ausführungsformen beschrieben. Zu Zwecken der Erläuterung werden spezifische Konfigurationen und Details dargelegt, um ein umfassendes Verständnis der Ausführungsformen bereitzustellen. Dem Fachmann ist jedoch ersichtlich, dass die Ausführungsformen ohne die konkreten Details umgesetzt werden können. Ferner können hinlänglich bekannte Merkmale weggelassen oder vereinfacht werden, damit die beschriebene Ausführungsform nicht unklar wird.
-
Systeme und Verfahren gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung können einen oder mehrere der oben genannten und andere Mängel überwinden, die bei herkömmlichen Ansätzen zur Bilderkennung auftreten. Insbesondere stellen verschiedene Ausführungsformen visuelles und intuitives Benutzerfeedback zu dem Status eines Bilderkennungsabtastprozesses durch animierte visuelle Marker bereit, deren Verhalten (z. B. Bewegung, Farbe, Form, Position) sich gemäß dem aktuellen Zustand des Bilderkennungsabtastprozesses ändert, wodurch die Benutzer über etwaige Anpassungen (z. B. Beleuchtung, Kameraposition, Stabilität), die vorgenommen werden müssen, informiert werden und außerdem die Aufmerksamkeit der Benutzer während Latenz aufrecht erhalten wird.
-
Um beispielsweise eine visuelle Suche nach Produkten in einem elektronischen Katalog basierend auf einem visuell ähnlichen physischen Objekt zu initiieren, kann eine Kamera einer Rechenvorrichtung, wie etwa eines Smartphones, dazu verwendet werden, eine Live-Kameraansicht (oder einzelne Bilder) einer Szene, die das physische Objekt beinhaltet, aufzunehmen. Gleichermaßen kann die Kamera dazu verwendet werden, eine Augmented-Reality-Ansicht eines Produkts in einem physischen Raum zu erzeugen, um eine Live-Kameraansicht einer Szene aufzunehmen, die den Raum beinhaltet. Um diese visuellen Such- und Augmented-Reality-Funktionen auszuführen, werden die Bilddaten, die die von der Kamera aufgenommene Szene darstellen, unter Verwendung von Bilderkennungstechniken verarbeitet, um Merkmalsdaten zu extrahieren, die dazu verwendet werden, die Szene, wie etwa die Objekte oder Oberflächen von Interesse, zu „verstehen“ und die visuelle Suche oder Positionierung des Augmented-Reality-Produkts zu ermöglichen.
-
Während der Benutzer die Szene unter Verwendung der Rechenvorrichtung abtastet, wird der Bilderkennungsprozess (z. B. visuelle Suche, Augmented Reality) im „Backend“ ausgeführt, entweder auf der Rechenvorrichtung oder einem zugeordneten Server. Der Prozess kann mehrere mögliche Zustände durchlaufen, wie etwa u. a. Initialisierung, Suche nach Bildmerkmalen, instabiler Frame, schlechte Beleuchtung, Durchsuchen des Katalogs, Netzwerkverbindungsprobleme. Einige dieser Zustände (z. B. Initialisierung, Suche) können eine bestimmte Verarbeitungszeit in Anspruch nehmen, wodurch Latenz verursacht wird. Einige der Zustände (z. B. instabiler Frame, schlechte Beleuchtung, Verbindungsprobleme) können schlechte Abtastbedingungen verursachen, die vom Benutzer korrigiert werden können, wenn der Benutzer auf derartige Probleme aufmerksam gemacht wird. Somit wäre es vorteilhaft, den Benutzer auf visuell anregende und informative Weise über den aktuellen Zustand des Abtastprozesses informieren zu können, um die Aufmerksamkeit des Benutzer während Verarbeitungslatenz aufrecht zu erhalten und den Benutzer außerdem darüber zu informieren, ob Anpassungen vorgenommen werden müssen, um die Abtastbedingungen zu verbessern.
-
Somit stellen verschiedene Ausführungsformen der vorliegenden Offenbarung Systeme und ein Verfahren für visuelle Suche und Augmented Reality bereit, bei denen eine auf der Schnittstelle als Overlay erscheinende Menge von visuellen Bildschirm-Markern (z. B. kleine animierte Blasen) den aktuellen Zustand eines Bilderkennungsprozesses (d. h. Abtastprozesses) signalisiert. Insbesondere kann die Menge von visuellen Markern eine Vielzahl von Verhalten annehmen, bei denen ein bestimmtes Verhalten einen bestimmten Zustand anzeigt. Somit kann der Benutzer anhand des Verhaltens der Menge von visuellen Markern den aktuellen Zustand des Abtastprozesses erkennen. Das Verhalten der Menge von visuellen Markern kann dem Benutzer auch empfohlene Maßnahmen anzeigen, die ergriffen werden können, um die Abtastbedingung zu verbessern oder den Prozess auf andere Weise zu erleichtern. In verschiedenen Ausführungsformen kann sich „Verhalten“ der Menge von visuellen Markern auf eine beliebige Kombination von Aussehen (z. B. Farbe, Opazität, Größe, Form), Bewegung individueller Marker, kollektiver oder organisierter Bewegung von Gruppen von Markern, Animationen, Physik, Anzahl und Verteilung von Markern und dergleichen beziehen. In verschiedenen Ausführungsformen kann sich die Menge von visuellen Bildschirm-Markern entsprechend bewegen oder nahtlos von einem Verhalten zu einem anderen Verhalten übergehen, wenn der Abtastprozess von einem Zustand zu einem anderen Zustand übergeht. Wenngleich visuelle Suchanwendungen, auch als bildbasierte Suche bekannt, und Augmented-Reality-Anwendungen in dieser Schrift als beispielhafte Anwendungen der vorliegenden Techniken verwendet werden, können viele andere kamerabasierte Anwendungen die vorliegenden Techniken verwenden, wie etwa u. a. Teileerkennung, virtuelle Mode oder virtuelles Make-up, visuelle Kreditkartenerkennung, Barcode-Scannen, Lesen von Verpackungsetiketten. In einigen Ausführungsformen kann eine Vielzahl derartiger Anwendungen bereitgestellt sein, bei denen eine Zuordnung zwischen den verschiedenen Bilderkennungszuständen und der Vielzahl von Verhalten virtueller Marker über eine Vielzahl derartiger Bilderkennungsprozesse hinweg konsistent ist. Verschiedene andere Anwendungen, Prozesse und Verwendungen werden nachstehend in Bezug auf die verschiedenen Ausführungsformen vorgestellt, von denen jede den Betrieb und die Leistung der Rechenvorrichtung(en) verbessert, auf der/denen sie umgesetzt sind.
-
1 veranschaulicht ein beispielhaftes Szenario 100 gemäß verschiedenen Ausführungsformen, in dem ein Benutzer 102 ein Bild eines Objekts aufnehmen kann, um nach Produkten zu suchen, die dem Objekt visuell ähnlich sind. Wenngleich eine tragbare Rechenvorrichtung (z. B. ein Smartphone oder ein Tablet-Computer) gezeigt ist, versteht es sich, dass verschiedene andere Arten von elektronischen Vorrichtungen, die Eingaben bestimmen und verarbeiten können, ebenfalls gemäß verschiedenen Ausführungsformen verwendet werden können. Diese Vorrichtungen können beispielsweise u. a. Notebook-Computer, Personal Digital Assistants, E-Book-Reader, Mobiltelefone, Videospielkonsolen oder -controller, Smart-TVs, Set-Top-Boxen, einen tragbaren Computer (z. B. eine Smart-Watch oder -Brille) und tragbare Mediaplayer usw. beinhalten. In diesem Beispiel weist die Rechenvorrichtung 104 mindestens eine Kamera 106 (oder einen anderen Bildaufnahmesensor oder ein anderes Bildaufnahmeelement) auf, die zum Ausführen von Funktionen, wie etwa Bild- und/oder Videoaufnahme betrieben werden kann. Jede Kamera kann beispielsweise eine ladungsgekoppelte Vorrichtung (charge-coupled device - CCD), ein Bewegungserfassungssensor oder ein Infrarotsensor sein oder kann eine andere zweckmäßige Bildaufnahmetechnologie verwenden. Der Benutzer kann die Vorrichtung so positionieren, dass sich ein oder mehrere Gegenstände von Interesse 112 in einem Sichtfeld 108 von mindestens einer Kamera 106 an der Rechenvorrichtung befinden. Die Kamera kann Videos aufnehmen, sodass eine „Live“-Ansicht der aufgenommenen Videoinformationen auf einem Anzeigebildschirm der Rechenvorrichtung angezeigt werden kann, wie in 2A veranschaulicht. In anderen Ausführungsformen könnte die Kamera ein Standbild 124 aufnehmen, das eine Darstellung des Gegenstands/der Gegenstände von Interesse zeigt. In zumindest einigen Ausführungsformen können das Bild und/oder ein Frame des Videos analysiert werden, wie etwa durch Analysieren auf der Vorrichtung oder Hochladen über ein Netzwerk zu einem Dienst zum Analysieren von Bildinhalten.
-
2A veranschaulicht eine beispielhafte Schnittstelle der Rechenvorrichtung 200 gemäß verschiedenen Ausführungsformen, die ein Bild oder eine Live-Kameraansicht eines Objekts 204 zum Durchführen einer Bilderkennung aufnimmt. In verschiedenen Ausführungsformen stellt die Schnittstelle 202 eine Live-Kameraansicht der Szene bereit, die das durch die Kamera der Rechenvorrichtung 200 aufgenommene Objekt 204 beinhaltet. Verschiedene Bilderkennungsprozesse und -techniken können dazu verwendet werden, die von der Kamera aufgenommenen Bilddaten zu verarbeiten und zu analysieren, um die vorstehend beschriebene visuelle Suche oder Augmented-Reality-Produktansicht durchzuführen. In einigen Ausführungsformen kann das Bild einer Vorverarbeitung unterzogen werden, beispielsweise zum Schärfen, Anpassen von Farbfaktoren usw., um die Qualität der Bilddaten zu verbessern. Zum Beispiel kann das Bild verbessert werden, um eine Farbe des Gegenstandes zu zeigen, die näher an dem liegt, was ein Mensch wahrnehmen würde, der den Gegenstand im wirklichen Leben betrachtet. Das Bild kann auch so verbessert werden, dass bestimmte Merkmale, wie etwa Konturen, Linien, Texturen und Text, die in dem tatsächlichen Gegenstand vorkommen, entweder visuell oder in einem computerlesbaren Datenformat besser sichtbar werden.
-
In einigen Fällen können beispielsweise Lichtverhältnisse, die zum Zeitpunkt der Bildaufnahme vorliegen, die Temperatur oder Intensität einer bestimmten Farbe, die aufgenommen wird, sowie den Kontrast zwischen bestimmten Konturen beeinflussen. Beispielsweise kann ein bestimmter Blauton, wie er in einem Bild aufgenommen wurde, wenn er an einem wolkigen Tag abgebildet wird, wahrnehmungsmäßig anders sein als wenn er an einem sonnigen Tag abgebildet wird. In einigen Ausführungsformen kann der Benutzer mit der Softwareanwendung interagieren, um ein Beleuchtungsmodell auszuwählen, das auf die Art der Lichtverhältnisse kalibriert ist, die zum Zeitpunkt der Bildaufnahme vorliegen. Beispielsweise kann der Benutzer zwischen Beleuchtungsmodellen wählen, die für fluoreszierendes Licht, bewölktes Wetter, sonniges Wetter, natürliches Licht usw. kalibriert sind. Die im Bild erfassten Farben können basierend auf dem ausgewählten Beleuchtungsmodell entsprechend angepasst, z. B. neu kalibriert werden.
-
In einigen Ausführungsformen können ISO-Einstellungen (International Standards Organization) zum Messen der Lichtempfindlichkeit verwendet werden, um die Farbeinstellungen automatisch anzupassen. Beispielsweise kann eine Kamera ihre ISO-Einstellungen in Abhängigkeit von den Lichtverhältnissen, die von einem Lichtsensor in der Kamera bestimmt wurden, automatisch anpassen. Eine niedrigere ISO-Einstellung kann hohe Lichtverhältnisse anzeigen, während eine höhere ISO-Einstellung niedrige Lichtverhältnisse anzeigen kann. Diese Beobachtung kann beispielsweise von der Website oder Anwendung, die auf der Benutzervorrichtung ausgeführt wird, dazu verwendet werden, die Farbeinstellungen so anzupassen, dass die Farben in dem aufgenommenen Bild den vom Benutzer tatsächlich wahrgenommenen Farben visuell ähnlich sind. In einigen Ausführungsformen kann die Website oder Anwendung diese Einstellungen bereitstellen oder bestimmte derartige Einstellungen, die in Anbetracht von erfassten Umgebungslichtverhältnissen und des Motivs des Bilds als optimal bestimmt werden, automatisch auf das Bild anwenden, wenn das Bild aufgenommen wird.
-
Sobald das Bild aufgenommen wurde und in einigen Ausführungsformen, nachdem es wie vorstehend erwähnt einer Vorverarbeitung unterzogen wurde, können Attribute oder Merkmale der Szene, wie etwa Objekte, Oberflächen und Räume, aus den Bilddaten durch verschiedene Modelle, einschließlich verschiedener Computervisions- und Bildverarbeitungstechniken und - prozesse, bestimmt werden. Modelle für maschinelles Lernen, wie etwa beispielsweise neuronale Netze und andere auf maschinellem Lernen basierende Ansätze, können auf zweckmäßigen Trainingsdaten zum Erfassen und Erkennen verschiedener Arten von Objekten und Objektmerkmalen trainiert werden. In einigen Ausführungsformen kann das neuronale Netz unter Verwendung von Bildern aus einem Katalog trainiert werden, die Metadaten, Beschreibung, Klassifizierung oder andere Daten beinhalten, die zum Identifizieren verschiedener Objekte und Objektmerkmale verwendet werden können. Beispielsweise kann in einigen Ausführungsformen dann eine Lokalisierung durchgeführt werden, um den relevanten Bereich der Szene zu bestimmen, der einem Objekt (einschließlich Räumen oder Oberflächen) von Interesse zugeordnet ist. In einigen Ausführungsformen kann ein herkömmlicher Trainingsprozess mit dem tiefen neuronalen Netz verwendet werden, wenngleich verschiedene andere Ansätze verwendet werden können, die ebenfalls bestimmte Vorteile bereitstellen können. In einigen Ausführungsformen können außerdem die vollständig verbundenen Schichten des Netzes analysiert werden, ohne dass das Klassifizierungsergebnis der endgültigen Schicht analysiert werden muss. Zwischenmerkmale aus dem Netz können in zumindest einigen Ausführungsformen für Ähnlichkeitsberechnungen verwendet werden. Die Techniken zum Bestimmen von Attributen können auf maschinellem Lernen basierende Ansätze beinhalten, wie etwa jene, die Convolutional Neural Networks, Merkmalserkennungs- und -abgleichtechniken (z. B. Filtertechniken) oder eine Kombination von beiden und/oder andere Techniken verwenden. Details bezüglich solcher Modelle und wie die Modelle trainiert oder konfiguriert werden können, um eine derartige Funktionalität bereitzustellen, werden nachstehend ausführlicher dargestellt, damit die vorliegende Diskussion nicht unklar wird. In verschiedenen Ausführungsformen einer visuellen Suchanwendung können die Merkmalsdaten dazu verwendet werden, Produkte in einem elektronischen Katalog zu identifizieren, die dem Objekt von Interesse visuell ähnlich, nachdem das Objekt von Interesse in der Szene identifiziert wurde und Objekterkennungstechniken durchgeführt wurden, um bestimmte dem Objekt zugeordnete Merkmalsdaten zu extrahieren. Dies kann durch verschiedene Techniken durchgeführt werden. Beispielsweise kann in einigen Ausführungsformen eine K-Nearest-Neighbors-(KNN-)Technik verwendet werden, bei der ein Merkmalsvektor des Objekts von Interesse mit Merkmalsvektoren von Produkten (d. h. Produktbildern) in dem elektronischen Katalog verglichen werden kann, und ein Maß für die visuelle Ähnlichkeit zwischen dem Objekt von Interesse und einem Produkt basierend auf einem Abstand zwischen ihren jeweiligen Merkmalsvektoren bestimmt werden. Die Produkte können dann basierend auf der bestimmten visuellen Ähnlichkeit als Suchergebnisse geordnet und/oder ausgewählt werden. Dies ist in 2B veranschaulicht, die eine beispielhafte Schnittstelle der Rechenvorrichtung 220 gemäß verschiedenen Ausführungsformen veranschaulicht, die Suchergebnisse 222 basierend auf dem aufgenommenen Bild des Objekts bereitstellt.
-
In verschiedenen Ausführungsformen einer Augmented-Reality-Produktansicht-Anwendung kann ein grafisches Rendering eines Produkts erzeugt und einem System oder einer vom Benutzer ausgewählten Position der Szene überlagert werden, nachdem eine Oberfläche oder ein Raum in einer Szene durch Bilderkennung identifiziert wurde. Beispielsweise kann das grafische Rendering des Produkts proportional zu anderen Objekten in der Szene dimensioniert und so positioniert werden, dass die Illusion bereitgestellt wird, dass das Objekt auf einer bestimmten Oberfläche in der Szene platziert ist. In einigen Ausführungsformen kann ein Benutzer das grafische Rendering des Produkts ziehen, um es in verschiedenen Positionen zu platzieren oder die grafische Darstellung drehen, um verschiedene Winkel des Produkts zu betrachten. Somit können sich die Größe, die Position oder der Betrachtungswinkel des grafischen Rendering des Produkts gemäß der Benutzereingabe ändern.
-
3 veranschaulicht eine beispielhafte Pipeline 300 eines Bilderkennungsprozesses gemäß verschiedenen Ausführungsformen. Während eines Bilderkennungsprozesses, wie etwa eines visuellen Suchprozesses oder eines Augmented-Reality-Produktbetrachtungsprozesses, können verschiedene Zustände auftreten, von denen einige vorstehend erwähnt wurden. Beispielsweise tritt ein Initialisierungszustand 302 auf, wenn ein Benutzer die Kamerafunktion innerhalb einer visuellen Such- oder Augmented-Reality-Anwendung öffnet, während dem der Empfang von Bilddaten beginnt und der Algorithmus die Analyse der Bilddaten vorbereitet. In diesem Zustand wäre es vorteilhaft, dem Benutzer anzuzeigen, dass die Funktion initialisiert wurde. In einigen Ausführungsformen kann der Bilderkennungsprozess in einen inaktiven Zustand übergehen, der signalisiert, dass die Live-Kameraansicht der Szene oder die Abtastbedingung nicht gut genug ist, um eine Bildanalyse der Bilddaten durchzuführen. Beispielsweise kann der Bilderkennungsprozess in den inaktiven Zustand übergehen, wenn der Frame oder die Kamera nicht stabil genug ist und der Kamerafokus nicht fest auf bestimmte Objekte in der Kameraansicht gerichtet werden kann. Der Bilderkennungsprozess kann auch in den inaktiven Zustand übergehen, wenn nicht genügend Licht vorhanden ist, unter anderen schlechten Bildbedingungen, die eine angemessene Bildanalyse verhindern. Wenn die Bildbedingungen angemessen sind, kann der Bilderkennungsprozess in den Analysezustand 306 übergehen, in dem der Frame stabilisiert wird und das Bildanalysemodul damit beginnt, die Bilddaten zu analysieren, um Objekte, wie etwa bestimmte Ecken, Kanten oder andere Merkmale, zu erfassen. Es wäre vorteilhaft, dem Benutzer visuell anzuzeigen, dass das System arbeitet und das Bild analysiert wird. In einigen Ausführungsformen können mehrere Objekte erfasst werden. Somit wäre es vorteilhaft anzugeben, welche Objekte von der Kamera erfasst werden, damit der Benutzer auswählen kann, auf welches Objekt in der Kameraansicht fokussiert werden soll.
-
In einigen Ausführungsformen kann der Bilderkennungsprozess auch in einen Fehlerzustand 308 übergehen, in dem der Prozess gestört ist. Dies kann durch Verbindungsprobleme oder andere clientseitige, serverseitige oder kanalbasierte Systemprobleme verursacht werden, die dazu führen, dass der Prozess angehalten oder gestoppt wird. Der Bilderkennungsprozess kann an beliebigen Punkten in den Fehlerzustand 308 übergehen und in einigen Ausführungsformen kann der Prozess, wenn die Verbindung wiederhergestellt ist, den Zustand bevor er in den Fehlerzustand 308 überging wieder aufnehmen, was in diesem Beispiel der Analysezustand 306 ist. Der Prozess kann dann in den erfassten Zustand 310 übergehen, in dem ein Objekt von Interesse in der Kameraansicht vollständig erfasst und sein Merkmal extrahiert wurde. Dies können verschiedene Arten von Objekten in verschiedenen Anwendungen und Anwendungsfällen sein. Beispielsweise kann in einer visuellen Suchanwendung das erfasste Objekt ein Objekt sein, das der Benutzer als visuelle Suchabfrage verwenden möchte, um nach visuell ähnlichen Produkten zu suchen.
-
In einer Augmented-Reality-Anwendung kann das erfasste Objekt eine Oberfläche sein, auf der ein Augmented-Reality-Modell positioniert werden kann. Insbesondere kann beispielsweise bei einer visuellen Suchanwendung 324, nachdem das Objekt von Interesse erfasst wurde, der Bilderkennungsprozess in einen Suchzustand 312 übergehen, in dem eine Datenbank von Produktbildern basierend auf visueller Ähnlichkeit mit dem erfassten Objekt durchsucht wird. Dann werden die Ergebnisse in einem Zustand Ergebnisse laden 314 auf die Benutzervorrichtung geladen. In einer Augmented-Reality-Anwendung 326 geht der Prozess nach dem Erfassen einer Oberfläche oder eines Raums 310 in einen Positionsbestimmungszustand 316 über, in dem eine Position auf der Oberfläche zum Rendern des Augmented-Reality-Modells bestimmt wird. In einigen Ausführungsformen wird die Position automatisch bestimmt oder kann basierend auf einer vom Benutzer ausgewählten Position bestimmt werden. Der Prozess geht dann in einen Modellrenderzustand 318 über, in dem das Modell an der bestimmten Position gerendert wird. Wenn das Modell vollständig gerendert ist, geht der Prozess in einen Zustand Modell gerendert 320 über, der das gerenderte Modell zeigt. In einigen Ausführungsformen geht der Prozess in einen Benutzereingabezustand 322 über, in dem das Modell auf die Benutzereingabe reagiert, wenn eine Benutzereingabe empfangen wird, wie etwa eine Berührung oder eine Modellmanipulation.
-
4A veranschaulicht eine beispielhafte Schnittstelle 400 gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „inaktives“ Verhalten aufweisen. Wie bereits erwähnt kann in einigen Ausführungsformen der Bilderkennungsprozess in einen inaktiven Zustand 402a übergehen, der signalisiert, dass die Live-Kameraansicht der Szene oder die Abtastbedingung nicht gut genug ist, um eine Bildanalyse der Bilddaten durchzuführen. Beispielsweise kann der Bilderkennungsprozess in den inaktiven Zustand übergehen, wenn der Frame oder die Kamera nicht stabil genug ist und der Kamerafokus nicht fest auf bestimmte Objekte in der Kameraansicht gerichtet werden kann. Der Bilderkennungsprozess kann auch in den inaktiven Zustand übergehen, wenn nicht genügend Licht vorhanden ist, unter anderen schlechten Bildbedingungen, die eine angemessene Bildanalyse verhindern. Wenn sich der Bilderkennungsprozess in dem inaktiven Zustand 402a befindet, ist die Menge von visuellen Markern dazu konfiguriert, ein „inaktives“ Verhalten 404a aufzuweisen, das dem inaktiven Zustand 402a entspricht. Beispielsweise können visuelle Marker kleine Blasen sein, die auf der Live-Kameraansicht als Overlay erscheinen, und das „inaktive“ Verhalten wird auf der Schnittstelle 406a veranschaulicht. In diesem Beispiel kann das „inaktive“ Verhalten der visuellen Marker 412a so beschrieben werden, dass die visuellen Marker über die Live-Kameraansicht 406a verstreut sind, wie auf der Benutzervorrichtung 408b aus 4A gezeigt. In anderen Ausführungsformen des „inaktiven“ Verhaltens können die visuellen Marker ein anderes Aussehen oder einen anderen Stil aufweisen.
-
4B veranschaulicht eine beispielhafte Schnittstelle 420 gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein Verhalten „Objekt erfasst“ aufweisen. Der Prozess kann in einen Zustand Objekt erfasst 402b übergehen, in dem ein Objekt 410b von Interesse in der Kameraansicht vollständig erfasst wurde und seine Merkmale extrahiert werden. Wenn sich der Bilderkennungsprozess in dem Zustand Objekt erfasst 402b befindet, ist die Menge von visuellen Markern dazu konfiguriert, ein Verhalten „Objekt erfasst“ 404b aufzuweisen, das dem Zustand Objekt erfasst 402b entspricht. Beispielsweise kann das Verhalten „Objekt erfasst“ 404b die visuellen Marker 412b so veranschaulichen, dass sie das erfasste Objekt 410b in der Live-Kameraansicht 406b umgeben, wie auf der Benutzervorrichtung 408b aus 4B gezeigt. In anderen Ausführungsformen von „Objekt erfasst“ können die visuellen Marker ein anderes Aussehen oder einen anderen Stil aufweisen.
-
4C veranschaulicht eine beispielhafte Schnittstelle 430 gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „Fehler“-Verhalten aufweisen. In einigen Ausführungsformen kann der Bilderkennungsprozess auch in einen Fehlerzustand 402c übergehen, in dem der Prozess gestört ist. Dies kann durch Verbindungsprobleme oder andere clientseitige, serverseitige oder kanalbasierte Systemprobleme verursacht werden, die dazu führen, dass der Prozess angehalten oder gestoppt wird. Wenn sich der Bilderkennungsprozess in dem Fehler-Zustand 402c befindet, ist die Menge von visuellen Markern dazu konfiguriert, ein „Fehler“-Verhalten 404c aufzuweisen, das dem Fehlerzustand 402c entspricht. Beispielsweise kann das „Fehler“-Verhalten 404c die visuellen Marker 412c so veranschaulichen, dass sie von dem Objekt und außer Sicht fallen und schließlich die Live-Kameraansicht 406c zurücklassen, wie auf der Benutzervorrichtung 408c aus 4C gezeigt. In anderen Ausführungsformen des „Fehler“-Verhaltens können die visuellen Marker ein anderes Aussehen oder einen anderen Stil aufweisen.
-
4D veranschaulicht eine beispielhafte Schnittstelle 440 gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „Führungs“-Verhalten aufweisen. Der Prozess kann in einen Führungszustand 402d übergehen, in dem eine Anpassung vorgenommen werden muss, um beispielsweise die Qualität der Kameraansicht zu verbessern. Beispielsweise kann erfasst werden, dass die Umgebungsbeleuchtung zu schwach ist und der Benutzer die Taschenlampenfunktion einschalten sollte. Somit wäre es vorteilhaft, den Benutzer visuell anzuleiten, eine derartige Handlung zu ergreifen. Wenn sich der Bilderkennungsprozess in dem Zustand Objekt erfasst 402d befindet, ist die Menge von visuellen Markern dazu konfiguriert, ein „Führungs“-Verhalten 404d aufzuweisen, das dem Führungszustand 402d entspricht. Beispielsweise kann das „Führungs“-Verhalten 404d die visuellen Marker 412d so veranschaulichen, dass sie an der Position auf der Schnittstelle 406d gesammelt sind, um ein Schnittstellenelement, wie etwa eine Taschenlampen-Taste 414, hervorzuheben, um die Aufmerksamkeit des Benutzers auf das Element zu lenken, wie auf der Benutzervorrichtung 408d aus 4D gezeigt. In anderen Ausführungsformen der „Führung“ können die visuellen Marker ein anderes Aussehen oder einen anderen Stil aufweisen.
-
4E veranschaulicht eine beispielhafte Schnittstelle 450 gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein Verhalten „Oberfläche erfasst“ in einer Augmented-Reality-Anwendung aufweisen. Der Prozess kann dann in den Zustand Oberfläche erfasst 402e übergehen, in dem ein Objekt von Interesse in der Kameraansicht vollständig erfasst und sein Merkmal extrahiert wurde. Dies können verschiedene Arten von Objekten in verschiedenen Anwendungen und Anwendungsfällen sein. In einer Augmented-Reality-Anwendung kann das erfasste Objekt eine Oberfläche sein, auf der ein Augmented-Reality-Modell positioniert werden kann. Wenn sich der Bilderkennungsprozess in dem Zustand Oberfläche erfasst 402e befindet, ist die Menge von visuellen Markern 412e dazu konfiguriert, ein Verhalten „Oberfläche erfasst“ 404e aufzuweisen, das dem Zustand Oberfläche erfasst 402e entspricht. Beispielsweise kann das Verhalten „Oberfläche erfasst“ 404e die visuellen Marker so veranschaulichen, dass sie über die erfasste Oberfläche 41 0e in der Live-Kameraansicht 406e verstreut sind, wie auf der Benutzervorrichtung 408e aus 4E gezeigt. In anderen Ausführungsformen des „Fehler“-Verhaltens können die visuellen Marker ein anderes Aussehen oder einen anderen Stil aufweisen.
-
4F veranschaulicht eine beispielhafte Schnittstelle 460 gemäß verschiedenen Ausführungsformen, die eine Live-Kameraansicht und eine Menge von visuellen Markern zeigt, die ein „Render“-Verhalten in einer Augmented-Reality-Anwendung aufweisen. Der Prozess kann in einen Modellrenderzustand 402f übergehen, in dem das Modell an einer bestimmten Position gerendert wird. In einigen Ausführungsformen kann das Rendern einige Zeit dauern, was zu einer gewissen Latenz führt. Somit wäre es vorteilhaft, dem Benutzer visuell anzuzeigen, dass das Rendern erfolgt und das Modell bald angezeigt wird. Wenn sich der Bilderkennungsprozess in dem Zustand Objekt erfasst 402f befindet, ist die Menge von visuellen Markern dazu konfiguriert, ein „Modellrender“-Verhalten 404f aufzuweisen, das dem Modellrenderzustand 402f entspricht. Beispielsweise kann das „Modellrender-‟ Verhalten 404f die visuellen Marker 412f so veranschaulichen, dass sie an der Position, in der das Modell in der Live-Kameraansicht 406f gerendert wird, gesammelt sind, wie auf der Benutzervorrichtung 408f aus 4F gezeigt. In anderen Ausführungsformen von „Objekt erfasst“ können die visuellen Marker ein anderes Aussehen oder einen anderen Stil aufweisen.
-
Wie bereits erörtert können die visuellen Marker ihr Verhalten und ihre Bewegung gemäß den verschiedenen Zuständen des Bilderkennungsprozesses ändern. Die vorstehenden Beispiele veranschaulichten verschiedene Stufen des Bilderkennungsprozesses. Ein Bilderkennungsprozess kann jedoch neben Stufen auch andere mögliche Zustände umfassen, wie etwa solche, die auf der Art der erfassten Szenen und den erfassten Objekten basieren. Beispielsweise kann das Erfassen eines Objekts in einem visuellen Suchprozess und das Erfassen einer Oberfläche in einem Augmented Reality-Prozess dieselbe Stufe in einem allgemeinen Bilderkennungsprozess sein. Da die Szenen jedoch unterschiedlich sind, können die beiden als zwei unterschiedliche Zustände bezeichnet werden und daher ein unterschiedliches Verhalten der visuellen Marker hervorrufen. Zusätzliche Beispiele für Arten von Szenen beinhalten u. a. eine überfüllte Szenen, eine verschwommene Szene, eine leere Szene, die unterschiedliche Verhalten von den visuellen Markern hervorrufen können, um dem Benutzer ein Feedback und eine Anzeige bereitzustellen. Wenngleich visuelle Suchanwendungen, auch als bildbasierte Suche bekannt, und Augmented-Reality-Anwendungen in dieser Schrift als beispielhafte Anwendungen der vorliegenden Techniken verwendet werden, können viele andere kamerabasierte Anwendungen die vorliegenden Techniken verwenden, wie etwa u. a. Teileerkennung, virtuelle Mode oder virtuelles Make-up. Beispielsweise können die vorliegenden Techniken bei der Bildverarbeitung von Kreditkarten, Barcodes, Stadtlandschaften, Verpackungsetiketten und dergleichen verwendet werden.
-
In verschiedenen Ausführungsformen kann das Verhalten der visuellen Marker auf der bestimmten Anwendung und dem Objekt basieren, von dem erwartet wird, dass es von der Kamera aufgenommen wird. Beispielsweise kann in Anwendungen, in denen die Kamera dazu verwendet wird, ein Bild eines Gegenstands mit einer bekannter Form aufzunehmen, wie etwa u. a. einer Kreditkarte, eines Versandetiketts, eines Blatt Papiers oder eines Barcodes, die Menge von visuellen Markern einen Rahmen oder einen Umriss der bekannten Form bilden. Dies kann dem Benutzer eine Führung bereitstellen, um die Kamera in Bezug auf das Objekt so zu positionieren, dass das Objekt im Wesentlichen mit dem durch die visuellen Marker gebildeten Rahmen ausgerichtet ist oder in diesen passt, wenn er auf dem Bildschirm der Vorrichtung erscheint. Dies ermöglicht Konsistenz und höhere Qualität der Bildaufnahmen, was die Bilderkennung des Objekts verbessert.
-
Wie bereits erwähnt beinhaltet das Verhalten der visuellen Marker Parameter, wie etwa u. a. Größe, Form, Farbe und Opazität einzelner visueller Marker, Größe und Form der Menge von visuellen Markern. In verschiedenen Ausführungsformen kann das Verhalten der visuellen Marker auch Animationen beinhalten. Beispielsweise können sich die Größe, Form, Farbe und Opazität einzelner visueller Marker im Laufe der Zeit ändern, z. B. standardmäßig über die Quelle des Bildschirmlebenszyklus eines Markers oder wenn bestimmte Dinge geschehen oder als Reaktion auf das Auftreten eines Ereignisses. Beispielsweise kann ein einzelner Marker einen Lebenszyklus aufweisen, in dem der visuelle Marker eingeblendet wird, während seine Größe von eins zu einer maximalen Pixelgröße zunimmt, und ausgeblendet wird. Verschiedene einzelne visuelle Marker können versetzte Lebenszyklen aufweisen, in denen sich die visuellen Marker zu einem bestimmten Zeitpunkt an verschiedenen Punkten im Lebenszyklus befinden können, wodurch ein dynamisches und visuell ansprechendes Erlebnis entsteht. In einigen Ausführungsformen kann die Menge von visuellen Markern kollektiv animiert werden, wobei die Animation einzelner visueller Marker koordiniert wird, um eine Animation der Menge als Ganzes zu bewirken.
-
In verschiedenen Ausführungsformen und insbesondere in Augmented-Reality-Anwendungen kann sich die Größe der einzelnen visuellen Marker oder die Gesamtgröße der Menge von visuellen Markern basierend auf einem Abstand oder Zoom zwischen der Kamera und der Hintergrundoberfläche oder dem Hintergrundraum ändern. Somit kann die Perspektive beibehalten werden, wenn der Benutzer die Kamera in Bezug auf die Hintergrundumgebung bewegt. Wenn ein Benutzer beispielsweise eine Kamera näher an eine Oberfläche bewegt oder hineingezoomt hat, sodass die Oberfläche auf dem Bildschirm größer erscheint, können sich die visuellen Marker ebenfalls und in einem entsprechendem Maß ausdehnen, wodurch die Perspektive erhalten bleibt.
-
5 veranschaulicht eine beispielhafte Umgebung 500, in der verschiedene Ausführungsformen umgesetzt sein können. In diesem Beispiel kann ein Benutzer Bilddaten aus einer Live-Kameraansicht einer Szene, die ein oder mehrere Objekte, eine oder mehrere Oberflächen oder einen oder mehrere Räume beinhaltet, unter Verwendung einer Rechenvorrichtung 502 aufnehmen. In verschiedenen Ausführungsformen können die Bilddaten auch von einem Standbild und/oder Video sein. Eine Anwendung, die auf der Rechenvorrichtung 502 oder einem mit der Rechenvorrichtung 502 kommunizierenden Remote-Server ausgeführt wird, kann die Bilddaten analysieren, um eine Bilderkennung auf den Bilddaten durchzuführen, wie etwa zur visuellen Suche oder Augmented-Reality-Produktbetrachtung. Die Rechenvorrichtung kann mindestens einen Teil der Informationen über mindestens ein zweckmäßiges Netzwerk 504 senden, wozu etwa das Internet, ein lokales Netzwerk (LAN), ein Mobilfunknetzwerk und dergleichen gehören können. Die Anfrage kann an einen zweckmäßigen Dienstanbieter 506 gesendet werden, der einen oder mehrere Dienste, ein oder mehrere Systeme oder eine oder mehrere Anwendungen zum Verarbeiten derartiger Anfragen bereitstellen kann. Zusätzliche oder alternative Elemente und Elemente können in einem derartigen System gemäß den verschiedenen Ausführungsformen verwendet werden. Dementsprechend ist zu beachten, dass zusätzliche Dienste, Anbieter und/oder Elemente in einem derartigen System enthalten sein können und wenngleich einige der Dienste, Anbieter, Elemente usw. als separate Einheiten und/oder Elemente veranschaulicht sind, die veranschaulichte Anordnung als beispielhafte Anordnung bereitgestellt ist und andere dem Fachmann bekannte Anordnungen durch die in dieser Schrift beschriebenen Ausführungsformen in Betracht gezogen werden. Es versteht sich, dass jeder Dienst und/oder jede Komponente eine oder mehrere Rechenkomponenten, wie etwa mindestens einen Server, sowie andere Komponenten beinhalten kann, die für die Bereitstellung von Diensten bekannt sind, wozu eine oder mehrere APIs, ein oder mehrere Datenspeicher und andere zweckmäßige Hardware- und Softwarekomponenten gehören können. Wenngleich die Dienste der Darstellung in 5 nach Teil der Anbieterumgebung 506 sind, versteht es sich, dass einer oder mehrere dieser Identifikationsdienste von Dritten 508 betrieben werden könnten, die diese Dienste dem Anbieter anbieten. In diesem Beispiel wird die Anfrage an einer Netzwerkschnittstellenschicht 510 des Dienstanbieters 506 empfangen.
-
Die Netzwerkschnittstellenschicht kann beliebige zweckmäßige Komponenten beinhalten, die dafür bekannt sind oder dazu verwendet werden, Anfragen aus einem Netzwerk zu empfangen, wozu etwa eine oder mehrere Anwendungsprogrammierschnittstellen (application programming interfaces - APIs) oder andere derartige Schnittstellen zum Empfangen derartiger Anfragen gehören können. Die Netzwerkschnittstellenschicht 510 kann Eigentum des Anbieters sein und von diesem betrieben werden oder vom Anbieter als Teil einer gemeinsam genutzten Ressource oder eines „Cloud“-Angebots genutzt werden. Die Netzwerkschnittstellenschicht kann die Anfrage empfangen und analysieren und bewirken, dass mindestens ein Teil der Informationen in der Anfrage an ein zweckmäßiges System oder einen zweckmäßigen Dienst weitergeleitet wird, wie etwa u. a. einen Inhaltsserver 512 (z. B. einen Webserver oder einen Anwendungsserver), einen Bildanalysedienst 518. Wie beschrieben kann der Bildanalysedienst 518 die Bilddaten der Live-Kameraansicht analysieren, um verschiedene Objekte, Oberflächen und Räume in der Live-Kameraansicht oder -Szene basierend auf visuellen Merkmalen, die aus den Bilddaten extrahiert wurden, zu identifizieren. In einigen Ausführungsformen kann der Bildanalysedienst 518 ein neuronales Netz beinhalten, das ein Convolutional Neural Network (CNN) beinhalten kann. Das CNN kann trainiert werden, um eine Bilderkennung unter Verwendung eines vielfältigen Satzes von Trainingsbildern durchzuführen, die als bestimmte Attribute, wie etwa Farbe, Stil, Länge, Marke, Form, Größe, Materialien, Textur und dergleichen, aufweisend gekennzeichnet sind, durch die das CNN lernt, wie bestimmte Attribute sich auf die Bilder auf ihre jeweiligen Klassifikationen beziehen. In einigen Ausführungsformen kann das neuronale Netz auch unter Verwendung von Trainingsbildern trainiert werden, die als keine bestimmten Attribute aufweisend gekennzeichnet sind, was als Hard Negative Mining bekannt ist, um das neuronale Netz weiter zu trainieren, um zu unterscheiden, ob ein Bild einem bestimmten Attribut zugeordnet ist oder nicht. In bestimmten Ausführungsformen kann das Trainieren eines neuronalen Netzes einen erheblichen Einsatz von Rechenressourcen und Zeit beinhalten, sodass dies einem vorbereitenden Schritt zum Bearbeiten von Suchanfragen entsprechen kann und/oder relativ selten in Bezug auf die Bearbeitung von Suchanfragen und/oder nach einem Zeitplan durchgeführt werden kann. Gemäß einigen Ausführungsformen können sich Trainingsbilder, entsprechende Kennzeichnungen und andere Metadaten in der Trainingsdatenbank befinden, die Daten enthält, die sich auf das Training und die Verfeinerung des Klassifizierungsmodells, einschließlich des neuronalen Netzes, beziehen.
-
Das neuronale Netz kann mehrere Lernschichten in seiner Architektur beinhalten. Beispielsweise kann das neuronale Netz eine Merkmalsextraktionsschicht beinhalten. Ein Trainingsbild aus den Trainingsdaten kann in der Merkmalsextraktionsschicht analysiert werden, um einen Merkmalsvektor aus dem Netzwerk vor der Klassifizierungsschicht zu extrahieren. Dieser Merkmalsvektor beschreibt den in dem Bild gezeigten Inhalt und kann einem oder mehreren der Attribute zugeordnet werden, für deren Bestimmung das Modell trainiert wird. Dieser Prozess kann für jedes der Trainingsbilder umgesetzt werden und die resultierenden Inhaltsmerkmalsvektoren können in einer Trainingsdatenbank gespeichert werden. In verschiedenen Ausführungsformen können die resultierenden Inhaltsmerkmalsvektoren zur verbesserten Verarbeitung komprimiert werden. Beispielsweise können die Inhaltsmerkmalsvektoren, die durch das neuronalen Netz erzeugt werden, Inhaltsmerkmalsvektoren beinhalten, die eine große Anzahl von Abmessungen aufweisen. Die Abmessungen dieser Objektmerkmalsvektoren können durch Anwenden von mindestens einem von Hauptelementanalyse (Principal Element Analysis - PCA) oder mehrdimensionaler Skalierung (Multi-Dimensional Scaling - MDS) verringert werden. Vorteilhafterweise kann ein derartiger Ansatz Speicheranforderungen reduzieren und die Latenzleistung erheblich verbessern. Zusätzlich kann ein derartiger Ansatz Rauschen in dem transformierten Raum entfernen oder zumindest reduzieren, da die Tailing-Abmessungen im Allgemeinen Rauschen entsprechen und das Verwerfen hilft, sich bei der Messung von Ähnlichkeiten auf das Nutzsignal zu konzentrieren.
-
Das neuronale Netz kann weiter trainiert oder verfeinert werden, indem ein Testbild durch das neuronale Netz ohne zugeordnete Attributkennzeichnung verarbeitet und die Klassifizierung des Testbilds durch das neuronale Netz als verschiedenen Attributen zugeordnet validiert wird. Insbesondere kann das neuronale Netz eine Validierung der Klassifizierung als richtig, falsch oder in einigen Ausführungsformen teilweise richtig empfangen. Die Validierung kann durch einen menschlichen Annotator oder durch Zugreifen auf eine gespeicherte Validierungsantwort erfolgen, die dem Testbild zugeordnet ist. In einer Ausführungsform wird der Klassifizierung des Testbilds eine Validierungsbewertung zugewiesen, wobei der Wert der Validierungsbewertung von der Beziehung zwischen den Attributen abhängt, die das neuronale Netzwerk als dem Testbild zugeordnet klassifiziert hat, und den tatsächlichen richtigen Attributen des Testbilds. In einigen Ausführungsformen kann das neuronale Netz so ausgelegt sein, dass es die Validierungsbewertung maximiert oder minimiert und das neuronale Netz kann darin bestärkt werden, das gewünschte Klassifizierungsverhalten durch Auslegung des Validierungsbewertungsschemas aufzuweisen. In bestimmten derartigen Ausführungsformen kann die Validierungsbewertung eine Strafbewertung beinhalten, die vergeben wird, wenn das neuronale Netz eine falsche Klassifizierung bereitstellt. Wenn beispielsweise ein von dem neuronalen Netz bestimmtes Attribut nicht mit dem richtigen Attribut übereinstimmt, das von dem neuronalen Netz bestimmte Attribut jedoch eine starke Assoziation mit dem richtigen Attribut aufweist oder diesem nahe kommt, kann eine niedrigere Strafbewertung zugewiesen werden. In einem derartigen Beispiel kann das neuronale Netz so ausgelegt sein, dass Strafbewertungen minimiert werden.
-
In verschiedenen Ausführungsformen können die Modelle, die dazu verwendet werden, die Attribute zu bestimmen, die dem Gegenstand zum Verbrauch basierend auf dem vom Benutzer bereitgestellten Bild zugeordnet sind, verschiedene Merkmalerkennungs- und Bilderkennungstechniken beinhalten. Beispielsweise kann in einigen Ausführungsformen die Bild- und Texterkennung Unterprozesse, wie etwa Merkmalsextraktion und Merkmalsabgleich beinhalten. Bilder und Text in der realen Welt weisen viele Farben, Formen, Schriftarten auf, die verzerrt, verschwommen, unterschiedlich groß sein können und dergleichen. Merkmalsextraktionstechniken beinhalten verschiedene Ansätze zum Erkennen und Definieren von Eigenschaften eines Bilds oder von Segmenten eines Bilds. Die Ausgabe derartiger Techniken kann manchmal als Merkmalsdeskriptoren oder -signaturen bezeichnet werden. In dieser Schrift sind Merkmale nicht auf Computervisionsmerkmale beschränkt, sondern beinhalten auch andere Arten von Merkmalen, wie etwa Merkmale, Farben, Formen eines Produkts usw. Merkmale können lokal sein (d. h. diskrete Teile eines Bilds beschreiben) oder global (d. h. das gesamte Bild darstellen). Bei der lokalen Merkmalsextraktion können Prozesse Ansätze zum Segmentieren des Bilds beinhalten. Derartige Ansätze können auf aktiven Konturen (z. B. Snakes, Scissors, Level Sets), graphenbasierter Zusammenführung (z. B. Wasserscheide, divisivem Clustering, agglomerativem Clustering, graphenbasierter Segmentierung, probabilistischer Aggregation), Mittelwertverschiebung und Mode Finding (z. B. k-Mittelwerte und Gaußsche Mischverteilungen), normalisierten Schnitten, Graphenschnitten usw. basieren. Produktbildmerkmale können global oder lokal nach Farbe, Textur, Form, anderen hervorstechenden Merkmalen oder einer Kombination davon extrahiert werden. Auf Farbe basierende Merkmalsextraktion kann das Berechnen von Histogrammen für die Farbelemente eines Bilds (z. B. Rot-, Grün- und Blauintensität) beinhalten. Texturmerkmale beinhalten die Granularität und sich wiederholende Muster von Oberflächen innerhalb eines Bilds. Beispielsweise unterscheiden sich Glas, Ziegel und Holz in Textur, Glattheit sowie Muster und derartige Eigenschaften können dazu verwendet werden, ein Bild oder Bereiche des Bilds zu beschreiben. Texturmerkmale können nach Koexistenzmatrizen, Tamura-Merkmalen (z. B. Granularität, Kontrast, Direktionalität, lineare Ähnlichkeit, Gleichmäßigkeit, Rauheit), Wold-Merkmalen (z. B. Periodizität, Zufälligkeit und Direktionalität), Gabor-Filterung, Wavelet-Transformationen usw. extrahiert werden. Formmerkmale für ein Bild können nach Seitenverhältnis, Zirkularität, Fourier-Deskriptoren, Momentinvarianten, aufeinanderfolgenden Begrenzungssegmenten usw. extrahiert werden. Andere hervorstechende Merkmale beinhalten Kanten (die z. B. unter Verwendung von Canny-Kantendetektion extrahiert werden), Ecken (die z. B. unter Verwendung von Harris-Eckendetektion oder SUSAN-Eckendetektion (Smallest Univalue Segment Assimilating Nucleus) extrahiert werden), Bereiche von Interesse (die z. B. unter Verwendung von Laplace von Gaußschen Pyramiden oder Differenz von Gaußschen Pyramiden extrahiert werden) oder eine Kombination und/oder Variation davon, wie etwa SIFT-Funktionen (Scale Invariant Feature Transform).
-
Verschiedene Merkmalsabgleichverfahren können dazu verwendet werden, die Ähnlichkeit zwischen Bildern zu bewerten. Ähnlichkeitsmaße können von den aus einem Bild ausgewählten Merkmalsdeskriptoren oder -signaturen abhängen. In einer Ausführungsform beinhalten Ähnlichkeitsmaße die Minkowski-Distanz oder die Mahalanobis-Distanz. Die Minkowski-Distanz kann zweckmäßig sein, wenn Merkmalsvektoren unabhängig sind und jeder Merkmalsvektor von gleicher Bedeutung ist. In einer anderen Ausführungsform beinhalten Ähnlichkeitsmaße die Quadratic Form Distance, die Kullback-Leibler-Divergenz, die Jeffrey-Divergenz, die Hausdorff-Distanz, die Mallows-Distanz, die Earth Mover's Distance, die Integrated Region Matching Distance oder Variationen davon. Bestimmte Ausführungsformen können verschiedene Indizierungsstrukturen oder -techniken zum effizienten Durchsuchen der Bilddatenbank verwenden, einschließlich mehrdimensionalem Hashing, bei dem Merkmalsdeskriptoren basierend auf einer Funktion, die auf jeden Deskriptorvektor angewendet wird, in Bins oder Buckets fester Größe abgebildet werden; lokalitätssensitivem Hashing, bei dem Verbindungen von unabhängig berechneten Hashing-Funktionen zum Indizieren von Merkmalen verwendet werden; mehrdimensionaler Suchbäume, wie etwa k-d-Bäume, die den mehrdimensionalen Merkmalsraum entlang alternierender achsenausgerichteter Hyperebenen teilen, um das Gleichgewicht der Suchbäume zu maximieren; usw. Wenn es hypothetische oder mutmaßliche Übereinstimmungen gibt, können Techniken, wie etwa geometrische Ausrichtung dazu verwendet werden, zu überprüfen, welche Übereinstimmungen Inlier und welche Outlier sind. In einigen Fällen kann erwartet werden, dass das gesamte Abfragebild übersetzt oder gedreht wird, um mit einem Bild im Datenbankbild übereinzustimmen, sodass das Abfragebild geometrisch transformiert werden kann, um nur die Merkmalsübereinstimmungen beizubehalten, die der geschätzten Transformation ausreichend nahe kommen. Zur Verifizierung können Prozesse wie RANSAC (Random Consensus Sampling) oder LMS (Least Median of Squares) verwendet werden.
-
In einigen Ausführungsformen können Bild- und Textverarbeitungsprozesse Unterprozesse beinhalten, wie etwa beispielsweise Thresholding (Konvertieren eines Graustufenbilds in Schwarzweiß oder Verwenden von Separation basierend auf einem Graustufenwert), Segmentierung, Blob-Extraktion, Mustererkennung, Barcode- und Datenmatrixcode-Lesen, Gauging (Messen von Objektabmessungen), Positionieren, Kantenerkennung, Farbanalyse, Filterung (z. B. morphologische Filterung) und Vorlagenabgleich (Finden, Abgleichen und/oder Zählen bestimmter Muster). Verschiedene Techniken (z. B. OCR und andere Texterkennungsprozesse) können als primäre Bild- und Textanalysetechnik oder zur Verbesserung anderer Prozesse verwendet werden.
-
In verschiedenen Ausführungsformen kann der Bildanalysedienst 518 u. a. eine Bilderkennung für eine visuelle Suchanwendung sowie eine Augmented-Reality-Anwendung bereitstellen. Somit kann die Umgebung 504 optional einen visuellen Suchdienst 522, einen Augmented Reality-Dienst 524 oder beides beinhalten. In verschiedenen Ausführungsformen einer visuellen Suchanwendung können die Merkmalsdaten dazu verwendet werden, Produkte in einem elektronischen Katalog zu identifizieren, die dem Objekt von Interesse visuell ähnlich, nachdem das Objekt von Interesse in der Szene identifiziert wurde und Objekterkennungstechniken durchgeführt wurden, um bestimmte dem Objekt zugeordnete Merkmalsdaten zu extrahieren. Dies kann durch verschiedene Techniken durchgeführt werden. Beispielsweise kann in einigen Ausführungsformen eine K-Nearest-Neighbors-(KNN-)Technik verwendet werden, bei der ein Merkmalsvektor des Objekts von Interesse mit Merkmalsvektoren von Produkten (d. h. Produktbildern) in dem elektronischen Katalog verglichen werden kann, und ein Maß für die visuelle Ähnlichkeit zwischen dem Objekt von Interesse und einem Produkt basierend auf einem Abstand zwischen ihren jeweiligen Merkmalsvektoren bestimmt werden. Die Produkte können dann basierend auf der bestimmten visuellen Ähnlichkeit als Suchergebnisse geordnet und/oder ausgewählt werden. Dies ist in 2B veranschaulicht, die eine beispielhafte Schnittstelle der Rechenvorrichtung gemäß verschiedenen Ausführungsformen veranschaulicht, die Suchergebnisse basierend auf dem aufgenommenen Bild des Objekts bereitstellt. In verschiedenen Ausführungsformen einer Augmented-Reality-Produktansicht-Anwendung kann ein grafisches Rendering eines Produkts erzeugt und einem System oder einer vom Benutzer ausgewählten Position der Szene überlagert werden, nachdem eine Oberfläche oder ein Raum in einer Szene durch Bilderkennung identifiziert wurde. Beispielsweise kann das grafische Rendering des Produkts proportional zu anderen Objekten in der Szene dimensioniert und so positioniert werden, dass die Illusion bereitgestellt wird, dass das Objekt auf einer bestimmten Oberfläche in der Szene platziert ist. In einigen Ausführungsformen kann ein Benutzer das grafische Rendering des Produkts ziehen, um es in verschiedenen Positionen zu platzieren oder die grafische Darstellung drehen, um verschiedene Winkel des Produkts zu betrachten. Somit können sich die Größe, die Position oder der Betrachtungswinkel des grafischen Rendering des Produkts gemäß der Benutzereingabe ändern.
-
Der visuelle Statusdienst 526 erfasst den Zustand des Bilderkennungsprozesses, der sowohl den Bildanalysedienst als auch den visuellen Such- oder Augmented-Reality-Dienst beinhaltet. Der visuelle Statusdienst bestimmt dann basierend auf dem Zustand das Verhalten einer Menge von visuellen Bildschirm-Markern als visuelle Anzeige für den Benutzer bezüglich des Zustands des Bilderkennungsprozesses. Der Menge von visuellen Markern kann auf dem Bildschirm der Rechenvorrichtung 502 als Overlay über der Live-Kameraansicht oder dem Standbild erscheinen, wie etwa beispielsweise in den 4A-4F gezeigt. Der Bildanalysedienst 518 oder andere Dienste und/oder Komponenten der Umgebung können auf einen oder mehrere Datenspeicher, wie beispielsweise einen Benutzerdatenspeicher 520, der Informationen über die verschiedenen Benutzer enthält, und ein oder mehrere Content-Repositories514 zugreifen, in denen Inhalte gespeichert sind, die diesen Benutzern bereitgestellt werden können. Beispielsweise kann der Benutzerdatenspeicher 516 Daten zu einzelnen Benutzern speichern, einschließlich u.a. Informationen bezüglich Interessen, demografischen Eigenschaften, Benutzerpräferenzen, Konfektionsgrößen, Ausgabeverhalten, Surfverhalten.
-
6 veranschaulicht ein Flussdiagramm 600, das einen beispielhaften Prozess zum Bereitstellen von visuellem Feedback zu Bilderkennungsprozesszuständen gemäß verschiedenen Ausführungsformen beschreibt. Es versteht sich, dass für jeden in dieser Schrift diskutierten Prozess zusätzliche, weniger oder alternative Schritte in ähnlichen oder alternativen Reihenfolgen oder parallel im Rahmen der verschiedenen Ausführungsformen durchgeführt werden können. In diesem Beispiel werden Bilddaten einer Szene, die von einer Kamera einer Benutzervorrichtung aufgenommen wurden, empfangen 602. In einigen Ausführungsformen können die Bilddaten von einem Prozessor der Benutzervorrichtung oder einem entfernten Server empfangen werden, der mit der Benutzervorrichtung kommuniziert. Die Bilddaten können aus einer Live-Kameraansicht erhalten werden, die auf einer Anzeige der Benutzervorrichtung angezeigt 604 wird. Ein Bilderkennungsprozess, wie etwa ein visueller Suchprozess, ein Augmented Reality-Prozess oder eine andere bildbasierte Analyseanwendung, kann auf den Bilddaten durchgeführt 606 werden. Der Bilderkennungsprozess kann mehrere mögliche Zustände durchlaufen, wie etwa u. a. Initialisierung, Suche nach Bildmerkmalen, instabiler Frame, schlechte Beleuchtung, Durchsuchen des Katalogs, Netzwerkverbindungsprobleme. Somit kann ein aktueller Zustand des Bilderkennungsprozesses bestimmt 608 werden und das Verhalten einer Menge von visuellen Markern kann basierend auf dem aktuellen Zustand des Bilderkennungsprozesses bestimmt 610 werden. Die Menge von visuellen Markern wird dann als Overlay auf der Lichtkameraansicht angezeigt 612 und weist das bestimmte Verhalten auf. In einigen Ausführungsformen kann die Menge von visuellen Markern dazu konfiguriert sein, eine Vielzahl von möglichen Verhalten aufzuweisen, die der Vielzahl von möglichen Zuständen entsprechen. Somit zeigt die Menge von visuellen Markern, die ein bestimmtes Verhalten aufweisen, einen bestimmten Zustand des Bilderkennungsprozesses an. In einigen Ausführungsformen geht die Menge von visuellen Markern entsprechend von einem Verhalten zu einem anderen Verhalten über, wenn der Zustand des Bilderkennungsprozesses sich ändert oder von einem Zustand zu einem anderen Zustand übergeht. In einigen Ausführungsformen ist der Übergang zwischen dem Verhalten visueller Marker animiert und nahtlos.
-
7 veranschaulicht ein Flussdiagramm 700, das einen visuellen Suchprozess mit visuellem Feedback über Verhalten von visuellen Markern gemäß verschiedenen Ausführungsformen beschreibt. In diesem Beispiel werden beim Initiieren einer Kamerafunktion des visuellen Suchprozesses visuelle Marker 702 auf der Anzeige einer Benutzervorrichtung in einem Initialisierungsmodus angezeigt. In einer beispielhaften Ausführungsform beinhaltet dies eine Animation der visuellen Marker, die von den Rändern der Schnittstelle auf den Bildschirm fliegen. Es kann dann bestimmt 704 werden, ob die Abtastbedingungen für die Bildanalyse akzeptabel sind. Dies kann beispielsweise Überprüfen umfassen, ob der Frame stabil ist, die Beleuchtung angemessen ist und dergleichen. Wenn die Bedingungen für die Bildanalyse nicht akzeptabel sind, können die visuellen Marker eine visuelle Anzeige dafür bereitstellen, indem sie in einem inaktiven Modus angezeigt 706 werden, wie etwa in 4A veranschaulicht. Wenn die Bedingungen akzeptabel sind, kann das System das Bild analysieren. Dementsprechend werden die visuellen Marker in einem Analysemodus angezeigt 708, um eine visuelle Anzeige bereitzustellen, dass das Bild analysiert wird. Es kann dann bestimmt 710 werden, ob ein Objekt erfasst wird. Wenn während der Analyse kein Objekt erfasst wird, werden die Bilddaten weiterhin analysiert und die visuellen Marker werden weiterhin im Analysemodus angezeigt 708. Wenn ein Objekt erfasst wird, werden die visuellen Marker in einem Modus Objekt erfasst und/oder Suchmodus angezeigt 712, wie in 4B veranschaulicht, der anzeigt, dass das Objekt erfasst wurde und eine Datenbank wird nach visuell ähnlichen Bildern durchsucht. Es wird dann bestimmt 714, ob Suchergebnisse erhalten werden. Wenn noch keine Ergebnisse erhalten werden, werden die visuellen Marker weiterhin im Modus Objekt erfasst und/oder Suchmodus angezeigt 712. Wenn die Ergebnisse erhalten werden, können die visuellen Marker in einem Ergebnismodus angezeigt 716 werden. In einigen Ausführungsformen können die visuellen Marker im Ergebnismodus als vom Bildschirm fliegend animiert sein, wenn die Suchergebnisse auf den Bildschirm kommen, wenn die Suchergebnisse angezeigt 718 werden.
-
8 veranschaulicht ein Flussdiagramm, das einen Augmented-Reality-Prozess mit visuellem Feedback über Verhalten von visuellen Markern gemäß verschiedenen Ausführungsformen beschreibt. In diesem Beispiel werden beim Initiieren einer Kamerafunktion des Augmented-Reality-Prozesses visuelle Marker auf der Anzeige einer Benutzervorrichtung in einem Initialisierungsmodus angezeigt 802. In einer beispielhaften Ausführungsform beinhaltet dies eine Animation der visuellen Marker, die von den Rändern der Schnittstelle auf den Bildschirm fliegen. Es kann dann bestimmt 804 werden, ob die Abtastbedingungen für die Bildanalyse akzeptabel sind. Dies kann beispielsweise Überprüfen umfassen, ob der Frame stabil ist, die Beleuchtung angemessen ist und dergleichen. Wenn die Bedingungen für die Bildanalyse nicht akzeptabel sind, können die visuellen Marker eine visuelle Anzeige dafür bereitstellen, indem sie in einem inaktiven Modus angezeigt 806 werden, wie etwa in 4A veranschaulicht. Wenn die Bedingungen akzeptabel sind, kann das System das Bild analysieren. Dementsprechend werden die visuellen Marker in einem Analysemodus angezeigt 808, um eine visuelle Anzeige bereitzustellen, dass das Bild analysiert wird. Es wird dann bestimmt 810, ob eine Oberfläche erfasst wird. Wenn während der Analyse keine Oberfläche (oder kein Raum) erfasst wird, werden die Bilddaten weiterhin analysiert und die visuellen Marker werden weiterhin im Analysemodus angezeigt 808. Wenn eine Oberfläche erfasst wird, werden die visuellen Marker in einem Modus Oberfläche erfasst angezeigt 812, wie etwa in 4E veranschaulicht. Es kann dann bestimmt 814 werden, ob eine Position auf der erfassten Oberfläche zum Platzieren des Augmented-Reality-Modells bestimmt wurde. Die Position kann basierend auf einer Benutzereingabe bestimmt oder automatisch ausgewählt werden. Wenn eine Position bestimmt wird, kann das Augmented-Reality-Modell beginnen, gerendert zu werden und somit werden die visuellen Marker in einem Modellrendermodus angezeigt 816, wie etwa in 4F veranschaulicht. Es wird dann bestimmt 818, ob das Modell vollständig gerendert ist. Wenn das Modell vollständig gerendert ist, werden die visuellen Anzeigen in einem gerenderten Modus angezeigt 820. In einigen Ausführungsformen kann eine Benutzereingabe empfangen werden. Somit wird bestimmt 822, ob eine Benutzereingabe empfangen wird. Wenn eine Benutzereingabe empfangen wird, können die visuellen Marker in einem Benutzereingabemodus angezeigt werden. In einigen Ausführungsformen kann, wenn die visuellen Marker in einem Benutzereingabemodus angezeigt 824 werden, sich die Menge von visuellen Markern zu einem Punkt auf dem Bildschirm bewegen, wo der Benutzer diesen berührt hat, wie etwa zu einem Bereich der Schnittstelle. Die visuellen Marker können bestimmte Muster basierend auf der Art der Benutzereingabe anzeigen.
-
Zusätzlich können Ausführungsformen der vorliegenden Offenbarung im Hinblick auf die folgenden Sätze beschrieben werden:
- 1. System, umfassend:
- mindestens einen Prozessor einer Rechenvorrichtung;
- eine Kamera;
- eine Anzeige; und
- eine Speichervorrichtung, die Anweisungen beinhaltet, die bei Ausführung durch den mindestens einen Prozessor einer Rechenvorrichtung das System zu Folgendem veranlassen:
- Aufnehmen von Bilddaten unter Verwendung der Kamera, wobei die Bilddaten eine Darstellung einer Szene beinhalten;
- Anzeigen der Darstellung der Szene auf der Anzeige;
- Durchführen von mindestens einem Teil eines Bilderkennungsprozesses auf den Bilddaten, wobei der Bilderkennungsprozess einer Vielzahl von möglichen Zuständen zugeordnet ist,
- Bestimmen eines aktuellen Zustands des Bilderkennungsprozesses;
- Erfassen eines Merkmals der Szene aus den Bilddaten;
- Anzeigen einer Menge von animierten visuellen Markern, die auf der Darstellung der Szene überlagert sind, wobei die Menge von animierten visuellen Markern eine Vielzahl von möglichen Verhalten aufweist, die der Vielzahl von möglichen Zuständen und dem erfassten Merkmal entsprechen;
- Bestimmen eines Verhaltens für die Menge von animierten visuellen Markern, zumindest teilweise basierend auf mindestens einem von dem aktuellen Zustand oder dem erfassten Merkmal, wobei das Verhalten den aktuellen Zustand anzeigt; und
- Aktualisieren des Verhaltens der Menge von animierten visuellen Markern zumindest teilweise basierend auf einer Änderung des aktuellen Zustands oder des erfassten Merkmals.
- 2. System nach Satz 1, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen:
- Durchführen einer Bildanalyse auf den Bilddaten für eine visuelle Suchabfrage;
- Anzeigen der Menge von animierten visuellen Markern während der Bildanalyse, wobei die Menge von animierten visuellen Markern ein Verhalten aufweist, das dem Durchführen der Bildanalyse zugeordnet ist und dieses anzeigt;
- Erfassen eines Objekts in der Darstellung der Szene; und
- Anzeigen der Menge von animierten visuellen Markern beim Erfassen des Objekts, wobei die Menge von animierten visuellen Markern ein Verhalten aufweist, das dem Erfassen des Objekts zugeordnet ist und dieses anzeigt.
- 3. System nach Satz 1, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen:
- Erfassen einer Oberfläche in der Darstellung der Szene für ein Augmented-Reality-Modell;
- beim Erfassen der Oberfläche Anzeigen der Menge von animierten visuellen Markern, die ein Verhalten aufweisen, das der erfassten Oberfläche zugeordnet ist und diese anzeigt;
- Rendern eines Augmented-Reality-Modells;
- während des Renderns, Anzeigen der Menge von animierten visuellen Markern, die ein Verhalten aufweisen, das dem Rendern zugeordnet ist und dieses anzeigt; und
- beim Abschließen des Renderns Anzeigen der Menge von animierten visuellen Markern, die ein Verhalten aufweisen, das dem Abschluss des Renderns zugeordnet ist und diesen anzeigt;.
- 4. System nach Satz 1, wobei die Menge von animierten visuellen Markern eine Vielzahl von unterschiedlichen grafischen Elementen beinhaltet, die ein Aussehen, eine Bewegung, eine Physik, eine Form, eine Opazität oder eine Farbe zumindest teilweise basierend auf dem Verhalten aufweisen.
- 5. Computerimplementiertes Verfahren, umfassend:
- Empfangen von Bilddaten, die eine Darstellung einer Szene beinhalten;
- Bewirken, dass die Darstellung der Szene in einer grafischen Schnittstelle auf einer Anzeigevorrichtung angezeigt wird;
- Durchführen eines Bilderkennungsprozesses auf den Bilddaten, wobei der Bilderkennungsprozess einer Vielzahl von Zuständen zugeordnet ist;
- Anzeigen einer Gruppe von visuellen Markern auf der grafischen Schnittstelle;
- Bestimmen eines Verhaltens für die Gruppe von visuellen Markern zumindest teilweise basierend auf einem aktuellen Zustand des Bilderkennungsprozesses; und
- Ändern des Verhaltens der visuellen Marker zumindest teilweise basierend auf einer Änderung des aktuellen Zustands.
- 6. Verfahren nach Satz 5, ferner umfassend:
- Anzeigen eines animierten Übergangs der Gruppe von visuellen Markern von einem vorherigen Verhalten, das einem vorherigen Zustand zugeordnet ist, zu dem Verhalten, das dem aktuellen Zustand zugeordnet ist.
- 7. Verfahren nach Satz 5, ferner umfassend:
- Durchführen eines Augmented-Reality-Prozesses unter Verwendung der Darstellung der Szene, wobei der Augmented-Reality-Prozess zumindest einer Teilmenge der Vielzahl von Zuständen zugeordnet ist;
- Anzeigen einer Gruppe von visuellen Markern, die auf der Darstellung der Szene als Overlay erscheinen, wobei das Verhalten der Gruppe von visuellen Markern zumindest teilweise auf dem aktuellen Zustand des Augmented-Reality-Prozesses basiert; und
- Aktualisieren des Verhaltens der Gruppe von visuellen Markern zumindest teilweise basierend auf einer Änderung des aktuellen Zustands des Augmented-Reality-Prozesses.
- 8. Verfahren nach Satz 5, ferner umfassend:
- Durchführen eines bildbasierten Suchprozesses unter Verwendung der Darstellung der Szene, wobei der bildbasierte Suchprozess zumindest einer Teilmenge der Vielzahl von Zuständen zugeordnet ist;
- Anzeigen einer Gruppe von visuellen Markern, die auf der Darstellung der Szene als Overlay erscheinen, wobei das Verhalten der Gruppe von visuellen Markern zumindest teilweise auf dem aktuellen Zustand des bildbasierten Suchprozesses basiert; und
- Aktualisieren des Verhaltens der Gruppe von visuellen Markern zumindest teilweise basierend auf einer Änderung des aktuellen Zustands des bildbasierten Suchprozesses.
- 9. Verfahren nach Satz 5, ferner umfassend:
- Empfangen einer Benutzereingabe; und
- Bestimmen des Verhaltens für die Gruppe von visuellen Markern, zumindest teilweise basierend auf der Benutzereingabe.
- 10. Verfahren nach Satz 5, wobei eine Zuordnung zwischen der Vielzahl von Zuständen und der Vielzahl von Verhalten über eine Vielzahl von verschiedenen Szenenarten oder Bilderkennungsprozessen hinweg konsistent ist.
- 11. Verfahren nach Satz 5, wobei die Vielzahl von Zuständen mindestens eines von einer Stufe in einem Abtastprozess, einer Szenenart oder einer Objektart beinhaltet.
- 12. Verfahren nach Satz 5, ferner umfassend:
- Bestimmen, dass der aktuelle Zustand des Bilderkennungsprozesses ein inaktiver Zustand ist, wobei die Bilddaten für den Bilderkennungsprozess nicht geeignet sind; und
- Anzeigen der Gruppe von visuellen Markern, die ein Verhalten inaktiver Zustand aufweisen, wobei das Verhalten inaktiver Zustand anzeigt, dass sich der Bilderkennungsprozess in dem inaktiven Zustand befindet.
- 13. Verfahren nach Satz 5, ferner umfassend:
- Bestimmen, dass der aktuelle Zustand des Bilderkennungsprozesses ein Führungszustand ist, in dem eine Benutzereingabe angefordert wird; und
- Anzeigen der Gruppe von visuellen Markern, die ein Führungszustandsverhalten aufweisen, wobei das Führungszustandsverhalten die angeforderte Benutzereingabe anzeigt.
- 14. Verfahren nach Satz 5, ferner umfassend:
- Bestimmen, dass der aktuelle Zustand des Bilderkennungsprozesses ein Fehlerzustand ist, in dem ein Verbindungs- oder Systemproblem erfasst wird; und
- Anzeigen der Gruppe von visuellen Markern, die ein Fehlerzustandsverhalten aufweisen, wobei das Fehlerzustandsverhalten anzeigt, dass sich der Bilderkennungsprozess in dem Fehlerzustand befindet.
- 15. Verfahren nach Satz 5, ferner umfassend:
- Bestimmen, dass der aktuelle Zustand des Bilderkennungsprozesses ein Bildanalysezustand ist, wobei die Bilddaten analysiert werden; und
- Anzeigen der Gruppe von visuellen Markern, die ein Bildanalysezustandsverhalten aufweisen, wobei das Bildanalysezustandsverhalten anzeigt, dass die Bilddaten analysiert werden.
- 16. Verfahren nach Satz 5, ferner umfassend:
- Bestimmen, dass der aktuelle Zustand des Bilderkennungsprozesses ein Zustand Objekt erfasst ist, wobei eine Darstellung eines Objekts aus den Bilddaten erfasst wurde; und
- Anzeigen der Gruppe von visuellen Markern, die ein Verhalten Zustand Objekt erfasst aufweisen, wobei das Verhalten Zustand Objekt erfasst anzeigt, dass die Darstellung des Objekts erfasst wurde.
- 17. System, umfassend:
- mindestens einen Prozessor einer Rechenvorrichtung; und
- eine Speichervorrichtung, die Anweisungen beinhaltet, die bei Ausführung durch den mindestens einen Prozessor einer Rechenvorrichtung das System zu Folgendem veranlassen:
- Empfangen von Bilddaten, die eine Darstellung einer Szene beinhalten;
- Bewirken, dass die Darstellung der Szene in einer grafischen Schnittstelle auf einer Anzeigevorrichtung angezeigt wird;
- Durchführen eines Bilderkennungsprozesses auf den Bilddaten, wobei der Bilderkennungsprozess einer Vielzahl von Zuständen zugeordnet ist;
- Anzeigen einer Gruppe von visuellen Markern auf der grafischen Schnittstelle; Bestimmen eines Verhaltens für die Gruppe von visuellen Markern zumindest teilweise basierend auf einem aktuellen Zustand des Bilderkennungsprozesses; und
- Ändern des Verhaltens der visuellen Marker zumindest teilweise basierend auf einer Änderung des aktuellen Zustands.
- 18. System nach Satz 17, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen:
- Anzeigen eines animierten Übergangs der Gruppe von visuellen Markern von einem vorherigen Verhalten, das einem vorherigen Zustand zugeordnet ist, zu dem Verhalten, das dem aktuellen Zustand zugeordnet ist.
- 19. System nach Satz 17, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen:
- Durchführen eines Augmented-Reality-Prozesses unter Verwendung der Darstellung der Szene, wobei der Augmented-Reality-Prozess zumindest einer Teilmenge der Vielzahl von Zuständen zugeordnet ist;
- Anzeigen einer Gruppe von visuellen Markern, die auf der Darstellung der Szene als Overlay erscheinen, wobei das Verhalten der Gruppe von visuellen Markern zumindest teilweise auf dem aktuellen Zustand des Augmented-Reality-Prozesses basiert; und
- Aktualisieren des Verhaltens der Gruppe von visuellen Markern zumindest teilweise basierend auf einer Änderung des aktuellen Zustands des Augmented-Reality-Prozesses.
- 20. System nach Satz 17, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen:
- Durchführen eines bildbasierten Suchprozesses unter Verwendung der Darstellung der Szene, wobei der bildbasierte Suchprozess zumindest einer Teilmenge der Vielzahl von Zuständen zugeordnet ist;
- Anzeigen einer Gruppe von visuellen Markern, die auf der Darstellung der Szene als Overlay erscheinen, wobei das Verhalten der Gruppe von visuellen Markern zumindest teilweise auf dem aktuellen Zustand des bildbasierten Suchprozesses basiert; und
- Aktualisieren des Verhaltens der Gruppe von visuellen Markern zumindest teilweise basierend auf einer Änderung des aktuellen Zustands des bildbasierten Suchprozesses.
-
9 veranschaulicht eine beispielhafte Rechenvorrichtung 900, die gemäß verschiedenen Ausführungsformen verwendet werden kann. Wenngleich eine tragbare Rechenvorrichtung (z. B. ein Smartphone, E-Book-Reader oder Tablet-Computer) gezeigt ist, versteht es sich, dass ein beliebige Vorrichtung, die zum Empfangen und Verarbeiten von Eingaben in der Lage ist, gemäß verschiedenen in dieser Schrift erörterten Ausführungsformen verwendet werden kann. Die Vorrichtungen können beispielsweise u. a. Desktop-Computer, Notebook-Computer, E-Book-Reader, Personal Data Assistants, Mobiltelefone, Videospielkonsolen oder -controller, Set-Top-Boxen für Fernsehgeräte und tragbare Medienabspielgeräte beinhalten.
-
In diesem Beispiel weist die Rechenvorrichtung 900 einen Anzeigebildschirm 902 auf, der im normalen Betrieb Informationen für einen Benutzer anzeigt, der dem Anzeigebildschirm zugewandt ist (z. B. auf derselben Seite der Rechenvorrichtung wie der Anzeigebildschirm). Die Rechenvorrichtung in diesem Beispiel kann ein oder mehrere Medienaufnahmeelemente beinhalten, in diesem Beispiel einschließlich eines Bildaufnahmeelements 904 auf der Rückseite der Vorrichtung, wenngleich es sich versteht, dass Bildaufnahmeelemente auch oder alternativ an den Seiten oder Ecken des Geräts der Vorrichtung platziert sein können und dass es eine beliebige zweckmäßige Anzahl von Aufnahmeelementen ähnlicher oder unterschiedlicher Arten geben kann. Jedes Bildaufnahmeelement 904 kann zum Beispiel eine Kamera, eine ladungsgekoppelte Vorrichtung (CCD), ein Bewegungserfassungssensor oder ein Infrarotsensor sein oder kann eine beliebige andere zweckmäßige Bildaufnahmetechnologie verwenden. Die Rechenvorrichtung kann auch mindestens ein Mikrofon oder (ein) andere(s) Audioaufnahmeelement(e) beinhalten, die in der Lage sind, andere Arten von Eingabedaten aufzunehmen, wie sie auf dem Fachgebiet bekannt sind, und kann mindestens ein Ausrichtungsbestimmungselement beinhalten, das zum Erfassen von Änderungen der Position und/oder Ausrichtung der Vorrichtung verwendet werden kann. Verschiedene andere Eingabearten können ebenfalls verwendet werden, wie sie auf dem Fachgebiet zur Verwendung mit derartigen Vorrichtungen bekannt sind.
-
10 veranschaulicht einen Satz beispielhafter Komponenten einer oder mehrerer Vorrichtungen 1000 der vorliegenden Offenbarung. In diesem Beispiel beinhaltet die Vorrichtung mindestens einen Prozessor 1002 zum Ausführen von Anweisungen, die in einer Speichervorrichtung oder einem Speicherelement 1004 gespeichert sein können. Wie es für den Durchschnittsfachmann ersichtlich ist, kann die Vorrichtung viele Arten von Speicher, Datenspeicher oder computerlesbaren Medien beinhalten, wie etwa einen ersten Datenspeicher für Programmanweisungen zur Ausführung durch den Prozessor 1002, kann für Bilder oder Daten der gleiche oder ein gesonderter Speicher verwendet werden, kann ein Wechselspeicher zum Teilen von Informationen mit anderen Vorrichtungen verfügbar sein und kann eine beliebige Anzahl von Kommunikationsansätzen zum Teilen mit anderen Vorrichtungen verfügbar sein. Die Vorrichtung beinhaltet typischerweise eine Art Anzeigeelement 1006 wie etwa einen Touchscreen, elektronische Tinte (E-Ink), eine organische Leuchtdiode (organic light emitting diode - OLED) oder Flüssigkristallanzeige (liquid crystal display - LCD), obwohl Vorrichtungen, wie etwa tragbare Medienabspielgeräte, Informationen über andere Mittel übertragen können, wie etwa durch Audiolautsprecher. Wie erörtert beinhaltet die Vorrichtung in vielen Ausführungsformen mindestens ein Bildaufnahmeelement 1008, wie etwa mindestens eine Umgebungslichtkamera, das dazu in der Lage ist, einen Benutzer, Personen oder Objekte in der Nähe der Vorrichtung abzubilden. Ein Bildaufnahmeelement kann eine beliebige zweckmäßige Technologie beinhalten, wie etwa ein CCD-Bildaufnahmeelement, das eine ausreichende Auflösung, einen ausreichenden Brennweitenbereich und Sichtbereich aufweist, um ein Bild des Benutzers aufzunehmen, wenn der Benutzer die Vorrichtung bedient. Verfahren zum Aufnehmen von Bildern oder Video unter Verwendung eines Bildaufnahmeelements mit einer Rechenvorrichtung sind auf dem Fachgebiet hinlänglich bekannt und werden hier nicht ausführlich erörtert. Es versteht sich, dass die Bildaufnahme unter Verwendung eines einzelnen Bilds, mehrerer Bilder, periodischer Bildgebung, kontinuierlicher Bildaufnahme, Bild-Streaming usw. durchgeführt werden kann.
-
Die Vorrichtung kann eine oder mehrere Netzwerkkomponenten 1014 beinhalten, die es der Vorrichtung ermöglichen, mit entfernten Systemen oder Diensten, wie etwa Inhaltsanbietern und Rechtsbestimmungssystemen, zu kommunizieren. Diese Komponenten können beispielsweise drahtgebunden oder drahtlos betreibbar sein, um über ein Netzwerk, wie etwa ein Mobilfunknetz, ein lokales Netzwerk oder das Internet, zu kommunizieren. Die Vorrichtung kann außerdem mindestens ein zusätzliches Eingabeelement 1018 beinhalten, das herkömmliche Eingaben von einem Benutzer empfangen kann. Diese herkömmlichen Eingaben können zum Beispiel eine Drucktaste, ein Touchpad, einen Touchscreen, ein Rad, einen Joystick, eine Tastatur, eine Maus, einen Trackball, ein Tastenfeld oder eine beliebige andere derartige Vorrichtung oder ein beliebiges anderes derartiges Element beinhalten, wodurch ein Benutzer einen Befehl in die Vorrichtung eingeben kann. Diese E/A-Vorrichtungen könnten zudem in einigen Ausführungsformen auch durch eine drahtlose Infrarot- oder Bluetooth- oder andere Verknüpfung verbunden sein. In einigen Ausführungsformen könnte eine derartige Vorrichtung jedoch keinerlei Tasten beinhalten und könnte lediglich durch eine Kombination aus visuellen Befehlen und Audiobefehlen gesteuert werden, sodass ein Benutzer die Vorrichtung steuern kann, ohne die Vorrichtung berühren zu müssen. Die Vorrichtung kann außerdem eine oder mehrere Leistungskomponenten 1016 beinhalten, wie etwa eine Batterie. Die Vorrichtung kann zudem ein oder mehrere Ausrichtungsbestimmungselemente 1010 und ein oder mehrere Positionierungselemente 1012 beinhalten. Wie erörtert können unterschiedliche Ansätze in verschiedenen Umgebungen gemäß den beschriebenen Ausführungsformen umgesetzt werden.
-
11 veranschaulicht eine beispielhafte Umgebung 1100 zum Umsetzen von Aspekten gemäß verschiedenen Ausführungsformen. Obwohl zu Zwecken der Erläuterung eine webbasierte Umgebung verwendet wird, versteht es sich, dass gegebenenfalls andere Umgebungen verwendet werden können, um verschiedene Ausführungsformen umzusetzen. Das System beinhaltet eine elektronische Client-Vorrichtung 1102, die eine beliebige zweckmäßige Vorrichtung beinhalten kann, die dazu betrieben werden kann, Aufforderungen, Meldungen oder Informationen über ein zweckmäßiges Netzwerk 1104 zu senden und zu empfangen und Informationen zurück an einen Benutzer der Vorrichtung zu übertragen. Beispiele für derartige Client-Vorrichtungen beinhalten Personalcomputer, Mobiltelefone, tragbare Messaging-Vorrichtungen, Laptop-Computer, Set-Top-Boxen, Personal Data Assistants, E-Book-Reader und dergleichen. Das Netzwerk kann ein beliebiges zweckmäßiges Netzwerk beinhalten, darunter ein Intranet, das Internet, ein Mobilfunknetz, ein lokales Netzwerk, ein Satellitennetzwerk oder ein beliebiges anderes derartiges Netzwerk und/oder eine Kombination davon. Komponenten, die für ein derartiges System verwendet werden, können zumindest teilweise von der Art des ausgewählten Netzwerks und/oder der ausgewählten Umgebung abhängig sein. Protokolle und Komponenten zum Kommunizieren über ein derartiges Netzwerk sind hinlänglich bekannt und werden hier nicht ausführlich erörtert. Kommunikation über das Netzwerk kann über drahtgebundene oder drahtlose Verbindungen und Kombinationen davon ermöglicht werden. In diesem Beispiel beinhaltet das Netzwerk das Internet, da die Umgebung einen Webserver 1106 zum Empfangen von Aufforderungen und Darbieten von Inhalt als Antwort darauf beinhaltet, wobei für andere Netzwerke eine alternative Vorrichtung, die einen ähnlichen Zweck erfüllt, verwendet werden könnte, wie es für den Durchschnittsfachmann ersichtlich ist.
-
Die veranschaulichende Umgebung beinhaltet mindestens einen Anwendungsserver 1108 und einen Datenspeicher 1110. Es versteht sich, dass mehrere Anwendungsserver, Schichten oder andere Elemente, Prozesse oder Komponenten vorliegen können, die verkettet oder anderweitig konfiguriert sein können und die interagieren können, um Aufgaben durchzuführen, wie etwa Erhalten von Daten von einem zweckmäßigen Datenspeicher. Im vorliegenden Zusammenhang bezieht sich der Ausdruck Daten-„Speicher“ auf eine beliebige Vorrichtung oder Kombination von Vorrichtungen, die dazu in der Lage ist, Daten zu speichern, darauf zuzugreifen und diese abzurufen, was eine beliebige Kombination und Anzahl von Datenservern, Datenbanken, Datenspeichervorrichtungen und Datenspeichermedien in einer beliebigen standardmäßigen, verteilten oder geclusterten Umgebung beinhalten kann. Der Anwendungsserver 1108 kann eine beliebige zweckmäßige Hardware und Software zum Integrieren mit dem Datenspeicher 1110 beinhalten, wie es notwendig ist, um Aspekte von einer oder mehreren Anwendungen für die Client-Vorrichtung auszuführen und einen Großteil des Datenzugriffs und der Geschäftslogik für eine Anwendung zu handhaben. Der Anwendungsserver stellt Zugriffssteuerungsdienste in Zusammenwirkung mit dem Datenspeicher bereit und ist dazu in der Lage, Inhalt wie etwa Text, Grafiken, Audio und/oder Video zu erzeugen, der an den Benutzer übertragen wird und dem Benutzer durch den Webserver 1106 in diesem Beispiel in Form von HTML, XML oder einer anderen zweckmäßigen strukturierten Sprache dargeboten werden kann. Die Handhabung aller Anforderungen und Antworten sowie die Lieferung von Inhalt zwischen der Client-Vorrichtung 1102 und dem Anwendungsserver 1108 können durch den Webserver 1106 gehandhabt werden. Es versteht sich, dass der Web- und Anwendungsserver nicht erforderlich sind und lediglich beispielhafte Komponenten sind, da in dieser Schrift erörterter strukturierter Code auf jeder beliebigen zweckmäßigen Vorrichtung oder Host-Maschine ausgeführt werden kann, wie es hier an anderer Stelle erörtert ist.
-
Der Datenspeicher 1110 kann mehrere gesonderte Datentabellen, Datenbanken oder andere Datenspeichermechanismen und Medien zum Speichern von Daten in Bezug auf einen bestimmten Aspekt beinhalten. Zum Beispiel beinhaltet der veranschaulichte Datenspeicher Mechanismen zum Speichern von Inhalten (z. B. Produktionsdaten) 1112 und Benutzerinformationen 1116, die dazu verwendet werden können, Inhalte für die Produktionsseite darzubieten. Es ist zudem gezeigt, dass der Datenspeicher einen Mechanismus zum Speichern von Protokoll- oder Sitzungsdaten 1114 beinhaltet. Es versteht sich, dass viele andere Aspekte vorhanden sein können, die in dem Datenspeicher gespeichert werden müssen, wie etwa Seitenbildinformationen und Zugangsrechteinformationen, die gegebenenfalls in einem beliebigen der vorstehend aufgelisteten Mechanismen oder in zusätzlichen Mechanismen in dem Datenspeicher 1110 gespeichert werden können. Der Datenspeicher 1110 kann durch damit assoziierte Logik dazu betrieben werden, Anweisungen von dem Anwendungsserver 1108 zu empfangen und Daten als Reaktion darauf zu erlangen, zu aktualisieren oder anderweitig zu verarbeiten. In einem Beispiel kann ein Benutzer durch eine durch den Benutzer betriebene Vorrichtung eine Suchabfrage nach einer gewissen Art von Objekt übermitteln. In diesem Fall kann der Datenspeicher auf die Benutzerinformationen zugreifen, um die Identität des Benutzers zu verifizieren, und er kann auf die Katalogdetailinformationen zugreifen, um Informationen über Objekte dieser Art zu erhalten. Die Informationen können dann an den Benutzer ausgegeben werden, wie etwa in einer Ergebnisauflistung auf einer Webseite, die der Benutzer über einen Browser auf der Benutzervorrichtung 1102 betrachten kann. Informationen für einen bestimmten Gegenstand von Interesse können auf einer dedizierten Seite oder in einem dedizierten Fenster des Browsers betrachtet werden.
-
Jeder Server beinhaltet typischerweise ein Betriebssystem, das ausführbare Programmanweisungen für die allgemeine Administration und den allgemeinen Betrieb dieses Servers bereitstellt, und beinhaltet typischerweise ein computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor des Servers ermöglichen, dass der Server seine beabsichtigten Funktionen durchführt. Geeignete Umsetzungen für das Betriebssystem und die allgemeine Funktionalität der Server sind bekannt oder im Handel erhältlich und werden durch den Durchschnittsfachmann ohne Weiteres umgesetzt, insbesondere in Anbetracht der Offenbarung in dieser Schrift.
-
Die Umgebung ist in einer Ausführungsform eine verteilte Datenverarbeitungsumgebung unter Nutzung von mehreren Computersystemen und Komponenten, die über Kommunikationsverknüpfungen unter Verwendung von einem bzw. einer oder mehreren Computernetzwerken oder Direktverbindungen miteinander verbunden sind. Für den Durchschnittsfachmann ist jedoch ersichtlich, dass ein derartiges System in einem System mit einer geringeren oder größeren Anzahl von Komponenten als in 11 veranschaulicht gleichermaßen gut arbeiten könnte. Somit sollte die Darstellung des Systems 1100 in 11 als veranschaulichend und nicht einschränkend in Bezug auf den Umfang der Offenbarung erachtet werden.
-
Die verschiedenen Ausführungsformen können ferner in einer breiten Vielfalt von Betriebsumgebungen umgesetzt sein, zu denen in einigen Fällen ein oder mehrere Benutzercomputer oder Rechenvorrichtungen gehören können, die dazu verwendet werden können, eine beliebige Anzahl von Anwendungen zu betreiben. Benutzer- oder Client-Vorrichtungen können eine beliebige Anzahl von Universalcomputern beinhalten, wie etwa Desktop- oder Tablet-Computer, auf denen ein standardmäßiges Betriebssystem ausgeführt wird, sowie Mobilfunk-, drahtlose und tragbare Vorrichtungen, auf denen mobile Software ausgeführt wird und die dazu in der Lage sind, eine Reihe von Networking- und Messaging-Protokollen zu unterstützen. Ein derartiges System kann zudem eine Reihe von Workstations beinhalten, auf denen ein beliebiges aus einer Vielfalt von handelsüblichen Betriebssystemen und sonstige bekannte Anwendungen für Zwecke wie etwa Entwicklung und Datenbankverwaltung ausgeführt werden. Diese Vorrichtungen können zudem andere elektronische Vorrichtungen beinhalten, wie etwa Dummy Terminals, Thin Clients, Spielesysteme und andere Vorrichtungen, die dazu in der Lage sind, über ein Netzwerk zu kommunizieren.
-
Die meisten Ausführungsformen verwenden mindestens ein dem Fachmann bekanntes Netzwerk, um Kommunikation unter Verwendung eines beliebigen aus einer Vielfalt von handelsüblichen Protokollen zu unterstützen, wie etwa TCP/IP, FTP, UPnP, NFS und CIFS. Das Netzwerk kann zum Beispiel ein lokales Netzwerk, ein Weitbereichsnetzwerk, ein virtuelles privates Netzwerk, das Internet, ein Intranet, ein Extranet, ein öffentliches Fernsprechwählnetz, ein Infrarot-Netzwerk, ein Drahtlosnetzwerk und eine beliebige Kombination davon sein. In Ausführungsformen, die einen Webserver verwenden, kann der Webserver beliebige von einer Vielfalt von Server- oder Mid-Tier-Anwendungen ausführen, darunter HTTP-Server, FTP-Server, CGI-Server, Datenserver, Java-Server und Geschäftsanwendungsserver. Der bzw. die Server kann bzw. können zudem dazu in der Lage sein, Programme oder Skripte als Reaktion auf Anforderungen von Benutzervorrichtungen auszuführen, wie etwa durch Ausführen von einer oder mehreren Webanwendungen, die als ein oder mehrere Skripte oder Programme umgesetzt sein können, die in einer beliebigen Programmiersprache geschrieben sind, wie etwa Java®, C, C# oder C++ oder einer beliebigen Skriptsprache wie etwa Perl, Python oder TCL sowie Kombinationen davon. Die Server können auch Datenbankserver enthalten, einschließlich, ohne Einschränkung, der im Handel erhältlichen von Oracle®, Microsoft®, Sybase® und IBM®.
-
Die Umgebung kann eine Vielzahl von Datenspeichern und anderem Speicher und Speichermedien, wie vorstehend erörtert, beinhalten. Diese können an einer Vielfalt von Stellen angeordnet sein, wie etwa auf einem Speichermedium, das zu einem oder mehreren der Computer lokal (und/oder darin angeordnet) ist oder von beliebigen oder allen der Computer über das Netzwerk hinweg entfernt ist. In einem besonderen Satz von Ausführungsformen können die Informationen in einem Storage Area Network (SAN), das dem Fachmann bekannt ist, angeordnet sein. Gleichermaßen können beliebige erforderliche Dateien zum Durchführen der Funktionen, die den Computern, Servern oder anderen Netzwerkvorrichtungen zugeschrieben sind, gegebenenfalls lokal und/oder entfernt gespeichert werden. Wenn ein System computergestützte Vorrichtungen beinhaltet, kann jede derartige Vorrichtung Hardware-Elemente beinhalten, die über einen Bus elektrisch gekoppelt sein können, wobei die Elemente zum Beispiel mindestens eine zentrale Verarbeitungseinheit (central processing unit - CPU), mindestens eine Eingabevorrichtung (z. B. eine Maus, eine Tastatur, einen Controller, einen berührungsempfindlichen Bildschirm oder ein Tastenfeld) und mindestens eine Ausgabevorrichtung (z. B. eine Anzeigevorrichtung, einen Drucker oder einen Lautsprecher) beinhalten. Ein derartiges System kann außerdem eine oder mehrere Speichervorrichtungen beinhalten, wie etwa Plattenlaufwerke, optische Speichervorrichtungen und Solid-State-Speichervorrichtungen, wie etwa Direktzugriffsspeicher (random access memory - RAM) oder Festwertspeicher (read-only memory - ROM), sowie entfernbare Medienvorrichtungen, Speicherkarten, Flash-Karten usw. Derartige Vorrichtungen können zudem ein computerlesbares Speichermedien-Lesegerät, eine Kommunikationsvorrichtung (z. B. ein Modem, eine Netzwerkkarte (drahtlos oder drahtgebunden), eine Infrarot-Kommunikationsvorrichtung) und Arbeitsspeicher beinhalten, wie vorstehend beschrieben. Das computerlesbare Speichermedien-Lesegerät kann mit einem computerlesbaren Speichermedium, das entfernte, lokale, feste und/oder entfernbare Speichervorrichtungen sowie Speichermedien für vorübergehendes und/oder dauerhaftes Enthalten, Speichern, Übertragen und Abrufen von computerlesbaren Information darstellt, verbunden sein oder dazu konfiguriert sein, dieses aufzunehmen. Das System und die verschiedenen Vorrichtungen beinhalten zudem typischerweise eine Reihe von Softwareanwendungen, Modulen, Diensten oder anderen Elementen, die innerhalb mindestens einer Arbeitsspeichervorrichtung angeordnet sind, einschließlich eines Betriebssystems und Anwendungsprogrammen, wie etwa einer Client-Anwendung oder eines Webbrowsers. Es versteht sich, dass alternative Ausführungsformen zahlreiche Abwandlungen von der vorstehend beschriebenen aufweisen können. Zum Beispiel kann zudem angepasste Hardware verwendet werden und/oder spezielle Elemente können in Hardware, Software (einschließlich portabler Software wie etwa Applets) oder beiden umgesetzt sein. Ferner kann eine Verbindung zu anderen Rechenvorrichtungen, wie etwa Netzwerk-Eingabe/Ausgabe-Vorrichtungen, umgesetzt sein.
-
Speichermedien und andere nichttransitorische computerlesbare Medien, die Code oder Teile von Code enthalten, können beliebige zweckmäßige Medien beinhalten, die auf dem Fachgebiet bekannt sind oder verwendet werden, wie etwa unter anderem flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien, die in einem beliebigen Verfahren oder einer beliebigen Technik zur Speicherung von Informationen umgesetzt sind, wie etwa computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen oder anderen Daten, darunter RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnik, CD-ROM, Digital Versatile Disk (DVD) oder anderer optischer Speicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder ein beliebiges anderes Medium, das dazu verwendet werden kann, die gewünschten Information zu speichern, und auf das durch eine Systemvorrichtung zugegriffen werden kann. Auf Grundlage der Offenbarung und der in dieser Schrift bereitgestellten Lehren versteht der Durchschnittsfachmann, dass andere Möglichkeiten und/oder Verfahren vorhanden sind, um die verschiedenen Ausführungsformen umzusetzen.
-
Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden und nicht einschränkenden Sinne zu verstehen. Es versteht sich jedoch, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom weiteren Geist und Umfang der Erfindung abzuweichen, die in den Patentansprüchen dargelegt sind.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-