CN115427920A - 用于调整手势控制电子设备的控制显示增益的方法和设备 - Google Patents
用于调整手势控制电子设备的控制显示增益的方法和设备 Download PDFInfo
- Publication number
- CN115427920A CN115427920A CN202180029396.0A CN202180029396A CN115427920A CN 115427920 A CN115427920 A CN 115427920A CN 202180029396 A CN202180029396 A CN 202180029396A CN 115427920 A CN115427920 A CN 115427920A
- Authority
- CN
- China
- Prior art keywords
- hand
- gesture
- gain
- control display
- display gain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
- Image Analysis (AREA)
Abstract
描述了用于调整手势控制设备的控制显示增益的方法、设备和处理器可读介质。调整所述控制显示增益可以促进用户与呈现在所述手势控制设备的显示屏上的内容或UI元素的交互。所述控制显示增益可以根据用户的手执行隔空拖动手势的方式的属性来调整。所述属性可以是所述手势的位置、执行所述手势的所述手的方向或所述手势的速度。在执行所述拖动手势时在阈值时间段内变为静止的手可以将所述控制显示增益调整到不同的水平。所述控制显示增益可以根据执行所述手势的所述手的当前速度被设置为不同的值。所述控制显示增益水平可以从连续值范围或一组离散值中选择。描述了用于执行所述方法的设备。
Description
相关申请交叉引用
本申请要求于2020年10月30日递交的申请号为17/085,866、发明名称为“用于调整手势控制电子设备的控制显示增益的方法和设备(Method and device for adjustingthe control-display gain of a gesture controlled electronic device)”的美国非临时申请的权益,该申请案要求于2020年4月26日递交的申请号为63/015,595、发明名称为“用于调整手势控制电子设备的控制显示增益的方法和系统(Method and system foradjusting the control-display gain of a gesture controlled electronicdevice)”的美国临时申请的权益,这些申请的全部内容通过引用结合在本申请中。
技术领域
本申请大体涉及手势控制电子设备,具体地涉及用于调整手势控制电子设备的控制显示增益的方法和设备。
背景技术
传统上,电子设备的用户使用手持鼠标、手指或触笔等定点设备来通过物理手势控制电子设备并向电子设备提供数据。例如,用户可以通过在物理表面上移动手持鼠标并激活鼠标上的开关(例如,通过按下按钮),与电子设备进行交互(即,控制电子设备并向电子设备提供数据)。类似地,用户可以通过用手指或触笔在电子设备的触敏表面(例如电子设备的触控板或触摸显示屏)上触摸,以及在触敏表面上移动手指或触笔,与电子设备进行交互(即,控制电子设备并向电子设备提供数据)。定点设备在表面上的移动通过指针或光标在显示屏上的移动呈现在电子设备的显示屏上。控制显示(Control-Display,CD)增益描述了定点设备的移动与指针或光标在电子设备显示屏上的移动之间的比例关系。例如,可以通过电子设备的操作系统或电子设备的用户来调整电子设备的CD增益设置。
由于CD增益描述了定点设备的移动与指针或光标在电子设备显示屏上的移动之间的比例关系,因此它也影响电子设备响应这些指针移动的行为。因此,例如,可以将电子设备配置为:所述电子设备通过与指针设备拖动音量滑块的距离成比例地增加混音器模块的音频音量,来响应特定环境(例如,混音器应用程序)中指针设备的拖动运动。因此,如果电子设备具有高CD增益设置并且用户在混音器环境中使用指针设备发起拖动动作,则指针设备用户的小幅动作可能不仅会使屏幕上的指针或光标大幅移动,而且还会使音频音量滑块大幅度移动,从而导致音频音量大幅增加。因此,CD增益不仅影响指针设备移动与显示屏上显示内容的比例关系,还影响指针设备移动与电子设备执行的各种命令的程度或幅度(例如,音频音量增加的幅度)之间的比例关系。
现代电子设备(例如电视、大显示屏、车辆信息娱乐系统)使用户能够使用在电子设备前面的空间中执行的手势与这些电子设备进行交互(即,控制电子设备并向电子设备提供数据),这些手势可以在电子设备的相机或连接到电子设备的相机的视场(field ofview,FOV)中捕获。这种手势称为隔空手势。例如,用户可以使用隔空手势控制电子设备显示屏上呈现的数字内容。然而,此类设备的用户通常发现难以通过隔空手势来控制和操作显示屏上呈现的内容,尤其难以通过隔空手势进行细粒度调整,以控制这种电子设备显示屏上呈现的内容或用户界面(user interface,UI)元素(例如控件)。
因此,需要使手势控制电子设备的用户能够调整CD增益,以允许以不同细粒度进行手势控制的技术。
发明内容
本发明描述了用于调整手势控制设备的控制显示增益以促进用户与在手势控制设备显示屏上呈现的内容或UI元素的交互的方法和设备。在本文描述的示例中,不需要用户浏览配置菜单、学习不同的手势、执行一系列手势或执行其它繁琐的任务来调整CD增益,而是可以使用户能够在用一只手执行基本隔空手势(即,应用CD增益调整的手势)的同时动态地调整CD增益,而不需要用另一只手执行任何事先动作或同时手势。在本发明中,术语“隔空手势”和“手势”应可互换地用于指由用户的手在相机的视场内执行的手势,如上所述。手势可以涉及手形和手部动作,如下文结合图3A至图4C更详细描述的。
在本文描述的示例中,根据用户执行隔空手势的方式的一个或多个属性来确定所述手势控制设备的所述CD增益。在一些示例中,通过用户的手执行手势时的位置(例如高位置或低位置)来确定所述CD增益。在一些示例中,通过用户的手执行手势时的方向来确定所述CD增益。在一些示例中,响应于检测到用户执行手势时已暂停手部动作一段时间,调整所述CD增益。在一些示例中,根据用户的手移动的速度来调整所述CD增益。
在一些方面,本发明描述了一种用于调整手势控制设备的控制显示增益的方法。所述方法包括:处理帧以检测所述帧内手的位置和手形;根据所述手的所述位置和手形,生成所述帧的手势数据;根据所述帧的手势数据和一个或多个先前帧的手势数据,确定所述手正在执行拖动手势;识别执行所述拖动手势的所述手的属性;将所述手势控制设备的控制显示增益调整为根据所述识别的属性确定的控制显示增益。
在一些方面,本发明描述了一种手势控制设备。所述手势控制设备包括处理器设备和存储器。所述存储器上存储有机器可执行指令,所述机器可执行指令当由所述处理设备执行时,使所述手势控制设备:处理帧以检测所述帧内的隔空手势;确定所述隔空手势是拖动手势;识别执行所述拖动手势的所述手的属性;将所述手势控制设备的控制显示增益调整为根据所述识别的属性确定的控制显示增益。
在一些示例中,所述属性是所述手的所述位置。
在一些示例中,所述方法还包括:当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手相对于第一轴的移动;将所述控制显示增益应用于所述移动,以生成拖动控制输出值。根据所述手相对于与所述第一轴正交的第二轴的位置,确定所述控制显示增益。
在一些示例中,识别所述手的所述位置包括:确定所述手位于所述帧的第一区域内。所述控制显示增益是与所述第一区域对应的第一控制显示增益。
在一些示例中,所述属性是所述手相对于参考方向的方向。
在一些示例中,所述手的所述方向包括所述手相对于所述参考方向的角度。
在一些示例中,所述手的所述角度是相对于垂直平面测量的。
在一些示例中,识别所述手的所述方向包括:确定所述手的所述角度位于在第一角度与第二角度之间限定的第一角度范围内;所述控制显示增益是与所述第一角度范围对应的第一控制显示增益。
在一些示例中,所述属性是所述手的速度。
在一些示例中,识别所述手的所述速度包括:确定所述手的位置;当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手的所述速度。调整所述控制显示包括:响应于确定所述速度低于速度阈值已至少达到停留时间阈值,并且所述手势控制设备处于多个控制显示增益状态中的第一控制显示增益状态:将所述手势控制设备置于所述多个控制显示增益状态中的第二控制显示增益状态;将所述控制显示增益调整为与所述第二控制显示增益状态对应的控制显示增益。
在一些示例中,识别所述手的所述速度包括:确定所述手的位置;当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手的所述速度。所述控制显示增益是根据与所述手的所述速度相关的函数确定的。
在一些示例中,与所述手的所述速度相关的所述函数是线性函数。
在一些示例中,与所述手的所述速度相关的所述函数是广义逻辑函数。
在一些方面,本发明描述了一种处理器可读介质,其上有形地存储有指令。当所述指令由处理器设备执行时,使所述处理器设备执行上述方法步骤。
本文所公开的示例可以使用户能够更改CD增益,而不会在多个输入空间之间转移注意力。相反,用户可以修改执行基本手势(即,用于执行当前UI任务的手势)的方式,以在执行当前UI任务时调整所述CD增益。用户可以通过更改执行所述基本手势的方式的属性,例如手位置(例如,高度水平)、手方向(例如,手指向上与手指向下)或手速度(例如,暂停以在CD增益水平之间切换,或改变手速度以实现非线性CD增益响应),在各种CD增益水平中进行选择。CD增益水平的这些变化可以用于在离散CD增益水平之间切换或遍历CD增益水平的连续范围。
一些实施例(例如使用手方向或速度的实施例)可以使用户能够将其肘部保持在桌面上,因此与需要将手移动到特定位置的手势系统相比,所需的手臂应力更小。
一些实施例可以通过提供视觉和/或听觉反馈提示来指示当前CD增益水平,从而提供进一步的优势。
在依赖手速度来更改CD增益的实施例中,交互可以比现有方法更直观,因为用户在尝试执行细粒度动作时,可以自然地减慢或暂停手部动作。在一些此类实施例中,用户不需要在粗粒度和细粒度CD增益之间进行手动转换,从而降低了脑力负荷。
在一些实施例中,单个手势控制设备使用的不同类型的控件(例如,音量条、进度条等)可以使用单一技术来调整CD增益水平,而无需学习分配给不同模式的多个手势。
附图说明
现在通过示例参考示出本申请的示例性实施例的附图,在附图中:
图1为用户与示例性手势控制设备交互的框图;
图2为示例性手势控制设备的一些组件的框图;
图3A至图3H示出了可以由示例性手势控制设备检测和分类的一些示例性手形类别;
图4A至图4C示出了可以由示例性手势控制设备检测和分类的一些示例性动态手势;
图5示出了可以在图2所示示例性手势控制设备中实现的示例性手势感应系统的一些细节的框图;
图6示出了可以由图5所示手势感应系统执行的示例性手部检测和跟踪方法的流程图;
图7示出了根据通过图6所示方法检测和跟踪的手来使用边界框细化的示例性手势分类方法的流程图;
图8示出了基于状态的手势分类的示例的状态图;
图9示出了用于调整图2所示手势控制设备的控制显示增益的基于速度的方法的流程图;
图10A示出了当CD增益设置为恒定值时CD增益与图9所示方法的拖动手势的速度的关系的第一曲线图;
图10B示出了当CD增益是使用线性函数确定的CD增益时CD增益与图9所示方法的拖动手势的速度的关系的第一曲线图;
图10C示出了当CD增益是使用广义逻辑函数确定的CD增益时CD增益与图9所示方法的拖动手势的速度的关系的第一曲线图;
图11示出了用于调整图2所示手势控制设备的控制显示增益的基于位置的示例性方法的流程图;
图12示出了执行图3D所示捏合手势的手的示例性手方向;
图13示出了用于调整图2所示手势控制设备的控制显示增益的基于方向的示例性方法的流程图;
图14示出了用于调整图2所示手势控制设备的控制显示增益的基于暂停的示例性方法的流程图。
不同附图中可以使用相同的附图标记来表示相同的组件。
具体实施方式
本发明描述了用于使用隔空手势调整手势控制电子设备(“手势控制设备”)的CD增益的方法和设备。手势控制设备可以是电视(例如,智能电视)、桌面设备、视频会议系统、视频游戏系统、车辆耦合设备(例如,仪表盘设备)或智能扬声器等。本文所述的方法和系统可以用于使用户能够与手势控制设备提供的任何用户界面进行交互,包括在手势控制设备的显示设备上呈现的用户界面、在与手势控制设备通信的显示设备上呈现的用户界面。本发明所述的方法和系统的示例还可以针对增强现实(augmented reality,AR)或虚拟现实(virtual reality,VR)等应用场景来实现。
示例性手势控制设备和系统
为简单起见,本发明在具有显示屏(例如,智能电视(television,TV)或与视频会议系统通信的显示设备)的手势控制设备的背景下描述了各示例,以及用于控制所述设备以与所述设备交互(例如播放视频)的方法和系统。然而,应当理解的是,本发明并不限于此类实施例,并且本文描述的方法和系统可以用于控制各种应用场景中的各种手势控制设备。例如,本文描述的方法和系统的一些实施例可以使用扬声器等其它输出设备来向用户提供反馈信息。一些实施例可以使用户能够使用隔空手势与其它类型的内容或其它软件应用程序(例如音乐播放器、视频会议应用程序、视频游戏或多用户虚拟现实(virtualreality,VR)或增强现实(augmented reality,AR)环境等)进行交互。
使用隔空手势调整手势控制设备的CD增益可能优于用于调整手势控制设备的CD增益的方法。使用隔空手势控制此类手势控制设备不需要用户手持此类手势控制设备来与之交互。此外,使用隔空手势控制此类手势控制设备可能更卫生,因为用户不需要触摸手势控制设备的表面来与之交互。
图1示出了用户10与手势控制设备100交互的示例。在该简化图中,手势控制设备100包括捕获视场(field-of-view,FOV)20的数码相机102。如下文进一步描述,FOV 20可以包括用户10的至少一部分,具体是用户10的脸和手。需要说明的是,在实际使用中(例如,在实验室设置之外)的FOV 20通常不仅包括用户10。例如,FOV 20还可以包括其它对象、背景场景或可能存在的其它人。手势控制设备100可以不包括数码相机102,而是具有能够感应用户10的隔空手势的另一个传感器,例如任何图像捕获设备/传感器(例如,红外图像传感器)。手势控制设备100还包括显示设备104(以下称为显示屏104),用于在其上呈现视觉信息,例如视频。
参考图2,其中示出了手势控制设备100的框图。虽然下文示出和描述手势控制设备100的一个示例性实施例,但其它实施例可以用于实现本文公开的示例,这些其它实施例可以包括与所示的组件不同的组件。虽然图2示出了手势控制设备100的每个组件的单个实例,但所示的每个组件可以有多个实例。
手势控制设备100包括一个或多个处理器202,例如中央处理器、微处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、专用逻辑电路、张量处理器、神经处理器、专用人工智能处理器或其组合。一个或多个处理器202可以统称为“处理器设备”。手势控制设备100还包括一个或多个输入/输出(input/output,I/O)接口204,所述接口将数码相机102等输入设备与显示屏104等输出设备连接。手势控制设备100可以包括其它输入设备(例如按钮、麦克风、触摸屏、键盘等)和其它输出设备(例如扬声器、振动单元等)。数码相机102(或其它输入设备)可以具有捕获实时手势输入作为视频帧序列的能力。所述捕获的帧可由一个或多个I/O接口204缓存并提供给一个或多个处理设备202以实时或接近实时(例如,在100ms内)的方式进行处理。
手势控制设备100可以包括一个或多个可选的网络接口206,用于与网络(例如内网、互联网、P2P网络、WAN和/或LAN)或其它节点进行有线或无线通信。一个或多个网络接口206可以包括用于网络内和/或网络间通信的有线链路(例如以太网线)和/或无线链路(例如一个或多个天线)。
手势控制设备100包括一个或多个存储器208,其中,所述一个或多个存储器208可以包括易失性或非易失性存储器(例如闪存、随机存取存储器(random access memory,RAM)和/或只读存储器(read-only memory,ROM))。一个或多个非瞬时性存储器208可以存储由一个或多个处理器202执行的指令,以便执行本发明中描述的各示例。定义手势感应系统500的一组指令被示为存储在一个或多个存储器208中,所述一组指令可以由一个或多个处理器202执行,以执行下述方法的步骤。下面结合图5描述手势感应系统500的操作。手势感应系统500包括机器可执行指令,所述机器可执行指令可由一个或多个处理器202执行,以执行其每个子系统516、520、522、560、562、570的功能。所述一个或多个存储器208可以包括其它软件指令,例如用于实现操作系统和其它应用/功能。
在一些示例中,手势控制设备100还可以包括一个或多个电子存储单元(未示出),例如固态硬盘、硬盘驱动器、磁盘驱动器和/或光盘驱动器。在一些示例中,一个或多个数据集和/或模块可以由外部存储器(例如与手势控制设备100进行有线通信或无线通信的外部驱动器)提供,也可以由瞬时性或非瞬时性计算机可读介质提供。非瞬时性计算机可读介质的示例包括RAM、ROM、可擦除可编程ROM(erasable programmable ROM,EPROM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、闪存、CD-ROM或其它便携式存储器。例如,手势控制设备100的组件可以通过总线互相通信。
在一些实施例中,分布式系统可以包括多个手势控制设备100以及可选的一个或多个附加组件。所述分布式系统可以包括多个通过网络相互通信的手势控制设备100;例如,视频会议系统可以包括每个远程参与用户的手势控制设备100,可选地包括中央服务器。可以通过本地处理(即,在每个用户的手势控制设备100上)和远程或中央处理(即,在中央服务器上)的某种组合来执行手势识别和分类,并对用户手势进行优先级排序以控制在每个手势控制设备100上运行的视频会议应用程序。在一些实施例中,第一手势控制设备100可以用于识别由本地用户执行的隔空手势并对其进行分类,其中,中央服务器对不同手势控制设备100的用户同时执行的手势进行优先级排序。在一些实施例中,每个手势控制设备100可以将手势控制设备100的所述数码相机捕获的帧集合发送到所述中央服务器,所述中央服务器对从每个手势控制设备接收的所述帧集合的处理顺序进行优先级排序,并且处理从每个手势控制设备100接收的所述集合帧,以按照手势控制的优先顺序识别由手势控制设备100的用户执行的隔空手势并对其进行分类。在一些实施例中,每个手势控制设备100用于根据本地捕获的帧(例如,手势控制设备100的所述数码相机捕获的帧)和从所述分布式系统中的其它手势控制设备100接收的信息的组合,对所识别和分类的隔空手势进行优先级排序。在一些实施例中,所述分布式系统是增强现实系统,所述增强现实系统包括单个手势控制设备100和多个数码相机(例如,位于物理空间周围的数码相机阵列)和/或多个显示屏。在该实施例中,单个手势控制设备100用于识别手势控制设备100的数码相机102捕获的帧集合中的隔空手势并对其进行分类,或者识别所述系统的多个数码相机捕获的帧集合中的隔空手势并对其进行分类,并且所述手势控制设备使用所述识别和分类的隔空手势来控制所述多个显示屏以在其上呈现信息。应当理解的是,这些系统是作为示例提供的,并且可以采用其它分布式系统。
应当理解的是,不同的实施例可以包括输入和输出设备的不同组合来代替数码相机102和显示屏104或对其进行补充。在VR或AR系统的环境下,可以使用多个头戴式显示器代替单个大型共享显示屏104,其中,一个或多个数码相机102用于捕获用于输入的视频,如本文所述。在每个用户的相应头戴式显示器上向这种VR或AR系统的用户呈现的反馈信息可以类似于本文所述的在单个共享显示屏104上呈现的反馈。在一些实施例中,可以仅在目标用户的头戴式显示器上呈现针对单个用户的反馈信息。
在一些实施例中,可以使用多个数码相机102来捕获包括用户隔空手势的帧。例如,VR或AR系统可以包括安装在每个用户的耳机或其它VR或AR设备上的单个数码相机,其中,每个用户的耳机或其它VR或AR设备的每个相应数码相机用于捕获包括该用户的隔空手势的帧集合。类似地,具有彼此距离较远的多个用户的示例性视频会议、VR或AR系统可以使用每个用户本地的数码相机来捕获包括该用户身体和环境的图像,以便识别该用户的隔空手势并对其进行分类。在此类示例性多相机实施例中,本文描述的方法和系统可以用于检测和跟踪每个用户的手,并通过组合每个数码相机捕获的帧来识别每个用户的隔空手势并对其进行分类。在一些实施例中,可以在时间上(例如,按顺序处理每个帧以进行手势分类)、空间上(例如,创建包括从每个数码相机接收的当前帧的复合帧,并处理所述复合帧以进行手势分类),或者通过组合从多个数码相机接收的帧的一些其它方法来完成来自多个数码相机的帧的这种组合。
示例性手势
为了帮助理解本发明,首先描述手势。在本发明中,手势通常由一个或多个不同的手形和/或手部动作定义,这些手形和/或手部动作可以由手势控制设备100分类为特定命令输入。手势可以具有不同的手形和手部动作。例如,手势控制设备100可以将手形分类为属于图3A至图3H所示的手形类别之一。
图3A示出了“张开”手形30;图3B示出了“拳头”(或“握紧”)手形32;图3C示出了“张开”手形34;图3D示出了“捏合”手形36;图3E示出了“静音”(“安静”)手形38;图3F示出了“点赞”(“准许”)手形40;图3G示出了“其它”(“下一个”)手形42;图3H示出了“触摸”(“选择”)手形44。其它手形类别可以由手势控制设备100进行分类。
基于此类手形类别,可以将手势分类为静态手势或动态手势。静态手势由单个手形类别定义,并且在包括手势控制设备100的用户的视频的至少一个定义的时间段(例如,1秒)或至少一个定义的连续捕获帧数(例如,100帧)内保持在大致固定的位置(例如,在允许一定误差容限的定义区域内)。例如,手势控制设备100可以识别在多个帧内的相同位置处包括多个张开手形30的静态“张开”手势,并且可以在视频播放中将该手势解释为暂停命令输入。手势控制设备100可以识别在多个帧内的相同位置处包括多个静态拳头手形32的静态“拳头”手势,并且可以在视频播放中将该手势解释为停止命令输入。手势控制设备100可以将手势识别并分类为特定手势类型,例如上文所述的“张开”静态手势或“拳头”静态手势。
动态手势由一个或多个手形类别、位置和/或动作的组合定义。例如,动态手势可以是位置随时间变化的单个手形类别(例如,在所捕获视频的帧序列中的不同位置处检测到)。位置随时间变化的张开手形30可以由手势控制设备100分类为动态张开手势并解释为拖动或移动界面对象(例如显示的图标)的命令。
图4A示出了另一种类型的动态手势,它可以是手形类别的组合。在图4A中,所述动态手势包括触摸手形44和随之执行的拳头手形32的组合。该动态手势可以由手势控制设备100识别并解释为等效于使用鼠标设备进行选择然后点击界面对象的命令输入。在另一个示例中,张开手形34和随之执行的捏合手形36可以一起分类为“缩放”动态手势,其可以由手势控制设备100识别并解释为缩放命令输入。与静态手势的情况一样,动态手势也可以由手势控制设备100识别并分类为特定手势类型,例如图4A所示的动态手势。
更复杂的动态手势可能涉及手形类别以及位置变化的组合。例如,在图4A中,如果触摸手形44被检测为位置随时间变化(例如,在手势控制设备100的用户的视频的帧序列上的不同位置检测到)并且随后是拳头手形32,则手势控制设备100可以将该复杂动态手势解释为以反映触摸手形44的位置变化的方式移动所显示光标的命令,然后是检测到拳头手形32时的点击命令。
在另一个示例中,张开手形36,随后是捏合手形38,随后是捏合手形38的位置变化,随后再次是张开手形36,这些可以一起由手势控制设备100分类为动态“捏合-拖动-释放”手势。需要说明的是,包括位置变化的动态手势可以根据位置的特定变化解释为不同的输入。例如,如图4B所示,捏合-拖动-释放手势在捏合手形38的位置46处有垂直变化(或垂直“拖动”),可以在视频播放中解释为改变音量的命令输入。相比之下,如图4C所示,捏合-拖动-释放手势在捏合手形38的位置48处有水平变化,可以在视频播放中解释为在视频中向前或向后移动的命令输入。这种捏合-拖动-释放动态手势可以为用户与手势控制设备100交互提供一种直观方便的方式,并且还可以使手势控制设备100能够以相对较高的精度对复杂的动态手势进行分类。具体地,可以通过将动态手势分解为其组成手形类别(例如,张开手形36,随后是捏合手形38,随后是再一个张开手形36),来检测捏合-拖动-释放动态手势并对其进行分类。
手部检测和跟踪子系统516可以检测手的位置以及该位置随时间的变化(例如位置的垂直变化或水平变化)并对其进行解释,如下所述。在不同的示例中,可以用不同的方式定义手的位置。在一些示例中,可以相对于手势控制设备100的相机的FOV来定义手的位置。因此,在一些示例中,手在视频帧内的位置(例如,手的像素位置)可以直接映射到相对于相机的FOV的垂直和水平位置,并且手的位置在后续帧内的变化可以解释为手的位置的相应变化(即,手的移动)。在其它示例中,可以相对于帧内的另一个对象来定义手的位置,以便相对于给定帧内的对象的位置来定义手在给定帧内的位置。在此类示例中,定义手的位置或移动的轴(例如水平轴和垂直轴)可以相对于其它对象的位置和/或方向来定义。在一些示例中,例如具有非静止相机的示例,所述相机可以使用其它数据(例如相机位置和/或方向数据)来定义轴,并因此定义手的位置和移动。手势感应设备100的一个示例配置定义了手在帧内的位置以及手在一系列帧内相对于垂直平面的移动,其中,所述垂直平面是相对于水平地面定义的。在一些示例中,所述水平地面可以在相机FOV内检测并用于定义所述垂直平面。在其它示例中,相机基本上水平定向,使得FOV(以及帧的2D图像)基本上对应于垂直平面,其中,帧的每个像素的X和Y像素坐标对应于从垂直平面的相应X-Y坐标投射的光。
示例性手势感应系统
图5示出了手势控制设备100的手势感应系统500的示例的框图。在该示例中,手势感应系统500包括手部检测和跟踪子系统516以及手势分类子系统520。在以下示例中,手势感应系统500被描述为包括若干子系统或提供若干子系统的功能。然而,在其它示例中,手势感应系统500可以仅包括所描述的子系统的子集(或提供其功能)。
在一些示例中,手势感应系统500可以不包括不同的子系统。相反,子系统(516、520、560、570)可以视为手势感应系统500本身的子块。因此,实现使用不同子系统(516、520)的手势感应系统500是可选的。
手势感应系统500包括手形分类子系统522。手形分类子系统522可以是手势分类子系统520的一部分。
从相机接收所捕获视频的帧并将其输入到手势感应系统500。手部检测和跟踪子系统516处理所述帧以检测所述帧内的手,为所述检测到的手定义边界框,裁剪所述帧以生成仅包括对应于所述定义的边界框的帧区域的裁剪帧,并输出所述裁剪帧。手部检测和跟踪子系统516可以使用任何合适的手部检测技术来处理所述帧以检测所述帧内的手,为所述检测到的手定义2D或3D边界框,并裁剪所述帧。
在一些示例中,手部检测和跟踪子系统516可以包括为执行手部检测和跟踪而构造和设置的经过训练的神经网络。例如,适用于手部检测和跟踪的神经网络可以是基于ResNet54(例如,如He Kaiming等人于2016年在《IEEE计算机视觉与模式识别会议汇刊》中发表的文章“图像识别深度残差学习(Deep residual learning for imagerecognition)”所描述)等残差神经网络(residual neural network,ResNet)架构的YoloV5(例如,如Redmon等人于2018年在arXiv预印本arXiv:1804.02767中发表的文章“Yolov5:逐步改进(Yolov5:An incremental improvement)”所描述)。为执行手部检测和跟踪而构造和设置的经过训练的神经网络的其它示例可以是多框SSD(如Liu等人于2016年在《欧洲计算机视觉会议汇刊》中发表的文章“SSD:单步多框检测器(Ssd:Single shotmultibox detector)”(Springer,Cham)所描述)等经过训练的单步检测器(single shotdetector,SSD),或MobileNetV2(如Sandler等人于2018年在《IEEE计算机视觉与模式识别会议汇刊》中发表的文章“Mobilenetv2:反向残差和线性瓶颈(Mobilenetv2:Invertedresiduals and linear bottlenecks)”所描述)等经过训练的卷积神经网络(onvolutional neural network,CNN)。手部检测和跟踪也可以由手部检测和跟踪子系统516使用Lucas-Kanade光流法(如Lucas等人于1981年在《图像理解研讨会汇刊》中发表的文章“一种应用于立体视觉的迭代图像配准技术(An iterative image registrationtechnique with an application to stereo vision)”所描述)来执行。
手形分类子系统522使用仅包括与针对所述检测到的手定义的边界框对应的所述帧区域的所述裁剪帧,将所述裁剪框中的手形识别并分类为手形类别。手形分类子系统522可以使用任何合适的分类技术来处理所述裁剪帧,以将所述检测到的手形分类为特定手形类别。例如,手形分类子系统522可以包括经过训练的神经网络(例如,CNN),所述神经网络已经过训练,可根据预定义的一组手形类别对手形进行分类。所述识别的手形类别可以从手形分类子系统522输出(例如,作为标记)。
手势分类子系统520可以使用手形分类子系统522输出的手形类别、手部检测和跟踪子系统516输出的手位置数据,以及来自一个或多个先前帧的附加手位置和/或手形数据,来确定手正在执行静态或动态手势并对该手势进行分类。如上所述,手势分类子系统520可以将在多个连续帧(例如,100帧)内基本上相同的位置检测到的单个手形类别(例如,“张开”手形30)分类为静态手势类型(例如,“张开”静态手势类型)。类似地,手势分类子系统520可以将在帧序列中的不同位置执行的手形类别或跨帧序列按顺序执行的多个手形类别分类为动态手势类型(例如,缩放-拖动-释放动态手势类型)。手势分类子系统520可以响应于识别和分类手势而生成手势数据504,包括所述手势的分类手势类型以及已执行手势的持续时间。在一些示例中,即使在没有识别出手势时也可以生成和输出手势数据504,并且所述手势数据可以包括手部检测和跟踪子系统516和/或手形分类子系统522生成的数据。例如,在一些实施例中,手势数据504可以包括手部检测和跟踪子系统516生成的手位置数据(例如,帧内的绝对位置、相对于转向盘的位置和/或手边界框坐标)、手部动作数据和/或手位置历史数据(指示手在先前帧内的位置)。在一些实施例中,手势数据504可以包括手形分类子系统522在当前帧内识别的手形类别及其生成的手形历史数据(例如,基于存储的过去识别的手形类别的队列)。手势数据504还可以包括指示手势分类子系统520生成的由手执行的当前手势类型的手势类型数据,和/或手势持续时间数据。
手势控制设备100的软件应用程序(例如,操作系统)可以将手势感应系统500输出的手势类型转换为命令输入。所述手势类型到命令输入的转换可以取决于应用程序。例如,当第一应用程序处于激活状态时,给定的手势类别可以转换为第一命令输入,但当第二应用程序处于激活状态时,给定的手势类别可以转换为第二命令输入(或可以被认为无效)。
手势感应系统500还包括显示子系统560,显示子系统560包括用户反馈系统562和控制显示增益子系统570。下文将详细描述用户反馈系统562和控制显示增益子系统570的操作。
尽管手势感应系统500被示为具有不同的子块(或子系统),但应当理解的是,这并不具有限制性。例如,自适应手势感应系统500可以使用更多或更少数量的子块(或子系统),或者可以不需要任何子块(或子系统)来实现。此外,本文描述为由特定子块(或子系统)执行的功能可以由另一个子块(或子系统)执行。
通常,手势感应系统500的功能可以通过各种合适的方式实现并且仍然在本发明的范围内。
图6示出了可以由手势感应系统500执行的示例性手部检测和跟踪方法600的流程图,例如使用手部检测和跟踪子系统516执行。
在602中,接收输入帧。通常,以实时或近实时的方式一次接收一个输入视频帧。所述输入帧可以是相机102捕获的未经处理的原始数据,或者可以经过最低程度的处理(例如,归一化)。
在610中,在所述输入帧内检测手。如果在所述输入帧内未检测到手,则可以确定在接收的输入帧内未找到手势输入,并且方法600可以返回到步骤602以接收下一个输入帧。假设在所述输入帧内检测到至少一只手,则方法600进入可选步骤612。
可选地,在612中,如果在所述输入帧内检测到多于一只手,则可以在所述输入帧内识别一只主手。例如,可以根据所述输入帧内检测到的最大的手或一些其它标准来识别主手。如果在所述输入帧内只检测到一只手,则可以假设所述一只手是主手。
在614中,(例如,使用手部检测和跟踪子系统516)在所述输入帧内跟踪所述检测到的手(或主手)。提供来自检测和跟踪所述手(或主手)的信息,以进一步解析手势。例如,可以生成边界框和可选标识,以便跟踪所述检测到的手。然后,可以提供所述边界框(和可选标识)(例如,向手势识别子系统522或其它手分类器提供),以分析和解析由所述边界框内的帧的像素组成的裁剪帧,例如,识别所述裁剪框内的手形并对其进行分类。
在一些示例中,手势感应系统500可以仅使用手部检测和跟踪子系统516来实现手部检测和跟踪方法600。代替上述输出手势数据504,手势感应系统500可以将关于被跟踪的手的信息(例如,边界框)输出到基于视频的传统手势识别系统,并且所述传统手势识别系统可以执行所述手分类和手势识别。
在一些示例中,手部跟踪方法600可以用于处理相机102捕获的每个视频帧。在其它示例中,可以仅在预期有手势输入时使用手部跟踪方法600。例如,可以响应于命令输入(例如,通过键盘输入、鼠标输入或语音输入)来启动手部跟踪方法600。在一些示例中,可以基于检测到人类注意力来启动手部跟踪方法600。例如,可以使用注意力检测技术(例如,使用眼球跟踪软件)来确定人类是否正在直视手势控制设备100,并且仅在检测到人类直视设备100时启动手部跟踪方法600。响应于检测到人类注意力而启动手部跟踪方法600可以是有利的,这样可避免对手势输入的误报或错误解释。
图7示出了使用边界框细化来执行手势分类的示例性手势分类方法700的流程图。手势分类方法700可以通过手势分类子系统520实现。
在702中,接收帧,例如接收(例如,由手部检测和跟踪子系统516输出的)由定义检测到的手的边界框内的像素组成的裁剪帧。
在704中,手形分类子系统522可以用于执行手形分类。
在706中,在多个输入帧上执行手势分类。例如,手势分类子系统520可以通过考虑针对一个或多个先前输入帧检测并分类的手形类别,来存储先前输入帧的缓冲器并执行手势分析。手势分类子系统520可以使用在当前帧和一个或多个先前帧内检测和分类的手形类别以及当前帧和一个或多个先前帧内的手位置数据,来识别上述静态或动态手势并对其进行分类。
可以使用(例如,在手势感应系统500中实现的)缓冲器来存储预定义数量的先前输入帧。在一些实施例中,存储在所述缓冲器中的所述先前输入帧的数量可以相对较小(例如,10至30个先前输入帧),以便更高效地使用存储器资源。在一些示例中,所述缓冲器可以附加地或替代地存储在先前输入帧上执行的手势分类的结果。
对于要识别的单个静态手势,手势识别子系统522可以要求在预定义数量的先前输入帧(N)上检测相同的手形类别的预定义最小次数(K),其中,K≥1且K≤N。此要求可有助于提高检测准确度,减少误报。在一些示例中,可能需要在N个先前输入帧的K个连续输入帧上检测相同的手形类别。可以选择预定义的最小K为相对较小的数字(例如10),以更好地检测并仍然实现接近实时的手势识别。例如,可以使用该方法识别和分类的静态手势可以包括:静音手势,其在N个先前帧上由至少K个静音手形38(例如,用于静音或取消静音命令)组成;或者静态张开手势,其在N个先前帧上由至少K个张开手形30(例如,用于播放或暂停命令)组成。N个先前输入帧可以存储在缓冲器中,并可以用作用于检测手势的滑动窗口,有助于减少误报。在一些实施例中,手势数据504可以指示在其中检测到手形类别的先前帧的数量。
手势识别子系统522可以根据两个或两个以上静态手势的组合识别动态手势。例如,完整的动态手势可以解耦成不同的状态,其中,状态之间的转换是静态手势的检测结果。手势识别子系统522可以实现一组预定义的状态转换规则,用于基于状态的动态手势识别。
图8为基于状态的动态手势识别的一个示例的状态图,动态手势识别可以由手势识别子系统522实现。当手势输入首次被激活时,或者当未检测到当前有效手势时,中间状态802可以是默认的初始状态。
当先检测到拳头手势32转换到滑动准备状态804,接着检测到张开手势30转换到滑动状态806时,可以检测到滑动动态手势。在达到滑动状态806时,手势识别子系统322将手势输入识别为动态滑动手势。因此,识别静态拳头手势32接着识别静态张开手势30(按照适当的顺序)的结果为识别动态滑动手势。此外,需要检测到的拳头手势32和检测到的张开手势30之间的位置变化,以正向地检测动态滑动手势(例如为了将滑动手势与不涉及位置变化的另一个动态手势区分开来)。可以根据手边界框坐标的变化计算检测到的手势的位置变化。在达到滑动状态806时,手势分类子系统520可以生成指示识别的手势的输出(例如,手势类型标记),并且还可以生成指示滑动准备状态804和滑动状态806的检测之间的位置变化的输出。这些输出可以包括在手势数据504中。
可以将垂直或水平动态拖动手势检测为张开手势34、捏合手势36和静态张开手势34的组合。例如,在检测到静态张开手势34之后,从中间状态802转换到拖动准备状态808。在检测到静态捏合手势36之后,从拖动准备状态808转换到拖动激活状态810。垂直位置的变化(例如大于预定义阈值的变化)会引起从拖动激活状态810并保持在静态捏合手势36转换到垂直拖动状态812。类似地,水平位置的变化(例如大于预定义阈值的变化)会引起从拖动激活状态810并保持在静态捏合手势转换到水平拖动状态814。如果位置变化是垂直和水平变化的组合(例如位置的对角线变化),则幅度较大的变化可用于确定状态转换。或者,如果位置变化是垂直和水平变化的组合,则可能无法识别状态转换。在达到垂直拖动状态812或水平拖动状态814时,手势分类子系统520可以生成指示所识别的手势(例如,手势类型标记)的输出(例如,作为手势数据504的一部分)并且还可以提供指示垂直或水平位置的变化的输出。例如,手势分类子系统520可以计算距离(例如,基于输入帧中定义的坐标)并输出该值。距离值可用于将动态拖动手势映射为拖动命令输入。检测到张开静态手势会引起从垂直拖动状态812或水平拖动状态814转换到拖动准备状态808。返回到拖动准备状态808可以识别为动态拖动手势的结束。
因此,在一些实施例中,手被认为是正在执行拖动手势,所述手势开始于显示从第一张开手势34到捏合手势36的转换结束的帧,并结束于显示从捏合手势36到第二张开手势34的转换结束的帧。在多个输入帧上执行动态拖动手势的这种检测,如上述方法700的步骤706所述。
在其它实施例中,单个静态手势可以触发手势控制设备100以进入拖动状态,并且当手不再执行所述静态手势时,所述拖动状态结束。因此,例如,识别到捏合手势36可以使所述设备进入拖动状态,而无论捏合手势36是否在张开手势34之前。在一些此类实施例中,如果以特定方式执行所述静态手势,例如在帧的特定区域内或保持特定时间段,则所述设备可以仅进入所述拖动状态。在使用静态手势触发拖动状态的实施例中,可以视为在手正在执行指定的静态手势的任何帧内执行拖动手势。
对于涉及位置变化的动态手势,所述手势识别子系统520可以根据物理定律和/或预期的人运动实现预定义规则,以进一步排除可能的误报。例如,预定义规则可以是,检测到的手在连续输入帧之间的位置变化不应大于预定义阈值(例如超过100像素的变化)。
使用基于状态的手势识别比基于运动的手势分割和识别更有利。例如,与检测静态手势相比,检测和处理手势运动需要更多处理资源。此外,基于状态的手势识别可能不容易出现误报。
用于调整基于速度的控制显示增益的示例性方法
参考图9,其中示出了用于调整手势控制设备100的控制显示增益的基于速度的方法300。方法300可以通过调整手势控制设备100的控制显示增益,促进用户与呈现在手势控制电子设备100的显示屏104上的内容或UI元素的交互。方法300可以在由处理器202执行的软件(即,存储在存储器208中的指令)中实现。在一些实施例中,如下所述,方法300由手势感应系统500执行。方法300可以包括比所示出和描述的更多或更少的操作,并且可以按不同的顺序执行。当由手势控制设备100的处理器202执行时,实现方法300的所述软件的计算机可读代码或指令可以存储在存储器208或处理器可读介质中。应当理解的是,本文可以参考手势的各种属性(例如,手势的位置、速度或方向),并且这些参考应与参考执行该手势的手的属性具有相同的含义。
方法300开始于步骤302。在步骤302中,手势感应系统500接收数码相机102捕获的视频帧。然后方法300进入步骤304。在304中,处理接收的帧(例如,由手势感应系统500处理),以识别帧内用户的手正在执行的手势并对其进行分类。在一些示例中,可以由手势感应系统500通过以下方式执行步骤304:根据手部检测和跟踪方法600检测和跟踪手,接着根据手势分类方法700识别手势并对手势进行分类。在该示例中,在步骤304中识别的手势是由手势控制设备100的用户在当前帧内执行的静态手势,即,在当前帧内执行并且在当前帧之前的N个先前帧中的至少K个帧内执行的静态手形。
在步骤307中,手势感应系统500确定手势控制设备100是否处于拖动状态,如上文结合图8所描述的。如果在步骤307中,手势感应系统500确定手势控制设备100处于拖动状态(例如,水平拖动814或垂直拖动812),则方法300进入步骤312。如果在步骤307中,处理器202确定手势控制设备100不处于拖动状态,则方法300进入步骤309。
在步骤308中,手势分类子系统520确定是否已执行“进入拖动状态”手势。在该示例中,如上文描述的图8所示,可以通过执行张开手势34,随后执行捏合手势36,来进入拖动状态。因此,在该示例中,由张开手势34到捏合手势36组成的动态手势构成“进入拖动状态”手势。应当理解的是,在不同的实施例中,可以将其它静态或动态手势识别为“进入拖动状态”手势。如果在步骤308中,手势分类子系统520确定已执行“进入拖动状态”手势,则方法300进入步骤312。如果在步骤308中,手势分类子系统520确定未执行“进入拖动状态”手势,则方法300进入步骤310。
在步骤312中,手势控制设备100进入拖动状态。然后方法300进入步骤316。
在步骤316中,初始化大小为k的位置队列。然后,方法300返回到步骤302,在该步骤中,接收数码相机102捕获的视频的后续帧,并对所述后续帧执行步骤304。
在步骤318中,确定所识别的拖动手势在帧内的位置,并将检测到的拖动手势的位置存储在大小为k的位置队列中。然后,方法300返回到步骤302以接收下一帧。
在步骤309中,手势分类子系统520确定是否已执行“退出拖动状态”手势。在该示例中,如上文描述的图8所示,可以通过执行捏合手势36(即,在拖动状态下执行的手势),随后执行张开手势34,来退出手势控制设备100的当前拖动状态。因此,在该示例中,由捏合手势36到张开手势34组成的动态手势构成“退出拖动状态”手势。应当理解的是,在不同的实施例中,可以将其它静态或动态手势识别为“退出拖动状态”手势。如果在步骤309中,手势分类子系统520确定已执行“退出拖动状态”手势,则方法300进入步骤314。如果在步骤309中,手势分类子系统520确定未执行“退出拖动状态”手势,则方法300进入步骤320。
因此,在该示例中,执行隔空手势的手由手势感应系统500确定为执行拖动手势,该手势以完成从第一张开手势34到捏合手势36的转换的帧开始,并以完成从捏合手势36到第二张开手势34的转换的帧结束。
在步骤314中,手势控制设备100退出拖动状态。然后,方法300返回到步骤302,以接收数码相机102捕获的下一视频帧。
在步骤320中,确定检测到的所识别拖动手势在帧内的位置,并将检测到的拖动手势的位置存储在大小为k的队列中。然后方法300进入步骤322。在步骤322中,根据存储在位置队列中的检测到的手势的每个位置来确定检测到的手势的速度(v)。然后方法300进入步骤324。
使用存储在队列中的拖动手势的多个位置来确定拖动手势的速度。该计算可以由控制显示增益子系统570等来执行。在一个实施例中,可以使用公式=来确定拖动手势的速度v,其中,p1是在时间t1时存储在队列中的拖动手势的第一位置,p2是在时间t2时存储在队列中的拖动手势的第二位置,t是在t1和t2时数码相机102捕获的两个相邻帧之间的时间(即,t取决于数码相机102用于捕获执行隔空手势的用户的图像的帧速率)。在另一个实施例中,可以使用公式=来确定拖动手势的速度v,其中,p1是在时间t1时存储在队列中的拖动手势的第一位置,p3是在时间t3时存储在队列中的拖动手势的第三位置,2t是在时间t1和t3时数码相机102捕获的帧之间的时间(即,t1和t3时的帧被t2时的中间帧分开)。可以使用任何类似的平滑函数在任何两个或两个以上输入帧之间插入手速度。
在又一个实施例中,可以通过以下方式确定拖动手势的速度v:使用公式和确定拖动手势的两个速度v1和v2,并对v1和v2求平均值以得到v;其中,p1是在时间t1时存储在队列中的拖动手势的第一位置,p2是在时间t2时存储在队列中的拖动手势的第二位置,p3是在时间t3时存储在队列中的拖动手势的第三位置,t是数码相机102捕获的两个帧之间的时间。
在一些实施例中,可以将所述确定的速度从矢量值(即,速度的大小和方向)扁平化为标量速度值。在一些实施例中,速度值是速度矢量的大小。在其它实施例中,速度值是相对于拖动手势的预定义方向或轴来确定的。例如,如果正在执行的拖动手势涉及手的水平拖动运动,则可以将用户的手速度计算为手速度矢量在水平拖动轴上的标量投影。因此,如果用户的手在与水平方向成角度Θ的方向上移动,则在步骤322中计算的速度值等于手速度乘以|cosΘ|。本文中使用涉及速度(或v)的标量值的计算应理解为使用按照上文所述直接计算的标量速度值。
在步骤324中,控制显示增益子系统570确定手势控制设备100的CD增益。在步骤324中使用线性函数确定CD增益。在该实施例中,CD增益=f(v)=c×|v|,其中,c是预定义常数,v是在步骤324中确定的所识别手势的确定速度。所述预定义常数是使用与拖动手势相关的多个不同参数来定义的,包括精度、执行拖动手势所用的时间、拖动控制效率等。
可替代地,在步骤324中使用广义逻辑函数确定CD增益。在该实施例中, 其中,K是CD增益的最大值,B是逻辑增长率,W影响CD增益值在函数f(v)的下界或上界附近的增长,A决定速度增益的下界,Q取决于f(v=0)的值,M表示CD增益增长的起始速度,C影响CD增益的曲线强度,通常设置为1。在步骤324中确定CD增益之后,方法300进入步骤326。在步骤326中,CD增益子系统570将手势控制设备100的CD增益调整为在步骤324中确定的CD增益,并且使用调整后的CD增益控制在手势控制设备100的显示屏104上呈现的指针、光标或进度条。在一些实施例中,可以向手势控制设备100的用户呈现视觉、听觉或其它形式的反馈,以指示CD增益调整或当前CD增益水平。下文将结合图11至图14描述反馈的示例。
因此,方法300根据用户执行的拖动手势的确定速度来自动调整CD增益。手势控制设备100的用户执行拖动手势的速度越快,用于控制在手势控制设备100的显示屏104上呈现的内容或UI元素(例如,控件)的CD增益就越粗糙。此外,方法300通过避免手势控制设备100的用户必须浏览多个菜单来调整手势控制设备100的CD增益,来简化手势控制设备100的CD增益的调整。在一些实施例中,控制显示增益子系统570在步骤324中确定CD增益的值,并且控制显示增益子系统570将手势控制设备100的CD增益调整为在步骤中324确定的CD增益的值。
应当理解的是,图9中所示的方法300的步骤可以潜在地通过用于根据执行拖动手势的手的属性来调整手势控制设备100的控制显示增益的多种变体方法来执行,其中,所述属性可以包括手速度、手位置、手方向或其它属性。在一些实施例中,这些方法可以:使用手势感应系统500来处理帧以检测帧内手的位置和手形;根据手的位置和手形,生成帧的手势数据;根据帧的手势数据和一个或多个先前帧的手势数据,确定手正在执行手势;确定手势是拖动手势(如在步骤304中);处理帧以检测帧内的隔空手势(如在步骤304中);确定隔空手势是拖动手势(如在步骤306中);识别执行拖动手势的手的属性(其可以根据具体实施例或示例而有所不同);将手势控制设备100的控制显示增益调整为根据所识别的属性确定的控制显示增益(如在步骤324或其变体中)。
图10A示出了当CD增益设置为恒定值时CD增益1020与拖动手势的速度1022的关系的第一曲线图1000。曲线图1000示出了三个恒定CD增益水平:第一CD增益水平1010,指示高CD增益;第二CD增益水平1012,指示中等CD增益;第三CD增益水平1014,指示低CD增益。三个增益水平(1010、1012、1014)可以对应于三个CD增益水平设置,手势控制设备100可以使用下文结合图11至图14描述的其它技术中的一种或多种在这些设置之间切换。
图10B示出了当在步骤324中使用如上所述的线性函数确定CD增益时CD增益1020与拖动手势的速度1022的关系的第二曲线图1030。曲线图1030示出了三个线性CD增益函数:第一CD增益函数1032,指示预定义常数c的高值;第二CD增益函数1034,指示预定义常数c的中值;第三CD增益函数1036,指示预定义常数c的低值。三个函数(1032、1034、1036)可以对应于三个CD增益水平设置,手势控制设备100可以使用下文结合图11至图14描述的其它技术中的一种或多种在这些设置之间切换。通过这种方式,方法300的基于速度的CD增益水平调整可以与下文描述的用于根据执行拖动手势的手的位置、方向或暂停行为来调整CD增益的方法中的一种或多种相结合。
图10C示出了当在步骤324中使用如上所述的广义逻辑函数确定CD增益时CD增益1020与拖动手势的速度1022的关系的第三曲线图1060。曲线图1030示出了四个广义逻辑CD增益函数:第一CD增益函数1062,指示下表1中列出的逻辑函数变量的第一组值;第二CD增益函数1064,指示逻辑函数变量的第二组值;第三CD增益函数1066,指示逻辑函数变量的第三组值;第四CD增益函数1068,指示逻辑函数变量的第四组值。
表1
<u>函数</u> | <u>A</u> | <u>K</u> | <u>B</u> | <u>V</u> | <u>Q</u> | <u>C</u> | <u>M</u> |
1062 | 0.1 | 10 | 0.3 | 0.05 | 0.1 | 1 | 3.5 |
1064 | 0.1 | 8 | 0.3 | 0.05 | 0.1 | 1 | 3.5 |
1066 | 0.1 | 8 | 0.2 | 0.05 | 0.3 | 1 | 0 |
1068 | 0.1 | 7 | 0.2 | 0.05 | 0.1 | 1 | 6 |
四个函数(1062、1064、1066、1068)指示从平滑(1066和1068)到陡峭(1062和1064)CD增益水平。根据用户测试,在进行细粒度移动时,前两个陡峭函数(1062和1064)往往会被认为太慢,而在进行粗粒度移动时则会被认为过于跳跃。因此,后两个平滑函数(1066和1068)可以优选地用于实现粗粒度和细粒度手势控制之间的可用自动调整。
四个函数(1062、1064、1066、1068)可以对应于四个CD增益水平设置,手势控制设备100可以使用下文结合图11至图14描述的其它技术中的一种或多种在这些设置之间切换。通过这种方式,方法300的基于速度的CD增益水平调整可以与下文描述的用于根据执行拖动手势的手的位置、方向或暂停行为来调整CD增益的方法中的一种或多种相结合。
用于调整基于位置的控制显示增益的示例性方法
在一些实施例中,可以根据执行隔空手势的手的位置来调整手势控制设备100的CD增益。因此,在这些示例性实施例中,执行用于调整CD增益的拖动手势的手的属性是执行由手势控制设备100的数码相机102捕获的隔空手势的用户的视频帧内的隔空手势的位置。
一些实施例使用帧内的手的垂直位置来确定CD增益。其它实施例使用帧内的手的水平位置。其它实施例可以使用其它位置标准来确定CD增益,例如识别提示用户将手移动到其中以实现CD增益调整的帧的区域。
在使用拖动手势(例如动态“缩放-拖动-释放”手势)来实现上文结合图8所述的水平拖动状态814或垂直拖动状态812的示例中,拖动运动的方向或轴可以与用于确定手位置的方向或轴正交(即垂直),以调整CD增益。因此,例如,如果手势控制设备100响应于用户发起拖动手势而进入“水平拖动”状态(即,确定拖动方向的第一轴是水平的),则控制显示增益子系统570可以根据执行拖动手势的手的垂直位置来调整CD增益(即,确定CD增益调整的第二轴是垂直的)。类似地,如果手势控制设备100响应于用户发起拖动手势而进入垂直拖动状态812,则控制显示增益子系统570可以根据执行拖动手势的手的水平位置来调整CD增益。调整CD增益后,拖动手势相对于第一轴的移动就被转换为通过根据手相对于第二轴的位置应用调整后的CD增益进行的手势控制设备100的屏幕上的移动和控制。因此,在一些示例中,当手势控制设备处于拖动状态时,手部检测和跟踪子系统516将拖动手势的位置存储在包括拖动手势的多个位置的队列中。然后,手部检测和跟踪子系统516根据存储在队列中的拖动手势的位置,确定拖动手势相对于第一轴(例如,水平轴)的移动。然后,控制显示增益子系统570将控制显示增益应用到移动以生成拖动控制输出值,其中,根据隔空手势相对于与第一轴正交(例如,垂直)的第二轴的位置确定控制显示增益。
下文描述的示例将手高度(即,帧内的垂直位置)称为用于调整CD增益的位置尺寸。应当理解的是,下文描述的任何示例可以同样地应用于使用不同的位置尺寸或值(例如水平位置、相对于相机102的深度、区域内的位置等)的实施例。
示例性实施例将被描述通过更改CD增益设置来调整CD增益。应当理解的是,“CD增益设置”是指手势控制设备100的CD增益的值、水平、函数或配置,例如图10A所示的CD增益水平中的一个或图10B至图10C所示的CD增益函数中的一个。
在一些实施例中,可以将CD增益调整为从一组离散CD增益设置中选择的设置,例如图10A所示的三个水平(1010、1012、1014)中的一个,图10B所示的三个函数(1032、1034、1036)中的一个,或图10C所示的四个函数(1062、1064、1066、1068)中的一个。可以根据检测帧的多个离散区域中的一个离散区域内的手的位置来确定离散CD增益设置。在一些此类实施例中,通过确定隔空手势位于帧的第一区域内来识别隔空手势的位置,并且将控制显示增益调整为与第一区域对应的第一控制显示增益。例如,可以将帧分成垂直堆叠在一起的三个水平区域(即频带),所述三个水平区域对应于指示高CD增益的较高高度、指示中等CD增益的中等高度以及指示低CD增益的较低高度。当手势感应系统500在水平区域中的一个区域内检测到拖动手势时,CD增益子系统570选择并应用相应的CD增益设置。例如,在低高度区域内检测到拖动手势可以使得将CD增益调整为图10A所示的第一水平1010或10B所示的第一函数1032,以此类推。
在其它实施例中,可以根据手的连续位置值将CD增益调整为从连续设置范围中选择的设置。例如,可以通过手部检测和跟踪子系统516检测帧内的手的连续高度值,从而使CD增益子系统570根据连续高度值计算连续CD增益设置。连续CD增益设置的示例包括CD增益水平的连续范围(如图10A中所示)和CD增益函数参数的连续值(例如图10B中所示的常数或图10C中所示的参数K、B、W、A、Q、M和/或C)。
一些实施例可以将手高度确定为相对于参考高度水平的相对手高度,例如手的起始位置(例如,当开始拖动手势且手势控制设备100进入拖动状态时)。其它实施例可以将手高度确定为相对于绝对参考点(例如,在视频帧内可见的用户身体的一部分)的绝对手高度。
图11示出了用于调整手势控制设备100的控制显示增益的基于位置的方法1100。在该方法1100中,使用执行拖动手势的手的帧内的垂直高度来调整CD增益,并且当手势控制设备100进入拖动状态时,将手高度确定为参考初始手高度的相对手高度。应当理解的是,方法1100中描述的步骤可以应用于基于手位置调整CD增益的其它方法。
方法1100中的各个步骤通过与图9所示基于速度的方法300的步骤相同的附图标记进行标识。方法1100的这些步骤与该等步骤操作相同或类似,这里不再赘述。
在1116中,响应于确定手势控制设备100已进入拖动状态(在步骤312中),CD增益子系统570设置参考手高度h0。将h0的值设置为等于在帧内执行拖动手势的手的当前高度(例如,由手部检测和跟踪子系统516确定),并存储h0的值(例如,存储在存储器208中)。该方法1100中使用的高度值可以根据帧内的手或手边界框的像素位置来确定,这些值可以根据从帧内的其它视觉线索推断的实际高度值来确定,也可以根据其它标准来确定。在步骤1116之后,方法1100返回到步骤302以接收下一视频帧。
在1118中,响应于确定手势控制设备100未退出拖动状态(在步骤314中),CD增益子系统570确定当前手高度h等于在帧内执行拖动手势的手的当前高度(例如,由手部检测和跟踪子系统516确定)。然后方法1100进入步骤1120。
在1120中,将手势控制设备100的CD增益调整为新CD增益设置。新CD增益设置是参考手高度h0和当前手高度h的函数f(h0,h)。可以在不同的实施例中使用各种函数来将手高度变化映射到新CD增益设置。
在一些实施例中,使用指数函数,其中,根据手高度变化的指数函数来确定新CD增益设置。例如,在使用上述CD增益水平的连续范围或CD增益函数的连续参数的实施例中,可以将新CD增益设置的CD增益水平或CD增益函数参数值确定为其中,c和b是常数。在使用离散CD增益设置的实施例中,可以根据上述计算的函数从多个设置中选择新设置:例如,如果计算的函数高于阈值,则可以选择第一CD增益设置,否则可以选择第二CD增益设置。
在其它实施例中,使用线性函数来将手高度差映射到新CD增益设置。在一些此类实施例中,可以将函数定义为f(h0,h)=c×(b+h-h0)。可以如上所述确定连续和离散CD增益设置。
在这些示例中,可以设置c和b等参数值,使得对于较低的手位置,CD增益达到0。
在1126中,如在方法300的步骤326中一样,CD增益子系统570将手势控制设备100的CD增益调整为在步骤1120中确定的CD增益。使用调整后的CD增益控制在手势控制设备100的显示屏104上呈现的指针、光标或进度条。
在一些实施例中,还可以在步骤1126中向手势控制设备100的用户提供指示CD增益调整或当前CD增益设置的反馈。可以使用用户反馈子系统562通过显示屏104向用户呈现视觉反馈。此外,可以使用与手势控制设备100的I/O接口204通信的输出设备(例如,扬声器)向用户呈现听觉反馈和/或其它形式的反馈。
反馈的目的是使得手势控制设备100的用户能够看见或以其它方式察觉CD增益变化,从而使用户知道每个时刻的CD增益水平。视觉反馈可以包括控制对象的颜色出现变化(例如,随着CD增益从低设置调整到高设置时,进度条从蓝色变为绿色);控制对象的形状或厚度(例如,进度条宽度)出现变化;和/或控制对象之上或附近显示CD增益标度(例如,当前CD增益或CD增益变化的图形或文本指示)。听觉反馈可以包括每当CD增益水平变化时播放声音;以按CD增益水平标度的重复率反复播放声音(例如,当手势控制设备100处于高CD增益水平时,在每个标度1移动时播放滴答声,而当手势控制设备100处于低CD增益水平时,在每个标度10移动时播放相同的声音,使得对于相同的移动量,用户在高CD增益水平时比在低CD增益水平时听到多10倍的滴答声)。
用于调整基于方向的控制显示增益的示例性方法
在一些实施例中,可以根据执行隔空手势的手的方向来调整手势控制设备100的CD增益。因此,在这些示例性实施例中,执行用于调整CD增益的拖动手势的手的属性是执行隔空手势的手相对于参考方向的方向。
一些实施例使用手相对于参考方向的角度来确定CD增益。例如,可以根据手指指向(即,方向)朝上的第一方向和手指指向朝下的第二方向之间的手的角度来调整CD增益。可以相对于参考方向(例如手指水平指向的固定水平手方向,或者当手势控制设备100进入拖动状态时由手的方向定义的参考方向)来确定手的角度。可以相对于垂直平面(例如下文结合图12描述的垂直X-Y平面)测量手的角度。其它实施例可以使用其它手方向标准来确定CD增益,例如围绕垂直轴或围绕从相机102向外伸出的轴的径向角。
如在基于位置的方法1100中一样,一些实施例可以通过从一组离散设置中选择新CD增益设置来调整CD增益。在一些实施例中,通过确定隔空手势位于第一位置和第二位置之间的多个旋转范围中的第一旋转范围内来识别隔空手势的方向,并且控制显示增益(即新CD增益设置)是与第一旋转范围对应的第一控制显示增益。其它实施例可以从连续的值范围中选择新CD增益设置。
图12示出了执行“捏合”手势36的手的示例性手方向。在第一位置1202处,手指指向朝上,接近由与X-Y平面内接的180度弧线1212定义的水平90度向上位置1214。在中间位置1204处,手指指向朝右,接近由弧线1212定义的0度水平位置1216。在第二位置1206处,手指指向朝下,接近由弧线1212定义的负90度向下位置1218。
在一些实施例中,手势识别子系统522和/或CD增益子系统570可以确定拖动手势的方向,并根据第一方向1202和第二方向1206之间的旋转角度来确定新的连续CD增益设置。在其它实施例中,根据手的角度位于多个弧线或角度范围中的一个范围内,从一组离散设置中选择新CD增益设置,例如,如果弧线1212内的角度在90度和45度之间,则选择低CD增益设置,如果弧线1212内的角度在45度和负45度之间,则选择中等CD增益设置,如果弧线1212内的角度在负45度和负90度之间,则选择高CD增益设置。
在其它实施例中,用户将角度保持在水平线之上或之下的时间越长,CD增益水平会增加或减小。因此,将手保持在第二位置1206时,CD增益可以随时间增加,然后一旦用户将手返回到中间位置1204,CD增益就保持不变。类似地,为了将CD增益返回到原始水平,将手保持在第一位置1202时,CD增益可以随时间减小,然后一旦用户将手返回到中间位置1204,CD增益就保持不变。
应当理解的是,其中示出图12所示的手位置的垂直X-Y平面可以是视频帧的平面,或者可以是由手部检测和跟踪子系统516或手势识别子系统522根据检测到的手或手腕方向推断的3D空间中的平面。因此,在一些实施例中,即使相机102从不同方向(例如从图12的右侧)观察手,也可以确定捏合手势36的手角度。
图13示出了用于调整手势控制设备100的控制显示增益的基于方向的方法1300。在该方法1300中,如下所述,使用执行拖动手势的手的方向来调整CD增益,并且参考图12所示的第一方向(例如,90度位置1214)和第二方向(例如,负90度位置1218)之间的角度来描述手方向。应当理解的是,方法1300中描述的步骤可以应用于基于手方向调整CD增益的其它方法。
方法1300中的各个步骤通过与图9所示基于速度的方法300的步骤相同的附图标记进行标识。方法1300的这些步骤与该等步骤操作相同或类似,这里不再赘述。
在1316中,响应于确定手势控制设备100已进入拖动状态(在步骤312中),CD增益子系统570设置参考手方向角度Θ0。将参考手方向角Θ0设置为等于当前手方向角度。例如,在使用捏合手势36作为拖动手势的实施例中,当前手方向角度是图12所示捏合手势36的手指的方向角度,由弧线1212定义并在90度和–90度之间变化。在步骤1316之后,方法1300返回到步骤302以接收下一视频帧。
在1318中,响应于确定手势控制设备100未退出拖动状态(在步骤314中),手势识别子系统522和/或CD增益子系统570通过确定视频帧内执行拖动手势的手的方向角度,来确定当前手方向角度。在步骤1318之后,方法1300进入步骤1320。
在1320中,将手势控制设备100的CD增益调整为新CD增益设置。新CD增益设置是参考手方向角度Θ0和当前手方向角Θ的函数f(Θ0,Θ)。在不同的实施例中,可以使用各种函数将手方向角度变化映射到新CD增益设置,例如上文结合图11描述的线性或指数映射函数。
在1326中,如在方法300的步骤326中一样,CD增益子系统570将手势控制设备100的CD增益调整为在步骤1320中确定的CD增益。使用调整后的CD增益控制在手势控制设备100的显示屏104上呈现的指针、光标或进度条。一些实施例还可以在步骤1326中向用户呈现反馈,如上文结合图11的步骤1126所描述的。
用于调整基于暂停的控制显示增益的示例性方法
虽然上文将基于速度的方法300描述为一种用于根据执行隔空手势的手速度的函数来调整手势控制设备100的CD增益的方法,但是也可以结合上述各种方法或代替上述各种方法来采用其它基于速度的CD增益调整方法。现在将描述用于调整CD增益的基于暂停的示例性方法,该方法检测执行隔空手势的手的移动中的暂停并在检测到这种暂停时调整CD增益。因此,在这些示例性实施例中,执行用于调整CD增益的拖动手势的手的属性是执行拖动手势的手的速度,特别是检测到手的速度已在至少一段时间阈值内保持在速度阈值以下。
因此,在这些示例性实施例中,可以通过以下步骤识别隔空手势的速度:确定拖动手势的位置;当手势控制设备处于拖动状态时,将拖动手势的位置存储在包括拖动手势的一个或多个位置的队列中;根据存储在队列中的拖动手势的一个或多个位置,确定拖动手势的速度。可以响应于确定速度低于速度阈值已至少达到停留时间阈值,并且手势控制设备处于多个控制显示增益状态中的第一控制显示增益状态,来调整CD增益。触发CD增益调整后,则将手势控制设备置于多个控制显示增益状态中的第二控制显示增益状态,并将控制显示增益调整为与第二控制显示增益对应的控制显示增益。
在这些实施例中,手的拖动运动中的暂停触发CD增益的调整。在一些实施例中,在检测到手的移动中的暂停时,在两个或两个以上离散CD增益设置之间切换,例如,在高CD增益设置和低CD增益设置之间切换。其它实施例可以响应于检测到暂停而触发不同的CD增益调整,例如增大或减小暂停持续时间更长的连续CD增益设置。应当理解的是,可以修改下文描述的方法以适应响应于检测到暂停的不同CD增益调整。
拖动手势的拖动运动中的暂停可以称为停留。预定义的停留时间阈值可以用作将CD增益调整为新CD增益设置的信号。手势控制设备100将保持新CD增益设置,直到用户再次停留并且CD增益设置恢复到初始设置。
图14示出了用于调整手势控制设备100的控制显示增益的基于暂停的方法1400。在该方法1400中,如下所述,使用执行拖动手势的手的移动中的暂停来调整CD增益,其中,暂停被定义为至少时间阈值T的时间段,在该时间段内手速度不会升高到速度阈值ε/Δt以上(其中,ε是恒定距离,Δt是两个连续接收的视频帧之间的时间)。应当理解的是,方法1400中描述的步骤可以应用于基于暂停行为调整CD增益的其它方法。
方法1400中的各个步骤通过与图9所示基于速度的方法300的步骤相同的附图标记进行标识。方法1400的这些步骤与该等步骤操作相同或类似,这里不再赘述。
在1416中,响应于确定手势控制设备100已进入拖动状态(在步骤312中),CD增益子系统570将CD增益设置为默认初始设置,将手位置参考x0设置为当前手位置(例如,由手部检测和跟踪子系统516检测到的手位置),并将停留时间值t设置为t=0。通过将CD增益设置为默认初始设置,这意味着每次发起新的拖动手势,拖动状态都会以默认CD增益水平开始。在步骤1416之后,方法1400返回到步骤302以接收下一帧。
在1418中,响应于确定手势控制设备100未退出拖动状态(在步骤314中),手部检测和跟踪子系统516确定当前手位置x1,并且将停留时间值t增加到t=t+Δt,其中,Δt是两个连续接收的帧之间的时间。在步骤1418之后,方法1400进入步骤1420。
在1420中,CD增益子系统570计算手在帧之间移动的距离,并将此计算得出的距离|x1-x0|与距离阈值ε进行比较。如果|x1-x0|>ε,这表示手在最后一帧内(即,在时间段Δt内)移动的速度快于速度阈值ε/Δt,则方法1400进入步骤1426。如果|x1-x0|≤ε,这表示手的稳定行为暂停,则方法1400进入步骤1422。
可以根据帧速率(其确定Δt)以及根据执行拖动手势时用户的手移动的预期速度来选择常数值ε。通常选择非常小的ε值来防止用户缓慢移动拖动手势但不打算暂停时意外发生CD增益变化。
在1426中,响应于检测到手的移动速度快于速度阈值,CD增益子系统570将停留时间值t重置为t=0,将参考手位置x0重置为当前手位置值x1,并进入步骤1434。
在1422中,CD增益子系统570将停留时间值t与停留时间阈值T进行比较。如果t<T,表明手没有停留足够长的时间以指示有意暂停,则方法1400返回到步骤302以接收下一帧。如果t≥T,表明手已停留足够长的时间以指示有意暂停,则方法1400进入步骤1424。
在1424中,响应于检测到有意暂停(即,暂停时间比停留阈值T长),CD增益子系统570将停留时间值t重置为t=0,将参考手位置x0重置为当前手位置值x1,并进入步骤1428。
在一些实施例中,默认初始CD增益是中等CD增益设置,由暂停触发的新CD增益设置是能实现细粒度控制的低CD增益设置(也称为“精确模式”)。第二次暂停会恢复到初始默认中等CD增益设置。
因此,在1428中,CD增益子系统570响应于检测到的暂停而触发CD增益变化。如果当前CD增益设置是精确CD增益模式(即,低CD增益水平或能够实现细粒度控制的函数),则方法进入步骤1432,以将手势控制设备100恢复到初始默认CD增益设置。如果当前CD增益设置不是精确CD增益模式(即,当前CD增益设置是初始默认CD增益设置),则方法进入步骤1430,以将手势控制设备100置于新的低CD增益设置(即,精确模式)。应当理解的是,其它实施例可以针对步骤1430和1432使用不同的CD增益设置。
在步骤1430或1432中改变CD增益设置之后,方法1400返回到步骤302以接收下一帧。
尽管上文将CD增益调整(300、1100、1300、1400)的每种方法描述为独立的CD增益调整方法,但应当理解的是,一些实施例可以组合使用所述方法中的两种或多种,或者可以在不同的环境中使用所述方法的不同变体或不同组合。例如,手势控制设备可以具有使用垂直拖动手势的音频音量控制过程和使用水平拖动手势的视频清理过程。在第一个实施例中,音频音量控制过程可以使用具有用于广义逻辑函数的第一组参数的基于速度的方法300,视频清理过程可以使用具有用于广义逻辑函数的第二组参数的基于速度的方法300。在第二个实施例中,音频音量控制过程可以使用基于速度的方法300,视频清理过程可以使用基于方向的方法1300。在第三个实施例中,音频音量控制过程可以使用基于速度的方法300,其中,根据基于位置的方法1100选择不同的广义逻辑函数(1062、1064、1066、1068)。在第四个实施例中,音频音量控制过程可以结合使用基于位置的方法1100和基于方向的方法1300,使得手位置或手方向或位置和方向的某种加权组合可以用于调整CD增益。在第五个实施例中,音频音量控制过程可以结合使用基于方向的方法1300和基于暂停的方法1400,使得超过停留阈值的暂停触发CD增益调整状态,在该状态期间用户可以改变手的方向来触发CD增益变化;当手参与拖动运动时,手势的方向被忽略。在第六个实施例中,音频音量控制过程可以结合使用基于位置的方法1100和基于暂停的方法1400,使得超过停留阈值的暂停触发CD增益调整状态,在该状态期间用户可以改变手的位置(例如,与垂直拖动运动正交的水平位置)来触发CD增益变化;当手参与拖动运动时,为了改变CD增益,手势的(例如,水平的)位置被忽略。应当理解的是,可以使用其它组合或变体。
总述
尽管本发明利用呈某种顺序的步骤描述方法和过程,但所述方法和过程的一个或多个步骤可视情况省略或更改。一个或多个步骤视情况可以按除了所描述顺序以外的顺序进行。
尽管就方法而言至少部分地描述了本发明,但本领域普通技术人员将理解,本发明还涉及用于执行所描述的方法的至少一些方面和特征的各种组件,无论是通过硬件组件、软件或两者的任何组合。因此,本发明的技术方案可以以软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其它类似的非易失性或非瞬时性计算机可读介质中,包括DVD、CD-ROM、USB闪存盘、移动硬盘或其它存储介质等。所述软件产品包括有形地存储在其上的指令,这些指令使处理设备(例如,个人计算机、服务器或网络设备)能够执行本文中所公开的方法示例。
本发明可以在不脱离权利要求书的主题的情况下以其它特定形式体现。所描述的示例性实施例在所有方面均被视为仅是说明性的而非限制性的。可以对上述一个或多个实施例中的选定特征进行组合,以创建未明确描述的替代实施例,适合此类组合的特征均理解为落入本发明的范围内。
还公开了所公开范围内的所有值和子范围。此外,虽然本文所公开和示出的系统、设备和过程可以包括特定数量的元件/组件,但是可以修改这些系统、设备和组件以包括更多或更少此类元件/组件。例如,虽然所公开的任何元件/组件可以为单个数量,但是可以修改本文所公开的实施例以包括多个此类元件/组件。本文所述的主题意在涵盖和包括技术上的所有合适更改。
Claims (29)
1.一种用于调整手势控制设备的控制显示增益的方法,其特征在于,所述方法包括:
处理帧以检测所述帧内手的位置和手形;
根据所述手的所述位置和手形,生成所述帧的手势数据;
根据所述帧的手势数据和一个或多个先前帧的手势数据,确定所述手正在执行拖动手势;
识别执行所述拖动手势的所述手的属性;
将所述手势控制设备的控制显示增益调整为根据所述识别的属性确定的控制显示增益。
2.根据权利要求1所述的方法,其特征在于,所述属性是所述手的所述位置。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;
根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手相对于第一轴的移动;
将所述控制显示增益应用于所述移动,以生成拖动控制输出值,
其中,根据所述手相对于与所述第一轴正交的第二轴的位置,确定所述控制显示增益。
4.根据权利要求1至3中任一项所述的方法,其特征在于:
识别所述手的所述位置包括:确定所述手位于所述帧的第一区域内;
所述控制显示增益是与所述第一区域对应的第一控制显示增益。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述属性是所述手相对于参考方向的方向。
6.根据权利要求5所述的方法,其特征在于,所述手的所述方向包括所述手相对于所述参考方向的角度。
7.根据权利要求6所述的方法,其特征在于,所述手的所述角度是相对于垂直平面测量的。
8.根据权利要求6或7所述的方法,其特征在于:
识别所述手的所述方向包括:确定所述手的所述角度位于在第一角度与第二角度之间限定的第一角度范围内;
调整所述控制显示增益包括:将所述控制显示增益调整为与所述第一角度范围对应的第一控制显示增益。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述属性是所述手的速度。
10.根据权利要求9所述的方法,其特征在于:
识别所述手的所述速度包括:
确定所述手的位置;
当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;
根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手的所述速度;调整所述控制显示包括:
响应于确定所述速度低于速度阈值已至少达到停留时间阈值,并且所述手势控制设备处于多个控制显示增益状态中的第一控制显示增益状态:
将所述手势控制设备置于所述多个控制显示增益状态中的第二控制显示增益状态;
将所述控制显示增益调整为与所述第二控制显示增益状态对应的控制显示增益。
11.根据权利要求9所述的方法,其特征在于:
识别所述手的所述速度包括:
确定所述手的位置;
当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;
根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手的所述速度;
所述控制显示增益是根据与所述手的所述速度相关的函数确定的。
12.根据权利要求10或11所述的方法,其特征在于,与所述速度相关的所述函数是线性函数。
13.根据权利要求10或11所述的方法,其特征在于,与所述速度相关的所述函数是广义逻辑函数。
14.一种手势控制设备,其特征在于,所述设备包括:
处理器设备;
存储器,其上存储有机器可执行指令,所述机器可执行指令当由所述处理设备执行时,使所述手势控制设备:
处理帧以检测所述帧内手的位置和手形;
根据所述手的所述位置和手形,生成所述帧的手势数据;
根据所述帧的手势数据和一个或多个先前帧的手势数据,确定所述手正在执行拖动手势;
识别执行所述拖动手势的所述手势控制设备的用户的手的属性;
将所述手势控制设备的控制显示增益调整为根据所述识别的属性确定的控制显示增益。
15.根据权利要求14所述的手势控制设备,其特征在于,所述属性是所述手的所述位置。
16.根据权利要求14或15所述的手势控制设备,其特征在于,所述方法还包括:
当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;
根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手相对于第一轴的移动;
将所述控制显示增益应用于所述移动,以生成拖动控制输出值,
其中,根据所述手相对于与所述第一轴正交的第二轴的位置,确定所述控制显示增益。
17.根据权利要求14至16中任一项所述的方法,其特征在于:
识别所述手的所述位置包括:确定所述手位于所述帧的第一区域内;
所述控制显示增益是与所述第一区域对应的第一控制显示增益。
18.根据权利要求14至17中任一项所述的手势控制设备,其特征在于,所述属性是所述手相对于参考方向的方向。
19.根据权利要求18所述的方法,其特征在于,所述手的所述方向包括所述手相对于所述参考方向的角度。
20.根据权利要求19所述的方法,其特征在于,所述手的所述角度是相对于垂直平面测量的。
21.根据权利要求19或20所述的方法,其特征在于:
识别所述手的所述方向包括:确定所述手的所述角度位于在第一角度与第二角度之间限定的第一角度范围内;
调整所述控制显示增益包括:将所述控制显示增益调整为与所述第一角度范围对应的第一控制显示增益。
22.根据权利要求14至21中任一项所述的手势控制设备,其特征在于,所述属性是所述手的速度。
23.根据权利要求22所述的手势控制设备,其特征在于:
识别所述手的所述速度包括:
确定所述手的位置;
当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;
根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手的所述速度;
调整所述控制显示包括:
响应于确定所述速度低于速度阈值已至少达到停留时间阈值,并且所述手势控制设备处于多个控制显示增益状态中的第一控制显示增益状态:
将所述手势控制设备置于所述多个控制显示增益状态中的第二控制显示增益状态;
将所述控制显示增益调整为与所述第二控制显示增益状态对应的控制显示增益。
24.根据权利要求22所述的手势控制设备,其特征在于:
识别所述手的所述速度包括:
确定所述手的位置;
当所述手势控制设备处于拖动状态时,将所述手的所述位置存储在包括所述手的一个或多个位置的队列中;
根据存储在所述队列中的所述手的所述一个或多个位置,确定所述手的所述速度;
所述控制显示增益是根据与所述手的所述速度相关的函数确定的。
25.根据权利要求23或24所述的设备,其特征在于,与所述速度相关的所述函数是线性函数。
26.根据权利要求23或24所述的设备,其特征在于,与所述速度相关的所述函数是广义逻辑函数。
27.一种处理器可读介质,其特征在于,其上存储有机器可执行指令,所述机器可执行指令当由手势控制设备的处理器执行时,使所述处理器设备:
处理帧以检测所述帧内执行隔空手势的手的位置和手形;
根据所述手的所述位置和手形,生成所述帧的手势数据;
根据所述帧的手势数据和一个或多个先前帧的手势数据,确定执行隔空手势的所述手正在执行拖动手势;
识别执行所述拖动手势的所述手势控制设备的用户的手的属性;
将所述手势控制设备的控制显示增益调整为根据所述识别的属性确定的控制显示增益。
28.一种处理器可读介质,其特征在于,其上存储有机器可执行指令,所述机器可执行指令当由手势控制设备的处理器执行时,使所述处理器设备执行根据权利要求2至13中任一项所述的方法的步骤。
29.一种包括指令的计算机程序,其特征在于,所述程序当由计算机执行时,使所述计算机执行根据权利要求1至13中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063015595P | 2020-04-26 | 2020-04-26 | |
US63/015,595 | 2020-04-26 | ||
US17/085,866 | 2020-10-30 | ||
US17/085,866 US11474614B2 (en) | 2020-04-26 | 2020-10-30 | Method and device for adjusting the control-display gain of a gesture controlled electronic device |
PCT/CN2021/082032 WO2021218486A1 (en) | 2020-04-26 | 2021-03-22 | Method and device for adjusting the control-display gain of a gesture controlled electronic device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115427920A true CN115427920A (zh) | 2022-12-02 |
Family
ID=78222219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180029396.0A Pending CN115427920A (zh) | 2020-04-26 | 2021-03-22 | 用于调整手势控制电子设备的控制显示增益的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11474614B2 (zh) |
EP (1) | EP4127879A4 (zh) |
JP (1) | JP2023522777A (zh) |
KR (1) | KR20230002874A (zh) |
CN (1) | CN115427920A (zh) |
BR (1) | BR112022021679A2 (zh) |
WO (1) | WO2021218486A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11474614B2 (en) * | 2020-04-26 | 2022-10-18 | Huawei Technologies Co., Ltd. | Method and device for adjusting the control-display gain of a gesture controlled electronic device |
CN112527107B (zh) * | 2020-11-30 | 2023-04-07 | 京东方科技集团股份有限公司 | 手势识别方法、装置、电子设备及存储介质 |
US11677899B2 (en) * | 2021-03-29 | 2023-06-13 | Lenovo (Singapore) Pte. Ltd. | Intelligent video source selection |
US11693482B2 (en) * | 2021-05-28 | 2023-07-04 | Huawei Technologies Co., Ltd. | Systems and methods for controlling virtual widgets in a gesture-controlled device |
US20230031200A1 (en) * | 2021-07-30 | 2023-02-02 | Jadelynn Kim Dao | Touchless, Gesture-Based Human Interface Device |
US11550406B1 (en) * | 2021-10-14 | 2023-01-10 | Autodesk, Inc. | Integration of a two-dimensional input device into a three-dimensional computing environment |
US20230135974A1 (en) * | 2021-11-04 | 2023-05-04 | Microsoft Technology Licensing, Llc | Multi-factor intention determination for augmented reality (ar) environment control |
US20230315209A1 (en) * | 2022-03-31 | 2023-10-05 | Sony Group Corporation | Gesture recognition on resource-constrained devices |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1717677B1 (en) * | 1998-01-26 | 2015-06-17 | Apple Inc. | Method and apparatus for integrating manual input |
US8479122B2 (en) * | 2004-07-30 | 2013-07-02 | Apple Inc. | Gestures for touch sensitive input devices |
US6424338B1 (en) * | 1999-09-30 | 2002-07-23 | Gateway, Inc. | Speed zone touchpad |
US7046230B2 (en) * | 2001-10-22 | 2006-05-16 | Apple Computer, Inc. | Touch pad handheld device |
US7312785B2 (en) * | 2001-10-22 | 2007-12-25 | Apple Inc. | Method and apparatus for accelerated scrolling |
US7728821B2 (en) | 2004-08-06 | 2010-06-01 | Touchtable, Inc. | Touch detecting interactive display |
KR100783552B1 (ko) * | 2006-10-11 | 2007-12-07 | 삼성전자주식회사 | 휴대 단말기의 입력 제어 방법 및 장치 |
TW201042507A (en) * | 2009-05-19 | 2010-12-01 | Pixart Imaging Inc | Interactive image system and operating method thereof |
US10088924B1 (en) * | 2011-08-04 | 2018-10-02 | Amazon Technologies, Inc. | Overcoming motion effects in gesture recognition |
US20130229345A1 (en) | 2012-03-01 | 2013-09-05 | Laura E. Day | Manual Manipulation of Onscreen Objects |
US8938124B2 (en) * | 2012-05-10 | 2015-01-20 | Pointgrab Ltd. | Computer vision based tracking of a hand |
US8904313B2 (en) * | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Gestural control for quantitative inputs |
US20140020166A1 (en) | 2012-07-17 | 2014-01-23 | Darrell Metcalf | Valve-Controllable Urinal Drain Line and Plumbing Component Rinse Management System for Very Low Water and/or Non-Water Use Urinals |
US9459697B2 (en) | 2013-01-15 | 2016-10-04 | Leap Motion, Inc. | Dynamic, free-space user interactions for machine control |
CN105912126B (zh) | 2016-04-26 | 2019-05-14 | 华南理工大学 | 一种手势运动映射到界面的增益自适应调整方法 |
US11474614B2 (en) * | 2020-04-26 | 2022-10-18 | Huawei Technologies Co., Ltd. | Method and device for adjusting the control-display gain of a gesture controlled electronic device |
US11550406B1 (en) * | 2021-10-14 | 2023-01-10 | Autodesk, Inc. | Integration of a two-dimensional input device into a three-dimensional computing environment |
-
2020
- 2020-10-30 US US17/085,866 patent/US11474614B2/en active Active
-
2021
- 2021-03-22 KR KR1020227040413A patent/KR20230002874A/ko unknown
- 2021-03-22 CN CN202180029396.0A patent/CN115427920A/zh active Pending
- 2021-03-22 EP EP21795343.9A patent/EP4127879A4/en active Pending
- 2021-03-22 WO PCT/CN2021/082032 patent/WO2021218486A1/en unknown
- 2021-03-22 JP JP2022564806A patent/JP2023522777A/ja active Pending
- 2021-03-22 BR BR112022021679A patent/BR112022021679A2/pt unknown
-
2022
- 2022-09-13 US US17/943,841 patent/US11809637B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210333884A1 (en) | 2021-10-28 |
US11474614B2 (en) | 2022-10-18 |
US11809637B2 (en) | 2023-11-07 |
US20230013169A1 (en) | 2023-01-19 |
KR20230002874A (ko) | 2023-01-05 |
EP4127879A1 (en) | 2023-02-08 |
EP4127879A4 (en) | 2023-08-23 |
JP2023522777A (ja) | 2023-05-31 |
WO2021218486A1 (en) | 2021-11-04 |
BR112022021679A2 (pt) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115427920A (zh) | 用于调整手势控制电子设备的控制显示增益的方法和设备 | |
US11249557B2 (en) | Methods and systems for controlling a device using hand gestures in multi-user environment | |
US9405373B2 (en) | Recognition apparatus | |
US11693482B2 (en) | Systems and methods for controlling virtual widgets in a gesture-controlled device | |
US11507194B2 (en) | Methods and devices for hand-on-wheel gesture interaction for controls | |
CN115298638A (zh) | 用于基于手势控制设备的方法和系统 | |
WO2022127478A1 (en) | Methods and systems for multi-precision discrete control of user interface control element of gesture-controlled device | |
KR20180074124A (ko) | 얼굴 인식을 통해 전자 장치를 제어하는 방법 및 이를 수행하는 전자 장치 | |
CN114600072A (zh) | 用于基于手势控制设备的方法和系统 | |
US9761009B2 (en) | Motion tracking device control systems and methods | |
US11693483B2 (en) | Methods and systems of display edge interactions in a gesture-controlled device | |
US20230116341A1 (en) | Methods and apparatuses for hand gesture-based control of selection focus | |
US11693551B2 (en) | Methods and systems for providing feedback for multi-precision mid-air gestures on a gesture-controlled device | |
WO2021172092A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
KR101517932B1 (ko) | 손 제스처 인식용 초광각 스테레오 카메라 시스템 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |