DE102021123285A1 - Sensor-agnostische gestenerkennung - Google Patents

Sensor-agnostische gestenerkennung Download PDF

Info

Publication number
DE102021123285A1
DE102021123285A1 DE102021123285.6A DE102021123285A DE102021123285A1 DE 102021123285 A1 DE102021123285 A1 DE 102021123285A1 DE 102021123285 A DE102021123285 A DE 102021123285A DE 102021123285 A1 DE102021123285 A1 DE 102021123285A1
Authority
DE
Germany
Prior art keywords
gesture
user
data
computer
sensor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021123285.6A
Other languages
English (en)
Inventor
Paul Llamas Virgen
Emmanuel Barajas Gonzalez
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021123285A1 publication Critical patent/DE102021123285A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data
    • G06F18/256Fusion techniques of classification results, e.g. of results related to same input data of results relating to different input data, e.g. multimodal recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Social Psychology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Psychiatry (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)

Abstract

Beschrieben werden Methoden zur Sensor-agnostischen Gestenerkennung. Die Methoden umfassen Registrieren einer Geste unter Verwendung von Sensorausgaben einer ersten Benutzereinheit in einem ersten Benutzerprofil, das mit einem ubiquitären Gestenagenten assoziiert ist. Die Methoden umfassen ferner Assoziieren der Geste mit einem Auslöseschwellenwert, der die Geste anzeigt und auf der Sensorausgabe beruht, und einer durch einen Prozessor ausführbaren Aktion, die durch eine einer Mehrzahl von Benutzereinheiten ausgeführt werden kann, die mit dem Benutzerprofil assoziiert sind. Die Methoden umfassen ferner Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp. Die Methoden umfassen ferner Identifizieren der Geste unter Verwendung von Daten des anderen Sensortyps, die den entsprechenden Auslöseschwellenwert erfüllen. Die Methoden umfassen ferner Implementieren der mit der Geste assoziierten durch einen Prozessor ausführbaren Aktion durch die eine der Mehrzahl von Benutzereinheiten.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft das Internet der Dinge (loT, Internet of Things) und insbesondere Sensor-agnostische Gestenerkennung in einer loT-Umgebung.
  • loT bezieht sich auf ein Netz physischer Objekte, die mit Sensoren, Software und/oder anderen Datenverarbeitungsfunktionen ausgestattet sind, die gemeinsam den Austausch von Daten zwischen den physischen Objekten und anderen Einheiten für verschiedene Zwecke ermöglichen. Benutzer sind zunehmend von loT-fähigen Einheiten umgeben. Daher werden zunehmend loT-fähige Einheiten eingesetzt, um die Benutzerfreundlichkeit an der Schnittstelle zwischen Mensch und Maschine zu verbessern.
  • KURZDARSTELLUNG
  • Aspekte der vorliegenden Offenbarung sind auf ein durch einen Computer implementiertes Verfahren gerichtet, das Registrieren einer Geste unter Verwendung von Sensorausgaben einer ersten Benutzereinheit in einem ersten Benutzerprofil umfasst, das mit einem ubiquitären Gestenagenten assoziiert ist. Das Verfahren umfasst ferner Assoziieren der Geste mit einem Auslöseschwellenwert, der die Geste anzeigt und auf der Sensorausgabe beruht, und einer durch einen Prozessor ausführbaren Aktion, die durch eine einer Mehrzahl von Benutzereinheiten ausgeführt werden kann, die mit dem Benutzerprofil assoziiert sind. Das Verfahren umfasst ferner Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp. Das Verfahren umfasst ferner Identifizieren der Geste unter Verwendung von Daten des anderen Sensortyps, die den entsprechenden Auslöseschwellenwert erfüllen. Das Verfahren umfasst ferner Implementieren der mit der Geste assoziierten durch einen Prozessor ausführbaren Aktion durch die eine der Mehrzahl von Benutzereinheiten.
  • Weitere Aspekte der vorliegenden Offenbarung betreffen Systeme und Computerprogrammprodukte, die so konfiguriert sind, dass sie die vorstehend beschriebenen Verfahren durchführen können. Die vorliegende Kurzdarstellung soll nicht jeden Aspekt, jede Implementierung und/oder jede Ausführungsform der vorliegenden Offenbarung veranschaulichen.
  • Figurenliste
  • Die in der vorliegenden Anmeldung enthaltenen Zeichnungen werden in die Spezifikation aufgenommen und sind Teil derselben. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung zur Erläuterung der Grundgedanken der Offenbarung. Die Zeichnungen dienen nur zur Veranschaulichung bestimmter Ausführungsformen und schränken die Offenbarung nicht ein.
    • 1 veranschaulicht ein Blockschaubild einer beispielhaften Datenverarbeitungsumgebung mit einem ubiquitären Gestenagenten gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Verwenden eines ubiquitären Gestenagenten gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Definieren von Gesten unter Verwendung eines ubiquitären Gestenagenten gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 4 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Identifizieren einer Geste unter Verwendung eines gleichen oder eines anderen Sensors als des ursprünglich mit der Geste assoziierten Sensors gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 5 veranschaulicht ein Blockschaubild eines beispielhaften Computers gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 6 zeigt eine Cloud-Computing-Umgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7 zeigt Abstraktionsmodellschichten gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
  • Während die vorliegenden Offenbarung für verschiedene Modifikationen und alternative Formen zugänglich ist, sind Einzelheiten davon in den Zeichnungen beispielhaft dargestellt und werden im Einzelnen beschrieben. Es ist jedoch zu beachten, dass die Absicht nicht darin besteht, die vorliegende Offenbarung auf die konkret beschriebenen Ausführungsformen zu beschränken. Vielmehr ist beabsichtigt, alle Modifikationen, Äquivalente und Alternativen abzudecken, die unter den Grundgedanken und den Umfang der vorliegenden Offenbarung fallen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung sind auf das Internet der Dinge (loT, Internet of Things) und insbesondere auf Sensor-agnostische Gestenerkennung in einer loT-Umgebung gerichtet. Die vorliegende Offenbarung ist zwar nicht auf derartige Anwendungen beschränkt, doch lassen sich Ausführungsformen der vorliegenden Offenbarung im vorstehend genannten Zusammenhang besser verstehen.
  • Eine Geste ist eine Bewegung eines oder mehrerer Körperteile (in der Regel der Hand oder des Kopfes), die eine Idee oder eine Bedeutung zum Ausdruck bringt. Gesten können verwendet werden, um vorprogrammierte Funktionalität in Einheiten mit Sensoren auszulösen, die Gesten erkennen können, oder in Einheiten, die in Datenübertragungsverbindung mit Einheiten mit Sensoren stehen, die Gesten erkennen können. Zu den Einheiten können beispielsweise Smartwatches, Smartphones, Ohrhörer, Schlüssel (z.B. für ein Fahrzeug, ein Haus usw.), Gesundheitsüberwachungsgeräte und dergleichen zählen. Eine erkannte, vorprogrammierte Geste kann so konfiguriert sein, dass sie eine Aktion auf einer Einheit implementiert. Zu Aktionen können beispielsweise Entsperren eines Smartphones, Kontaktieren eines Notdienstes, Absetzen eines Notrufsignals, Tätigen eines Anrufs, Senden einer Nachricht, Interagieren mit einer Anwendung (z.B. Starten oder Stoppen eines Trainings in einer gesundheitsbezogenen Anwendung), Zugreifen auf einen entfernten Server (z.B. zum Schreiben von Daten und/oder Abrufen von Daten), Aktivieren eines physischen Aktuators (z.B. Entriegeln einer Tür) usw. zählen. Insgesamt kann das Assoziieren von Gesten mit vorprogrammierten Aktionen zur Verbesserung der Benutzerfreundlichkeit verschiedener Einheiten in einer loT-Umgebung beitragen.
  • Eine Herausforderung im Zusammenhang mit vorprogrammierten Gesten sind verschiedene Gesten, die jeweils mit verschiedenen Einheiten assoziiert sind. Mit anderen Worten: Wenn eine Geste wie das Schütteln einer Smartwatch normalerweise dazu dient, eine Anwendung auf einem Smartphone auszulösen, der Nutzer aber seine Smartwatch vergisst, ist diese Geste nutzlos. Um diese und andere Herausforderungen, die mit vorprogrammierten Gesten verbunden sind, zu bewältigen, sind Aspekte der vorliegenden Offenbarung auf Methoden, Systeme und Computerprogrammprodukte für Sensor-agnostische Gestenerkennung gerichtet.
  • Aspekte der vorliegenden Offenbarung ermöglichen eine Sensor-agnostische Gestenerkennung durch Verwenden eines ubiquitären Gestenagenten zur Speicherung verschiedener registrierter Gesten und der mit diesen assoziierten Aktionen. Der ubiquitäre Gestenagent kann anschließend eine Geste, die durch eine erste Art von Sensorausgabe einer ersten Einheit definiert ist, in eine transformierte Ausgabe umwandeln, die durch eine zweite Art von Sensorausgabe einer zweiten Einheit messbar ist. In Fortsetzung des vorangegangenen Beispiels des Schüttelns einer Smartwatch kann der ubiquitäre Gestenagent die mit der Smartwatch assoziierten Beschleunigungsmessdaten in mit dem Smartphone assoziierte Beschleunigungsmessdaten umwandeln. Auf diese Weise kann der Benutzer statt der Smartwatch auch das Smartphone schütteln, um ein ähnliches Ergebnis zu erzielen (z.B. Aktivieren der Anwendung). Als weiteres Beispiel kann der ubiquitäre Gestenagent die mit der Smartwatch assoziierten Beschleunigungsmessdaten in Bewegungsdaten umwandeln, die mit einer Kamera assoziiert sind (z.B. einer Kamera in einem intelligenten Gebäude, in dem der Benutzer sich für die Nutzung von loT-Funktionen des intelligenten Gebäudes entscheiden kann). Auf diese Weise kann der Benutzer statt der Smartwatch seine Hand schütteln, wodurch, wenn sie von der Kamera des intelligenten Gebäudes erkannt wird, Anweisungen an den ubiquitären Agenten übertragen werden, der wiederum das Smartphone veranlasst, eine Aktion durchzuführen (z.B. die Anwendung zu aktivieren).
  • Aspekte der vorliegenden Offenbarung bringen somit zahlreiche Vorteile und Verbesserungen mit sich. Als allgemeines Beispiel verbessern Aspekte der vorliegenden Offenbarung die Benutzerfreundlichkeit, indem sie es einem Benutzer ermöglichen, Gesten auch ohne die Einheit zu verwenden, die diese Gesten normalerweise oder ursprünglich erkannt hat. Genauer gesagt können Aspekte der vorliegenden Offenbarung Auslöseschwellenwerte, die von einem Sensortyp erkannt werden können, in entsprechende Auslöseschwellenwerte umwandeln, die von einem anderen Sensortyp erkannt werden können. Darüber hinaus verwenden Aspekte der vorliegenden Offenbarung einen in einer Cloud gehosteten ubiquitären Gestenagenten, um diese Funktionalität zu ermöglichen. Das Verwenden eines in einer Cloud gehosteten ubiquitären Gestenagenten ermöglicht eine nahezu kontinuierliche Verfügbarkeit, ohne dass Datenverarbeitungsressourcen von Benutzereinheiten beansprucht werden. Des Weiteren ermöglicht ein ubiquitärer Gestenagent vereinfachte Interaktion mit intelligenten Gebäuden und/oder anderen loT-Ressourcen, so dass ein Nutzer loT-Ressourcen in seiner Umgebung nutzen kann. Diese Verbesserungen, Vorteile und Funktionalitäten lassen sich als Sensor-agnostische Gestenerkennung zusammenfassen.
  • 1 veranschaulicht nun eine beispielhafte Datenverarbeitungsumgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Datenverarbeitungsumgebung umfasst einen ubiquitären Gestenagenten 100, der über ein Netzwerk 138 mit einer Mehrzahl von Benutzereinheiten 132, die mit einem Benutzerprofil 102 assoziiert sind, und einem oder mehreren Umgebungssensoren 136 in Datenübertragungsverbindung steht. Der ubiquitäre Gestenagent 100 kann so konfiguriert sein, dass er Funktionalität bereitstellt, die Sensor-agnostische Gestenerkennung ermöglicht.
  • Mit anderen Worten: Der ubiquitäre Gestenagent 100 kann Funktionalität bereitstellen, die es ermöglicht, dass eine Geste, die von einem ersten Sensor 1134-1 registriert wurde und von diesem erkannt werden kann, von einem anderen Sensortyp erkannt werden kann, beispielsweise Sensor 2 134-2 (z.B. ein anderer Sensor, der mit dem Benutzerprofil 102 assoziiert ist) oder Umgebungssensoren 136 (z.B. Sensoren, die mit einem anderen Benutzerprofil (nicht gezeigt) assoziiert sind, aber dennoch in der Lage sind, dem Benutzerprofil 102 über den ubiquitären Gestenagenten 100 Funktionalität bereitzustellen).
  • Der ubiquitäre Gestenagent 100 kann zahlreiche Benutzerprofile wie das Benutzerprofil 102 enthalten. Benutzerprofile können mit einzelnen Benutzern (z.B. Personen), Unternehmen, Körperschaften, Gemeinden, Geschäftsgebäuden, Wohngebäuden usw. assoziiert sein. Das Benutzerprofil 102 kann eine registrierte Geste 104 enthalten. Die registrierte Geste 104 kann eine Sensor-ID 106 enthalten, die mindestens einen Sensor 134 identifiziert, der mit mindestens einer Benutzereinheit der Vielzahl von Benutzereinheiten 132 assoziiert ist und eine Sensorausgabe 108 liefert, die die registrierte Geste 104 darstellt. Die Sensorausgabe 108 kann die von dem mindestens einen Sensor 134 gesammelten Rohdaten darstellen, die die registrierte Geste 104 repräsentieren. Die Wertekategorie 110 kann einen Typ von Rohdaten und/oder eine Maßeinheit identifizieren, die mit den Rohdaten der Sensorausgabe 108 assoziiert sind. In der Wertekategorie 110 kann beispielsweise „Beschleunigung“ und/oder „Meter pro Sekunde2“ als Rohdatentyp und/oder als mit den Rohdaten assoziierte Maßeinheit angegeben werden.
  • Das Benutzerprofil 102 kann ferner Schwellenwerte 112 enthalten. Die Schwellenwerte 112 können so konfiguriert sein, dass sie die Sensor-ID 106, die Sensorausgabe 108 und/oder die Wertekategorie 110 aufnehmen, um Schwellenwerte zu erzeugen, die zum Identifizieren der registrierten Geste 104 nützlich sind. Die Schwellenwerte 112 können daher bereinigte Daten 114, normalisierte Daten 116 und/oder skalierte Daten 118 enthalten. Bereinigte Daten 114 können durch Beseitigen fehlerhafter, anormaler oder unnötiger Daten erzeugt werden. Die bereinigten Daten 114 können auch zum Ableiten anderer Daten aus der Sensorausgabe 108 verwendet werden. Wenn beispielsweise die Sensorausgabe 108 eine Beschleunigung misst, können die bereinigten Daten 114 die rohen Beschleunigungsmessungen in entsprechende Änderungen der Beschleunigung umwandeln, wobei Änderungen der Beschleunigung eine nützlichere Maßzahl zum Identifizieren der registrierten Geste 104 darstellen können als die Beschleunigungsdaten selbst. Die normalisierten Daten 116 können so konfiguriert sein, dass die Sensorausgabe 108 zwischen einschließlich 0 und 1 normalisiert wird. Skalierte Daten 118 sind eine Alternative zu normalisierten Daten 116. Die skalierten Daten 118 können so konfiguriert sein, dass die Sensorausgabe 108 so verschoben wird, dass der Mittelwert (oder Median) der Sensorausgabe 108 auf Null gesetzt wird. Sowohl normalisierte Daten 116 als auch skalierte Daten 118 können Datenauswertung vereinfachen und/oder standardisieren.
  • Unabhängig davon, ob oder wie bereinigte Daten 114, normalisierte Daten 116 und/oder skalierte Daten 118 zur Bereinigung und Vereinfachung der Sensorausgabe 108 verwendet werden, erzeugen die Schwellenwerte 112 letztlich einen Auslöseschwellenwert 120. Der Auslöseschwellenwert 120 ist ein Wert, eine Folge von Werten oder ein Muster von Werten aus der Sensor-ID 106, der/die/das die registrierte Geste 104 identifiziert. Zum Beispiel kann der Auslöseschwellenwert 120 zur Erkennung einer Schüttelbewegung anhand von Beschleunigungsdaten (z.B. von Sensor 1134-1) einer Smartwatch (z.B. einer der Mehrzahl von Benutzereinheiten 132) eine Schwellenanzahl von Beschleunigungsänderungen umfassen, wobei jede Beschleunigungsänderung eine Schwellengröße innerhalb einer Schwellenzeitspanne erfüllt.
  • Vorteilhafterweise erzeugen Aspekte der vorliegenden Offenbarung ferner einen oder mehrere entsprechende Auslöseschwellenwerte 122. Bei den entsprechenden Auslöseschwellenwerten 122 handelt es sich um Schwellenwerte, die die registrierte Geste 104 mit Hilfe eines oder mehrerer unterschiedlicher Sensortypen identifizieren können. Beispielsweise kann einer der entsprechenden Auslöseschwellenwerte 122 mit einem anderen Sensor 2 134-2 assoziiert sein, der mit einer anderen der mehreren Benutzereinheiten 132 (z.B. einem Smartphone) assoziiert ist. In diesem Beispiel kann der entsprechende Auslöseschwellenwert 122 den Auslöseschwellenwert 120 in einen entsprechenden Auslöseschwellenwert 122 umwandeln, der von dem anderen Sensor 2 134-2, z.B. einem anderen Typ von Bewegungssensor (z.B. einem Schwerkraftsensor, einem Gyroskop, einem Linearbeschleunigungsmesser usw.), erkannt werden kann. Als weiteres Beispiel kann ein weiterer entsprechender Auslöseschwellenwert 122 mit einem oder mehreren Umgebungssensoren 136 assoziiert sein. Bei den Umgebungssensoren 136 kann es sich zum Beispiel um Kameras handeln, die in einem intelligenten Gebäude Videodaten erzeugen. In diesem Beispiel kann der entsprechende Auslöseschwellenwert 122 den auf Beschleunigungsdaten beruhenden Auslöseschwellenwert 120 in Bewegungsschwellenwerte umwandeln, die für zum Ableiten einer Beschleunigung aus Videodaten nützlich sind. Auf diese Weise ermöglichen Aspekte der vorliegenden Offenbarung, dass eine registrierte Geste 104 von weiteren Arten von Einheiten und Sensoren identifiziert werden kann als der Einheit und dem Sensor, die die registrierte Geste 104 ursprünglich erstellt haben.
  • In einigen Ausführungsformen können die Schwellenwerte 112 automatisch mit Hilfe von Algorithmen für maschinelles Lernen generiert werden. Zu den Algorithmen für maschinelles Lernen gehören unter anderem Lernen mit Entscheidungsbäumen, Assoziationsanalyse, künstliche neuronale Netze (ANN), rekurrente neuronale Netze (RNN), Deep Learning, induktive Logikprogrammierung, Support-Vector-Maschinen, Clustering, Bayes'sche Netze, bestärkendes Lernen, Repräsentationslernen, Ähnlichkeits-/ Metriktraining, Sparse-Dictionary-Lernen, genetische Algorithmen, regelbasiertes Lernen und/oder andere Methoden des maschinellen Lernens.
  • Die Algorithmen für maschinelles Lernen können zum Beispiel eine oder mehrere der folgenden beispielhaften Methoden verwenden: K-nächster Nachbar (KNN), lernende Vektorquantisierung (LVQ), selbstorganisierende Karte (SOM), logistische Regression, gewöhnliche kleinste Quadrate (OLSR), lineare Regression, schrittweise Regression, Multivariate Adaptive Regression Spline (MARS), Ridge-Regression, LASSO (Least Absolute Shrinkage and Selection Operator), Elastic Net, Least-Angle-Regression (LARS), Probabilistischer Klassifikator, Naiver Bayes-Klassifikator, Binärer Klassifikator, Linearer Klassifikator, Hierarchischer Klassifikator, kanonische Korrelationsanalyse (CCA), Faktorenanalyse, Unabhängigkeitsanalyse (Independent Component Analysis, ICA), lineare Diskriminanzanalyse (LDA), multidimensionale Skalierung (MDS), nichtnegative Metrikfaktorisierung (NMF), partielle Kleinstquadrate-Regression (Partial Least Squares Regression, PLSR), Hauptkomponentenanalyse (Principal Component Analysis, PCA), Hauptkomponentenregression (PCR), Sammon-Mapping, t-distributed Stochastic Neighbor Embedding (t-SNE), Bootstrap-Aggregation, Ensemble-Mittelung, Gradient Boosted Decision Tree (GBRT), Gradient Boosting Machine (GBM), induktive Verzerrungsalgorithmen, Q-Lernen, State-Action-Reward-State-Action (SARSA), Temporal Difference Learning (TD), Apriori-Algorithmen, Äquivalenzklassentransformations- (ECLAT-) Algorithmen, Gaußsche Prozessregression, Genexpressionsprogrammierung, Group Method of Data Handling (GMDH), induktive Logikprogrammierung, instanzbasiertes Lernen, logistische Modellbäume, Information Fuzzy Networks (IFN), Hidden-Markov-Modelle, Gaußsche Naive Bayes, multinomiale Naive Bayes, Averaged One-Dependence Estimators (AODE), Bayessches Netz (BN), Classification and Regression Tree (CART), Chi-Squared Automatic Interaction Detection (CHAID), Erwartungsmaximierungsalgorithmus, vorwärtsgerichtete neuronale Netze, Logiklernmaschine, selbstorganisierende Karte, Single-Linkage Clustering, Fuzzy Clustering, hierarchisches Clustering, Boltzmann-Maschinen, neuronale Faltungsnetze, rekurrente neuronale Netze, hierarchischer Temporalspeicher (Hierarchical Temporal Memory, HTM) und/oder andere Methoden des maschinellen Lernens.
  • Zusammengenommen können Algorithmen für maschinelles Lernen verwendet werden, um bereinigte Daten 114, normalisierte Daten 116, skalierte Daten 118, Auslöseschwellenwerte 120 und/oder entsprechende Auslöseschwellenwerte 122 zu erzeugen. Obwohl nicht dargestellt, können in einigen Ausführungsformen Algorithmen für maschinelles Lernen verwendet werden, um auffällige Merkmale der Sensorausgabe 108 zu identifizieren (manchmal als Merkmalerkennung oder Merkmalauswahl bezeichnet).
  • Das Benutzerprofil 102 kann ferner eine durch einen Prozessor ausführbare Aktion 124 enthalten, die mit jeder registrierten Geste 104 assoziiert ist. Zu durch einen Prozessor ausführbaren Aktionen 124 können, ohne jedoch hierauf eingeschränkt zu sein, Aktivieren eines Aktuators (z.B. Ver- oder Entriegeln einer Tür), Zugreifen auf einen entfernten Server (z.B. zum Lesen, Schreiben oder anderweitigen Zugreifen auf, Übertragen und/oder Aktualisieren von Daten) und Implementieren einer Aktion auf einem Smartphone zählen (z.B. Entsperren eines Smartphones, Senden einer Nachricht auf dem Smartphone, Tätigen eines Anrufs mit dem Smartphone, Absetzen eines Notrufsignals mit dem Smartphone, Öffnen einer vom Smartphone ausführbaren Anwendung oder Interagieren mit dieser usw.). Die durch einen Prozessor ausführbare Aktion 124 kann mit einer der Mehrzahl von Benutzereinheiten 132 assoziiert sein. Die durch einen Prozessor ausführbare Aktion 124 kann eine Aktions-ID 126, die die Aktion identifiziert, ein Ziel 128, das eine Einheit zur Durchführung der durch einen Prozessor ausführbaren Aktion 124 identifiziert, und eine oder mehrere Funktionen 130 umfassen, die Logik enthalten, die so konfiguriert ist, dass sie die durch einen Prozessor ausführbare Aktion 124 durch das Ziel 128 implementiert.
  • Die mit dem Benutzerprofil 102 assoziierte Mehrzahl von Benutzereinheiten 132 kann eine beliebige Anzahl heute bekannter oder künftig entwickelter Benutzereinheiten umfassen. Zu der Mehrzahl von Benutzereinheiten 132 können beispielsweise Smartphones, Smartwatches, intelligente Kleidung, Wohnungen, Geräte, Türen, Kameras, Fahrzeuge, tragbare Geräte, Gesundheitsüberwachungseinheiten, Accessoires (z.B. Ringe, Ohrringe, Stirnbänder usw.) und dergleichen zählen. Die Sensoren 134 (d.h. einer oder mehrere der Sensoren 1134-1, 2 134-2 und/oder N 134-N) können sich auf eine Vielfalt von Hardware- und/oder Softwareeinheiten beziehen, die in der Lage sind, Daten zu sammeln. Zu den Sensoren 134 können, ohne jedoch hierauf eingeschränkt zu sein, Temperatursensoren, chemische Sensoren, Feuchtigkeitssensoren, Drucksensoren, Winkel- oder Linearbewegungssensoren (z.B. Beschleunigungsmesser, Linearbeschleunigungsmesser, Schrittzähler, Gyroskope, Schwerkraftsensoren usw.), Rotationssensoren, Winkel- oder Linearbewegungssensoren, Winkel- oder Lineargeschwindigkeitssensoren, biometrische Sensoren, Mikrofone, Kameras und dergleichen zählen.
  • Bei den Umgebungssensoren 136 kann es sich um Sensoren handeln, die mit einem anderen Benutzerprofil assoziiert sind, das vom ubiquitären Gestenagenten 100 gespeichert wird und bei dem es sich nicht um das Benutzerprofil 102 handelt. Mit anderen Worten, die Umgebungssensoren 136 können Sensoren in der Nähe des Benutzers sein, der mit dem Benutzerprofil 102 assoziiert ist, obwohl sie nicht zu dem Benutzer des Benutzerprofils 102 gehören. Bei den Umgebungssensoren 136 kann es sich um einen beliebigen der vorstehend genannten Sensoren 134 handeln. In einigen Ausführungsformen kann es sich bei den Umgebungssensoren um Kameras handeln, die mit einem intelligenten Gebäude assoziiert sind. Vorteilhafterweise ermöglicht der ubiquitäre Gestenagent 100 dem Benutzerprofil 102, loT-fähige Sensoren in der Nähe des Benutzers des Benutzerprofils 102 zu nutzen, wenn sich das Benutzerprofil 102 für eine Verwendung verfügbarer Umgebungssensoren 136 entschieden hat.
  • 2 veranschaulicht nun einen Ablaufplan eines Verfahrens zum Verwenden eines ubiquitären Gestenagenten gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In einigen Ausführungsformen kann das Verfahren 200 von einem Prozessor, einem Computer, einem Server, dem ubiquitären Gestenagenten 100 aus 1 oder einer anderen Konfiguration aus Hardware und/oder Software implementiert werden.
  • Schritt 202 umfasst Registrieren einer Geste unter Verwendung von Sensorausgaben einer ersten Benutzereinheit in einem ersten Benutzerprofil, das mit einem ubiquitären Gestenagenten assoziiert ist. Bei der Geste kann es sich beispielsweise um das Schütteln einer Hand handeln, das durch Beschleunigungsmessdaten (z.B. Sensorausgabe) eines in einer Smartwatch (z.B. der ersten Benutzereinheit) untergebrachten Beschleunigungsmessers erkannt wird.
  • Schritt 204 umfasst Assoziieren der Geste mit einem Auslöseschwellenwert und einer Aktion. In Fortsetzung des obigen Beispiels kann der Auslöseschwellenwert eine Schwellenanzahl von Beschleunigungsänderungen, wobei jede Beschleunigungsänderung über einem Schwellenwert liegt, innerhalb eines Schwellenzeitintervalls umfassen. In einigen Ausführungsformen kann die Aktion eine durch einen Prozessor ausführbare Aktion sein, wie beispielsweise die vorstehend im Zusammenhang mit 1 erörterten durch einen Prozessor ausführbaren Aktionen. Der Schritt 204 wird im Folgenden unter Bezugnahme auf 3 näher erläutert.
  • Schritt 206 umfasst Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp. In Fortsetzung des obigen Beispiels kann der Auslöseschwellenwert, der auf von dem Beschleunigungsmesser der Smartwatch ausgegebenen Beschleunigungsdaten beruht, auf Grundlage von Videodaten, die von einer in einem intelligenten Gebäude arbeitenden Videokamera erzeugt werden und dem Benutzerprofil über den ubiquitären Gestenagenten zur Verfügung stehen, in einen entsprechenden Auslöseschwellenwert umgewandelt werden.
  • Schritt 208 umfasst Identifizieren der Geste anhand von Daten der verschiedenen Sensortypen. In Fortsetzung des obigen Beispiels umfasst Schritt 208 Identifizieren des/der seine/ihre Hand schüttelnden Benutzers/in auf Grundlage von Videodaten von einer Videokamera in Situationen, in denen der/die Benutzer/in seine/ihre Smartwatch nicht trägt oder in denen die Smartwatch eine Fehlfunktion aufweist.
  • Schritt 210 umfasst Implementieren der mit der Geste assoziierten Aktion in Reaktion auf das Identifizieren der Geste unter Verwendung der Daten des anderen Sensortyps. Vorteilhafterweise ermöglicht Schritt 210 dem Benutzer die erfolgreiche Verwendung von Gesten zur Steuerung von Einheiten, selbst wenn der Benutzer eine bestimmte Einheit, die normalerweise zur Identifizierung der Geste verwendet wird, vergessen hat.
  • 3 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Definieren von Gesten unter Verwendung eines ubiquitären Gestenagenten gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In einigen Ausführungsformen kann das Verfahren 300 von einem Prozessor, einem Computer, einem Server, dem ubiquitären Gestenagenten 100 aus 1 oder einer anderen Konfiguration aus Hardware und/oder Software implementiert werden. In einigen Ausführungsformen ist das Verfahren 300 ein Unterverfahren des Schritts 204 aus 2.
  • Schritt 302 umfasst Definieren einer registrierten Geste durch Registrieren von Sensorausgaben eines oder mehrerer Sensoren, die mit einer oder mehreren Benutzereinheiten assoziiert sind, während eines Gestenregistrierungsintervalls. In einigen Ausführungsformen kann ein Benutzer eine oder mehrere Benutzereinheiten bedienen, um ein Gestenregistrierungsintervall zu starten und zu beenden, wobei Daten, die von einem oder mehreren Sensoren, die mit der einen oder den mehreren Benutzereinheiten assoziiert sind, zwischen dem Start und dem Ende gesammelt werden, Sensorausgaben darstellen können, die die registrierte Geste repräsentieren.
  • Schritt 304 umfasst Assoziieren der registrierten Geste mit einer Kennung, der Sensorausgabe, einer Kategorie und einer durch einen Prozessor ausführbaren Aktion. In einigen Ausführungsformen kann Schritt 304 von einem Benutzer implementiert werden, der Benutzereingaben in eine Einheit eingibt, die Schnittstellen zum Definieren von Gesten und Assoziieren von Gesten mit verschiedenen durch einen Prozessor ausführbaren Aktionen bereitstellt.
  • Schritt 306 umfasst Anwenden von Datenumwandlungen auf die Sensorausgabe, um die Sensorausgabe für andere Sensortypen erkennbar zu machen. Datenumwandlungen können unter anderem Datenbereinigung, Datennormalisierung und/oder Datenskalierung umfassen. Des Weiteren können Datenumwandlungen beispielsweise Umwandeln von Beschleunigungsdaten in Positionsdaten oder andere Arten von Datenumwandlungen umfassen. In einigen Ausführungsformen verwendet Schritt 306 Algorithmen für maschinelles Lernen, um Datenumwandlungen auf die Sensorausgabe anzuwenden, um die Sensorausgabe für andere Sensortypen erkennbar zu machen.
  • Schritt 308 umfasst Definieren eines Auslöseschwellenwerts und einer Mehrzahl entsprechender Auslöseschwellenwerte für eine Vielfalt von Sensoren auf Grundlage der Datenumwandlungen. Vorteilhafterweise ermöglicht Schritt 308, dass Gesten, die mit einem Sensor (oder einer Gruppe von Sensoren) registriert wurden, von einem anderen Sensortyp (oder einer anderen Gruppe von Sensoren) erkannt werden können, wodurch eine Sensor-agnostische Gestenerkennung ermöglicht wird.
  • 4 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Identifizieren einer Geste unter Verwendung eines gleichen oder eines anderen Sensors als des ursprünglich mit der Geste assoziierten Sensors gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In einigen Ausführungsformen kann das Verfahren 400 von einem Prozessor, einem Computer, einem Server, dem ubiquitären Gestenagenten 100 aus 1 oder einer anderen Konfiguration aus Hardware und/oder Software implementiert werden. In einigen Ausführungsformen ist das Verfahren 400 ein Unterverfahren des Schritts 208 aus 2.
  • Schritt 402 umfasst Sammeln von Sensordaten einer Mehrzahl von Sensoren von einer Vielzahl von Benutzereinheiten und/oder Umgebungssensoren. Sensordaten können kontinuierlich, halbkontinuierlich oder in vorgegebenen Abfrageintervallen gesammelt werden.
  • Schritt 404 umfasst Ermitteln, ob Sensoren und/oder entsprechende Benutzereinheiten in den gesammelten Sensordaten fehlen. Wenn dies nicht der Fall ist (404: NEIN), fährt das Verfahren 400 mit Schritt 408 fort und ermittelt, ob irgendwelche der gesammelten Sensordaten einem Auslöseschwellenwert entsprechen. Wenn jedoch irgendwelche Sensoren und/oder entsprechende Benutzereinheiten in den gesammelten Sensordaten fehlen (404: JA), fährt das Verfahren 400 mit Schritt 406 fort und vergleicht die gesammelten Sensordaten mit den entsprechenden Auslöseschwellenwerten, um zu ermitteln, ob irgendwelche Gesten erkannt werden, die von dem einen oder mehreren fehlenden Sensoren und/oder entsprechenden Benutzereinheiten erkannt worden wären.
  • Schritt 408 umfasst Ermitteln, ob eine Übereinstimmung zwischen irgendwelchen der gesammelten Sensordaten und einem der Auslöseschwellenwerte oder der entsprechenden Auslöseschwellenwerte besteht. Ist dies nicht der Fall (408: NEIN), kehrt das Verfahren zu Schritt 402 zurück und fährt mit dem Sammeln von Sensordaten fort. Liegt eine Übereinstimmung vor (408: JA), fährt das Verfahren 400 mit Schritt 410 fort.
  • Schritt 410 umfasst Identifizieren der Geste, die mit der Übereinstimmung assoziiert ist. Vorteilhafterweise kann das Verfahren 400 Gesten in Situationen identifizieren, in denen der Sensor und/oder die Benutzereinheit, der/die traditionell zur Erkennung der Geste verwendet wird, nicht verfügbar ist, indem entsprechende Auslöseschwellenwerte genutzt werden, die mit anderen Sensoren anderer Benutzereinheiten und/oder Umgebungssensoren assoziiert sind.
  • 5 veranschaulicht ein Blockschaubild eines beispielhaften Computers 500 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In verschiedenen Ausführungsformen kann der Computer 500 einige oder alle Teile der in 2 bis 4 beschriebenen Verfahren ausführen und/oder die in 1 beschriebene Funktionalität implementieren. In einigen Ausführungsformen empfängt der Computer 500 Anweisungen, die die vorgenannten Verfahren und Funktionen betreffen, indem er durch einen Prozessor ausführbare Anweisungen von einem entfernten Datenverarbeitungssystem über das Netzwerk 550 herunterlädt. In anderen Ausführungsformen stellt der Computer 500 einem Client-Rechner Anweisungen für die vorstehend genannten Verfahren und/oder Funktionalitäten zur Verfügung, so dass der Client-Rechner das Verfahren oder einen Teil des Verfahrens auf Grundlage der vom Computer 500 bereitgestellten Anweisungen ausführt. In einigen Ausführungsformen ist der Computer 500 in eine oder mehrere Instanzen der Datenverarbeitungsumgebung (z.B. ubiquitärer Gestenagent 100) und/oder andere Aspekte der vorliegenden Offenbarung integriert (oder es wird eine dem Computer 500 ähnliche Funktionalität virtuell bereitgestellt).
  • Der Computer 500 umfasst einen Arbeitsspeicher 525, einen Speicher 530, eine Verbindung 520 (z.B. einen Bus), eine oder mehrere CPUs 505 (vorliegend auch als Prozessoren bezeichnet), eine E/A-Geräteschnittstelle 510, E/A-Einheiten 512 und eine Netzwerkschnittstelle 515.
  • Jede CPU 505 ruft Programmieranweisungen ab, die im Arbeitsspeicher 525 oder im Speicher 530 gespeichert sind, und führt diese aus. Die Verbindung 520 dient der Übertragung von Daten, beispielsweise Programmieranweisungen, zwischen den CPUs 505, der E/A-Geräteschnittstelle 510, dem Speicher 530, der Netzwerkschnittstelle 515 und dem Arbeitsspeicher 525. Die Verbindung 520 kann durch einen oder mehrere Busse implementiert sein. Bei den CPUs 505 kann es sich in verschiedenen Ausführungsformen um eine einzelne CPU, um mehrere CPUs oder um eine einzelne CPU mit mehreren Prozessorkernen handeln. In einigen Ausführungsformen kann die CPU 505 ein digitaler Signalprozessor (DSP) sein. In einigen Ausführungsformen umfasst die CPU 505 eine oder mehrere integrierte 3D-Schaltungen (3DICs) (z.B. 3D-Wafer-Level-Packaging (3DWLP), Interposer-basierte 3D-Integration, 3D-gestapelte ICs (3D-SICs), monolithische 3D-ICs, heterogene 3D-Integration, 3D-System-in-Package- (3DSiP-) und/oder Package-on-Package-(PoP-) CPU-Konfigurationen). Der Arbeitsspeicher 525 steht allgemein für einen Direktzugriffsspeicher (z.B. statischer Direktzugriffsspeicher (SRAM), dynamischer Direktzugriffsspeicher (DRAM) oder ein Flash-Speicher). Der Speicher 530 steht allgemein für einen nichtflüchtigen Speicher, beispielsweise ein Festplattenlaufwerk, eine Solid-State-(SSD-) Einheit, austauschbare Speicherkarten, optische Speicher oder Flash-Speichereinheiten. In einer alternativen Ausführungsform kann der Speicher 530 durch SAN-(Storage-Area-Network-, Speichernetzwerk-) Einheiten, die Cloud oder andere Einheiten ersetzt werden, die über die E/A-Geräteschnittstelle 510 mit dem Computer 500 oder über die Netzwerkschnittstelle 515 mit dem Netzwerk 550 verbunden sind.
  • In einigen Ausführungsformen speichert der Speicher 525 Anweisungen 560. In verschiedenen Ausführungsformen sind die Anweisungen 560 jedoch teilweise im Arbeitsspeicher 525 und teilweise im Speicher 530 gespeichert, oder sie sind vollständig im Arbeitsspeicher 525 oder vollständig im Speicher 530 gespeichert, oder der Zugriff erfolgt über das Netzwerk 550 über die Netzwerkschnittstelle 515.
  • Bei den Anweisungen 560 kann es sich um durch einen Computer lesbare und durch einen Computer ausführbare Anweisungen zum Durchführen eines beliebigen Teils der oder aller Verfahren aus 2 bis 4 und/oder Implementieren der in einem beliebigen Teil von 1 erörterten Funktionalität handeln. Auch wenn die Anweisungen 560 im Arbeitsspeicher 525 dargestellt sind, können die Befehle 560 Programmanweisungen enthalten, die gemeinsam auf zahlreichen durch einen Computer lesbaren Speichermedien gespeichert und durch eine oder mehrere CPUs 505 ausführbar sind.
  • In verschiedenen Ausführungsformen umfassen die E/A-Einheiten 512 eine Schnittstelle, die Informationen darstellen und Eingaben empfangen kann. Beispielsweise können die E/A-Einheiten 512 einem Benutzer, der mit dem Computer 500 interagiert, Informationen anzeigen und Eingaben des Benutzers empfangen.
  • Der Computer 500 ist über die Netzwerkschnittstelle 515 mit dem Netzwerk 550 verbunden. Das Netzwerk 550 kann ein physisches, drahtloses, zellulares oder anderes Netzwerk umfassen.
  • Es sei klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, auch wenn diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung implementiert werden.
  • Cloud-Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 6 ist eine veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 6 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 7 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (6) bereitgestellt werden. Es sollte vorab klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Kunden und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Workload-Schicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Workloads und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Sensor-agnostische Gestenerkennung 96.
  • Bei Ausführungsformen der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt jedes möglichen technisch detaillierten Integrationsgrads handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder eine Teilmenge von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Es versteht sich, dass die Prozesssoftware (z.B. alle in den Anweisungen 560 aus 5 gespeicherten Anweisungen und/oder jede Software, die so konfiguriert ist, dass sie einen beliebigen Teil der in 2 bis 4 beschriebenen Verfahren durchführt und/oder einen beliebigen Teil der in 1 erörterten Funktionalität implementiert) durch manuelles Laden direkt in die Client-, Server- und Proxy-Computer über das Laden eines Speichermediums, wie z.B. einer CD, DVD usw. bereitgestellt werden kann, jedoch kann die Prozesssoftware auch automatisch oder halbautomatisch in ein Computersystem bereitgestellt werden, indem die Prozesssoftware an einen zentralen Server oder eine Gruppe von zentralen Servern gesendet wird. Die Prozesssoftware wird dann auf die Client-Computer heruntergeladen, die die Prozesssoftware ausführen werden. Alternativ wird die Prozesssoftware per E-Mail direkt an das Client-System gesendet. Die Prozesssoftware wird dann entweder in ein Verzeichnis ausgelagert oder in ein Verzeichnis geladen, indem ein Satz von Programmanweisungen ausgeführt wird, der die Prozesssoftware in ein Verzeichnis auslagert. Eine andere Möglichkeit besteht darin, die Prozesssoftware direkt an ein Verzeichnis auf der Festplatte des Client-Computers zu senden. Wenn Proxyserver vorhanden sind, wählt der Prozess den Proxyservercode aus, ermittelt, auf welchen Computern der Code des Proxyservers platziert werden soll, überträgt den Proxyservercode und installiert den Proxyservercode dann auf dem Proxycomputer. Die Prozesssoftware wird an den Proxyserver übertragen und dort gespeichert.
  • Ausführungsformen der vorliegenden Erfindung können auch als Teil eines Dienstleistungsvertrags mit einem Kundenunternehmen, einer gemeinnützigen Organisation, einer staatlichen Einrichtung, einer internen Organisationsstruktur oder dergleichen bereitgestellt werden. Diese Ausführungsformen können Konfigurieren eines Computersystems zur Durchführung, sowie Einsetzen von Software, Hardware und Webdiensten zur Implementierung einiger oder aller der vorliegend beschriebenen Verfahren umfassen. Diese Ausführungsformen können auch Analysieren der Betriebsabläufe des Kunden, die Erstellung von Empfehlungen in Reaktion auf die Analyse, Aufbauen von Systemen, die Teilmengen der Empfehlungen umsetzen, Integrieren der Systeme in bestehende Prozesse und Infrastrukturen, Messen der Nutzung der Systeme, Zuweisen von Ausgaben an Benutzer der Systeme sowie Rechnungsstellung (z.B. Erstellen einer Rechnung) oder anderweitiges Entgegennehmen von Zahlungen für die Nutzung der Systeme umfassen.
  • Die vorliegend verwendete Terminologie dient lediglich dem Zweck der Beschreibung bestimmter Ausführungsformen und soll die verschiedenen Ausführungsformen in keiner Weise einschränken. Die Singularformen „ein/eine“ und „der/die/das“ wie vorliegend verwendet sollen ebenso die Pluralformen einschließen, sofern nicht durch den Kontext offensichtlich anders angegeben. Ferner ist zu beachten, dass die Ausdrücke „enthält/umfasst“ und/oder „enthaltend/umfassend“, soweit in dieser Spezifikation verwendet, das Vorliegen der genannten Merkmale, Zahlen, Schritte, Operationen, Elemente und/oder Komponenten angibt, jedoch nicht das Vorliegen oder Hinzufügen eines oder mehrerer weiterer Merkmale, Zahlen, Schritte, Operationen, Elemente, Komponenten , und/oder Gruppen davon ausschließt. In der vorstehenden ausführlichen Beschreibung beispielhafter Ausführungsformen der verschiedenen Ausführungsformen wurde auf die beiliegenden Zeichnungen Bezug genommen (wobei gleiche Bezugszeichen für gleiche Elemente stehen), die einen Teil dieses Dokuments bilden und in denen zur Veranschaulichung konkrete beispielhafte Ausführungsformen gezeigt werden, mit denen die verschiedenen Ausführungsformen umgesetzt werden können. Diese Ausführungsformen wurden hinreichend ausführlich beschrieben, um es dem Fachmann zu ermöglichen, die Ausführungsformen in die Praxis umzusetzen, es können jedoch auch andere Ausführungsformen verwendet und logische, mechanische, elektrische und andere Änderungen vorgenommen werden, ohne vom Umfang der verschiedenen Ausführungsformen abzuweichen. In der vorstehenden Beschreibung wurden zahlreiche konkrete Einzelheiten dargelegt, um ein umfassendes Verständnis der verschiedenen Ausführungsformen zu ermöglichen. Die verschiedenen Ausführungsformen können jedoch auch ohne diese konkreten Einzelheiten umgesetzt werden. In anderen Fällen wurden bekannte Schaltungen, Strukturen und Methoden nicht im Einzelnen dargestellt, um die Ausführungsformen klarer herauszustellen.
  • Verwendungen des Wortes „Ausführungsform“, an verschiedenen Stellen in dieser Beschreibung müssen sich nicht unbedingt auf dieselbe Ausführungsform beziehen, können dies jedoch. Alle vorliegend veranschaulichten oder beschriebenen Daten und Datenstrukturen sind lediglich Beispiele, und in anderen Ausführungsformen können andere Datenmengen, Datentypen, Felder, Anzahlen und Typen von Feldern, Feldnamen, Anzahlen und Typen von Zeilen, Datensätzen, Einträgen oder Datenorganisationen verwendet werden. Darüber hinaus können beliebige Daten mit Logik kombiniert werden, so dass eine separate Datenstruktur nicht unbedingt erforderlich ist. Die vorstehende ausführliche Beschreibung ist daher nicht als einschränkend zu verstehen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden für Zwecke der Veranschaulichung dargelegt, sind jedoch nicht als abschließend oder auf die Ausführungsformen beschränkt zu verstehen. Für den Fachmann sind viele Abwandlungen und Variationen ersichtlich, ohne vom Umfang und Grundgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um bestmöglich die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber den auf dem Markt erhältlichen Technologien zu erklären oder um dem Fachmann das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Auch wenn die vorliegende Offenbarung hinsichtlich konkreter Ausführungsformen beschrieben wurde, ist zu erwarten, dass für einen Fachmann Änderungen und Modifikationen an diesen ersichtlich werden. Die nachstehenden Ansprüche sind daher so auszulegen, dass sie sämtliche derartigen Änderungen und Modifikationen abdecken, soweit diese im Grundgedanken und Umfang der Offenbarung liegen.
  • Alle Vorteile, die in der vorliegenden Offenbarung erörtert werden, sind Beispielvorteile, und es kann Ausführungsformen der vorliegenden Offenbarung geben, die alle, einige oder keinen der erörterten Vorteile verwirklichen und dennoch im Grundgedanken und Umfang der vorliegenden Offenbarung liegen.
  • Nachfolgend wird eine nichteinschränkende Liste von Beispielen angeführt, um einige Aspekte der vorliegenden Offenbarung zu veranschaulichen. Beispiel 1 ist ein durch einen Computer implementiertes Verfahren. Das Verfahren umfasst Registrieren einer Geste unter Verwendung einer Sensorausgabe einer ersten Benutzereinheit in einem ersten Benutzerprofil, das mit einem ubiquitären Gestenagenten assoziiert ist; Assoziieren der Geste mit: einem Auslöseschwellenwert, der die Geste anzeigt und auf der Sensorausgabe beruht; und einer durch einen Prozessor ausführbaren Aktion, die durch eine einer Mehrzahl von Benutzereinheiten ausführbar ist, die mit dem Benutzerprofil assoziiert sind; Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp; Identifizieren der Geste unter Verwendung von Daten des anderen Sensortyps, die den entsprechenden Auslöseschwellenwert erfüllen; und Implementieren der durch einen Prozessor ausführbaren Aktion, die mit der Geste assoziiert ist, durch die eine der Mehrzahl von Benutzereinheiten.
  • Beispiel 2 umfasst das Verfahren aus Beispiel 1, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel wird der ubiquitäre Gestenagent in einer öffentlichen Cloud-Umgebung gehostet.
  • Beispiel 3 umfasst das Verfahren nach einem der Beispiele 1 bis 2, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel ist der andere Sensortyp mit dem ersten Benutzerprofil assoziiert.
  • Beispiel 4 umfasst das Verfahren nach einem der Beispiele 1 bis 2, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel wird der andere Sensortyp mit einem anderen Benutzerprofil assoziiert, das im ubiquitären Gestenagenten gespeichert ist.
  • Beispiel 5 umfasst das Verfahren nach einem der Beispiele 1 bis 4, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel handelt es sich bei dem anderen Sensortyp um eine Kamera in einem intelligenten Gebäude. Optional umfasst die Sensorausgabe Beschleunigungsdaten von einem Beschleunigungsmesser, wobei der entsprechende Auslöseschwellenwert auf einer Beschleunigung beruht, die aus Videodaten der Kamera in dem intelligenten Gebäude abgeleitet wird.
  • Beispiel 6 umfasst das Verfahren nach einem der Beispiele 1 bis 5, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel ist die durch einen Prozessor ausführbare Aktion ausgewählt aus einer Gruppe, bestehend aus: Aktivieren eines Aktuators, Zugreifen auf einen entfernten Server und Implementieren einer Aktion auf einem Smartphone.
  • Beispiel 7 umfasst das Verfahren nach einem der Beispiele 1 bis 6, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel wird das Verfahren von einem oder mehreren Computern gemäß einer Software durchgeführt, die von einem entfernten Datenverarbeitungssystem auf den einen oder die mehreren Computer heruntergeladen wird. Optional umfasst das Verfahren ferner: Messen einer Nutzung der Software und Erstellen einer Rechnung auf Grundlage des Messens der Nutzung.
  • Beispiel 8 ist ein System. Das System weist einen oder mehrere Prozessoren und ein oder mehrere durch einen Computer lesbare Speichermedien auf, auf denen Programmanweisungen gespeichert sind, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, so konfiguriert sind, dass sie den einen oder die mehreren Prozessoren veranlassen, ein Verfahren gemäß einem der Beispiele 1 bis 7 durchzuführen.
  • Beispiel 9 ist ein Computerprogrammprodukt. Das Computerprogrammprodukt weist ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen auf, die gemeinsam auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen aufweisen, die so konfiguriert sind, dass sie einen oder mehrere Prozessoren veranlassen, ein Verfahren nach einem der Beispiele 1 bis 7 durchzuführen.

