CN115298638A - 用于基于手势控制设备的方法和*** - Google Patents

用于基于手势控制设备的方法和*** Download PDF

Info

Publication number
CN115298638A
CN115298638A CN202080098779.9A CN202080098779A CN115298638A CN 115298638 A CN115298638 A CN 115298638A CN 202080098779 A CN202080098779 A CN 202080098779A CN 115298638 A CN115298638 A CN 115298638A
Authority
CN
China
Prior art keywords
gesture
hand
space
detected
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080098779.9A
Other languages
English (en)
Inventor
吕炬炜
萨耶姆·***·西亚姆
周维
戴鹏
吴小飞
许松岑
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN115298638A publication Critical patent/CN115298638A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/141Control of illumination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44218Detecting physical presence or behaviour of the user, e.g. using sensors to detect if the user is leaving the room or changes his face expression during a TV program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

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

Abstract

本发明描述了用于基于手势控制设备的方法和***。处理输入帧以确定所述输入帧中的显著的解剖学特征的位置。基于所述显著的解剖学特征的所述位置定义虚拟手势空间,所述虚拟手势空间是用于检测手势输入的定义的空间。仅在所述虚拟手势空间中处理所述输入帧,以检测和跟踪手。使用通过检测和跟踪至少一只手生成的信息,为所述至少一只手确定手势类别。所述设备可以是智能电视、智能手机、平板电脑等。

Description

