CN108762505B - 基于手势的虚拟对象控制方法、装置、存储介质和设备 - Google Patents

基于手势的虚拟对象控制方法、装置、存储介质和设备 Download PDF

Info

Publication number
CN108762505B
CN108762505B CN201810527046.7A CN201810527046A CN108762505B CN 108762505 B CN108762505 B CN 108762505B CN 201810527046 A CN201810527046 A CN 201810527046A CN 108762505 B CN108762505 B CN 108762505B
Authority
CN
China
Prior art keywords
gesture
image frame
skeleton
determining
virtual object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810527046.7A
Other languages
English (en)
Other versions
CN108762505A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810527046.7A priority Critical patent/CN108762505B/zh
Publication of CN108762505A publication Critical patent/CN108762505A/zh
Application granted granted Critical
Publication of CN108762505B publication Critical patent/CN108762505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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
    • 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

Abstract

本申请涉及一种基于手势的虚拟对象控制方法、装置、存储介质和设备,方法包括:获取实时采集的包括手势的图像帧;识别图像帧中手势的手势类型;当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定手势在图像帧中的指向和指定的位置;根据指定的位置和指向在图像帧中生成虚拟对象;播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。本申请提供的方案可以提高对虚拟对象进行控制的效率。

Description

基于手势的虚拟对象控制方法、装置、存储介质和设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于手势的虚拟对象控制方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的迅速发展,计算机技术给人们的生活带来了诸多的便利,人们不仅可以通过终端获取信息、浏览视频,还可以对终端界面中所呈现的各种虚拟对象进行控制,实现与终端之间的互动,甚至能够实现与远方使用终端的用户之间的互动。
然而,目前,用户对终端界面中所呈现的虚拟对象的控制,多是通过鼠标或键盘等控制装置来实现的。比如,在电子游戏中,用户可通过键盘上的特定按键或特定按键的组合实现对虚拟对象的控制。显然,这种需要依赖于特定的控制装置对虚拟对象进行控制效率较低。
发明内容
基于此,有必要针对现有的对虚拟对象进行控制的方式效率较低的技术问题,提供一种基于手势的虚拟对象控制方法、装置、计算机可读存储介质和计算机设备。
一种基于手势的虚拟对象控制方法,包括:
获取实时采集的包括手势的图像帧;
识别所述图像帧中手势的手势类型;
当所述手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定所述手势在所述图像帧中的指向和指定的位置;
根据所述指定的位置和所述指向在所述图像帧中生成虚拟对象;
播放包括所述虚拟对象的所述图像帧,且所述虚拟对象在逐帧播放的图像帧中按照所述指定的位置和所述指向运动。
一种基于手势的虚拟对象控制装置,包括:
图像帧获取模块,用于获取实时采集的包括手势的图像帧;
手势类型识别模块,用于识别所述图像帧中手势的手势类型;
确定模块,用于当所述手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定所述手势在所述图像帧中的指向和指定的位置;
虚拟对象生成模块,用于根据所述指定的位置和所述指向在所述图像帧中生成虚拟对象;
图像帧播放模块,用于播放包括所述虚拟对象的所述图像帧,且所述虚拟对象在逐帧播放的图像帧中按照所述指定的位置和所述指向运动。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述基于手势的虚拟对象控制方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述基于手势的虚拟对象控制方法的步骤。
上述基于手势的虚拟对象控制方法、装置、计算机可读存储介质和计算机设备,对虚拟对象的控制是基于采集的图像帧中手势的手势类型确定的,可以实现“隔空”控制虚拟对象的效果。在识别出获取的图像帧中手势的手势类型、且该手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,就确定手势在图像帧中的指向和指定的位置,从而可以在获取的图像帧中按照指向和指定的位置生成虚拟对象,并且,在逐帧播放的图像帧中,虚拟对象就可以按照指定的位置和指向运动,可实现基于图像帧中的手势对虚拟对象进行控制,无需用户通过控制装置进行操作,提升了对虚拟对象进行控制的效率。
附图说明
图1为一个实施例中基于手势的虚拟对象控制方法的应用环境图;
图2为一个实施例中基于手势的虚拟对象控制方法的流程示意图;
图3(1)为一个实施例中终端采集的包括手势的图像帧的示意图;
图3(2)为另一个实施例中终端采集的包括手势的图像帧的示意图;
图4为一个实施例中识别图像帧中手势的手势类型的流程示意图;
图5为一个实施例中手势所包括的骨架节点的示意图;
图6为一个实施例中在连续的图像帧中生成虚拟对象的示意图;
图7为一个实施例中指定骨架节点以及用于确定指向的多个骨架节点的示意图;
图8为一个实施例中用于确定指向的多个骨架节点及用于确定位置的指定骨架节点的示意图;
图9(1)为一个实施例中确定指向的示意图;
图9(2)为另一个实施例中确定指向的示意图;
图9(3)为再一个实施例中确定指向的示意图;
图10为一个具体的实施例中基于手势的虚拟对象控制方法的流程示意图;
图11为一个实施例中基于手势的虚拟对象控制装置的结构框图;
图12为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中基于手势的虚拟对象控制方法的应用环境图。参照图1,该基于手势的虚拟对象控制方法应用于基于手势的虚拟对象控制系统。该基于手势的虚拟对象控制系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
用户可展示属于各种预设的手势类型的手势。终端110可以获取实时采集的包括手势的图像帧。包括手势的图像帧可以是终端110通过配置的内置摄像头或外接摄像头实时采集并获取的,内置摄像头可以是终端110的前置摄像头或后置摄像头;包括手势的图像帧也可以是其它设备实时采集后发送至终端110的。终端110可以识别图像帧中手势的手势类型。终端110也可以将获取的图像帧发送至服务器120,由服务器120对获取的图像帧进行识别,并将识别的手势类型返回至终端110。终端110还可以当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定手势在图像帧中的指向和指定的位置;终端110还可以根据指定的位置和指向在图像帧中生成虚拟对象;终端110还可以播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
如图2所示,在一个实施例中,提供了一种基于手势的虚拟对象控制方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该基于手势的虚拟对象控制方法具体包括如下步骤:
S202,获取实时采集的包括手势的图像帧。
其中,手势是由用户通过手做出的、在被采集后用于触发终端执行相应操作指令的动作形态。采集的图像帧中可以包括一个手势或多个手势。如图3(1)所示,采集的图像帧中的手势可以是用户通过一只手做出的;在图3(2)中,采集的图像帧中的手势也可以是用户通过双手做出的。
具体地,终端可通过内置的摄像头采集包括手势的图像帧,也可以通过外接的图像帧采集装置采集包括手势的图像帧,从而获取到包括手势的图像帧。图像采集装置比如可以是监控摄像头或电脑眼等。终端也可以通过网络接收其它设备实时采集的包括手势的图像帧。
在一个具体的应用场景中,用户手持终端,通过终端上用于调用摄像头的应用程序打开终端上内置的摄像头,这样,终端可采集摄像头的拍摄范围内的图像帧。用户对着终端的摄像头做出的手势就会被实时采集到,从而获取到实时采集的包括手势的图像帧。可以理解,若用户打开的是前置摄像头,那么采集的图像帧中包括用户对着前置摄像头做出的手势以及前置摄像头拍摄范围内的背景;若用户打开的是后置摄像头,那么采集的图像帧中就包括用户对着后置摄像头做出的手势以及后置摄像头拍摄范围内的背景。
在一个实施例中,基于手势的虚拟对象控制方法可以应用于游戏中。那么,虚拟对象是在游戏中要控制的虚拟角色或目标对象。比如,在射击类游戏中,虚拟对象可以是用于攻击其它虚拟角色或虚拟目标的预设释放技能,比如子弹等。
S204,识别图像帧中手势的手势类型。
其中,手势类型是所采集的图像帧中手势的类别。不同的手势可对应不同的手势类型。手势类型的类别名称可以根据需要设定,比如,在图3(1)中示出的手势,对应的手势类型可以称之为“第一手势类型”等;在图3(2)中示出的手势,对应的手势类型可以称之为“第二手势类型”或“射击类型”等。需要说明的是,手势类型的类别名称是在训练图像识别模型时根据需要设定的。
具体地,终端可采用预先训练好的基于机器学习的图像识别模型对图像帧中手势的手势类型进行识别。首先,将采集的图像帧输入至机器学习模型中,通过机器学习模型中的隐藏层对采集的图像帧对应的特征进行运算,输出手势的手势类型。
如图4所示,在一个实施例中,步骤S204,识别图像帧中手势的手势类型具体包括以下步骤:
S402,从图像帧中分割出手势区域。
其中,手势区域是图像帧中手势所在的矩形区域。该矩形区域可以是包围图像帧中手势的轮廓的矩形所构成的区域。
可以理解,相比于直接对所采集的原始图像帧中手势的手势类型进行识别,从采集的图像帧中分割出手势区域之后再对分割出的手势区域进行识别,避免手势区域占整个图像帧的比例较小时识别不准确的问题,能够减少在对手势区域中手势的手势类型进行识别时原始图像帧中相对于手势区域的背景区域所带来的干扰,可以提高图像识别的准确度。因而,在一个实施例中,该矩形区域可以是图像帧中能够完全包括手势的最小矩形区域。
在一个实施例中,从图像帧中分割出手势区域的步骤具体包括:对图像帧进行图像特征提取;将提取出的图像特征输入至像素级别分类器中,按照属于手势区域的特征和不属于手势区域的特征,对图像帧中每个像素进行分类;当图像帧中所有像素分类完成后,输出一个与图像帧分辨率大小相同的概率矩阵;对输出的概率矩阵以预设的阈值进行二值化处理,得到图像帧对应的显著图;获取显著图中显著区域四个方位(上、下、左、右)的端点像素的坐标,就可以按照该坐标确定图像帧中包括手势的矩形区域,并从图像帧从分割出确定的矩形区域,作为手势区域。
举例说明:以图像帧左下角像素为原点构建直角坐标系来说明,显著图中显著区域最上方的端点像素相对于表示原点(0,0)的像素的位置偏移为(10,10),最左方的端点像素的位置偏移为(6,9),最下方的端点像素的位置偏移为(8,5),最右方的端点像素的位置偏移为(12,8),则可确定手势区域四个端点像素的坐标分别为(6,10)、(6,5)、(12,5)和(12,10),根据这四个端点像素的坐标就可以确定手势区域。
在一个实施例中,从图像帧中分割出手势区域的步骤具体包括:按照图像帧的不同图像属性分别对图像帧提取特征图;将各特征图进行特征融合,得到图像帧的图像特征;通过手势区域检测模型,根据图像特征确定手势的包围框坐标;按照包围框坐标从图像帧中分割出手势区域。
其中,图像属性包括图像帧中各像素点的像素值、分辨率、颜色分量值、色调、饱和度、亮度、色彩通道以及图像的层次等。特征图是图像中各个像素点对应了某一图像属性的特征值所构成的概率矩阵。不同图像属性的特征图的分辨率的大小可以不同。
具体地,终端可通过预先训练好的基于机器学习的手势区域检测模型的卷积层,对输入的图像帧属于不同图像属性的特征进行提取。在提取出了特征图后,可对多个特征图进行特征融合,得到图像帧的图像特征。得到的图像特征由于具备图像帧多个维度不同图像属性的特征,从而所包含的信息更为多样、特征也更为稳定。对于融合后得到的图像特征,输入至预先训练好的手势区域检测模型的隐层中,基于训练好的隐层的模型参数,对图像特征进行运算,比如线性运算或非线性运算等,并通过输出层输出手势的包围框坐标,按照包围框坐标从图像中分割出手势区域。
包围框坐标是用于确定图像帧中手势区域的坐标。包围框坐标具体可以是用于确定手势区域的四元坐标组(X,Y,W,H),这四个元素分别表示包围框相对于图像帧中某一像素点的X方向像素偏移、Y方向像素偏移以及包围框的宽度和高度。
举例说明:以图像左下角像素为原点构建直角坐标系来说明,得到包围框的四元坐标组为(10,15,60,95)。假定该四元坐标组的前二维元素表示手势区域中位于最左、且最下方像素点相对于原点(0,0)的X方向像素偏移和Y方向像素偏移,那么就可以确定包围框四个端点像素的坐标分别为(10,15)、(70,15)、(70,110)和(10、110),根据这四个端点像素的坐标就可以确定手势区域。
S404,在手势区域中确定手势各骨架节点的位置。
其中,骨架节点是手势中每个手指骨架或手掌骨架的关节。具体地,在从图像中分割出手势区域后,终端可进一步确定手势区域中手势的各个骨架节点的位置。可以理解,手势中各个手指的摆放,也就是手势中各个骨架节点的相对位置,与手势类型是有关系的。相同的手势,其各个骨架节点之间的位置关系一般是相同的。
如图5所示,为一个实施例中手势所包括的骨架节点的示意图。参照图5,设定的手势的骨架节点有21个,可用1至21这21个数唯一表示一个骨架节点。需要说明的是,这21个骨架节点是参照了人的手部的关节选定的。为了更好的展示出手部,可以根据需求选取更多的关节作为骨架节点,比如可以从手掌部位中选取更多的关节,不限于选定这21个关节作为骨架节点。
可以理解,确定手势区域中手势各个骨架节点的位置的过程,就是确定选定的各个骨架节点在手势区域中的位置的过程。骨架节点的位置可以是骨架节点在手势区域中的二维坐标。
在一个实施例中,在手势区域中确定手势各骨架节点的位置具体包括:按照手势区域的不同图像属性分别对手势区域提取特征图;将各特征图进行特征融合,得到手势区域的图像特征;通过骨架节点识别模型,根据手势区域的图像特征,确定手势区域中手势的各骨架节点的坐标;根据各骨架节点的坐标确定手势区域中各骨架节点的位置。
具体地,对于从图像帧中分割出的手势区域,终端可进一步对手势区域的特征进行特征提取,得到手势区域对应各图像属性的特征图,将特征图融合后得到手势区域的图像特征,通过骨架节点识别模型对手势区域的图像特征进行识别,确定手势区域中各骨架节点的坐标,根据骨架节点的坐标确定手势区域中各骨架节点的位置。
在一个实施例中,终端还可在确定了手势区域中各骨架节点的位置后,根据预设的各个骨架节点之间的位置关系,用线段连接具有预设位置关系的骨架节点,生成手势骨架图。终端还可以将生成的手势骨架图与原来的图像帧进行叠加展示,从而将得到的手势骨架图展示在图像帧中。
S406,依据各骨架节点的位置,识别出手势的手势类型。
具体地,终端在确定了各个骨架节点的位置后,可根据预设的各个骨架节点之间的连接关系,对骨架节点所构成的手势进行识别,识别出该手势对应的手势类型。
S206,当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定手势在图像帧中的指向和指定的位置。
具体地,终端可依据识别出的手势类型执行与该手势类型相对应的操作指令。在一个实施例中,终端可预先存储识别出的手势类型与操作指令之间的对应关系,在识别出手势对应的手势类型后,按照预设的对应关系,查找到要执行的操作指令。比如,当识别出的手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,终端就可以执行确定手势在图像帧中的指向和指定的位置的步骤。终端还可依据识别出的手势类型在界面中呈现与该手势类型相对应的画面渲染效果。
其中,虚拟对象是要在界面中展示的目标对象,而该目标对象在界面中展示的时机、位置以及运动变化是通过手势控制的。指向性手势类型是指根据图像帧中的手势可确定一个方向及位置的手势类型。如图3(1)、3(2)中示出的图像帧中的手势,都可以称之为指向性手势类型。指向是由图像帧中的手势确定的方向,指定的位置是由图像帧中的手势确定的位置。指向性运动是由手势类型为指向性手势类型的手势所触发的、用于控制虚拟对象在界面中要呈现的运动。
S208,根据指定的位置和指向在图像帧中生成虚拟对象。
具体地,在确定了手势在图像帧中的指向和指定的位置后,终端可在图像帧中指定的位置处生成虚拟对象。生成的虚拟对象按照确定的指向在连续的多帧图像帧中运动。
举例说明:如图6所示,终端对获取的第N个图像帧进行手势识别,识别到图像帧中所包括手势的手势类型为指向性手势类型,确定的指定的位置为A1点,确定的指向如图中的箭头所示,若用户在接下来的一段时间内(比如2秒)未改变手势或移动手势,那么终端获取的第N+1个、第N+2个等在这2秒内获取的图像帧都包括该指向性手势类型的手势,并且确定的指向和指定的位置都相同。那么,在第N个图像帧中,在指定的位置A1处生成第一个虚拟对象S1;在第N+1个图像帧中,在指定的位置A2处生成第二个虚拟对象S2,并按照确定的指向确定第一个虚拟对象S1在第N+1个图像帧中的位置为B2点,将生成的第一个虚拟对象S1展示在B2处;在第N+2个图像帧中,在指定的位置A3处生成第三个虚拟对象S3,且按照确的指向,确定第一个虚拟对象S1在第N+2个图像帧中的位置C3以及第二个虚拟对象S2在第N+2个图像帧中的位置B3,将第一个虚拟对象S1、第二个虚拟对象S2按照相应的位置展示在第N+2个图像帧中。
在上述例子中,若用户在接下来很短的时间内未变换手势但移动了手势,那么终端获取的第N+1个、第N+2个等在这2秒内获取的图像帧都包括该指向性手势类型的手势,但确定的指向和指定的位置都不同。那么,在各个图像帧中生成的虚拟对象的所展示的位置和所运动的方向都会相应改变。也就是说,生成的虚拟对象的在图像帧中展示的位置和运动的方向是根据图像帧中的手势确定的。
S210,播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
具体地,终端可在各图像帧中生成虚拟对象后,播放包括虚拟对象的图像帧,连续播放的多个视频帧可以在界面上呈现虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
在具体的游戏场景中,终端可在界面中依次不断地展示虚拟目标,那么用户可调整自己的手势的位置,以对准虚拟目标,使得终端根据确定的指定的位置和指向在图像帧中生成虚拟对象,并且虚拟对象按照确定的指向在图像帧中指向性运动,在碰撞到虚拟目标时,就判定实现了对虚拟目标的攻击。用户还可变换自己的手势的动作形态,这样终端就可以根据变换后的手势识别出手势类型之后,在界面中展示针对虚拟目标的不同的攻击效果。
上述基于手势的虚拟对象控制方法,对虚拟对象的控制是基于采集的图像帧中手势的手势类型确定的,可以实现“隔空”控制虚拟对象的效果。在识别出获取的图像帧中手势的手势类型、且该手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,就确定手势在图像帧中的指向和指定的位置,从而可以在获取的图像帧中按照指向和指定的位置生成虚拟对象,并且,在逐帧播放的图像帧中,虚拟对象就可以按照指定的位置和指向运动,可实现基于图像帧中的手势对虚拟对象进行控制,无需用户通过控制装置进行操作,提升了对虚拟对象进行控制的效率。
在一个实施例中,确定手势在图像帧中的指向和指定的位置的步骤具体包括:按照手势中指定骨架节点的位置,确定手势在图像帧中指定的位置;根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向。
其中,指定骨架节点是用于确定手势在图像帧中指定的位置的骨架节点。对于手势类型为指向性手势类型的手势,终端可预先设定好该手势类型的手势中的指定骨架节点。
具体地,终端可在识别到该手势为用于控制虚拟对象指向性运动的指向性手势类型时,就查找预先设定好的与该手势类型对应的指定骨架节点,获取指定骨架节点在图像帧中的位置,按照该位置确定手势在图像帧中指定的位置。终端可以直接将指定骨架节点在图像帧中的位置作为手势在图像帧中指定的位置。终端也可以根据指定骨架节点在图像帧中的位置确定一个邻域坐标范围,选取该范围内的某个位置作为手势在图像帧总指定的位置。在一个实施例中,可将食指指尖关节所对应的骨架节点作为指定骨架节点,将食指所对应的多个关节作为用于确定指向的多个骨架节点。骨架节点在图像帧中的位置,可以是骨架节点在图像帧中的二维坐标。
多个骨架节点之间的位置关系,是多个骨架节点在构成一个动作形态之后各个骨架节点的位置之间的联系。同样地,终端可预先设定手势类型为指向性手势类型的手势,终端可预先设定用于确定指向的多个骨架节点。在识别到该手势为用于控制虚拟对象指向性运动的指向性手势类型时,就获取这多个骨架节点在图像帧中的位置,按照该位置确定手势在图像帧中的指向。一般而言,这多个骨架节点属于同一个手指。
在一个实施例中,指定骨架节点属于用于确定指向的多个骨架节点。如图7所示,在采集的图像帧中,手势中作为食指指尖关节的骨架节点A为指定骨架节点,构成食指的四个骨架节点A、B、C和D作为用于确定指向的多个骨架节点。那么,就可以根据骨架节点A在图像帧中的坐标确定手势在图像帧中的指定的位置S,根据骨架节点A、B、C和D在图像帧中的坐标确定手势在图像帧中的指向L。
在一个实施例中,指定骨架节点也可以不属于用于确定指向的多个骨架节点。如图8所示,在采集的图像帧中,手势中作为中指指尖关节的骨架节点E为指定骨架节点,构成食指的四个骨架节点A、B、C和D作为用于确定指向的多个骨架节点。那么,就可以根据骨架节点E在图像帧中的坐标确定手势在图像帧中的指定的位置S,根据骨架节点A、B、C和D在图像帧中的坐标确定手势在图像帧中的指向L。
在一个具体的射击类游戏场景中,在确定了采集的图像中手势的指向和指定的位置之后,终端可将子弹展示在指定的位置处,然后渲染该子弹以手势的指向进行移动的画面效果。也就是说,子弹发出的位置和方向是由手势决定的,用户可以通过移动手势从而改变手势在图像帧中的指向和指定的方向,以在不同的位置、以不同的方向发射新的子弹,可形成对目标对象的射击,实现隔空进行射击游戏的效果。相比于传统的通过控制装置,更为高效。
在一个实施例中,根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向的步骤具体包括:确定经过指定骨架节点的多个直线方向,且各直线方向分别经过多个骨架节点中除指定骨架节点外的剩余骨架节点;当多个直线方向符合方向一致性条件时,根据多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
终端在获取了用于确定指向的多个骨架节点中各个骨架节点的位置后,就可以根据各个位置确定一个直线方向,作为手势在图像帧中的指向。需要说明的是,当根据识别出的这多个骨架节点中各个骨架节点的位置无法确定一个直线方向时,那么终端就无法确定手势在图像帧中的指向,就不会触发执行步骤S208和/或步骤S210。
其中,方向一致性条件是用于确定多个直线方向是否能够确定出一个直线方向的条件。在一个实施例中,方向一致性条件,是相应直线方向间的夹角在预设角度范围内。
具体地,在指定骨架节点属于用于确定指向的多个骨架节点中的一个骨架节点时,终端根据指定骨架节点的在图像帧中的位置,以及多个骨架节点中除指定骨架节点外的剩余骨架节点分别在图像帧中的位置,确定多个直线方向,在多个直线方向符合方向一致性条件时,就可以从多个直线方向中选择一个直线方向作为手势在图像帧中的指向。
进一步地,终端还可根据确定的多个直线方向计算一个基准直线方向,该基准直线方向与确定的多个直线方向符合方向一致性条件,根据确定的基准直线方向确定手势至图像帧中的指向。可以理解,基准直线方向可以不属于多个直线方向,但基准直线方向与这多个直线方向间的夹角在预设角度范围内。
在一个实施例中,当用于确定指定的位置的指定骨架节点不属于用于确定指向的多个骨架节点中的一个骨架节点时,终端可从这多个骨架节点中挑选出一个基准骨架节点,确定经过该基准骨架节点的多个直线方向,且各直线方向分别经过这多个骨架节点中除该基准骨架节点外的剩余骨架节点;当多个直线方向符合方向一致性条件时,根据多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
在一个实施例中,方法还包括:当多个直线方向中部分直线方向不符合方向一致性条件时,筛选多个直线方向中符合方向一致性条件的直线方向;根据筛选的直线方向确定手势在图像帧中的指向。
具体地,当经过指定骨架节点的多个直线方向中只有部分直线方向不符合方向一致性条件时,则可认定多个骨架节点中除指定骨架节点的剩余骨架节点中存在位置计算存在误差的骨架节点,那么就忽略这个点对确定直线方向的影响,根据剩余的符合方向一致性条件部分直线方向的直线方向确定手势在图像帧中的指向。
在一个实施例中,方法还包括:当多个直线方向均不符合方向一致性条件时,挑选多个骨架节点中除指定骨架节点外的剩余骨架节点;重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;当重新确定的多个直线方向符合方向一致性条件时,根据重新确定的多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
具体地,当经过指定骨架节点的多个直线方向均不符合方向一致性条件时,那么可判断指定骨架节点的位置计算存在误差,就可以根据多个骨架节点中除指定骨架节点的剩余骨架节点重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;当重新确定的多个直线方向符合方向一致性条件时,就验证了指定骨架节点的位置计算确实存在误差,就可以根据重新确定的多个直线方向中至少一个直线方向确定手势在图像帧中的指向。
在一个实施例中,方法还包括:当多个直线方向均不符合方向一致性条件时,根据挑选的剩余骨架节点在图像帧中的位置,重新确定手势在图像帧中指定的位置。
具体地,当经过指定骨架节点的多个直线方向均不符合方向一致性条件时,且当重新确定的多个直线方向符合方向一致性条件时,终端可根据挑选的剩余骨架节点在图像帧中的位置,重新估算指定骨架节点在图像帧中的位置,从而,根据重新估算的指定骨架节点在图像帧中的位置确定手势在图像帧中指定的位置。
在一个实施例中,当重新确定的多个直线方向均不符合方向一致性条件时,则说明这剩余骨架节点中包括位置计算存在误差的骨架节点,也就是多个骨架节点中至少存在两个或两个以上的骨架节点的位置存在计算误差,那么终端根据识别出的这多个骨架节点中各个骨架节点的位置无法确定一个直线方向时,那么终端就无法确定手势在图像帧中的指向,就不会触发执行步骤S208和/或步骤S210。
举例说明:如图9(1)所示,在一个实施例中,手势中用于确定指向的多个骨架节点是用于构成食指的四个骨架节点A、B、C和D,其中骨架节点A是指定骨架节点。先确定经过指定骨架节点A的多个直线方向
Figure BDA0001676158200000141
Figure BDA0001676158200000142
Figure BDA0001676158200000143
Figure BDA0001676158200000144
Figure BDA0001676158200000145
符合方向一致性条件时,即
Figure BDA0001676158200000146
Figure BDA0001676158200000147
这三个方向间的夹角在预设范围内时,就可任选
Figure BDA0001676158200000148
Figure BDA0001676158200000149
中的一个方向作为手势在图像帧中的指向。当然,也可以根据
Figure BDA00016761582000001410
确定一个基准直线方向
Figure BDA00016761582000001412
基准直线方向
Figure BDA00016761582000001413
Figure BDA00016761582000001414
Figure BDA00016761582000001415
均符合方向一致性条件。
如图9(2)所示,当
Figure BDA00016761582000001416
中部分直线方向不符合方向一致性条件时,则判断
Figure BDA00016761582000001419
中是否存在某两个直线方向符合方向一致性条件。比如,当终端判断到
Figure BDA00016761582000001420
Figure BDA00016761582000001421
符合方向一致性条件,则说明指定骨架节点A的位置的不存在计算误差、且骨架节点B的位置存在计算误差,那么就可以将
Figure BDA00016761582000001423
所在的方向作为手势在图像帧中的指向。
如图9(3)所示,当
Figure BDA00016761582000001424
Figure BDA00016761582000001425
均不符合方向一致性条件时,则可判断指定骨架节点A的位置的存在计算误差,终端可根据剩余骨架节点B、C和D重新确定直线方向
Figure BDA00016761582000001427
当重新确定的直线方向
Figure BDA00016761582000001428
Figure BDA00016761582000001429
符合方向一致性条件时,则验证了指定骨架节点A的位置存在计算误差,那么可根据重新确定的直线方向
Figure BDA00016761582000001430
中的任一个方向确定手势在图像帧中的指向,也可以根据
Figure BDA00016761582000001432
确定一个基准直线方向
Figure BDA00016761582000001434
Figure BDA00016761582000001435
均符合方向一致性条件,根据基准直线方向
Figure BDA00016761582000001437
所在的方向确定手势在图像帧中的指向。
Figure BDA00016761582000001438
Figure BDA00016761582000001439
均不符合方向一致性条件、且根据骨架节点B、C和D确定了手势在图像帧中的指向后,终端可根据骨架节点B、C和D在图像帧中的位置对指定骨架节点A在图像帧中的位置进行预估,根据预估的骨架节点A在图像帧中的位置A′,重新确定手势在图像帧中指定的位置,即A′。
在上述实施例中,在根据手势中用于确定指向的多个骨架节点的位置确定手势在图像帧中的指向时,可通过一系列的判断步骤来对多个骨架节点的位置是否存在计算误差进行判定或进行纠错,从而能够提高对各个骨架节点的位置识别的准确率。
在一个实施例中,播放的图像帧还包括运动目标,且运动目标在逐帧播放的图像帧中随机运动或按照预设轨迹运动;方法还包括:当手势类型是非指向性手势类型的预设手势类型时,触发与预设手势类型对应且对于运动目标的操作。
其中,运动目标是在连续播放的图像帧中呈现随机运动或按预设轨迹运动的虚拟目标。比如,在虚拟射击类游戏中,运动目标可以是随机出现和随机移动的飞机。
具体地,当手势类型是非指向性手势类型的预设手势类型时,可触发针对运动目标的操作,且该操作与该预设手势类型对应。比如识别到“放大招”手势类型时,可触发对运动目标执行释放额外技能指令,并在图像帧渲染相应的画面效果。
如图10所示,在一个具体的实施例中,基于手势的虚拟对象控制方法具体包括以下步骤:
S1002,获取实时采集的包括手势的图像帧。
S1004,按照图像帧的不同图像属性分别对图像帧提取特征图。
S1006,将各特征图进行特征融合,得到图像帧的图像特征。
S1008,通过手势区域检测模型,根据图像特征确定手势的包围框坐标。
S1010,按照包围框坐标从图像帧中分割出手势区域。
S1012,按照手势区域的不同图像属性分别对手势区域提取特征图。
S1014,将各特征图进行特征融合,得到手势区域的图像特征。
S1016,通过骨架节点识别模型,根据手势区域的图像特征,确定手势区域中手势的各骨架节点的坐标。
S1018,根据各骨架节点的坐标确定手势区域中各骨架节点的位置。
S1020,依据各骨架节点的位置,识别出手势的手势类型。
S1022,当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,按照手势中指定骨架节点的位置,确定手势在图像帧中指定的位置。
S1024,确定经过指定骨架节点的多个直线方向,且各直线方向分别经过多个骨架节点中除指定骨架节点外的剩余骨架节点。
S1026,当多个直线方向符合方向一致性条件时,根据多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
S1028,当多个直线方向中部分直线方向不符合方向一致性条件时,筛选多个直线方向中符合方向一致性条件的直线方向;根据筛选的直线方向确定手势在图像帧中的指向。
S1030,当多个直线方向均不符合方向一致性条件时,挑选多个骨架节点中除指定骨架节点外的剩余骨架节点;重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;当重新确定的多个直线方向符合方向一致性条件时,根据重新确定的多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
S1032,当多个直线方向均不符合方向一致性条件时,根据挑选的剩余骨架节点在图像帧中的位置,重新确定手势在图像帧中指定的位置。
S1034,根据指定的位置和指向在图像帧中生成虚拟对象。
S1036,播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
图10为一个实施例中基于手势的虚拟对象控制方法的流程示意图。应该理解的是,虽然图10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种基于手势的虚拟对象控制装置1100,该装置包括图像帧获取模块1102、手势类型识别模块1104、确定模块1106、虚拟对象生成模块1108和图像帧播放模块1110,其中:
图像帧获取模块1102,用于获取实时采集的包括手势的图像帧;
手势类型识别模块1104,用于识别图像帧中手势的手势类型;
确定模块1106,用于当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定手势在图像帧中的指向和指定的位置;
虚拟对象生成模块1108,用于根据指定的位置和指向在图像帧中生成虚拟对象;
图像帧播放模块1110,用于播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
在一个实施例中,手势类型识别模块1104还用于从图像帧中分割出手势区域;在手势区域中确定手势各骨架节点的位置;依据各骨架节点的位置,识别出手势的手势类型。
在一个实施例中,手势类型识别模块1104还用于按照图像帧的不同图像属性分别对图像帧提取特征图;将各特征图进行特征融合,得到图像帧的图像特征;通过手势区域检测模型,根据图像特征确定手势的包围框坐标;按照包围框坐标从图像帧中分割出手势区域。
在一个实施例中,手势类型识别模块1104还用于按照手势区域的不同图像属性分别对手势区域提取特征图;将各特征图进行特征融合,得到手势区域的图像特征;通过骨架节点识别模型,根据手势区域的图像特征,确定手势区域中手势的各骨架节点的坐标;根据各骨架节点的坐标确定手势区域中各骨架节点的位置。
在一个实施例中,确定模块1106还用于按照手势中指定骨架节点的位置,确定手势在图像帧中指定的位置;根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向。
在一个实施例中,指定骨架节点属于用于确定指向的多个骨架节点。
在一个实施例中,确定模块1106还用于确定经过指定骨架节点的多个直线方向,且各直线方向分别经过多个骨架节点中除指定骨架节点外的剩余骨架节点;当多个直线方向符合方向一致性条件时,根据多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
在一个实施例中,方向一致性条件,是相应直线方向间的夹角在预设角度范围内。
在一个实施例中,确定模块1106还用于当多个直线方向中部分直线方向不符合方向一致性条件时,筛选多个直线方向中符合方向一致性条件的直线方向;根据筛选的直线方向确定手势在图像帧中的指向。
在一个实施例中,确定模块1106还用于当多个直线方向均不符合方向一致性条件时,根据挑选的剩余骨架节点在图像帧中的位置,重新确定手势在图像帧中指定的位置。
在一个实施例中,播放的图像帧还包括运动目标,且运动目标在逐帧播放的图像帧中随机运动或按照预设轨迹运动;基于手势的虚拟对象控制装置还包括操作触发模块,操作触发模块用于当手势类型是非指向性手势类型的预设手势类型时,触发与预设手势类型对应且对于运动目标的操作。
上述基于手势的虚拟对象控制装置1100,对虚拟对象的控制是基于采集的图像帧中手势的手势类型确定的,可以实现“隔空”控制虚拟对象的效果。在识别出获取的图像帧中手势的手势类型、且该手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,就确定手势在图像帧中的指向和指定的位置,从而可以在获取的图像帧中按照指向和指定的位置生成虚拟对象,并且,在逐帧播放的图像帧中,虚拟对象就可以按照指定的位置和指向运动,可实现基于图像帧中的手势对虚拟对象进行控制,无需用户通过控制装置进行操作,提升了对虚拟对象进行控制的效率。
图12示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图12所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于手势的虚拟对象控制方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行基于手势的虚拟对象控制方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的基于手势的虚拟对象控制装置可以实现为一种计算机程序的形式,计算机程序可在如图12所示的计算机设备上运行。计算机设备的存储器中可存储组成该基于手势的虚拟对象控制装置的各个程序模块,比如,图11所示的图像帧获取模块1102、手势类型识别模块1104、确定模块1106、虚拟对象生成模块1108和图像帧播放模块1110。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的基于手势的虚拟对象控制方法中的步骤。
例如,图12所示的计算机设备可以通过如图11所示的基于手势的虚拟对象控制装置1100中的图像帧获取模块1102执行步骤S202。计算机设备可通过手势类型识别模块1104执行步骤S204。计算机设备可通过确定模块1106执行步骤S206。计算机设备可通过虚拟对象生成模块1108执行步骤S208。计算机设备可通过图像帧播放模块1110执行步骤S210。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取实时采集的包括手势的图像帧;识别图像帧中手势的手势类型;当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定手势在图像帧中的指向和指定的位置;根据指定的位置和指向在图像帧中生成虚拟对象;播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
在一个实施例中,计算机程序被处理器执行识别图像帧中手势的手势类型的步骤时,使得处理器具体执行以下步骤:从图像帧中分割出手势区域;在手势区域中确定手势各骨架节点的位置;依据各骨架节点的位置,识别出手势的手势类型。
在一个实施例中,计算机程序被处理器执行从图像帧中分割出手势区域的步骤时,使得处理器具体执行以下步骤:按照图像帧的不同图像属性分别对图像帧提取特征图;将各特征图进行特征融合,得到图像帧的图像特征;通过手势区域检测模型,根据图像特征确定手势的包围框坐标;按照包围框坐标从图像帧中分割出手势区域。
在一个实施例中,计算机程序被处理器执行在手势区域中确定手势各骨架节点的位置的步骤时,使得处理器具体执行以下步骤:按照手势区域的不同图像属性分别对手势区域提取特征图;将各特征图进行特征融合,得到手势区域的图像特征;通过骨架节点识别模型,根据手势区域的图像特征,确定手势区域中手势的各骨架节点的坐标;根据各骨架节点的坐标确定手势区域中各骨架节点的位置。
在一个实施例中,计算机程序被处理器执行确定手势在图像帧中的指向和指定的位置的步骤时,使得处理器具体执行以下步骤:按照手势中指定骨架节点的位置,确定手势在图像帧中指定的位置;根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向。
在一个实施例中,指定骨架节点属于用于确定指向的多个骨架节点。
在一个实施例中,计算机程序被处理器执行根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向的步骤时,使得处理器具体执行以下步骤:确定经过指定骨架节点的多个直线方向,且各直线方向分别经过多个骨架节点中除指定骨架节点外的剩余骨架节点;当多个直线方向符合方向一致性条件时,根据多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
在一个实施例中,方向一致性条件,是相应直线方向间的夹角在预设角度范围内。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当多个直线方向中部分直线方向不符合方向一致性条件时,筛选多个直线方向中符合方向一致性条件的直线方向;根据筛选的直线方向确定手势在图像帧中的指向。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当多个直线方向均不符合方向一致性条件时,挑选多个骨架节点中除指定骨架节点外的剩余骨架节点;重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;当重新确定的多个直线方向符合方向一致性条件时,根据重新确定的多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当多个直线方向均不符合方向一致性条件时,根据挑选的剩余骨架节点在图像帧中的位置,重新确定手势在图像帧中指定的位置。
在一个实施例中,播放的图像帧还包括运动目标,且运动目标在逐帧播放的图像帧中随机运动或按照预设轨迹运动;计算机程序被处理器执行时,使得处理器还执行以下步骤:当手势类型是非指向性手势类型的预设手势类型时,触发与预设手势类型对应且对于运动目标的操作。
上述计算机设备,对虚拟对象的控制是基于采集的图像帧中手势的手势类型确定的,可以实现“隔空”控制虚拟对象的效果。在识别出获取的图像帧中手势的手势类型、且该手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,就确定手势在图像帧中的指向和指定的位置,从而可以在获取的图像帧中按照指向和指定的位置生成虚拟对象,并且,在逐帧播放的图像帧中,虚拟对象就可以按照指定的位置和指向运动,可实现基于图像帧中的手势对虚拟对象进行控制,无需用户通过控制装置进行操作,提升了对虚拟对象进行控制的效率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取实时采集的包括手势的图像帧;识别图像帧中手势的手势类型;当手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,确定手势在图像帧中的指向和指定的位置;根据指定的位置和指向在图像帧中生成虚拟对象;播放包括虚拟对象的图像帧,且虚拟对象在逐帧播放的图像帧中按照指定的位置和指向运动。
在一个实施例中,计算机程序被处理器执行识别图像帧中手势的手势类型的步骤时,使得处理器具体执行以下步骤:从图像帧中分割出手势区域;在手势区域中确定手势各骨架节点的位置;依据各骨架节点的位置,识别出手势的手势类型。
在一个实施例中,计算机程序被处理器执行从图像帧中分割出手势区域的步骤时,使得处理器具体执行以下步骤:按照图像帧的不同图像属性分别对图像帧提取特征图;将各特征图进行特征融合,得到图像帧的图像特征;通过手势区域检测模型,根据图像特征确定手势的包围框坐标;按照包围框坐标从图像帧中分割出手势区域。
在一个实施例中,计算机程序被处理器执行在手势区域中确定手势各骨架节点的位置的步骤时,使得处理器具体执行以下步骤:按照手势区域的不同图像属性分别对手势区域提取特征图;将各特征图进行特征融合,得到手势区域的图像特征;通过骨架节点识别模型,根据手势区域的图像特征,确定手势区域中手势的各骨架节点的坐标;根据各骨架节点的坐标确定手势区域中各骨架节点的位置。
在一个实施例中,计算机程序被处理器执行确定手势在图像帧中的指向和指定的位置的步骤时,使得处理器具体执行以下步骤:按照手势中指定骨架节点的位置,确定手势在图像帧中指定的位置;根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向。
在一个实施例中,指定骨架节点属于用于确定指向的多个骨架节点。
在一个实施例中,计算机程序被处理器执行根据手势中用于确定指向的多个骨架节点之间的位置关系,确定手势在图像帧中的指向的步骤时,使得处理器具体执行以下步骤:确定经过指定骨架节点的多个直线方向,且各直线方向分别经过多个骨架节点中除指定骨架节点外的剩余骨架节点;当多个直线方向符合方向一致性条件时,根据多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
在一个实施例中,方向一致性条件,是相应直线方向间的夹角在预设角度范围内。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当多个直线方向中部分直线方向不符合方向一致性条件时,筛选多个直线方向中符合方向一致性条件的直线方向;根据筛选的直线方向确定手势在图像帧中的指向。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当多个直线方向均不符合方向一致性条件时,挑选多个骨架节点中除指定骨架节点外的剩余骨架节点;重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;当重新确定的多个直线方向符合方向一致性条件时,根据重新确定的多个直线方向中的至少一直线方向确定手势在图像帧中的指向。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当多个直线方向均不符合方向一致性条件时,根据挑选的剩余骨架节点在图像帧中的位置,重新确定手势在图像帧中指定的位置。
在一个实施例中,播放的图像帧还包括运动目标,且运动目标在逐帧播放的图像帧中随机运动或按照预设轨迹运动;计算机程序被处理器执行时,使得处理器还执行以下步骤:当手势类型是非指向性手势类型的预设手势类型时,触发与预设手势类型对应且对于运动目标的操作。
上述计算机可读存储介质,对虚拟对象的控制是基于采集的图像帧中手势的手势类型确定的,可以实现“隔空”控制虚拟对象的效果。在识别出获取的图像帧中手势的手势类型、且该手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,就确定手势在图像帧中的指向和指定的位置,从而可以在获取的图像帧中按照指向和指定的位置生成虚拟对象,并且,在逐帧播放的图像帧中,虚拟对象就可以按照指定的位置和指向运动,可实现基于图像帧中的手势对虚拟对象进行控制,无需用户通过控制装置进行操作,提升了对虚拟对象进行控制的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种基于手势的虚拟对象控制方法,包括:
获取实时采集的包括手势的图像帧;
识别所述图像帧中手势的手势类型;
当所述手势类型为用于控制虚拟对象指向性运动的指向性手势类型时,
按照所述手势中指定骨架节点的位置,确定所述手势在所述图像帧中指定的位置,所述指定骨架节点属于用于确定指向的多个骨架节点;
确定经过所述指定骨架节点的多个直线方向,且各所述直线方向分别经过所述多个骨架节点中除所述指定骨架节点外的剩余骨架节点;
当所述多个直线方向符合方向一致性条件时,根据所述多个直线方向中的至少一直线方向确定所述手势在所述图像帧中的指向;
根据所述指定的位置和所述指向在所述图像帧中生成虚拟对象;
播放包括所述虚拟对象的所述图像帧,且所述虚拟对象在逐帧播放的图像帧中按照所述指定的位置和所述指向运动。
2.根据权利要求1所述的方法,其特征在于,所述识别所述图像帧中手势的手势类型包括:
从所述图像帧中分割出手势区域;
在所述手势区域中确定所述手势各骨架节点的位置;
依据各骨架节点的位置,识别出所述手势的手势类型。
3.根据权利要求2所述的方法,其特征在于,所述从所述图像帧中分割出手势区域包括:
按照所述图像帧的不同图像属性分别对所述图像帧提取特征图;
将各所述特征图进行特征融合,得到所述图像帧的图像特征;
通过手势区域检测模型,根据所述图像特征确定所述手势的包围框坐标;
按照所述包围框坐标从所述图像帧中分割出手势区域。
4.根据权利要求2所述的方法,其特征在于,所述在所述手势区域中确定所述手势各骨架节点的位置包括:
按照所述手势区域的不同图像属性分别对所述手势区域提取特征图;
将各所述特征图进行特征融合,得到所述手势区域的图像特征;
通过骨架节点识别模型,根据所述手势区域的图像特征,确定所述手势区域中手势的各骨架节点的坐标;
根据各骨架节点的坐标确定所述手势区域中各骨架节点的位置。
5.根据权利要求1所述的方法,其特征在于,所述方向一致性条件,是相应直线方向间的夹角在预设角度范围内。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述多个直线方向中部分直线方向不符合方向一致性条件时,筛选所述多个直线方向中符合方向一致性条件的直线方向;
根据筛选的直线方向确定所述手势在所述图像帧中的指向。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述多个直线方向均不符合方向一致性条件时,挑选所述多个骨架节点中除所述指定骨架节点外的剩余骨架节点;
重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;
当重新确定的多个直线方向符合方向一致性条件时,根据所述重新确定的多个直线方向中的至少一直线方向确定所述手势在所述图像帧中的指向。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述多个直线方向均不符合方向一致性条件时,根据挑选的剩余骨架节点在所述图像帧中的位置,重新确定所述手势在所述图像帧中指定的位置。
9.根据权利要求1至8中任一项所述的方法,其特征在于,播放的图像帧还包括运动目标,且所述运动目标在逐帧播放的图像帧中随机运动或按照预设轨迹运动;所述方法还包括:
当所述手势类型是非所述指向性手势类型的预设手势类型时,触发与所述预设手势类型对应且对于所述运动目标的操作。
10.一种基于手势的虚拟对象控制装置,包括:
图像帧获取模块,用于获取实时采集的包括手势的图像帧;
手势类型识别模块,用于识别所述图像帧中手势的手势类型;
确定模块,用于按照所述手势中指定骨架节点的位置,确定所述手势在所述图像帧中指定的位置,所述指定骨架节点属于用于确定指向的多个骨架节点;确定经过所述指定骨架节点的多个直线方向,且各所述直线方向分别经过所述多个骨架节点中除所述指定骨架节点外的剩余骨架节点;当所述多个直线方向符合方向一致性条件时,根据所述多个直线方向中的至少一直线方向确定所述手势在所述图像帧中的指向;
虚拟对象生成模块,用于根据所述指定的位置和所述指向在所述图像帧中生成虚拟对象;
图像帧播放模块,用于播放包括所述虚拟对象的所述图像帧,且所述虚拟对象在逐帧播放的图像帧中按照所述指定的位置和所述指向运动。
11.根据权利要求10所述的装置,其特征在于,所述手势类型识别模块还用于从所述图像帧中分割出手势区域;在所述手势区域中确定所述手势各骨架节点的位置;依据各骨架节点的位置,识别出所述手势的手势类型。
12.根据权利要求10所述的装置,其特征在于,所述确定模块还用于当所述多个直线方向中部分直线方向不符合方向一致性条件时,筛选所述多个直线方向中符合方向一致性条件的直线方向;根据筛选的直线方向确定所述手势在所述图像帧中的指向。
13.根据权利要求10所述的装置,其特征在于,所述确定模块还用于当所述多个直线方向均不符合方向一致性条件时,挑选所述多个骨架节点中除所述指定骨架节点外的剩余骨架节点;重新确定分别经过剩余骨架节点中两两组合的骨架节点的多个直线方向;当重新确定的多个直线方向符合方向一致性条件时,根据所述重新确定的多个直线方向中的至少一直线方向确定所述手势在所述图像帧中的指向。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
CN201810527046.7A 2018-05-29 2018-05-29 基于手势的虚拟对象控制方法、装置、存储介质和设备 Active CN108762505B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810527046.7A CN108762505B (zh) 2018-05-29 2018-05-29 基于手势的虚拟对象控制方法、装置、存储介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810527046.7A CN108762505B (zh) 2018-05-29 2018-05-29 基于手势的虚拟对象控制方法、装置、存储介质和设备