Claims (11)

  1. Durch einen Computer implementiertes Verfahren, umfassend: Registrieren einer Geste unter Verwendung einer Sensorausgabe einer ersten Benutzereinheit in einem ersten Benutzerprofil, das mit einem ubiquitären Gestenagenten assoziiert ist; Assoziieren der Geste mit: einem Auslöseschwellenwert, der die Geste anzeigt und auf der Sensorausgabe beruht; und einer durch einen Prozessor ausführbaren Aktion, die durch eine einer Mehrzahl von Benutzereinheiten ausführbar ist, die mit dem Benutzerprofil assoziiert sind; Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp; Identifizieren der Geste unter Verwendung von Daten des anderen Sensortyps, die den entsprechenden Auslöseschwellenwert erfüllen; und Implementieren der durch einen Prozessor ausführbaren Aktion, die mit der Geste assoziiert ist, durch die eine der Mehrzahl von Benutzereinheiten.
  2. Verfahren nach Anspruch 1, wobei der ubiquitäre Gestenagent in einer öffentlichen Cloud-Umgebung gehostet wird.
  3. Verfahren nach Anspruch 1, wobei der andere Sensortyp mit dem ersten Benutzerprofil assoziiert wird.
  4. Verfahren nach Anspruch 1, wobei der andere Sensortyp mit einem anderen Benutzerprofil assoziiert wird, das im ubiquitären Gestenagenten gespeichert ist.
  5. Verfahren nach Anspruch 1, wobei es sich bei dem anderen Sensortyp um eine Kamera in einem intelligenten Gebäude handelt.
  6. Verfahren nach Anspruch 5, wobei die Sensorausgabe Beschleunigungsdaten von einem Beschleunigungsmesser enthält und wobei der entsprechende Auslöseschwellenwert auf einer Beschleunigung beruht, die aus Videodaten der Kamera in dem intelligenten Gebäude abgeleitet wird.
  7. Verfahren nach Anspruch 1, wobei die durch einen Prozessor ausführbare Aktion ausgewählt aus einer Gruppe, bestehend aus: Aktivieren eines Aktuators, Zugreifen auf einen entfernten Server und Implementieren einer Aktion auf einem Smartphone.
  8. Verfahren nach Anspruch 1, wobei das Verfahren von einem oder mehreren Computern gemäß einer Software durchgeführt wird, die von einem entfernten Datenverarbeitungssystem auf den einen oder die mehreren Computer heruntergeladen wird.
  9. Verfahren nach Anspruch 8, wobei das Verfahren ferner Folgendes umfasst: Messen einer Nutzung der Software; und Erstellen einer Rechnung auf Grundlage des Messens der Nutzung.
  10. System, das Folgendes aufweist: einen oder mehrere Prozessoren; und ein oder mehrere durch einen Computer lesbare Speichermedien, auf denen Programmanweisungen gespeichert sind, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, so konfiguriert sind, dass sie den einen oder die mehreren Prozessoren veranlassen, ein Verfahren durchzuführen, das Folgendes umfasst: Registrieren einer Geste unter Verwendung einer Sensorausgabe einer ersten Benutzereinheit in einem ersten Benutzerprofil, das mit einem ubiquitären Gestenagenten assoziiert ist; Assoziieren der Geste mit: einem Auslöseschwellenwert, der die Geste anzeigt und auf der Sensorausgabe beruht; und einer durch einen Prozessor ausführbaren Aktion, die durch eine einer Mehrzahl von Benutzereinheiten ausführbar ist, die mit dem Benutzerprofil assoziiert sind; Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp; Identifizieren der Geste unter Verwendung von Daten des anderen Sensortyps, die den entsprechenden Auslöseschwellenwert erfüllen; und Implementieren der durch einen Prozessor ausführbaren Aktion, die mit der Geste assoziiert ist, durch die eine der Mehrzahl von Benutzereinheiten.
  11. Computerprogrammprodukt, das ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen aufweist, die gemeinsam auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen aufweisen, die so konfiguriert sind, dass sie einen oder mehrere Prozessoren veranlassen, ein Verfahren durchzuführen, das Folgendes umfasst: Registrieren einer Geste unter Verwendung einer Sensorausgabe einer ersten Benutzereinheit in einem ersten Benutzerprofil, das mit einem ubiquitären Gestenagenten assoziiert ist; Assoziieren der Geste mit: einem Auslöseschwellenwert, der die Geste anzeigt und auf der Sensorausgabe beruht; und einer durch einen Prozessor ausführbaren Aktion, die durch eine einer Mehrzahl von Benutzereinheiten ausführbar ist, die mit dem Benutzerprofil assoziiert sind; Umwandeln des Auslöseschwellenwerts in einen entsprechenden Auslöseschwellenwert für einen anderen Sensortyp; Identifizieren der Geste unter Verwendung von Daten des anderen Sensortyps, die den entsprechenden Auslöseschwellenwert erfüllen; und Implementieren der durch einen Prozessor ausführbaren Aktion, die mit der Geste assoziiert ist, durch die eine der Mehrzahl von Benutzereinheiten.
