CN110069125A - 虚拟对象的控制方法和装置 - Google Patents
虚拟对象的控制方法和装置 Download PDFInfo
- Publication number
- CN110069125A CN110069125A CN201811107864.8A CN201811107864A CN110069125A CN 110069125 A CN110069125 A CN 110069125A CN 201811107864 A CN201811107864 A CN 201811107864A CN 110069125 A CN110069125 A CN 110069125A
- Authority
- CN
- China
- Prior art keywords
- hand
- virtual object
- information
- action
- controlling
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000033001 locomotion Effects 0.000 claims abstract description 49
- 238000009877 rendering Methods 0.000 claims description 107
- 230000009471 action Effects 0.000 claims description 81
- 230000008859 change Effects 0.000 claims description 26
- 230000000694 effects Effects 0.000 claims description 19
- 239000000203 mixture Substances 0.000 claims description 4
- 230000006870 function Effects 0.000 description 17
- 210000004247 hand Anatomy 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 238000012360 testing method Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000002156 mixing Methods 0.000 description 8
- 239000002245 particle Substances 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 210000003811 finger Anatomy 0.000 description 3
- 210000001145 finger joint Anatomy 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003796 beauty Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000227 grinding Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 210000004932 little finger Anatomy 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000000007 visual effect 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开公开了一种虚拟对象的控制方法、装置、电子设备和计算机可读存储介质。其中该虚拟对象的控制方法包括:获取视频;识别所述视频中的人手,得到人手信息;识别左手动作和右手的动作;根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。本公开实施例通过采取该技术方案,解决了现有技术中虚拟对象控制不灵活的技术问题。
Description
技术领域
本公开涉及图像处理领域,尤其涉及一种虚拟对象的控制方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,智能终端的应用范围得到了广泛的提高,例如可以通过智能终端听音乐、玩游戏、上网聊天和拍照等。对于智能终端的拍照技术来说,其拍照像素已经达到千万像素以上,具有较高的清晰度和媲美专业相机的拍照效果。
目前在采用智能终端进行拍照时,不仅可以使用出厂时内置的拍照软件实现传统功能的拍照效果,还可以通过从网络端下载应用程序(Application,简称为:APP)来实现具有附加功能的拍照效果,例如可以实现暗光检测、美颜相机和超级像素等功能的APP。智能终端的美颜功能通常包括肤色调整、磨皮、大眼和瘦脸等美颜处理效果,能对图像中已识别出的所有人脸进行相同程度的美颜处理。目前也有APP可以实现简单的显示虚拟对象的功能,比如在屏幕的固定位置显示一个固定的虚拟对象,虚拟对象可以做一些简单的动作。
然而目前的虚拟对象,只能在固定的位置固定的时间显示,如果需要改变虚拟的显示或者动作属性,需要直接对虚拟对象本身进行修改,因此虚拟对象的控制很不灵活。
发明内容
第一方面,本公开实施例提供一种虚拟对象的控制方法,包括:
获取视频;识别所述视频中的人手,得到人手信息;识别左手动作和右手的动作;根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。
进一步的,所述根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化,包括:当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象;当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化。
进一步的,所述识别所述视频中的人手,得到人手信息,包括:识别所述视频中的人手,获取人手的位置以及人手关键点。
进一步的,所述当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象,包括:当识别到左手做出第一动作,且右手做出第二动作,获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,根据所述图像渲染信息,在所述左手上显示第一虚拟对象,在所述右手上显示第二虚拟对象。
进一步的,所述当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化,包括:当识别到所述左手或者右手做出第三动作,播放所述第一虚拟对象或者第二虚拟对象的动画效果。
进一步的,所述当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化,包括:当识别到所述左手或者右手做出第三动作,根据所述人手信息控制所述第一虚拟对象或者所述第二虚拟对象的移动。
进一步的,所述获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,包括:获取所述第一虚拟对象、所述第二虚拟对象和人手的渲染位置以及渲染顺序。
进一步的,所述当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象,包括:当识别到所述左手做出第一动作,所述右手做出第二动作,且所述左手和右手之间的距离大于第一阈值时,根据所述人手信息在左手上显示第一虚拟对象,且所述第一虚拟对象垂直于所述左手和右手的连接线,根据所述人手信息在右手上显示第二虚拟对象,且所述第二虚拟对象与所述左手和右手的连接线平行。
进一步的,所述左手和右手之间的距离为左手的第一预定关键点和右手的第二预定关键点之间的距离。
进一步的,所述获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,包括:读取渲染配置文件;使用所述第一虚拟对象、第二虚拟对象以及人手信息,从所述渲染配置文件中获取图像渲染信息。
进一步的,在所述读取渲染配置文件之前,还包括:设置渲染配置文件,对所述图像渲染信息进行设置。
第二方面,本公开实施例提供一种虚拟对象的控制装置,包括:
视频获取模块,用于获取视频;
人手信息获取模块,用于识别所述视频中的人手,获取人手信息;
人手动作识别模块,用于左手动作和右手的动作;
显示控制模块,用于根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。
进一步的,所述显示控制模块包括:
虚拟对象显示模块,用于当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象;
虚拟对象变化模块,用于当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化。
进一步的,所述人手信息获取模块,包括:
人手识别模块,用于识别所述视频中的人手,获取人手的位置以及人手关键点。
进一步的,所述虚拟对象显示模块,包括:
渲染信息获取模块,用于识别到左手做出第一动作,且右手做出第二动作,获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息;
显示子模块,用于根据所述图像渲染信息,在所述左手上显示第一虚拟对象,在所述右手上显示第二虚拟对象。
进一步的,所述虚拟对象变化模块,用于:
当识别到所述左手或者右手做出第三动作,播放所述第一虚拟对象或者第二虚拟对象的动画效果。
进一步的,所述虚拟对象变化模块,用于:
当识别到所述左手或者右手做出第三动作,根据所述人手信息控制所述第一虚拟对象或者所述第二虚拟对象的移动。
进一步的,所述图像渲染信息获取模块,用于:
获取所述第一虚拟对象、所述第二虚拟对象和人手的渲染位置以及渲染顺序。
进一步的,所述虚拟对象显示模块,用于:
当识别到所述左手做出第一动作,所述右手做出第二动作,且所述左手和右手之间的距离大于第一阈值时,根据所述人手信息在左手上显示第一虚拟对象,且所述第一虚拟对象垂直于所述左手和右手的连接线,根据所述人手信息在右手上显示第二虚拟对象,且所述第二虚拟对象与所述左手和右手的连接线平行。
进一步的,所述图像渲染信息获取模块,包括:
渲染配置文件读取模块,用于读取渲染配置文件;
渲染信息获取子模块,用于使用所述第一虚拟对象、第二虚拟对象以及人手信息,从所述渲染配置文件中获取图像渲染信息。
进一步的,所述图像渲染信息获取模块还包括:
渲染配置文件设置模块,用于设置渲染配置文件,对所述图像渲染信息进行设置。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面中的任一所述虚拟对象的控制方法。
第四方面,本公开实施例提供一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第一方面中的任一所述虚拟对象的控制方法。
本公开实施例提供一种虚拟对象的控制方法、装置、电子设备和计算机可读存储介质。其中该虚拟对象的控制方法包括:获取视频;识别所述视频中的人手,得到人手信息;识别左手动作和右手的动作;根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。本公开实施例通过采取该技术方案,解决了现有技术中虚拟对象控制不灵活的技术问题。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的虚拟对象的控制方法实施例一的流程图;
图2a-2d为本公开实施例提供的虚拟对象的控制方法的具体实例示意图;
图3为本公开实施例提供的虚拟对象的控制装置实施例一的结构示意图;
图4为根据本公开实施例提供的电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
图1为本公开实施例提供的虚拟对象的控制方法实施例一的流程图,本实施例提供的该虚拟对象的控制方法可以由一虚拟对象的控制装置来执行,该虚拟对象的控制装置可以实现为软件,或者实现为软件和硬件的组合,该虚拟对象的控制装置可以集成设置在图像处理系统中的某设备中,比如图像处理服务器或者图像处理终端设备中。如图1所示,该方法包括如下步骤:
步骤S101,获取视频;
该步骤中的获取视频可以是使用图像传感器采集视频,所述图像传感器指可以采集图像的各种设备,典型的图像传感器为摄像机、摄像头、相机等。在该实施例中,所述图像传感器可以是移动终端上的摄像头,比如智能手机上的前置或者后置摄像头,摄像头采集的视频图像可以直接显示在手机的显示屏上,在该步骤中,获取图像传感器所拍摄的图像视频,用于在下一步进一步识别图像。
步骤S102,识别所述视频中的人手,得到人手信息;
在识别人手时,可以使用颜色特征定位人手的位置,将人手从背景中分割出来,对找到和分割出的人手图像进行特征提取与识别。具体的,使用图像传感器获取图像的颜色信息以及颜色信息的位置信息;将所述颜色信息与预设的人手颜色信息对比;识别第一颜色信息,所述第一颜色信息与所述预设的人手颜色信息的误差小于第一阈值;利用所述第一颜色信息的位置信息形成人手的轮廓。优选的,为了避免环境亮度对颜色信息的干扰,可以将图像传感器采集到的RGB颜色空间的图像数据映射到HSV颜色空间,使用HSV颜色空间中的信息作为对比信息,优选的,将HSV颜色空间中的色调值作为颜色信息,色调信息受亮度的影响最小,可以很好的过滤亮度的干扰。使用人手轮廓粗略确定人手的位置,之后对人手进行关键点提取。在图像上进行人手关键点提取,相当于寻找每个人手轮廓关键点在人手图像中的对应位置坐标,即关键点定位,这一过程需要基于关键点对应的特征进行,在获得了能够清晰标识关键点的图像特征之后,依据此特征在图像中进行搜索比对,在图像上精确定位关键点的位置。由于关键点在图像中仅占据非常小的面积(通常只有几个至几十个像素的大小),关键点对应的特征在图像上所占据的区域通常也是非常有限和局部的,目前用的特征提取方式有两种:(1)沿轮廓垂向的一维范围图像特征提取;(2)关键点方形邻域的二维范围图像特征提取。上述两种方式有很多种实现方法,如ASM和AAM类方法、统计能量函数类方法、回归分析方法、深度学习方法、分类器方法、批量提取方法等等。上述各种实现方法所使用的关键点个数,准确度以及速度各不相同,适用于不同的应用场景。同样的,对于其他的目标物体,也可以使用同样的原理来识别目标物体。
在识别出人手之后,在人手的外轮廓之外圈定一个多边形,作为人手的外接检测框,该外接检测框用于替代所述人手,描述所述人手的位置,在此以矩形为例,在识别出人手的关键点之后,可以计算人手最宽处的宽度以及最长处的长度,以该宽度和长度识别出人手的外接检测框。计算人手的最长处和最宽处的一个实现方式为,提取人手的边界关键点,计算X坐标距离最远的两个边界关键点的X坐标之差,作为矩形宽的长度,计算Y坐标距离最远的两个边界关键点的Y坐标之差,作为矩形长的长度。如果人手缩成拳头状,可以设定外接检测框为覆盖拳头的最小圆形。具体的,可以用外检检测框的中心点作为手的位置,所述外接检测框的中心点为外接检测框对角线的交点;也可以用所述圆形的圆心代替拳头的位置。
人手信息还包括检测出来的人手关键点,所述关键点的数量可以设置,一般来说可以包括人手轮廓的关键点和关节关键点,每个关键点有固定编号,比如可以按照轮廓关键点、大拇指关节关键点、食指关节关键点、中指关节关键点、无名指关节关键点、小拇指关节关键点的顺序,从上到下编号,在一个典型的应用中,所述关键点为22个,每个关键点有固定编号。
在一个实施例中,在计算所述人手信息之前,还包括对人手的识别数据进行平滑和坐标归一化处理的步骤。具体的,所述平滑处理可以是将多帧视频中的图像进行平均,将平均之后的图像作为识别出的图像,对应到本公开中的人手上,可以对多帧图像中的人手进行识别,之后将人手图像做加权平均,将平均之后得到的人手图像作为识别出的人手,计算人手信息,这样可以在丢失某些帧或者某些帧识别的图像不是很清晰的情况下,依然可以确定人手的图像并计算人手的信息。坐标归一化处理,是将坐标范围统一,如摄像头所采集到的人手图像和显示在显示屏上的人手图像的坐标并不统一,需要有一个映射关系来将大坐标系映射到一个小坐标系上。经过平滑处理和归一化处理之后,得到人手的信息。
步骤S103,识别左手动作和右手的动作;
在该步骤中,识别左手和右手的人手动作;
所述人手动作可以包括手势和/或人手的运动轨迹;
手势的识别可以利用步骤S102中所获取的人手图像信息,放入深度学习模型中识别,在此不再赘述。
在该步骤中,还可以识别人手的动作,所述人手的动作记录人手的运动轨迹,并分析所述运动轨迹来识别。具体的,记录人手的运动轨迹首先需要跟踪人手的运动,在基于视觉的人手动作识别系统中,人手运动轨迹跟踪是跟踪手势在图片序列中的位置变化,获取人手在连续时间上的位置信息,人手运动轨迹跟踪效果的优劣直接影响人手动作识别的效果。常用的动作跟踪方法有粒子滤波算法、均值漂移(Mean-shift)算法、卡尔曼滤波法和骨骼跟踪法等。
其中,基于粒子滤波的目标跟踪是在随机运动模型中获取目标分布的后验概率估计的随机搜索过程,粒子滤波主要分为两步:初步采样和重复采样。初步采样是在一副图像中随机放置粒子,然后计算每个粒子和跟踪目标特征的相似度,进而获得每个粒子的权重。重采样阶段主要是根据初步采样中粒子的权重,改变粒子的分布情况。重复初步采样和重采样的过程,直到跟踪到目标。
均值漂移法(Mean-shift)是非参数概率密度梯度估计算法。在人手动作识别中,利用Mean-shift算法来跟踪人手的基本思路是:首先建立人手的模型,即计算初始图像帧中属于手部的像素在特征空间的特征值的概率;然后建立当前帧的模型,计算人手可能存在区域的所有像素的特征值概率;最后通过求取初始人手模型和当前帧的人手模型的相似性来得到人手均值漂移量。根据均值漂移算法的收敛性,迭代计算手部的均值漂移量,达到收敛到当前图像帧中人手位置的目的。
卡尔曼滤波是利用一系列数学方程预测线性系统在现在或将来的状态。在人手运动轨迹跟踪中,卡尔曼滤波主要是观测一系列图像帧中人手的位置信息,然后预测下一帧中人手的位置。因为卡尔曼滤波是在每个时间间隔的后验概率估计的假设上成立的,所以卡尔曼滤波方法在高斯分布环境下能取得较好的跟踪效果。这种方法能去除噪声,并在手势变形下仍能取得较好的人手跟踪效果。
随着微软Kinect的广泛应用,许多研究者利用微软的Microsoft Kinect传感器特有的骨骼点跟踪来做人手跟踪的研究。在传感器的视野范围内,Kinect可以提供一名或者两名用户完整的骨骼跟踪,即全身20个关节点的跟踪。骨骼点跟踪分为主动跟踪和被动跟踪,在主动跟踪的模式下,在视野内选择两个可能的用户进行跟踪,在被动跟踪模式下,最多可以跟踪6个用户的骨骼点,多余的四个只作位置跟踪。Kinect的骨骼跟踪的原理是在获取的深度图像的基础上,通过对人体的32个部分进行分类和机器学习的方法,找到各个部分的骨骼关节点信息。
由于在该步骤中可以采集人手骨骼的关键点,因此在本公开中可以优先使用基于骨骼跟踪的人手运动轨迹跟踪方法。在分析运动轨迹识别人手动作时,需要识别人手动作的起点和终点,在本公开中,可以计算人手关键点在连续两帧图像中的移动距离,当距离小于一个预设阈值时,认为关键点的位置保持不变,当关键点的预设的连续几帧都保持位置不变时,将手部的位置识别为人手动作的起点或终点,典型的比如所述阈值可以设为1cm,当连续6帧内关键点位置没有发生变化时,将人手的位置作为人手动作的起点或终点。之后可以计算起点和终点之间的图像帧中关键点的位置,所有图像帧中的关键点所形成的轨迹即为人手的运动轨迹,将起点和终点之间的运动轨迹与预设的运动轨迹进行对比识别,当相似度大于一个预设的相似阈值时,将所述运动轨迹识别为一个人手动作。
步骤S104,根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。
此处的虚拟对象可以是任何2D或者3D的虚拟对象,典型的如虚拟的弓箭、箭、宝剑、手枪等虚拟武器,虚拟的笔、虚拟的书等虚拟文具,虚拟的手套、虚拟的戒指等虚拟可穿戴物品等等,在此不做具体的限制,任何可以挂载在人手上的虚拟对象都可以引入到本公开中。虚拟对象可以有类型,比如适合手握的类型,如上述的宝剑、手枪、笔,适合穿戴的类型,如手套、戒指等,适合放置于手掌上的类型,如书等,当然同一个虚拟对象可以有不止一种类型,比如书,既可以放置于手掌上也可以手握。在该步骤中,获取虚拟对象的同时,可以获取虚拟对象的类型,获取虚拟对象的类型可以直接从虚拟对象的属性数据中获取,或者获取虚拟对象的ID,通过ID查询该ID的类型,类型的获取方式可以任选,无论何种方式都可以应用到本公开中。
在一个具体实施方式中,当识别到左手做出第一动作,且右手做出第二动作时,比如左手做出握拳的动作,并且右手也做出握拳的动作,则确定要显示虚拟对象,此时在左手的预定位置上显示第一虚拟对象,在右手的预定位置上显示第二虚拟对象。而虚拟对象的控制属性,比如显示位置、大小、状态等由人手信息决定。
在一个具体实施方式中,当识别到左手做出第一动作,且右手做出第二动作,获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,根据所述图像渲染信息,在所述左手上显示第一虚拟对象,在所述右手上显示第二虚拟对象。
在一个具体的实施方式中,当识别到所述左手做出第一动作,所述右手做出第二动作,且所述左手和右手之间的距离大于第一阈值时,根据所述人手信息在左手上显示第一虚拟对象,且所述第一虚拟对象垂直于所述左手和右手的连接线,根据所述人手信息在右手上显示第二虚拟对象,且所述第二虚拟对象与所述左手和右手的连接线平行,比如在虚拟对象为弓箭的场景,当左手做出握拳的动作,右手也做出握拳的动作,且左手和右手之间的距离大于第一阈值时,在左手的中心上显示虚拟弓,在右手的中心上显示虚拟箭。此处的左手和右手之间的距离可以是左手中心和右手中心的距离,所述左手中心和右手中心可以是人手外接检测框的中心点或者是人手的预定关键点,在此不做限定。
在一个具体的实施方式中,可以获取虚拟对象和人手的渲染位置以及渲染顺序。所述渲染位置,包括虚拟对象的渲染位置以及人手的渲染位置,其中人手的渲染位置可以在人手的识别位置,虚拟对象的渲染位置可以与人手的位置相关联,比如人手的位置由外接检测框的中心点确定,则虚拟对象的渲染位置可以直接跟中心点重合,此时可以将虚拟对象的中心位置与外接检测框的中心点重合;或者所述虚拟对象的渲染位置可以与所述中心点保持一定的位置关系,比如虚拟对象的渲染位置可以位于所述中心点Y轴正向上1个长度单位的位置,所述长度单位可以是自定义的长度单位,比如1个长度单位等于1cm等等,在此不做限制。总之,可以通过一定的关系来确定虚拟对象的渲染位置,这样就解决了人手和虚拟对象的控制在什么位置的问题。为了渲染位置更加精确,可以加入人手的关键点,此时可以设置虚拟对象挂载于人手的某几个关键点上,在一个实现方式中,可以在虚拟对象上设置3个点,这3个点与人手上的3个关键点对应,通过这种对应关系,可以确定虚拟对象的渲染位置。
所述渲染顺序,决定了虚拟对象和人手的显示关系。在某些场景下,虚拟对象和人手会有相互遮挡的问题,比如人手握着宝剑,被人手握着的宝剑部分需要被人手遮挡,比如人手戴着手套,则手套需要覆盖人手,在这样在某些时候需要先渲染人手之后再渲染虚拟对象,以使虚拟对象覆盖在人手之上,比如人手戴手套的情况;而在某些时候,需要先渲染虚拟对象,之后再渲染人手以使人手覆盖虚拟对象,比如手握宝剑的情况。渲染顺序与虚拟对象的类型相关,当然也可以预先设定虚拟对象的区域图层,比如可以设置宝剑的剑柄部分为下图层部分,设置手套永远位于上图层。
在一个实施例中,所述获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,包括:读取渲染配置文件;使用所述第一虚拟对象、第二虚拟对象以及人手信息,从所述渲染配置文件中获取图像渲染信息。
在该实施例中,所述渲染配置文件中保存了虚拟对象的序列帧的保存路径,根据虚拟对象的名称或者ID可以在配置文件中获取该虚拟对象的序列帧,所有序列帧可以组成一个完整的虚拟对象。具体的,可以在渲染配置文件中设置参数“range”:[idx_start,idx_end],表示在文件的列表中从第idx_start开始到第idx_end结束的连续文件,组成该序列帧;或者设置参数"idx":[idx0,idx1,……],表示在文件的列表中的第idx0、第idx1、……等文件,按次序组成该序列帧。
所述渲染配置文件中还包括虚拟对象位置的关联参数,所述关联参数描述序列帧关联哪几个人手关键点,默认可以关联所有关键点,也可以设置跟随其中的几个关键点。除了关联参数外,渲染配置文件中还包括虚拟对象与关键点的位置关系参数"point","point"中可以包括两组关联点,"point0"表示第一组关联点,"point1"表示第二组。对于每一组关联点,"point"描述了camera中的锚点位置,通过对若干组关键点及其权重,求加权平均得到;使用"idx"字段描述了关键点的序号,对于包括了检测框的人手,还可以使用"topleft"、"topright"、"bottomleft"、"bottomright",分别对应人手外接检测框的四个角(或前景的屏幕四个角)。举例来说,设置虚拟对象跟随人手的4个关键点,分别为9号、10号、11号和12号关键点,切每个关键点的权重为0.25,其中每个关键点的坐标分别为(X9,Y9),(X10,Y10),(X11,Y11),(X12,Y12),则可以得到虚拟对象所跟随的锚点的X轴坐标为Xa=X9*0.25+X10*0.25+X11*0.25+X12*0.25,锚点的Y轴坐标为Ya=Y9*0.25+Y10*0.25+Y11*0.25+Y12*0.25。可以理解的是,"point"中可以包括任一组关联点,并不局限于两组。在上述具体实例中,可以得到两个锚点,虚拟对象跟随这两个锚点的位置发生移动。而实际上,锚点可以不止两个,这与所使用的关联点的组数有关。其中每个关键点的坐标可以有步骤S103中所获取的人手信息中获得。其他渲染参数不再一一举例,总之在该渲染配置文件中保存有渲染图像所需的参数,并且这些参数与虚拟对象以及人手信息有对应关系或者需要虚拟对象和人手信息进行一定的计算得到。
所述渲染配置文件中还可以包括虚拟对象的缩放程度与关键点的关系,使用参数"scaleX"和"scaleY"分别描述了x和y方向的缩放需求。对于每个方向,都包括两个参数"start_idx"和"end_idx",其对应了两个关键点,这两个关键点之间的距离乘以"factor"的值后得到缩放的强度。其中factor为预先设置的值,可以为任意值。对于缩放来说,如果"position"中只有一组关联点"point0",那么x方向就是实际的水平向右方向;y方向为实际垂直向下方向;"scaleX"和"scaleY"都会生效,如果任一有缺失,则按照存在的那个参数保持虚拟对象原始长宽比进行缩放。如果"position"中"point0"和"point1"都有,那么x方向为point1.anchor-point0.anchor得到的向量方向;y方向由x方向顺时针旋转90度确定;"scaleX"无效,x方向的缩放由锚点跟随决定。"scaleY"会生效,若"scaleY"缺失,则保持虚拟对象原始长宽比进行缩放。
所述渲染配置文件中还可以包括虚拟对象的旋转参数"rotationtype",其只有在"position"中只有"point0"时,才会生效,其可以包括0和1两个值,其中:0:不需要旋转;1:需要根据关键点的相关角度值进行旋转。
所述渲染配置文件中还可以包括渲染混合模式,所述渲染混合是指将两种颜色混合在一起,具体到本公开中是指将某一像素位置的颜色与将要画上去的颜色混合在一起,从而实现特殊效果,而渲染混合模式是指混合所使用的方式,一般来说混合方式是指将源颜色和目标颜色做计算,得出混合后的颜色,在实际应用中常常将源颜色乘以源因子得到的结果与目标颜色乘以目标因子得到的结果做计算,得到混合后的颜色,举例来说,所述计算为加,则BLENDcolor=SRC_color*SCR_factor+DST_color*DST_factor,其中0≤SCR_factor≤1,0≤DST_factor≤1。根据上述运算公式,假设源颜色的四个分量(指红色,绿色,蓝色,alpha值)是(Rs,Gs,Bs,As),目标颜色的四个分量是(Rd,Gd,Bd,Ad),又设源因子为(Sr,Sg,Sb,Sa),目标因子为(Dr,Dg,Db,Da)。则混合产生的新颜色可以表示为:(Rs*Sr+Rd*Dr,Gs*Sg+Gd*Dg,Bs*Sb+Bd*Db,As*Sa+Ad*Da),其中alpha值表示透明度,0≤alpha≤1。上述混合方式仅仅是举例,实际应用中,可以自行定义或者选择混合方式,所述计算可以是加、减、乘、除、取两者中较大的、取两者中较小的、逻辑运算(和、或、异或等等)。上述混合方式仅仅是举例,实际应用中,可以自行定义或者选择混合方式,所述计算可以是加、减、乘、除、取两者中较大的、取两者中较小的、逻辑运算(和、或、异或等等)。
所述渲染配置文件中还可以包括渲染顺序,所述渲染顺序包括两个层次,一个是虚拟对象的序列帧之间的渲染顺序,该顺序可以使用参数"zorder"来定义,"zorder"的值越小,表示渲染的顺序越靠前;第二个层次是虚拟对象和人手之间的渲染顺序,该顺序可以通过多种方式来确定,典型的,也可以使用与"zorder"类似的方式,可以直接设置人手先渲染或者虚拟对象先渲染。在一个实施例中,还可以使用深度测试的方式来确定渲染的顺序,具体的所述深度测试,是指设置一个深度缓冲区,该深度缓冲区与颜色缓冲区相对应,深度缓冲区存储像素的深度信息,颜色缓冲区存储的像素的颜色信息,在决定是否绘制一个物体的表面时,首先将表面对应像素的深度值与存储在深度缓冲区中的值进行比较,如果大于等于深度缓冲区中值,则丢弃这部分;否则利用这个像素对应的深度值和颜色值,分别更新深度缓冲区和颜色缓冲区。这一过程称之为深度测试(Depth Testing)。在绘制场景前,清除颜色缓冲区时,清除深度缓冲区,清除深度缓冲区时将深度缓冲区的值设置为1,表示最大的深度值,深度值的范围在[0,1]之间,值越小表示越靠近观察着,值越大表示远离观察者。在开启深度测试时,还需要设置深度测试的比较函数,典型的函数如下:DF_ALWAYS,总是通过测试,此时与不开启深度测试是一样的,总是使用当前像素的深度值和颜色值更新深度缓冲区和颜色缓冲区;DF_NEVER,总是不通过测试,此时会一直保持深度缓冲和颜色缓冲区中的值,就是任何像素点都不会被绘制到屏幕上;DF_LESS,在当前深度值<存储的深度值时通过;DF_EQUAL,在当前深度值=存储的深度值时通过;DF_LEQUAL,在当前深度值≤存储的深度值时通过;DF_GREATER,在当前深度值>存储的深度值时通过;DF_NOTEQUAL,在当前深度值≠存储的深度值时通过;DF_GEQUAL,在当前深度值>=存储的深度值时通过。所述深度写是与深度测试关联的,一般来说如果开启了深度测试,并且深度测试的结果有可能会更新深度缓冲区的值时,需要开启深度写,以便对深度缓冲区的值进行更新。以下举例说明开启深度测试以及深度写时的图像绘制过程,假设要绘制两个色块,分别为红色和黄色,在渲染队列中,红色块在前,黄色块在后,红色块深度值为0.5,黄色块深度值为0.2,使用的深度测试比较函数为DF_LEQUAL,此时深度缓冲区中会先被写入0.5,颜色缓冲区中写入红色,之后在渲染黄色时,通过比较函数得出0.2<0.5,通过测试,则将深度缓冲区的值更新为0.2,颜色缓冲区更新为黄色,也就是说因为黄色的深度比较浅,因此需要覆盖到深度较深的红色。使用上述方法可以确定人手和虚拟对象的渲染顺序,以形成合成图像的效果。
进一步的,在读取渲染配置文件,还可以包括渲染配置文件的设置步骤,以对渲染配置文件中的渲染参数进行配置。
进一步的,可以理解的是,当所述预定的人手动作消失时,虚拟对象随之消失。
在一个具体实施方式中,当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化。此时在左手和右手别分显示第一虚拟对象和第二虚拟对象,当识别到左手或者右手继续做出了另外一个预定动作——第三动作,则控制左手的第一虚拟对象或者右手的第二虚拟对象做出第一变化。此处的第一变化可以是与第一虚拟对象或第二虚拟对象相关的动画效果,或者第一变化可以是移动第一虚拟对象或第二虚拟对象的位置。举例来说,对于虚拟弓箭来说,在步骤S104中,可以左手显示虚拟弓,右手显示虚拟箭,当检测到右手五指张开,可以使虚拟箭沿着左右手的中心点的连线射出,虚拟箭移动的速度可以与左右手之间的距离相关,也就是说左右手中心点的连线为控制虚拟箭移动方向的参数,左右手之间的距离为控制虚拟箭移动速度的参数。具体使用到哪些参数,可以根据虚拟对象的不同而不同,在此不再赘述。
本公开实施例提供一种虚拟对象的控制方法、装置、电子设备和计算机可读存储介质。其中该虚拟对象的控制方法包括:获取视频;识别所述视频中的人手,得到人手信息;识别左手动作和右手的动作;根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。本公开实施例通过采取该技术方案,解决了现有技术中虚拟对象控制不灵活的技术问题。
为了方便理解,参见附图2a-2d为本公开所公开的一种虚拟对象的控制方法的具体实例。参见附图2a,为图像传感器所采集到的视频中的视频帧,在初始状态,没有检测到预定的人手的动作,因此没有虚拟对象出现;参见附图2b,在该视频帧中,检测到左手的动作为五指张开,检测到右手的动作为五指张开,此时,在左手中心点显示虚拟弓,在右手中心点显示虚拟箭;参见附图c,右手向后移动,虚拟箭随右手向后移动;参见附图d,右手持续移动,当右手与左手之间的距离达到一定的阈值之后,虚拟箭延左手和右手中心的连线方向射出。
图3为本公开实施例提供的虚拟对象的控制装置30实施例一的结构示意图,如图3所示,该装置包括:视频获取模块31、人手信息获取模块32、人手动作识别模块33、和显示控制模块34。其中,
视频获取模块31,用于获取视频;
人手信息获取模块32,用于识别所述视频中的人手,获取人手信息;
人手动作识别模块33,用于左手动作和右手的动作;
显示控制模块34,用于根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。
进一步的,所述显示控制模块34包括:
虚拟对象显示模块,用于当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象;
虚拟对象变化模块,用于当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化。
进一步的,所述人手信息获取模块32,包括:
人手识别模块,用于识别所述视频中的人手,获取人手的位置以及人手关键点。
进一步的,所述虚拟对象显示模块34,包括:
渲染信息获取模块,用于识别到左手做出第一动作,且右手做出第二动作,获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息;
显示子模块,用于根据所述图像渲染信息,在所述左手上显示第一虚拟对象,在所述右手上显示第二虚拟对象。
进一步的,所述虚拟对象变化模块35,用于:
当识别到所述左手或者右手做出第三动作,播放所述第一虚拟对象或者第二虚拟对象的动画效果。
进一步的,所述虚拟对象变化模块35,用于:
当识别到所述左手或者右手做出第三动作,根据所述人手信息控制所述第一虚拟对象或者所述第二虚拟对象的移动。
进一步的,所述图像渲染信息获取模块,用于:
获取所述第一虚拟对象、所述第二虚拟对象和人手的渲染位置以及渲染顺序。
进一步的,所述虚拟对象显示模块34,用于:
当识别到所述左手做出第一动作,所述右手做出第二动作,且所述左手和右手之间的距离大于第一阈值时,根据所述人手信息在左手上显示第一虚拟对象,且所述第一虚拟对象垂直于所述左手和右手的连接线,根据所述人手信息在右手上显示第二虚拟对象,且所述第二虚拟对象与所述左手和右手的连接线平行。
进一步的,所述图像渲染信息获取模块,包括:
渲染配置文件读取模块,用于读取渲染配置文件;
渲染信息获取子模块,用于使用所述第一虚拟对象、第二虚拟对象以及人手信息,从所述渲染配置文件中获取图像渲染信息。
进一步的,所述图像渲染信息获取模块还包括:
渲染配置文件设置模块,用于设置渲染配置文件,对所述图像渲染信息进行设置。
图3所示装置可以执行图1所示实施例的方法,本实施例未详细描述的部分,可参考对图1所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1所示实施例中的描述,在此不再赘述。
下面参考图4,其示出了适于用来实现本公开实施例的电子设备400的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种虚拟对象的控制方法,其特征在于,包括:
获取视频;
识别所述视频中的人手,得到人手信息;
识别左手动作和右手的动作;
根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。
2.如权利要求1所述的虚拟对象的控制方法,其特征在于,所述根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化,包括:
当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象;
当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化。
3.如权利要求1所述的虚拟对象的控制方法,其特征在于,所述识别所述视频中的人手,得到人手信息,包括:
识别所述视频中的人手,获取人手的位置以及人手关键点。
4.如权利要求2所述的虚拟对象的控制方法,其特征在于,所述当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象,包括:
当识别到左手做出第一动作,且右手做出第二动作,获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,根据所述图像渲染信息,在所述左手上显示第一虚拟对象,在所述右手上显示第二虚拟对象。
5.如权利要求1所述的虚拟对象的控制方法,其特征在于,所述当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化,包括:
当识别到所述左手或者右手做出第三动作,播放所述第一虚拟对象或者第二虚拟对象的动画效果。
6.如权利要求1所述的虚拟对象的控制方法,其特征在于,所述当识别到左手或者右手做出第三动作,控制所述第一虚拟对象或者所述第二虚拟对象做出第一变化,包括:
当识别到所述左手或者右手做出第三动作,根据所述人手信息控制所述第一虚拟对象或者所述第二虚拟对象的移动。
7.如权利要求1所述的虚拟对象的控制方法,其特征在于,所述获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,包括:
获取所述第一虚拟对象、所述第二虚拟对象和人手的渲染位置以及渲染顺序。
8.如权利要求1所述的虚拟对象的控制方法,其特征在于,所述当识别到左手做出第一动作,且右手做出第二动作,根据所述人手信息在左手上显示第一虚拟对象,根据所述人手信息在右手上显示第二虚拟对象,包括:
当识别到所述左手做出第一动作,所述右手做出第二动作,且所述左手和右手之间的距离大于第一阈值时,根据所述人手信息在左手上显示第一虚拟对象,且所述第一虚拟对象垂直于所述左手和右手的连接线,根据所述人手信息在右手上显示第二虚拟对象,且所述第二虚拟对象与所述左手和右手的连接线平行。
9.如权利要求6所述的虚拟对象的控制方法,其特征在于,所述左手和右手之间的距离为左手的第一预定关键点和右手的第二预定关键点之间的距离。
10.如权利要求3所述的虚拟对象的控制方法,其特征在于,所述获取所述第一虚拟对象、所述第二虚拟对象与所述人手信息对应的图像渲染信息,包括:
读取渲染配置文件;
使用所述第一虚拟对象、第二虚拟对象以及人手信息,从所述渲染配置文件中获取图像渲染信息。
11.如权利要求9所述的图像合成方法,其特征在于,在所述读取渲染配置文件之前,还包括:
设置渲染配置文件,对所述图像渲染信息进行设置。
12.一种虚拟对象的控制装置,其特征在于,包括:
视频获取模块,用于获取视频;
人手信息获取模块,用于识别所述视频中的人手,获取人手信息;
人手动作识别模块,用于左手动作和右手的动作;
显示控制模块,用于根据所述左手动作、右手动作以及所述人手信息,在视频中显示多个虚拟对象并控制虚拟对象的变化。
13.一种电子设备,包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述处理器执行时实现根据权利要求1-11中任意一项所述的虚拟对象的控制方法。
14.一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行权利要求1-11中任意一项所述的虚拟对象的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811107864.8A CN110069125B (zh) | 2018-09-21 | 2018-09-21 | 虚拟对象的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811107864.8A CN110069125B (zh) | 2018-09-21 | 2018-09-21 | 虚拟对象的控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069125A true CN110069125A (zh) | 2019-07-30 |
CN110069125B CN110069125B (zh) | 2023-12-22 |
Family
ID=67365876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811107864.8A Active CN110069125B (zh) | 2018-09-21 | 2018-09-21 | 虚拟对象的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069125B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910512A (zh) * | 2019-11-29 | 2020-03-24 | 北京达佳互联信息技术有限公司 | 虚拟物体自适应调整方法、装置、计算机设备和存储介质 |
CN112887631A (zh) * | 2019-11-29 | 2021-06-01 | 北京字节跳动网络技术有限公司 | 在视频中显示对象的方法、装置、电子设备及计算机可读存储介质 |
CN114786040A (zh) * | 2022-06-15 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 数据通信方法、系统、电子设备和存储介质 |
TWI791351B (zh) * | 2021-01-07 | 2023-02-01 | 宏達國際電子股份有限公司 | 顯示方法、顯示系統及非暫態電腦可讀取儲存媒體 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3010563A1 (fr) * | 2013-09-09 | 2015-03-13 | Inst Mines Telecom Telecom Sudparis | Detection et reconnaissance d'objets. |
WO2016132822A1 (ja) * | 2015-02-16 | 2016-08-25 | 富士フイルム株式会社 | 仮想オブジェクト表示装置、方法、プログラムおよびシステム |
CN107680071A (zh) * | 2017-10-23 | 2018-02-09 | 深圳市云之梦科技有限公司 | 一种人脸与身体融合处理的方法及系统 |
CN107707839A (zh) * | 2017-09-11 | 2018-02-16 | 广东欧珀移动通信有限公司 | 图像处理方法及装置 |
CN108259496A (zh) * | 2018-01-19 | 2018-07-06 | 北京市商汤科技开发有限公司 | 特效程序文件包的生成及特效生成方法与装置、电子设备 |
CN108273265A (zh) * | 2017-01-25 | 2018-07-13 | 网易(杭州)网络有限公司 | 虚拟对象的显示方法及装置 |
CN108335331A (zh) * | 2018-01-31 | 2018-07-27 | 华中科技大学 | 一种钢卷双目视觉定位方法及设备 |
CN108495058A (zh) * | 2018-01-30 | 2018-09-04 | 光锐恒宇(北京)科技有限公司 | 图像处理方法、装置和计算机可读存储介质 |
CN108537867A (zh) * | 2018-04-12 | 2018-09-14 | 北京微播视界科技有限公司 | 根据用户肢体运动的视频渲染方法和装置 |
-
2018
- 2018-09-21 CN CN201811107864.8A patent/CN110069125B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3010563A1 (fr) * | 2013-09-09 | 2015-03-13 | Inst Mines Telecom Telecom Sudparis | Detection et reconnaissance d'objets. |
WO2016132822A1 (ja) * | 2015-02-16 | 2016-08-25 | 富士フイルム株式会社 | 仮想オブジェクト表示装置、方法、プログラムおよびシステム |
CN108273265A (zh) * | 2017-01-25 | 2018-07-13 | 网易(杭州)网络有限公司 | 虚拟对象的显示方法及装置 |
CN107707839A (zh) * | 2017-09-11 | 2018-02-16 | 广东欧珀移动通信有限公司 | 图像处理方法及装置 |
CN107680071A (zh) * | 2017-10-23 | 2018-02-09 | 深圳市云之梦科技有限公司 | 一种人脸与身体融合处理的方法及系统 |
CN108259496A (zh) * | 2018-01-19 | 2018-07-06 | 北京市商汤科技开发有限公司 | 特效程序文件包的生成及特效生成方法与装置、电子设备 |
CN108495058A (zh) * | 2018-01-30 | 2018-09-04 | 光锐恒宇(北京)科技有限公司 | 图像处理方法、装置和计算机可读存储介质 |
CN108335331A (zh) * | 2018-01-31 | 2018-07-27 | 华中科技大学 | 一种钢卷双目视觉定位方法及设备 |
CN108537867A (zh) * | 2018-04-12 | 2018-09-14 | 北京微播视界科技有限公司 | 根据用户肢体运动的视频渲染方法和装置 |
Non-Patent Citations (2)
Title |
---|
""ManoPong-First ever integration of ARKit with Gesture Reco"", pages 14 * |
鲁远耀;郭振芳;: "基于细菌觅食优化算法的多色彩空间嘴唇分割", 计算机工程, no. 06, pages 236 - 241 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910512A (zh) * | 2019-11-29 | 2020-03-24 | 北京达佳互联信息技术有限公司 | 虚拟物体自适应调整方法、装置、计算机设备和存储介质 |
CN112887631A (zh) * | 2019-11-29 | 2021-06-01 | 北京字节跳动网络技术有限公司 | 在视频中显示对象的方法、装置、电子设备及计算机可读存储介质 |
CN112887631B (zh) * | 2019-11-29 | 2022-08-12 | 北京字节跳动网络技术有限公司 | 在视频中显示对象的方法、装置、电子设备及计算机可读存储介质 |
CN110910512B (zh) * | 2019-11-29 | 2024-04-30 | 北京达佳互联信息技术有限公司 | 虚拟物体自适应调整方法、装置、计算机设备和存储介质 |
US12026896B2 (en) | 2019-11-29 | 2024-07-02 | Beijing Bytedance Network Technology Co., Ltd. | Method and apparatus for displaying object in video, and electronic device and computer readable storage medium |
TWI791351B (zh) * | 2021-01-07 | 2023-02-01 | 宏達國際電子股份有限公司 | 顯示方法、顯示系統及非暫態電腦可讀取儲存媒體 |
US11682136B2 (en) | 2021-01-07 | 2023-06-20 | Htc Corporation | Display method, display system and non-transitory computer readable storage medium |
CN114786040A (zh) * | 2022-06-15 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 数据通信方法、系统、电子设备和存储介质 |
CN114786040B (zh) * | 2022-06-15 | 2022-09-23 | 阿里巴巴(中国)有限公司 | 数据通信方法、系统、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110069125B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110517319B (zh) | 一种相机姿态信息确定的方法及相关装置 | |
US10043308B2 (en) | Image processing method and apparatus for three-dimensional reconstruction | |
CN110069125B (zh) | 虚拟对象的控制方法和装置 | |
Liu et al. | Real-time robust vision-based hand gesture recognition using stereo images | |
JP7212067B2 (ja) | 画像合成方法及び装置 | |
CN108200334B (zh) | 图像拍摄方法、装置、存储介质及电子设备 | |
CN108604379A (zh) | 用于确定图像中的区域的系统及方法 | |
JP7387202B2 (ja) | 3次元顔モデル生成方法、装置、コンピュータデバイス及びコンピュータプログラム | |
CN110287891B (zh) | 基于人体关键点的手势控制方法、装置及电子设备 | |
US12067158B2 (en) | Object interaction method and system, and computer-readable medium | |
CN109035334A (zh) | 位姿的确定方法和装置、存储介质及电子装置 | |
CN110858409A (zh) | 动画生成方法和装置 | |
CN112927363A (zh) | 体素地图构建方法及装置、计算机可读介质和电子设备 | |
CN111199169A (zh) | 图像处理方法和装置 | |
WO2023168957A1 (zh) | 姿态确定方法、装置、电子设备、存储介质及程序 | |
CN110069126B (zh) | 虚拟对象的控制方法和装置 | |
CN109981989A (zh) | 渲染图像的方法、装置、电子设备和计算机可读存储介质 | |
CN110941327A (zh) | 虚拟对象的显示方法和装置 | |
CN110047126B (zh) | 渲染图像的方法、装置、电子设备和计算机可读存储介质 | |
Akman et al. | Multi-cue hand detection and tracking for a head-mounted augmented reality system | |
CN111258413A (zh) | 虚拟对象的控制方法和装置 | |
CN110941974B (zh) | 虚拟对象的控制方法和装置 | |
CN111103967A (zh) | 虚拟对象的控制方法和装置 | |
CN116686006A (zh) | 基于可变形模型的三维扫描配准 | |
CN114339029A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100080 408, 4th floor, 51 Zhichun Road, Haidian District, Beijing Patentee after: Tiktok Technology Co.,Ltd. Country or region after: China Address before: 100080 408, 4th floor, 51 Zhichun Road, Haidian District, Beijing Patentee before: BEIJING MICROLIVE VISION TECHNOLOGY Co.,Ltd. Country or region before: China |