Publications (2)

Publication Number Publication Date
CN108762505A CN108762505A (zh) 2018-11-06
CN108762505B true CN108762505B (zh) 2020-01-24

Family

ID=64003140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810527046.7A Active CN108762505B (zh) 2018-05-29 2018-05-29 基于手势的虚拟对象控制方法、装置、存储介质和设备

Country Status (1)

Country Link
CN (1) CN108762505B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069126B (zh) * 2018-11-16 2023-11-03 北京微播视界科技有限公司 虚拟对象的控制方法和装置
CN110448903A (zh) * 2019-01-22 2019-11-15 网易(杭州)网络有限公司 游戏中控制策略的确定方法、装置、处理器及终端
CN110442238A (zh) * 2019-07-31 2019-11-12 腾讯科技(深圳)有限公司 一种确定动态效果的方法及装置
CN111273778B (zh) * 2020-02-14 2023-11-07 北京百度网讯科技有限公司 基于手势控制电子设备的方法和装置
CN111625102A (zh) * 2020-06-03 2020-09-04 上海商汤智能科技有限公司 一种建筑物展示方法及装置
CN112057866A (zh) * 2020-09-14 2020-12-11 深圳市小元元科技有限公司 一种符合人体关节作用力模拟方法
CN114327038B (zh) * 2021-11-19 2022-09-02 广州德纳智谷科技有限公司 一种基于人工智能技术的虚拟现实人机交互系统
CN114489337A (zh) * 2022-01-24 2022-05-13 深圳市慧鲤科技有限公司 一种ar互动方法、装置、设备及存储介质
TWI824859B (zh) * 2022-11-30 2023-12-01 國立勤益科技大學 虛擬購物手勢操控系統

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004840B (zh) * 2009-08-28 2013-09-11 深圳泰山在线科技有限公司 一种基于计算机实现虚拟拳击的方法和系统
US8897491B2 (en) * 2011-06-06 2014-11-25 Microsoft Corporation System for finger recognition and tracking
KR101546444B1 (ko) * 2013-12-30 2015-08-24 주식회사 매크론 가상마우스의 구동방법
CN103995595A (zh) * 2014-05-28 2014-08-20 重庆大学 一种基于手势的游戏体感控制方法
CN106814842A (zh) * 2015-11-30 2017-06-09 丰唐物联技术(深圳)有限公司 基于虚拟现实的光标移动方法及系统
CN107742102B (zh) * 2017-10-13 2020-03-24 北京华捷艾米科技有限公司 一种基于深度传感器的手势识别方法