DE102021123285.6A 2020-10-21 2021-09-08 Sensor-agnostische gestenerkennung Pending DE102021123285A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/075,741 US11789542B2 (en) 2020-10-21 2020-10-21 Sensor agnostic gesture detection
US17/075,741 2020-10-21

Publications (1)

Publication Number Publication Date
DE102021123285A1 true DE102021123285A1 (de) 2022-04-21

Family

ID=78497874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021123285.6A Pending DE102021123285A1 (de) 2020-10-21 2021-09-08 Sensor-agnostische gestenerkennung

Country Status (5)

Country Link
US (1) US11789542B2 (de)
JP (1) JP2022068123A (de)
CN (1) CN114384997A (de)
DE (1) DE102021123285A1 (de)
GB (1) GB2601408B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726553B2 (en) 2021-07-20 2023-08-15 Sony Interactive Entertainment LLC Movement-based navigation
US11786816B2 (en) 2021-07-30 2023-10-17 Sony Interactive Entertainment LLC Sharing movement data
US20230051703A1 (en) * 2021-08-16 2023-02-16 Sony Interactive Entertainment LLC Gesture-Based Skill Search

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242255B2 (en) 2002-02-15 2019-03-26 Microsoft Technology Licensing, Llc Gesture recognition system using depth perceptive sensors
US7301526B2 (en) * 2004-03-23 2007-11-27 Fujitsu Limited Dynamic adaptation of gestures for motion controlled handheld devices
US8704767B2 (en) * 2009-01-29 2014-04-22 Microsoft Corporation Environmental gesture recognition
US9569001B2 (en) * 2009-02-03 2017-02-14 Massachusetts Institute Of Technology Wearable gestural interface
US8451853B2 (en) * 2009-10-30 2013-05-28 Nokia Corporation Method and apparatus for selecting a receiver in an electronic device
US20120131513A1 (en) 2010-11-19 2012-05-24 Microsoft Corporation Gesture Recognition Training
EP2666070A4 (de) 2011-01-19 2016-10-12 Hewlett Packard Development Co Verfahren und system für multimodale steuerung und gestensteuerung
CN103105926A (zh) * 2011-10-17 2013-05-15 微软公司 多传感器姿势识别
CN103576847B (zh) 2012-08-09 2016-03-30 腾讯科技(深圳)有限公司 获取账号信息的方法和装置
SG11201504814VA (en) 2013-01-03 2015-07-30 Saurav Suman A method and system enabling control of different digital devices using gesture or motion control
US9766709B2 (en) * 2013-03-15 2017-09-19 Leap Motion, Inc. Dynamic user interactions for display control
US9134952B2 (en) * 2013-04-03 2015-09-15 Lg Electronics Inc. Terminal and control method thereof
CN103576902A (zh) * 2013-09-18 2014-02-12 酷派软件技术(深圳)有限公司 控制终端设备的方法及系统
US20150084859A1 (en) * 2013-09-23 2015-03-26 Yair ITZHAIK System and Method for Recognition and Response to Gesture Based Input
US10048761B2 (en) * 2013-09-30 2018-08-14 Qualcomm Incorporated Classification of gesture detection systems through use of known and yet to be worn sensors
US9405377B2 (en) * 2014-03-15 2016-08-02 Microsoft Technology Licensing, Llc Trainable sensor-based gesture recognition
US9641991B2 (en) * 2015-01-06 2017-05-02 Fitbit, Inc. Systems and methods for determining a user context by correlating acceleration data from multiple devices
CN104699244B (zh) 2015-02-26 2018-07-06 小米科技有限责任公司 智能设备的操控方法及装置
US9881144B2 (en) * 2015-06-15 2018-01-30 International Business Machines Corporation Identifying usage of code
US11587559B2 (en) * 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US9661470B1 (en) * 2015-10-05 2017-05-23 Google Inc. Methods and systems for locating an actor within an environment
US10345914B2 (en) * 2016-01-26 2019-07-09 Infinity Augmented Reality Israel Ltd. Method and system for generating a synthetic database of postures and gestures
DK179415B1 (en) * 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
EP3340103A1 (de) * 2016-12-21 2018-06-27 Axis AB Verfahren zur identifizierung von ereignissen in einem bewegungsvideo
US11367198B2 (en) * 2017-02-07 2022-06-21 Mindmaze Holding Sa Systems, methods, and apparatuses for tracking a body or portions thereof
CN206698298U (zh) * 2017-05-15 2017-12-01 东北大学秦皇岛分校 一种智能手机
US10401181B2 (en) * 2017-08-09 2019-09-03 Mapbox, Inc. Detection of travel mode associated with computing devices
US11169612B2 (en) * 2018-11-27 2021-11-09 International Business Machines Corporation Wearable device control
US20200257372A1 (en) * 2019-02-11 2020-08-13 Sage Senses Inc. Out-of-vocabulary gesture recognition filter
WO2020166253A1 (ja) * 2019-02-13 2020-08-20 日立オートモティブシステムズ株式会社 車両制御装置および電子制御システム
US10904258B2 (en) * 2019-02-25 2021-01-26 International Business Machines Corporation Intelligent cluster learning in an internet of things (IoT) computing environment
WO2021091604A1 (en) * 2019-11-08 2021-05-14 Apple Inc. Machine-learning based gesture recognition using multiple sensors
US20210405759A1 (en) * 2020-06-24 2021-12-30 AR & NS Investment, LLC Cross-correlation system and method for spatial detection using a network of RF repeaters