用于基于手势控制设备的方法和***
技术领域
本发明涉及手势检测和识别,以及使用手势控制电视或智能手机等设备。
背景技术
通过对由设备(例如,智能手机、平板电脑、电视等)的相机捕获的数字视频的帧序列中的手势进行基于机器视觉(在本领域中通常称为计算机视觉)的检测来对设备进行远程控制受到关注,以改进用户体验。用于在数字视频的帧序列中进行手势检测和识别的现有方案一直以来都是基于视频动作的分类(即,在数字视频的帧序列的多个帧中检测和跟踪的手的运动的分类)。这通常需要对数字视频的帧序列进行手势分类和识别。但是,对数字图像序列进行手势分类和识别通常会导致计算成本高,但精度相对较低。
除了对数字视频的帧序列进行手势分类和识别的挑战外,现实生活应用中的手检测也面临挑战。例如,在复杂的背景下(例如,在用户可能杂乱的生活空间中)、当用户到设备之间距离很远(例如,当用户控制安装在墙上的设备)时、或在弱光环境下(例如,在夜间)通常难以对数字视频的帧序列进行手势检测。在这种条件下对数字视频的帧序列进行手势检测和识别通常会导致频繁误报和漏报,令人无法接受。还有一种挑战是当检测区域中有多个人时,可能导致检测和识别手势发生混乱。
用于对数字视频的帧序列进行分类和识别的基于机器学习的方法也面临着特殊的挑战。例如,为了获得令人满意的精度,可以使用大型深度卷积神经网络训练用于进行手势检测和分类的手势检测器和分类器,这通常需要很多计算资源。此外,为了在更远的距离检测较小的手,数字视频的帧需要具有高分辨率,从而大大增加了计算成本。另一个挑战是,由手势(或手)检测器生成的边界框的大小可能与后续分类器的预期输入不匹配。
因此,提供更准确和计算成本较低的基于机器学习的方法和***,用于检测和识别由设备的相机捕获的数字视频的帧序列中的手势,以远程控制设备,即使在非理想的现实生活环境中。
发明内容
在各种示例中,本发明描述了一种基于机器学习的***,该***被端到端训练,用于检测和识别由设备的相机捕获的数字视频的帧序列中的手势,以远程控制设备。所公开的基于机器学习的***能够实时检测和识别由设备的相机捕获的数字视频的帧序列中的手势,以远程控制设备。本文描述的各种示例性基于机器学习的***能够在长距离和/或低照度场景中检测和识别由设备的相机捕获的数字视频的帧序列中的手势,以比现有方法更准确地远程控制设备。
在一些示例中,本发明描述了一种用于处理手势输入的方法。所述方法包括:处理帧序列中的每个相应帧,以确定相应帧中的显著的解剖学特征的至少一个检测到的实例的位置;对于所述显著的解剖学特征的所述至少一个检测到的实例中的至少一个选定实例,基于所述显著的解剖学特征的所述一个选定实例的位置,定义虚拟手势空间,所述虚拟手势空间是用于检测和跟踪手势输入的定义的空间;仅在所述虚拟手势空间中使用所述帧序列中的每个帧处理,以检测至少一只手,通过检测所述至少一只手生成信息,使用通过检测所述至少一只手生成的信息预测与所述至少一只手相关联的手势类别,输出对应于与所述至少一只手相关联的所述预测的手势类别的命令输入。
在上述示例的任一示例中,显著的解剖学特征可以是人脸。
在上述示例的任一示例中,可以具有所述显著的解剖学特征的多个检测到的实例,可以针对每个相应的检测到的实例定义一个虚拟手势空间,并且每个虚拟手势空间可以被处理以执行手检测和跟踪。
在上述示例的任一示例中,所述方法还可以包括:在所述虚拟手势空间被定义之后,通过在所述定义的虚拟手势空间中执行手检测和跟踪来处理至少一个后续输入帧,而不进一步对在所述后续输入帧中的所述显著的解剖学特征执行检测。
在上述示例的任一示例中,所述方法还可以包括:使用通过检测和跟踪所述至少一只手生成的信息,基于所述至少一只手的检测到的位置,重新定义所述虚拟手势空间。
在上述示例的任一示例中,所述方法还可以包括:在基于所述至少一只手的所述检测到的位置重新定义所述虚拟手势空间之后,通过在所述重新定义的虚拟手势空间中执行手检测和跟踪来处理至少一个后续输入帧,而不进一步对所述后续输入帧中的所述显著的解剖学特征执行检测。
在上述示例的任一示例中,通过检测和跟踪所述至少一只手生成的所述信息可以包括限定所述输入帧中的所述至少一只手的边界框,并且手势分类是使用所述边界框执行的。
在上述示例的任一示例中,所述方法还可以包括:在所述虚拟手势空间中定义一个或多个子空间;通过检测和跟踪所述至少一只手生成的信息可以包括指示在所述一个或多个子空间中的一个子空间中检测到所述至少一只手的信息;每个子空间可以与相应的鼠标输入相关联。
在一些示例中,本发明描述了一种装置,包括:处理设备,与存储器耦合,所述存储器存储机器可执行指令。所述指令当由所述处理设备执行时,使所述装置执行上述任何方法。
在上述示例的任一示例中,所述装置可以是手势控制设备,并且确定的手势类别可以用于确定对所述手势控制设备的命令输入。
在上述示例的任一示例中,所述装置可以包括用于捕获所述输入帧的相机。
在上述示例的任一示例中,所述手势控制设备可以是以下设备中的一种:电视;智能手机;平板电脑;车载设备;物联网设备;人工现实设备;或虚拟现实设备。
在一些示例中,本发明描述了一种计算机可读介质,所述计算机可读介质存储有机器可执行指令。所述指令当由装置的处理设备执行时,使所述装置执行上述任何方法。
本文公开的示例可以通过定义用于检测用户的手的虚拟手势空间,更准确和/或高效地检测手势输入。例如,人脸的检测通常可以更快和/或更准确,并且检测到的人脸可以是虚拟手势空间的基础。在一些示例中,检测到的人脸可以是实现基于手势的虚拟鼠标控制的基础。这可以为基于手势的设备控制提供直观的方法。
附图说明
现在将通过示例参考示出本申请示例性实施例的附图,在附图中:
图1是用户与示例性手势控制设备交互的框图;
图2是示例性手势控制设备的一些组件的框图;
图3A至图3H示出了可以由示例性手势控制设备检测和识别的一些示例性手势类别;
图4A至图4C示出了可以由示例性手势控制设备检测和识别的一些示例性动态手势;
图5是可以在示例性手势控制设备中实现的示例性自适应手势感应***的一些细节的框图;
图6是使用虚拟手势空间检测手的示例性方法的流程图;
图7示出了包括用于实现虚拟鼠标的定义子空间的虚拟手势空间的示例;
图8A和图8B示出了2D和3D虚拟手势空间的示例;
图9是手检测和基于检测到的手重新定义虚拟手势空间的示例性方法的流程图;
图10A和图10B示出了图9的方法的示例性实现方式;
图11是使用虚拟手势空间进行手检测的示例性方法和用户列表的实现的流程图;
图12是使用自适应ROI进行检测的示例性方法的流程图;
图13示出了可用于图的12方法的示例性ROI序列;
图14是可用于手势识别的示例性联合网络的框图;
图15和图16示出了可用于训练图14的联合网络的一些示例性训练数据样本;
图17是用于手势识别的示例性方法的流程图;
图18是基于状态的手势识别的示例的状态图;
图19是用于手检测的示例性方法(包括图像调整)的流程图;
图20是基于像素强度的图像调整的示例的示意图;
图21A和图21B示出了包括将照明部分添加到显示内容的图像调整的示例。
不同的附图中使用了相似的附图标记来表示相似的组件。
具体实施方式
在各种示例中,本发明描述了实现基于手势的设备控制的方法和***。例如,手势控制设备可以是电视(例如智能电视)、移动通信设备(例如智能手机)、平板电脑设备、桌面设备、基于车辆的设备(例如仪表盘设备)或智能扬声器等等。本文描述的基于手势的控制可以使用户能够与由手势控制设备提供的任何用户界面交互,包括具有或不具有显示输出的用户界面。本发明的示例还可以用于增强现实(augmented reality,AR)、虚拟现实(virtual reality,VR)或视频游戏应用等等。
为了简单起见,本发明描述了在具有显示输出(例如智能电视、智能手机或平板电脑)的手势控制设备中的示例,并描述了用于与视频的播放交互的基于手势的控制。但是,应理解本申请并不限于这些实施例,可以用于各种应用场景中各种设备的基于手势的控制。
图1示出了用户10与手势控制设备100交互的示例。在简化图中,所述手势控制设备100包括相机102,所述相机102捕获视场角(field-of-view,FOV)20中的帧序列(例如数字图像),所述帧序列包括手势输入。如下文进一步描述,所述FOV 20可以包括用户10的至少一部分,具体是所述用户10的脸和手。需要说明的是,在现实生活使用中(例如,在实验室设置之外)的所述FOV 20通常不仅包括用户10。例如,所述FOV 20还可以包括其它对象、背景场景或可能存在的其它人。与相机102不同,所述手势控制设备100可以具有能够感应用户10的手势输入的另一个传感器,例如捕获帧序列(例如红外图像)的任何图像捕获设备/传感器(例如红外图像传感器)。所述帧序列包括图像捕获设备/传感器的FOV20中的手势输入。所述手势控制设备100还包括提供输出(例如视频)的显示器104。尽管在图1所示的实施例中,所述手势控制设备100包括相机102,但在其它实施例中,所述相机102可以是与所述手势控制设备100通信的***设备。
图2是手势控制设备100的一些组件的框图。尽管下文示出和描述所述手势控制设备100的一个示例性实施例,但其它实施例可以用于实现本文公开的示例,可以包括与所示的组件不同的组件。尽管图2示出了每个组件的单个实例,但是示出的每个组件可以有多个实例。
所述手势控制设备100包括一个或多个处理设备202,例如处理器、微处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、专用逻辑电路、专用人工智能处理器单元,或其组合。所述手势控制设备100还包括一个或多个输入/输出(input/output,I/O)接口204,所述接口是所述相机102等输入设备与所述显示器104等输出设备之间的接口。所述手势控制设备100可以包括其它输入设备(例如按钮、麦克风、触摸屏、键盘等)和其它输出设备(例如扬声器、振动单元等)。所述相机102(或其它输入设备)可以具有捕获包括手势输入的帧序列的能力。捕获的帧可以由一个或多个I/O接口204提供给一个或多个存储器208,用于存储(例如在存储器中缓冲),并提供给所述一个或多个处理设备202以实时或接近实时(例如在10ms内)处理。
所述手势控制设备100可以包括一个或多个可选的网络接口206,用于与网络(例如内网、互连网、P2P网络、WAN和/或LAN)或其它节点进行有线或无线通信。所述一个或多个网络接口206可以包括用于网络内和/或网络间通信的有线链路(例如以太网线)和/或无线链路(例如一个或多个天线)。
所述手势控制设备100包括一个或多个存储器208,其中,所述一个或多个存储器可以包括易失性或非易失性存储器(例如闪存、随机存取存储器(random access memory,RAM)和/或只读存储器(read-only memory,ROM))。所述一个或多个非瞬时性存储器208可以存储由所述一个或多个处理设备202执行的指令,例如,以执行本发明中所描述的示例。例如,所述一个或多个存储器208可以包括用于执行自适应手势感应***300的指令。所述一个或多个存储器208可以包括其它软件指令,例如用于实现操作***和其它应用/功能。所述一个或多个存储器208还可以包括数据210,例如可以通过显示器104提供作为输出的视频内容文件。
在一些示例中,所述手势控制设备100还可以包括一个或多个电子存储单元(未示出),例如固态硬盘、硬式磁盘驱动器、磁盘驱动器和/或光盘驱动器。在一些示例中,一个或多个数据集和/或模块可以由外部存储器(例如与所述手势控制设备100进行有线通信或无线通信的外部驱动器)提供,也可以由瞬时性或非瞬时性计算机可读介质提供。非瞬时性计算机可读介质的示例包括RAM、ROM、可擦除可编程ROM(erasable programmable ROM,EPROM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、闪存、CD-ROM或其它便携式存储器。例如,所述手势控制设备100的组件可以通过总线互相通信。
为了帮助理解本发明,首先论述手势。在本发明中,手势通常被定义为可以由所述手势控制设备100识别为特定命令输入的不同手形状。手势可以具有不同的形状和移动。例如,所述手势控制设备100可以将手势识别为属于图3A至图3H所示的类别之一。存在于由所述相机102捕获的帧序列(例如图像)中的如图3A至图3H所示的手势被称为手势输入。
图3A示出了“张开手掌”手势30。图3B示出了“握拳”(或“握紧”)手势32。图3C示出了“撑开”手势34。图3D示出了“捏合”手势36。图3E示出了“静音”(或“静默”)手势38。图3F示出了“喜欢”(或“同意”)手势40。图3G示出了“其它”(或“下一个”)手势42。图3H示出了“触摸”(或“选择”)手势44。其它手势类别可以由所述手势控制设备100识别。
基于这些手势类别,手势可以分为静态手势或动态手势。静态手势定义为单个手势类别,在通常固定的位置(例如在允许某些误差裕度的特定区域内)保持至少一个特定时间段(例如1秒)或在由所述相机102捕获的帧序列中至少定义数量的连续帧(例如100帧)。例如,静态张开手掌手势30可以由所述手势控制设备100(例如所述自适应手势感应***300)识别,并且在视频播放的情景中可以解释为暂停命令输入。静态握拳手势32可以由所述手势控制设备100识别,在视频播放的情景中可以解释为停止命令输入。
动态手势定义为一个或多个手势类别、位置和/或移动的组合。例如,动态手势可以是随着时间位置变化的单个手势类别(例如在由所述相机102捕获的帧序列上在不同位置检测到)。位置变化的张开手掌手势30可以由所述手势控制设备100(例如所述自适应手势感应***300)识别,解释为拖动或移动界面对象(例如显示的图标)的命令。
图4A示出了另一种类型的动态手势,可以是手势类别的组合。在图4A中,所述动态手势包括先是触摸手势44,接着是握拳手势32的组合。所述动态手势可以由所述手势控制设备100(例如在所述手势控制设备100上运行的所述自适应手势感应***300)识别,解释为使用鼠标设备选择然后点击界面对象的命令输入。在另一个示例中,撑开手势34和接着的捏合手势36可以一起识别为“捏合”动态手势,所述动态手势可以由所述手势控制设备100识别并解释为缩小命令输入。
更复杂的动态手势可能涉及手势类别的组合以及位置的变化。例如,在图4A中,如果检测到触摸手势44的位置随时间变化(例如,在由所述相机设备102捕获的帧序列中的不同位置中检测到),接着是握拳手势32,则所述手势控制设备100(例如,在所述手势控制设备100上运行的所述自适应手势感应***300)可以将复杂动态手势解释为命令输入,当检测到握拳手势32时以反映触摸手势44(接着是点击命令)的位置变化的方式移动显示的光标。
在另一个示例中,撑开手势36,接着是捏合手势38,接着是捏合手势38的位置变化,接着又是撑开手势36可以被所述手势控制设备100(例如,在所述手势控制设备100上运行的所述自适应手势感应***300)一起识别为动态“捏合-拖动-释放”手势。需要说明的是,包括位置变化的动态手势可以根据位置的特定变化解释为不同的输入。例如,如图4B所示,在捏合手势38的位置46(或垂直“拖动”)的垂直变化的捏合-拖动-释放手势可以在视频播放的情景中解释为修改音量的命令输入。相反,如图4C所示,在捏合手势38的位置48的水平变化的捏合-拖动-释放手势可以在视频播放的情景中解释为在视频中向前或向后移动的命令输入。所述捏合-拖动-释放手势可以为用户提供与所述手势控制设备100交互的直观和方便的方式,还可以使所述手势控制设备100(例如运行在所述手势控制设备100上的所述自适应手势感应***300)能够以相对较高的精度检测和识别手势输入。具体地,可以通过将动态手势分解为静态手势(例如撑开手势36,接着是捏合手势38,接着是另一个撑开手势36)来检测和识别所述捏合-拖动-释放手势。
用于手势识别的一些传统的现有计算机视觉技术基于相机102捕获的帧序列(例如数字图像)中的手形状和位置进行手检测、手形状分类和手势识别。手势分类和识别通常计算成本高。此外,当所述手势控制设备100的相机102在不可控制和可能复杂的环境(例如背景杂乱、当用户距离设备很远、在弱光环境中、或当FOV中存在多个人时)中时,处理相机102捕获的帧序列以检测和识别手势(无论是静态的还是动态的)时通常难度大。
在各种示例中,本发明描述了能够在由手势控制设备的相机捕获的帧序列中实现更准确和更高效的手势检测和识别的方案。在一些示例中,本发明描述了一种使用虚拟手势空间的自适应手势感应***,以减少相机捕获的、待处理用于手势检测的帧序列中的每一帧的区域。在一些示例中,本发明还描述了一种基于状态(而不是基于运动)的识别动态手势的方法。应当理解,本发明包括其它方面和特征。
本发明描述了虚拟手势空间的使用。虚拟手势空间至少最初定义为用户人脸周围的空间,用于处理由相机捕获的帧序列中的每一帧,以检测所述帧序列中的手势。所述虚拟手势空间应该小于相机102捕获的FOV 20。只有在所述虚拟手势空间内检测和识别的手势(例如手势输入)才视为有效的手势(例如手势输入)。虚拟手势空间的使用可以减少在帧序列中(例如,特别是在复杂环境中)检测手势时的误报,更易于将手势与特定用户关联,且可以更高效地处理帧序列,以检测和识别手势(例如手势输入)。
图5是自适应手势感应***300的一些示例性子***的框图。在本示例中,所述自适应手势感应***300可以通过虚拟手势空间子***310和手势解析子***320实现。在以下示例中,所述自适应手势感应***300被描述为包括两个子***310、320或提供两个子***310、320的功能。但是,在其它示例中,所述自适应手势感应***300可以仅包括子***310、320中的一个(或提供其中一个子***的功能)。例如,所述自适应手势感应***300可以(例如使用所述虚拟手势空间子***310)仅提供虚拟手势空间的自适应生成和所述手势控制设备100的相机102捕获的帧序列中的、虚拟手势空间内的手势的检测。所述手势控制设备100的另一个组件(例如使用任何合适的现有手势识别技术)可以进行手势识别和解析。在另一个示例中,所述自适应手势感应***300可以(例如使用所述手势解析子***320)仅提供多个用户的手势识别和管理,所述手势控制设备100的另一个组件(例如使用任何合适的现有手势检测技术)可以进行手势检测。
在一些示例中,所述自适应手势感应***300可以不包括不同的子***310、320。相反,子***310、320的子块可以被认为是所述自适应手势感应***300本身的子块。因此,使用不同子***310、320的所述自适应手势感应***300的实现是可选的。
所述自适应手势感应***300包括人脸检测和跟踪子***312、虚拟手势空间生成子***314、手检测和跟踪子***316、手势识别子***322和用户列表324。所述人脸检测和跟踪子***312、所述虚拟手势空间生成子***314和所述手检测和跟踪子***316可以是所述虚拟手势空间子***310的一部分。所述手势识别子***322和所述用户列表324可以是所述手势解析子***320的一部分。
在一些示例中,替代或除了人脸检测和跟踪子***312之外,另一个子***(未示出)可以用于检测和跟踪相机102捕获的帧序列中不同的解剖学特征(例如整个人体或人躯干)。如下文进一步描述的,替代人脸或除了人脸之外,可以使用不同的解剖学特征作为生成所述虚拟手势空间的基础。为了简单起见,本发明重点描述在相机102捕获的帧序列中使用人脸检测和跟踪,但应理解本发明并不限于此。
相机102 0捕获的帧序列中的帧被接收并作为所述自适应手势感应***300的输入帧。所述人脸检测和跟踪子***312对所述输入帧进行人脸检测。所述人脸检测和跟踪子***312可以使用任何合适的人脸检测技术来检测所述输入帧中的人脸,并为检测到的人脸生成边界框。所述边界框可以是以所述输入帧中检测到的人脸为中心以及周围的二维(two-dimensional,2D)或三维(three-dimensional,3D)框。
所述虚拟手势空间生成子***314使用为所述输入帧中检测到的人脸生成的边界框来定义虚拟手势空间。在本发明中,虚拟手势空间(或简称为手势空间)是指在所述输入帧中定义并映射到用户10的现实生活环境中的虚拟空间的2D或3D空间,在虚拟手势空间中可以检测手势(例如手势输入)。即,用户10可以在虚拟定义的2D或3D虚拟手势空间内做手势,以向所述手势控制设备100提供命令输入。在虚拟手势空间之外执行的手势可能不会被检测到,且可能不会被所述手势控制设备100识别为命令输入。虚拟手势空间的维度可以匹配也可以不匹配人脸的边界框的维度(例如人脸的边界框可以是2D,虚拟手势空间可以是3D)。
所述虚拟手势空间生成子***314定义的虚拟手势空间被所述手检测和跟踪子***316用于在相机捕获的帧序列中进行手检测和跟踪。具体地,所述手检测和跟踪子***316可以仅分析输入帧内和帧序列中的每个后续帧内定义的虚拟手势空间,以检测手并在帧序列中跟踪手。所述手检测和跟踪子***316可以使用任何合适的手检测技术来检测输入帧中的手,并为检测到的手限定2D或3D边界框。
在一些示例中,所述人脸检测和跟踪子***312可以包括用于进行人脸检测的经训练的神经网络。类似地,所述手检测和跟踪子***316可以包括用于进行手检测的另一个经训练的神经网络。例如,用于人脸或手检测的合适的经训练的神经网络可以是经训练的对象检测器,例如使用基于残差神经网络(residual neural network,ResNet)架构的YoloV3(例如,如2018年预印本文献库arXiv:1804.02767中Redmon等人提出的《Yolov3:增量式的改进》(Yolov3:An incremental improvement)中所描述),所述ResNet架构例如是ResNet34(例如,如2016年IEEE计算机视觉与模式识别会议论文集中He Kaiming等人提出的《图像识别深度残差学习》(Deep residual learning for image recognition)中所描述)。用于人脸或手检测的合适的经训练的神经网络的另一示例可以是基于卷积神经网络(convolutional neural network,CNN)架构的经训练的单步检测器(single shotdetector,SSD),例如单步多框检测器(例如,如2016年Springer,Cham欧洲计算机视觉国际会议论文集中Liu等人提出的《Ssd:单步多框检测器》(Ssd:Single shot multiboxdetector)中所描述)。所述CNN架构,例如MobileNetV2(例如,如2018年IEEE计算机视觉和模式识别会议论文集中Sandler等人提出的《Mobilenetv2:倒残差和线性瓶颈》(Mobilenetv2:Inverted residuals and linear bottlenecks)中所描述)。所述人脸检测和跟踪子***312和所述手检测和跟踪子***316可以使用(如1981年成像理解研讨会会议论文集中Lucas等人提出的《一种迭代图像配准技术及其在立体视觉中的应用》(Aniterative image registration technique with an application to stereo vision)中所描述的)Lucas-Kanade光流技术分别进行人脸和手跟踪。
所述手势识别子***322使用为检测到的手定义的边界框识别检测到的手的形状,且分类为手势类别。所述手势识别子***322可以使用任何合适的分类技术将检测到的手的形状分类为特定的手势类别。例如,所述手势识别子***322可以包括神经网络(例如CNN),所述神经网络已经被训练成根据预定义的手势类别集对手势进行分类。所述神经网络已经经过已知的机器学习算法训练,以学习所述神经网络的参数(例如权重)。所述经训练的神经网络接收检测到的手势的边界框,从对应于边界框的预定义手势类别集中预测特定的手势类别。所述手势识别子***322预测的手势类别可以由所述自适应手势感应***300输出(例如作为标签)。
所述手势控制设备100的软件应用程序(例如操作***)可以将所述自适应手势感应***300输出的手势类别转换为命令输入。手势类别到命令输入的转换可以取决于应用程序。例如,当第一应用程序处于激活状态时,给定的手势类别可以转换为第一命令输入,但当第二应用程序处于激活状态时,可以转换为第二命令输入(或可以被认为无效)。
在一些示例中,所述自适应手势感应***300存储和维护所述用户列表324以保持跟踪主用户。例如,在相机102的FOV 20中可以有多个人。因此,所述人脸检测和跟踪子***312可以检测和跟踪由相机102在FOV 20中捕获的帧序列中的多个人脸。每个检测到的人脸可以为向所述手势控制设备100提供输入的用户。因此,即使检测到的人当前不提供识别的手势(例如手势输入),每个检测到的人也可以被视为用户(或***)。所述用户列表324跟踪所有检测到的用户,并根据一些预定义标准(例如基于用户的大小、用户与所述手势控制设备100的距离、用户是否看向所述手势控制设备100等)排序所述检测到的用户。所述用户列表324中排序最高的用户可以被视为主用户。与主用户相关联的帧序列中的手势(例如手势输入)的优先级比与其它检测到的用户相关联的帧序列中检测到的任何其它手势(例如手势输入)的优先级更高。在一些示例中,所述用户列表324可以只包括授权或预注册的用户。例如,用户配置文件可以与授权或预注册的用户相关联,且用户配置文件可以包括使授权或预注册的用户能够由所述手势控制设备100识别(例如使用合适的人脸识别技术)的数据(例如生物识别数据)。这种授权或预注册的用户的人脸识别可以由所述自适应手势感应***300或由所述手势控制设备100的单独人脸识别***进行。通过将所述用户列表324限制为仅包括授权或预注册的用户,可以避免对设备100未经授权的基于手势的控制。此外,可以减少手势输入的误报检测。
尽管所述自适应手势感应***300示出为具有不同的子块(或子***),但应理解本发明并不限于此。例如,所述自适应手势感应***300可以使用更多或更少数量的子块(或子***),或者可以不需要任何子块(或子***)来实现。此外,本文描述为由特定子块(或子***)执行的功能可以由另一个子块(或子***)执行。
通常,所述自适应手势感应***300的功能可以以各种合适的方式实现,都属于本发明保护的范围。
下面描述自适应手势感应***300的操作的示例。
图6是可以由自适应手势感应***300执行的示例性方法600的流程图,例如使用所述虚拟手势空间子***310(和子***312、314和316)。所述方法600可以由所述手势控制设备100的处理设备202的软件的程序或子程序执行。本发明用于执行这些程序或子程序的软件的编码属于本领域普通技术人员的范围。所述方法600可以包括示出和描述的其它或更少的步骤或动作,且可以以不同的顺序执行。例如,由所述处理设备202执行的计算机可读代码可以存储在计算机可读介质中。
在602中,接收帧序列中的输入帧。通常,实时或接近实时地一次接收一个所述输入帧和所述帧序列的所述输入帧的每个后续帧。所述输入帧(以及每个后续帧)可以是相机102捕获的原始、未处理的数字图像,或者可以是经最小处理(例如归一化)的数字图像。
在604中,所述自适应手势感应***300检测所述输入帧中的显著的解剖学特征。可以在步骤604处理整个输入帧。显著的解剖学特征可以是用户身体的任何部位,容易检测到并与背景区分开来。一个示例是人脸检测(例如使用所述人脸检测和跟踪子***312)。在某些情况下,人脸可能很难被检测到,在这种情况下,可以检测不同的解剖学特征(例如整个人体或人躯干)。如上所述,所述解剖学特征可以使用任何合适的方法检测,包括使用任何合适的计算机视觉技术。检测所述显著的解剖学特征可以包括确定所述解剖学特征的位置(例如由边界框或坐标表示)。
在606中,基于检测到的显著的解剖学特征(例如检测到的人脸)生成虚拟手势空间(例如使用所述虚拟手势空间生成子***314)。在一些示例中,可以检测显著的解剖学特征的多个实例(例如,如果在相机102捕获的FOV 20中的输入帧内有多个人,则可以检测多个人脸)。在这种情况下,可以为显著的解剖学特征的每个相应的检测到的实例生成一个虚拟手势空间。如下文进一步描述的,在一些示例中,当检测到显著的解剖学特征的多个实例时,可以仅生成一个虚拟手势空间,或者可以基于检测到的显著的解剖学特征实例的排序或优先级生成多个虚拟手势空间。
所述虚拟手势空间可以使用与输入帧中检测到的相应解剖学特征位置相关的预定义等式生成。例如,所述虚拟手势空间可以通过计算相对于检测到的人脸的边界框的矩形空间生成。下文进一步提供了一些示例性等式。
可选地,在608中,生成的所述虚拟手势空间的信息可以由所述自适应手势感应***300提供,以使所述手势控制设备100能够向用户10提供关于生成的所述虚拟手势空间的反馈。例如,所述自适应手势感应***300可以提供表示所述虚拟手势空间的坐标或其它参数的信息,以使所述手势控制设备100能够在显示器104上渲染(例如叠加在实时相机图像的顶部)向用户10表示的虚拟手势空间。在另一个示例中,所述虚拟手势空间可以通过具有所述手势控制设备100在显示器104上渲染的内嵌窗口或辅助窗口来向用户10表示,以仅显示与所述虚拟手势空间对应的FOV。向用户10提供反馈的其它方式也适用。
在610中,在生成的所述虚拟手势空间中(例如使用所述手检测和跟踪子***316)在输入帧中检测手。检测到的手可以与在输入帧中检测到手的相应虚拟手势空间相关联(例如打上标签)。如果生成了多个虚拟手势空间,则可以尝试在输入帧中的每个生成的虚拟手势空间中检测手。如果在输入帧中的给定虚拟手势空间中没有检测到手,则可以忽略或丢弃所述给定虚拟手势空间。
如果在输入帧中多个生成的虚拟手势空间中的任何一个虚拟手势空间中没有检测到手,则可以确定在输入帧中没有发现手势(例如手势输入),所述方法600可以返回到步骤602,接收帧序列中的下一个输入帧。假设在至少一个虚拟手势空间中检测到至少一只手,所述方法600执行可选的步骤612。
可选地,在612中,如果在输入帧中的给定虚拟手势空间中检测到不止一只手,则可以在给定虚拟手势空间中识别一只主手。可以基于以下方式识别主手,例如,输入帧中给定虚拟手势空间中的最大手,在输入帧的给定虚拟手势空间中最接近检测到的显著的解剖学特征(例如人脸)的检测到的手,或在亮度和/或色调上最接近输入帧的给定虚拟手势空间中的检测到的显著的解剖学特征(例如人脸)的检测到的手等。如果在输入帧中的给定虚拟手势空间中仅检测到一只手,则可以假设所述手是主手。
在614中,在所述帧序列的所述输入帧的后续帧中,在相应虚拟手势空间(例如使用所述手检测和跟踪子***316)中跟踪检测到的手(或主手)。通过处理每个后续帧跟踪检测到的手(或主手)。提供了在每个后续帧中检测和跟踪手(或主手)的信息,以进一步分析和解析。例如,可以生成边界框和可选标识符,以在后续帧中跟踪检测到的手。然后,可以提供边界框(和可选标识符)(例如提供给所述手势识别子***322)用于分析和解析。
在一些示例中,所述方法600可以通过所述自适应手势感应***300仅使用所述虚拟手势空间子***310来实现。所述自适应手势感应***300不输出手势类别(如图5),而是将跟踪的手的信息(例如边界框)输出到传统手势识别***,所述传统手势识别***可以对信息(例如边界框)进行手分类和手势识别。
上述示例不直接检测用户的手,而是首先检测输入帧中显著的解剖学特征(例如用户的脸),并基于检测到的特征生成虚拟手势空间(小于输入帧中的FOV)。然后,仅在虚拟手势空间中对输入帧进行手检测。用户的脸可用作生成虚拟手势空间的显著的解剖学特征,因为人脸检测通常比手检测更准确和可靠。通过将手检测限制在虚拟手势空间,可以简化用于检测手的后续帧所需的处理,可以减少误报,且更易于识别用于手势输入的后续帧中的主手。
在一些示例中,所述方法600可用于处理相机102捕获的每个帧。在其它示例中,所述方法600只能在预期手势输入时使用。例如,可以响应于接收到输入(例如通过键盘输入、鼠标输入或语音输入)启动所述方法600。在一些示例中,可以基于检测到人注意力启动所述方法600。例如,所述手势控制设备100可以使用注意力检测技术(例如可以执行眼睛跟踪软件)确定人是否正直接看着所述手势控制设备100,且可以仅在检测到人直接看着所述手势控制设备100时启动所述方法600。响应于检测到的人注意力启动所述方法600有助于避免对手势输入的误报或错误解释。
图7示出了所述方法600的一种示例性实现方式。在这种实现方式中,基于检测到的人脸生成虚拟手势空间。在本示例中,假设在604检测到主用户的人脸12,且在606将所述人脸12用作显著的解剖学特征作为生成虚拟手势空间的基础。
可以使用任何合适的包括如上所述的基于计算机视觉的技术的人脸检测技术,为人脸12生成边界框702。在本示例中,所述边界框702由一组值{xf,yf,wf,hf}定义,其中,xf和yf分别定义所述边界框702的锚点(例如中心)的x和y坐标(在所述自适应手势感应***300定义的参考帧中),wf和hf分别定义所述边界框702的宽度和高度。基于边界框702,生成虚拟手势空间704(例如在步骤606),所述虚拟手势空间704由一组值{xg,yg,wghg}定义,其中,xg和yg分别定义所述虚拟手势空间704的锚点(例如中心)的x和y坐标(在所述自适应手势感应***300定义的参考帧中),wg和hg分别定义所述虚拟手势空间704的宽度和高度。例如,以下等式可用于生成所述虚拟手势空间704:
Figure BDA0003852517380000101
Figure BDA0003852517380000102
Figure BDA0003852517380000103
hg=β·hf
其中,(Δx,Δy)是预定义的相对位置参数,
Figure BDA0003852517380000104
是预定义的比例参数。可以根据所述虚拟手势空间704的期望大小和在虚拟手势空间704内的所述边界框702的期望位置来预定义(例如由用户10或所述手势控制设备100的制造商预定义)所述参数(Δx,Δy)和
Figure BDA0003852517380000105
需要说明的是,在一些示例中,所述虚拟手势空间704可以以这种方式生成,使得人脸12的边界框702部分或全部在所述虚拟手势空间704之外。即,尽管人脸12可以用作生成所述虚拟手势空间704的基础,但所述虚拟手势空间704不需要包括人脸12。
在图7的示例中,所述虚拟手势空间704生成为具有矩形形状的2D空间。但是,应当理解,所述虚拟手势空间704可以生成为2D空间或3D空间,且可以生成为具有任何几何形状(例如正方形、矩形、圆形等)、规则形状、或不规则形状。
在一些示例中,所述虚拟手势空间704还可以定义一个或多个子空间706、708,可以用于实现特定的输入功能。所述多个子空间706、708可以基于检测到的人脸12的特征来定义(例如由所述虚拟手势空间生成子***314定义)。例如,可以基于人脸12的检测到的眼睛和鼻子位置,在对应于检测到的人脸12的左下角和右下角部分的虚拟手势空间中定义左子空间706和右子空间708。在所述左子空间706中检测触摸(或点)手势可以解释为鼠标左键点击输入。类似地,在所述右子空间708中检测触摸(或点)手势可以解释为鼠标右键点击输入。这样,包括定义的子空间706、708的所述虚拟手势空间704可以用于实现虚拟鼠标。在一些示例中,图4A所示的动态手势可以被检测为手势输入,以实现虚拟光标。当跟踪触摸(或点)手势44时,可以移动虚拟光标(且该虚拟光标可以通过显示给用户10的视觉叠加来表示),当检测到握紧手势32时,可以检测鼠标点击输入。这样,可以实现虚拟鼠标。
图8A和图8B示出了基于在相机102捕获的帧序列中的输入帧中检测到的用户10的人脸12生成的虚拟手势空间704的另一个示例。在图8A中,所述虚拟手势空间704是2D空间,且具有包括用户10的人脸12和手14的矩形形状(例如和图7的示例类似)。在图8B中,所述虚拟手势空间704是包括用户10的人脸12和手14的3D空间。当深度信息可用时,所述虚拟手势空间704可以生成为3D空间。例如,可以使用视频分析技术根据帧序列计算深度信息。例如,所述手势控制设备100可以使用两个相机102计算深度信息(例如使用计算机立体视觉技术),或者相机102可以是能够生成深度信息(除了传统RGB图像信息)的RGB深度(RGB-depth,RGBD)相机,或者所述手势控制设备100可以包括除了传统相机102之外的飞行时间(time of flight,ToF)相机,以获取RGB图像信息和其它对应的深度信息。在一些示例中,除了相机102之外,还可以使用能够捕获深度信息的传感器(例如红外传感器)捕获深度信息。3D虚拟手势空间704的使用可以有助于检测和识别基于深度的手势输入(例如将手移动到所述手势控制设备100附近或远离所述手势控制设备100)为命令输入。
在一些示例中,虚拟手势空间最初基于帧序列的输入帧中检测到的显著的解剖学特征(例如人脸)生成,然后可以基于帧序列中的输入帧的后续帧中检测到的手重新定义或更新。这样,即使手从所述显著的解剖学特征移开,所述虚拟手势空间也可以跟随检测到的手的位置。
图9是可以由自适应手势感应***300例如使用所述虚拟手势空间子***310(和子***312、314和316)执行的示例性方法900的流程图。所述方法000可以由所述手势控制设备100的处理设备202的软件的程序或子程序执行。本发明用于执行这些程序或子程序的软件的编码属于本领域普通技术人员的范围。所述方法000可以包括示出和描述的其它或更少的步骤或动作,且可以以不同的顺序执行。例如,由所述处理设备202执行的计算机可读代码可以存储在计算机可读介质中。所述方法900可以包括与上述方法600描述的步骤类似的步骤,因此不再赘述。
在902中,接收帧序列的输入帧。所述步骤可以与上述步骤602类似。
在904中,所述自适应手势感应***300检测所述输入帧中的显著的解剖学特征。所述步骤可以与上述步骤604类似。
在906中,基于输入帧中检测到的显著的解剖学特征(例如检测到的人脸)生成虚拟手势空间(例如使用所述虚拟手势空间生成子***314)。所述步骤可以与上述步骤606类似。可选地,可以提供表示虚拟手势空间的信息(例如以向用户10提供反馈)。为了简单起见,在以下对所述方法900的描述中,假设仅生成一个虚拟手势空间。但应理解,所述方法900可以适用于生成多个虚拟手势空间的情况(例如基于输入帧中的显著的解剖学特征的多个检测到的实例)。
在908中,在输入帧的虚拟手势空间中检测手(例如使用所述手检测和跟踪子***316),且与检测到手的所述虚拟手势空间相关联。所述步骤可以与上述步骤610类似。可选地,可以识别主手并将主手与所述虚拟手势空间相关联。
在910中,基于检测到的手重新定义所述虚拟手势空间。重新定义所述虚拟手势空间可以包括在输入帧的后续帧中使用与检测到的手相关的预定义等式(而不是与检测到的解剖学特征相关)重新计算所述虚拟手势空间的位置和/或大小。例如,可以重新定义所述虚拟手势空间,使得所述虚拟手势空间以检测到的手的边界框为中心。下文进一步描述一些示例性等式。
在912中,存储所述重新定义的虚拟手势空间。这使得所述重新定义的虚拟手势空间(基于检测到的手重新定义)能够用作在输入帧的后续帧中检测和跟踪手的基础,而非最初生成的虚拟手势空间(最初基于输入帧中检测到的人脸等检测到的显著的解剖学特征生成)。
在914中,在后续帧中跟踪在输入帧中检测到的手(或主手)到重新定义的虚拟手势空间中的输入帧(例如使用所述手检测和跟踪子***316)。所述步骤可以与上述步骤614类似。可以提供边界框(和可选标识符)(例如提供给所述手势识别子***322或其它手分类器)以分析和解析手势输入。
所述方法900能够基于在输入帧中检测到的手重新定义虚拟手势空间,这样即使手从显著的解剖学特征移开,也可以在输入帧的每个后续帧中继续跟踪和检测手。在根据检测到的手重新定义虚拟手势空间之后,可以使用所述重新定义的虚拟手势空间处理后续帧。当空间中的手位置变化时,可以在每个后续帧中连续重新定义虚拟手势空间,这样当手移动时,所述虚拟手势空间继续以检测到的手为中心。例如,可以使用省略步骤904和906的所述方法900的变型处理所述帧序列中输入帧的后续帧。
在一些示例中,如果在后续帧的重新定义的虚拟手势空间中不再检测到手,则可以基于所述输入帧中检测到的显著的解剖学特征重新生成虚拟手势空间。即,显著的解剖学特征可以用作定义所述虚拟手势空间的锚点或默认基础。在一些示例中,仅当在重新定义的虚拟手势空间中无法检测到超过预定义数量的后续帧(例如输入帧之后至少10帧)时,恢复使用所述显著的解剖学特征作为定义所述虚拟手势空间的默认基础。
图10A和图10B示出了所述方法900的一种示例性实现方式。在这种实现方式中,所述虚拟手势空间704最初基于在帧序列中的输入帧中检测到的用户10的人脸12生成,然后基于在输入帧中检测到的用户10的手14重新定义所述虚拟手势空间704。在图10A中,所述虚拟手势空间704是基于在输入帧中检测到的人脸12的边界框702生成的、具有矩形形状的2D空间(例如和图7的示例类似)。在所述输入帧的所述虚拟手势空间704中检测手14,并定义手14的边界框706。在图10B中,基于手14的边界框706重新定义虚拟手势空间704b。
例如,手14的边界框706可以由一组值{xh,yh,wh,hh}定义,其中,xh和yh分别定义所述边界框706的锚点(例如中心)的x和y坐标(在所述自适应手势感应***300定义的参考帧中),wh和hh分别定义所述边界框706的宽度和高度。基于所述边界框706重新定义所述虚拟手势空间704b(例如在步骤910)。例如,以下等式可用于重新定义所述虚拟手势空间704b:
Figure BDA0003852517380000131
Figure BDA0003852517380000132
Figure BDA0003852517380000133
hg=βh·hh
其中,{xg,yg,wg,hg}是定义如上所述的虚拟手势空间704b的参数,(Δxh,Δyh)是预定义的相对位置参数,
Figure BDA0003852517380000134
是相对于检测到的手的预定义的比例参数。可以根据所述重新定义的虚拟手势空间704b的期望大小和边界框706在所述重新定义的虚拟手势空间704b内的期望位置来预定义(例如由用户10或所述手势控制设备100的制造商预定义)所述参数(Δxh,Δyh)和
Figure BDA0003852517380000135
需要说明的是,如图10B的示例中所示,人脸12可以部分或全部从重新定义的虚拟手势空间704b中去掉。
在一些示例中,当在输入帧中检测到多个人时(例如多个人被所述人脸检测和跟踪子***312检测到),所述自适应手势感应***300可以实现所述用户列表324,以对检测到的人进行排序,并将一个人识别为主用户(或主控制器)。可以仅为主用户生成所述虚拟手势空间。
图11是可以由所述自适应手势感应***300例如使用所述虚拟手势空间子***310和所述手势解析子***320(以及子***312、314、316、322、324)执行的示例性方法1100的流程图。所述方法1100可以由所述手势控制设备100的处理设备202的软件的程序或子程序执行。本发明用于执行这些程序或子程序的软件的编码属于本领域普通技术人员的范围。所述方法1100可以包括示出和描述的其它或更少的步骤或动作,且可以以不同的顺序执行。例如,由所述处理设备202执行的计算机可读代码可以存储在计算机可读介质中。所述方法1100可以包括与上述方法600描述的步骤类似的步骤,因此不再赘述。
在1102中,接收帧序列中的输入帧。所述步骤可以与上述步骤602类似。
在1104中,确定是否已经识别和选择主用户。例如,可能已经识别主用户并从分析的帧序列的前一个输入帧中选择主用户。如果已经选择了主用户,则所述方法1100执行步骤1106;否则,所述方法1100执行步骤1108。
在1106中,在输入帧中检测主用户的显著的解剖学特征(例如人脸),并在帧序列中跟踪输入帧的后续帧(例如使用所述人脸检测和跟踪子***312)。如果在前一个输入帧中识别到主用户,则可能已经为主用户定义了虚拟手势空间。在这种情况下,可以通过仅在已定义的虚拟手势空间中处理每个后续帧来检测和跟踪输入帧和输入帧的后续帧中的解剖学特征。通过处理每个后续帧来跟踪解剖学特征,但可以以较低的频率进行检测(例如跳过一个或多个后续帧)。可以检测解剖学特征以纠正跟踪误差(例如当跟踪多个后续帧时,跟踪误差会累积)。需要说明的是,尽管这里描述的是检测和跟踪主用户的显著的解剖学特征(例如人脸)的情景,但在基于输入帧中检测到的手(例如如上文图10A和10B所描述的)重新定义虚拟手势空间的情况下,可以执行步骤1106的修改且处理输入帧和后续帧,以检测和跟踪主用户的手。
在1108中,如果先前没有选择主用户,则可以使用所述人脸检测和跟踪子***312等处理整个输入帧以检测显著的解剖学特征的多个实例(例如人脸的所有实例)。可以为每个检测到的解剖学特征生成边界框和标识符。如果在输入帧中没有检测到显著的解剖学特征的多个实例,则所述方法1100可以返回步骤1102,处理帧序列中的下一个输入帧。
在1110中,基于检测到的解剖学特征的多个实例生成有序用户列表324。每个检测到的实例可以与相应的检测到的用户相关联。可以根据预定义排序标准通过进一步分析检测到的解剖学特征(例如,使用任何眼睛跟踪技术等任何合适的人脸分析技术)排序所述用户列表324。例如,如果所述解剖学特征是人脸,则排序标准可以指定较大的人脸(假设人脸更接近所述手势控制设备100)的排序高于较小的人脸;面向所述手势控制设备100的脸的排序高于远离所述手势控制设备100的脸;或者眼睛看着所述手势控制设备100的脸的排序高于眼睛远离所述手势控制设备100的脸。可以使用其它排序标准。如果仅检测到一个显著的解剖学特征的实例,则默认情况下所述实例在列表中可能排序最高。
在1112中,选择所述有序用户列表324中的排序最高的用户为主用户。如果所述用户列表324中只有一个用户,则默认情况下可以选择所述用户为主用户。然后,所述方法1100执行步骤1106,以跟踪相机102捕获的帧序列中的主用户的解剖学特征。
在1114中,为主用户生成虚拟手势空间。如果先前已定义虚拟手势空间(基于对相机102捕获的前一个帧的分析),则可以使用已定义的虚拟手势空间而不是生成虚拟手势空间。否则,基于在帧序列的输入帧中检测到的主用户的显著的解剖学特征(例如人脸)生成虚拟手势空间(例如,与上文描述的步骤606类似)。可选地,可以提供表示虚拟手势空间的信息(例如以向主用户提供反馈)。
在1116中,在所述帧序列的所述输入帧的虚拟手势空间中检测(例如使用所述手检测和跟踪子***316)手。所述步骤可以与上述步骤610类似。可选地,如果在所述输入帧中的虚拟手势空间中检测到不止一只手,则可以识别(例如基于手的大小等一些预定义标准)主手并将主手与所述虚拟手势空间相关联。可选地,可以基于输入帧中检测到的手重新定义所述虚拟手势空间(与上文图9描述的类似)。如果已经基于所述输入帧中检测到的手在所述输入帧的后续帧中重新定义所述虚拟手势空间,则在步骤1106中可能已经进行检测和跟踪,可以不需要执行此步骤。
在1118中,对检测到的手(例如由边界框定义)执行手势识别(例如使用所述手势识别子***322),并在所述帧序列的输入帧中跟踪手,以预测检测到的手的手势类别。输出预测手势类别(如果识别到有效手势),以转换为软件应用程序等的命令输入。所述用户列表324中的任何非主用户都被丢弃(即,仅保留主用户),且方法1100返回步骤1102,接收和处理相机102捕获的帧序列中的下一个输入帧。
如果手势识别无法预测有效手势(例如无法分类手形为任何预定义手势类别),或者如果手势不是当前激活的软件应用程序的有效手势(例如软件应用程序向所述自适应手势感应***300报告无效输入),所述方法1100执行步骤1120。
在1120中,从所述用户列表324中丢弃当前选择的主用户。
在1122中,确定所述用户列表324中是否存在任何其它用户。如果所述用户列表324中存在至少一个剩余用户,则执行步骤1112:选择所述用户列表324中排序最高的剩余用户为主用户,所述方法1100执行上述步骤1106。如果所述用户列表324中没有剩余的用户,则所述方法1100返回步骤1102,接收和处理所述帧序列中的下一个输入帧。
即使在相机102的FOV 20内有多个人时,所述用户列表324使所述自适应手势感应***300能够分析和处理手势输入,并减少误报。所述用户列表324是适用于存在多个人的相对高效的方式,如上所述,也可以使用其它技术来替代或补充所述用户列表324。
在上述一些示例中,可以通过处理整个输入帧来检测显著的解剖学特征(例如人脸)。在下文描述的其它示例中,可以通过仅处理输入帧内的感兴趣区域(region ofinterest,ROI)检测显著的解剖学特征。例如,在上述步骤1108中,可以使用自适应ROI方法(例如所述人脸检测和跟踪子***312可以检测人脸)。
在本发明中,自适应ROI可以被认为是“自适应”的,因为可以基于人脸检测器的需求(例如所述人脸检测和跟踪***312、处理效率或输入帧的分辨率)调整ROI的大小和/或位置。例如,基于机器学习(例如基于计算机视觉)的人脸和手检测器通常被训练用于处理正方形输入图像。因此,为了提升人脸和手检测的性能,执行检测的ROI应该是正方形。考虑到类似的原因,用于手检测的虚拟手势空间可以定义为正方形。
图12是使用自适应ROI检测相机102捕获的帧序列的输入帧中的显著的解剖学特征的示例性方法1200的流程图。所述方法1200可用作上述步骤1108的一部分。例如,所述方法1200可以由所述人脸检测和跟踪子***312实现。应理解,所述方法1100可以使用步骤1108的其它技术来实现,可以使用也可以不使用自适应ROI。
在1202中,检测是否在前一个输入帧中检测到解剖学特征。如果是,则执行步骤1204:选择用于检测前一个输入帧中的解剖学特征(例如人脸)的ROI,以在当前输入帧中重复使用。通常,用于检测解剖学特征的ROI应小于整个输入帧,且可以是正方形形状(基于检测算法的训练或设计方式)。
如果在前一个输入帧中没有检测到解剖学特征(或没有前一个输入帧),则执行步骤1206:从ROI序列中选择ROI。如果在前一个输入帧中使用ROI序列中的ROI,则可以选择ROI序列中的下一个ROI在当前输入帧中使用。可以预定义(例如在所述人脸检测和跟踪子***312中预定义)ROI序列。所述ROI序列定义了用于处理顺序输入帧的不同ROI序列。例如,如果所述ROI序列是8个不同ROI的序列(例如具有不同位置和/或大小),则序列中的每个ROI依次被选择用于在8个输入帧的序列中检测解剖学特征。然后,所述ROI序列可以循环回序列中的第一个ROI。
图13示出了具有8个不同ROI 1302、1304、1306、1308、1310、1312、1314、1316的示例性ROI序列。所述8个ROI 1302至1316可以在8个不同输入帧的序列上循环,可以应用于不同分辨率的输入帧。例如,6个ROI 1302至1312可以应用于输入帧的原分辨率1300,且可以设计成能够检测较小的解剖学特征(例如如果用户10远离所述手势控制设备100)。两个ROI1314、1316可以应用于输入帧的缩小版本1350(具有较低的分辨率),且可以设计成能够检测较大的解剖学特征(例如如果用户10接近所述手势控制设备100)。对于某些ROI 1314、1316使用输入帧的缩小版本有助于降低输入帧较大区域的计算成本。
需要说明的是,所述ROI序列在相机102捕获的帧序列上循环,使得每个输入帧仅使用一个选定的ROI处理(而不是使用两个或两个以上ROI处理相同的输入帧)。由于相机102捕获的输入帧通常以高频捕获,因此相邻帧之间的时间差可以足够小,因此通过这种方式使用ROI序列处理帧序列不会丢失信息(或丢失的信息非常少)。
可以存在预定义的不同ROI序列(例如存储在所述人脸检测和跟踪子***312中)。所使用的ROI序列可以由用户10选择,或者可以存在循环使用不同ROI序列的预定义顺序(即,可以存在待使用ROI序列的预定义顺序)。此外,尽管图13的示例示出了所述ROI序列中的每个ROI在序列中使用一次,在一些示例中,所述ROI序列可以定义为在ROI序列中使用两次或多次特定ROI。可以采用其它此类变型。
在1208中,使用选定的ROI(在步骤1204中在前一个输入帧中选择的ROI,或在步骤1206中从ROI序列中选择的ROI)检测显著的解剖学特征。
使用自适应ROI检测显著的解剖学特征(例如人脸)可以降低计算成本和/或提升训练检测器的性能。
在一些示例中,当手势检测被激活时(或当默认使用手势检测时),自适应ROI技术可用于处理相机102捕获的每个帧。在其它示例中,所述自适应ROI技术可用于处理每N个(其中,N>1)帧。
如上所述,在一些示例中,所述手检测和跟踪子***316可以输出由所述手势识别子***322用于手势识别的边界框。在一些实施例中,所述手势识别子***322可以实现使用机器学习算法构建的模型。在一些实施例中,所述手势识别子***322可以包括用于进行手势分类的经训练的神经网络(以下称为经训练的手势分类网络)。所述经训练的手势分类网络已经使用已知的机器学习算法进行训练,以学习所述神经网络的参数(例如权重)。所述经训练的手势分类接收检测到的手势的边界框,从对应于边界框的预定义手势类别集中预测特定手势类别。
通常,通过用于进行手势分类的经训练的神经网络实现的手势分类的精度随着手图像的裁剪而下降(例如当边界框与地面真值具有大偏移时)。边界框调整的示例在2019年3月15日提交的申请号为16/355,665、发明名称为“用于人脸识别的自适应图像裁剪(ADAPTIVE IMAGE CROPPING FOR FACE RECOGNITION)”的美国专利申请中描述,上述申请案的全部内容通过引用的方式并入本文中。本文描述了一种类似的边界框调整方法,有助于改进手势识别。
图14是可用于手势识别子***322的手势分类网络的示例性实现方式的框图。所述手势分类网络1400可以与到边界框修正网络1450的边分支一起实现。所述手势分类网络1400对输入帧中的边界框定义的手图像进行手势分类,所述边界框修正网络1450对所述手势分类网络1400使用的边界框进行修正。
所述手势分类网络1400接收输入帧作为输入数据。所述输入数据可以是输入帧的裁剪版本(例如基于为手定义的边界框)。在一些实施例中,所述输入数据可以是一批图像,例如用于网络1400、1450的基于批的训练,或基于帧序列启用手势分类。所述手势分类网络1400包括一系列卷积块1402(例如使用ResNet设计实现)。为了简单起见,示出了3个这样的卷积块1402,但在所述手势分类网络1400中可以有更多或更少的卷积块1402。这些卷积块1402输出到手势分类全连接网络(fully connected network,FCN)1404,所述网络输出确定的手势类别。所述手势分类FCN 1404接收从一系列卷积块1402的最后一个卷积块1402输出的矢量作为输入。所述手势分类FCN 1404使用特征嵌入来确定由边界框定义的手的手势类别,并将确定的手势类别输出为标签。在一些示例中,所述手势分类FCN 1404输出包括可能手势类别的概率分布的矢量。即,所述手势分类网络1400的输出可以是不同手势类别的概率,而不是一个确定的手势类别。在一些示例中,所述手势分类FCN 1404在最后一个输出层中包括softmax函数,可以用于规范可能手势类别的输出概率分布。
向属于所述边界框修正网络1450的边分支1452也输出每个卷积块1402。向边界框修正FCN 1454输出每个边分支1452。每个边分支1452可以单独包括可选的最大池化层、可选的调整大小层和卷积块。边分支1452的输出被级联成组合输出矢量,在输入到所述边界框修正FCN1454之前,所述组合输出矢量可以由1x1卷积块(未示出)平铺。所述边界框修正FCN 1454的输出是调整或修正定义输入帧中手的边界框的大小和位置的信息(例如以边界框的坐标信息的形式)。
下文描述联合网络1400、1450的训练。如上所述,所述手势分类FCN 1404可以包括softmax层。所述手势分类FCN 1404可以进一步计算和输出交叉熵损失,所述交叉熵损失可以认为是输出概率分布和模型中原始概率分布之间的差值的度量。所述交叉熵损失可以用作softmax层的损失函数,因此也可以称为softmax损失。类似地,边界框损失可以由所述边界框修正FCN 1454输出。所述softmax损失和所述边界框损失可以组合为总损失函数,所述总损失函数可以用于训练(1456)联合网络1400、1450。所述softmax损失、所述边界框损失和使用总损失函数的训练(1456)可以仅在网络1400、1450的训练期间使用,在推理期间可以不需要。
在网络1400、1450的训练期间,可以使用基于围绕地面真值手边界框的随机裁剪的手图像生成训练数据样本。
图15示出了一些示例,其中,地面真值1502定义了手图像的优化边界框,生成其它随机裁剪的手图像作为训练数据样本1504。需要说明的是,所述训练数据样本1504不仅可以移动边界框的位置,而且还可以改变边界框的大小(使得边界框中的手图像可以看起来更大或更小)。每个训练数据样本1504相对于地面真值1502的边界框偏移被用作用于训练边界框修正的标签。
联合网络1400、1450通过最小化总损失函数来训练,在本示例中,总损失函数是分类损失函数(softmax损失)和边界框损失函数的线性组合。下文描述边界框损失函数的一个示例。
考虑图16中的简化示例,示出了围绕对象定义的地面真值边界框1602和裁剪的训练数据样本边界框1604。设{(x1,y1),(x1,y2),(x2,y1),(x2,y2)}为所述训练数据样本边界框1604的位置(在本示例中,为四个角)的坐标,设
Figure BDA0003852517380000174
为所述对应的地面真值1602边界框的位置的坐标。所述边界框修正网络1450估计所述训练数据样本边界框1604与所述地面真值边界框1602之间的相对旋转θ和相对位移{z1,z2,z3,z4},其中:
Figure BDA0003852517380000171
所述边界框损失函数可以定义为:
Figure BDA0003852517380000172
其中,λ为正则化参数。
在推理期间,可以迭代地校正定义输入帧中的手图像的边界框,直到所述边界框修正网络1450预测的偏移接近0。可以通过组合每次迭代获得的所有单个手势分类分数来计算最终手势分类分数,计算如下:
Figure BDA0003852517380000173
其中,sm是第m次迭代的分类分数(例如softmax输出),
Figure BDA0003852517380000181
是第m个边界框和最终修正边界框的对应权重(例如检测评价函数(intersection over union,IoU))。
在推理期间,使用所述手势分类网络1400将迭代分类应用于输入手图像(由应用于输入帧的边界框定义)。在每次迭代中,基于前一次迭代的输出边界框修正参数来校正前一个输入图像,获得所述手势分类网络1400的输入图像。
因此,所述边界框修正网络1450和所述手势分类网络1400一起操作,以提供反馈,所述反馈用于修正定义输入帧中的手图像的边界框,这样有助于提升所述手势分类网络1400的性能。
图17是使用用于进行手势识别边界框修正(例如使用上述联合网络1400、1450)的示例性方法1700的流程图。所述方法1700可用作上述步骤1118的一部分。例如,所述方法1700可以由所述手势识别子***322实现。应理解,所述方法1100可以使用用于步骤1118的其它技术来实现,且可以使用也可以不使用边界框修正。
在1702中,接收输入帧以及定义检测到的手的边界框(例如由所述手检测和跟踪子***316输出)。
在1704中,具有联合边界框修正网络(如上所述)的所述手势分类网络可用于进行具有边界框修正的手势分类。
可选地,在1706中,可以在多个输入帧上进行手势分析。例如,所述手势识别子***322可以存储前一个输入帧的缓冲器,并通过考虑前一个输入帧来进行手势分析。
缓冲器(例如在所述自适应手势感应***300中实现)可用于存储预定数量的前一个输入帧。存储在缓冲器中的前一个输入帧的数量可以相对较小(例如,前10至30个输入帧),以便更高效地利用存储器资源。在一些示例中,缓冲器可以另外或替代地存储对少量前一个输入帧进行的手势分析结果。
对于要识别的单个静态手势,所述手势识别子***322可以要求在预定义数量(N)的先前输入帧上检测相同手势类别的预定义最小次数(K),其中,K≥1且K≤N。此要求可有助于提高检测精度,减少误报。在一些示例中,可以在N个先前输入帧的K个连续输入帧上检测相同的手势类别。可以选择预定义的最小次数K为相对较小的数字(例如10),以更好地检测并仍然实现接近实时的手势识别。使用这种方法可以检测到的静态手势可以包括静音手势(例如用于静音或取消静音命令)或张开手掌手势(例如用于播放或暂停命令)等。N个先前输入帧可以存储在缓冲器中,并可以用作检测手势的滑动窗口,有助于减少误报。
所述手势识别子***322可以是基于两个或两个以上静态手势的组合识别动态手势。例如,完整的动态手势可以解耦成不同的状态,其中,状态之间的转换是静态手势的检测结果。所述手势识别子***322可以实现一组预定义的状态转换规则,用于基于状态的动态手势识别。
图18是基于状态的动态手势识别的一个示例的状态图,动态手势识别可以由手势识别子***322实现。当手势输入首次被激活时,或者当未检测到当前有效手势时,中性状态1802可以是默认的初始状态。
当先检测到握拳手势转换到滑动准备状态1804时,接着检测到张开手掌手势转换到滑动状态1806时,可以检测到滑动动态手势。在达到滑动状态1806时,所述手势识别子***322将手势输入识别为动态滑动手势。因此,识别静态握拳手势接着是识别静态张开手掌手势(按照适当的顺序),结果为识别动态滑动手势。此外,需要通过检测到的握拳手势和检测到的张开手掌手势之间的位置变化,以正向地检测动态滑动手势(例如为了将滑动手势与不涉及位置变化的另一个动态手势区分开来)。可以基于手边界框坐标的变化计算检测到的手势的位置变化。在达到滑动状态1806时,所述手势识别子***322可以生成表示识别到的手势(例如手势类别标签)的输出,还可以提供表示滑动准备状态1804和滑动状态1806检测之间位置变化的输出。
垂直或水平动态拖动手势可以被检测为撑开手势、捏合手势和撑开静态手势的组合。例如,在检测到撑开静态手势之后,从中性状态1802转换到捏合准备状态1808。在检测到捏合静态手势之后,从捏合准备状态1808转换到捏合激活状态1810。垂直位置的变化(例如大于预定义阈值的变化)会引起从捏合激活状态1810并保持在捏合静态手势转换到垂直拖动状态1812。类似地,水平位置的变化(例如大于预定义阈值的变化)会引起从捏合激活状态1810并保持在捏合静态手势转换到水平拖动状态1814。如果位置变化是垂直和水平变化的组合(例如位置的对角线变化),则幅度较大的变化可用于确定状态转换。或者,如果位置变化是垂直和水平变化的组合,则可能无法识别状态转换。在达到垂直拖动状态1812或水平拖动状态1814时,所述手势识别子***322可以生成表示识别到的手势(例如手势类别标签)的输出,还可以提供表示垂直或水平位置变化的输出。例如,所述手势识别子***322可以计算距离(例如基于输入帧中定义的坐标)并输出所述距离值。所述距离值可用于将动态拖动手势映射为拖动命令输入。检测到撑开静态手势会引起从垂直拖动状态1812或水平拖动状态1814转换到捏合准备状态1808。返回到捏合准备状态1808可以识别为动态拖动手势的结束。
对于涉及位置变化的动态手势,所述手势识别子***322可以基于物理定律和/或预期的人运动实现预定义规则,以进一步排除可能的误报。例如,预定义规则可以是,检测到的手不应在连续输入帧之间大于预定义阈值的位置变化(例如超过100像素的变化)。
使用基于状态的手势识别比基于运动的手势分类和识别更有利。例如,与检测静态手势相比,检测和处理手势运动需要更多处理资源。此外,基于状态的手势识别可能不容易出现误报。
在一些示例中,本发明描述了一种用于在相机102捕获的帧序列的输入帧中进行手检测的方法。所述方法包括进行图像调整以提高图像质量。一般来说,在弱光场景下手势识别性能往往会下降。例如,如果所述手势控制设备100是在黑暗房间中观看的智能电视,则当帧序列被所述手势控制设备100的相机102捕获时,智能电视的屏幕可以是唯一重要的照明源。本发明提出了三种方法来解决这个问题。下文描述了用于图像调整的一些示例性技术,每一种技术可以由所述手检测和跟踪子***316等实现,且可以使用***组合。
图19是用于进行手检测和跟踪的示例性方法1900的流程图,所述方法1900包括在相机102捕获的帧序列中进行图像调整。所述方法1900可用作上述步骤1116的一部分。例如,所述方法1900可以由所述手检测和跟踪子***316实现。应理解,所述方法1100可以使用用于步骤1116的其它技术来实现,可以使用也可以不使用下文描述的图像调整。
所述方法1900在定义(例如在步骤1114由所述虚拟手势空间生成子***314定义)虚拟手势空间之后开始。
在1902中,确定在相机102捕获的帧序列的前一个输入帧中是否已经检测到手。如果已经检测到手,则所述方法1900可以执行步骤1908。例如,如果已经在前一个输入帧中成功检测到手,则在前一个输入帧中成功检测到手生成的边界框可以用作在帧序列中跟踪当前输入帧中的手的起点(例如基于假设连续帧之间的时间足够短,手至少部分仍在前一个边界框内)。此外,如果在帧序列的前一个输入帧中成功检测到手,则可以认为环境中的照明是足够的(例如基于假设环境中的光水平在连续帧之间的短时间内不会发生显著变化)且不需要图像调整。
如果在相机102捕获的帧序列中的前一个输入帧中没有检测到手,则所述方法1900执行步骤1904。
可选地,在1904中,进行图像调整。在一些示例中,只有在确定需要图像调整时,才能进行图像调整。例如,所述手势控制设备100的光传感器可用于检测环境光水平,并确定光水平是否足够低以需要图像调整。在一些示例中,可以分析输入图像(例如在整个输入图像上、仅在虚拟手势空间上或仅在手边界框上)的至少一部分(例如确定总体像素强度级别)以确定是否需要图像调整。
在一些示例中,可以默认进行图像调整,而不先确定是否需要图像调整。在这种情况下,如果图像亮度足够,则进行图像调整(例如伽马校正)可能会导致图像变化很少或没有变化。
可使用各种技术进行图像调整,具体是用于校正弱光条件的技术。
在一些示例中,图像调整可以包括调整图像的亮度,使用在帧序列的前一个帧中检测到的脸作为参考(在人脸是显著的解剖学特征的情况下)。假设在前一个帧中已经检测到人脸(例如使用所述人脸检测和跟踪子***312),则检测到的人脸可以用作参考,以在输入帧上进行照明调整。
Figure BDA0003852517380000203
Figure BDA0003852517380000204
分别表示在弱光和优选照明条件下捕获的人脸图像的像素强度的预定义(例如通过校准经验确定或预编码)均值和标准偏差。
图20是在弱光条件下捕获包括人脸的图像时像素强度值的代表性直方图2002的示意图,以及在优选照明条件下捕获包括人脸的图像时像素强度值的代表性直方图2004。
从弱光像素到优选照明像素的映射可以使用以下公式计算:
Figure BDA0003852517380000201
使用该等式,输入帧中定义的虚拟手势空间内的所有像素xi可以通过使用上述映射公式转换为经调整的像素yi,以更好地检测手。尽管上文描述了用于校正弱光条件的照明调整,但应理解,类似的照明调整可以用于校正过亮条件。
在一些示例中,图像调整可以包括进行伽马校正(可以认为是照明校正方式)。可以使用各种伽马校正技术。例如,设xi为输入帧的单个通道的像素值。然后,伽马变换可以通过以下方式计算:
Figure BDA0003852517380000202
其中,yi是经调整的像素值,γ是伽马变换的标准参数。
在一些示例中,图像调整可以包括改变所述手势控制设备100的显示。这种方法在所述手势控制设备100的屏幕是环境中的照明源的情况下是有利的(例如所述手势控制设备100是电视、智能手机或平板电脑)。在这种方法中,可以先使用任何合适的技术检测弱光条件。例如,可以使用作为所述手势控制设备100的一部分的光传感器检测弱光条件。还可以通过分析输入帧的像素强度来检测弱光条件,如果大多数像素低于预定义强度阈值,则可以确定弱光条件。
在检测到弱光条件之后,可以控制所述手势控制设备100的屏幕的显示内容和/或亮度,使得屏幕成为更强的光源以捕获更好质量的图像。可以发送所述自适应手势感应***300的输出,以表示输入帧已被分析为照明较差,且所述处理设备202可以控制显示器104相应地改变屏幕的显示内容和/或亮度。在一些示例中,弱光条件检测不是基于图像分析(例如使用所述手势控制设备100的光传感器),所述处理设备202可以相应地控制显示器104,不需要来自所述自适应手势感应***300的任何信息。
在一些示例中,以这种方式控制显示内容和/或亮度可以在检测到弱光条件之后和已经启动手势输入之后进行(例如用户10已经手动提供输入以激活基于手势的命令输入,或已初步检测到识别的手势)。在一些示例中,可以控制所述手势控制设备100的屏幕以改变屏幕背景光,使得屏幕更明亮。在一些示例中,可以控制所述手势控制设备100的屏幕以将照明部分添加到显示内容。所述照明部分可以是显示器的较亮部分(例如全白部分)。
例如,图21A示出了可以在常规光条件下显示的常规图像2102,或者当电视或智能手机等手势控制设备的显示器104上尚未启动手势输入时显示常规图像2102。在检测到弱光条件并启动手势输入之后,显示内容可以调整为图21B中的内容。在图21B中,图像2102的大小减小,并添加了照明部分2104。在本示例中,照明部分2104是沿着显示器的所有四个侧面的边界。在其它部分中,照明部分2104可以仅沿着一个侧面、两个侧面或三个侧面,或者可以包括沿着显示器的一个或多个侧面的不连续部分。可以基于检测到的弱光条件自动调整照明部分2104的亮度、色调和/或大小(例如厚度和长度)。例如,在预定义阈值下(例如基于检测到的像素强度,或基于光传感器的输出)可以存在不同弱光水平,且可以在不同弱光水平下预定义照明部分2104的不同参数。通常,更低的照明水平可能需要更大和/或更亮的照明部分2104。
再次参见图19,在1906中,在所述虚拟手势空间中进行手检测(例如使用所述手检测和跟踪子***316)。所述手检测和跟踪子***316可以包括经训练的神经网络,可以如上所述用于检测图像2104中的手。所述手检测和跟踪子***316使用经训练的神经网络成功检测到的手可以输出为在所述虚拟手势空间中检测到的手定义的边界框。
在1908中,基于为检测到的手定义的边界框,使用所述手检测和跟踪子***316进行手跟踪。可以基于跟踪更新边界框。
然后,可以提供手检测和跟踪的信息(例如是定义手的边界框)用于手势识别(例如由所述手势识别子***322识别)。
在各种示例中,本发明描述了有助于提高手势输入检测和识别的精度和效率的***和方法。本发明可用于在复杂环境中检测和识别手势输入和/或用于手势的长距离检测。
使用上述方法中的一个或多个方法(例如自适应ROI技术、边界框修正联合网络、虚拟手势空间、图像调整、基于状态的手势识别)可以实现,即使在复杂的现实生活场景中,对手势输入的鲁棒性更强的检测和识别。提升的手势检测精度可以更高效地处理捕获的输入帧。在一些示例中,输入帧可以以低于图像捕获速率的频率处理。例如,不是处理每个输入帧,而是处理每N个(其中,N>1)帧,用于检测和跟踪人脸(或其它显著的解剖学特征)和手。N可以是用户选择的参数,可以是预编程参数,或者可以是所述手势控制设备100自动选择的参数(例如,当图像以低于预定义阈值的速率捕获时,N可以是1;当图像捕获超过预定义阈值时,N可以是2或以上;当图像质量差或分辨率低时,N可以是1;当图像分辨率高时,N可以是2或以上)。通过处理每N个(N>1)帧,仍然可以高精度接近实时地进行手势检测和识别,且可以减少手势控制设备所需的处理资源。
本发明描述了使用神经网络用于人脸和手检测的示例性实现方式。描述了一个示例性联合神经网络,所述神经网络能够修正手边界框,有助于提高手势分类和识别的精度。
在一些示例中,描述了虚拟手势空间,可以基于检测到的人脸(或其它显著的解剖学特征)定义虚拟手势空间。通过使用定义的虚拟手势空间来检测手,可以实现更准确和/或更高效的手势检测。在一些示例中,所述虚拟手势空间还可以有子空间,特定子空间的手势输入可以映射为鼠标输入。因此,所述虚拟手势空间可以用作虚拟鼠标。
尽管已经在具有显示器和相机(例如智能电视、智能手机或平板电脑)的手势控制设备中描述了一些示例,但本发明可以与包括或不包括显示器和/或相机的其它手势控制设备相关。例如,本发明可以与智能扬声器、智能电器、物联网(Internet of things,IoT)设备、仪表盘设备(例如安装在车辆中)或具有低计算资源的设备相关。
本文描述的这些示例可适用于人工现实(artificial reality,AR)、虚拟现实(virtual reality,VR)和/或视频游戏应用。
尽管本发明以特定的顺序描述了方法和流程,但可以视情况省略或更改方法和流程的一个或多个步骤。一个或多个步骤可以按顺序执行,但不是按描述的顺序执行(视情况而定)。
尽管描述了本发明,但至少部分地,就方法而言,本领域普通技术人员将理解,本发明还涉及各种组件,用于通过硬件组件、软件或两者的任意组合执行所描述的方法的至少一些方面和特征。相应地,本发明的技术方案可通过软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其它类似的非易失性或非瞬时性计算机可读介质中,例如,DVD、CD-ROM、USB闪存盘、可移动硬盘或其它存储介质等。所述软件产品包括有形地存储在其上的指令,这些指令使处理设备(例如,个人计算机、服务器或网络设备)能够执行本文中所公开的方法示例。
本发明可以其它特定形式体现,而不脱离权利要求的主题。所描述的示例实施例在各方面都仅仅是示意性的,而不是限制性的。可以将上述一个或多个实施例中的选定特征组合以创建未明确描述的替代性实施例,理解适合此类组合的特征在本发明的范围内。
还公开了公开范围内的所有值和子范围。此外,尽管本文所公开和显示的***、设备和流程可包括特定数量的元素/组件,但可以修改所述***、设备和组合件,以包括此类元素/组件中的更多或更少的元素/组件。例如,尽管所公开的任何元件/组件可以引用为单个数量,但是可以修改本文所公开的实施例以包括多个此类元件/组件。本文所描述的主题旨在覆盖和涵盖所有适当的技术变更。

Claims (22)

1.一种方法,其特征在于,包括:
处理由设备的相机捕获的帧序列的输入帧,以确定所述输入帧中的显著的解剖学特征的至少一个检测到的实例的位置;
对于所述显著的解剖学特征的所述至少一个检测到的实例中的至少一个选定实例,基于所述显著的解剖学特征的所述一个选定实例的位置,定义虚拟手势空间,所述虚拟手势空间是用于检测手势输入的定义的空间;
仅在所述虚拟手势空间中处理所述帧序列中的每个帧,以检测和跟踪至少一只手,使用通过检测和跟踪所述至少一只手生成的信息预测与所述至少一只手相关联的手势类别;
输出与所述至少一只手相关联的所述预测的手势类别。
2.根据权利要求1所述的方法,其特征在于,所述显著的解剖学特征是人脸。
3.根据权利要求1或2所述的方法,其特征在于,具有所述显著的解剖学特征的多个检测到的实例,针对每个相应的检测到的实例定义一个虚拟手势空间,并且每个虚拟手势空间被处理以执行手检测和跟踪。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
在所述虚拟手势空间被定义之后,通过在所述定义的虚拟手势空间中执行手检测和跟踪来处理至少一个后续输入帧,而不进一步对在所述后续输入帧中的所述显著的解剖学特征执行检测。
5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
使用通过检测和跟踪所述至少一只手生成的信息,基于所述至少一只手的检测到的位置,重新定义所述虚拟手势空间。
6.根据权利要求5所述的方法,其特征在于,还包括:
在基于所述至少一只手的所述检测到的位置重新定义所述虚拟手势空间之后,通过在所述重新定义的虚拟手势空间中执行手检测和跟踪来处理至少一个后续输入帧,而不进一步对所述后续输入帧中的所述显著的解剖学特征执行检测。
7.根据权利要求1至6中任一项所述的方法,其特征在于,通过检测和跟踪所述至少一只手生成的所述信息包括限定所述输入帧中的所述至少一只手的边界框,并且,手势分类是使用所述边界框执行的。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:
在所述虚拟手势空间中定义一个或多个子空间;
其中,通过检测和跟踪所述至少一只手生成的信息包括指示在所述一个或多个子空间中的一个子空间中检测到所述至少一只手的信息;
其中,每个子空间与相应的鼠标输入相关联。
9.根据权利要求1至8中任一项所述的方法,其特征在于,还包括:
仅在所述虚拟手势空间中处理所述帧序列的每个输入帧,以检测和跟踪所述至少一只手;
使用通过检测和跟踪所述至少一只手生成的信息,输出与所述至少一只手相关联的手势类别。
10.一种装置,其特征在于,包括:
处理设备,与存储器耦合,所述存储器存储机器可执行指令,其中,所述指令当由所述处理设备执行时,使所述装置执行以下操作:
处理输入帧,以确定所述输入帧中的显著的解剖学特征的至少一个检测到的实例的位置;
对于所述显著的解剖学特征的所述至少一个检测到的实例中的至少一个选定实例,基于所述显著的解剖学特征的所述一个选定实例的位置,定义虚拟手势空间,所述虚拟手势空间是用于检测手势输入的定义的空间;
仅在所述虚拟手势空间中处理所述输入帧,以检测和跟踪至少一只手;
使用通过检测和跟踪所述至少一只手生成的信息,确定与所述至少一只手相关联的手势类别。
11.根据权利要求10所述的装置,其特征在于,所述显著的解剖学特征是人脸。
12.根据权利要求10或11所述的装置,其特征在于,具有所述显著的解剖学特征的多个检测到的实例,针对每个相应的检测到的实例定义一个虚拟手势空间,并且每个虚拟手势空间被处理以执行手检测和跟踪。
13.根据权利要求10至12中任一项所述的装置,其特征在于,所述指令还使所述装置:
在所述虚拟手势空间被定义之后,通过在所述定义的虚拟手势空间中执行手检测和跟踪来处理至少一个后续输入帧,而不进一步对在所述后续输入帧中的所述显著的解剖学特征执行检测。
14.根据权利要求10至13中任一项所述的装置,其特征在于,所述指令还使所述装置:
使用通过检测和跟踪所述至少一只手生成的信息,基于所述至少一只手的检测到的位置,重新定义所述虚拟手势空间。
15.根据权利要求14所述的装置,其特征在于,所述指令还使所述装置:
在基于所述至少一只手的所述检测到的位置重新定义所述虚拟手势空间之后,通过在所述重新定义的虚拟手势空间中执行手检测和跟踪来处理至少一个后续输入帧,而不进一步对所述后续输入帧中的所述显著的解剖学特征执行检测。
16.根据权利要求10至15中任一项所述的装置,其特征在于,通过检测和跟踪所述至少一只手生成的所述信息包括限定所述输入帧中的所述至少一只手的边界框,并且手势分类是使用所述边界框执行的。
17.根据权利要求10至16中任一项所述的装置,其特征在于,所述指令还使所述装置:
在所述虚拟手势空间中定义一个或多个子空间;
其中,通过检测和跟踪所述至少一只手生成的信息包括指示在所述一个或多个子空间中的一个子空间中检测到所述至少一只手的信息;
其中,每个子空间与相应的鼠标输入相关联。
18.根据权利要求10至17中任一项所述的装置,其特征在于,所述装置是手势控制设备,所述确定的手势类别用于确定对所述手势控制设备的命令输入。
19.根据权利要求18所述的装置,其特征在于,还包括相机,所述相机用于捕获包括所述输入帧的帧序列。
20.根据权利要求18或19所述的装置,其特征在于,所述手势控制设备是以下设备中的一种:
电视;
智能手机;
平板电脑;
车载设备;
物联网设备;
人工现实设备;或
虚拟现实设备。
21.一种计算机可读介质,其特征在于,存储有机器可执行指令,所述指令当由装置的处理设备执行时,使所述装置执行根据权利要求1至9中任一项所述的方法。
22.一种计算机程序,其特征在于,存储有机器可执行指令,所述指令当由装置的处理设备执行时,使所述装置执行根据权利要求1至9中任一项所述的方法。
CN202080098779.9A 2020-03-23 2020-03-23 用于基于手势控制设备的方法和*** Pending CN115298638A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/080562 WO2021189173A1 (en) 2020-03-23 2020-03-23 Methods and systems for hand gesture-based control of a device

Publications (1)

Publication Number Publication Date
CN115298638A true CN115298638A (zh) 2022-11-04

Family

ID=77890797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080098779.9A Pending CN115298638A (zh) 2020-03-23 2020-03-23 用于基于手势控制设备的方法和***

Country Status (7)

Country Link
US (1) US20230082789A1 (zh)
EP (1) EP4115264A4 (zh)
JP (1) JP7447302B2 (zh)
KR (1) KR20220156601A (zh)
CN (1) CN115298638A (zh)
BR (1) BR112022019021A2 (zh)
WO (1) WO2021189173A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275453B1 (en) 2019-09-30 2022-03-15 Snap Inc. Smart ring for manipulating virtual objects displayed by a wearable device
US11798429B1 (en) 2020-05-04 2023-10-24 Snap Inc. Virtual tutorials for musical instruments with finger tracking in augmented reality
US11520399B2 (en) 2020-05-26 2022-12-06 Snap Inc. Interactive augmented reality experiences using positional tracking
US11925863B2 (en) * 2020-09-18 2024-03-12 Snap Inc. Tracking hand gestures for interactive game control in augmented reality
US11740313B2 (en) 2020-12-30 2023-08-29 Snap Inc. Augmented reality precision tracking and display
US20220225050A1 (en) * 2021-01-13 2022-07-14 Dolby Laboratories Licensing Corporation Head tracked spatial audio and/or video rendering
US12013985B1 (en) 2021-02-25 2024-06-18 Snap Inc. Single-handed gestures for reviewing virtual content
US11861070B2 (en) 2021-04-19 2024-01-02 Snap Inc. Hand gestures for animating and controlling virtual and graphical elements
US11983327B2 (en) * 2021-10-06 2024-05-14 Fotonation Limited Method for identifying a gesture
KR20230073869A (ko) * 2021-11-19 2023-05-26 삼성전자주식회사 인터랙션을 지원하는 사용자 인터페이스를 제공하는 방법 및 이를 수행하는 전자 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5706340B2 (ja) 2009-01-21 2015-04-22 トムソン ライセンシングThomson Licensing 顔検出及びホットスポットの動きによりメディアを制御する方法
JP4701424B2 (ja) 2009-08-12 2011-06-15 島根県 画像認識装置および操作判定方法並びにプログラム
JP5766957B2 (ja) 2011-01-14 2015-08-19 オリンパス株式会社 ジェスチャ入力装置
TW201237773A (en) * 2011-03-15 2012-09-16 Wistron Corp An electronic system, image adjusting method and computer program product thereof
JP5935529B2 (ja) 2012-06-13 2016-06-15 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
CN106383452B (zh) 2016-11-24 2020-06-19 北京地平线机器人技术研发有限公司 智能控制模块和包括其的厨电设备
JP2018147054A (ja) * 2017-03-01 2018-09-20 学校法人東邦大学 非接触遠隔ポインター制御装置
CN107491755B (zh) * 2017-08-16 2021-04-27 京东方科技集团股份有限公司 用于手势识别的方法及装置
CN108108024B (zh) * 2018-01-02 2021-01-22 京东方科技集团股份有限公司 动态手势获取方法及装置、显示装置
CN108460329B (zh) * 2018-01-15 2022-02-11 任俊芬 一种基于深度学习检测的人脸手势配合验证方法

Also Published As

Publication number Publication date
EP4115264A4 (en) 2023-04-12
JP2023518562A (ja) 2023-05-02
EP4115264A1 (en) 2023-01-11
JP7447302B2 (ja) 2024-03-11
BR112022019021A2 (pt) 2022-11-01
US20230082789A1 (en) 2023-03-16
WO2021189173A1 (en) 2021-09-30
KR20220156601A (ko) 2022-11-25

Similar Documents

Publication Publication Date Title
JP7447302B2 (ja) デバイスのハンドジェスチャベースの制御のための方法及びシステム
US11249557B2 (en) Methods and systems for controlling a device using hand gestures in multi-user environment
US8553931B2 (en) System and method for adaptively defining a region of interest for motion analysis in digital video
US20190346932A1 (en) Motion-Assisted Visual Language for Human Computer Interfaces
US9256324B2 (en) Interactive operation method of electronic apparatus
US8442269B2 (en) Method and apparatus for tracking target object
US11809637B2 (en) Method and device for adjusting the control-display gain of a gesture controlled electronic device
CN110959160A (zh) 一种手势识别方法、装置及设备
US20120069168A1 (en) Gesture recognition system for tv control
US12001613B2 (en) Methods and systems for hand gesture-based control of a device
JP2009080539A (ja) ジェスチャ認識装置及びその方法
KR101279561B1 (ko) 깊이정보 기반 고속 고정밀 얼굴 검출 및 추적 방법
JP2010165052A (ja) 画像処理装置及び画像処理方法
KR20220026426A (ko) 비디오 품질 향상 방법 및 장치
KR101534776B1 (ko) 깊이 정보를 이용한 템플릿 매칭 기반 고속 얼굴 추적 방법
JP5693670B2 (ja) 画像処理装置及び画像処理方法
CN117351556A (zh) 手势识别方法、装置、车辆及存储介质

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