Also Published As

Publication number Publication date
CN108762505A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108762505B (zh) 基于手势的虚拟对象控制方法、装置、存储介质和设备
CN108932053B (zh) 基于手势的绘图方法、装置、存储介质和计算机设备
CN110062272B (zh) 一种视频数据处理方法和相关装置
EP3084577B1 (en) Selection and tracking of objects for display partitioning and clustering of video frames
TWI543610B (zh) 電子裝置及其影像選擇方法
JP5381569B2 (ja) ジェスチャ認識装置、ジェスチャ認識方法、およびジェスチャ認識プログラム
US7751627B2 (en) Image dominant line determination and use
CN110119700B (zh) 虚拟形象控制方法、虚拟形象控制装置和电子设备
CN109040474B (zh) 照片显示方法、装置、终端及存储介质
JP2022531639A (ja) ビデオへの情報埋め込み方法、コンピュータ機器及びコンピュータプログラム
EP3518522B1 (en) Image capturing method and device
CN109886223B (zh) 人脸识别方法、底库录入方法、装置及电子设备
CN110210480B (zh) 文字识别方法、装置、电子设备和计算机可读存储介质
US11568631B2 (en) Method, system, and non-transitory computer readable record medium for extracting and providing text color and background color in image
CN109840885B (zh) 图像融合方法及相关产品
CN111832561B (zh) 基于计算机视觉的字符序列识别方法、装置、设备和介质
CN114003160B (zh) 数据可视化展示方法、装置、计算机设备和存储介质
CN113129229A (zh) 图像处理方法、装置、计算机设备和存储介质
CN113727039B (zh) 视频生成方法、装置、电子设备及存储介质
CN103955713B (zh) 一种图标识别方法和装置
CN109919190B (zh) 直线段匹配方法、装置、存储介质及终端
CN109871814B (zh) 年龄的估计方法、装置、电子设备和计算机存储介质
CN111638844A (zh) 截屏方法、装置及电子设备
CN111160265B (zh) 文件转换方法、装置、存储介质及电子设备
CN116580054A (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
GR01 Patent grant
GR01 Patent grant