CN117813581A - 多角度手部跟踪 - Google Patents
多角度手部跟踪 Download PDFInfo
- Publication number
- CN117813581A CN117813581A CN202180099983.7A CN202180099983A CN117813581A CN 117813581 A CN117813581 A CN 117813581A CN 202180099983 A CN202180099983 A CN 202180099983A CN 117813581 A CN117813581 A CN 117813581A
- Authority
- CN
- China
- Prior art keywords
- gesture
- electronic device
- camera
- confidence score
- images
- 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
- 238000000034 method Methods 0.000 claims description 89
- 230000015654 memory Effects 0.000 claims description 17
- 210000002478 hand joint Anatomy 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000013136 deep learning model Methods 0.000 claims description 6
- 238000010422 painting Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 2
- 238000012545 processing Methods 0.000 description 92
- 238000012549 training Methods 0.000 description 58
- 239000010410 layer Substances 0.000 description 44
- 238000013528 artificial neural network Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 35
- 238000004891 communication Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 20
- 239000011521 glass Substances 0.000 description 19
- 238000013527 convolutional neural network Methods 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 10
- 238000007781 pre-processing Methods 0.000 description 10
- 210000004027 cell Anatomy 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/163—Wearable computers, e.g. on a belt
-
- 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/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
Abstract
本申请旨在识别用户的手势。一个或多个第一图像由第一摄像头拍摄,并包括手部的第一视角。从一个或多个第一图像中识别第一手势。从第二摄像头拍摄的一个或多个第二图像中识别第二手势,例如,一个或多个第二图像与一个或多个第一图像基本同时拍摄。一个或多个第二图像包括与第一视角不同的手部的第二视角。手部的最终手势是根据第一手势和第二手势确定的,并用于对对象执行操作。第一摄像头和第二摄像头被包括在两个不同的电子设备中。该操作由两个电子设备中的一个执行,或者由不同于两个电子设备的第三个电子设备执行。
Description
技术领域
本申请一般涉及手势识别,包括但不限于用于识别空中手势和在电子设备的用户界面上执行手势控制的方法、系统和非暂时性计算机可读介质。
背景技术
手势控制是当今电子设备用户界面的重要组成部分。对于带有触摸屏的设备,触摸手势用于调用各种用户界面功能。常见的触摸手势包括单击、双击、轻扫、捏合、缩放、旋转等。每个触摸手势通常都与特定的用户界面功能相关联。例如,轻扫手势通常用于上下滚动网页和在相册应用程序中切换图片。与此相反,非触摸式空中手势用于实现无触摸屏电子设备的某些用户界面功能,例如,头戴式显示器(如,虚拟现实头盔、增强现实眼镜、混合现实头盔)。这些设备没有触摸屏,但可以包括前置摄像头或微型雷达,以实时跟踪人的手。例如,一些头戴式显示器已经实现了手部跟踪功能,以完成用户交互,包括选择、点击以及在虚拟键盘上打字。当用户的手无法触摸屏幕时,也可以在带有触摸屏的设备上使用空中手势(例如,在准备饭菜时,用户可以使用空中手势向下滚动菜谱,这样用户就不需要用湿手触摸设备屏幕了)。拥有高效的和准确的空中手势识别机制是有益的,尤其是在从电子设备的视角无法清晰识别空中手势或电子设备没有摄像头时。
发明内容
本申请的各种实施例涉及空中手势控制,更具体地,涉及从多个摄像头从不同视角拍摄的图像或视频帧中查找手部的一组关节位置的系统和方法。特别地,当其中一个摄像头无法准确拍摄到显示空中手势的图像时,其他摄像头拍摄到的图像可以补充该摄像头拍摄的不准确图像,从而能够鲁棒地实现手部跟踪。在一些情况下,头戴式显示器(head-mounted display,HMD)使用安装在HMD上的集成摄像头来跟踪手部的移动,而另一个摄像设备(如监控摄像头、手机)与集成摄像头同时跟踪手部的移动。对于集成摄像头和摄像设备中每个,都使用基于计算机视觉的算法对图像进行处理,以基本实时地提取相应的手势。从相应的手势中选择或组合出最终手势,并应用执行对软件程序的对象的后续操作。操作可在HMD、其他摄像设备或其他电子设备处执行。
具体地,在一个方面,执行一种方法来识别用户手势。所述方法包括获取由第一摄像头拍摄的一个或多个第一图像。所述一个或多个第一图像包括手部的第一视角(即可视角度),并从所述一个或多个第一图像中识别第一手势。所述方法还包括获取第二手势。所述第二手势是从一个或多个第二图像中识别得到的,所述一个或多个第二图像由第二摄像头拍摄,例如,所述一个或多个第二图像与所述一个或多个第一图像基本同时拍摄。所述一个或多个第二图像包括手部的第二视角,所述第二视角与所述第一视角不同。所述方法还包括根据所述第一手势和所述第二手势确定手部的最终手势,并根据所述最终手势对对象执行预定义操作。
在一些实施例中,所述方法至少部分或全部由集线器设备执行,所述集线器设备不同于且通信耦合于第一电子设备和第二电子设备。所述第一电子设备包括第一摄像头,用于执行预定义操作。所述第二电子设备包括第二摄像头,并且不同于所述第一电子设备。或者,在一些实施例中,所述方法至少部分或全部由集线器设备来执行,所述集线器设备不同于且通信耦合于第一电子设备、第二电子设备和第三电子设备。所述第一电子设备包括第一摄像头。所述第二电子设备包括第二摄像头。所述第三电子设备用于执行预定义操作。第一电子设备、第二电子设备和第三电子设备彼此不同。在这些实施例中,可选地,集线器设备可以是服务器,所述服务器远离第一电子设备和第二电子设备,并至少部分地通过广域网(wide area network,WAN)与所述第一电子设备和所述第二电子设备通信耦合,也可以是本地设备(如网络路由器),本地设备通过局域网(local area network,LAN)与所述第一电子设备和所述第二电子设备通信耦合。
此外且可选地,在一些实施例中,电子系统包括第一电子设备和第二电子设备,所述第一电子设备包括第一摄像头,所述第二电子设备包括第二摄像头。所述方法在第一电子设备处执行。预定义操作在所述第一电子设备、所述第二电子设备或者不同于所述第一电子设备和所述第二电子设备的第三电子设备处执行。
在另一方面,一些实施例包括电子系统,所述电子系统包括一个或多个处理器和存储有指令的存储器,当所述一个或多个处理器执行所述指令时,使得处理器执行上述任何方法。
在又一个方面,一些实施例包括非暂时性计算机可读介质,其上存储有指令,当所述指令被一个或多个处理器执行时,使得处理器执行上述任何方法。
附图说明
为更好地理解所描述的各种实施例,请参照下面的详细说明,并结合以下附图,其中,相同的参照数字指的是整个图中的相同部分。
图1A是根据一些实施例的数据处理环境的示例,其中数据处理环境具有通信耦合于一个或多个客户端设备的一个或多个服务器;图1B是根据一些实施例的一副AR眼镜,其中AR眼镜可以在数据处理环境中通信耦合。
图2是示出根据一些实施例的数据处理系统的框图。
图3是根据一些实施例的数据处理环境的示例,数据处理环境用于训练和应用基于神经网络(neural network based,NN-based)的数据处理模型,以处理视觉和/或音频数据。
图4A是根据一些实施例的用于基于神经网络的数据处理模型中处理内容数据的示例神经网络;图4B是根据一些实施例的神经网络(neural network,NN)中的示例节点。
图5是根据一些实施例的示例集中环境,确定远程集线器设备(例如,服务器)中的手势。
图6是根据一些实施例的示例本地环境,由本地集线器设备(例如,网络路由器)确定手势。
图7A是根据一些实施例的示例本地电子系统,使用来自于多个摄像头的图像确定手势。
图7B是根据一些实施例的示例本地电子系统,包括头戴式显示器(head-mounteddisplay,HMD)和移动设备。
图8A和8B示出根据一些实施例的一示例手势的两个不同视角。
图9A和9B示出根据一些实施例的另一示例手势的两个不同视角。
图10是根据一些实施例的从输入图像识别手势的基于深度学习的过程。
图11是示出根据一些实施例的从由不同摄像头从不同角度拍摄的图像中识别到的手势的置信度分数的表格。
图12是根据一些实施例从多个角度识别用户手势的方法的流程示意图。
在附图的几个视图中,相同的数字指的是相同的部件。
具体实施方式
现在将详细介绍具体的实施例,附图中是这些实施例的示例。在下面的详细描述中,列出了许多非限制性的具体细节,以帮助理解本文提出的主题。但是,对于本领域的普通技术人员来说,显而易见的是,在不脱离权利要求范围的情况下,可以使用各种替代方案,并且可以在没有这些具体细节的情况下实施本主题。例如,对于本领域的普通技术人员来说,显而易见的是,本文提出的主题可以在多种具有数字视频功能的电子设备处执行。
图1A是根据一些实施例的示例数据处理环境100的,具有通信耦合于一个或多个客户端设备104的一个或多个服务器102。一个或多个客户端设备104,例如,可以是台式电脑104A、平板电脑104B、手机104C、增强现实(augmented reality,AR)眼镜150或智能、多感知、网络连接的家庭设备(如,摄像头)。每个客户端设备104都可以收集数据或用户输入,执行用户应用程序,并在其用户界面上显示输出。收集到的数据或用户输入可在客户端设备104上进行本地处理和/或由服务器102进行远程处理。一个或多个服务器102向客户端设备104提供系统数据(例如,启动文件、操作系统图像和用户应用程序),并且,在一些实施例中,在客户端设备104上执行用户应用程序时,处理从客户端设备104接收的数据和用户输入。在一些实施例中,数据处理环境100进一步包括存储设备106,用于存储与服务器102、客户端设备104以及在客户端设备104上执行的应用程序相关的数据。
一个或多个服务器102可以实现与彼此或与一个或多个服务器102相距遥远的客户端设备104的实时数据通信。此外,在一些实施例中,一个或多个服务器102可以执行客户端设备104无法或最好无法在本地完成的数据处理任务。例如,客户端设备104包括执行交互式在线游戏应用程序的游戏控制台。游戏控制台接收用户指令并将其与用户数据一起发送到游戏服务器102。游戏服务器102根据用户指令和用户数据生成视频数据流,并将视频数据流提供给游戏控制台和与游戏控制台进行相同游戏会话的其他客户端设备进行显示。又例如,客户端设备104包括网络监控摄像头和手机104C。网络监控摄像头收集视频数据,并将视频数据实时传输到监控摄像头服务器102。可选地,在监控摄像头上对视频数据进行预处理时,监控摄像头服务器102对视频数据进行处理,以识别视频数据中的运动或音频事件,并与手机104C共享这些事件的信息,从而使手机104的用户能够实时远程监控网络监控摄像头附近发生的事件。
一个或多个服务器102、一个或多个客户端设备104和存储设备106通过一个或多个通信网络108相互通信耦合,一个或多个通信网络108是用于在数据处理环境100中连接在一起的这些设备和计算机之间提供通信链接的介质。一个或多个通信网络108可以包括连接,如电线、无线通信链路或光缆。一个或多个通信网络108的示例包括局域网(localarea network,LAN)、诸如互联网的广域网(wide area network,WAN)或它们的组合。可选地,一个或多个通信网络108可以使用任何已知的网络协议实现,包括各种有线或无线协议,如以太网、通用串行总线(Universal Serial Bus,USB)、火线(FIREWIRE)、长期演进(Long Term Evolution,LTE)、全球移动通信系统(Global System for MobileCommunications,GSM)、增强型数据GSM环境(Enhanced Data GSM Environment,EDGE)、码分多址(code division multiple access,CDMA)、时分多址(time division multipleaccess,TDMA)、蓝牙(Bluetooth)、Wi-Fi、网络电话(voice over Internet Protocol,VoIP)、Wi-MAX或任何其他合适的通信协议。与一个或多个通信网络108的连接可以直接建立(例如,使用3G/4G连接到无线运营商),或通过网络接口110(例如,路由器、交换机、网关、集线器或智能、专用的整体家庭控制节点),或通过它们的任意组合。因此,一个或多个通信网络108可以代表使用传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)套件进行通信的全球范围网络和网关的互联网。互联网的核心是主要节点或主机计算机之间的高速数据通信线的主干,由用于传输数据和信息的数以千计的商业、政府、教育和其他计算机系统组成。
数据处理环境100中应用了深度学习技术,以处理客由户端设备104上执行的应用程序获取的内容数据(例如视频、图像、音频或文本数据),从而识别内容数据中包含的信息,将内容数据与其他数据进行匹配,对内容数据进行分类,或者合成相关内容数据。在这些深度学习技术中,数据处理模型是基于一个或多个神经网络创建的,以处理内容数据。在将这些数据处理模型应用于处理内容数据之前,先利用训练数据对其进行训练。在一些实施例中,模型训练和数据处理都是在每个单独的客户端设备104(如,客户端设备104C)上本地执行的。客户端设备104C从一个或多个服务器102或者存储设备106获取训练数据,并应用训练数据来训练数据处理模型。在模型训练之后,客户端设备104C获取内容数据(例如,通过内部摄像头拍摄视频数据),并在本地使用训练数据处理模型处理内容数据。或者,在一些实施例中,模型训练和数据处理都是在与客户端设备104(如,客户端设备104A)相关的服务器102(如,服务器102A)上远程执行的。服务器102A从自身、另一个服务器102或者存储设备106获取训练数据,并应用训练数据来训练数据处理模型。客户端设备104A获取内容数据,将内容数据发送到服务器102A(例如,在应用程序中)以使用已训练数据处理模型进行数据处理,从服务器102A接收数据处理结果,并将结果显示在用户界面(例如,与应用程序相关)上。在将内容数据发送到服务器102A之前,客户端设备104A本身不对内容数据进行数据处理或只进行少量数据处理。此外,在一些实施例中,数据处理是在客户端设备104(例如,客户端设备104B)上本地执行的,而模型训练则是在与客户端设备104B关联的服务器102(例如,服务器102B)上远程执行的。服务器102B从自身、另一个服务器102或存储设备106获取训练数据,并应用训练数据来训练数据处理模型。已训练数据处理模型可选择存储在服务器102B或存储设备106中。客户端设备104B从服务器102B或存储设备106中导入已训练数据处理模型,使用数据处理模型处理内容数据,并生成数据处理结果以在本地用户界面上显示。
图lB示出了根据一些实施例的一副AR眼镜150(也称头戴式显示器(head-mounteddisplay,HMD)),AR眼镜可以在数据处理环境100中通信耦合。AR眼镜150包括摄像头、麦克风、扬声器和显示器。摄像头和麦克风被配置为从AR眼镜150的场景中拍摄视频数据和音频数据。在一些情况下,摄像头拍摄包括佩戴AR眼镜150的用户的手势的图像。在一些情况下,麦克风记录环境声音,包括用户的语音命令。AR眼镜150和服务器102中至少一个对摄像头或麦克风拍摄的视频或音频数据进行处理,以识别手势和相关的用户指令。可选地,服务器102和AR眼镜150中至少一个应用深度学习技术来识别手势和用户指令。用户指令用于控制AR眼镜150本身或者与AR眼镜150执行的应用程序(例如,游戏应用程序)进行交互。在一些实施例中,AR眼镜150的显示器显示用户界面,已识别用户指令用于与用户界面上的用户可选显示项进行交互,从而能够对AR眼镜150执行的应用程序的对象实现预定义操作。
图2是示出根据一些实施例的数据处理系统200的框图。数据处理系统200包括服务器102、客户端设备104(例如,图lB中的AR眼镜150)、存储设备106或者其组合。数据处理系统200通常包括一个或多个处理单元(processing unit,CPU)202、一个或多个网络接口204、存储器206以及用于互连这些组件(有时称为芯片组)的一个或多个通信总线208。数据处理系统200包括便于用户输入的一个或多个输入设备210,如,键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示、触摸感应输入板、手势拍摄摄像头或者其他输入按钮或控件。此外,在一些实施例中,数据处理系统200的客户端设备104使用麦克风和语音识别或摄像头和手势识别来补充或替代键盘。在一些实施例中,客户端设备104包括一个或多个摄像头、扫描仪或者图片传感器单元,用于拍摄图像,例如,印刷在电子设备上的图形序列码的图像。数据处理系统200还包括一个或多个输出设备212,用于呈现用户界面和显示内容,包括一个或多个扬声器和/或一个或多个可视显示器。可选地,客户端设备104包括位置检测设备,如,全球卫星定位系统(global positioning satellite,GPS)或其他地理位置接收器,用于确定客户端设备104的位置。
存储器206包括高速随机存取存储器,如DRAM、SRAM、DDRRAM,或其他随机存取固态存储设备;可选地,还可以包括非易失性存储器,如,一个或多个磁盘存储设备、一个或多个光盘存储设备、一个或多个闪存设备或一个或多个其他非易失性固态存储设备。可选地,存储器206可以包括一个或多个存储设备,远程距离一个或多个处理单元202。存储器206或存储器206中的非易失性存储器包括非暂时性计算机可读存储介质。在一些实施例中,存储器206或存储器206的非暂时计算机可读存储介质存储以下程序、模块和数据结构,或其子集或超集:
·操作系统214,包括用于处理各种基本系统服务以及用于执行硬件相关任务的程序;
·网络通信模块216,用于通过一个或多个网络接口204(有线或无线)和一个或多个通信网络108,如互联网、其他广域网、局域网、城域网等,将每个服务器102或客户端设备104连接到其他设备(如,服务器102、客户端设备104或存储设备106);
·用户界面模块218,用于通过一个或多个输出设备212(如,显示器、扬声器等)在每个客户端设备104上显示信息(如,应用程序224的图形用户界面、小工具、网站及其网页和/或游戏、音频和/或视频内容、文本等);
·输入处理模块220,用于检测来自一个或多个输入设备210的一个或多个用户输入或交互,并译码检测到的输入或交互;
·网络浏览器模块222,用于导航、请求(例如,通过HTTP)和显示网站及其网页,包括网络界面,网络界面用于登录与客户端设备104或其他电子设备相关的用户账户,控制若与用户账户相关的客户端或电子设备以及编辑和查看与用户账户相关的设置和数据;
·由数据处理系统200执行的一个或多个用户应用程序224(例如,游戏、社交网络应用程序、智能家居应用程序和/或其他基于网络或非网络的应用程序,用于控制其他电子设备和查看此类设备拍摄的数据);
·模型训练模块226,用于接收训练数据并建立数据处理模型,以处理客户端设备104收集或获取的内容数据(如视频、图像、音频或文本数据);
·数据处理模块228,用于使用数据处理模型240处理内容数据,从而识别内容数据中包含的信息,将内容数据与其他数据进行匹配,对内容数据进行分类,或合成相关的内容数据,其中,在一些实施例中,数据处理模块228与多个用户应用程序224中一个相关,并被配置为从图像或视频数据中识别手势,并对与用户应用程序224相关的对象执行预定义操作;
·一个或多个数据库230,用于存储至少包括以下至少一个:
o设备设置232,包括一个或多个服务器102或客户端设备104的通用设备设置(如,服务层级、设备型号、存储容量、处理能力、通信能力等);
o一个或多个用户应用程序224的用户账户信息234,例如,用户名、安全问题、账户历史数据、用户偏好以及预定义账户设置;
o一个或多个通信网络108的网络参数236,例如,IP地址、子网掩码、默认网关、DNS服务器以及主机名;
o用于训练一个或多个数据处理模型240的训练数据238;
o数据处理模型240,用于使用深度学习技术处理内容数据(如,视频、图像、音频或文本数据);以及
o分别由数据处理系统200的客户端设备104获取并输出到客户端设备104的内容数据和结果242,其中,内容数据由数据处理模型240在客户端设备104进行本地处理或者在服务器102进行远程处理,以提供相关结果242在客户端设备104上显示。
可选地,一个或多个数据库230存储在数据处理系统200的服务器102、客户端设备104和存储设备106中的一个中。可选地,一个或多个数据库230分布在数据处理系统200的服务器102、客户端设备104和存储设备106中的多于一个中。在一些实施例中,上述数据的一个以上副本存储在不同的设备中,例如,数据处理模型240的两个副本分别存储在服务器102和存储设备106中。
上述已确定的每个元素都可以存储在前面提到的一个或多个存储设备中,并与执行上述功能的指令集相对应。上述已确定的模块或程序(即,指令集)不必单独作为软件程序、程序、模块或数据结构来执行,因此在各种实施例中,这些模块的各种子集可以组合或以其他方式重新排列。在一些实施例中,可选地,存储器206可以存储上述模块和数据结构的子集。此外,可选地,存储器206还可存储上文未提及的其它模块和数据结构。
图3是根据一些实施例的另一个示例数据处理系统300,用于训练和应用基于神经网络(neural network based,NN-based)的数据处理模型240,以处理内容数据(例如,视频、图像、音频或文本数据)。数据处理系统300包括用于建立数据处理模型240的模型训练模块226以及用于使用数据处理模型240处理内容数据的数据处理模块228。在一些实施例中,模型训练模块226和数据处理模块228都位于数据处理系统300的客户端设备104上,而与客户端设备104不同的训练数据源304向客户端设备104提供训练数据306。可选地,训练数据源304可以是服务器102或存储设备106。或者,在一些实施例中,模型训练模块226和数据处理模块228都位于数据处理系统300的服务器102上。提供训练数据306的训练数据源304可以是服务器102本身、另一个服务器102或者存储设备106。此外,在一些实施例中,模型训练模块226和数据处理模块228分别位于服务器102和客户端设备104上,服务器102将已训练数据处理模型240提供给客户端设备104。
模型训练模块226包括一个或多个数据预处理模块308、模型训练引擎310和损失控制模块312。数据处理模型240是根据待处理内容数据的类型进行训练的。训练数据306与内容数据的类型一致,因此应用数据预处理模块308来处理与内容数据的类型一致的训练数据306。例如,图像预处理模块308A被配置为将图像训练数据306处理为预定义的图像格式,例如,在每个训练图像中提取感兴趣区域(region of interest,ROI),并将每个训练图像裁剪为预定义的图像尺寸。或者,音频预处理模块308B被配置为将音频训练数据306处理为预定义的音频格式,例如,使用傅立叶变换将每个训练序列转换为频域。模型训练引擎310接收数据预处理模块308提供的预处理训练数据,使用现有数据处理模型240进一步处理预处理训练数据,并从每个训练数据项生成输出。在此过程中,损失控制模块312可以监控训练数据项相关的输出与训练数据项的基本真值之间相比较的损失函数。模型训练引擎310修改数据处理模型240,以减少损失函数,直到损失函数满足损失标准(例如,损失函数的比较结果最小化或减少到损失阈值以下)。已修改的数据处理模型240被提供给数据处理模块228,用于处理内容数据。
在一些实施例中,模型训练模块226提供有监督学习,其中训练数据是完全带标签的,并且有监督学习包括每个训练数据项的期望输出(在一些情况下也称为基本真值)。相反地,在一些实施例中,模型训练模块226提供无监督学习,其中训练数据不带标签。模型训练模块226被配置为识别训练数据中先前未检测到的模式,而无需预先存在的标签,也不需要或几乎不需要人工监督。此外,在一些实施例中,模型训练模块226提供部分监督学习,其中训练数据部分带标签。
数据处理模块228包括数据预处理模块314、基于模型的处理模块316和数据后处理模块318。数据预处理模块314基于内容数据的类型对内容数据进行预处理。数据预处理模块314的功能与预处理模块308的功能一致,并将内容数据转换为基于模型的处理模块316的输入可接受的预定义内容格式。内容数据的例子包括视频、图像、音频、文本和其他类型数据中的一种或多种。例如,对每个图像进行预处理,以从其提取ROI或者将其裁剪为预定义的图像尺寸,对音频片段进行预处理,以使用傅立叶变换将其转换为频域。在一些情况下,内容数据包括两种以上类型,例如,视频数据和文本数据。基于模型的处理模块316应用模型训练模块226提供的已训练数据处理模型240,以对已预处理的内容数据进行处理。基于模型的处理模块316还可以监控错误指示器,以确定内容数据是否已在数据处理模型240中得到正确处理。在一些实施例中,已处理的内容数据由数据后处理模块318进一步处理,以优选格式显示已处理的内容数据,或提供从已处理的内容数据得出的其他相关信息。
图4A是根据一些实施例的基于神经网络的数据处理模型240中应用处理内容数据的示例神经网络(neural network,NN)400;以及图4B是根据一些实施例的神经网络(neural network,NN)400中的节点420的示例。例如,在基于神经网络的数据处理模型240中应用NN 400来处理图像数据或视频数据,并基于此来确定手势。在此应用中,NN 400的每个节点420对应于一个滤波器。在应用NN 400的上下文中,“通道”、“滤波器”、“神经元”和“节点”以可交换的方式使用。数据处理模型240基于神经网络400建立。相应的基于模型的处理模块316应用包括神经网络400的数据处理模型240,以处理已转换为预定义内容格式的内容数据。神经网络400包括由链接412连接的节点420的集合。每个节点420接收一个或多个节点输入,并应用传输函数从一个或多个节点输入而生成节点输出。由于通过一个或多个链接412将节点输出提供给一个或多个其他节点420时,与每个链接412相关的权重w被应用于节点输出。同样的,根据传输函数,基于相应的权重w1、w2、w3和w4,对一个或多个节点输入进行组合。在一个示例中,传输函数是非线性激活函数与一个或多个节点输入的线性加权组合的乘积。
节点420的集合在神经网络400中被组织成一个或多个层。可选地,一个或多个层包括同时充当输入层和输出层的单层。可选地,一个或多个层包括用于接收输入的输入层402、用于提供输出的输出层406以及输入层402与输出层406之间的零个或多个隐藏层404(例如,404A和404B)。深度神经网络在输入层402与输出层406之间有一个以上的隐藏层404。在神经网络400中,每一层只与其紧邻的前一层和/或紧邻的后一层相连。在一些实施例中,层402或层404B是全连接层,因为层402或层404B中的每个节点420都与紧邻其后的层中的每个节点420相连。在一些实施例中,一个或多个隐藏层404中的一个包括两个或多个节点,这些节点与其紧邻其后的层中的相同节点相连,用于对这两个层之间的节点420进行向下采样或池化。特别地,最大池化使用层404B中两个或多个节点的最大值,生成与这两个或多个节点相连的紧邻其后的层406的节点。
在一些实施例中,卷积神经网络(convolutional neural network,CNN)被应用于数据处理模型240中,以处理内容数据(特别是视频数据和图像数据)。CNN采用卷积运算,属于深度神经网络400的一种,即前馈神经网络,前馈神经网络通过隐藏层只将数据从输入层402向前移动到输出层406。CNN的一个或多个隐藏层是用乘法或点积进行卷积的卷积层。卷积层中的每个节点从与前一层(例如,五个节点)相关的感受区接收输入,感受区小于整个前一层,并可以基于卷积神经网络中卷积层的位置发生变化。视频数据或图像数据被预处理为与CNN的输入相对应的预定义视频/图像格式。已预处理的视频数据或图像数据由CNN的每一层抽象为相应的特征图。通过这些方法,CNN可以处理视频数据和图像数据,用于视频和图像识别、分类、分析、印刷或合成。
可选且另外地,在一些实施例中,数据处理模型240中还采用递归神经网络(recurrent neural network,RNN)来处理内容数据(特别是文本数据和音频数据)。RNN的连续层中的节点遵循时间序列,这样RNN就表现出时间动态行为。在一个示例中,RNN的每个节点420都具有随时间变化的实值激活。RNN的示例包括但不限于长短时记忆(long short-term memory,LSTM)网络、全递归网络、Elman网络、乔丹网络(Jordan network)、Hopfield网络、双向关联记忆(bidirectional associative memory,BAM)网络、回声状态网络、独立RNN(independently RNN,IndRNN)、递归神经网络和神经历史压缩器。在一些实施例中,RNN可用于手写识别或语音识别。需要注意的是,在一些实施例中,数据处理模块228处理两种或两种以上类型的内容数据,并应用两种或两种以上类型的神经网络(例如,CNN和RNN)来共同处理内容数据。
训练过程是利用输入层402中提供的训练数据集校正学习模型各层的所有权重Wi的过程。训练过程通常包括两个步骤:前向传输和后向传输,这两个步骤重复多次,直到满足预设收敛条件。在前向传输中,将不同层的权重集应用于输入数据和前几层的中间结果。在后向传输中,测量输出的误差范围(如损失函数),并相应调整权重以减少误差。可选地,激活函数可以是线性函数、线性整流函数、sigmoid函数、双曲正切函数或者其他类型。在一些实施例中,在应用激活函数之前,网络偏置参数b被添加到前一层的加权输出总和中。网络偏置参数b提供了一种扰动,有助于NN 400避免过度拟合训练数据。训练的结果包括每一层的网络偏置参数b。
图5是根据一些实施例的确定远程集线器设备502(例如,服务器102)中的手势的示例集中环境500。在集中环境500中,远程集线器设备502与多个电子设备中的每个电子设备均不相同,并且至少部分地通过一个或多个广域网(wide area network,WAN)与多个电子设备中的每个电子设备通信耦合。多个电子设备包括第一电子设备(如,HMD 150)和第二电子设备(如,客户端设备104C)。第一电子设备具有第一摄像头504,第二电子设备具有第二摄像头506。这些具有摄像头的电子设备的示例包括但不限于客户端设备104A-l04C、HMD150、网络监控摄像头508以及具有摄像头的智能电视(television,TV)设备510。第一摄像头504拍摄一个或多个第一图像,包括手部的第一视角(即,第一可视角度)。在第一摄像头504拍摄一个或多个第一图像的同时,第二摄像头506拍摄一个或多个第二图像,包括手部的第二视角(即,第二可视角度)。第二视角与第一视角不同。换句话说,第一图像和第二图像是分别从手部的第一视角和第二视角拍摄得到的。在一些实施例中,在具有预设宽度的时间窗口内,例如,在1秒内,拍摄第一图像和第二图像时,第一图像和第二图像被同时拍摄,这样第一图像和第二图像对应于相同的手势。
在一些实施例中,第一电子设备从第一摄像头504本地拍摄的一个或多个第一图像中识别第一手势,第二电子设备从第二摄像头504本地拍摄的一个或多个第二图像中识别第二手势。第一电子设备和第二电子设备分别使用深度学习模型从第一图像或第二图像中识别第一手势或第二手势,服务器102通过一个或多个通信网络108从第一电子设备和第二电子设备收集第一手势和第二手势(512A)。或者,在一些实施例中,第一电子设备和第二电子设备中的至少一个的计算能力有限。第一图像和第二图像中至少一个被传输到服务器102(512B),以识别第一手势和第二手势中至少一个。服务器102使用深度学习模型分别从第一图像或第二图像中识别第一手势或第二手势。例如,将监控摄像头508拍摄到的图像流传到服务器102(512B),随后服务器102使用深度学习模型等,从图像中识别手势。
在服务器102获得第一手势和第二手势(例如,通过从电子设备接收手势或通过服务器本身从图像生成手势)之后,服务器102从第一手势和第二手势中确定手部的最终手势,并根据最终手势对对象执行预定义操作。在一些实施例中,服务器102使具有第一摄像头504的第一电子设备执行与最终手势相关的预定义操作。服务器102向第一电子设备发送(514A)与预定义操作相关的最终手势或用户指令,以执行预定义操作。或者,在一些实施例中,多个电子设备进一步包括与具有第一摄像头504的第一电子设备和具有第二摄像头506的第二电子设备不同的第三电子设备。服务器102使第三电子设备执行与最终手势相关的预定义操作。在一个示例中,第三电子设备(例如,TV设备510)自身不具有摄像头,而是利用其他电子设备的摄像头来检测手势,从而执行相关操作。服务器102向第三电子设备发送(514B)与预定义操作相关的最终手势或用户指令,以执行预定义操作。最终手势的示例包括但不限于轻扫、单击和用于文本输入的空中涂画。
图6是根据一些实施例的由本地集线器设备602(例如,网络路由器110)确定手势的示例本地环境600。本地环境600包括本地集线器设备602,与多个电子设备中的每一个均不相同。本地集线器设备602支持局域网(local area network,LAN)110,并通过LAN 110与多个电子设备中的每个电子设备通信耦合。本地集线器设备602的示例包括但不限于网络路由器、电话、网络交换机、住宅网关(residential gateways,RG)、机顶盒、固定移动融合产品、家庭网络适配器和互联网接入网关。第一电子设备具有第一摄像头504,第二电子设备具有第二摄像头506。第一摄像头504拍摄一个或多个第一图像,包括手部的第一视角(即,第一可视角度)。在第一摄像头504拍摄一个或多个第一图像的同时,第二摄像头506拍摄一个或多个第二图像,包括手部的第二视角(即,第二可视角度)。第二视角与第一视角不同。换句话说,第一图像和第二图像是分别从手部的第一视角和第二视角进行拍摄得到的。在一些实施例中,在具有预设宽度(例如,1秒内)的时间窗口内拍摄第一图像和第二图像时,第一图像和第二图像被同时拍摄,这样第一图像和第二图像对应于相同的手势。
在一些实施例中,第一电子设备从第一摄像头504本地拍摄的一个或多个第一图像中识别第一手势,第二电子设备从第二摄像头504本地拍摄的一个或多个第二图像中识别第二手势。本地集线器设备602通过局域网110从第一电子设备和第二电子设备收集第一手势和第二手势(612A)。或者,在一些实施例中,将第一图像和第二图像中至少一个传输到本地集线器设备602(612B),以识别第一手势和第二手势中至少一个。例如,监控摄像头508的计算能力有限。将监控摄像头508拍摄的图像流传到本地集线器设备602(612B),本地集线器设备602随后使用深度学习模型等,从图像中识别手势。
在本地集线器设备602获得第一手势和第二手势(例如,通过从电子设备接收手势或通过本身从接收到的图像生成手势)之后,本地集线器设备602从第一手势和第二手势中确定手部的最终手势,并根据最终手势对对象执行预定义操作。在一些实施例中,本地集线器设备602使具有第一摄像头504的第一电子设备执行与最终手势相关的预定义操作(614A)。或者,在一些实施例中,本地集线器设备602使不同于第一电子设备和第二电子设备的第三电子设备执行与最终手势相关的预定义操作(614B)。在一个示例中,第三电子设备(例如,电视设备510)自身不具有摄像头,而是利用其他电子设备的摄像头来检测手势,从而执行相关操作。
图7A是根据一些实施例的示例本地电子系统700,使用来自于多个摄像头的图像确定手势。本地电子系统700包括HMD 150、客户端设备104和电视设备510。HMD 150具有第一摄像头504,客户端设备104具有第二摄像头506。无论电视设备510自身是否具有摄像头,电视设备510都可以依靠HMD 150和客户端设备104的摄像头拍摄与手势相关的图像。HMD150获取由第一摄像头504本地拍摄的一个或多个第一图像,一个或多个第一图像包括手部的第一视角。客户端设备104通过第二摄像头506本地拍摄一个或多个第二图像,这些第二图像与一个或多个第一图像基本同步(例如,在第一图像的一秒内)拍摄。第二图像包括与第一视角不同的手部的第二视角。也就是说,第一图像和第二图像分别从手部的第一视角和第二视角(即,可视角度)拍摄。在一些实施例中,HMD 150从一个或多个第一图像中识别出第一手势,客户端设备104从一个或多个第二图像中识别出第二手势。第二手势被提供给HMD 150(702)。HMD 150从第一手势和第二手势中生成最终手势,并应用最终手势来控制电视设备510(704)。或者,在一些实施例中,客户端设备104获取第一手势,生成最终手势,并应用最终手势来控制电视设备510。可选并另外地,在一些实施例中,在生成第一手势和第二手势之后,第一手势和第二手势由HMD 150和客户端设备104中至少一个提供给电视设备510(706)。电视设备510根据第一手势和第二手势生成最终手势,并被最终手势控制。
在一些实施例中,客户端设备104向HMD 150提供一个或多个第二图像(即,不是第二手势)(708),HMD 150根据一个或多个第二图像确定第二手势。在HMD 150获取第二手势后,HMD 150根据第一手势和第二手势确定手部的最终手势。发送最终手势(704),并由电视设备510用来确定用户动作,并相应地对用户应用程序中的对象执行预定义操作。或者,在一些实施例中,客户端设备104从HMD 150收集一个或多个第一图像,并生成第一手势、第二手势和最终手势。可选且另外地,在一些实施例中,电视设备510从HMD 150和客户端设备104收集第一图像和第二图像(712),生成第一手势、第二手势和最终手势,并响应于最终手势,对对象执行预定义操作。
HMD 150、客户端设备104和电视设备510通过一个或多个通信网络108相互通信耦合,通信网络使用任何已知的网络协议实现,包括各种有线协议或无线协议。在一个示例中,HMD 150通过电线耦合于客户端设备104,通过各自的蓝牙通信链路,电视设备510分别通信耦合于客户端设备104和HMD 150。在一些情况下,HMD 150、客户端设备104和电视设备510之间的通信带宽足以支持大量数据传输,并且图像在这三个电子设备中具有足够计算能力的一个设备上进行合并,以确定最终手势。在其他一些情况下,HMD 150、客户端设备104和电视设备510之间的通信带宽有限,需要节约带宽,并且第一图像和第二图像在HMD150和客户端设备104上进行本地处理,从而,只需要在这三个电子设备之间传输所产生的手势。
图7B是根据一些实施例的示例本地电子系统750,包括头戴式显示器(head-mounted display,HMD)150和移动设备104。在一些实施例中,移动设备104通过一个或多个通信网络108(例如,电线、广域网、局域网110、广域网和局域网的组合)耦合于HMD 150。当用户佩戴HMD 150时,移动设备104被固定在场景中或用手握住。或者,在一些实施例中,移动设备104通过电线与HMD 150连接,用户可在佩戴HMD 150的同时用手握住移动设备104。第一摄像头安装在HMD 150上,第二摄像头集成在移动设备104中。第一摄像头和第二摄像头均被启动,以拍摄图像,从两个不同的视角(即,可视角度)分别跟踪同一手部的移动。在一些实施例中,用户被提示调整移动设备104的位置或方向,以拍摄更好的手部视角的图像。与固定在HMD 150上的单个第一摄像头拍摄的图像相比,此类图像可提高识别手部姿势和手势的准确度。
在一些实施例中,HMD 150可以是增强现实(Augmented Reality,AR)眼镜、虚拟现实(Virtual Reality,VR)头盔或者非全3D显示的智能眼镜。在一些实施例中,移动设备104可以是手机、平板电脑、笔记本电脑、台式电脑、监控摄像头、云端服务器或具有摄像头的联网设备。HMD 150通过通用标准总线(universal standard bus,USB)电缆或者通过Wi-Fi、蓝牙或互联网无线连接到移动设备。在一个示例中,AR眼镜与手机协同工作,实现多模式交互模式。手机被用作用户与AR眼镜中显示的对象进行交互的输入设备。用户将手机用作指向设备,并使用手机的触摸屏完成各种输入任务(如轻扫、点击按钮、输入文本等)。或者,手势估算直接用于用户交互。电子系统750使用手势估计输出来识别空中手势,并根据空中手势执行预定义操作(例如,启动应用程序、退出应用程序、删除信息)。这种多模态交互模式可实现与AR眼镜150的便捷、迅速和准确的用户交互。
在一些实施例中,第一摄像头和第二摄像头都在连续拍摄图像,第一图像和第二图像拍摄到的图像被连续处理,以从两个不同的视角跟踪手势。来自两个不同视角的手势被同步且应用,以确定最终手势,最终手势可选地随时间变化。
在一些实施例中,第一摄像头和第二摄像头中的一个(如,HMD 150的第一摄像头)是主拍摄设备,而第一摄像头和第二摄像头中的另一个(如移动设备104)是辅助拍摄设备。使用主拍摄设备拍摄的图像跟踪手势。已跟踪的手势包括随时间变化的关节位置。结合置信度分数,从图像中得到已跟踪的手势,置信度分数表示与确定手势相关的确定程度。如果置信度分数较低,例如,低于置信度分数阈值,电子系统750生成来自辅助拍摄设备的替代手势的请求,并可选地,放弃使用主拍摄设备拍摄的图像。在一些情况下,响应于该请求,辅助拍摄设备(例如,移动设备104的第二摄像头)开始拍摄一个或多个替代图像,用于确定替代手势。或者,在一些情况下,在接收到请求之前,辅助拍摄设备持续拍摄替代图像。响应于该请求,HMD 150或移动设备104开始使用替代图像确定替代手势。
换句话说,根据确定与从第一摄像头的第一图像得到的第一手势相关的第一置信度分数低于置信度分数阈值,HMD 150生成从一个或多个第二图像得到的第二手势的请求。响应于该请求,拍摄或获取一个或多个第二图像,以生成最终手势,而第一手势不用于生成最终手势。相反,在一些实施例中,根据确定与从第二摄像头的第二图像得到的第二手势相关的第二置信度分数低于置信度分数阈值,移动设备104生成从HMD 150的第一摄像头拍摄的一个或多个第一图像得到的第一手势的请求。响应于该请求,拍摄或获取一个或多个第一图像,以生成最终手势,而第二手势不用于生成最终手势。
在一些情况下,当第一摄像头和第二摄像头中一个的置信度分数较低(例如,低于置信度分数阈值),且第一摄像头和第二摄像头中另一个的手势跟踪的相应置信度分数高于置信度分数阈值时,电子系统750切换使用第一摄像头和第二摄像头中的另一个。第一摄像头和第二摄像头中的一个被关闭连续拍摄图像,从而节省了电子系统750的总体功耗。一般来说,在一些实施例中,电子系统750(例如,HMD 150)获得与第一手势相关的第一置信度分数和与第二手势相关的第二置信度分数。将第一置信度分数与第二置信度分数进行比较。将第一手势和第二手势中置信度分数较高的一个手势作为最终手势。可选地,关闭第一手势和第二手势中置信度分数较小的手势的图像拍摄,以节省功耗。
在一些实施例中,电子系统750可以基于活跃应用和/或用户手部的状态,建议用户将手持移动设备104移动到某个位置和/或方向。例如,在虚拟键盘应用中,发出通知,建议用户将移动设备104放在用户手部的下方,并从用户手部的自下而上的角度拍摄第二图像。在一些实施例中,在手势跟踪过程中,电子系统750还可以获取与第一手势相关的第一置信度分数,并生成通知消息,建议调整HMD 150的第一摄像头的位置或方向,以提高第一置信度分数。可选且另外地,电子系统750可以获取与第二手势相关的第二置信度分数,并生成通知消息,建议调整移动设备104的第二摄像头的位置或方向,以提高第二置信度分数。
图8A和8B示出了根据一些实施例的一示例手势800的两个不同视角800A和800B。图9A和9B示出了根据一些实施例的另一示例手势900的两个不同视角900A和900B。例如,参照图8A和图8B,第一摄像头504(例如,可见光摄像头、红外摄像头或者深度传感器)被安装在HMD 150上的固定位置(例如,用户两眼之间),并从第一视角800A拍摄手势800的第一图像。第一摄像头504的有限视场(field of view,FOV)是有限的,用户移动他/她的手部以适应第一摄像头504的视场,例如,移动到他/她前方的某个区域,以获得最佳的手部跟踪性能。在一些情况下,用户翻转手部,从第二视角800B拍摄手势800的第二图像,从而使第一摄像头504能够依次从视角800A和800B拍摄图像。在一些实施例中,应用客户端设备104的第二摄像头506来扩展FOV。第一摄像头504和第二摄像头506基本同步,以同步方式,从第一视角800A和第二视角800B拍摄手势800的图像。第一视角800A和第二视角800B彼此不同。同样,参照图9A和图9B,第一摄像头504从第一视角900A拍摄手势900的第一图像,第二摄像头506从第二视角900B拍摄手势900的第二图像。第一摄像头504和第二摄像头506基本同步,以从第一视角900A和与第一视角900A不同的第二视角900B拍摄手势800的图像。
形成手势800或手势900且变化率较低,如,0.5至1秒内不会发生变化。假设手势800或手势900的这种较低变化率,当在具有预设宽度的时间窗口内,例如,1秒内,拍摄两幅图像时,第一摄像头504和第二摄像头506同时拍摄这两幅图像。可以假设这两幅图像是同时拍摄到的,并且对应于同一个手势800或手势900。
手势800和手势900的第一视角基本相同,例如,具有由单手的食指和中指形成的V形。手势800和手势900的第二视角是不同的,例如,涉及其余三个手指是张开或者闭合。从第一视角800A和第一视角900A看,手势800和手势900部分被手部本身遮挡,第二视角800B和第二视角900B中任何区别是不可见的。因此,从第二视角800B和第二视角900B拍摄到的图像提供了手势的附加信息,从而克服了自身遮挡的问题,并提高了基于计算机视觉的手部跟踪的准确度。
图10是根据一些实施例的基于深度学习的过程1000,从输入图像1004识别手势1002。基于深度学习的过程1000在拍摄输入图像1004的电子设备上本地实现,或在接收输入图像1004的不同电子设备(例如,服务器102或另一个不同的客户端设备104)上远程实现。具体地,应用图像骨干网络1006从输入图像1004中识别多个视觉特征,手部检测模块1008处理多个视觉特征,以例如使用CNN,确定手部在输入图像中的位置。然后,手部图像裁剪模块1010基于手部的位置裁剪输入图像,并生成手部的已裁剪图像1012。手部预测模块1014用于确定手部的已裁剪图像1012对应于左手或者右手。手部骨干网络1016从手部的已裁剪图像1012中提取多个手部特征。手势估计模块1018使用多个手部特征,确定手势1002。在一些实施例中,左手和右手的手部主干网络1016不同,左手和右手的手势估计模块1018也不同。
基于深度学习的过程1000中的功能模块构成数据处理模型240。在一些实施例中,数据处理模型240包括一个或多个神经网络。例如,图像骨干网络1006、手部检测模块1008、手部预测模块1014、手部骨干网络1016和手势估计模块1018中的每一个都包括相应的神经网络。可选地,每个神经网络都是单独训练得到的。可选地,数据处理模型240是端到端训练得到的。在一些实施例中,数据处理模型240是在服务器102上训练得到的,并被提供给各个电子设备(例如,HMD 150、移动设备104C),用于推理手势1002。
在一些实施例中,手势1002包括可从单个输入图像1004确定的单个静态手部姿势。或者,在一些实施例中,手势1002包括在一段时间内拍摄到的手部姿势的有序序列,例如,空中轻扫包括基本相同并在空中不同位置移动的手部姿势序列。这样的手势1002是从持续时间内拍摄的多个输入图像1004确定的。更具体地,在一些实施例中,在每个输入图像1004中识别多个手部关节的位置,并从单个输入图像1004中手部关节的位置或多个输入图像1004中手部关节的位置移动,确定手势1002。
图11是示出根据一些实施例的从由不同摄像头1106从不同角度(例如,不同可视角度)拍摄的图像中识别到的手势1104的置信度分数1102的表格1100。摄像头1106分布在手部所在场景的不同位置,并被配置为以不同视角拍摄包括手部在内的图像。每个摄像头1106提供相应的图像子集(例如,单个图像、图像的时间序列),结合相应的置信度分数1102,从中识别出相应的手势1104。对于每个摄像头1106,相应的置信度分数1102表示与确定相应的手势1104相关的确定程度,即根据相应摄像头1106拍摄的相应图像子集,手部可以与相应的手势1104相关的确定性。在一些实施例中,置信度分数1102在0到1之间(即,[0,l])的范围内进行归一化。具体而言,在该示例中,基于摄像头1106A拍摄的一个或多个图像,确定手部具有图8A和图8B中的手势800,相关置信度分数为0.95。基于摄像头1106B拍摄的一张或多张图像,确定手部具有图9A和9B中的手势900,相关置信度分数为0.85。
在一些实施例中,最终手势是根据投票方案从与不同摄像头1106相关的不同手势1104中确定的,在一些实施例中,投票方案中不需要权重1108。手势1104子集中的每个手势被识别为相应的置信度分数大于置信度分数阈值(例如,0.5)。最终手势被确定为手势子集中的主导手势,即,相比于手势子集中的任何其他手势,最终手势重复的次数最多。参照图11,置信度分数大于0.5的手势子集中包括与摄像头1106A、摄像头1106B和摄像头1106C相关的三个手势。手势800在手势子集中出现两次,手势900在手势子集中出现一次。因此,手势800被投票为从这些摄像头1106拍摄到的最终手势。
此外,在一些实施例中,在确定手势1104子集的相应的置信度分数大于置信度分数阈值后,确定手势子集中有两个手势重复的次数相同,且大于任何其他手势的重复次数。对于这两个手势中的每个手势,确定手势子集中重复出现的各自手势的置信度分数平均值。两个手势中具有较大置信度分数平均值的一个被确定为从这些摄像头1106拍摄到的手部的最终手势。参照图11,置信度分数大于0.3的手势子集包括与摄像头1106A、摄像头1106B、摄像头l106C和摄像头1106D相关的四个手势。手势800在手势子集中出现两次,平均置信度分数为0.825,手势900在手势子集中出现一次,平均置信度分数为0.625。因此,手势800被投票为从这些摄像头1106拍摄到的最终手势。
在一些实施例中,最终手势是根据加权方案从与不同摄像头1106相关的不同手势1104中确定的。每个摄像头1106被分配有权重1108,表明了各个摄像头1106所拍摄图像质量的影响。例如,最靠近手部的摄像头1106B在摄像头1106中的权重最大。可选地,摄像头1106的权重可以归一化为[0,l]范围。对于从摄像头1106拍摄到的图像确定的每种类型的手势1104,计算置信度分数加权和,并将置信度分数加权和最大的手势1104确定为最终手势。参照图11,五个摄像头1106A、1106B、1106C、1106D和1106E用于拍摄场景中与手势相关的图像,每个摄像头1106与相应的权重1108相关。从这五个摄像头拍摄到的图像确定两个类型的手势(手势800和手势900)。手势800的第一置信度分数加权和等于0.445,手势900的第二置信度分数加权和等于0.8。虽然手势800是通过三个摄像头拍摄的图像确定的,但手势900的第二置信度分数加权和大于手势800的第一置信度分数加权和,因此手势900被确定为最终手势。
图12是根据一些实施例的示例方法1200的流程图,从多个角度识别用户手势。为方便起见,方法1200被描述为由电子系统(例如,客户端设备104、服务器102或其组合)实现。客户端设备104的一个示例是手机。可选地,方法1200受存储在非暂时性计算机可读存储介质中并由计算机系统的一个或多个处理器执行的指令支配。图12中所示的每个操作可以对应于存储在计算机存储器或非暂时计算机可读存储介质(例如图2中系统200的存储器206)中的指令。计算机可读存储介质可以包括磁盘或光盘存储设备、固态存储设备(如闪存)或其他非易失性存储设备。存储在计算机可读存储介质上的指令可以包括源代码、汇编语言代码、目标代码或其他指令格式中的至少一种,这些指令格式可由一个或多个处理器解释。方法1200中的一些操作可以合并和/或改变一些操作的顺序。
根据方法1200,电子系统获取通过第一摄像头(例如,HMD 150上的摄像头)拍摄的一个或多个第一图像(1202)。一个或多个第一图像包括手部的第一视角。从一个或多个第一图像中识别第一手势(1204)。电子系统获取第二手势(1206)。第二手势是从一个或多个第二图像中识别得到的,一个或多个第二图像是由第二摄像头(例如,客户端设备104上的摄像头)拍摄得到的,例如,一个或多个第二图像与一个或多个第一图像基本同时拍摄。一个或多个第二图像包括手部的第二视角(1208),第二视角与第一视角不同。根据第一手势和第二手势确定手部的最终手势(1210)。电子系统根据最终手势对对象执行预定义操作(1212)。
在一些实施例中,方法1200至少部分或全部由集线器设备执行,集线器设备不同于并通信耦合于第一电子设备(例如,HMD 150)和第二电子设备(例如,手机104C)。第一电子设备包括第一摄像头,并用于执行预定义操作。第二电子设备包括第二摄像头,且与第一电子设备不同。或者,在一些实施例中,方法至少部分或全部由集线器设备执行,集线器设备不同于并通信耦合于第一电子设备(例如,HMD 150)、第二电子设备(例如,手机104C)和第三电子设备(例如,电视设备510)。第一电子设备包括第一摄像头(如,图5中的摄像头504),第二电子设备包括第二摄像头(如,图5中的摄像头506)。第三电子设备(如,电视设备510)用于执行预定义操作。第一电子设备、第二电子设备和第三电子设备彼此不同。在这些实施例中,集线器设备可以是服务器102,服务器102远离第一电子设备和第二电子设备,并至少部分地通过广域网(wide area network,WAN)与第一电子设备和第二电子设备通信耦合。或者,在这些实施例中,集线器设备(例如,图6中的路由器110)通过局域网(local areanetwork,LAN)与第一电子设备和第二电子设备通信耦合。
参照图7A,在一些实施例中,电子系统700包括第一电子设备(例如,HMD 150)和第二电子设备(例如,移动设备104)。第一电子设备包括第一摄像头,第二电子设备包括第二摄像头。第三电子设备(如,电视设备510)与第一电子设备和第二电子设备不同,并用于执行预定义操作。方法在第一电子设备处执行。参照图7B,在一些实施例中,电子系统750包括第一电子设备(例如,HMD 150)和第二电子设备(例如,移动设备104)。第一电子设备包括第一摄像头504,用于执行预定义操作。第二电子设备包括第二摄像头506。方法1200在第一电子设备上执行。
在一些实施例中,电子设备(例如,服务器102、HMD 150)通过获取一个或多个第二图像并从一个或多个第二图像中识别第二手势,获取第二手势。或者,在一些实施例中,电子设备(例如,服务器102、HMD 150)通过从拍摄一个或多个第二图像并从一个或多个第二图像中识别第二手势的不同电子设备接收第二手势,获取第二手势。
在一些实施例中,通过第一手势获得第一置信度分数,并与置信度分数阈值进行比较。根据第一置信度分数低于置信度分数阈值,生成第二手势的请求。响应于第二手势的请求,拍摄或获取一个或多个第二图像。此外,在一些实施例中,根据第一置信度分数低于置信度分数阈值,最终手势从第二手势而非第一手势生成。
在一些实施例中,通过第一手势获得第一置信度分数,通过第二手势获得第二置信度分数。比较第一置信度分数与第二置信度分数。将第一手势和第二手势中置信度分数较高的一个作为最终手势。
在一些实施例中,通过第一手势可以获得第一置信度分数。根据第一置信度分数,生成通知消息,通知消息建议调整第一摄像头的位置或方向,以提高第一置信度分数。在一些实施例中,通过第二手势获得第二置信度分数。根据第二置信度分数,生成通知消息,通知消息建议调整第二摄像头的位置或方向,以提高第二置信度分数。
在一些实施例中,第一手势和第二手势位于多个手势中。每个手势是使用相应的摄像头拍摄不同角度的手部得到的,并与相应的置信度分数相关。手势子集中的每个手势都被识别为具有大于置信度分数阈值的相应的置信度分数。根据投票方案,从手势子集中确定最终手势。或者,根据加权方案从多个手势中确定最终手势,其中每种类型手势都与相应的手势子集的相应的置信度分数加权和相关。关于投票方案和加权方案的更多细节,请参照图10。
在一些实施例中,使用深度学习模型从一个或多个图像中识别出第一手势。通过从一个或多个第一图像中识别多个手部关节的位置,并从多个手部关节的位置确定第一手势,识别第一手势。
应该理解的是,图12中的操作的特定顺序只是示例性的,并不表示该顺序是执行操作的唯一顺序。本领域的普通技术人员会认识到本文所述的修整神经网络模型的各种方法。此外,应该注意的是,上文图5-11中的其它过程的细节也可以以类比方式适用于上文就图12中的方法1200。
本文在描述各种所述实施例时使用的术语仅用于描述特定的实施例,并不具有限制性。在对所描述的各种实施例和所附权利要求书的描述中使用的单数形式“a”、“an”和“the”也包括复数形式,除非上下文另有明确说明。此外,还应理解的是,本文所使用的术语“和/或”是指并包括一个或多个相关所列项目的任何及所有可能的组合。还应理解的是,本说明书中使用的术语“包括”、“包括”、“包含”和/或“组成”是指所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组的存在或增加。此外,可以理解的是,尽管本文可能使用术语“第一”、“第二”等来描述各种要素,但这些要素不应受到这些术语的限制。这些术语只是用来区分一个元件和另一个元件。
本文中使用的术语“如果”可根据上下文理解为“当”或“在”或“响应确定”或“响应检测”或“根据确定”。同样,短语“如果确定”或“如果检测到[所述条件或事件]”也可根据上下文理解为“在确定”或“响应确定”或“在检测到[所述条件或事件]”或“响应检测到[所述条件或事件]”或“根据检测到[所述条件或事件]的确定”。
为了便于解释,上述说明是参照具体的实施例进行描述的。然而,上述说明性讨论并不打算详尽无遗,也不打算将权利要求限制在所公开的精确形式上。鉴于上述教导,许多修改和变化都是可能的。选择和描述这些实施例是为了最好地解释操作原理和实际应用,从而使本领域的其他技术人员能够掌握。
虽然各种附图以特定顺序说明了一些逻辑阶段,但不依赖于顺序的阶段可以重新排序,其他阶段可以合并或拆分。虽然特别提到了一些重新排序或其他分组,但对于本领域的普通技术人员来说,其他分组也是显而易见的,因此本文介绍的排序和分组并不是一份详尽的备选方案清单。此外,应该认识到,这些阶段可以通过硬件、固件、软件或它们的任意组合来实现。
Claims (20)
1.一种识别用户手势的方法,其特征在于,所述方法包括:
获取由第一摄像头拍摄的一个或多个第一图像,所述一个或多个第一图像包括手部的第一视角;
从所述一个或多个第一图像中识别第一手势;
获取第二手势,其中,所述第二手势是从第二摄像头拍摄的一个或多个第二图像中识别得到的,所述一个或多个第二图像包括手部的第二视角,所述第二视角与所述第一视角不同;
基于所述第一手势和所述第二手势,确定手部的最终手势;以及
根据所述最终手势,对对象执行预定义操作。
2.根据权利要求1所述的方法,其特征在于,所述方法至少部分由集线器设备执行,所述集线器设备不同于且通信耦合于第一电子设备和第二电子设备,所述第一电子设备包括所述第一摄像头,并用于执行所述预定义操作,所述第二电子设备包括所述第二摄像头,并且不同于所述第一电子设备。
3.根据权利要求1所述的方法,其特征在于,所述方法至少部分由集线器设备执行,所述集线器设备不同于且通信耦合于第一电子设备、第二电子设备和第三电子设备,所述第一电子设备包括所述第一摄像头,所述第二电子设备包括所述第二摄像头,所述第三电子设备用于执行所述预定义操作,所述第一电子设备、所述第二电子设备和所述第三电子设备彼此不同。
4.根据权利要求2或3所述的方法,其特征在于,所述集线器设备是服务器,所述服务器远离所述第一电子设备和所述第二电子设备,并至少部分通过广域网(WAN)与所述第一电子设备和所述第二电子设备通信耦合。
5.根据权利要求1或2所述的方法,其特征在于,所述集线器设备通过局域网(LAN)与所述第一电子设备和所述第二电子设备通信耦合。
6.根据权利要求1所述的方法,其特征在于,
电子系统包括第一电子设备和第二电子设备,所述第一电子设备包括所述第一摄像头并用于执行所述预定义操作,所述第二电子设备包括所述第二摄像头;以及
所述方法在所述第一电子设备处执行。
7.根据权利要求1所述的方法,其特征在于,
电子系统包括第一电子设备和第二电子设备,所述第一电子设备包括所述第一摄像头,所述第二电子设备包括所述第二摄像头,第三电子设备不同于所述第一电子设备和所述第二电子设备并用于执行所述预定义操作;以及
所述方法在所述第一电子设备处执行。
8.根据前述任一权利要求所述的方法,其特征在于,获取所述第二手势进一步包括:
获取所述一个或多个第二图像;以及
从所述一个或多个第二图像中,识别所述第二手势。
9.根据前述任一权利要求的方法,其特征在于,获取所述第二手势进一步包括:
从不同的电子设备接收所述第二手势,所述不同的电子设备拍摄所述一个或多个第二图像;
从所述一个或多个第二图像中,识别所述第二手势。
10.根据前述任一权利要求的方法,其特征在于,确定所述最终手势进一步包括:
获取与所述第一手势相关的第一置信度分数;
将所述第一置信度分数与置信度分数阈值进行比较;以及
根据所述第一置信度分数低于所述置信度分数阈值,生成用于所述第二手势的请求,其中,所述一个或多个第二图像是响应于所述用于所述第二手势的请求而拍摄或获取得到的。
11.根据权利要求10所述的方法,其特征在于,确定所述最终手势进一步包括:
根据所述第一置信度分数低于置信度分数阈值,从所述第二手势生成所述最终手势,并放弃使用所述第一手势以生成所述最终手势。
12.根据权利要求1-9中任一项所述的方法,其特征在于,确定所述最终手势进一步包括:
获取与所述第一手势相关的第一置信度分数;
获取与所述第二手势相关的第二置信度分数;
比较所述第一置信度分数与所述第二置信度分数;以及
使用所述第一手势和所述第二手势中置信度分数较高的一个作为所述最终手势。
13.根据权利要求1-9中任一项所述的方法,其特征在于,进一步包括:
获取与所述第一手势相关的第一置信度分数;以及
基于所述第一置信度分数,生成通知消息,所述通知消息建议调整所述第一摄像头的位置或方向,以提高所述第一置信度分数。
14.根据权利要求1-9中任一项所述的方法,其特征在于,
所述第一手势和所述第二手势位于多个手势中,每个手势是使用相应的摄像头拍摄不同角度的手部得到的,并与相应的置信度分数相关;
手势子集中的每个手势被识别为具有大于置信度分数阈值的所述相应的置信度分数;以及
根据投票方案,从所述手势子集中确定所述最终手势。
15.根据权利要求1-9中任一项所述的方法,其特征在于,
所述第一手势和所述第二手势位于多个手势中,每个手势是使用相应的摄像头拍摄不同角度的手部得到的,并与相应的置信度分数相关;以及
所述最终手势是根据加权方案从所述多个手势中确定的,其中,在所述加权方案中,每种类型的手势与相应的手势子集的相应的置信度分数加权和相关。
16.根据前述任一权利要求所述的方法,其特征在于,使用深度学习模型从所述一个或多个图像中识别所述第一手势,其中,识别所述第一手势进一步包括:
从所述一个或多个第一图像中识别多个手部关节的位置;以及
从所述多个手部关节的位置确定第一手势。
17.根据前述任一权利要求所述的方法,其特征在于,与所述最后手势相关的所述预定义操作是启动第一用户应用程序、退出第二用户应用程序和删除信息中的一个。
18.根据前述任一权利要求所述的方法,其特征在于,所述最后手势是用于文本输入的轻扫、单击和空中涂画中的一种。
19.一种电子系统,包括:
一个或多个处理器;以及
存储器,其上存储有指令,当所述指令被所述一个或多个处理器执行时,使得所述处理器执行权利要求1-18中任一项的方法。
20.一种非暂时性计算机可读介质,其上存储有指令,当所述指令被一个或多个处理器执行时,使得处理器执行权利要求1-18中任一项的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/039678 WO2023277888A1 (en) | 2021-06-29 | 2021-06-29 | Multiple perspective hand tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117813581A true CN117813581A (zh) | 2024-04-02 |
Family
ID=84692003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180099983.7A Pending CN117813581A (zh) | 2021-06-29 | 2021-06-29 | 多角度手部跟踪 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117813581A (zh) |
WO (1) | WO2023277888A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116152931B (zh) * | 2023-04-23 | 2023-07-07 | 深圳未来立体教育科技有限公司 | 一种手势识别方法及vr系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106062862B (zh) * | 2014-10-24 | 2020-04-21 | 杭州凌感科技有限公司 | 用于沉浸式和交互式多媒体生成的系统和方法 |
US9857881B2 (en) * | 2015-12-31 | 2018-01-02 | Microsoft Technology Licensing, Llc | Electrical device for hand gestures detection |
US11087610B2 (en) * | 2016-10-04 | 2021-08-10 | Avigilon Corporation | Presence detection and uses thereof |
US10987573B2 (en) * | 2016-10-11 | 2021-04-27 | Valve Corporation | Virtual reality hand gesture generation |
US10698497B2 (en) * | 2017-09-29 | 2020-06-30 | Apple Inc. | Vein scanning device for automatic gesture and finger recognition |
-
2021
- 2021-06-29 WO PCT/US2021/039678 patent/WO2023277888A1/en unknown
- 2021-06-29 CN CN202180099983.7A patent/CN117813581A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023277888A1 (en) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3467707B1 (en) | System and method for deep learning based hand gesture recognition in first person view | |
EP2118722B1 (en) | Controlling a document based on user behavioral signals detected from a 3d captured image stream | |
US11651589B2 (en) | Real time object detection and tracking | |
CN110688914A (zh) | 一种手势识别的方法、智能设备、存储介质和电子设备 | |
Sun et al. | Gesture-based piloting of an aerial robot using monocular vision | |
WO2021077140A2 (en) | Systems and methods for prior knowledge transfer for image inpainting | |
CN110718227A (zh) | 一种基于多模态交互的分布式物联网设备协同方法及其系统 | |
WO2023101679A1 (en) | Text-image cross-modal retrieval based on virtual word expansion | |
WO2023102224A1 (en) | Data augmentation for multi-task learning for depth mapping and semantic segmentation | |
WO2023273372A1 (zh) | 手势识别对象确定方法及装置 | |
CN117813581A (zh) | 多角度手部跟踪 | |
CN116391209A (zh) | 现实的音频驱动的3d化身生成 | |
Rybski et al. | Cameo: Camera assisted meeting event observer | |
WO2021092600A2 (en) | Pose-over-parts network for multi-person pose estimation | |
WO2023086398A1 (en) | 3d rendering networks based on refractive neural radiance fields | |
WO2023027712A1 (en) | Methods and systems for simultaneously reconstructing pose and parametric 3d human models in mobile devices | |
WO2023277877A1 (en) | 3d semantic plane detection and reconstruction | |
JP6859641B2 (ja) | 評価システム、情報処理装置およびプログラム | |
CN114040107A (zh) | 智能汽车图像拍摄系统、方法、车辆及介质 | |
US20230274403A1 (en) | Depth-based see-through prevention in image fusion | |
CN116457744A (zh) | 隔空摆动手势的识别方法 | |
WO2023063944A1 (en) | Two-stage hand gesture recognition | |
US20240087344A1 (en) | Real-time scene text area detection | |
WO2024076343A1 (en) | Masked bounding-box selection for text rotation prediction | |
WO2023172257A1 (en) | Photometic stereo for dynamic surface with motion field |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |