CN108983978B - 虚拟手控制方法及装置 - Google Patents
虚拟手控制方法及装置 Download PDFInfo
- Publication number
- CN108983978B CN108983978B CN201810808735.5A CN201810808735A CN108983978B CN 108983978 B CN108983978 B CN 108983978B CN 201810808735 A CN201810808735 A CN 201810808735A CN 108983978 B CN108983978 B CN 108983978B
- Authority
- CN
- China
- Prior art keywords
- hand
- target object
- virtual
- bounding box
- preset
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims abstract description 63
- 230000033001 locomotion Effects 0.000 claims abstract description 17
- 210000003811 finger Anatomy 0.000 claims description 89
- 210000003813 thumb Anatomy 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 abstract description 2
- 239000013598 vector Substances 0.000 description 10
- 238000012360 testing method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 241000190070 Sarracenia purpurea Species 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 210000004247 hand Anatomy 0.000 description 5
- 238000011160 research Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 210000000988 bone and bone Anatomy 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000003010 carpal bone Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 210000000236 metacarpal bone Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种虚拟手控制方法及装置,所述方法包括:接收姿态捕捉设备采集到的手部动作后发送的图像数据,在图像数据中提取手部姿态数据及可抓取的目标物体;根据手部姿态数据更新预设手部包围盒,根据目标物体识别数据构建物体包围盒;若基于手部包围盒及物体包围盒确定手部与目标物体的碰撞满足预设碰撞检测条件,判断基于手部姿态数据确定的手部姿态是否满足预设手部姿态条件;若手部姿态满足预设手部姿态条件,将虚拟现实场景中基于手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。达到提高虚拟现实场景中虚拟手的灵巧度,抓握操作更加真实的技术效果。
Description
技术领域
本发明涉及虚拟现实技术领域,尤其是涉及一种虚拟手控制方法及装置。
背景技术
随着虚拟装配人机交互技术的发展,出现了数据手套、Kinect 3D体感摄影机等多种交互设备,可以跟踪并采集人肢体数据,提高交互的逼真程度。其中,手是人体最灵活的器官,将虚拟手引入虚拟装配,可以完成复杂的装配动作。准确获取人手信息以及提升手与零件的交互性能是目前的研究难点。现有的虚拟手抓取操作一般是通过数据手套,把用户手的状态信息输入到计算机,用一个虚拟手模拟用户的手在虚拟环境中运动,并抓取、移动和释放物体。但是数据手套本身不提供与空间位置相关的信息,必须与位置跟踪设备连用,并不能直接获取人手的姿态参数。
目前虚拟手与零件的交互手势多为虚拟手抓取规则的研究,如基于点接触平面的法矢的抓取规则、基于有效阈值角度的抓取规则,以及这些规则的变形。然而,目前虚拟现实场景中虚拟手不够灵巧,抓握操作不够真实。
发明内容
有鉴于此,本发明的目的在于提供一种虚拟手控制方法及装置,以缓解现有技术中存在的虚拟手不够灵巧,抓握操作不够真实的技术问题。
第一方面,本发明实施例提供了一种虚拟手控制方法,包括:
接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;
根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;
若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;
若所述手部姿态满足预设手部姿态条件,将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述手部包围盒包括手掌包围盒和手指包围盒,基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞是否满足预设碰撞检测条件,包括:
对所述手掌包围盒和所述物体包围盒进行相交检测,以确定所述手掌是否与所述目标物体发生碰撞;
若所述手掌与所述目标物体发生碰撞,对所述大拇指包围盒和所述物体包围盒进行相交检测,以确定所述大拇指是否与所述目标物体发生碰撞;
若所述大拇指与所述目标物体发生碰撞,对所述其余四个手指的手指包围盒和所述物体包围盒分别进行相交检测,以确定其余四根手指中的至少两指是否与所述目标物体碰撞;
若其余四根手指中的至少两指与所述目标物体碰撞,则确定手部与所述目标物体的碰撞满足预设碰撞检测条件。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件,包括:
若手掌和大拇指与所述目标物体接触、其余四根手指中的至少两指与所述目标物体接触,根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径;
若所述虚拟球的半径小于目标物体外接球的半径,判断所述虚拟手的轴线方向与所述目标物体的轴线方向平行;
若所述虚拟手的轴线方向与所述目标物体的轴线方向平行,则确定所述手部姿态满足预设手部姿态条件。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径,包括:
在所述手部姿态数据中提取手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标;
基于所述手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标确定所述虚拟球的球心坐标;
按照预设虚拟球半径计算公式及所述球心坐标,计算所述虚拟球的半径。
第二方面,本发明实施例还提供一种虚拟手控制装置,包括:
接收模块,用于接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;
更新构建模块,用于根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;
判断模块,用于若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;
建立模块,用于若所述手部姿态满足预设手部姿态条件,将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述手部包围盒包括手掌包围盒和手指包围盒,所述判断模块,包括:
第一相交检测单元,用于对所述手掌包围盒和所述物体包围盒进行相交检测,以确定所述手掌是否与所述目标物体发生碰撞;
第二相交检测单元,用于若所述手掌与所述目标物体发生碰撞,对所述大拇指包围盒和所述物体包围盒进行相交检测,以确定所述大拇指是否与所述目标物体发生碰撞;
第三相交检测单元,用于若所述大拇指与所述目标物体发生碰撞,对所述其余四个手指的手指包围盒和所述物体包围盒分别进行相交检测,以确定其余四根手指中的至少两指是否与所述目标物体碰撞;
第一确定单元,用于若其余四根手指中的至少两指与所述目标物体碰撞,则确定手部与所述目标物体的碰撞满足预设碰撞检测条件。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述判断模块,包括:
第二确定单元,用于若手掌和大拇指与所述目标物体接触、其余四根手指中的至少两指与所述目标物体接触,根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径;
判断单元,用于若所述虚拟球的半径小于目标物体外接球的半径,判断所述虚拟手的轴线方向与所述目标物体的轴线方向平行;
第三确定单元,用于若所述虚拟手的轴线方向与所述目标物体的轴线方向平行,则确定所述手部姿态满足预设手部姿态条件。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述第二确定单元,还用于:
在所述手部姿态数据中提取手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标;基于所述手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标确定所述虚拟球的球心坐标;按照预设虚拟球半径计算公式及所述球心坐标,计算所述虚拟球的半径。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。
第四方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行所述第一方面所述的方法。
本发明实施例带来了以下有益效果:本发明实施例通过首先接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;然后根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,再判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;若所述手部姿态满足预设手部姿态条件,可以将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。
本发明实施例能够通过基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,以及判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件,使虚拟手控制规则更加完善,提高虚拟现实场景中虚拟手的灵巧度,抓握操作更加真实。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟手控制方法的流程图;
图2为本发明实施例提供的一种人手层级结构示意图;
图3为图1中步骤S103的流程图;
图4为本发明实施例提供的一种虚拟手控制装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前虚拟手与零件的交互手势多为虚拟手抓取规则的研究,如基于点接触平面的法矢的抓取规则、基于有效阈值角度的抓取规则,以及这些规则的变形。然而,目前在虚拟现实场景中虚拟手不够灵巧,抓握操作不够真实,基于此,本发明实施例提供的一种虚拟手控制方法及装置,可以通过基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,以及判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件,使虚拟手控制规则更加完善,提高虚拟现实场景中虚拟手的灵巧度,抓握操作更加真实。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种虚拟手控制方法进行详细介绍,如图1所示,所述虚拟手控制方法可以包括以下步骤:
步骤S101,接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;
由于人手是一个灵活而复杂的多肢节***,由手掌、手腕和手指组成。手上的骨头共有27块,为8块腕骨、5块掌骨和14块指骨,骨之间由不同的关节连接,关节具有移动自由度或转动自由度,使之可以做屈伸、收展或旋转运动。结合人手实际的装配过程,对手抓握零件动作进行分解。以抓握水杯为例,手掌先与水杯接触,然后大拇指与水杯接触,接着其余四根手指与水杯接触,最后成功抓握起水杯。可以看出,手抓握水杯时,手型可以视为球的一部分,手的轴线与水杯轴线平行。
由上述动作,分析虚拟手建模、碰撞检测、抓握与释放零件研究所需的手部数据,采用Leap Motion设备跟踪手部运动提取数据如下:
①手掌坐标(Palm Position)数据:在Leap Motion坐标系下,以毫米测得的虚拟手手掌中心到Leap设备原点的距离。
②手掌法线方向(Palm Normal)数据:与手掌所形成的平面的垂直向量,其方向指向手掌内侧。
③手指尖端坐标(Tip Position)数据:在Leap Motion坐标系下,手指尖端的位置。
根据所需数据对人手进行几何分割得到如图2所示的人手层级结构。
由于Leap Motion采用的右手笛卡尔坐标系与Unity3D采用的世界坐标系不同,所以需要通过转换公式,将Leap Motion跟踪到的手部位置信息转化为在Unity3D坐标系中表示。
变换公式如下:
式中,(x,y,z)表示每一手掌或者手指转化到unity3D三维坐标系中的坐标;(x',y',z')表示Leap Motion采集到的每一手掌或者手指的坐标;m表示每一手掌或者手指转化到unity3D三维坐标系中的方向;m'表示Leap Motion采集到的每一手掌或者手指的方向;sf为缩放因子,用来表示坐标转换的尺度变换;R为坐标变换矩阵,
步骤S102,根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;
由于手部姿态数据在多帧数据中是不断变化的,由于包围盒基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象,所以随着手部姿态的变化,应当不断的更新预设手部包围盒的坐标;另外,如果实际三维世界中的目标物***置不发生移动,则物体包围盒的坐标不变,如果目标物体移动位置,例如被手抓取后位置发生移动,那么物体包围盒也需要随之不断的更新坐标。
步骤S103,若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;
在步骤S103之前,可以基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞是否满足预设碰撞检测条件,也即对手部包围盒和目标物体进行碰撞检测,碰撞检测是对两个物体的位置关系进行计算,判断它们在空间上是否存在交集。在二维空间中由于物体都处于同一平面,碰撞检测难度较低。在三维空间,多数进行碰撞检测的物体,几何形状较为复杂,若直接进行碰撞检测,会产生较大的计算量,大大降低效率。采用包围盒方法,用体积稍大于复杂物体且能将其完全包住的简单几何体(即包围盒),将复杂的被检测物体替代。此方法虽然没有直接对被检测物体进行碰撞检测精确,但大大降低了计算量,提高了效率。
常用的包围盒主要有AABB包围盒、球包围盒、OBB包围盒、FDH包围盒等,AABB包围盒是六个面始终与x、y、z轴平行的长方体。其相交检测简单,但紧密性较差。两个AABB包围盒在三个坐标轴上都存在数值区域的重叠,则相交检测成功。
球包围盒是可以包住物体的最小球体。其紧密性较差,相交检测简单。对两个Sphere包围盒的距离大小d_c进行求解,再将它们的半径之和r_c1+r_c2与d_c进行比较,若d_c<r_c1+r_c2,则包围盒相交。
OBB包围盒是六个面方向任意的长方体。其紧密性较好,相交检测较复杂,采用“分离轴测试”方法,对两个OBB包围盒的相交状态进行测试,最多需要测试15个分离轴,进行最多180次的运算。
FDH包围盒可以看作AABB包围盒的扩展,即用固定方向的能包含物体的最小凸包作为包围盒,这些固定的方向都选自固定方向集D,D中的方向向量为共线且方向相反的向量对。该包围盒结构较为简单,紧密性较好,其相交检测基于GJK算法,该算法可以计算两个凸多面体之间的距离,从而快速实时地实现任何凸多面体物体的碰撞检测。
包围盒决定碰撞发生时的边界条件,根据手指和手掌的几何特点,用FDH包围盒方法建立手指包围盒,用AABB包围盒方法建立手掌包围盒。结合对实际装配操作中手与零件接触过程的观察,手掌先与零件发生碰撞,然后大拇指与零件碰撞,接着其他四根手指至少有两根与零件发生碰撞。所以在此过程中,碰撞检测的方法可以如下:
1)对所述手掌包围盒和所述物体包围盒进行相交检测,以确定所述手掌是否与所述目标物体发生碰撞;
2)若所述手掌与所述目标物体发生碰撞,对所述大拇指包围盒和所述物体包围盒进行相交检测,以确定所述大拇指是否与所述目标物体发生碰撞;
若3)所述大拇指与所述目标物体发生碰撞,对所述其余四个手指的手指包围盒和所述物体包围盒分别进行相交检测,以确定其余四根手指中的至少两指是否与所述目标物体碰撞;
4)若其余四根手指中的至少两指与所述目标物体碰撞,则确定手部与所述目标物体的碰撞满足预设碰撞检测条件,即碰撞检测成功。
基于手掌及手指的包围盒进行碰撞检测,能够提高虚拟现实场景中虚拟手的灵巧度,使抓握操作更加真实。
通过研究人手实际抓握与释放零件,建立虚拟手型模型,结合手指、手掌包围盒碰撞检测算法,如图3所示,所述判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件,包括:
步骤S201,若手掌和大拇指与所述目标物体接触、其余四根手指中的至少两指与所述目标物体接触,根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径;
在该步骤中,可以首先在所述手部姿态数据中提取手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标;然后基于所述手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标确定所述虚拟球的球心坐标;最后按照预设虚拟球半径计算公式及所述球心坐标,计算所述虚拟球的半径。
步骤S202,若所述虚拟球的半径小于目标物体外接球的半径,判断所述虚拟手的轴线方向与所述目标物体的轴线方向平行;
步骤S203,若所述虚拟手的轴线方向与所述目标物体的轴线方向平行,则确定所述手部姿态满足预设手部姿态条件。
在抓握零件时,虚拟手轴线方向必须与零件的轴线方向平行,抓握动作才是合理的。将手掌法线方向(Palm Normal)向量与零件轴线方向向量进行点乘,如果计算结果为0,则两者轴线平行。设手掌法线方向向量为X(x5,y5,z5),零件轴线方向向量为Y(x6,y6,z6),点乘计算结果用M表示,则,
M=x5×x6+y5×y6+z5×z6
若M=0,则虚拟手轴线方向与零件的轴线方向平行。
以上三条规则若有一条不满足则在虚拟现实场景中释放目标物体。
步骤S104,若所述手部姿态满足预设手部姿态条件,将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。
将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,能够使虚拟手抓取虚拟目标物体更加稳固。
本发明实施例通过首先接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;然后根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,再判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;若所述手部姿态满足预设手部姿态条件,可以将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。
本发明实施例能够通过基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,以及判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件,使虚拟手控制规则更加完善,提高虚拟现实场景中虚拟手的灵巧度,抓握操作更加真实。
在本发明的又一实施例中,将提供一种实际应用中的例子,以便于对本发明内容的理解。
以轴类零件为对象,基于Leap Motion设备,在Unity3D平台中进行开发,实现虚拟手抓握与释放零件功能。
先使用provider.CurrentFrame取到每帧全部数据,再使用hand in frame.Hands和myfinger in hand.Fingers从每帧数据中提取手掌、手指数据。在可抓握目标物体中添加HoldTargetObject模块,用isHoldObject方法将其筛选出来。根据虚拟手抓握零件的规则1,选择手掌palm以及大拇指thumb、食指index、无名指pinky的bone1来进行碰撞检测,若碰撞检测成功,则isAllContact为true。虚拟手与零件成功碰撞后调用Trigger触发器处理碰撞事件。在轴线平行条件和半径条件的判断中,考虑到数据采集误差,为了保证抓握稳定性与合理性,对M和r设置阈值,通过多次试验,发现M满足-0.2<M<0.2、r满足r0-2<r<r0+0.5mm时便于合理抓握。如果当前帧是抓握状态且上一帧不是抓握状态,则抓握零件。如果当前帧不是抓握状态且上一帧是抓握状态,则释放零件。如果当前帧与上一帧状态相同,则保持上一帧状态。
以轴径为60mm、高为500mm的轴为例进行虚拟手抓握与释放零件试验如下:
(1)抓握操作前,该轴零件处于静止状态。
(2)正确进行抓握操作,虚拟手的手掌、大拇指指尖、食指指尖、无名指指尖依次与轴零件接触,由于轴半径为30mm,调整虚拟手手型,使r满足28<r<30.5mm,同时调整虚拟手角度,使虚拟手轴线与轴零件轴线满足阈值条件,从而成功将轴零件抓握起来,示例性的,r值为29.285mm,M值为0.094,或者,r值为28.362mm,M值为0.171等等。
(3)在试验中,如果虚拟手轴线与轴零件轴线不平行,产生了不合理的抓握手势,则抓握操作失败。示例性的M为0.802,该M值超过设定的阈值范围,所以抓握操作失败。
试验结果表明,该灵巧虚拟手可以成功抓握与释放零件,满足试验要求。
在本发明的又一实施例中,如图4所示,还提供一种虚拟手控制装置,所述虚拟手控制装置包括:
接收模块11,用于接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;
更新构建模块12,用于根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;
判断模块13,用于若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;
建立模块14,用于若所述手部姿态满足预设手部姿态条件,将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体。
在本发明的又一实施例中,所述手部包围盒包括手掌包围盒和手指包围盒,所述判断模块,包括:
第一相交检测单元,用于对所述手掌包围盒和所述物体包围盒进行相交检测,以确定所述手掌是否与所述目标物体发生碰撞;
第二相交检测单元,用于若所述手掌与所述目标物体发生碰撞,对所述大拇指包围盒和所述物体包围盒进行相交检测,以确定所述大拇指是否与所述目标物体发生碰撞;
第三相交检测单元,用于若所述大拇指与所述目标物体发生碰撞,对所述其余四个手指的手指包围盒和所述物体包围盒分别进行相交检测,以确定其余四根手指中的至少两指是否与所述目标物体碰撞;
第一确定单元,用于若其余四根手指中的至少两指与所述目标物体碰撞,则确定手部与所述目标物体的碰撞满足预设碰撞检测条件。
在本发明的又一实施例中,所述判断模块,包括:
第二确定单元,用于若手掌和大拇指与所述目标物体接触、其余四根手指中的至少两指与所述目标物体接触,根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径;
判断单元,用于若所述虚拟球的半径小于目标物体外接球的半径,判断所述虚拟手的轴线方向与所述目标物体的轴线方向平行;
第三确定单元,用于若所述虚拟手的轴线方向与所述目标物体的轴线方向平行,则确定所述手部姿态满足预设手部姿态条件。
在本发明的又一实施例中,所述第一确定单元,还用于:
在所述手部姿态数据中提取手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标;基于所述手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标确定所述虚拟球的球心坐标;按照预设虚拟球半径计算公式及所述球心坐标,计算所述虚拟球的半径。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本发明的又一实施例中,还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法实施例所述的方法的步骤。
在本发明的又一实施例中,还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行所述方法实施例所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明实施例所提供的虚拟手控制方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种虚拟手控制方法,其特征在于,包括:
接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;
根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;
若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;
若所述手部姿态满足预设手部姿态条件,将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体;
所述判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件,包括:
若手掌和大拇指与所述目标物体接触、其余四根手指中的至少两指与所述目标物体接触,根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径;
若所述虚拟球的半径小于目标物体外接球的半径,判断所述虚拟手的轴线方向与所述目标物体的轴线方向平行;
若所述虚拟手的轴线方向与所述目标物体的轴线方向平行,则确定所述手部姿态满足预设手部姿态条件。
2.根据权利要求1所述的虚拟手控制方法,其特征在于,所述手部包围盒包括手掌包围盒和手指包围盒,基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞是否满足预设碰撞检测条件,包括:
对所述手掌包围盒和所述物体包围盒进行相交检测,以确定手掌是否与所述目标物体发生碰撞;
若手掌与所述目标物体发生碰撞,对大拇指包围盒和所述物体包围盒进行相交检测,以确定大拇指是否与所述目标物体发生碰撞;
若大拇指与所述目标物体发生碰撞,对其余四个手指的手指包围盒和所述物体包围盒分别进行相交检测,以确定其余四根手指中的至少两指是否与所述目标物体碰撞;
若其余四根手指中的至少两指与所述目标物体碰撞,则确定手部与所述目标物体的碰撞满足预设碰撞检测条件。
3.根据权利要求1所述的虚拟手控制方法,其特征在于,所述根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径,包括:
在所述手部姿态数据中提取手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标;
基于所述手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标确定所述虚拟球的球心坐标;
按照预设虚拟球半径计算公式及所述球心坐标,计算所述虚拟球的半径。
4.一种虚拟手控制装置,其特征在于,包括:
接收模块,用于接收姿态捕捉设备采集到的手部动作后发送的图像数据,在所述图像数据中提取手部姿态数据及可抓取的目标物体;
更新构建模块,用于根据所述手部姿态数据更新预设手部包围盒,根据所述目标物体识别数据构建物体包围盒;
判断模块,用于若基于所述手部包围盒及所述物体包围盒确定手部与所述目标物体的碰撞满足预设碰撞检测条件,判断基于所述手部姿态数据确定的手部姿态是否满足预设手部姿态条件;
建立模块,用于若所述手部姿态满足预设手部姿态条件,将虚拟现实场景中基于所述手部姿态数据创建的虚拟手的中心与基于所述目标物体创建的虚拟目标物体的中心建立固定连接,以使虚拟手抓取虚拟目标物体;
所述判断模块,包括:
第二确定单元,用于若手掌和大拇指与所述目标物体接触、其余四根手指中的至少两指与所述目标物体接触,根据所述手部姿态数据确定包含所述虚拟手上多个特征点的虚拟球的半径;
判断单元,用于若所述虚拟球的半径小于目标物体外接球的半径,判断所述虚拟手的轴线方向与所述目标物体的轴线方向平行;
第三确定单元,用于若所述虚拟手的轴线方向与所述目标物体的轴线方向平行,则确定所述手部姿态满足预设手部姿态条件。
5.根据权利要求4所述的虚拟手控制装置,其特征在于,所述手部包围盒包括手掌包围盒和手指包围盒,所述判断模块,包括:
第一相交检测单元,用于对所述手掌包围盒和所述物体包围盒进行相交检测,以确定手掌是否与所述目标物体发生碰撞;
第二相交检测单元,用于若手掌与所述目标物体发生碰撞,对大拇指包围盒和所述物体包围盒进行相交检测,以确定大拇指是否与所述目标物体发生碰撞;
第三相交检测单元,用于若大拇指与所述目标物体发生碰撞,对其余四个手指的手指包围盒和所述物体包围盒分别进行相交检测,以确定其余四根手指中的至少两指是否与所述目标物体碰撞;
第一确定单元,用于若其余四根手指中的至少两指与所述目标物体碰撞,则确定手部与所述目标物体的碰撞满足预设碰撞检测条件。
6.根据权利要求4所述的虚拟手控制装置,其特征在于,所述第二确定单元,还用于:
在所述手部姿态数据中提取手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标;基于所述手掌中心坐标、大拇指指尖坐标及其余四根手指中至少两根手指指尖坐标确定所述虚拟球的球心坐标;按照预设虚拟球半径计算公式及所述球心坐标,计算所述虚拟球的半径。
7.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至3任一项所述的方法的步骤。
8.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1-3任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810808735.5A CN108983978B (zh) | 2018-07-20 | 2018-07-20 | 虚拟手控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810808735.5A CN108983978B (zh) | 2018-07-20 | 2018-07-20 | 虚拟手控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108983978A CN108983978A (zh) | 2018-12-11 |
CN108983978B true CN108983978B (zh) | 2020-11-10 |
Family
ID=64548572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810808735.5A Expired - Fee Related CN108983978B (zh) | 2018-07-20 | 2018-07-20 | 虚拟手控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108983978B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766005A (zh) * | 2018-12-29 | 2019-05-17 | 北京诺亦腾科技有限公司 | 一种vr场景中拿放物体的方法及装置 |
CN109739358B (zh) * | 2019-01-03 | 2022-05-24 | 京东方科技集团股份有限公司 | 基于裸眼3d的手势碰撞检测方法及设备 |
CN109933194A (zh) * | 2019-03-05 | 2019-06-25 | 郑州万特电气股份有限公司 | 一种混合现实环境中对虚拟目标物的交互方法 |
CN110134236B (zh) * | 2019-04-28 | 2022-07-05 | 陕西六道文化科技有限公司 | 基于Unity3D和Kinect的低动作检测精度下的高交互反馈方法及*** |
CN111127663B (zh) * | 2019-12-26 | 2023-03-31 | 中国人民解放***箭军工程大学 | 一种基于凸集分解算法的虚拟人机交互控制方法 |
CN111240469B (zh) * | 2019-12-31 | 2023-04-25 | 北京诺亦腾科技有限公司 | 手部动作捕捉的校准方法、装置、电子设备及存储介质 |
CN111368733B (zh) * | 2020-03-04 | 2022-12-06 | 电子科技大学 | 一种基于标签分布学习的三维手部姿态估计方法、存储介质及终端 |
WO2021195916A1 (zh) * | 2020-03-31 | 2021-10-07 | 西门子股份公司 | 动态手部仿真方法、装置和*** |
CN111784850B (zh) * | 2020-07-03 | 2024-02-02 | 深圳市瑞立视多媒体科技有限公司 | 基于虚幻引擎的物体抓取仿真方法及相关设备 |
CN112156451B (zh) * | 2020-09-22 | 2022-07-22 | 歌尔科技有限公司 | 手柄及其尺寸调节方法、尺寸调节***和尺寸调节装置 |
CN112306234B (zh) * | 2020-09-25 | 2023-10-31 | 中国电力科学研究院有限公司 | 一种基于数据手套的手部操作识别方法及*** |
CN112720504B (zh) * | 2021-01-20 | 2023-03-28 | 清华大学 | 从rgbd视频中学习手与物体交互运动控制方法和装置 |
CN112950535B (zh) * | 2021-01-22 | 2024-03-22 | 北京达佳互联信息技术有限公司 | 视频处理方法、装置、电子设备及存储介质 |
CN114387836B (zh) * | 2021-12-15 | 2024-03-22 | 上海交通大学医学院附属第九人民医院 | 一种虚拟手术模拟方法、装置、电子设备及存储介质 |
CN115576424B (zh) * | 2022-10-24 | 2023-09-01 | 广东外语外贸大学 | 一种增强vr教学交互操作实时性的方法 |
CN116612825B (zh) * | 2023-07-19 | 2023-10-13 | 四川省产品质量监督检验检测院 | 分子静电势等值面点云的碰撞点检测和碰撞体积计算方法 |
CN117289796B (zh) * | 2023-09-22 | 2024-05-07 | 中山大学 | 基于触觉手套的复杂装备高交互混合现实***与方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929393A (zh) * | 2012-10-11 | 2013-02-13 | 北京理工大学 | 虚拟手自动手势选择方法 |
CN108008817A (zh) * | 2017-12-01 | 2018-05-08 | 西安枭龙科技有限公司 | 一种实现虚实融合的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722249B (zh) * | 2012-06-05 | 2016-03-30 | 上海鼎为电子科技(集团)有限公司 | 操控方法、操控装置及电子装置 |
CN103955295A (zh) * | 2014-04-17 | 2014-07-30 | 北京航空航天大学 | 一种基于数据手套和物理引擎的虚拟手的实时抓取方法 |
US20170161555A1 (en) * | 2015-12-04 | 2017-06-08 | Pilot Ai Labs, Inc. | System and method for improved virtual reality user interaction utilizing deep-learning |
-
2018
- 2018-07-20 CN CN201810808735.5A patent/CN108983978B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929393A (zh) * | 2012-10-11 | 2013-02-13 | 北京理工大学 | 虚拟手自动手势选择方法 |
CN108008817A (zh) * | 2017-12-01 | 2018-05-08 | 西安枭龙科技有限公司 | 一种实现虚实融合的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108983978A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108983978B (zh) | 虚拟手控制方法及装置 | |
Frati et al. | Using Kinect for hand tracking and rendering in wearable haptics | |
GB2602611A (en) | Reinforcement learning of tactile grasp policies | |
CN110262664B (zh) | 一种具有认知能力的智能交互手套 | |
CN109243575B (zh) | 一种基于移动交互和增强现实的虚拟针灸方法及*** | |
CN109739358B (zh) | 基于裸眼3d的手势碰撞检测方法及设备 | |
JP6563596B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2014235634A (ja) | 手指動作検出装置、手指動作検出方法、手指動作検出プログラム、及び仮想物体処理システム | |
Tian et al. | Realtime hand-object interaction using learned grasp space for virtual environments | |
Ottenhaus et al. | Visuo-haptic grasping of unknown objects based on gaussian process implicit surfaces and deep learning | |
CN111966217A (zh) | 基于手势和眼动的无人机控制方法和*** | |
WO2021085561A1 (ja) | 学習データ生成方法 | |
Nasim et al. | Physics-based interactive virtual grasping | |
Silva et al. | Sensor data fusion for full arm tracking using myo armband and leap motion | |
CN113119104B (zh) | 机械臂控制方法、机械臂控制装置、计算设备及*** | |
Pang et al. | Towards safe human-to-robot handovers of unknown containers | |
Cai et al. | Volumetric-based contact point detection for 7-dof grasping | |
RU2601169C1 (ru) | Способ и устройство для взаимодействия с виртуальными объектами | |
CN113496168A (zh) | 手语数据采集方法、设备、存储介质 | |
WO2018161305A1 (zh) | 抓取质量检测方法及其应用的方法与*** | |
CN114820802A (zh) | 高自由度灵巧手抓取规划方法、装置和计算机设备 | |
Figueiredo et al. | Bare hand natural interaction with augmented objects | |
Ehlers et al. | Self-scaling Kinematic Hand Skeleton for Real-time 3D Hand-finger Pose Estimation. | |
CN114740997A (zh) | 交互控制装置及交互控制方法 | |
CN113420752A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201110 |
|
CF01 | Termination of patent right due to non-payment of annual fee |