Also Published As

Publication number Publication date
US20220121289A1 (en) 2022-04-21
GB2601408A (en) 2022-06-01
GB202114077D0 (en) 2021-11-17
US11789542B2 (en) 2023-10-17
CN114384997A (zh) 2022-04-22
JP2022068123A (ja) 2022-05-09
GB2601408B (en) 2023-06-28

Similar Documents

Publication Publication Date Title
CN111247532B (zh) 利用多任务学习进行特征提取
US11138520B2 (en) Ranking and updating machine learning models based on data inputs at edge nodes
DE102021123285A1 (de) Sensor-agnostische gestenerkennung
DE112018005462T5 (de) Anomalie-erkennung unter verwendung von cognitive-computing
DE112019001820T5 (de) Friktionslose mikrostandorterkennung und autorisierung
CN113614748A (zh) 用于对象检测的增量学习的系统和方法
US10990810B2 (en) Automated facial recognition detection
WO2020144508A1 (en) Representative-based metric learning for classification and few-shot object detection
CN111033523A (zh) 用于图像分类任务的数据增强
DE112020002110T5 (de) Ressourcenarme entitätsauflösung mit transfer learning
DE112019003042T5 (de) Erkennung von verdächtigen aktivitäten in computernetzwerken
WO2022068320A1 (en) Computer automated interactive activity recognition based on keypoint detection
DE102012220390A1 (de) Verwenden des geografischen Ortes zum Ermitteln von Element- und Gebietsdaten zum Bereitstellen an eine Datenverarbeitungseinheit
DE112021003262T5 (de) Erkennen von quelldatensätzen, die zu einem transferlernverfahren für eine zieldomäne passen
DE112021005569T5 (de) Kontradiktorisches, halbüberwachtes one-shot-lernen
DE112021003923T5 (de) Iterative speicherzuordnungsoperationen bei intelligenten linsen/augmentierten brillen
DE112021003184T5 (de) Ermittlung von laufzeitumgebungen für software-container
DE102021124261A1 (de) Automatisierte computerisierte Identifizierung von Anlagegegenständen
US11151448B2 (en) Location tagging for visual data of places using deep learning
US20220019867A1 (en) Weighted deep fusion architecture
US11704542B2 (en) Convolutional dynamic Boltzmann Machine for temporal event sequence
US11841977B2 (en) Training anonymized machine learning models via generalized data generated using received trained machine learning models
DE112021005633T5 (de) Lernen eines abgleichens ungepaarter multimodaler merkmale für halbüberwachtes lernen
US11947627B2 (en) Context aware anomaly detection
US20220300822A1 (en) Forgetting data samples from pretrained neural network models

Legal Events

Date Code Title Description
R012 Request for examination validly filed