ES2648049T3 - Detección mejorada de gesto ondulatorio - Google Patents

Detección mejorada de gesto ondulatorio Download PDF

Info

Publication number
ES2648049T3
ES2648049T3 ES09801073.9T ES09801073T ES2648049T3 ES 2648049 T3 ES2648049 T3 ES 2648049T3 ES 09801073 T ES09801073 T ES 09801073T ES 2648049 T3 ES2648049 T3 ES 2648049T3
Authority
ES
Spain
Prior art keywords
gesture
computer
points
moving object
movement
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.)
Active
Application number
ES09801073.9T
Other languages
English (en)
Inventor
Ian Clarkson
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2648049T3 publication Critical patent/ES2648049T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

Un medio legible por ordenador codificado con un programa informático que comprende instrucciones que, cuando se ejecutan, funcionan para hacer que un ordenador realice operaciones que comprendan: definir (302) una forma dentro de los datos de movimiento, en la que la forma (130, 402, 408, 410, 916-922) corresponde a un gesto y en la que los datos de movimiento comprenden un mapa de historial de movimientos (120, 910) que comprende además valores de los datos del historial de movimientos que proporcionan, para cada punto de una imagen, una indicación de tiempo desde que un objeto en movimiento se detectó en el punto; muestrear (304) los datos de movimiento en puntos a lo largo de la forma definida; determinar (306), basándose en los datos de movimiento muestreados, las posiciones (502-532, 602-628) del objeto en movimiento a lo largo de la forma definida, a lo largo del tiempo; determinar (308) si el objeto en movimiento está realizando el gesto basándose en un patrón mostrado por las posiciones determinadas; y controlar (310) una aplicación si determina que el objeto en movimiento está realizando el gesto.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Detección mejorada de gesto ondulatorio CAMPO
[0001] La presente divulgación se refiere en general a la entrada de usuario.
[0002] Se han usado cámaras para capturar imágenes de objetos. Se han desarrollado técnicas para analizar una o más imágenes de un objeto presente dentro de una o más imágenes para detectar una posición del objeto. Por ejemplo, el flujo óptico se ha usado para detectar el movimiento de un objeto analizando múltiples imágenes del objeto tomadas con éxito en el tiempo.
[0003] Se han propuesto diversos procedimientos para el reconocimiento de gestos. En "View-based Interpretation of Real-time Optical Flow for Gesture Recognition" de Cutler et al, XP10277596, el flujo óptico se estima en una imagen y se segmenta en fragmentos de movimiento, en los que se reconocen gestos analizando características, tales como el movimiento o el tamaño relativo, de estos fragmentos. En "Motion Segmentation and Pose Recognition with Motion History Gradients" de Bradski et al, XP055187916, se usan imágenes temporizadas del historial de movimientos y se agrupan los píxeles para formar máscaras de movimiento segmentadas para las cuales se determina la orientación del movimiento.
[0004] Es deseable mejorar los procedimientos para reconocer los gestos de movimiento.
RESUMEN
[0005] El objeto de la invención se consigue mediante la materia objeto de las reivindicaciones independientes. Se definen modos de realización ventajosos en las reivindicaciones dependientes. Se proporcionan otros ejemplos para facilitar el entendimiento de la invención.
[0006] De acuerdo con una implementación general, una posición de un objeto en movimiento puede rastrearse con el paso del tiempo a lo largo de una forma definida dentro de un mapa de historial de movimientos. Cuando se grafica la posición del objeto (expresada como una proporción de una única dimensión de la forma) con el paso del tiempo, puede determinarse que el objeto en movimiento está realizando un gesto ondulatorio, deslizante u oscilante si la posición graficada muestra una forma que se asemeja en general a uno o más períodos de una sinusoide. Dicho gesto puede asignarse a una entrada de control, mejorando la precisión de una interfaz hombre-ordenador.
[0007] Las implementaciones pueden incluir una o más de las características siguientes. Por ejemplo, la determinación de las posiciones del objeto en movimiento a lo largo de la forma definida, con el paso del tiempo, puede incluir además, en unas primera y segunda veces, puntos de selección que estén alineados con la forma definida y que incluyan valores de los datos del historial de movimientos muestreados que satisfagan un umbral predeterminado, y seleccionando uno de los puntos seleccionados. La determinación de las posiciones del objeto en movimiento puede incluir también la salida, como las primera y segunda posiciones del objeto en movimiento, de los puntos seleccionados respectivamente en las primera y segunda veces. El punto puede ser un punto mediano, medio o aleatorio de los puntos seleccionados. Las operaciones también pueden incluir el acceso a la imagen y la generación de los valores de los datos del historial de movimientos incluidos en el mapa de historial de movimientos en base a la imagen accedida. El mapa de historial de movimientos puede generarse usando flujo óptico.
[0008] En otros ejemplos, el patrón incluye una forma de un periodo de una sinusoide o de una sinusoide escalonada sobre un gráfico de las posiciones determinadas con el paso del tiempo, de las posiciones determinadas expresadas como una proporción de una única dimensión de la forma. Las operaciones también pueden incluir determinar, para cada punto, si el objeto en movimiento se ha detectado dentro de un umbral predeterminado y agrupar puntos adyacentes determinados para tener el movimiento del objeto en movimiento detectado dentro del umbral predeterminado, donde los datos de movimiento pueden muestrearse en un subconjunto de los puntos agrupados que estén alineados con la forma definida. Las operaciones también pueden incluir definir un cuadro delimitador alrededor de los puntos agrupados, donde un tamaño y una ubicación de la forma dentro de los datos de movimiento se definen con respecto al cuadro delimitador. La forma puede ser un segmento de línea o un acorde, tal como un segmento de línea más largo capaz de ajustarse dentro de los puntos agrupados.
[0009] En otros ejemplos, las operaciones pueden incluir detectar grupos de puntos dentro de los datos de movimiento y seleccionar uno de los grupos de puntos, donde la forma se define dentro del grupo seleccionado. El grupo puede seleccionarse basándose en el tamaño relativo. Los datos de movimiento pueden muestrearse en una cantidad muestreada de puntos que estén alineados con la forma definida y la cantidad muestreada puede incluir una cantidad fija o puede basarse en un tamaño de la forma definida o en una cantidad alineada de puntos que estén alineados con la forma definida dentro de los datos de movimiento. Determinar si el objeto en movimiento está realizando el gesto basándose en el patrón mostrado por las posiciones determinadas puede incluir además la comparación del patrón con los criterios de umbral superior e inferior y con los criterios de temporización. El gesto
5
10
15
20
25
30
35
40
45
50
55
60
65
puede ser un gesto deslizante u ondulatorio, manual o con los dedos. Las operaciones pueden incluir además añadir las posiciones determinadas a un historial de movimientos y detectar si el patrón existe dentro del historial de movimientos o contar una cantidad de actuaciones del gesto.
[0010] Las implementaciones de cualquiera de las técnicas descritas anteriormente pueden incluir un procedimiento, un proceso, un sistema, un dispositivo, un aparato, una interfaz de interacción, instrucciones almacenadas en un medio legible por ordenador o un medio legible por ordenador codificado con un programa informático. Los detalles de uno o más modos de realización se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características resultarán evidentes a partir de la descripción, de los dibujos y de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0011]
Las FIGS. 1A y 1B ilustran un diagrama contextual que demuestra el reconocimiento de gestos y un gráfico de los valores del historial de movimientos asociado usado para determinar una posición de objeto.
La FIG. 2 es un diagrama de bloques de un dispositivo.
La FIG. 3 es un diagrama de flujo de un proceso a modo de ejemplo.
La FIG. 4 ilustra formas inscritas de ejemplo.
Las FIGS. 5-6 ilustran gráficos de ejemplo.
Las FIGS. 7-8 ilustran gestos y gráficos asociados de ejemplo.
La FIG. 9 ilustra la detección de gestos.
Las FIGS. 10-11 ilustran interfaces de usuario de ejemplo.
La FIG. 12 ilustra dispositivos informáticos de ejemplo.
[0012] Números de referencia similares representan las partes correspondientes de principio a fin.
DESCRIPCIÓN DETALLADA
[0013] De acuerdo con una implementación general, una posición de un objeto en movimiento puede rastrearse con el paso del tiempo a lo largo de una forma definida dentro de los datos de movimiento. Cuando se grafica la posición del objeto (expresada como una proporción de una única dimensión de la forma) con el paso del tiempo, puede determinarse que el objeto en movimiento está realizando un gesto ondulatorio, deslizante u oscilante si la posición graficada muestra una forma que se asemeja en general a uno o más períodos de una sinusoide. Dicho gesto puede asignarse a una entrada de control, mejorando la eficacia y la precisión de una interfaz hombre-ordenador.
[0014] Al hacerlo, y en lugar de seleccionar un control en una interfaz de usuario, un usuario puede moverse a través de una serie de movimientos que definan un gesto (por ejemplo, mover la mano u otra parte del cuerpo), con el fin de invocar cierta funcionalidad que esté asociada con ese gesto. Como tal, pueden implementarse funciones sin requerir el uso de botones físicos o controles de interfaz de usuario, permitiendo interfaces de usuario más pequeñas y efectuando una mayor precisión en la selección de la funcionalidad. Además, mediante el uso de la entrada basada en cámaras, se elimina el efecto borroso deletéreo de las huellas dactilares en una pantalla táctil, puesto que el usuario no está obligado a tocar físicamente ningún dispositivo para efectuar una entrada de control.
[0015] Por tanto, en un ejemplo, un usuario interactúa con un dispositivo realizando un conjunto de gestos definidos. Se proporciona un enfoque mejorado, en el cual se reconoce o rechaza un gesto de entrada basándose en si los datos de movimiento muestreados en puntos alineados con una forma definida dentro de los datos de movimiento muestran un patrón esperado.
[0016] Como se usa en el presente documento por completo, un "gesto" está previsto para referirse a una forma de comunicación no verbal hecha con parte de un cuerpo humano y se contrasta con comunicación verbal tal como el habla. Por ejemplo, un gesto puede definirse por un movimiento, cambio o transformación entre una primera posición, pose o expresión y una segunda pose, posición o expresión. Los gestos comunes usados en el discurso cotidiano incluyen, por ejemplo, un gesto de "comillas aéreas", un gesto de reverencia, una reverencia, un beso en la mejilla, un movimiento del dedo o de la mano, una genuflexión, un movimiento de cabeza, un gesto de chocar los cinco, un asentimiento de cabeza, una cara triste, un puño levantado, un saludo, un movimiento de pulgar arriba, un gesto con pellizco, un gesto de torsión de la mano o del cuerpo o un gesto de apuntar con el dedo.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0017] Puede detectarse un gesto usando una cámara, por ejemplo analizando una imagen de un usuario, usando un sensor de inclinación, tal como detectando un ángulo en el que un usuario esté sosteniendo o inclinando un dispositivo, detectando movimiento de un dispositivo o por cualquier otro enfoque. Pueden formarse gestos realizando una serie de movimientos en un modelo o de una manera particular.
[0018] Aunque el enfoque mejorado descrito en el presente documento se describe usando un gesto ondulatorio de ejemplo, en otras implementaciones puede detectarse también cualquier otra forma o tipo de gesto (tal como los gestos de ejemplo descritos anteriormente). Además, aunque el gesto ondulatorio de ejemplo se describe como un gesto de "compromiso", en otras implementaciones un gesto detectado usando este enfoque mejorado tiene un propósito distinto de ser un "gesto de compromiso". Otra descripción de un gesto de "compromiso" (en oposición a un gesto previsto para definir una entrada de comando real) se describe con más detalle a continuación.
[0019] Un usuario puede hacer un gesto (o puede "gesticular") cambiando una posición de una parte del cuerpo (por ejemplo, un movimiento ondulatorio) o un usuario puede gesticular sin cambiar una posición de una parte del cuerpo (por ejemplo, haciendo un gesto de puño cerrado o manteniendo una parte del cuerpo inmóvil durante un período de tiempo). Aunque el enfoque mejorado usa, como ejemplos, gestos de dedos, manos y brazos, también pueden usarse otros tipos de gestos. Por ejemplo, si se rastrea el movimiento del ojo de un usuario, el enfoque mejorado descrito en el presente documento puede usarse para detectar un gesto de "exploración ocular" por el ojo izquierdo y por el ojo derecho.
[0020] La FIG. 1A es un diagrama contextual que demuestra el reconocimiento de gestos y la FIG. 1B es un gráfico de los valores del historial de movimientos asociado usado para determinar una posición de objeto en un momento particular. Un usuario 102 está parado delante de una cámara 104 y de un centro de medios 106. El centro de medios 106 puede ser, por ejemplo, un ordenador que esté reproduciendo una grabación musical. El usuario 102 mueve la mano izquierda 108 en un movimiento ondulatorio hacia atrás y hacia adelante (por ejemplo, el usuario puede hacer un gesto de deslizamiento u ondulatorio, de la mano o del dedo). Por ejemplo, en un punto temporal ti, el usuario mueve la mano 108 hacia su cuerpo; en un punto temporal t2, el usuario mueve la mano 108 hacia el lado (lejos de su cuerpo en este ejemplo o hacia la derecha desde la perspectiva del lector); y, en un punto temporal t3, el usuario mueve la mano 108 de vuelta hacia su cuerpo. Mientras el usuario 102 realiza un gesto intencional, tal como el movimiento ondulatorio de la mano 108, el usuario puede realizar otros movimientos intencionales o no intencionales, tales como un movimiento rápido o pequeño de la mano derecha 110. Este movimiento pequeño de la mano derecha 110 puede ser ocasionado por la fluctuación del cuerpo o incluso por el movimiento de la propia cámara 104.
[0021] La cámara 104 puede tomar múltiples imágenes del usuario 102 a medida que transcurre el tiempo. El centro de medios 106 puede procesar las múltiples imágenes y generar un mapa de historial de movimientos 120, que puede indicar el tiempo adicional de los movimientos de un usuario. El mapa de historial de movimientos 120 puede proporcionar datos de movimiento, que incluyan, para cada punto de una imagen, una indicación de tiempo desde que se detectó un objeto en movimiento en el punto. El centro de medios 106 puede determinar, para cada punto en una imagen, si un objeto en movimiento (por ejemplo, la mano 108) se ha detectado dentro de un periodo de tiempo predeterminado. Pueden generarse varios mapas de historial de movimientos 120, tal como un mapa de historial de movimientos 120 para cada punto temporal (por ejemplo, ti, tz t3) en los que se detecte movimiento.
[0022] Aunque el mapa de historial de movimientos 120 se ilustra como una cuadrícula visual de puntos, el mapa de historial de movimientos 120 puede existir puramente como una estructura de datos en un medio legible por ordenador, sin una visualización concomitante. Cuando se visualicen, sin embargo, los puntos del mapa de historial de movimientos 120 pueden aparecer como puntos brillantes (que representen valores altos) donde se detectó un movimiento reciente, disipándose a negro a medida que pasa el tiempo sin que se produzca un movimiento adicional. En un momento particular en el tiempo, por ejemplo, un movimiento deslizante de la mano puede aparecer como un punto brillante donde la mano del usuario se detecte más recientemente, seguido de una pista que se vuelva negro donde comenzó el movimiento deslizante de la mano.
[0023] Los puntos adyacentes en un mapa de historial de movimientos 120 en los que se ha determinado que se ha detectado movimiento pueden agruparse para su procesamiento como un único grupo, agrupación o "fragmento". Al aislar los puntos como un grupo, el gasto informático puede minimizarse. Los puntos que se ha determinado que tienen movimiento como resultado del movimiento de la mano derecha 110 pueden agruparse como un grupo de puntos 122. Como otro ejemplo, los puntos que se ha determinado que tienen movimiento como resultado del movimiento de la mano izquierda 108 pueden agruparse como un grupo de puntos 124.
[0024] Para cada grupo de puntos, puede definirse un cuadro delimitador alrededor del grupo. Por ejemplo, un cuadro delimitador 126 se define alrededor del grupo de puntos 122 y un cuadro delimitador 128 se define alrededor del grupo de puntos 124. Si el usuario comienza a realizar un gesto mientras la mano está ya en posición vertical, el cuadro delimitador puede estar conformado en general como un rectángulo ancho. Si el usuario comienza a realizar el gesto mientras la mano está en su lado, la elevación de la mano desde su lado hasta la posición vertical puede hacer que el cuadro delimitador se forme como un rectángulo alto o un cuadrado. Al disminuir la persistencia del historial de movimientos (por ejemplo, aumentar la velocidad de disipación de los valores del historial de
5
10
15
20
25
30
35
40
45
50
55
60
65
movimientos para cada píxel), el efecto de este movimiento de elevación de la mano puede reducirse, dando como resultado cuadros delimitadores que son más rectangulares que los que son de forma cuadrada.
[0025] Un gesto intencional puede dar como resultado en general un grupo más grande de puntos que un gesto no intencional. Por ejemplo, el grupo de puntos 124 es más grande que el grupo de puntos 122. En algunas implementaciones, para propósitos de detección de gestos, solamente el grupo más grande de puntos puede considerarse asociado con un gesto candidato. En otros enfoques, sin embargo, se tendrá en cuenta primero el grupo de puntos más pequeño, los grupos de puntos se tendrán en cuenta al mismo tiempo o los grupos se tendrán en cuenta de uno en uno basándose en el tamaño u otros criterios. Además, cada grupo puede examinarse al mismo tiempo, en paralelo.
[0026] Una forma puede inscribirse o definirse de otra forma dentro de los datos de movimiento, donde el tamaño y la ubicación de la forma pueden definirse con respecto a un cuadro delimitador. Por ejemplo, un segmento de línea 130 puede inscribirse dentro del cuadro delimitador 128 (por ejemplo, dentro del cuadro delimitador que rodee el grupo de puntos más grande). La longitud del segmento de línea 130 puede basarse en el tamaño del cuadro delimitador 128. Por ejemplo, la longitud del segmento de línea 130 puede corresponder a la longitud de la dimensión más grande del cuadro delimitador 128. Son posibles otros tamaños de segmento de línea y otras formas inscritas, como se describe con más detalle a continuación.
[0027] Los datos de movimiento pueden muestrearse usando puntos que estén alineados con el segmento de línea 130. La cantidad muestreada puede ser una cantidad fija (por ejemplo, 3, 64 o 10.000 muestras) o la cantidad muestreada puede basarse en la longitud del segmento de línea 130 (por ejemplo, un segmento de línea más largo puede dar como resultado más puntos de muestra que un segmento de línea más corto).
[0028] En base a los datos de movimiento muestreados, puede determinarse la última posición detectada de la mano 108 a lo largo del segmento de línea 130. Por ejemplo (como se ilustra en la FIG. 1B), en el punto temporal ti en el cual el usuario 102 mueve la mano 108 hacia la izquierda (desde la perspectiva del lector), puede haber valores de los datos del historial de movimientos más altos en el lado izquierdo del segmento de línea 130. Es decir, el lado izquierdo del segmento de línea 130 puede tener valores que indiquen el movimiento más reciente de la mano 108. Un movimiento menos reciente puede filtrarse o ignorarse de otra forma aplicando un umbral 160 a puntos muestreados a lo largo del segmento de línea 130. Pueden filtrarse puntos muestreados que tengan un valor de los datos del historial de movimientos inferior a un umbral.
[0029] La posición de la mano 108 puede identificarse seleccionando un punto de los puntos no filtrados 162 restantes. Por ejemplo, puede determinarse una región de puntos no filtrados y puede seleccionarse un punto medio 164 (correspondiente a la posición del 18 % a lo largo de la línea) dentro de la región. Otros enfoques de selección de puntos de ejemplo incluyen seleccionar un punto en un borde de la región que incluya puntos no filtrados, seleccionar un punto aleatorio, seleccionar un punto que tenga el valor de los datos del historial de movimientos más alto entre puntos no filtrados o seleccionar un punto que tenga un valor de los datos del historial de movimientos igual al valor promedio de los datos del historial de movimientos entre los puntos no filtrados.
[0030] La posición detectada de la mano puede expresarse como un porcentaje de la longitud del segmento de línea 130. Por ejemplo, una posición detectada del 0 % corresponde a una posición en el extremo izquierdo del segmento de línea 130. Una posición detectada del 100 % corresponde a una posición en el extremo derecho del segmento de línea 130. Las posiciones manuales detectadas correspondientes al movimiento ondulatorio de la mano 108 incluyen una posición manual detectada 132 del 18 % para el punto temporal ti, una posición manual detectada 134 del 84 % para el punto temporal t2 y una posición manual detectada 136 del 19 % para el punto temporal t3.
[0031] Las posiciones manuales detectadas con el paso del tiempo pueden trazarse en un gráfico 140. Por ejemplo, el gráfico 140 incluye puntos de gráfico 142-146, correspondientes a las posiciones manuales detectadas 132-136, respectivamente. El gráfico 140 incluye una posición umbral superior 150 del 80 % y una posición umbral inferior 152 del 20 %. Las posiciones umbral 150-152 pueden usarse para determinar si el movimiento de un usuario constituye una onda.
[0032] Por ejemplo, para que se produzca una onda, el usuario 102 puede mover la mano hacia la izquierda hacia menos de la posición umbral inferior 152 (es decir, menos de la posición del 20 %, tal como se ilustra por el punto 142 correspondiente al punto temporal ti), a continuación en la dirección opuesta a más que la posición umbral superior 150 (es decir, más que la posición del 80 %, tal como se ilustra por el punto 144 correspondiente al punto temporal t2) y a continuación hacia la izquierda de nuevo hacia al menos la posición umbral inferior 152 (tal como se ilustra por el punto 146 correspondiente al punto temporal t3). Dependiendo de donde el usuario 102 comience su movimiento, también puede producirse una onda por un usuario que cruce primero la posición umbral superior 150.
[0033] Pueden detectarse uno o más gestos de onda si el gráfico 140 muestra un patrón sinusoidal. Un gesto de onda puede corresponder a un período de una sinusoide. Por ejemplo, la parte gráfica desde el punto 142 hasta el punto 146 es un periodo de una sinusoide y, por lo tanto, corresponde a un gesto de onda. Es decir, un gesto de onda se detecta en el punto temporal t3, después de que el usuario 102 mueve la mano 108 de nuevo a la izquierda,
5
10
15
20
25
30
35
40
45
50
55
60
65
más allá de la posición umbral inferior 152. Si el usuario sigue haciendo gestos de una manera hacia atrás y hacia delante, pueden detectarse múltiples gestos de onda, uno para cada período sinusoidal del gráfico 140.
[0034] En respuesta a la detección de uno o más gestos de onda, puede controlarse una aplicación. Por ejemplo, puede aumentarse el volumen de la música que se reproduzca en el centro de medios 106. Puede determinarse una función que realizar en respuesta a un gesto, por ejemplo, consultando una base de datos de asignación que asigne gestos a funciones. El número de ondas detectadas puede proporcionarse como entrada a una función realizada. Por ejemplo, el número de ondas detectadas puede indicar una cantidad para aumentar el volumen. Como otro ejemplo, el usuario 102 puede ondear cinco veces para proporcionar una entrada al centro de medios 106 para tener un canal de televisión conmutado a un número de canal "5" o para realizar otra operación usando un factor de "5". Además de las funciones de medios, la detección de uno o más gestos de onda puede hacer que un ordenador invoque cualquier funcionalidad, por ejemplo, después de consultar una tabla de consulta, donde el número de ondas contadas puede usarse como una entrada a la tabla de consulta.
[0035] La FIG. 2 es un diagrama de bloques de un dispositivo 200 usado para implementar el reconocimiento de gestos. Brevemente y entre otras cosas, el dispositivo 200 incluye una interfaz de usuario 201, un medio de almacenamiento 202, una cámara 204, un procesador 205 y un sensor de inclinación 209.
[0036] La interfaz de usuario 201 es un mecanismo para permitir que un usuario interactúe con el dispositivo 200 o con aplicaciones invocadas por el dispositivo 200. La interfaz de usuario 201 puede proporcionar un mecanismo tanto para la entrada como para la salida, que permita que un usuario manipule el dispositivo o para que el dispositivo produzca los efectos de la manipulación del usuario. El dispositivo 200 puede utilizar cualquier tipo de interfaz de usuario 201, tal como una interfaz gráfica de usuario (GUI), una interfaz de usuario de voz o una interfaz de usuario táctil.
[0037] La interfaz de usuario 201 puede configurarse para representar una imagen de visualización visual. Por ejemplo, la interfaz de usuario 201 puede ser un monitor, un televisor, una pantalla de cristal líquido (LCD), un dispositivo de pantalla de plasma, un proyector con una pantalla de proyector, una pantalla auto-estereoscópica, una pantalla de tubo de rayos catódicos (CRT), una pantalla de procesamiento de luz digital (DLP) o cualquier otro tipo de dispositivo de visualización configurado para representar una imagen de visualización. La interfaz de usuario 201 puede incluir uno o más dispositivos de visualización. En algunas configuraciones, la interfaz de usuario 201 puede estar configurada para visualizar imágenes asociadas con una aplicación, tales como imágenes de visualización generadas por una aplicación, incluyendo un objeto o representación tal como un avatar.
[0038] El medio de almacenamiento 202 almacena y registra información o datos y puede ser un medio de almacenamiento óptico, un medio de almacenamiento magnético, una memoria flash o cualquier otro tipo de medio de almacenamiento. Entre otras cosas, el medio de almacenamiento está codificado con un vocabulario 210 y un módulo de reconocimiento de gestos 214.
[0039] El vocabulario 210 incluye información respecto a gestos que el dispositivo 200 pueda reconocer. Por ejemplo, el vocabulario 210 puede incluir definiciones de gesto que describan, para cada gesto reconocido, una forma correspondiente al gesto (es decir, una línea), un patrón que se espere que muestre un gráfico de los datos del historial de movimientos muestreados junto con diversos parámetros de umbral o criterios que puedan usarse para controlar la aceptación o el rechazo de los gestos.
[0040] El módulo de reconocimiento de gestos 214 recibe datos de movimiento capturados por un sensor de movimiento (por ejemplo, la cámara 204 y/o el sensor de inclinación 209) y compara los datos de movimiento recibidos con los datos de movimiento almacenados en el vocabulario 210 para determinar si se ha realizado un gesto reconocible. Por ejemplo, el módulo de reconocimiento de gestos puede trazar los valores de los datos del historial de movimientos muestreados a lo largo de una forma inscrita en los datos de movimiento recibidos y comparar el gráfico resultante con un gráfico esperado almacenado en el vocabulario 210.
[0041] La cámara 204 es un dispositivo usado para capturar imágenes, ya sea como fotografías fijas o una secuencia de imágenes en movimiento. La cámara 204 puede usar la luz del espectro visible o con otras porciones del espectro electromagnético, tal como infrarrojos. Por ejemplo, la cámara 204 puede ser una cámara digital, una cámara de vídeo digital o cualquier otro tipo de dispositivo configurado para capturar imágenes. La cámara 204 puede incluir una o más cámaras. En algunos ejemplos, la cámara 204 puede estar configurada para capturar imágenes de un objeto o usuario que interactúe con una aplicación. Por ejemplo, la cámara 204 puede estar configurada para capturar imágenes de un usuario o persona que gesticule físicamente en un espacio libre (por ejemplo, el aire que rodea al usuario) o que interactúe de otra forma con una aplicación dentro del campo de visión de la cámara 204.
[0042] La cámara 204 puede ser una cámara estereoscópica, una cámara de tiempo de vuelo o cualquier otra cámara. Por ejemplo, la cámara 204 puede ser un detector de imágenes capaz de muestrear una imagen de fondo con el fin de detectar movimientos y, de manera similar, gestos de un usuario. La cámara 204 puede producir una imagen en escala de grises, una imagen en color o una imagen a distancia, tal como una cámara estereoscópica o
5
10
15
20
25
30
35
40
45
50
55
60
65
una cámara de tiempo de vuelo capaz de generar una imagen de distancia. Una cámara estereoscópica puede incluir dos sensores de imagen que adquieran imágenes en puntos de vista ligeramente diferentes, donde un procesador compare las imágenes adquiridas desde diferentes puntos de vista para calcular la distancia de partes de las imágenes. Una cámara de tiempo de vuelo puede incluir un emisor que genere un pulso de luz, que puede ser luz infrarroja, donde el tiempo en el que el pulso de luz viaja desde el emisor hasta un objeto y de vuelta a un sensor se mide para calcular la distancia de partes de las imágenes.
[0043] El dispositivo 200 está conectado eléctricamente a y está en comunicación operativa con, en una ruta por cable o inalámbrica, la cámara 204 y la interfaz de usuario 201 y está configurado para controlar el funcionamiento del procesador 205 para proporcionar el control mejorado. En una configuración, el dispositivo 200 usa el procesador 205 u otra circuitería de control para ejecutar una aplicación que proporcione una entrada basada en cámaras mejorada. Aunque la cámara 204 puede ser una unidad independiente (tal como una cámara web) que se comunique con el dispositivo 200, en otras implementaciones la cámara 204 está incorporada en el dispositivo 200 y se comunica con otros componentes del dispositivo 200 (tales como el procesador 205) a través de un bus interno. Por ejemplo, la cámara 204 puede estar integrada en un televisor o en un descodificador.
[0044] Aunque el dispositivo 200 se ha descrito como un ordenador personal (PC) o un descodificador, dicha descripción se hace meramente por razones de brevedad y también se contemplan otras implementaciones o manifestaciones. Por ejemplo, el dispositivo 200 puede implementarse como una televisión, un ordenador personal ultra móvil (UMPC), un dispositivo móvil de Internet (MID), una trama de imagen digital (DPF), un reproductor multimedia portátil (PMP) o un ordenador de uso general o especial (por ejemplo, un ordenador de escritorio, una estación de trabajo o un ordenador portátil), un servidor, un dispositivo de videojuegos o consola o cualquier otro tipo de dispositivo electrónico que incluya un procesador u otra circuitería de control configurado para ejecutar instrucciones o cualquier otro aparato que incluya una interfaz de usuario.
[0045] En una implementación de ejemplo, la entrada se produce usando una cámara para detectar imágenes de un usuario que realice gestos. Por ejemplo, un teléfono móvil puede colocarse sobre una mesa y puede ser operativo para generar imágenes de un usuario usando una cámara frontal. Por ejemplo, un gesto de "deslizamiento a la izquierda" detectado puede deslizar una imagen hacia la izquierda y un gesto de "deslizamiento hacia la derecha" detectado puede deslizar una imagen hacia la derecha. De forma alternativa, el gesto puede reconocerse o detectarse usando el sensor de inclinación 209, tal como detectando un gesto de "inclinación hacia la izquierda" para mover una representación hacia la izquierda y para desplazar una imagen hacia la izquierda o hacer rotar una imagen en sentido anti-horario o detectando un gesto de "inclinación hacia delante y hacia la derecha" para mover una representación hacia arriba y hacia la derecha de una posición neutral, para acercar y desplazar una imagen hacia la derecha.
[0046] El sensor de inclinación 209 puede ser por tanto cualquier tipo de módulo operativo para detectar una posición angular del dispositivo 200, tal como un giroscopio, un acelerómetro o un dispositivo de seguimiento de flujo óptico basado en cámaras. A este respecto, la entrada basada en imágenes puede complementarse con o sustituirse por una entrada de sensor de inclinación para realizar funciones o comandos deseados por un usuario. Dicho de otra forma, la detección de un gesto del usuario puede producirse sin usar una cámara o sin detectar al usuario dentro de las imágenes. Al mover el dispositivo en el mismo tipo de patrón de carrera que en el que el usuario desee manipular la imagen en la interfaz de usuario, el usuario puede controlar la misma interfaz o aplicación de una manera directa.
[0047] La FIG. 3 es un diagrama de flujo que ilustra un proceso implementado por ordenador 300 que efectúa la invocación de funcionalidad en respuesta a gestos reconocidos. Brevemente, el proceso implementado por ordenador 300 incluye: definir una forma dentro de los datos de movimiento; muestrear los datos de movimiento en puntos que estén alineados con la forma definida; determinar, basándose en los datos de movimiento muestreados, posiciones de un objeto en movimiento a lo largo de la forma definida, con el paso del tiempo; determinar si un objeto en movimiento está realizando un gesto que se correlacione con la forma definida basándose en un patrón mostrado por las posiciones determinadas y controlar una aplicación si se ha determinado ("si se determina") que el objeto en movimiento está realizando el gesto.
[0048] Con más detalle, cuando comienza el proceso 300 (S301), se define una forma dentro de los datos en movimiento (S302). Los datos en movimiento pueden proporcionarse mediante un mapa de historial de movimientos (por ejemplo, el mapa 120, FIG. 1). El mapa de historial de movimientos puede crearse a partir de múltiples imágenes de un usuario tomadas con el paso del tiempo. El mapa de historial de movimientos puede indicar el movimiento de un usuario con el paso del tiempo y puede proporcionar datos de movimiento, que incluyan, para cada punto de una imagen, una indicación de tiempo desde el que un objeto en movimiento se detectó en el punto. La forma puede definirse dentro de los datos de movimiento sin visualizar ni la forma ni los datos de movimiento en una interfaz de usuario.
[0049] Los datos de movimiento pueden incluir grupos de puntos adyacentes determinados para tener movimiento. Para cada grupo de puntos, puede definirse un cuadro delimitador alrededor del grupo. Puesto que un gesto intencional dará como resultado en general un grupo de puntos más grande que un gesto no intencional, en algunas
5
10
15
20
25
30
35
40
45
50
55
60
65
implementaciones, para propósitos de detección de gestos, solamente el grupo más grande de puntos puede considerarse asociado con un gesto candidato. En otros enfoques, sin embargo, se tendrá en cuenta primero el grupo de puntos más pequeño, los grupos de puntos se tendrán en cuenta al mismo tiempo o los grupos se tendrán en cuenta de uno en uno basándose en el tamaño u otros criterios.
[0050] Una forma, tal como un segmento de línea, puede inscribirse o definirse de otra forma dentro de los datos de movimiento, donde el tamaño y la posición de la forma pueden definirse con respecto al cuadro delimitador más grande. Por ejemplo, y como se muestra en la FIG. 4, puede definirse un segmento de línea horizontal 402 que pase a través de un centro 404 de un cuadro delimitador 406. Pueden definirse otros segmentos de línea, tales como un segmento de línea 408 o un segmento de línea 410. El segmento de línea 408 es el segmento de línea más largo capaz de ajustarse dentro de los puntos agrupados dentro del cuadro delimitador 406. El segmento de línea 410 es el segmento de línea horizontal más largo capaz de encajar dentro de los puntos agrupados dentro del cuadro delimitador 406. Pueden definirse otras formas, tales como un arco 412. El arco 412 puede asemejarse a un movimiento ligeramente curvado de la mano de un usuario que se ondula hacia atrás y hacia delante.
[0051] Volviendo a la FIG. 3, después de definir una forma, los datos de movimiento se muestrean en puntos que están alineados con la forma definida (S304). Por ejemplo, los puntos de muestreo pueden alinearse a lo largo del borde de un segmento de línea inscrito. La cantidad muestreada puede ser una cantidad fija (por ejemplo, 1000 muestras) o la cantidad muestreada puede basarse en el tamaño de la forma (por ejemplo, una forma más grande puede dar como resultado más puntos de muestreo que una forma más pequeña). Los puntos muestreados pueden estar espaciados a una distancia fija y/o predeterminada entre sí. En algunas implementaciones, después de que se haya reconocido un gesto particular al menos una vez, pueden usarse tamaños de muestra más pequeños.
[0052] Después de muestrear los datos de movimiento, las posiciones de un objeto en movimiento a lo largo de la forma definida se determinan a lo largo del tiempo (S306), basándose en los datos de movimiento muestreados. Por ejemplo, pueden determinarse posiciones de una mano a lo largo de un segmento de línea definido. Los puntos muestreados tomados en el área de la última posición de la mano de un usuario tendrán en general valores del historial de datos de movimiento relativamente altos (por ejemplo, que indiquen el movimiento más reciente de la mano del usuario). El movimiento menos reciente puede filtrarse o ignorarse de otra forma aplicando una prueba umbral a puntos muestreados a lo largo del segmento de línea. Pueden filtrarse los puntos muestreados que tengan un valor de los datos del historial de movimientos inferior a un umbral (véase la FIG. 1B).
[0053] La última posición de la mano del usuario puede identificarse seleccionando un punto de los puntos no filtrados restantes. Por ejemplo, puede determinar una región de puntos no filtrados y puede seleccionarse un punto medio dentro de la región. Otros enfoques de selección de puntos de ejemplo incluyen seleccionar un punto en un borde de la región que incluya puntos no filtrados, seleccionar un punto aleatorio, seleccionar un punto que tenga el valor de los datos del historial de movimientos más alto entre puntos no filtrados o seleccionar un punto que tenga un valor de los datos del historial de movimientos igual al valor promedio de los datos del historial de movimientos entre los puntos no filtrados.
[0054] La posición detectada de la mano puede expresarse como un porcentaje de la longitud del segmento de línea. Por ejemplo, una posición detectada del 0 % puede corresponder a una posición en el extremo izquierdo del segmento de línea. Una posición detectada del 100 % puede corresponder a una posición en el extremo derecho del segmento de línea. La posición detectada puede almacenarse en un historial de posiciones detectadas. Debido a que la definición de la forma dentro de los datos de movimiento es dinámica, el movimiento manual de la mano de un usuario más allá de un extremo de la forma anteriormente designada como la posición del 0 % o del 100 % hace que la forma se extienda y que la posición más extrema de la mano se designe como la nueva posición del 0 % o del 100 %.
[0055] Después de determinar las posiciones del objeto en movimiento, se determina si un objeto en movimiento está realizando un gesto que se correlacione con la forma definida (S308) basándose en un patrón mostrado por las posiciones determinadas. Por ejemplo, pueden trazarse posiciones manuales determinadas en un gráfico (por ejemplo, el gráfico 140, FIG. 1). La forma del gráfico puede compararse con patrones de formas de gráfico que se espera que se produzcan cuando se realicen determinados gestos definidos. Por ejemplo, puede esperarse un patrón sinusoidal o un patrón sinusoidal escalonado como resultado de la actuación de un gesto ondulatorio.
[0056] Por ejemplo, como se muestra en la FIG. 5, un gráfico 500 presenta un patrón sinusoidal. El gráfico 500 muestra las posiciones manuales 502-532 que se han detectado con el paso del tiempo. El gráfico 500 incluye siete períodos sinusoidales. Por lo tanto, pueden detectarse hasta siete gestos de onda. Existe un período sinusoidal de ejemplo entre las posiciones 502-506 trazadas.
[0057] Pueden realizarse diversas pruebas en el gráfico 500 para determinar si se muestran uno o más patrones sinusoidales aceptables. Por ejemplo, puede realizarse una prueba para determinar si un periodo sinusoidal incluye una primera posición manual trazada en o por debajo de una posición umbral inferior 540 (por ejemplo, la posición 502), seguida de una segunda posición manual trazada en o por encima de una posición umbral superior 542 (por ejemplo, la posición 504), seguida de una tercera posición manual trazada en o por debajo de la posición umbral
5
10
15
20
25
30
35
40
45
50
55
60
65
inferior 540 (por ejemplo, la posición 506). Por ejemplo, los siguientes períodos sinusoidales (descritos como un conjunto de posiciones manuales trazadas) pueden considerarse aceptables basándose en dicha prueba: 502-506, 506-510, 510-514, 514-518, 518-522, 522-526, 526-530.
[0058] Un ejemplo de un periodo sinusoidal que no puede aceptarse como correspondiente a un gesto de onda se muestra en un gráfico 600 en la FIG. 6. El gráfico 600 representa las posiciones manuales detectadas con el paso del tiempo. Las posiciones manuales trazadas 602-606 constituyen un periodo sinusoidal. La posición manual 602 representada gráficamente puede ser aceptable porque está por debajo de un umbral inferior 610 y la posición manual 604 puede ser aceptable porque está por encima de una posición umbral superior 612. Sin embargo, la posición manual trazada 606 puede ser inaceptable porque está por encima de la posición umbral inferior 610. Las posiciones manuales trazadas 602-606 pueden corresponder a una situación donde la mano de un usuario estaba inicialmente cerca de su cuerpo (es decir, la posición 602) y después el usuario movió la mano lejos de su cuerpo (es decir, la posición 604) pero movió a continuación la mano parcialmente de vuelta hacia su cuerpo (es decir, la posición 606). En otras palabras, puesto que la posición trazada 606 no cruzó la posición umbral inferior 610, puede determinarse que el usuario no "completó" un gesto de onda.
[0059] Otro ejemplo de un periodo sinusoidal potencialmente inaceptable es un periodo sinusoidal que incluye las posiciones manuales trazadas 614, 616 y 602. La posición manual trazada 614 puede ser aceptable porque está por debajo de la posición umbral inferior 610. Sin embargo, la posición manual trazada 616 puede ser inaceptable, porque no está por encima de la posición umbral superior 612. La posición manual trazada 602 puede ser aceptable porque está por debajo de la posición umbral inferior 610. Las posiciones manuales trazadas 614, 616 y 602 corresponden a una situación donde el usuario no "completó" un gesto de onda. En otras palabras, la mano del usuario estaba inicialmente cerca de su cuerpo (es decir, la posición 614) y después el usuario movió la mano lejos de su cuerpo, pero solamente parcialmente (es decir, la posición 616) y a continuación movió la mano de vuelta hacia su cuerpo (es decir, la posición 602).
[0060] Pueden realizarse otras pruebas umbral. Por ejemplo, puede probarse el ancho del periodo de una onda. Un período sinusoidal no puede aceptarse como correspondiente a un gesto de onda si el período sinusoidal es demasiado estrecho o demasiado ancho. Un periodo sinusoidal ancho, tal como un periodo sinusoidal mostrado en la FIG. 6 entre las posiciones manuales trazadas 618, 620 y 622 puede corresponder a un usuario que mueva la mano hacia atrás y hacia delante lentamente. Que el periodo sinusoidal entre las posiciones manuales 618-622 constituya una onda puede depender de un valor umbral.
[0061] Por ejemplo, puede usarse un valor umbral de tres segundos. Una diferencia temporal entre los puntos 622 y 618 puede calcularse y compararse con el umbral. Si la diferencia temporal es mayor que el umbral, el periodo sinusoidal puede rechazarse como correspondiente a un gesto de onda debido a que el usuario tarda demasiado en completar el gesto de onda. Como otro ejemplo, un periodo sinusoidal entre los puntos 510-514 en la FIG. 5 puede aceptarse como correspondiente a un gesto de onda si una diferencia temporal calculada entre los puntos 514 y 510 (por ejemplo, 2 segundos) es inferior a un umbral (por ejemplo, 3 segundos).
[0062] Otro ejemplo de un gesto de onda que posiblemente tarda demasiado en completarse se muestra en la FIG. 7. Un usuario hace un gesto de onda 702 usando la mano 704. Después de que el usuario mueva la mano 704 hacia la derecha en un punto temporal ti, el usuario para (por ejemplo, mantiene la mano 704 todavía) durante los puntos temporales t2, t3, y t4 y mueve a continuación la mano 704 de nuevo hacia la izquierda en un punto temporal t5. Un gráfico 706 representa las posiciones manuales detectadas con el paso del tiempo. El gesto 702 puede rechazarse basándose en exceder un umbral de tiempo, debido a las posiciones consecutivas con los mismos valores en la superficie superior del gráfico 706 (correspondiente a los puntos temporales ti a t4) que amplía la forma sinusoidal del gráfico 706.
[0063] Diversas posiciones a lo largo de los gráficos de las FIGS. 5-6 pueden usarse para las pruebas umbral. Como ya se ha analizado, puede realizarse una prueba calculando una diferencia temporal entre picos y/o valles de periodos sinusoidales. Las diferencias temporales y otros cálculos pueden realizarse basándose en otras posiciones. Por ejemplo, puede realizarse un cálculo basándose en comparar dónde un periodo sinusoidal cruza primero una posición umbral superior (por ejemplo, 542) en una dirección ascendente (por ejemplo, la posición 550) con dónde el período sinusoidal cruza de nuevo la posición umbral superior en la misma dirección (por ejemplo, 552). Como otro ejemplo, una prueba umbral puede basarse en comparar dónde un gráfico cruza una posición umbral en una dirección (por ejemplo, cruzando la posición umbral superior 542 en una dirección ascendente, como se muestra por la posición 552) con dónde el gráfico cruza la misma posición umbral en la otra dirección (por ejemplo, como se muestra en la posición 554).
[0064] Las partes de un gráfico pueden rechazarse como correspondientes a uno o más gestos de onda por más de una razón. Por ejemplo, en la FIG. 6, una parte de gráfico 624 entre las posiciones 622, 614 y 604 tiene un valor por encima de la posición umbral superior 612 (por ejemplo, en la posición 622), un valor por debajo de la posición umbral inferior 610 (por ejemplo, en la posición 614) y otro valor por encima de la posición umbral superior 612 (por ejemplo, en la posición 604). Aunque quizá cumpla los criterios para cruzar las posiciones umbral superior e inferior, la parte de gráfico 624 puede rechazarse por múltiples razones.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0065] Por ejemplo, una diferencia temporal basándose en las posiciones 604 y 622 puede exceder un umbral. En otras palabras, puede ser que el usuario haya tardado demasiado tiempo en mover la mano completamente hacia la derecha una segunda vez. La parte de gráfico 624 también puede rechazarse debido a la violación de una condición de direccionalidad. La posición 626 indica que la dirección invertida por el usuario antes de cruzar la posición umbral inferior 610 y la posición 628 indica que el usuario invierte la dirección de nuevo antes de cruzar la posición umbral superior 612.
[0066] La FIG. 8 ilustra un escenario donde el usuario invierte la dirección antes de mover la mano hacia el lado. El usuario hace un gesto hacia atrás y hacia delante 802 con la mano 804. El usuario está moviendo la mano 804 hacia la derecha en un punto temporal ti y mueve a continuación la mano 804 de nuevo hacia la izquierda en un punto temporal ti. Sin embargo, mientras se mueve aproximadamente a mitad de camino de vuelta hacia la izquierda, en un punto temporal t3, el usuario invierte la dirección y mueve la mano 804 brevemente de vuelta hacia la derecha, antes de mover la mano 804 de vuelta hacia la izquierda en un punto temporal t+ En un punto temporal ts, la mano 804 del usuario está en el extremo izquierdo. Un gráfico 806 representa las posiciones manuales detectadas correspondientes al gesto 802. El gráfico 806 puede rechazarse igualando un patrón sinusoidal debido a que un pico 808 (correspondiente a la inversión de la dirección del usuario en el punto temporal 4 no llega lo suficientemente alto y/o un valle 810 (correspondiente a la inversión de la dirección del usuario en el punto temporal t3) no llega lo suficientemente bajo.
[0067] Volviendo a la FIG. 3, un gesto definido puede ser una forma de carrera única. Un gesto puede representar un carácter alfanumérico (por ejemplo, "O", "8") o algún otro símbolo o función (por ejemplo, el símbolo de infinito). En general, un gesto se refiere a un movimiento, una posición o una postura que expresa una idea, una opinión, una emoción, una comunicación, un comando, una demostración o una expresión. Un usuario puede hacer gestos mientras sostiene un dispositivo manual o el usuario puede hacer gestos con una o más partes del cuerpo mientras lleva un dispositivo en una parte de su cuerpo. Por ejemplo, el gesto del usuario puede ser un gesto de un único dedo o múltiples dedos; un gesto de una única mano; un gesto de una única mano y un único brazo; un gesto de una única mano, un único brazo y el cuerpo; un gesto bimanual; una pose o postura de la cabeza; una posición de los ojos; una expresión facial; una pose o postura del cuerpo o cualquier otro estado corporal expresivo.
[0068] El gesto de un usuario puede ser expresivo de un gesto de habilitación o "compromiso". El gesto de compromiso puede ser una posición específica de la mano o una secuencia de movimientos de la mano gesticulada que se mantiene durante una cantidad predeterminada de tiempo. Un gesto de compromiso de ejemplo es el usuario sosteniendo un dispositivo manual inmóvil durante tres segundos. Otro ejemplo es un movimiento circular de la mano hecho mientras se sostiene un dispositivo manual por parte del usuario que extiende su brazo delante de su cara y que mueve su brazo en un círculo delante de su cabeza. Como otro ejemplo, un gesto de compromiso puede ser un usuario sacudiendo un dispositivo. En esencia, un gesto de compromiso especifica a un dispositivo que el usuario está listo para que se produzcan más entradas. Para reducir los errores, un gesto de compromiso puede ser un gesto atípico, como un gesto que no se haría subconscientemente con el lenguaje corporal durante una conversación normal o un gesto que no se haría en el desempeño ordinario de la actividad humana normal.
[0069] Puede derivarse un gesto que defina una idea, una opinión, una emoción, una comunicación, un comando, una demostración o una expresión del usuario. Por ejemplo, el gesto del usuario puede ser un gesto de un único dedo o múltiples dedos; un gesto de una única mano; un gesto de una única mano y un único brazo; un gesto de una única mano, un único brazo y el cuerpo; un gesto bimanual; un cambio en la pose o postura de la cabeza; un cambio en la posición de los ojos; un cambio en una expresión de la cara; un movimiento de una mano mientras sostiene un dispositivo; un cambio en una pose o postura del cuerpo o una transformación de cualquier otro estado corporal expresivo.
[0070] Por brevedad, la parte o partes del cuerpo usadas para realizar gestos relevantes se denominan en general "objeto de control". Por ejemplo, el usuario puede expresar un comando usando todo su cuerpo o con otros objetos físicos, en cuyo caso su cuerpo entero o los otros objetos físicos pueden ser el objeto de control. Un usuario puede expresar más sutilmente un comando guiñando el ojo, ensanchando las fosas de la nariz o moviendo un dedo, en cuyo caso el párpado, la nariz o el dedo puede ser el objeto de control. Un objeto de control puede ser también un dispositivo físico, tal como una luz de dedo de infrarrojos, un dispositivo móvil, un dispositivo de reloj de pulsera, un retroreflector o un control remoto, por citar algunos ejemplos.
[0071] Hay muchas formas de determinar el gesto de un usuario a partir de datos de movimiento. Por ejemplo, el gesto de "dibujar un círculo en el aire" o de "deslizar la mano hacia un lado" puede detectarse mediante un análisis de gestos y un proceso de detección usando la información de la posición de la mano, el brazo, el cuerpo, la cabeza u otra información de posición de objeto. Aunque el gesto puede implicar un desplazamiento en posición bidimensional o tridimensional, tal como cuando se hace un gesto de deslizamiento, en otros casos el gesto incluye una transformación sin un desplazamiento de posición concomitante. Por ejemplo, si una mano está haciendo el gesto de "para" con cinco dedos extendidos y la palma hacia adelante, el gesto del usuario cambia si los cinco dedos se retraen en una bola con la palma permaneciendo hacia adelante, incluso aunque la posición total de la mano o el brazo permanezca estática.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0072] Pueden detectarse gestos usando técnicas heurísticas, tales como determinando si la información de la posición de la mano o el dispositivo pasa conjuntos explícitos de reglas. Por ejemplo, el gesto de "deslizar la mano hacia un lado" puede identificarse si se cumplen las siguientes reglas de detección de gestos: (1) el cambio en posición horizontal es mayor que una distancia predefinida en un intervalo de tiempo que sea menor que un límite predefinido; (2) la posición horizontal cambia monotónicamente en ese intervalo de tiempo; (3) el cambio en posición vertical es menor que una distancia predefinida en ese intervalo de tiempo; y (4) la posición al final del intervalo de tiempo está más cerca de (o sobre) un borde de la región de detección manual que la posición al comienzo del intervalo de tiempo.
[0073] Algunos gestos utilizan múltiples conjuntos de reglas que se ejecutan y cumplen en un orden explícito, donde el cumplimiento de un conjunto de reglas hace que un sistema cambie a un estado donde se aplique un conjunto de reglas diferente. Este sistema puede ser incapaz de detectar gestos sutiles, en cuyo caso pueden usarse Modelos Ocultos de Markov, ya que estos modelos permiten detectar cadenas de movimientos específicos, pero también consideran la probabilidad general de que los movimientos encajen suficientemente en un gesto.
[0074] Con el fin de permitir la entrada de comandos complejos y de aumentar el número de opciones de entrada, el proceso para reconocer el gesto del usuario puede incluir además el reconocimiento de un primer desplazamiento en una primera dirección y el reconocimiento de un segundo desplazamiento en una segunda dirección y la agregación de estos desplazamientos múltiples como un único gesto. Además, el reconocimiento del gesto del usuario puede determinar una magnitud y una dirección del gesto del usuario.
[0075] Volviendo a la FIG. 3, si se determina que el objeto en movimiento ha realizado un gesto, se controla una aplicación (S310), finalizando de este modo el proceso 300 (S312). Para nombrar algunos ejemplos, el volumen puede aumentarse en un reproductor multimedia, puede iniciarse una aplicación, puede cerrarse una aplicación o un dispositivo o puede enviarse un mensaje de correo electrónico. Puede determinarse una función que realizar en respuesta a un gesto, por ejemplo, consultando una base de datos de asignación que asigne gestos a funciones. El número de ondas detectadas puede proporcionarse como entrada a una función realizada. Por ejemplo, puede proporcionarse un número detectado de ondas como entrada a una función de "marcación rápida", con el número de ondas identificando una llamada telefónica o un destinatario de mensaje de texto.
[0076] La FIG. 9 ilustra la detección de un gesto de forma cuadrada 901. Un usuario 902 está parado delante de una cámara 904 y de un centro de medios 906. El usuario 902 mueve la mano izquierda 908 en el gesto de forma cuadrada 901. Entre los puntos temporales to y Í2, el usuario 102 mueve la mano 908 de derecha a izquierda (desde la perspectiva del lector). Entre el punto temporal t2y un punto temporal t4, el usuario 102 mueve la mano 908 en una dirección descendente. Entre el punto temporal t4 y un punto temporal te, el usuario 102 mueve la mano 908 de izquierda a derecha. Entre el punto temporal te y un punto temporal tg, el usuario 102 mueve la mano 908 en una dirección ascendente, con la mano 908 acabando donde se inició en el punto temporal to.
[0077] Un mapa de historial de movimientos 910 incluye un grupo de puntos detectados 912 dentro de un cuadro delimitador 914. Los segmentos de línea 916-922 se han inscrito dentro del grupo de puntos 912. Para cada uno de los segmentos de línea 916-922, las posiciones manuales detectadas pueden detectarse con el paso del tiempo. Las posiciones manuales detectadas pueden trazarse en los gráficos 924-930, con cada gráfico 924-930 asociado con uno de los segmentos de línea 916-922.
[0078] Por ejemplo, el gráfico 924 representa posiciones manuales detectadas a lo largo del segmento de línea horizontal 916 (es decir, correspondiente a la parte superior del gesto de forma cuadrada 901). El gráfico 926 representa posiciones manuales detectadas a lo largo del segmento de línea vertical 918 (es decir, correspondiente al lado izquierdo del gesto de forma cuadrada 901). El gráfico 928 representa posiciones manuales detectadas a lo largo del segmento de línea horizontal 920 (es decir, correspondiente a la parte inferior del gesto de forma cuadrada 901). El gráfico 930 representa posiciones manuales detectadas a lo largo del segmento de línea vertical 922 (es decir, correspondientes al lado derecho del gesto de forma cuadrada 901).
[0079] El gráfico 924 ilustra posiciones manuales detectadas a lo largo del segmento de línea horizontal 916, con el paso del tiempo. Pueden definirse posiciones de tal manera que un valor de posición del "0 %" indique una posición en el extremo derecho del segmento de línea 916 y un valor de posición del "100 %" indique una posición en el extremo izquierdo del segmento de línea 916. Por ejemplo, y como se muestra en el gráfico 924, en el punto temporal to, la mano 908 del usuario está en el extremo derecho del segmento de línea 916 (es decir, una posición del 0 %), y, en el punto temporal t2, la mano del usuario está en el extremo izquierdo del segmento de línea 916 (es decir, una posición del 100 %). En el punto temporal tg, la mano 908 del usuario se detecta de nuevo en el lado extremo derecho del segmento de línea 916 (es decir, una posición del 0 %).
[0080] El gráfico 926 ilustra posiciones manuales detectadas a lo largo del segmento de línea vertical 918, con el paso del tiempo. Las posiciones pueden definirse de tal manera que un valor de posición del "0 %" indique una posición en la parte superior del segmento de línea 918 y un valor de posición del "100 %" indique una posición en la parte inferior del segmento de línea 918. Por ejemplo, y como se muestra en el gráfico 926, en el punto temporal t2,
5
10
15
20
25
30
35
40
45
50
55
60
65
la mano 908 del usuario está en la parte superior del segmento de línea 918 (es decir, una posición del 0 %) y, en el punto temporal 4 la mano del usuario 908 está en la parte inferior del segmento de línea 918 (es decir, una posición del 100 %).
[0081] El gráfico 928 ilustra posiciones manuales detectadas a lo largo del segmento de línea horizontal 920, con el paso del tiempo. Pueden definirse posiciones de tal manera que un valor de posición del "0 %" indique una posición en el extremo izquierdo del segmento de línea 920 y un valor de posición del "100 %" indique una posición en el extremo derecho del segmento de línea 920. Por ejemplo, y como se muestra en el gráfico 928, en el punto temporal t4, la mano 908 del usuario está en el extremo izquierdo del segmento de línea 920 (es decir, una posición del 0 %) y, en el punto temporal te, la mano 908 del usuario está en el extremo derecho del segmento de línea 920 (es decir, una posición del 100 %).
[0082] El gráfico 930 ilustra posiciones manuales detectadas a lo largo del segmento de línea vertical 922, con el paso del tiempo. Pueden definirse posiciones de tal manera que un valor de posición del "0 %" indique una posición en la parte inferior del segmento de línea 922 y un valor de posición del "100 %" indique una posición en la parte superior del segmento de línea 922. Por ejemplo, y como se muestra en el gráfico 930, en el punto temporal te, la mano 908 del usuario está en la parte inferior del segmento de línea 922 (es decir, una posición del 0 %) y, en el punto temporal tg, la mano del usuario 908 está en la parte superior del segmento de línea 922 (es decir, una posición del 100 %).
[0083] El conjunto de gráficos 924-930 puede examinarse para determinar si se ha realizado el gesto de forma cuadrada 901. Es decir, puede examinarse cada uno de los gráficos 924-930 para determinar si cada gráfico indica que se ha producido un subgesto correspondiente a un lado respectivo del gesto de forma cuadrada 901 (tal como comparando el patrón mostrado por el gráfico con un patrón de gráfico esperado). Si cada uno de los gráficos 924930 indica que se ha producido un subgesto y si los gráficos 924-930 se alinean entre sí con respecto a consideraciones de temporización, puede hacerse a continuación una determinación global con respecto a la detección del gesto de forma cuadrada 901. Si se detecta un gesto de forma cuadrada, puede controlarse una aplicación, tal como colocar una llamada a un individuo en una lista de contactos asociada con el usuario 902.
[0084] La FIG. 10 es una interfaz de usuario 1000 que incluye un mapa de historial de movimientos 1002 asociado con un gesto de onda realizado. Un segmento de línea 1004 está inscrito dentro de un cuadro delimitador que rodea los puntos que indican el movimiento detectado. Un gráfico 1006 visualiza las posiciones manuales detectadas de un usuario a lo largo del segmento de línea 1002, con el paso del tiempo. La forma del gráfico 1006 tiene porciones que parecen de alguna forma un patrón de onda sinusoidal, pero una marca de recuento de ondas 1008 indica que no se han detectado gestos de onda (quizás debido al fallo de una o más pruebas umbral).
[0085] La interfaz de usuario 1000 incluye controles que pueden usarse para configurar la detección de gestos. Por ejemplo, puede usarse un control 1010 para definir un valor de persistencia que controle la longitud de tiempo antes de que disminuyan los valores del historial de movimientos. Como otro ejemplo, puede usarse un control 1012 para definir un número requerido de "deslizamientos" (es decir, el movimiento hacia un lado en un movimiento hacia atrás y hacia delante) incluido en un gesto de onda.
[0086] Otros ejemplos de control de configuración incluyen umbrales de onda alta y baja 1014-1016 y una aceptación de temporización 1018. Los umbrales de onda alta y baja 1014-1016 son porcentajes por encima (y por debajo) que los datos del historial de movimientos pueden pasar con el fin de contar como un segmento de onda. La aceptación de temporización 1018 es un multiplicador mediante el cual puede juzgarse cada segmento en una onda. Con un valor de aceptación de temporización 1018 de 0,1, puede requerirse que los segmentos de onda estén dentro del intervalo del 90 % - 110 % de la media de otros segmentos de onda. Con un valor de aceptación de temporización 1018 de 0,2, puede requerirse que los segmentos de onda estén dentro del intervalo del 80 % - 120 %. En otras palabras, un valor de aceptación de temporización inferior 1018 corresponde a una consistencia de temporización mejor.
[0087] La FIG. 11 es una interfaz de usuario 1100 que incluye un mapa de historial de movimientos 1102 asociado con un gesto de onda realizado. Un segmento de línea 1104 está inscrito dentro de un cuadro delimitador que rodea los puntos que indican el movimiento detectado. Un gráfico 1106 visualiza las posiciones detectadas de la mano de un usuario a lo largo del segmento de línea 1102, con el paso del tiempo. Las partes del gráfico 1106 muestran un patrón sinusoidal. Una marca de recuento de ondas 1108 indica que se han detectado seis gestos de onda.
[0088] La FIG. 12 es un diagrama de bloques de los dispositivos informáticos 1200, 1250 que pueden usarse para implementar los sistemas y procedimientos descritos en este documento, ya sea como cliente o como servidor o como pluralidad de servidores. El dispositivo informático 1200 está previsto para representar diversas formas de ordenadores digitales, tales como ordenadores portátiles, escritorios, estaciones de trabajo, asistentes digitales personales, servidores, servidores de cuchilla, tramas principales y otros ordenadores apropiados. El dispositivo informático 1250 está previsto para representar diversas formas de dispositivos móviles, tales como asistentes digitales personales, teléfonos móviles, teléfonos inteligentes y otros dispositivos informáticos similares. Los componentes mostrados aquí, sus conexiones y relaciones y sus funciones están destinados a ser solamente a
5
10
15
20
25
30
35
40
45
50
55
60
65
modo de ejemplo y no están destinados a limitar las implementaciones de los enfoques descritos y/o reivindicados en este documento.
[0089] El dispositivo informático 1200 incluye un procesador 1202, una memoria 1204, un dispositivo de almacenamiento 1206, una interfaz de alta velocidad 1208 que se conecta a la memoria 1204 y puertos de expansión de alta velocidad 1210 y una interfaz de baja velocidad 1212 que se conecta al bus de baja velocidad 1214 y al dispositivo de almacenamiento 1206. Cada uno de los componentes 1202, 1204, 1206, 1208, 1210 y 1212 están interconectados usando varios buses y pueden montarse sobre una placa base común o de otras maneras según sea apropiado. El procesador 1202 puede procesar instrucciones para su ejecución dentro del dispositivo informático 1200, incluyendo instrucciones almacenadas en la memoria 1204 o en el dispositivo de almacenamiento 1206 para visualizar información gráfica para una GUI en un dispositivo de entrada/salida externo, tal como la pantalla 1216 acoplada a interfaz de alta velocidad 1208. En otras implementaciones, pueden usarse múltiples procesadores y/o múltiples buses, según sea apropiado, junto con múltiples memorias y tipos de memoria. Además, pueden conectarse múltiples dispositivos informáticos 1200, con cada dispositivo proporcionando partes de las operaciones necesarias (porejemplo, como un banco de servidores, un grupo de servidores de cuchilla o un sistema multiprocesador).
[0090] La memoria 1204 almacena información dentro del dispositivo informático 1200. En una implementación, la memoria 1204 es un medio legible por ordenador. En una implementación, la memoria 1204 es una unidad o unidades de memoria volátil. En otra implementación, la memoria 1204 es una unidad o unidades de memoria no volátil.
[0091] El dispositivo de almacenamiento 1206 es capaz de proporcionar un almacenamiento masivo para el dispositivo informático 1200. En una implementación, el dispositivo de almacenamiento 1206 es un medio legible por ordenador. En diversas implementaciones diferentes, el dispositivo de almacenamiento 1206 puede ser un dispositivo de disco flexible, un dispositivo de disco duro, un dispositivo de disco óptico o un dispositivo de cinta, una memoria flash u otro dispositivo similar de memoria de estado sólido o una serie de dispositivos, incluyendo dispositivos en una red de área de almacenamiento u otras configuraciones. En una implementación, un producto de programa informático está tangiblemente incorporado en un soporte de información. El producto del programa informático contiene instrucciones que, cuando se ejecutan, realizan uno o más procedimientos, como los descritos anteriormente. El soporte de información es un medio legible por ordenador o por máquina, tal como la memoria 1204, el dispositivo de almacenamiento 1206 o la memoria en el procesador 1202.
[0092] El controlador de alta velocidad 1208 gestiona las operaciones intensivas de ancho de banda para el dispositivo informático 1200, mientras que el controlador de baja velocidad 1212 gestiona operaciones intensivas de ancho de banda inferior. Dicha asignación de funciones solamente es a modo de ejemplo. En una implementación, el controlador de alta velocidad 1208 está acoplado a la memoria 1204, a la pantalla 1216 (por ejemplo, a través de un procesador gráfico o acelerador) y a puertos de expansión de alta velocidad 1210, que pueden aceptar diversas tarjetas de expansión (no mostradas). En la implementación, el controlador de baja velocidad 1212 está acoplado al dispositivo de almacenamiento 1206 y al puerto de expansión de baja velocidad 1214. El puerto de expansión de baja velocidad, que puede incluir diversos puertos de comunicación (por ejemplo, USB, Bluetooth, Ethernet, Ethernet inalámbrico) puede acoplarse a uno o más dispositivos de entrada/salida, tales como un teclado, un dispositivo señalador, un escáner o un dispositivo de red, tal como un conmutador o un router, por ejemplo, a través de un adaptador de red.
[0093] El dispositivo informático 1200 puede implementarse en una serie de formas diferentes, como se muestra en la figura. Por ejemplo, puede implementarse como un servidor estándar 1220 o múltiples veces en un grupo de dichos servidores. También puede implementarse como parte de un sistema de servidor de bastidor 1224. Además, puede implementarse en un ordenador personal tal como un ordenador portátil 1222. De forma alternativa, los componentes del dispositivo informático 1200 pueden combinarse con otros componentes en un dispositivo móvil (no mostrado), tal como el dispositivo 1250. Cada uno de dichos dispositivos puede contener uno o más de los dispositivos informáticos 1200, 1250 y un sistema completo puede estar compuesto de múltiples dispositivos informáticos 1200, 1250 comunicándose entre sí. El dispositivo informático 1200 puede incluir uno o más sensores (no mostrados), tales como giroscopios, cámaras o rastreadores GPS (Satélite de Posicionamiento Global), configurados para detectar el movimiento o la posición del dispositivo informático 1200.
[0094] El dispositivo informático 1250 incluye un procesador 1252, una memoria 1264, un dispositivo de entrada/salida tal como una pantalla 1254, una interfaz de comunicación 1266 y un transceptor 1268, entre otros componentes. El dispositivo 1250 también puede estar provisto de un dispositivo de almacenamiento, tal como un microdrive u otro dispositivo, para proporcionar un almacenamiento adicional. Cada uno de los componentes 1250, 1252, 1264, 1254, 1266 y 1268 están interconectados usando diversos buses y varios de los componentes pueden montarse sobre una placa madre común o de otras maneras según sea apropiado. El dispositivo informático 1250 puede incluir uno o más sensores (no mostrados), tales como giroscopios, cámaras o rastreadores GPS (Satélite de Posicionamiento Global), configurados para detectar el movimiento o la posición del dispositivo informático 1200.
[0095] El procesador 1252 puede procesar instrucciones para su ejecución dentro del dispositivo informático 1250,
5
10
15
20
25
30
35
40
45
50
55
60
65
incluyendo instrucciones almacenadas en la memoria 1264. El procesador también puede incluir procesadores analógicos y digitales independientes. El procesador puede proporcionar, por ejemplo, coordinación de los otros componentes del dispositivo 1250, tales como el control de interfaces de usuario, aplicaciones ejecutadas por el dispositivo 1250 y comunicación inalámbrica por el dispositivo 1250.
[0096] El procesador 1252 puede comunicarse con un usuario a través de la interfaz de control 1258 y de la interfaz de pantalla 1256 acopladas a una pantalla 1254. La pantalla 1254 puede ser, por ejemplo, una pantalla LCD TFT o una pantalla OLED u otra tecnología de pantalla apropiada. La interfaz de pantalla 1256 puede incluir circuitería apropiada para accionar la pantalla 1254 para presentar información gráfica y de otro tipo a un usuario. La interfaz de control 1258 puede recibir comandos de un usuario y convertirlos para su presentación al procesador 1252. Además, puede proporcionarse una interfaz externa 1262 en comunicación con el procesador 1252, con el fin de permitir la comunicación de área cercana del dispositivo 1250 con otros dispositivos. La interfaz externa 1262 puede proporcionar, por ejemplo, comunicación alámbrica (por ejemplo, mediante un procedimiento de acoplamiento) o comunicaciones inalámbricas (por ejemplo, a través de Bluetooth u otras tecnologías similares).
[0097] La memoria 1264 almacena información dentro del dispositivo informático 1250. En una implementación, la memoria 1264 es un medio legible por ordenador. En una implementación, la memoria 1264 es una unidad o unidades de memoria volátil. En otra implementación, la memoria 1264 es una unidad o unidades de memoria no volátil. La memoria de expansión 1274 también puede proporcionarse y conectarse al dispositivo 1250 a través de la interfaz de expansión 1272, que puede incluir, por ejemplo, una interfaz de tarjeta SIMM. Dicha memoria de expansión 1274 puede proporcionar espacio de almacenamiento adicional para el dispositivo 1250 o también puede almacenar aplicaciones u otra información para el dispositivo 1250. Específicamente, la memoria de expansión 1274 puede incluir instrucciones para llevar a cabo o complementar los procesos descritos anteriormente y puede incluir también información segura. Por tanto, por ejemplo, la memoria de expansión 1274 puede proporcionarse como un módulo de seguridad para el dispositivo 1250 y puede programarse con instrucciones que permitan el uso seguro del dispositivo 1250. Además, pueden proporcionarse aplicaciones seguras a través de las tarjetas SIMM, junto con información adicional, tal como colocando la información de identificación en la tarjeta SIMM de una manera no hackeable.
[0098] La memoria puede incluir, por ejemplo, memoria flash y/o memoria MRAM, como se analiza a continuación. En una implementación, un producto de programa informático está tangiblemente incorporado en un soporte de información. El producto del programa informático contiene instrucciones que, cuando se ejecutan, realizan uno o más procedimientos, como los descritos anteriormente. El soporte de información es un medio legible por ordenador o máquina, tal como la memoria 1264, la memoria de expansión 1274 o la memoria en el procesador 1252.
[0099] El dispositivo 1250 puede comunicarse de forma inalámbrica a través de la interfaz de comunicación 1266, que puede incluir circuitería de procesamiento de señales digitales cuando sea necesario. La interfaz de comunicación 1266 puede proporcionar comunicaciones bajo diversos modos o protocolos, tales como llamadas de voz GSM, mensajería SMS, EMS o MMS, CDMA, TDMA, PDC, WCDMA, CDMA2000 o GPRS, entre otros. Dicha comunicación puede producirse, por ejemplo, a través del transceptor de radiofrecuencia 1268. Además, puede producirse una comunicación de corto alcance, tal como usando un Bluetooth, WiFi u otro dicho transceptor (no mostrado). Además, el módulo receptor GPS 1270 puede proporcionar datos inalámbricos adicionales al dispositivo 1250, que pueden usarse según sea apropiado por aplicaciones que se ejecuten en el dispositivo 1250.
[0100] El dispositivo 1250 también puede comunicarse audiblemente usando el códec de audio 1260, que puede recibir información hablada de un usuario y convertirla en información digital utilizable. El códec de audio 1260 puede generar igualmente sonido audible para un usuario, tal como a través de un altavoz, por ejemplo, en un teléfono del dispositivo 1250. Dicho sonido puede incluir sonido de llamadas telefónicas de voz, puede incluir sonido grabado (por ejemplo, mensajes de voz, archivos de música, etc.) y también puede incluir sonido generado por aplicaciones que funcionen en el dispositivo 1250.
[0101] El dispositivo informático 1250 puede implementarse en una serie de formas diferentes, como se muestra en la figura. Por ejemplo, puede implementarse como un teléfono móvil 1280. También puede implementarse como parte de un teléfono inteligente 1282, un asistente digital personal u otro dispositivo móvil similar.
[0102] Pueden realizarse diversas implementaciones de los sistemas y técnicas aquí descritos en circuitería electrónica digital, circuitería integrada, ASIC especialmente diseñados (circuitos integrados específicos de aplicación), hardware de ordenador, firmware, software y/o combinaciones de los mismos. Estas diversas implementaciones pueden incluir la implementación en uno o más programas informáticos que sean ejecutables y/o interpretables en un sistema programable que incluya al menos un procesador programable, que puede ser de uso especial o general, acoplado para recibir datos e instrucciones desde, y para transmitir datos e instrucciones a, un sistema de almacenamiento de datos, al menos un dispositivo de entrada y al menos un dispositivo de salida.
[0103] Estos programas informáticos (también conocidos como programas, software, aplicaciones de software o código) incluyen instrucciones de máquina para un procesador programable y pueden implementarse en un lenguaje de programación de alto nivel procedimental y/u orientado a objetos y/o en un lenguaje de montaje/máquina. Como
5
10
15
20
25
30
se usa en el presente documento, los términos "medio legible por máquina" y "medio legible por ordenador" se refieren a cualquier producto de programa informático, aparato y/o dispositivo (por ejemplo, discos magnéticos, discos ópticos, memoria, PLD) usados para proporcionar instrucciones de máquina y/o datos a un procesador programable, incluyendo un medio legible por máquina que recibe instrucciones de máquina como una señal legible por máquina. El término "señal legible por máquina" se refiere a cualquier señal usada para proporcionar instrucciones de máquina y/o datos a un procesador programable.
[0104] Para proporcionar la interacción con un usuario, los sistemas y técnicas descritos aquí pueden implementarse en un ordenador que tenga un dispositivo de visualización (por ejemplo, un tubo CRT (tubo de rayos catódicos) o un monitor LCD (pantalla de cristal líquido)) para visualizar información al usuario y un teclado y un dispositivo señalador (por ejemplo, un ratón o una bola de seguimiento) mediante el cual el usuario pueda proporcionar entrada al ordenador. También pueden usarse otros tipos de dispositivos para proporcionar interacción con un usuario; por ejemplo, la retroalimentación proporcionada al usuario puede ser cualquier forma de retroalimentación sensorial (por ejemplo, retroalimentación visual, retroalimentación auditiva o retroalimentación táctil); y la entrada del usuario puede recibirse de cualquier forma, incluyendo entrada acústica, de voz o táctil.
[0105] Los sistemas y técnicas descritos aquí pueden implementarse en un sistema informático que incluya un componente de fondo (por ejemplo, como un servidor de datos) o que incluya un componente middleware (por ejemplo, un servidor de aplicaciones) o que incluya un componente frontal (por ejemplo, un ordenador cliente que tenga una interfaz gráfica de usuario o un navegador de internet a través del cual un usuario pueda interactuar con una implementación de los sistemas y técnicas descritos aquí) o cualquier combinación de dicho componente de fondo, middleware o frontal. Los componentes del sistema pueden interconectarse por cualquier forma o medio de comunicación de datos digitales, (por ejemplo, una red de comunicación. Ejemplos de redes de comunicación incluyen una red de área local ("LAN"), una red de área extensa ("WAN") e Internet.
[0106] El sistema informático puede incluir clientes y servidores. Un cliente y un servidor están en general alejados entre sí y típicamente interactúan a través de una red de comunicación. La relación de cliente y servidor surge en virtud de programas informáticos que se ejecutan en los respectivos ordenadores y que tienen una relación cliente- servidor entre sí.
[0107] Se han descrito varias implementaciones de la invención. Sin embargo, se entenderá que pueden hacerse diversas modificaciones.

Claims (12)

10
15
20
2.
25
30
35
3.
40
45 4.
5.
50
6.
55
60
65
REIVINDICACIONES
Un medio legible por ordenador codificado con un programa informático que comprende instrucciones que, cuando se ejecutan, funcionan para hacer que un ordenador realice operaciones que comprendan:
definir (302) una forma dentro de los datos de movimiento, en la que la forma (130, 402, 408, 410, 916922) corresponde a un gesto y en la que los datos de movimiento comprenden un mapa de historial de movimientos (120, 910) que comprende además valores de los datos del historial de movimientos que proporcionan, para cada punto de una imagen, una indicación de tiempo desde que un objeto en movimiento se detectó en el punto;
muestrear (304) los datos de movimiento en puntos a lo largo de la forma definida; determinar (306), basándose en los datos de movimiento muestreados, las posiciones (502-532, 602-628) del objeto en movimiento a lo largo de la forma definida, a lo largo del tiempo;
determinar (308) si el objeto en movimiento está realizando el gesto basándose en un patrón mostrado por las posiciones determinadas; y
controlar (310) una aplicación si determina que el objeto en movimiento está realizando el gesto.
El medio legible por ordenador de la reivindicación 1, en el que la determinación de las posiciones del objeto en movimiento a lo largo de la forma definida, con el paso del tiempo, comprende además:
en unas primera y segunda veces:
seleccionar puntos que estén alineados con la forma definida y que comprendan valores de los datos del historial de movimientos muestreados que satisfagan un umbral predeterminado (160), y seleccionar un punto (164) de los puntos seleccionados; y
emitir, como las primera y segunda posiciones del objeto en movimiento, los puntos seleccionados respectivamente en las primera y segunda veces;
en el que el punto comprende un punto mediano, medio o aleatorio de los puntos seleccionados; y
en el que el mapa de historial de movimientos se genera usando un flujo óptico.
El medio legible por ordenador de la reivindicación 1, que comprende además instrucciones que, cuando se ejecutan, funcionan para hacer que el ordenador realice operaciones que comprendan:
acceder a la imagen; y
generar los valores de los datos del historial de movimientos incluidos en el mapa de historial de movimientos basándose en la imagen accedida.
El medio legible por ordenador de la reivindicación 1, en el que el patrón comprende una forma de un periodo
de una sinusoide sobre un gráfico de las posiciones determinadas con el paso del tiempo, estando las
posiciones determinadas expresadas como una proporción de una única dimensión de la forma.
El medio legible por ordenador de la reivindicación 1, en el que el patrón comprende una forma de un periodo de una sinusoide escalonada sobre un gráfico de las posiciones determinadas con el paso del tiempo, con las posiciones determinadas expresadas como una proporción de una única dimensión de la forma.
El medio legible por ordenador de la reivindicación 1, que comprende además instrucciones que, cuando se ejecutan, funcionan para hacer que el ordenador realice operaciones que comprendan:
determinar, para cada punto, si el objeto en movimiento se ha detectado dentro de un umbral predeterminado; y
agrupar puntos adyacentes determinados para detectar el movimiento del objeto en movimiento dentro del umbral predeterminado, en el que los datos de movimiento se muestrean en un subconjunto de los puntos agrupados (122, 124, 912) alineados con la forma definida, que comprende además instrucciones que, cuando se ejecutan, funcionan para hacer que el ordenador realice operaciones que comprendan:
definir un cuadro delimitador (126, 128, 406, 914) alrededor de los puntos agrupados, en el que un tamaño y una ubicación de la forma dentro de los datos de movimiento se definan con respecto al cuadro delimitador.
7.
5
8.
9.
10
15
10.
20
25
11.
30 12.
35
40
13.
45
50
55
14.
60
65
El medio legible por ordenador de la reivindicación 6, en el que:
la forma comprende un segmento de línea o un acorde.
El medio legible por ordenador de la reivindicación 6, en el que la forma comprende un segmento de línea más largo capaz de encajar dentro de los puntos agrupados (122, 124, 912).
El medio legible por ordenador de la reivindicación 1, que comprende además instrucciones que, cuando se ejecutan, funcionan para hacer que el ordenador realice operaciones que comprendan:
detectar grupos de puntos (122, 124, 912) dentro de los datos de movimiento; y
seleccionar uno de los grupos de puntos, en el que la forma se defina dentro del grupo seleccionado; y
en el que el grupo se seleccione basándose en el tamaño relativo.
El medio legible por ordenador de la reivindicación 1, en el que:
los datos de movimiento se muestrean en una cantidad muestreada de puntos que están alineados con la forma definida y
la cantidad muestreada comprende una cantidad fija o se basa en un tamaño de la forma definida o en una cantidad alineada de puntos que están alineados con la forma definida dentro de los datos de movimiento.
El medio legible por ordenador de la reivindicación 1, en el que determinar si el objeto en movimiento está realizando el gesto basándose en el patrón expuesto por las posiciones determinadas, comprende además comparar el patrón con criterios de umbral superior e inferior (540, 542) y criterios de temporización.
El medio legible por ordenador de la reivindicación 1, que comprende además instrucciones que, cuando se ejecutan, funcionan para hacer que el ordenador realice operaciones que comprendan:
añadir las posiciones determinadas a un historial de movimientos y detectar si el patrón existe dentro del historial de movimientos; y
que comprende además instrucciones que, cuando se ejecutan, funcionan para hacer que el ordenador realice operaciones que comprendan:
contar una cantidad de actuaciones del gesto.
Un procedimiento implementado por ordenador que comprende:
definir (302) una forma dentro de los datos de movimiento, en la que la forma (130, 402, 408, 410, 916922) corresponde a un gesto y en la que los datos de movimiento comprenden un mapa de historial de movimientos (120, 910) que comprende además valores de los datos del historial de movimientos que proporcionan, para cada punto de una imagen, una indicación de tiempo desde que un objeto en movimiento se detectó en el punto;
muestrear (304) los datos de movimiento en puntos a lo largo de la forma definida;
determinar (306), basándose en los datos de movimiento muestreados, las posiciones (502-532, 602-628) del objeto en movimiento a lo largo de la forma definida, con el paso del tiempo;
determinar (308), usando al menos un procesador, si el objeto en movimiento está realizando el gesto basándose en un patrón expuesto por las posiciones determinadas; y
controlar (310) una aplicación si determina que el objeto en movimiento está realizando el gesto.
Un dispositivo que comprende un procesador configurado para:
definir (302) una forma dentro de los datos de movimiento, en el que la forma (130, 402, 408, 410, 916922) corresponde a un gesto y en el que los datos de movimiento comprenden valores de los datos del mapa de historial de movimientos (120, 910) que proporcionan, para cada punto de una imagen, una indicación de tiempo desde que un objeto en movimiento se detectó en el punto;
muestrear (304) los datos de movimiento en puntos a lo largo de la forma definida;
determinar (308), basándose en los datos de movimiento muestreados, las posiciones (502-532, 602-628) del objeto móvil a lo largo de la forma definida, con el paso del tiempo;
5 determinar (308) si el objeto en movimiento está realizando el gesto basándose en un patrón mostrado
por las posiciones determinadas; y
controlar (310) una aplicación si determina que el objeto en movimiento está realizando el gesto.
ES09801073.9T 2008-07-25 2009-07-24 Detección mejorada de gesto ondulatorio Active ES2648049T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8360508P 2008-07-25 2008-07-25
US83605P 2008-07-25
PCT/US2009/051698 WO2010011929A1 (en) 2008-07-25 2009-07-24 Enhanced detection of waving engagement gesture

Publications (1)

Publication Number Publication Date
ES2648049T3 true ES2648049T3 (es) 2017-12-28

Family

ID=41570626

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09801073.9T Active ES2648049T3 (es) 2008-07-25 2009-07-24 Detección mejorada de gesto ondulatorio

Country Status (6)

Country Link
US (2) US8605941B2 (es)
EP (1) EP2327005B1 (es)
JP (2) JP5432260B2 (es)
CN (1) CN102165396B (es)
ES (1) ES2648049T3 (es)
WO (1) WO2010011929A1 (es)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009128064A2 (en) * 2008-04-14 2009-10-22 Pointgrab Ltd. Vision based pointing device emulation
US20140321756A9 (en) * 2008-05-27 2014-10-30 Samsung Electronics Co., Ltd. System and method for circling detection based on object trajectory
US8146020B2 (en) 2008-07-24 2012-03-27 Qualcomm Incorporated Enhanced detection of circular engagement gesture
CN102165396B (zh) 2008-07-25 2014-10-29 高通股份有限公司 挥动约定姿态的增强检测
US20100027845A1 (en) * 2008-07-31 2010-02-04 Samsung Electronics Co., Ltd. System and method for motion detection based on object trajectory
US8433101B2 (en) * 2008-07-31 2013-04-30 Samsung Electronics Co., Ltd. System and method for waving detection based on object trajectory
US8744799B2 (en) * 2008-09-25 2014-06-03 Blackberry Limited System and method for analyzing movements of an electronic device
US9586135B1 (en) 2008-11-12 2017-03-07 David G. Capper Video motion capture for wireless gaming
US9383814B1 (en) 2008-11-12 2016-07-05 David G. Capper Plug and play wireless video game
US10086262B1 (en) 2008-11-12 2018-10-02 David G. Capper Video motion capture for wireless gaming
US8788977B2 (en) 2008-11-20 2014-07-22 Amazon Technologies, Inc. Movement recognition as input mechanism
US8553931B2 (en) * 2009-02-11 2013-10-08 Samsung Electronics Co., Ltd. System and method for adaptively defining a region of interest for motion analysis in digital video
US8643628B1 (en) 2012-10-14 2014-02-04 Neonode Inc. Light-based proximity detection system and user interface
US8917239B2 (en) 2012-10-14 2014-12-23 Neonode Inc. Removable protective cover with embedded proximity sensors
JP5318189B2 (ja) * 2009-02-18 2013-10-16 株式会社東芝 インターフェース制御装置、及びその方法
US20100306685A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation User movement feedback via on-screen avatars
DE102009057725A1 (de) * 2009-12-10 2011-06-16 Siemens Enterprise Communications Gmbh & Co. Kg Signalgebende Vorrichtung, Signalisiervorrichtung, Signalgebungsverfahren sowie Signalisierverfahren
US20110151974A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Gesture style recognition and reward
JP5757063B2 (ja) * 2010-03-29 2015-07-29 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8502856B2 (en) 2010-04-07 2013-08-06 Apple Inc. In conference display adjustments
US8296151B2 (en) * 2010-06-18 2012-10-23 Microsoft Corporation Compound gesture-speech commands
US20110317871A1 (en) * 2010-06-29 2011-12-29 Microsoft Corporation Skeletal joint recognition and tracking system
CN103282858B (zh) * 2010-11-01 2017-03-08 汤姆逊许可公司 用于检测姿势输入的方法和装置
KR20130141657A (ko) * 2010-12-29 2013-12-26 톰슨 라이센싱 제스처 인식을 위한 시스템 및 방법
EP2474950B1 (en) 2011-01-05 2013-08-21 Softkinetic Software Natural gesture based user interface methods and systems
US10895917B2 (en) 2011-03-12 2021-01-19 Uday Parshionikar Multipurpose controllers and methods
US10088924B1 (en) * 2011-08-04 2018-10-02 Amazon Technologies, Inc. Overcoming motion effects in gesture recognition
JP5862143B2 (ja) * 2011-09-15 2016-02-16 オムロン株式会社 ジェスチャ認識装置、電子機器、ジェスチャ認識装置の制御方法、制御プログラムおよび記録媒体
KR20130047890A (ko) * 2011-11-01 2013-05-09 삼성전기주식회사 원격 조정 장치 및 원격 조정 장치의 제스처 인식 방법
US9223415B1 (en) 2012-01-17 2015-12-29 Amazon Technologies, Inc. Managing resource usage for task performance
JP6316540B2 (ja) * 2012-04-13 2018-04-25 三星電子株式会社Samsung Electronics Co.,Ltd. カメラ装置及びその制御方法
US8938124B2 (en) 2012-05-10 2015-01-20 Pointgrab Ltd. Computer vision based tracking of a hand
JP2013250637A (ja) * 2012-05-30 2013-12-12 Toshiba Corp 認識装置
US9400575B1 (en) 2012-06-20 2016-07-26 Amazon Technologies, Inc. Finger detection for element selection
US9213436B2 (en) * 2012-06-20 2015-12-15 Amazon Technologies, Inc. Fingertip location for gesture input
KR20140014548A (ko) * 2012-07-24 2014-02-06 삼성전자주식회사 전자 장치, 그 제어 방법, 및 컴퓨터 판독가능 기록매체
US8819812B1 (en) 2012-08-16 2014-08-26 Amazon Technologies, Inc. Gesture recognition for device input
US9268407B1 (en) * 2012-10-10 2016-02-23 Amazon Technologies, Inc. Interface elements for managing gesture control
US10282034B2 (en) 2012-10-14 2019-05-07 Neonode Inc. Touch sensitive curved and flexible displays
US9741184B2 (en) 2012-10-14 2017-08-22 Neonode Inc. Door handle with optical proximity sensors
US10585530B2 (en) 2014-09-23 2020-03-10 Neonode Inc. Optical proximity sensor
US9921661B2 (en) 2012-10-14 2018-03-20 Neonode Inc. Optical proximity sensor and associated user interface
US10324565B2 (en) 2013-05-30 2019-06-18 Neonode Inc. Optical proximity sensor
US9164625B2 (en) 2012-10-14 2015-10-20 Neonode Inc. Proximity sensor for determining two-dimensional coordinates of a proximal object
US20140118244A1 (en) * 2012-10-25 2014-05-01 Pointgrab Ltd. Control of a device by movement path of a hand
CN102932597B (zh) * 2012-11-02 2016-08-03 邱虹云 具有wifi接口的天文ccd相机控制器
US9785228B2 (en) * 2013-02-11 2017-10-10 Microsoft Technology Licensing, Llc Detecting natural user-input engagement
US10134267B2 (en) 2013-02-22 2018-11-20 Universal City Studios Llc System and method for tracking a passive wand and actuating an effect based on a detected wand path
US9245100B2 (en) * 2013-03-14 2016-01-26 Google Technology Holdings LLC Method and apparatus for unlocking a user portable wireless electronic communication device feature
JPWO2014174796A1 (ja) * 2013-04-23 2017-02-23 日本電気株式会社 情報処理システム、情報処理方法およびプログラム
US10884493B2 (en) 2013-06-20 2021-01-05 Uday Parshionikar Gesture based user interfaces, apparatuses and systems using eye tracking, head tracking, hand tracking, facial expressions and other user actions
TWI505135B (zh) * 2013-08-20 2015-10-21 Utechzone Co Ltd 顯示畫面的控制系統、輸入裝置及控制方法
KR101544022B1 (ko) 2013-09-10 2015-08-13 경북대학교 산학협력단 자세 추적 방법 및 자세 추적 장치
US9405366B2 (en) * 2013-10-02 2016-08-02 David Lee SEGAL Systems and methods for using imagined directions to define an action, function or execution for non-tactile devices
US20150185829A1 (en) * 2013-12-27 2015-07-02 Datangle, Inc. Method and apparatus for providing hand gesture-based interaction with augmented reality applications
US20150185827A1 (en) * 2013-12-31 2015-07-02 Linkedln Corporation Techniques for performing social interactions with content
US9429398B2 (en) 2014-05-21 2016-08-30 Universal City Studios Llc Optical tracking for controlling pyrotechnic show elements
US9616350B2 (en) 2014-05-21 2017-04-11 Universal City Studios Llc Enhanced interactivity in an amusement park environment using passive tracking elements
US10025990B2 (en) 2014-05-21 2018-07-17 Universal City Studios Llc System and method for tracking vehicles in parking structures and intersections
US9600999B2 (en) 2014-05-21 2017-03-21 Universal City Studios Llc Amusement park element tracking system
US9433870B2 (en) 2014-05-21 2016-09-06 Universal City Studios Llc Ride vehicle tracking and control system using passive tracking elements
US10207193B2 (en) 2014-05-21 2019-02-19 Universal City Studios Llc Optical tracking system for automation of amusement park elements
US10061058B2 (en) 2014-05-21 2018-08-28 Universal City Studios Llc Tracking system and method for use in surveying amusement park equipment
US9958946B2 (en) 2014-06-06 2018-05-01 Microsoft Technology Licensing, Llc Switching input rails without a release command in a natural user interface
JP5932082B2 (ja) * 2015-03-04 2016-06-08 株式会社東芝 認識装置
JP6448795B2 (ja) * 2015-04-21 2019-01-09 華為技術有限公司Huawei Technologies Co.,Ltd. 指紋センサ割込み閾値を設定するための方法、装置、および端末装置
US20180089519A1 (en) * 2016-09-26 2018-03-29 Michael Raziel Multi-modal user authentication
US10416757B2 (en) * 2016-12-08 2019-09-17 Raymond Maurice Smit Telepresence system
EP3570740B1 (en) 2017-01-23 2023-08-30 Naqi Logix Inc. Apparatus and method for using imagined direction to perform at least one action
WO2018156970A1 (en) 2017-02-24 2018-08-30 Flir Systems, Inc. Real-time detection of periodic motion systems and methods
EP4366317A3 (en) 2017-05-16 2024-08-07 Apple Inc. Emoji recording and sending
CN107633227B (zh) * 2017-09-15 2020-04-28 华中科技大学 一种基于csi的细粒度手势识别方法和系统
DK180130B1 (da) 2018-05-07 2020-06-02 Apple Inc. Multi-participant live communication user interface
US20200012350A1 (en) * 2018-07-08 2020-01-09 Youspace, Inc. Systems and methods for refined gesture recognition
US11442550B2 (en) * 2019-05-06 2022-09-13 Samsung Electronics Co., Ltd. Methods for gesture recognition and control
JP2023504590A (ja) 2019-12-31 2023-02-03 ネオノード インコーポレイテッド 非接触型タッチ入力システム
KR102946236B1 (ko) * 2020-02-28 2026-03-31 삼성전자주식회사 제스처 인식 기반의 영상 편집 방법 및 이를 지원하는 전자 장치
US11079913B1 (en) 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
US11282267B2 (en) 2020-07-02 2022-03-22 Cognizant Technology Solutions India Pvt. Ltd. System and method for providing automated data visualization and modification
WO2022103412A1 (en) * 2020-11-13 2022-05-19 Innopeak Technology, Inc. Methods for recognition of air-swipe gestures
US12301979B2 (en) 2021-01-31 2025-05-13 Apple Inc. User interfaces for wide angle video conference
US12170579B2 (en) 2021-03-05 2024-12-17 Apple Inc. User interfaces for multi-participant live communication
CN120881039A (zh) 2021-05-15 2025-10-31 苹果公司 实时通信用户界面
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11822761B2 (en) 2021-05-15 2023-11-21 Apple Inc. Shared-content session user interfaces
US12449961B2 (en) 2021-05-18 2025-10-21 Apple Inc. Adaptive video conference user interfaces
CN113469081B (zh) * 2021-07-08 2023-06-06 西南交通大学 一种运动状态识别方法
US12368946B2 (en) 2021-09-24 2025-07-22 Apple Inc. Wide angle video conference
US12267622B2 (en) 2021-09-24 2025-04-01 Apple Inc. Wide angle video conference
US12563299B2 (en) 2022-04-04 2026-02-24 Apple Inc. User interfaces for camera sharing
US12578837B2 (en) 2022-09-23 2026-03-17 Apple Inc. User interfaces for managing sharing of content in three-dimensional environments
WO2024115395A1 (en) * 2022-11-28 2024-06-06 Ams-Osram Ag Method for calculating a trajectory of an object, system, computer program and computer-readable storage medium
US20240291944A1 (en) * 2023-02-24 2024-08-29 Apple Inc. Video application graphical effects

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5523775A (en) * 1992-05-26 1996-06-04 Apple Computer, Inc. Method for selecting objects on a computer display
US5452371A (en) * 1992-05-27 1995-09-19 Apple Computer, Inc. Method of aligning shapes on a display of a computer system
US5687254A (en) * 1994-06-06 1997-11-11 Xerox Corporation Searching and Matching unrecognized handwriting
JP3416268B2 (ja) * 1994-06-30 2003-06-16 キヤノン株式会社 画像認識装置及びその方法
KR19990011180A (ko) * 1997-07-22 1999-02-18 구자홍 화상인식을 이용한 메뉴 선택 방법
EP0905644A3 (en) * 1997-09-26 2004-02-25 Matsushita Electric Industrial Co., Ltd. Hand gesture recognizing device
US6681031B2 (en) * 1998-08-10 2004-01-20 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US6950534B2 (en) * 1998-08-10 2005-09-27 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US7036094B1 (en) * 1998-08-10 2006-04-25 Cybernet Systems Corporation Behavior recognition system
DE69936620T2 (de) * 1998-09-28 2008-05-21 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren und Vorrichtung zum Segmentieren von Handgebärden
US6574266B1 (en) 1999-06-25 2003-06-03 Telefonaktiebolaget Lm Ericsson (Publ) Base-station-assisted terminal-to-terminal connection setup
JP2001111881A (ja) 1999-10-07 2001-04-20 Internatl Business Mach Corp <Ibm> 撮像装置及びその遠隔操作方法
EP1837858B1 (en) * 2000-01-11 2013-07-10 Yamaha Corporation Apparatus and method for detecting performer´s motion to interactively control performance of music or the like
SE0000850D0 (sv) * 2000-03-13 2000-03-13 Pink Solution Ab Recognition arrangement
US7227526B2 (en) * 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
US7058204B2 (en) * 2000-10-03 2006-06-06 Gesturetek, Inc. Multiple camera control system
US20030058111A1 (en) * 2001-09-27 2003-03-27 Koninklijke Philips Electronics N.V. Computer vision based elderly care monitoring system
US7340077B2 (en) * 2002-02-15 2008-03-04 Canesta, Inc. Gesture recognition system using depth perceptive sensors
JP2003316510A (ja) * 2002-04-23 2003-11-07 Nippon Hoso Kyokai <Nhk> 表示画面上に指示されたポイントを表示する表示装置、及び表示プログラム。
US6984208B2 (en) * 2002-08-01 2006-01-10 The Hong Kong Polytechnic University Method and apparatus for sensing body gesture, posture and movement
EP1408443B1 (en) * 2002-10-07 2006-10-18 Sony France S.A. Method and apparatus for analysing gestures produced by a human, e.g. for commanding apparatus by gesture recognition
JP2004171476A (ja) * 2002-11-22 2004-06-17 Keio Gijuku ハンドパターンスイッチ装置
US8745541B2 (en) * 2003-03-25 2014-06-03 Microsoft Corporation Architecture for controlling a computer using hand gestures
US20050196015A1 (en) * 2004-03-02 2005-09-08 Trw Automotive U.S. Llc Method and apparatus for tracking head candidate locations in an actuatable occupant restraining system
US7308112B2 (en) * 2004-05-14 2007-12-11 Honda Motor Co., Ltd. Sign based human-machine interaction
US7519223B2 (en) * 2004-06-28 2009-04-14 Microsoft Corporation Recognizing gestures and using gestures for interacting with software applications
JP5631535B2 (ja) * 2005-02-08 2014-11-26 オブロング・インダストリーズ・インコーポレーテッド ジェスチャベースの制御システムのためのシステムおよび方法
RU2007146172A (ru) * 2005-05-17 2009-06-27 Гестуретэк, Инк. (Us) Вывод сигнала, чувствительный к ориентации
JP2007172577A (ja) 2005-11-25 2007-07-05 Victor Co Of Japan Ltd 操作情報入力装置
JP4569555B2 (ja) * 2005-12-14 2010-10-27 日本ビクター株式会社 電子機器
US7721207B2 (en) * 2006-05-31 2010-05-18 Sony Ericsson Mobile Communications Ab Camera based control
JP4267648B2 (ja) * 2006-08-25 2009-05-27 株式会社東芝 インターフェース装置及びその方法
GB2456247B (en) * 2006-10-10 2009-12-09 Promethean Ltd Interactive display system with master/slave pointing devices
JP2008146243A (ja) * 2006-12-07 2008-06-26 Toshiba Corp 情報処理装置、情報処理方法、及びプログラム
US7877707B2 (en) * 2007-01-06 2011-01-25 Apple Inc. Detecting and interpreting real-world and security gestures on touch and hover sensitive devices
US8726194B2 (en) * 2007-07-27 2014-05-13 Qualcomm Incorporated Item selection using enhanced control
US8007110B2 (en) * 2007-12-28 2011-08-30 Motorola Mobility, Inc. Projector system employing depth perception to detect speaker position and gestures
US8146020B2 (en) * 2008-07-24 2012-03-27 Qualcomm Incorporated Enhanced detection of circular engagement gesture
CN102165396B (zh) 2008-07-25 2014-10-29 高通股份有限公司 挥动约定姿态的增强检测
US8180368B2 (en) 2008-11-11 2012-05-15 Trueposition, Inc. Femto-cell location by direct methods

Also Published As

Publication number Publication date
JP2014053045A (ja) 2014-03-20
EP2327005B1 (en) 2017-08-23
US20140055350A1 (en) 2014-02-27
JP2011529234A (ja) 2011-12-01
WO2010011929A1 (en) 2010-01-28
JP5432260B2 (ja) 2014-03-05
EP2327005A4 (en) 2016-08-24
US8737693B2 (en) 2014-05-27
JP5755712B2 (ja) 2015-07-29
CN102165396B (zh) 2014-10-29
US20100040292A1 (en) 2010-02-18
CN102165396A (zh) 2011-08-24
US8605941B2 (en) 2013-12-10
EP2327005A1 (en) 2011-06-01

Similar Documents

Publication Publication Date Title
ES2648049T3 (es) Detección mejorada de gesto ondulatorio
US8146020B2 (en) Enhanced detection of circular engagement gesture
US11750770B2 (en) Real time painting of a video stream
KR102606605B1 (ko) 증강 현실 사용자 인터페이스 제어
US10082940B2 (en) Text functions in augmented reality
JP6090879B2 (ja) 拡張現実対応デバイスのためのユーザインターフェース
US11468544B2 (en) Eye texture inpainting
CN111344749B (zh) 引向用户关注
ES2759054T3 (es) Región basada en gestos del cuerpo humano y selección de volumen para HMD
US8549418B2 (en) Projected display to enhance computer device use
CN107102723B (zh) 用于基于手势的移动交互的方法、装置、设备和非暂时性计算机可读介质
CN110709897B (zh) 用于插入到图像中的图像内容的阴影生成
US20210102820A1 (en) Transitioning between map view and augmented reality view
US20150009130A1 (en) Three Dimensional User Interface Effects On A Display
US12288298B2 (en) Generating user interfaces displaying augmented reality graphics
US20150241984A1 (en) Methods and Devices for Natural Human Interfaces and for Man Machine and Machine to Machine Activities
JP2019060963A (ja) 表示処理装置、表示処理方法及びプログラム
US11188206B2 (en) Information processing apparatus and information processing method