-
HINTERGRUND
-
Dank der zunehmenden Verbreitung mobiler Kommunikationsvorrichtungen und des Internet haben Benutzer die Möglichkeit, Bilder/Videos mühelos aufzunehmen und zu versenden. Die Bilder/Videos können verwendet werden, um Unterhaltungen mit anderen Benutzern zu ergänzen. Zum Beispiel kann ein Benutzer ein Bild aufnehmen und das Bild auf einer Website als Teil einer gerade über Social Media stattfindenden Diskussion posten.
-
In anderen Systemen können Bilder verwendet werden, um eine Kommunikationssitzung in ein Kontaktzentrum zu routen. Zum Beispiel offenbart die veröffentlichte
US-Patentanmeldung Nr. 2009/0190741 , dass eine Client-Anwendung verwendet werden kann, um ein Bild aufzunehmen, das für das Routen einer Kommunikationssitzung in ein Kontaktzentrum verwendet wird. In diesem Fall benötigt der Benutzer eine bestimmte Client-Anwendung und der Benutzer muss einen bestimmten Backend-Service kennen, um auf das Kontaktzentrum zugreifen zu können.
-
KURZFASSUNG DER ERFINDUNG
-
Diese und andere Erfordernisse werden durch die verschiedenen Ausführungsformen und Konfigurationen der vorliegenden Offenbarung erfüllt. Ein Bild wird aus einer Kommunikationsvorrichtung empfangen. Zum Beispiel nimmt ein Benutzer ein Bild einer Person mit einer Kamera in der Kommunikationsvorrichtung auf. Mit dem Bild sind Metadaten assoziiert, die erfasst werden, während das Bild aufgenommen wird. Zum Beispiel können die Metadaten ein Ort, ein Datum, eine Zeit und/oder dergleichen sein. (Mindestens) ein Objekt (z.B. ein Auto oder eine Person) wird zusammen mit Eigenschaften des Objekts in dem Bild erkannt. Zum Beispiel kann eine Eigenschaft eine Aktion sein, die mit dem Objekt assoziiert ist, wie etwa, dass eine Person läuft. Potenziell könnte die Eigenschaft ein Zustand sein, der mit einem Objekt assoziiert ist, wie etwa ein tropfender Wasserhahn oder ein zerbrochenes Fenster. Manchmal könnte das Interesse auf einem Abschnitt des Objekts liegen, wie etwa auf dem Pulli, den ein Passant trägt oder auf der Abdeckung, die einen Laptop umgibt. Es ist auch möglich, dass das Bild ein Ereignis wie etwa ein Softball-Turnier (Objekt) auf einem nahen Satz von Spielfeldern zeigt. Als Reaktion auf eine Analyse eines oder mehrerer Objekte auf die eine oder die mehreren Eigenschaften in Verbindung mit den Metadaten wird mindestens ein potenzieller Workflow bestimmt (z.B. ein Workflow, der darin besteht, dass die Polizei gerufen wird). Eine Analyse-Engine versucht, die Absicht der Person, die das Bild aufnimmt, zu bestimmen, daher hilft die Erzeugung einer potenziellen Liste von Workflows der Analyse-Engine den Fokus schärfer zu stellen, ohne dass dafür eine offene Beschreibungsschnittstelle für denjenigen, der das Bild aufnimmt, erforderlich ist, die sich für die Schnittstelle, die derjenige wünscht, der das Bild aufnimmt, als zu umständlich erweisen könnte. Eine Liste, die den einen oder die mehreren potenziellen Workflows identifiziert, wird an die Kommunikationsvorrichtung gesendet. Es wird eine Eingabe empfangen, um einen oder mehrere Workflows auszuwählen, wodurch der ausgewählte Workflow initiiert wird.
-
Die Formulierungen „mindestens ein(e)“, „ein(e) oder mehrere“, „oder“ und „und/oder“ sind offene Ausdrücke, die sowohl eine konjunktive als auch eine disjunktive Aussage haben. Zum Beispiel bedeutet jeder der Ausdrücke „mindestens eines von A, B und C“, „mindestens eines von A, B oder C“, „eines oder mehrere von A, B und C“, „eines oder mehrere von A, B oder C“, „A, B und/oder C“ und „A, B oder C“ entweder nur A, nur B, nur C, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen.
-
Der Begriff „eine“ Entität bedeutet eine oder mehrere solcher Entitäten. Somit können die Begriffe „ein(e)“, „ein(e) oder mehrere“ und „mindestens ein(e)“ hierin austauschbar verwendet werden. Man beachte außerdem, dass die Begriffe „umfassen“, „einschließen“ und „aufweisen“ austauschbar verwendet werden können.
-
Der Begriff „automatisch“ und Varianten davon, wie hierin verwendet, bedeuten jeglichen Prozess oder Arbeitsschritt, der typischerweise kontinuierlich oder halbkontinuierlich, weitgehend ohne eine menschliche Eingabe abläuft, wenn der Prozess oder Arbeitsschritt durchgeführt wird. Jedoch kann ein Prozess oder Arbeitsschritt automatisch sein, auch wenn für die Durchführung des Prozesses oder Arbeitsschritts eine menschliche Eingabe in einem wesentlichen oder nicht wesentlichen Umfang verwendet wird, wenn die Eingabe stattfindet, bevor der Prozess oder Arbeitsschritt durchgeführt wird. Eine menschliche Eingabe wird als materiell betrachtet, wenn eine solche Eingabe einen Einfluss darauf hat, wie der Prozess oder Arbeitsschritt durchgeführt wird. Eine menschliche Eingabe, durch welche der Durchführung des Prozesses oder Arbeitsschritts zugestimmt wird, wird nicht als „materiell“ betrachtet.
-
Aspekte der vorliegenden Offenbarung können die Form einer ausschließlichen Hardware-Ausführungsform, einer ausschließlichen Software-Ausführungsform (mit Firmware, residenter Software, Micro-Code etc.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hierin jeweils allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden kann. Es kann jede Kombination aus mindestens einem computerlesbaren Medium verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein.
-
Beispiele für computerlesbare Speichermedien sind unter anderem elektronische, magnetische, optische, elektromagnetische, Infrarot- oder Halbleitersysteme, -geräte oder - vorrichtungen oder jede geeignete Kombination davon. Als konkretere Beispiele (ohne Anspruch auf Vollständigkeit) für das computerlesbare Speichermedium können die folgenden genannt werden: eine elektrische Verbindung über eines oder mehrere Kabel, eine tragbare Computerdiskette, eine Festplatte, ein RAM (random access memory), ein ROM (read-only memory), ein EPROM (erasable programmable read-only memory oder Flash memory), ein Lichtwellenleiter, eine tragbare CD-ROM (compact disc read-only memory), eine optische Speichervorrichtung oder jede geeignete Kombination davon. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm zur Verwendung in oder in Verbindung mit Befehlsausführungssystemen, -geräten oder - vorrichtungen enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann beispielsweise ein weitergegebenes Daten- bzw. Ausgabesignal, in dem computerlesbarer Programmcode verkörpert ist, in einem Basisband oder als Teil einer Trägerwelle beinhalten. Solch ein weitergegebenes Signal kann eine beliebige von verschiedenen Formen aufweisen, unter anderem kann es elektromagnetisch, optisch oder irgendeine geeignete Kombination davon sein. Ein computerlesbares Signalmedium kann irgendein computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm zur Verwendung in oder in Verbindung mit Befehlsausführungssystemen, -geräten oder - vorrichtungen weitergeben, verbreiten oder transportieren kann. Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums versendet werden, unter anderem drahtlos, über Kabel, Lichtwellenleiter, HF usw. oder jede geeignete Kombination davon.
-
Die Begriffe „bestimmen“, „kalkulieren“ und „berechnen“ und Varianten davon, wie hierin verwendet, werden austauschbar verwendet und schließen jede Art von Methodik, Prozess, mathematischer Operation oder Technik ein.
-
Der Begriff „Einrichtung“, wie hierin verwendet, soll in seiner breitestmöglichen Auslegung gemäß 35 U.S.C. 112(f) und/oder Absatz 112, Abschnitt 6 interpretiert werden. Somit soll ein Anspruch, der den Begriff „Einrichtung“ enthält, alle Strukturen, Materialien oder Handlungen, die hierin aufgeführt sind, und all ihre Äquivalente einschließen. Ferner sollen die Strukturen, Materialien oder Handlungen und ihre Äquivalente all diejenigen einschließen, die in der Kurzfassung, der kurzen Beschreibung der Zeichnungen, der ausführlichen Beschreibung, der Zusammenfassung und den Ansprüchen selbst beschrieben werden.
-
Das Obige ist eine vereinfachte Kurzfassung, um ein Verstehen mancher Aspekte der Offenbarung zu ermöglichen. Diese Kurzfassung ist weder ein tiefgehender noch umfassender Überblick über die Offenbarung und ihre verschiedenen Ausführungsformen. Sie soll weder wesentliche noch kritische Elemente der Offenbarung identifizieren noch den Bereich der Offenbarung abgrenzen, sondern ausgewählte Konzepte der Offenbarung in vereinfachter Form als Einführung zu der nachstehend vorgelegten ausführlicheren Beschreibung darstellen. Es sein klargestellt, dass andere Ausführungsformen der Offenbarung möglich sind, für die eines oder mehrere von den oben angegebenen oder nachstehend ausführlich beschriebenen Merkmalen entweder allein oder in Kombination verwendet werden. Auch wenn die Offenbarung anhand von Ausführungsbeispielen dargestellt wird, sei außerdem klargestellt, dass einzelne Aspekte der Offenbarung separat beansprucht werden können.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines ersten, der Erläuterung dienenden Systems für eine Analyse eines Bildes, um Workflows zu erkennen.
- 2 ist ein Blockdiagramm eines Ausführungsbeispiels für ein Workflow-System.
- 3 ist eine Darstellung eines Beispielsbildes.
- 4 ist eine Darstellung eines Beispiels für eine Anzeige einer Liste potenzieller Workflows.
- 5 ist ein Ablaufschema eines Prozesses zum Analysieren eines Bildes, um Workflows zu erkennen.
- 6 ist ein Ablaufschema eines Prozesses zum Erzeugen von Software-Objekten, die verwendet werden, um Workflows auf einem Workflow-Server zu initiieren.
- 7 ist ein Ablaufschema eines Prozesses zum Analysieren von Bildern, um Workflows zu erkennen.
- 8 ist ein Ablaufschema eines Prozesses zum Registrieren von Workflows auf unterschiedlichen Workflow-Servern in einem Computernetz.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein Blockdiagramm eines ersten, der Erläuterung dienenden Systems 100 für eine Analyse eines Bildes, um Workflows zu erkennen. Das erste, der Erläuterung dienende System 100 umfasst Kommunikationsvorrichtungen 101A-101N, ein Netz 110, ein Workflow-System 120 und Workflow-Server 130A-130N. Man beachte, dass die einzelnen Kommunikationsvorrichtungen 101A-101N nicht jeweils einen eigenen Workflow-Server 130 benötigen. Die Nummerierung der Workflow-Server beruht auf Zweckmäßigkeit.
-
Die Kommunikationsvorrichtung 101 kann irgendeine Benutzerkommunikationsvorrichtung sein oder einschließen, die im Netz 110 kommunizieren kann, wie etwa ein Personal Computer (PC), ein Telefon, ein Mobiltelefon, ein Personal Digital Assistant (PDA), eine Tablet-Vorrichtung, eine Notebook-Vorrichtung, ein Smartphone, ein Smart-TV und/oder dergleichen. Wie in 1 gezeigt ist, kann eine beliebige Anzahl von Kommunikationsvorrichtungen 101A-101N, auch nur eine einzige Kommunikationsvorrichtung 101, mit dem Netz 110 verbunden werden.
-
Die Kommunikationsvorrichtung 101A umfasst einen Prozessor 102A, eine Kamera 103A, einen Beschleunigungsmesser 104A, ein Magnetometer 105A, ein globales Satellitensystem zur Positionsbestimmung (GPS) 106A, eine Uhr 107A, einen Browser 108A und ein Mikrofon 109A. Der Prozessor 102A kann ein beliebiger Hardware-Prozessor sein, der Informationen verarbeiten kann, wie etwa ein Mikroprozessor, ein digitaler Signalprozessor (DSP), ein Mikrocontroller, ein Mehrkernprozessor, ein anwendungsspezifischer Prozessor, Schnittstellen für eine Kommunikation über das Netz, zusammen mit Software für auf Nachrichten basierende Kommunikation mit anderen, einschließlich von Menschen, die ähnliche Vorrichtungen und Dienste verwenden, um unter Verwendung solcher Nachrichten automatisch zu interagieren, und/oder dergleichen.
-
Die Kamera 103A kann eine beliebige Hardware-Kamera 103 sein oder einschließen, die Bilder aufnehmen kann. Die Kamera 103A kann Bilder aufnehmen, wie etwa Fotos und/oder Filme.
-
Der Beschleunigungsmesser 104A kann jedes Hardware-Element sein, dass eine Beschleunigung bestimmen kann, wie etwa ein mikromechanischer Beschleunigungsmesser, ein piezoelektrischer Beschleunigungsmesser, ein piezoresistiver Beschleunigungsmesser, ein kapazitiver Beschleunigungsmesser und/oder dergleichen. Der Beschleunigungsmesser 104A kann verwendet werden, um eine Geschwindigkeit/Bewegung der Kommunikationsvorrichtung 101A zu bestimmen. Der Beschleunigungsmesser 104A kann in Verbindung mit der Kamera 103A verwendet werden, um eine Geschwindigkeit der Kommunikationsvorrichtung 101A bei Aufnahme des Bildes zu bestimmen. Zum Beispiel kann sich die Kommunikationsvorrichtung 101A in einem Auto befinden, dass sich bewegt, wenn das Bild aufgenommen wird. Die Geschwindigkeit der Kommunikationsvorrichtung 101A, wenn die Kamera 103A ein Bild aufnimmt, kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Das Magnetometer 105A kann irgendein Hardware-Element, das unter Verwendung des Erdmagnetfelds eine Richtung bestimmt, sein oder einschließen. Der Beschleunigungsmesser 105A kann in Verbindung mit der Kamera 103A verwendet werden, um eine Richtung (z.B. Norden) der Kamera 103A bei Aufnahme des Bildes zu bestimmen. Die Ausrichtung der Kamera 103A, wenn die Kamera 103A ein Bild aufnimmt, kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Das GPS-System 106A kann irgendein Hardware-System sein oder einschließen, das GPS-Signale erfassen kann, um einen Ort der Kommunikationsvorrichtung 101A zu bestimmen. Außerdem kann der Ort auf Basis einer Triangulation von Zellular- oder WiFi-Signalen und/oder einer Verbindung zu einem Netz 110 bestimmt werden. Der Ort, wo sich die Kommunikationsvorrichtung 101A befindet, wenn die Kamera 103A ein Bild aufnimmt, kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Die Uhr 107A kann irgendeine Uhr 107 sein oder einschließen, die verwendet werden kann, um eine Zeit und ein Datum zu bestimmen, zu der bzw. an dem ein Bild aufgenommen wird. Die Zeit und das Datum, zu der bzw. an dem die Kamera 103A ein Bild aufnimmt, können als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Der Browser 108A kann ein beliebiger Browser 108, der in Verbindung mit dem Web-Server 124 arbeiten kann, sein oder kann einen solchen einschließen. Zum Beispiel kann der Browser 108A Firefox™, Microsoft Explorer™, Safari, Google Chrome™ und/oder dergleichen sein.
-
Das Mikrofon 109A kann irgendein Mikrofon sein oder einschließen, das verwendet werden kann, um Toninformationen bei Aufnahme des Bildes zu erfassen. Die Toninformationen bei Aufnahme des Bildes können im Zeitverlauf sein, wie etwa während eines Videos. Die Toninformationen können als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Zum Beispiel können die Töne von abgefeuerten Schüssen aufgenommen und als Metadaten (z.B. als MP3-Datei) gespeichert werden, wenn ein Bild/Video aufgenommen wird. Die Toninformationen einen Zeitraum, der mit einem Standbild assoziiert ist, oder Bilder im Zeitraffer betreffen. Wenn ein Standbild aufgenommen wird, kann beispielsweise ein Ton für einen Zeitraum vor und/oder nach dem Aufnehmen des Bildes als Metadaten gespeichert werden.
-
Auch wenn dies nicht dargestellt ist, kann die Kommunikationsvorrichtung 101A andere Elemente umfassen, die einen Abstand von der Kamera 103A zum Bild erfassen können (z.B. Radar). Der Abstand vom Bild 101A, wenn die Kamera 103A ein Bild aufnimmt, kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Alternativ dazu können andere Systeme verwendet werden, um einen Winkel der Kamera 103A in Bezug auf ein Bild zu bestimmen. Eine Winkelerfassung kann unter Verwendung verschiedener Arten von Bildverarbeitung bewerkstelligt werden. Der Winkel, in dem die Kamera 103A ein Bild aufnimmt, kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Ein Höhenmesser kann verwendet werden, um eine Höhenlage der Kommunikationsvorrichtung 101 bei Aufnahme des Bildes zu bestimmen. Die Höhenlage bei Aufnahme des Bildes kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
Ein Thermometer kann verwendet werden, um eine Temperatur bei Aufnahme des Bildes zu bestimmen (z.B. 40 Grad). Die Temperatur bei Aufnahme des Bildes kann als Metadaten gespeichert werden, die mit dem Bild assoziiert sind. Falls das Bild ein Film ist, können die Metadaten Abtastwerte über einen Zeitverlauf des Films sein.
-
In 1 zeigen die Kommunikationsvorrichtungen 101B-101N die Elemente 102-108 nicht. Jedoch können die Kommunikationsvorrichtungen 101B-101N manche oder alle von den Elementen 102-108 und/oder die zusätzlichen oben erörterten Elemente umfassen.
-
Das Netz 110 kann irgendeine Zusammenstellung von Kommunikationsgeräten sein, die elektronisch übermittelte Daten senden und empfangen können, wie das Internet, ein überregionales Netz (Wide Area Network, WAN), ein lokales Netz (Local Area Network, LAN), ein Voice-over-IP-Netz (VoIP), das öffentliche Telekommunikationsnetz (Public Switched Telephone Network, PSTN), ein paketvermitteltes Netz, ein leitungsvermitteltes Netz, ein zellulares Netz, eine Kombination davon und dergleichen. Das Netz 110 kann eine Reihe unterschiedlicher elektronischer Protokolle, wie Ethernet, Internet Protocol (IP); Session Initiation Protocol (SIP), Integrated Services Digital Network (ISDN) und dergleichen verwenden. So ist das Netz 110 ein elektronisches Kommunikationsnetz, das dafür ausgelegt ist, Nachrichten über paket- und/oder leitungsvermittelte Kommunikation zu transportieren.
-
Das Workflow-System 120 kann ein beliebiges Hardware-System sein oder einschließen, wie etwa ein(en) Server, ein Server-Cluster, ein Kommunikationssystem und/oder dergleichen. Das Workflow-System 120 wird verwendet, um Workflows auf Basis einer Bildanalyse zu erkennen.
-
Das Workflow-System 120 umfasst ferner einen Prozessor 121, einen Bildprozessor 122, eine Workflow-Schnittstelle 123 und einen Web-Server 124. Der Prozessor 121 kann mit dem Prozessor 102 identisch oder verschieden davon sein. Der Prozessor 121 kann in der Lage sein, mehrere Kommunikationssitzungen mit mehreren Kommunikationsvorrichtungen 101 zu unterstützen.
-
Der Bildprozessor 122 kann ein(en) Hardware- und/oder Software-Prozessor sein oder einschließen, der Bilder verarbeiten kann, wie etwa ein neuronales Netz, um unterschiedliche Objekte und Eigenschaften, die mit einem Objekt assoziiert sind, Aktionen, die mit Objekten assoziiert sind oder Ereignisse, die mit Objekten assoziiert sind, (Eigenschaften) zu bestimmen. Ein Objekt kann jede Art von Objekt in einem Bild sein, wie etwa ein Auto, eine Person, ein Zeichen, eine Vorrichtung (z.B. ein TV, ein Drucker, ein Computer usw.), ein Kleidungsstück, ein Haus, ein Haushaltsgerät, ein Gebäude, eine Tür, eine Straße, ein Berg, ein Fahrzeug und/oder dergleichen. Eine Eigenschaft, die mit einem Objekt assoziiert sein kann, kann dessen Farbe, seine Machart (Hersteller) oder sein Modell (Typ) oder sein Zustand (unbeschädigt/beschädigt/kaputt) oder irgendein anderes Unterscheidungsmerkmal sein. Die Aktion könnte etwas sein, was das Objekt macht, wie etwa, dass eine Person läuft oder eine Person etwas anstarrt oder dass ein Wasserhahn tropft oder dass ein Haus brennt. Eine Aktion ist ein sichtbarer Zustand, der mit dem Objekt aus dem Bild assoziiert werden kann. Ein Ereignis ist ein virtuelles Objekt, das aus einem Bild heraus erkannt werden kann, beispielsweise, dass eine Ansammlung von Baseball-Spielern, die auf einem Baseballfeld gruppiert sind, gerade an einem Baseballspielereignis teilnimmt. Außerdem, dass eine Ansammlung von Zuschauern, die einen Sprecher auf einem Podium ansehen, einem Vortrag beiwohnen. Dies sind alles einfache Beispiele für Informationen, die aus einer Bildanalyse extrahiert werden können, und bildet keine vollständige Liste aller Objekte, Eigenschaften, Aktionen oder Ereignisse. Der Bildprozessor 122 kann Bilder unter Verwendung verschiedener Bildverarbeitungstechniken verarbeiten, um Objekte zu erkennen. Zum Beispiel kann der Bildprozessor 122 eine pixelbasierte Segmentierung, eine kantenbasierte Segmentierung, eine regionsbasierte Segmentierung, einen Saatregions-Wachstumsalgorithmus, einen Watershed-Algorithmus und/oder dergleichen verwenden, um separate Objekte in einem Bild zu erkennen.
-
Der Bildprozessor 122 nimmt das/die erkannte(n) Objekt(e), Eigenschaft(en) und Metadaten, die mit dem Bild assoziiert sind, um mögliche Workflows auf Basis des Bildes zu bestimmen. Ein Workflow ist ein Prozess, der verwendet wird, um den Benutzer der Kommunikationsvorrichtung 101 zu unterstützen. Zum Beispiel kann ein Workflow darin bestehen, dass ein Installateur einen tropfenden Duschkopf repariert, dass das Bild an einen 911-Notfalldienst geschickt wird, dass Ersatzteile von einer Fabrik bestellt werden, dass ein Abschleppwagen bestellt wird, dass eine Bedienungsanleitung zum Reparieren eines Reifens beschafft wird, dass eine Speisekarte eines Restaurants bereitgestellt wird, dass eine Ware gekauft wird und/oder dergleichen.
-
Die Workflow-Schnittstelle 123 ist eine Anwendungsprogrammierschnittstelle (API), die verwendet wird, um Informationen zu senden, um einen Workflow auf einem Workflow-Server 130 auszuführen. Die Workflow-Schnittstelle 123 kann Informationen in einem Computer-Format in ein Format umwandeln, das vom jeweiligen Workflow-Server 130 verwendet werden kann.
-
Der Web-Server 124 kann jeder Web-Server 124 sein, der mit dem Browser 108 arbeiten kann, wie etwa der Apache-Web-Server, der IIS-Web-Server von Microsoft, nginx, GWS und/oder dergleichen. Der Web-Server 124 kann eine Anwendung hosten, die von der Kommunikationsvorrichtung 101 verwendet wird, um einen Workflow zu erkennen.
-
Die Workflow-Server 130A-130N können beliebige Hardware-Server sein oder einschließen, die einen Workflow verarbeiten können, wie etwa ein Kontaktzentrum, ein Projektverwaltungssystem, ein Arbeitsnachverfolgungssystem, eine Suchmaschine, ein Warenbestandsbestellsystem, ein Fabrikleitsystem, ein 911-Notfallsystem, ein Brandüberwachungssystem, ein Polizei-/Feuerwehralarmierungssystem, ein Kraftfahrzeugreparatursystem, ein Abschleppdienstsystem, eine Gärtnereidienstleistungsanwendung und/oder dergleichen. Die Workflow-Server 130A-130N können Anwendungsprogrammierschnittstellen (APIs) umfassen, die dem Workflow-System 120 ermöglichen, Software-Objekte zu versenden, die verwendet werden können, um einen Workflow auf einem Workflow-Sever 130 zu initiieren.
-
2 ist ein Blockdiagramm eines Ausführungsbeispiels für ein Workflow-System 120. Zusätzlich zu den Elementen 121-124 kann das Workflow-System 120 ferner einen Workflow-Registrierungsdienst 226, einen Workflow-Ersteller bzw. Builder 227 und einen Workflow-Ausführer bzw. Executor 228 umfassen. Der Workflow-Registrierungsdienst 226 kann beliebige Software/Firmware sein oder einschließen, die eine Registrierung von Workflow-Diensten (z.B. auf einem Workflow-Server 130) am Workflow-System 120 ermöglicht. Wenn ein Workflow-Dienst registriert wird, kann der Bildprozessor 122 über die Workflow-API 224 auf den Workflow-Dienst zugreifen, um einen Workflow auszuführen.
-
Der Workflow Builder 227 kann beliebige Software/Firmware sein oder einschließen, die auf Basis einer Erkennung eines Objekts in einem Bild automatisch einen neuen Workflow erstellen kann. Der Workflow Builder 227 kann einen Workflow erstellen, der für einen späteren Zugriff durch einen Benutzer auf Basis einer Erkennung eines ähnlichen Objekts in einem Bild gespeichert werden kann.
-
Der Workflow Executor 228 wird verwendet, um neu erzeugte Workflows, die vom Workflow Builder 227 erschaffen worden sind, auszuführen. Der Workflow Executor 228 kann eine Anwendung sein, die eine bestimmte Art von Workflow ausführt, wie etwa eine Web-Suche, eine Datenbanksuch und/oder dergleichen.
-
Der Bildprozessor 122 kann auch einen Object Builder 223 umfassen. Der Object Builder 223 kann beliebige Software/Firmware sein oder einschließen, die Software-Objekte erstellen kann. Die Software-Objekte werden verwendet, um Daten bereitzustellen, die an die Workflow-Server 130 gesendet werden können, um einen Workflow auszuführen.
-
Die Workflow-Schnittstelle 123 kann auch eine Workflow-API 224 umfassen. Die Workflow-API 224 ermöglicht dem Workflow-System 120 den Zugriff auf unterschiedliche Workflow-Server 130A-130N, die verschiedene Protokolle/Computer-Formate verwenden können. Zum Beispiel kann der Bildprozessor 122 Software-Objekte in einem Format bereitstellen, die in ein spezifisches Format des Workflow-Servers 130 umgewandelt werden.
-
3 ist eine Darstellung eines Beispielsbildes 300. Ein Bild 300 kann ein Standbild, ein Vollvideo und alles dazwischen sein. Zum Beispiel kann die Kamera 103 eine Sekunde vor und eine Sekunde nach einem Schuss aufnehmen. Alternativ dazu kann die Kamera Zeitrafferbilder oder ein Full Motion Video aufnehmen. Wie hierin erörtert, kann ein Bild 300 jede der obigen Beschreibungen umfassen.
-
In 3 ist das Bild 300 ein Foto (Standbild) eines Ladens, das von der Kamera 103 in der Kommunikationsvorrichtung 101 aufgenommen wird. Das Bild 300 umfasst Objekte 310A-310N. Das Objekt 310A ist ein Ladenobjekt für die ABC Appliance Company. Das Objekt 310B ist ein Türobjekt. Das Objekt 310C ist ein Zeichenobjekt, das einen TV-Verkauf für die Marke XYZ-TVs anzeigt. Das Objekt 310D ist ein Fernseherobjekt eines Fernsehers XYZ Modell 4. Das Objekt 310E ist ein Personenobjekt. Das Objekt 310N ist ein Gehsteigobjekt. Ein Riss 330 befindet sich im Gehsteigobjekt 310N.
-
4 ist eine Darstellung eines Beispiels für eine Anzeige einer Liste 410 potenzieller Workflows 420A-420N. Die Liste 410 potenzieller Workflows 420A-420N basiert auf dem Bild 300 von 3. Der potenzielle Workflow 420A besteht darin, eine Website für die ABC Appliance Company in der 22. Straße anzuzeigen. Der potenzielle Workflow 420B besteht darin, Informationen über den Fernseher XYZ Modell 4 anzuzeigen. Der potenzielle Workflow 420C besteht darin, eine Liste anderer Läden anzuzeigen, die den Fernseher XYZ Modell 4 verkaufen. Der potenzielle Workflow 420D besteht darin, eine Nachricht über einen stattfindenden Einbruch an einen 911-Dienst zu senden. Der potenzielle Workflow 420N besteht darin, Informationen über die Zweischeibentür Modell 4 anzuzeigen.
-
Dem Benutzer werden auch weitere Optionen 430-431 angeboten. Die Option 431 besteht darin, zusätzliche Workflows 420 anzuzeigen. Die Option 431 besteht darin, den Prozess zu beenden.
-
Wenn das Bild 300 von der Kamera 103 aufgenommen wird, werden Metadaten mit dem Bild 300 assoziiert. Zum Beispiel ein Datum (Freitag, 27. April 2017), eine Tageszeit 21:30 Uhr, ein Ort (GPS-Koordinaten, eine Ausrichtung der Kamera 103, eine Geschwindigkeit der Kamera 103 und/oder dergleichen. Der Bildprozessor 122 analysiert das Bild 300, um die Objekte 310A-310N zu erkennen. Der Bildprozessor 122 erkennt außerdem eine Eigenschaft (Eigenschaften), die mit den Objekten 310A-310N assoziiert ist (sind), um die potenziellen Workflows 420A-420N zu erkennen. Die erkannten Objekte 310A-310N/Eigenschaften werden in Verbindung mit den Metadaten analysiert, um potenzielle Workflows 420A-420N zu bestimmen.
-
Zum Beispiel erkennt der Bildprozessor 122 das Ladenobjekt 310A für die ABC Appliance Company. Auf Basis des Ortes und der Ausrichtung der Kamera 103 bei Aufnahme des Bildes 300 bestimmt der Bildprozessor 122, dass der Ort des Ladens der ABC Appliance Company 306 East 22nd Street in New York City ist. Auf Basis dieser Information bestimmt der Bildprozessor 122 den potenziellen Workflow 420A, der in der Anzeige einer Web-Seite für die ABC Appliance Company in der 306 East 22nd Street in New York City besteht.
-
Auf ähnliche Weise bestimmt der Bildprozessor 122 auf Basis des Fernseherobjekts eines Fernsehers XYZ Modell 4 (310D) den potenziellen Workflow 420B zur Bereitstellung von Informationen über den Fernseher XYZ Modells 4. Zum Beispiel kann der Bildprozessor 122 auf Basis der Tageszeit 21:30 Uhr bestimmen, dass der Laden geschlossen ist (z.B. durch Durchführen einer Web-Suche). Ebenso wird der potenzielle Workflow 420C auf Basis der Zeit und ihrer Beziehung zum potenziellen Workflow 420B bestimmt.
-
Der Bildprozessor 122 erkennt das Personenobjekt 310E. Der Bildprozessor 122 bestimmt eine Eigenschaft (dass die Person sich duckt) für das Personenobjekt 310E. Auf Basis der Metadaten verwendet der Bildprozessor 122 die Metadaten, um zu bestimmen, dass der Elektronikladen ABC geschlossen ist (am Freitag um 19:00 Uhr schließt). Aufgrund dessen, dass die Person sich duckt (sich zu verstecken versucht), und aufgrund der Tatsache, dass der Laden geschlossen ist, bestimmt der Bildprozessor 122 den potenziellen Workflow 420D.
-
Der Bildprozessor 122 bestimmt auf Basis des Türobjekts 310B, dass das Türobjekt eine Zweischeibentür des Modells 4B ist. Zum Beispiel durch die Durchführung einer Web-Suche, um ähnlich aussehende Türen zu finden. Der Bildprozessor 122 bestimmt, dass der potenzielle Workflow 420N darin besteht, Informationen über die Zweischeibentür des Modells 4B anzuzeigen.
-
Ein ähnlicher Prozess kann für das Gehsteigobjekt 310N durchgeführt werden. Zum Beispiel ein Workflow 420 zum Reparieren des Gehsteigs (aufgrund des Risses 330). Jedoch sind in 4 etwaige potenzielle Workflows 420 für das Gehsteigobjekt 310N nicht gezeigt, weil die potenziellen Workflows für das Gehsteigobjekt 310N einen geringeren Vertrauenswert aufweisen (d.h., es ist weniger wahrscheinlich, dass es sich um das handelt, wonach der Benutzer sucht). Der Benutzer kann auf die Option zum Anzeigen zusätzlicher Workflows 430 klicken, um einen Workflow 420 für das Gehsteigobjekt 310N zu erhalten.
-
5 ist ein Ablaufschema eines Prozesses zum Analysieren eines Bildes 300, um Workflows 420 zu erkennen. Zur Erläuterung handelt es sich bei der Kommunikationsvorrichtung 101, dem Browser 108, dem Workflow-System 120, dem Bildprozessor 122, der Workflow-Schnittstelle 123, dem Web-Server 124, dem Object Builder 223, der Workflow-API 224, dem Workflow-Registrierungsdienst 226, dem Workflow Builder 227 und dem Workflow Executor 228 um durch gespeicherte Programme gesteuerte Einheiten, wie etwa ein Computer oder ein Prozessor, der das Verfahren von 5-8 und die hierin beschriebenen Prozesse durch Ausführen von Programmbefehlen durchführt, die in einem computerlesbaren Speichermedium, wie etwa einem Speicher oder einer Diskette, gespeichert sind. Auch wenn die in 5-8 beschriebenen Verfahren in einer bestimmten Reihenfolge gezeigt sind, wird ein Fachmann erkennen, dass die Schritte in 5-8 in anderen Reihenfolgen und/oder in einer Multithreading-Umgebung durchgeführt werden können. Darüber hinaus können verschiedene Schritte je nach Implementierung weggelassen oder hinzugefügt werden.
-
Der Prozess beginnt mit Schritt 500. Ein Benutzer nimmt in Schritt 502 unter Verwendung der Kamera 103 an der Kommunikationsvorrichtung 101 ein Bild 300 auf. Jedoch muss das Bild 300 nicht von der Kamera 103 in der Kommunikationsvorrichtung 101 aufgenommen werden. Zum Beispiel kann der Benutzer ein Bild aufnehmen, das von einer Webseite angezeigt wird. Wenn das Bild 300 aufgenommen wird, können Metadaten mit dem Bild 300 assoziiert werden. Zum Beispiel können die Metadaten ein Datum/eine Tageszeit, einen Winkel, einen Ort, eine Geschwindigkeit, einen Abstand, eine Richtung, eine Höhenlage, eine Temperatur und/oder dergleichen bei Aufnahme des Bildes umfassen. Zusätzlich zu den oben beschriebenen Arten von Metadaten können andere Arten von Metadaten, die mit dem Bild 300 assoziiert sind, einen Namen einer Person, die das Bild 300 aufnimmt, welche Art von Kleidung die Person bei der Aufnahme des Bildes 300 trägt (z.B. dicke Kleidung, was anzeigt, dass es kalt sein kann), eine Telefonnummer der Kommunikationsvorrichtung 101 und/oder dergleichen einschließen.
-
Das Bild 300/die Metadaten werden in Schritt 504 an das Workflow-System 120 gesendet. Das Bild 300/die Metadaten können auf verschiedene Weise gesendet werden. Zum Beispiel kann der Benutzer auf eine Schaltfläche drücken, die an der Kommunikationsvorrichtung 101A angezeigt wird, und die das Bild an eine bekannte Adresse des Workflow-Systems 120 sendet. Das Bild 300 kann unter Verwendung von Multi-Media Service (MMS), Rich Client Service (RCS) und/oder dergleichen an das Workflow-System 120 gesendet werden.
-
Das Workflow-System 120 empfängt in Schritt 506 das Bild 300/die Metadaten. Der Bildprozessor 122 analysiert in Schritt 508 das Bild 300 auf Objekte 310/Eigenschaften/Aktionen/Ereignisse (z.B. wie oben erörtert) in Verbindung mit den Metadaten. Der Bildprozessor 122 bestimmt in Schritt 510 potenzielle Workflows 420 (z.B. Workflows 420A-420N). Der Bildprozessor 122 sendet in Schritt 512 die Liste 410 potenzieller Workflows 420 über die Workflow-Schnittstelle 123. Zum Beispiel kann die Liste 410 potenzieller Workflows 420 über den Web-Server 124 an den Browser 108 als Text/RCS-Nachricht an die Kommunikationsvorrichtung 101 gesendet werden. Die Liste 410 potenzieller Workflows 420 kann nur auf Basis des Empfangs des Bildes 300 oder auf Basis des Bildes 300 und der Metadaten bestimmt werden.
-
Die Kommunikationsvorrichtung 101 empfängt in Schritt 514 die Liste 410 potenzieller Workflows 420. Die Kommunikationsvorrichtung 101 zeigt in Schritt 516 die Liste 410 potenzieller Workflows 420 an. Der Benutzer wählt einen von den Workflows 420 aus. Die Kommunikationsvorrichtung 101 empfängt in Schritt 518 die Auswahl der Workflows 420. In einer Ausführungsform kann der Benutzer mehrere Workflows 420 (z.B. den Workflow 420A und 420B) auswählen. Die Kommunikationsvorrichtung 101 sendet in Schritt 520 den ausgewählten Workflow 420 an das Workflow-System 120. Das Workflow-System 120 empfängt den ausgewählten Workflow 420 in Schritt 522. Der Bildprozessor 122 sendet in Schritt 524 Daten, die mit dem ausgewählten Workflow 420 assoziiert sind, über die Workflow-Schnittstelle 123 (unter Verwendung der Workflow-API 224 für den Workflow-Server 130) an den Workflow-Server 130.
-
Die Daten zum Initiieren des ausgewählten Workflows 420 können auf Basis der Art des Workflows 420 variieren. Falls der Benutzer beispielsweise den Workflow 420D ausgewählt hat, dann kann der Workflow-Server 130 ein 911-Dienst für ein Polizeikommissariat in New York City sein. Die Daten können das Bild 300, das Datum/die Uhrzeit, den Ort, einen Namen einer Person, die das Bild 300 aufnimmt, eine Telefonnummer der Kommunikationsvorrichtung 101 und eine Nachricht, die einen potenziellen Einbruch an der Adresse 306 East 22nd Street angibt, einschließen.
-
Der Workflow-Server 130 empfängt in Schritt 526 die Workflow-Daten. Der Workflow-Server 130 initiiert in Schritt 528 den Workflow 420, und in Schritt 530 endet der Prozess. Falls der Benutzer beispielsweise den Workflow 420D ausgewählt hat, kann eine Initiierung des Workflows 420D beispielsweise darin bestehen, einen Handlungsvorschlag an das New Yorker Polizeikommissariat zu senden. Dies würde dem New Yorker Polizeikommissariat ermöglichen, einen Beamten zum ABC-Elektronikladen in der 306 East 22nd Street zu schicken.
-
Der Prozess von 5 hat den Vorteil, dass der Benutzer den konkreten Typ des Workflows 420 oder wie er auf den Workflow 420 zugreifen soll, nicht kennen muss. Die Bestimmung des Workflows 420 erfordert keine andere Eingabe des Benutzers als das Senden des Bildes 300. Zum Beispiel kann es sein, dass der Benutzer nicht weiß, wer die Tür 310B gemacht hat, dass die Tür 310B eine Zweischeibentür des Modells 4B ist, wer der Hersteller ist, oder wie er an Informationen über die Tür 310B kommen kann, und/oder dergleichen. Das Workflow-System 120 erzeugt diese Fähigkeit durch das einfache Senden des Bildes 300 an das Workflow-System 120.
-
Falls der Benutzer in Schritt 518 zusätzliche Workflows 430 erzeugen will (z.B. wenn das, was der Benutzer sucht, nicht auf der Liste der Workflows 410 steht), sendet die Kommunikationsvorrichtung 101 eine Nachricht an das Workflow-System 120 (nicht gezeigt), um die nächste Liste potenzieller Workflows 410 zu erhalten,, statt in Schritt 520 den ausgewählten Workflow zu senden. Das Workflow-System 120 bestimmt in Schritt 510 die nächste Liste von Workflows 410 (solchen, die zu Anfang unter einem Vertrauenswert gelegen waren (siehe Schritte 720 und 722 von 7). Das Workflow-System 120 sendet in Schritt 512 die nächste Liste von Workflows 410, und der Prozess wird fortgesetzt wie in 6 gezeigt.
-
6 ist ein Ablaufschema eines Prozesses zum Erzeugen von Software-Objekten, die verwendet werden, um Workflows 420 auf einem Workflow-Server 130 zu initiieren. Der Prozess von 6 ist ein Ausführungsbeispiel der Schritte 524, 526 und 528. Nach Empfangen des ausgewählten Workflows 420 in Schritt 522 erstellt der Object Builder 223 in Schritt 600 ein Software-Objekt, das von der Workflow-API 224/der Workflow-Schnittstelle 123 verwendet werden kann. Zum Beispiel kann die Workflow-API 224 Java-Software-Objekte verwenden, die vom Object Builder 223 erstellt worden sind, wie nachstehend gezeigt.
- public static int send_workflow(string sparam1, string sparam 2, int workflow_type)
-
Der Object Builder 223 gibt im Sparam 1 die Zeichenfolge „ABC Appliance Company,“ im Sparam 2 die Zeichenfolge „306 East 22nd Street, New York City“ und eine 1 für workflow_type aus (die 1 gibt einen Web-Suche-Workflow 420 an). Der Object Builder 223 gibt in Schritt 602 das Software-Objekt an die Workflow-API 224 weiter. Die Workflow-API 224 ändert in Schritt 604 das Format des Software-Objekts, falls nötig. Wenn beispielsweise der Workflow-Server 130 XML verwendet, dann können die formatierten XML-Tags wie folgt aussehen.
- Suchparameter 1 = „ABC Appliance Company“
- Suchparameter 2 = „306 East 22nd Street, New York City“
-
Die Workflow-Schnittstelle 123 sendet in Schritt 606 die formatierten Daten an den Workflow-Server 130. Der Parameter workflow_type wird verwendet, um den spezifischen Workflow-Server 130 zu bestimmen, der die Ausführung des Workflow 420 erledigen kann. Falls der Parameter workflow_type beispielsweise eine 1 ist, kann der Workflow-Server 130A ausgewählt werden. Falls der Parameter workflow_type eine 2 ist, kann der Workflow-Server 130N ausgewählt werden. Das Workflow-System 130 empfängt die formatierten Daten in Schritt 608. Der Workflow-Server 130 initiiert dann den Workflow 420 in Schritt 610.
-
Der Workflow-Server 130 sendet in Schritt 612 Statusaktualisierungen für den Workflow 420 (falls nötig). Eine Statusaktualisierung kann den Fortschritt des Workflow angeben. Wenn der Workflow beispielsweise darin besteht, einen Duschkopf in einem Hotel zu reparieren, kann die Statusaktualisierungsnachricht sein, dass ein Installateur benachrichtigt wurde, dass der Duschkopf repariert wurde und/oder dergleichen. Der Workflow-Server 130 bestimmt in Schritt 614, ob der Workflow 420 abgeschlossen wurde. Falls der Workflow 420 in Schritt 614 abgeschlossen worden ist, endet der Prozess am Workflow-Server 130 in Schritt 616. Falls der Workflow 420 in Schritt 614 nicht abgeschlossen worden ist, geht der Prozess dagegen zurück zu Schritt 612, wo zusätzliche Aktualisierungsmeldungen gesendet werden können, falls nötig.
-
Falls eine Statusaktualisierung in Schritt 612 gesendet worden ist, empfängt das Workflow-System 120 die Statusaktualisierung in Schritt 618. Alternativ dazu können die Statusaktualisierungen direkt zur Kommunikationsvorrichtung 101 gesendet werden. Das Workflow-System 120 (der Workflow Executor 228) sendet die Statusaktualisierung für den Workflow 420 in Schritt 620. Die Kommunikationsvorrichtung 101 empfängt die Statusaktualisierungen in Schritt 622. Die Kommunikationsvorrichtung 101 zeigt die Statusaktualisierungen in Schritt 624 an, und der Prozess endet in Schritt 626.
-
7 ist ein Ablaufschema eines Prozesses zum Analysieren von Bildern 300, um Workflows 420 zu erkennen. Der Prozess von 7 ist ein Ausführungsbeispiel des Schritts 508/510 in 5. Nach dem Empfang des Bildes 300/von Metadaten in Schritt 506 bekommt der Bildprozessor 122 in Schritt 700 die mit dem Bild 300 assoziierten Metadaten (falls vorhanden). Der Bildprozessor 122 erkennt in Schritt 702 ein oder mehrere Objekte 310 in dem Bild 300. Für jedes erkannte Objekt 310 implementiert der Prozess Schritte 704-718. In einer Ausführungsform können Objekte auf Basis einer oder mehrerer Regeln abgetastet werden, die weniger wahrscheinlich auf das passen, wonach der Benutzer sucht.
-
Für jedes Objekt analysiert der Bildprozessor 122 in Schritt 704 das Objekt für irgendeine der Eigenschaften 310 (d.h. Aktionen oder Ereignisse). Zum Beispiel kann der Bildprozessor 122 für den Workflow 420D bestimmen, dass die Person 310E versucht, sich zu verstecken (Aktion) oder dass das Gehsteigobjekt 310N einen Riss 330 aufweist (Eigenschaft). Der Bildprozessor 122 kann bestimmen, dass ein Objekt 310 mehrere Eigenschaften (Aktionen) aufweisen kann. Zum Beispiel kann eine Person in einem Video laufen und dann stolpern.
-
Der Bildprozessor 122 bestimmt in Schritt 706, ob eine Beziehung zwischen den Objekten 310 besteht. Zum Beispiel kann der Bildprozessor 122 in 3 bestimmen, dass eine Beziehung zwischen dem Ladenobjekt 310A, dem Zeichenobjekt 310C und dem Fernseherobjekt 310D besteht. Der Bildprozessor 122 kann bestimmen, dass das Gehsteigobjekt 310N keine signifikante Beziehung mit den Objekten 310A-310E aufweist.
-
Für jedes Objekt bestimmt der Bildprozessor 122 in Schritt 708 den Ort des Objekts 310 im Bild 300. Wenn ein Bild 300 aufgenommen wird, zentriert der Benutzer typischerweise das wichtigste Objekt 310 in der Mitte des Bildes 300. In einer Ausführungsform wird Objekten 310, die im Bild 300 zentriert sind, ein höherer Vertrauenswert gegeben (siehe Schritt 710). Falls ein Objekt 310 nicht im Bild 300 zentriert ist, aber sich nahe dem Rand des Bildes 300 befindet, kann dem Objekt 310, das sich nahe dem Rand des Bildes 300 befindet, ein niedrigerer Vertrauenswert gegeben werden.
-
Für jedes Objekt 310 berechnet der Bildprozessor 122 in Schritt 710 einen Vertrauenswert. Der Vertrauenswert wird unter Verwendung des Objekts und von manchen oder allen von den Metadaten, der (mindestens einen) Eigenschaft (d.h. Objekteigenschaften, Aktion(en)), der (mindestens einen) Beziehung und/oder dem Ort des Objekts 310 im Bild 300 berechnet. In einer Ausführungsform verwendet der Vertrauenswert nicht eine oder mehrere der Metadaten, der (mindestens einen) Eigenschaft, der (mindestens einen) Beziehung und/oder den Ort des Objekts 310. Der Vertrauenswert kann auf einer oder mehreren Regeln basieren. Zum Beispiel können unterschiedliche Arten der Metadaten, Eigenschaften, Orte im Bild 300 und Beziehungen auf Basis von Regeln für jede Art von Workflow 420 unterschiedliche Gewichtungen erhalten.
-
Der Bildprozessor 122 bestimmt in Schritt 712, ob ein Workflow 420 für das Objekt 310 gegeben ist. Falls das Objekt beispielsweise ein tropfender Duschkopf an einem Ort ist (z.B. in einem Holiday Inn® in 123 4th Street in Salt Lake City, Utah), dann bestimmt der Bildprozessor 122 in Schritt 712, ob es auf einem Workflow-Server 130 einen Workflow 420 gibt, der sich um tropfende Duschköpfe im Holiday Inn® in 123 4th Street in Salt Lake City, Utah kümmern kann (z.B. ob das Holiday Inn® einen Dienst registriert hat (wie in 8 beschrieben ist), um Installationsdienstleistungen zu erledigen). Falls in Schritt 712 eine Übereinstimmung besteht, wird der Workflow 420 in Schritt 718 in die Liste der Workflows 410 aufgenommen, und der Prozess geht zu Schritt 720 weiter.
-
Wenn dagegen in Schritt 712 keine Übereinstimmung gegeben ist, bestimmt der Bildprozessor 122 in Schritt 714, ob ein Workflow 420 erzeugt werden kann. Zum Beispiel kann der Bildprozessor 122 in der Lage sein, einen eindeutigen Web-Suche-Workflow 420 zu erstellen, um die notwendigen Informationen über ein bestimmtes Objekt 310 zu erhalten. Falls in Schritt 714 kein Workflow 420 erstellt werden kann, geht der Prozess zu Schritt 720. Falls in Schritt 714 dagegen ein Workflow 420 erstellt werden kann, erzeugt der Bildprozessor 122 in Schritt 716 den Workflow 420 dagegen auf dynamische Weise. Der Workflow 420 von Schritt 716 könnte nur auf Basis des Bildes 300 (von Objekten und/oder Eigenschaften) oder auf Basis des Bildes und der Metadaten erzeugt werden. Der Workflow 420 wird dann in Schritt 718 in die Liste der Workflows 410 aufgenommen und geht zu Schritt 720.
-
Die Workflow-Liste 410 wird dann in Schritt 720 auf Basis des Vertrauenswerts für jedes Objekt 310 organisiert. Dann werden in Schritt 722 Workflows 420 entfernt, die unter einen bestimmten Vertrauensschwellenwert fallen. Wenn der Schwellenwert beispielsweise 0.5 ist (in einem Bereich von 0 bis 1,0 liegt), würden alle Workflows 420, die einen Vertrauenswert unter dem Vertrauensschwellenwert 0,5 aufweisen, aus der Anfangsliste fallengelassen werden. Jedoch kann sich ein Benutzer dafür entscheiden, die zusätzlichen Workflows 420 anzusehen (z.B. durch Auswählen der Option 430, um zusätzliche Workflows 420 zu betrachten). Der Prozess geht dann zu Schritt 512 weiter. Alternativ dazu kann eine definierte Anzahl von Workflows 420 ausgewählt werden (z.B. die obersten fünf Workflows).
-
8 ist ein Ablaufschema eines Prozesses zum Registrieren von Workflows 420 auf unterschiedlichen Workflow-Servern 130 in einem Computernetz 110. Der Prozess beginnt mit Schritt 800. Der Workflow-Server 130A sendet in Schritt 802 eine Registrierungsanfrage an den Workflow-Registrierungsdienst 226, um einen Workflow-Dienst zu registrieren. Die Registrierungsanfrage kann Informationen umfassen, die dem Bildprozessor 122 erlauben, einen Workflow 420 an den Workflow-Server 130A zu senden. Die Registrierungsanfrage von Schritt 802 kann auch Informationen umfassen (z.B. wie die Daten formatiert werden sollen), die dem Bildprozessor 122 ermöglichen, die Daten für den Workflow 420 der Schritte 524/606) zu senden. Zum Beispiel können die Registrierungsinformationen eine URL des Workflow-Servers 130A und ein Format für andere Informationen umfassen. Der Registrierungsdienst 226 empfängt die Registrierungsanfrage in Schritt 804. Der Registrierungsdienst 226 speichert die Registrierungsinformationen in Schritt 806.
-
Der Workflow-Server 130N sendet in Schritt 808 eine Registrierungsanfrage für einen Workflow 420 an den Registrierungsdienst 226. Der Registrierungsdienst 226 empfängt in Schritt 810 die Registrierungsanfrage von Schritt 808. Der Registrierungsdienst 226 speichert die Registrierungsinformationen in Schritt 812. Der Prozess endet mit Schritt 814.
-
Der Prozess von 8 beschreibt nur eine Registrierung von zwei Workflows 420. Es kann jede Anzahl von Workflows 420 registriert werden. Zum Beispiel können die Registrierungsnachrichten der Schritte 802/808 mehrere Workflows 420 in ein und derselben Nachricht registrieren. Alternativ dazu können zusätzliche Workflow-Server 130 Workflows 420 registrieren.
-
Die Arten der Workflows 420, die registriert werden können, können eine beliebige Anzahl unterschiedlicher Arten von Workflows 420 umfassen. Zum Beispiel können die registrierten Workflows 420 von 8 einen Installationsdienst, einen Warenbestandsbestelldienst für eine Fabrik, einen Notdienst (z.B. Polizei, Feuer usw.), einen Abschleppwagendienst, einen Bedienungsanleitungsdienst, einen Restaurant-Standortsdienst, einen Straßenreparaturdienst, einen Verkehrsampelreparaturdienst, einen Web-Suchdienst und/oder dergleichen umfassen.
-
Beispiele für die hierin beschriebenen Prozessoren können unter anderem mindestens einen einschließen von Qualcomm® Snapdragon® 800 und 801, Qualcomm® Snapdragon® 610 und 615 mit 4G-LTE-Integration und 64-Bit-Berechnung, einem Apple®-A7-Prozessor mit 64-Bit-Architektur, Apple®-M7-Bewegungscoprozessoren, der Exynos®-Serie von Samsung®, der lntel®Core™-Prozessorfamilie, der Intel®-Xeon®-Prozessorfamilie, der lntel®-Atom™-Prozessorfamilie, der Intel-Itanium®-Prozessorfamilie, von Intel® Core®-i5-4670K- und i7-4770K-22nm-Haswell, Intel® Core®-i5-3570K-22nm-Ivy-Bridge, von der FX™-Prozessorfamilie von AMD®, von AMD® FX-4300, FX-6300 und FX-8350 32nm Vishera, AMD® Kaveri-Prozessoren, Jacinto C6000™-Automotive-Mobilprozessoren von Texas Instruments®, OMAP™-Automotive-Mobilprozessoren von Texas Instruments®, Cortex™-M-Prozessoren von ARM®, Cortex-A- und ARM926EJ-S™-Prozessoren von ARM®, anderen industrie-äquivalente Prozessoren, und können Rechenfunktionen unter Verwendung beliebiger bekannter oder künftig noch entwickelter Standards, Befehlssätze, Bibliotheken und/oder Architektur durchführen.
-
Jede(r) von den hierin erörterten Schritten, Funktionen und Operationen kann kontinuierlich und automatisch durchgeführt werden.
-
Um die vorliegende Offenbarung nicht unnötig zu verunklaren, wird in der vorliegenden Beschreibung jedoch eine Anzahl bekannter Strukturen und Vorrichtungen weggelassen. Diese Weglassung soll nicht als Beschränkung des Bereichs der beanspruchten Offenbarung betrachtet werden. Konkrete Einzelheiten sind nachstehend aufgeführt, um ein Verständnis der vorliegenden Offenbarung zu ermöglichen. Man beachte jedoch, dass die vorliegende Offenbarung auf verschiedene Weise über die hierin konkret aufgeführten Details hinaus praktiziert werden kann.
-
Auch wenn die hierin dargestellten Ausführungsbeispiele die verschiedenen Komponenten des Systems zusammen zeigen, können bestimmte Komponenten des Systems an einem anderen Ort, an anderen Abschnitten eines verteilten Netzes, wie etwa einem LAN und/oder dem Internet, oder innerhalb eines eigenen Systems liegen. Somit sei klargestellt, dass die Komponenten des Systems zu einer oder mehreren Vorrichtungen kombiniert oder an einem bestimmten Knoten eines verteilten Netzes zusammengestellt werden können, wie etwa an einem analogen und/oder digitalen Telekommunikationsnetz, einem paketvermittelten Netz oder einem schaltungsvermittelten Netz. Aus der vorangehenden Beschreibung und aus Gründen der Recheneffizienz wird klar, dass die Komponenten des Systems an jeder Stelle innerhalb eines verteilten Netzes von Komponenten angeordnet werden können, ohne das sich dies auf den Betrieb des Systems auswirkt. Zum Beispiel können die verschiedenen Komponenten in einer Vermittlungsanlage wie einem PBX- und Medien-Server, einem Gateway, in einer oder mehreren Kommunikationsvorrichtungen, an einem oder mehreren Betriebsanlagen des Benutzers oder irgendeiner Kombination davon angeordnet sein. Ebenso kann eine oder können mehrere funktionale Abschnitte des Systems auf eine (mehrere) Telekommunikationsvorrichtung(en) und eine zugeordnete Rechenvorrichtung verteilt sein.
-
Ferner sei klargestellt, dass die verschiedenen Verbindungen, welche die Elemente verbinden, drahtgebundene oder drahtlose Verbindungen oder irgendeine Kombination davon oder mindestens irgendein anderes bekanntes oder noch zu entwickelndes Element sein kann, das in der Lage ist, Daten zu und von den verbundenen Elementen zu liefern und/oder zu übermitteln. Diese drahtgebundenen oder drahtlosen Verbindungen können auch sichere Verbindungen sein oder können in der Lage sein, verschlüsselte Informationen zu übermitteln. Übertragungsmedien, die beispielsweise als Verbindungen verwendet werden, können jede geeignete Art von Träger für elektrische Signale sein, einschließlich von Koaxialkabeln, Kupferdraht und Faseroptik, und können die Form von akustischen oder von Lichtwellen, wie solchen, die während Funkwellen- und Infrarotdatenübermittelungen verwendet werden, annehmen.
-
Auch wenn die Ablaufschemata in Bezug auf eine bestimmte Abfolge von Ereignissen erörtert und dargestellt wurden, sei klargestellt, dass Änderungen, Hinzufügungen und Weglassungen dieser Abfolge stattfinden können, ohne die Funktionsweise der Offenbarung wesentlich zu beeinflussen.
-
Es kann eine Anzahl von Variationen und Modifikationen der Offenbarung verwendet werden. Es wäre möglich, manche von den Merkmalen der Offenbarung bereitzustellen, ohne andere bereitzustellen.
-
In einer noch anderen Ausführungsform können die Systeme und Verfahren der Ausführungsform in Verbindung mit einem für einen speziellen Zweck gedachten Computer, einem programmierten Mikroprozessor oder Mikrocontroller und mit (mindestens) einem peripheren integrierten Schaltungselement, einer ASIC oder anderen integrierten Schaltung, einem digitalen Signalprozessor, einer festverdrahteten elektronischen oder logischen Schaltung, wie etwa einer Schaltung mit diskreten Bauelementen, einer programmierbaren logischen Vorrichtung oder Gate-Anordnung, wie PLD, PLA, FPGA, PAL, einem zweckgebundenen Computer, irgendeiner vergleichbaren Einrichtung oder dergleichen verwendet werden. Im Allgemeinen kann (mindestens) irgendeine Einrichtung, die in der Lage ist, die hierin dargestellte Methodik zu implementieren, verwendet werden, um die verschiedenen Aspekte der Offenbarung zu implementieren. Beispiele für Hardware, die für die vorliegende Offenbarung verwendet werden kann, schließen Computer, Handheld-Vorrichtungen, Telefone (z.B. zellulare, internetfähige, digitale, analoge, hybride und andere) und weitere Hardware ein, die in der Technik bekannt ist. Manche von diesen Vorrichtungen schließen Prozessoren (z.B. einen einzelnen oder mehrere Mikroprozessoren), einen Arbeitsspeicher, einen nichtflüchtigen Speicher, Eingabevorrichtungen und Ausgabevorrichtungen ein. Ferner können alternative Software-Implementierungen, die unter anderem eine verteilte Verarbeitung oder eine verteilte Komponenten-/Objektverarbeitung, eine parallele Verarbeitung oder eine Verarbeitung auf virtuellen Maschinen einschließen, konstruiert werden, um die hierin beschriebenen Verfahren zu implementieren.
-
In einer noch anderen Ausführungsform können die offenbarten Verfahren ohne Weiteres in Verbindung mit Software unter Verwendung von Objekt- oder objektorientierten Software-Entwicklungsumgebungen implementiert werden, die portablen Quellcode bereitstellen, der an einer Reihe von Computer- oder Workstation-Plattformen verwendet werden kann. Alternativ dazu kann das offenbarte System unter Verwendung von logischen Standardschaltungen oder VLSI-Design teilweise oder vollständig in Hardware implementiert werden. Ob Software oder Hardware verwendet wird, um die Systeme gemäß dieser Offenbarung zu implementieren, hängt von den Anforderungen bezüglich Geschwindigkeit und/oder Effektivität des Systems, der jeweiligen Funktion und den jeweiligen verwendeten Software- oder Hardware-Systemen oder Mikroprozessor- oder Mikrocomputer-Systemen ab.
-
In einer noch anderen Ausführungsform können die offenbarten Verfahren teilweise in Software implementiert werden, die auf einem Speichermedium gespeichert, auf einem programmierten Allzweck-Computer gemeinsam mit einem Controller und einem Speicher, einem zweckgebundenen Computer, einem Mikroprozessor oder dergleichen ausgeführt werden kann. In diesen Fällen können die Systeme und Verfahren dieser Offenbarung als Programm implementiert werden, das in einen Personal Computer eingebettet ist, wie etwa als Applet, JAVA®- oder CGI-Skript, als Ressource, die auf einem Server oder einer Computer-Workstation liegt, als Routine, die in einem eigenen Messystem, einer Systemkomponente oder dergleichen eingebettet ist. Diese Systeme können auch durch physisches Einbeziehen des Systems und/oder Verfahrens in ein Software- und/oder Hardware-System implementiert werden.
-
Auch wenn die vorliegende Offenbarung Komponenten und Funktionen beschreibt, die unter Bezugnahme auf bestimmte Standards und Protokolle in Ausführungsformen implementiert werden, ist die Offenbarung nicht auf diese Standards und Protokolle beschränkt. Es gibt andere ähnliche Standards und Protokolle, die hierin nicht genannt werden, und die als Teil der vorliegenden Offenbarung betrachtet werden. Darüber hinaus werden die hierin genannten Standards und Protokolle und andere, ähnliche Standards und Protokolle in regelmäßigen Abständen von schnelleren und effektiveren Äquivalenten abgelöst, die im Wesentlichen die gleichen Funktionen haben. Diese Ersatzstandards und -protokolle, welche die gleichen Funktionen haben, werden als Äquivalente betrachtet, die in der vorliegenden Erfindung eingeschlossen sind.
-
Die vorliegende Offenbarung beinhaltet in verschiedenen Ausführungsformen, Konfigurationen und Aspekten Komponenten, Verfahren, Prozesse, Systeme und/oder Vorrichtungen wie im Wesentlichen hierin abgebildet und beschrieben, einschließlich verschiedener Ausführungsformen, Unterkombinationen und Untersätze davon. Der Fachmann wird wissen, wie die hierin offenbarten Systeme und Verfahren zu verwenden sind, nachdem er die vorliegende Offenbarung verstanden hat. Die vorliegende Offenbarung beinhaltet in verschiedenen Ausführungsformen, Konfigurationen und Aspekten die Bereitstellung von Vorrichtungen und Prozessen unter Weglassung von Gegenständen, die hierin oder in verschiedenen Ausführungsformen, Konfigurationen oder Aspekten davon nicht dargestellt und/oder beschrieben wurden, was einschließt, dass solche Dinge weggelassen wurden, die in früheren Vorrichtungen und Prozessen verwendet wurden, z.B. zur Verbesserung der Leistung, um Einfachheit herzustellen und/oder um Implementierungskosten zu senken.
-
Die obige Erörterung der Offenbarung wurde für die Zwecke der Erläuterung und Beschreibung vorgelegt. Das obige soll die Offenbarung nicht auf die hierin offenbarte(n) Form oder Formen beschränken. In der obigen ausführlichen Beschreibung werden beispielsweise verschiedene Merkmale der Offenbarung in einer oder mehreren Ausführungsformen, Konfigurationen oder Aspekten zusammengefasst, um die Offenbarung zu verschlanken. Die Merkmale der Ausführungsformen, Konfigurationen oder Aspekte der Offenbarung können in alternativen Ausführungsformen, Konfigurationen oder Aspekten außer den oben erörterten kombiniert werden. Dieses Verfahren der Offenbarung darf nicht so interpretiert werden, als würde es eine Absicht wiedergeben, dass die beanspruchte Offenbarung mehr Merkmale benötigt als in den einzelnen Ansprüchen ausdrücklich genannt. Vielmehr liegen Aspekte der Erfindung, wie in den folgenden Ansprüchen reflektiert wird, in weniger als allen Merkmalen einer einzigen oben offenbarten Ausführungsform oder Konfiguration oder eines einzigen oben genannten Aspekts. Somit werden die folgenden Ansprüche hiermit in diese ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich selbst als separate bevorzugte Ausführungsform der Offenbarung steht.
-
Auch wenn die Beschreibung der Offenbarung eine Beschreibung einer oder mehrerer Ausführungsformen, Konfigurationen oder Aspekte und verschiedene Variationen und Modifikationen beinhaltet, liegen andere Variationen, Kombinationen und Modifikationen im Bereich der Offenbarung, z.B. innerhalb des Könnens und des Wissens von Fachleuten, nachdem sie die vorliegende Offenbarung verstanden haben. Sie soll Rechte erlangen, die im zulässigen Bereich alternative Ausführungsformen, Konfigurationen oder Aspekte beinhalten, einschließlich von alternativen, austauschbaren und/oder äquivalenten Strukturen, Funktionen, Bereichen oder Schritten in Bezug auf die Beanspruchten, ob solche alternativen, austauschbaren und/oder äquivalenten Strukturen, Funktionen, Bereiche oder Schritte hierin nun offenbart werden oder nicht, und ohne irgendeinen patentierbaren Gegenstand öffentlich zu benennen.
-
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
-