CN111433783B - 手部模型生成方法、装置、终端设备及手部动作捕捉方法 - Google Patents
手部模型生成方法、装置、终端设备及手部动作捕捉方法 Download PDFInfo
- Publication number
- CN111433783B CN111433783B CN201980005240.1A CN201980005240A CN111433783B CN 111433783 B CN111433783 B CN 111433783B CN 201980005240 A CN201980005240 A CN 201980005240A CN 111433783 B CN111433783 B CN 111433783B
- Authority
- CN
- China
- Prior art keywords
- knuckle
- finger
- hand model
- virtual
- axis
- 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
Links
Images
Classifications
-
- 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
-
- 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
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
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)
- Image Analysis (AREA)
Abstract
本申请公开了一种手部模型生成方法、装置、终端设备及手部动作捕捉方法系统,其中,该手部模型生成方法包括:建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;确定所述中间手部模型每根手指指节的指节旋转中心;根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
Description
技术领域
本发明涉及动作捕捉技术,具体涉及一种手部模型生成方法、装置、终端设备及手部动作捕捉方法。
背景技术
动作捕捉技术(Motion capture,简称Mocap)是指在运动物体的关键部位设置跟踪器,由动捕系统捕捉跟踪器位置,再经过计算机处理后得到三维空间坐标的数据。当三维空间坐标数据被计算机识别后,可以应用在动画制作、步态分析、生物力学、人机工程等领域。特别是在电影特效领域,将多个摄影机捕捉到的真人影像换为数字模型,捕捉并记录演员表演时的动作,然后把这些动作同步到电脑中的虚拟角色上,使虚拟角色的动作和真人毫无差别,以达到逼真、自然的效果。
根据不用的应用类型,关注的用户身体部位也有差别,相应地跟踪器的设置位置也不同。若某应用需要关注人体手部的动作,则需要捕捉人体手部的动作,例如,手指弹钢琴的应用,操作飞机驾驶舱的应用。因此,如何设计一种能够精准捕捉手部动作的算法成为非常重要的一个研发课题。
当前技术中,在进行手部定位跟踪时,用户需要戴上配置有反光标记点的手套在相机捕捉范围内运动。相机采集用户的手部运动数据,结合手部模型进行IK解算,以确定出用户手部的运动轨迹,得到手部动作信息。当前,在确定手部模型时,常用的做法是:预先设置一初始手部模型,并将当前用户手部情况与初始手部模型进行对比,做一定比例的缩放,以及将缩放后得到的手部模型作为最终进行IK解算的手部模型。
然而,由于用户的手部情况参差不齐,例如手部有大有小、有厚有薄,手指有长有短,手部比例也不尽相同。由此可见,影响手部模型的因素有很多,因此,在解算过程中,如果仅仅对手部初始模型进行一定比例的缩放,缩放后得到的手部模型也不能准确反映用户当前手部形状,这最终会影响手部定位的精度。
发明内容
有鉴于此,本申请提供一种手部模型生成方法、装置及手部动作捕捉方法,以解决现有技术对初始手部模型进行简单的等比例缩放导致生成的手部模型不精确的问题。
本申请第一方面提供一种手部模型生成方法,包括:
建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;
将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;
根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;所述掌骨展开幅度为手指第一指节相对于所述三维坐标系第三轴的展开幅度;所述手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户手部运动之后得到的;
确定所述中间手部模型每根手指指节的指节旋转中心;
根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
本申请第二方面提供一种手部模型生成装置,包括:
初始手部模型建立单元,用于建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;
重合单元,用于将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;
中间手部模型生成单元,用于根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;所述掌骨展开幅度为手指第一指节相对于所述三维坐标系第三轴的展开幅度;所述手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户手部运动之后得到的;
确定单元,用于确定所述中间手部模型每根手指指节的指节旋转中心;
最终手部模型生成单元,用于根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
本申请第三方面提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一可能实现方式中提及的手部模型生成方法。
本申请第四方面提供一种手部动作捕捉方法,所述方法包括:
运用上述第一方面任一可能实现方式中提及的手部模型生成方法生成最终手部模型;
使用生成的所述最终手部模型进行逆向运动学IK解算,以获取手部动作数据。
本申请实施例中,在生成用于反向运动学IK运算的手部模型时,不是对初始手部模型进行简单的等比例缩放,而是根据用户佩戴的动作捕捉手套获得的手部动作数据以及初始手部模型,计算掌骨展开幅度、手指指节长度以及指节旋转中心,以生成更能反映用户具体手部情况(手部大小、手部厚薄、手指具体长短)的最终手部模型。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中动作捕捉手套上反光标记点的布局示意图;
图2为本发明实施例提供的动作捕捉手套上反光标记点的布局示意图;
图3为本发明实施例提供的手部模型生成方法的第一实施例的流程示意图;
图4为本发明实施例提供的手部模型生成方法的第二实施例的流程示意图;
图5为图4中S404的实施例的流程示意图;
图6为图5中创建的虚拟标记点与真实反光标记点的示意图;
图7为本发明实施例提供的手部模型生成方法的第三实施例的流程示意图;
图8中图7中创建的旋转中心的示意图;
图9是本申请一实施例提供的终端设备的示意图;
图10是本申请一实施例提供的手部动作捕捉方法的流程示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有技术中,动作捕捉手套上反光标记点的布局如图1所示。图1所示,现有的动作捕捉手套上,反光标记点的布局是:在手背部(即各手指的第一指节位置)处布局一个刚体(包括3个以上的反光标记点),然后在各手指每个指节正上方(沿着手指延伸方向的指节中轴线上)的特定指节长度处,分别布局一个反光标记点。
用户带上该动作捕捉手套后,通过动捕捕捉相机采集手部运动轨迹图像并传输至服务器。服务器通过对图像进行分析,以识别每个反光标记点的运动数据。然后根据每个反光标记点的运动数据,对预设的手部初始模型进行等比例的缩放,以及将经缩放后的手部模型进行反向运动学IK运算。
实施例一:
本申请的发明人在实践中发现,采用现有的手套布局进行动作捕捉时,若用户手太小,在手部动作捕捉过程中两个反光标记点之间的间距相隔太近,致使算法无法识别正确的反光标记点。为保证手部运动过程中算法能正确识别每个反光标记点,本申请的发明人提出了一种新的动作捕捉手套的反光标记点的布局思路。
针对用户手太小导致手套上反光标记点间隔太近导致无法准确识别标记点的问题,本申请的动作捕捉手套在布局标记点时,针对手指第二、三、四指节上的标记点,在布局时,不会将全部标记点布局在指节的正上方(沿着手指延伸方向的指节中轴线上),如图2所示,而是根据实际情况,灵活地将一些反光标记点布局在指节的侧面,这样就避免了反光标记点间隔太近导致无法准确识别的问题。
另外,利用现有动作捕捉手套进行手部动作捕捉时,在生成模型阶段,通常是根据采集的手部动作捕捉数据对预设的初始手部模型进行等比例的缩放。然而,由于用户的手部情况参差不齐,例如手部有大有小、有厚有薄,手指有长有短,手部比例也不尽相同。由此可见,影响手部模型的因素有很多,因此,在解算过程中,如果仅仅对手部初始模型进行一定比例的缩放,缩放后得到的手部模型也不能准确反映用户当前手部形状,这最终会影响手部定位的精度。因此,本申请提供了一种新的用于手部动作捕捉的手部模型生成方法。
实施例二:
如图3所示,是本发明提供的一种应用于手部动作捕捉的手部模型生成方法的第一实施例的流程示意图。该手部模型生成方法包括:
S300,建立三维坐标系,将预设的手部模型投影到三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型。
建立三维坐标系,将预设的手部模型(三维模型)投影到该三维坐标系种第一轴、第二轴构成的平面上,得到初始手部模型。其中,第一轴、第二轴可以是x、y、z轴中的任意两轴。相应得到的初始手部模型则是一个没有厚度的二维图像。后文的所有实施例中将统一以第一轴为x轴、第二轴为z轴、第三轴为y轴为例,进行说明。
S301,将当前用户手掌所在平面与三维坐标系中第一轴、第二轴构成的平面重合,且用户所有手指初始朝向与第一轴重合,即将当前用户手掌所在平面与x-z平面重合且所有手指均朝向x轴。
S302,根据接收到的当前用户的手部动作数据以及初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型。
由于当前用户手掌所在平面与三维坐标系的x-z平面重合且用户所有手指初始朝向与X轴重合。因此当当前用户手部运动时,在创建的三维坐标系中,手掌掌骨在x-z平面中相对于y轴存在展开幅度。因此,需要根据接收到的当前用户的手部动作数据以及初始手部模型,计算该掌骨展开幅度。其中,掌骨展开幅度为手指第一指节相对于三维坐标系中y轴的展开幅度。当然,需要说明的是,对于拇指来说,其掌骨展开幅度还包括手指第一指节相对于三维坐标系中x轴、z轴的展开幅度。
其中,手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户的手部运动之后得到的。具体过程中:用户戴上动作捕捉手套在捕捉区域内运动,用户的手部在运动时,多个动作捕捉相机拍摄多帧手部运动图像,并传输给服务器。
根据用户手部结构可知,一只手包括5根手指,每根手指包括4个指节。在本申请中,将靠近手部根部(手腕部)的指节定义为第一指节,然后依指节结构顺序定义为其它指节(包括第二指节、第三指节、第四指节),直至指尖部位。因此,此处需要计算每根手指各个指节的手指指节长度。然后根据计算出的掌骨展开幅度、手指指节长度生成中间手部模型。生成的中间手部模型是x-z平面中的二维图像。
S303,确定生成的中间手部模型每根手指指节的指节旋转中心。
由步骤S302可知,由于二维图像是没有厚度的,而真正的手部模型是存在厚度的。因此,该中间手部模型实际上可以理解为是最终的手部模型在x-z平面上的投影。本步骤需要根据最终的手部模型在x-z平面上的投影,即中间手部模型,反推出最终生成的手部模型。具体操作方式例如是:先根据生成的中间手部模型每根手指指节的末端指节位置以及捕捉到的真实反光标记点的位置信息确定对应指节的指节旋转中心。待计算出指节旋转中心之后,对应也就得到了手部模型的厚度。然后进入步骤S304。
S304,确定出指节旋转中心之后,根据掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
本发明实施例的手部模型生成方法,在生成用于IK运算的手部模型时,不是对初始手部模型进行简单的等比例缩放,而是根据用户佩戴的动作捕捉手套获得的手部动作数据以及初始手部模型,计算掌骨展开幅度、手指指节长度以及指节旋转中心,以生成更能反映用户具体手部情况(手部大小、手部厚薄、手指具体长短)的最终手部模型。
实施三:
如图4所示,是本发明提供的手部模型生成方法的第二实施例的流程示意图。本实施例的手部模型生成方法,包括:
S400,建立三维坐标系,将预设的手部模型投影到三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型。
本步骤的操作方法可以参考实施例二的步骤S300,在此不再详细描述。
S401,将当前用户手掌所在平面与三维坐标系中第一轴、第二轴构成的平面重合,且用户所有手指初始朝向与第一轴重合,即将当前用户手掌所在平面与x-z平面重合且所有手指均朝向x轴。
本步骤的操作方法可以参考实施例二的步骤S301,在此不再详细描述。
本实施例会对实施例二中的步骤S302进行详细描述。具体地,本实施例在执行根据接收到的当前用户的手部动作数据以及初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型的操作时,包括:
S402,根据接收的当前用户的手部动作数据,获取当前用户配戴的动作捕捉手套上每个真实反光标记点在三维坐标系中的位置信息。
在进行动作捕捉时,用户佩戴动作捕捉手套,并在捕捉区域内运动。多个动作捕捉相机会拍摄多帧手部运动图像,传输给服务器。服务器根据拍摄的运动图像信息以及多个动作捕捉相机之间的相对位置关系,计算出动作捕捉手套上每个真实反光标记点在创建的三维坐标系中的位置信息。在此,将动作捕捉手套上布局的反光标记点称为真实反光标记点,以与后文会出现的虚拟标记点更好地区分。
S403,根据动作捕捉手套背部刚体上的真实反光标记点的位置信息和各手指第二指节上真实反光标记点的位置信息确定每根手指第一指节的指节长度。
具体实现时,例如可以根据真实反光标记点的位置信息与各手指第二指节上真实反光标记点的位置信息,按照一定的比例,确定出各手指第一指节的指节末端位置,然后根据第一指节末端指节位置和第一指节根节点的位置信息(该信息是预设的),计算出每根手指第一指节的指节长度。
S404,根据每根手指其它指节上的真实反光标记点的位置信息和初始手部模型,计算每根手指每一其它指节对应的指节长度和当前用户的掌骨展开幅度。
本步骤操作时,具体是需要计算掌骨展开幅度以及每根手指第二指节、第三指节、第四指节的指节长度。
在计算具体指节长度时,如计算拇指第二指节长度时,具体是根据拇指第二指节上的真实反光标记点的位置信息和初始手部模型得到的,如计算中指第三指节长度时,具体是根据中指第三指节上的真实反光标记点的位置信息和初始手部模型得到的。以此类推。
当前手掌的掌骨展开幅度,具体可以体现为每根手指第一指节在x-z平面上相对y轴的旋转角度θy。本步骤具体计算时,是计算每根手指第一指节在x-z平面上相对y轴的旋转角度θy。需要说明的是,对于拇指来说,在计算手掌的掌骨展开幅度时,还计算第一指节在x-z平面上相对x轴、z轴的旋转角度。
本步骤具体实现时,操作流程如图5所示。包括:
S501,创建与每根手指每一其它指节上真实反光标记点对应的虚拟标记点,以及根据初始手部模型,确定每一虚拟标记点的位置表达。
本步骤创建与每根手指第二指节、第三指节、第四指节上的真实反光标记点对应的虚拟标记点,并确定每一虚拟标记点的第一位置表达。
在确定每一虚拟标记点的位置表达时,可根据用户配套的动作捕捉手套上真实反光标记点的布局方式,考虑不同的影响因素。
当用户佩戴的是现有技术方式中的动作捕捉手套时,即动作捕捉手套上的反光标记点全部布局在手指正上方时,可以采用下文的第一种方式确定虚拟标记点的第一位置表达;当用户佩戴的是本申请发明人提出的动作捕捉手套时,即动作捕捉手套上存在布局在手指指套侧面的反光标记点时,可以采用下文的第二种方式确定虚拟标记点的第一位置表达,下文将详细描述。
第一种方式为:
首先,获取初始手部模型中每根手指每一其它指节对应的末端指节位置,即获取初始手部模型每根手指第二指节、第三指节、第四指节的末端指节位置。其中,指节位置为手指指节在x-z平面中的投影。相应地,末端指节位置即为末端指节在x-z平面中的投影。
其中,如图6所示,是创建虚拟标记点后的手部示意图。图6中,实心正方形代表每根手指除第一指节外的其它指节的末端指节位置,虚心圆圈代表创建的虚拟标记点的位置。需要重点说明的是,第四指节的末端指节位置与虚拟标记点的位置重合(图6中未示出第四指节的实心正方形)。本步骤需要获取的则是各个实心正方形的位置信息。
其次,由于初始手部模型中各个手指的朝向均为x轴,因此可以根据每一虚拟标记点在x轴上的偏移幅度、每一虚拟标记点在y轴上的偏移幅度、以及每根手指每一其它指节对应的末端指节位置,确定每根手指其它指节上每一虚拟标记点的第一位置表达。
其中,某一虚拟标记点pi,j的第一位置表达具体为:
loci,j=ai,ju1+bi,ju2+BCi,j,且
bi,j=0当,虚拟标记点pi,j位于末端指节时。
其中,pi,j表示第i根手指第j指节上的虚拟标记点;loci,j表示虚拟标记点pi,j的第一位置表达,u1表示y轴上的单位向量,ai,j表示虚拟标记点pi,j在y轴上的偏移幅度,u2表示x轴上的单位向量,bi,j表示虚拟标记点pi,j在x轴上的偏移幅度。BCi,j表示虚拟标记点pi,j所在指节的末端指节位置。BLi,j表示虚拟标记点pi,j所在指节的指节长度。其中,i,j为整数且1≤i≤5,2≤j≤4。
例如,食指第二指节上的虚拟标记点p2,2的位置表达可以是:loc2,2=a2,2u1+b2,2u2+BC2,2。中指第二指节上的虚拟标记点p3,2的位置表达可以是:loc3,2=a3,2u1+b3,2u2+BC3,2。
第二种方式:
首先,获取初始手部模型每根手指每一其它指节的末端指节位置,即获取初始手部模型每根手指第二指节、第三指节、第四指节的末端指节位置。如图6所示,实心正方形代表每根手指除第一指节外的其它指节的末端关节位置,虚心圆圈代表创建的虚拟标记点的位置。需要重点说明的是,第四指节的末端指节位置与虚拟标记点的位置重合(图6中未示出第四指节的实心正方形)。本步骤需要获取的则是各个实心正方形的位置信息。
其次,获取需要进行轴角优化的虚拟标记点的信息。
具体获取方式可以是:获取用户输入的布局在手指指套侧面的真实反光标记点的信息;即用户会提前告知服务器,哪个真实反光标记点布置在手套指套侧面。获取到该信息之后,再根据真实反光标记点与虚拟标记点之间的一一对应关系,即可确定需要进行轴角优化的虚拟标记点的信息。
最后,根据每一虚拟标记点在x轴上的偏移幅度、每一虚拟标记点在y轴上的偏移幅度、每根手指每一其它指节的末端指节位置,以及需要进行轴角优化的虚拟标记点的信息,确定每根手指其它指节上每一虚拟标记点的位置表达。
具体地,某一虚拟标记点pi,j的位置表达具体为:
loci,j=Ri,j(ai,ju1+bi,ju2+BCi,j),且
bi,j=0当,虚拟标记点pi,j位于末端指节时。
其中,pi,j表示第i根手指第j指节上的虚拟标记点;loci,j表示虚拟标记点pi,j的位置表达,u1表示y轴上的单位向量,ai,j表示虚拟标记点pi,j在y轴上的偏移幅度,u2表示x轴上的单位向量,bi,j表示虚拟标记点pi,j在x轴上的偏移幅度。BCi,j表示虚拟标记点pi,j所在指节的末端指节位置。BLi,j表示虚拟标记点pi,j所在指节的指节长度。Ri,j表示虚拟标记点pi,j的相对于x轴的旋转矩阵。若虚拟标记点pi,j需要进行轴角优化,则Ri,j为一由虚拟标记点pi,j的相对于x轴的旋转角度定义的3×3的旋转矩阵,若虚拟标记点pi,j不需进行轴角优化,则Ri,j为一3×3的单位矩阵I。其中,i,j为整数且1≤i≤5,2≤j≤4。
在得到虚拟标记点的第一位置表达之后,即进入S502。
S502,根据每根手指其它指节上真实反光标记点的位置信息以及与该真实反光标记点对应的虚拟标记点的第一位置表达,构建第一代价函数,以计算所有手指其它指节上真实反光标记点与其对应的虚拟标记点的第一欧式距离平方之和。
本步骤具体实现时,操作方式例如可以是:
首先,根据真实反光标记点的位置信息、虚拟标记点位置pi,j的第一位置表达,确定每根手指其他指节上每一真实反光标记点与其对应的虚拟标记点pi,j之间的欧式距离Di,j=||loci,j-reali,j||;其中,pi,j表示第i根手指第j指节上的虚拟标记点,loci,j为虚拟标记点pi,j的第一位置表达,reali,j为虚拟标记点pi,j对应的真实反光标记点的位置信息;i,j为整数且1≤i≤5,2≤j≤4;根据前文的描述可知,loci,j的表达已经确定,reali,j已知,因此可以得到每根手指第二指节、第三指节、第四指节上的虚拟标记点pi,j与其对应的真实反光标记点之间的欧式距离表达。
其次,根据真实反光标记点与该真实反光标记点对应的虚拟标记点pi,j之间的欧式距离构建每根手指的第一代价函数将所有手指的第一代价函数的代价值之和作为第一欧式距离平方之和/>f1(Xi)为第i根手指的第一代价函数,Xi为第i根手指的优化参数。在不考虑轴角优化时,优化参数包括:当前用户第i根手指的掌骨展开幅度,第i根手指其他指节的指节长度。若考虑轴角优化的情况且该根手指需要进行轴角优化,则优化参数则包括:该根手指参与轴角优化的旋转角度。
需要进一步说明的是,在根据真实反光标记点与该真实反光标记点对应的虚拟标记点之间的欧式距离构建每根手指的所述第一代价函数时,还可以为每根手指的第二指节、第三指节、第四指节设置不同的代价权重wi,j,此时得到更新后的每根手指的第一代价函数/>
在构建第一代价函数之后,则进入步骤S405。
其中,在利用最小二乘法最小化用户手指的第一代价函数时,可以对用户5根手指的第一代价函数同时进行优化,也可以分别最小化每个手指的第一代价函数。优选的方式是分别最小化,这样优化参数少且可以并行运算,可以在一定程度上提升优化速度。
需要进一步说明的另一点是,在利用最小二乘法最小化第一代价函数时,为减少优化参数,加快收敛速度,还可以设置初始手部模型中虚拟标记点pi,j所在指节的指节长度BLi,j与该虚拟标记点pi,j在x轴上相对于该指节末端的偏移幅度bi,j之间的比例。
为使虚拟标记点pi,j尽可能与真实反光标记点重合,因此可以将真实反光标记点所在指节上的位置在x轴上的偏移幅度与该反光标记点所在指节的指节长度BLi,j之间的比例作为虚拟标记点pi,j在x轴上的偏移幅度bi,j与虚拟标记点所在指节的指节长度BLi,j之间的比例。并且,在布局真实反光标记点时,真实反光标记点所在指节上的位置在x轴上的偏移幅度与该反光标记点所在指节的指节长度BLi,j之间的比例特定,例如为1/2,即真实反光标记点布局在该反光标记点所在指节的中间位置处,初始手部模型记载了该比例信息。
在设置BLi,j与bi,j之间的比例关系之后,再最小化第一代价函数时,可以减少一个优化参数,因此可以加快收敛速度。
S406,利用获得的当前用户掌骨展开幅度的最优解,以及当前用户手指指节长度的最优解,生成中间手部模型。
S407,根据生成的中间手部模型每根手指指节的末端指节位置确定对应指节的指节旋转中心。
S408,确定出指节旋转中心之后,根据所述掌骨展开幅度、手指指节长度以及指节旋转中心,生成最终手部模型。
步骤S407-步骤S408的操作方式与实施例二中的步骤S303-步骤S304类似,在此不再赘述。
实施例四:
如图7所示,是本发明提供的一种应用于手部动作捕捉的手部模型生成方法的第三实施例的流程示意图。该手部模型生成方法包括:
步骤S700,建立三维坐标系,将预设的手部模型投影到三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型。
S701,将当前用户手掌所在平面与三维坐标系中第一轴、第二轴构成的平面重合,且用户所有手指初始朝向与第一轴重合,即将当前用户手掌所在平面与x-z平面重合且所有手指均朝向x轴。
S702,根据接收的当前用户的手部动作数据,获取当前用户配戴的所述动作捕捉手套上每个真实反光标记点在三维坐标系中的位置信息。
S703,根据动作捕捉手套背部刚体上的真实反光标记点和各手指第二指节上真实反光标记点的位置信息确定每根手指第一指节的指节长度。
S704,根据每根手指其它指节上的真实反光标记点的位置信息和初始手部模型,计算每根手指每一其它指节对应的指节长度和当前用户的掌骨展开幅度。
S705,利用最小二乘法最小化第一代价函数,以获得当前用户掌骨展开幅度的最优解,以及获得当前用户每根手指其它指节长度的最优解。
S706,利用获得的当前用户掌骨展开幅度的最优解,以及当前用户手指指节长度的最优解,生成中间手部模型。
步骤S700-步骤S706的操作与实施例三中步骤S400-步骤S406的操作相同,在此不再进行赘述。
本实施例具体来说,是对实施例三中的步骤S407进行了详细的描述。具体实施例中,确定中间手部模型每根手指指节的指节旋转中心时,可以计算每根手指所有指节对应的指节旋转中心。但考虑到手部运动的实际情况,第一指节的旋转中心被设置在手腕根部的中心处,因此在实际操作中为提升计算速度,可以仅计算每根手指第二指节、第三指节、第四指节的指节旋转中心。
另外,根据实施例三的描述可知,实施例三中根据一帧数据可以获知掌骨展开幅度以及手指指节长度,以及其中ai,j和bi,j的最优解。在建立手部中间模型之后,为得到指节旋转中心位置,因此手指还需进行运动,以得到代表手指运动的后续多帧数据,因此接收到的手部动作捕捉数据包括手指运动的后续多帧数据。因此,对于手部动作捕捉数据包括手指运动的后续多帧数据,在确定中间手部模型每根手指指节的指节旋转中心时,可以包括:
S707,基于中间手部模型创建每根手指其它指节上的每一虚拟标记点pi,j所在指节的指节旋转中心cori,j。
S708,确定中间手部模型中指节旋转中心cori,j的第三位置表达。
图8所示,空心圆圈代表创建的虚拟标记点pi,j的位置,实心圆圈代表的是虚拟标记点pi,j所在指节的指节旋转中心cori,j的位置,空心方形代表的是虚拟标记点pi,j所在指节的末端指节位置bci,j。即虚拟标记点pi,j,指节旋转中心cori,j末端指节位置bci,j一一对应。
在确定其他指节(即第二指节、第三指节,第四指节上)上的虚拟标记点pi,j所在指节的指节旋转中心cori,j时的位置表达时,有两种方式,一种是:
直接用三维坐标表示,则虚拟标记点pi,j所在指节的指节旋转中心cori,j的位置表达为:
采用此种位置表达方式,由于三个坐标全部未知,在后续的优化过程中速度相对较慢。
为提升后续的优化速度,还可以采用另外一种位置表达方式,即:
先获取中间手部模型中指节旋转中心cori,j所在指节的末端指节位置bci,j。
通过指节旋转中心cori,j在x轴上的偏移幅度ni,j、指节旋转中心cori,j在y轴上的偏移幅度mi,j、以及所述指节旋转中心cori,j所在指节的末端指节位置bci,j,确定所述指节旋转中心cori,j的位置表达,即指节旋转中心cori,j的位置表达为Doci,j=mi,ju1+ni,ju2+bci,j。
S709,根据后续多帧数据中指节旋转中心cori,j的位置表达以及该虚拟标记点pi,j的位置信息,确定后续多帧数据中虚拟标记点pi,j的位置表达。
根据前文描述可知,由于中间手部模型虚拟标记点pi,j的初始位置信息已经得到(在优化第一代价函数时得到)。而步骤S707中可得到后续多帧数据中虚拟标记点pi,j的位置表达:
为所述中间手部模型中所述虚拟标记点pi,j的初始位置信息,所述为后续第f帧数据中所述虚拟标记点pi,j相对于指节旋转中心cori,j的旋转,为后续第f帧数据中所述虚拟标记点pi,j的位置信息,/>为所述指节旋转中心cori,j的初始位置信息。
S710,根据后续多帧数据中虚拟标记点pi,j的第二位置表达和虚拟标记点pi,j对应的真实反光标记点的位置信息,构建每根手指的第二代价函数,以计算多帧数据中所有手指其它指节上虚拟标记点pi,j与虚拟标记点pi,j对应的真实反光标记点之间的第二欧式距离平方之和。
其中,构建的每根手指的第二代价函数为:
为后续第f帧数据中虚拟标记点pi,j对应的真实反光标记点的位置信息;Yi为第f帧数据的优化参数,包括第f帧数据中每根手指指节的指节旋转中心,具体是决定旋转中心的参数,即旋转中心在x轴上的偏移幅度mi,j和旋转中心在y轴上的偏移ni,j。那么多帧数据中,所有手指其它指节上虚拟标记点与对应的真实反光标记点之间的第二欧式距离平方之和为/>F代表数据帧数,Y为后续多帧数据的优化参数,包括后续多帧数据所有手指指节的指节旋转中心,具体是决定所有手指指节旋转中心的参数,即旋转中心在x轴上的偏移幅度mi,j和旋转中心在y轴上的偏移ni,j。
S711,利用最小二乘法最小化第二代价函数,以获得当前用户每根手指每一其它指节对应的指节旋转中心的最优解。
实施例五
本申请的实施例还提供手部模型生成装置,该手部模型生成装置包括:
初始手部模型建立单元,用于建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;
重合单元,用于将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;
中间手部模型生成单元,用于根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;所述掌骨展开幅度为手指第一指节相对于所述三维坐标系第三轴的展开幅度;所述手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户手部运动之后得到的;
确定单元,用于确定所述中间手部模型每根手指指节的指节旋转中心;
最终手部模型生成单元,用于根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
关于该手部模型生成装置在生成手部模型时,可以采用采用上述实施例二至实施例四中任一实施例公开的手部模型生成方法,在此不再赘述。本实施例的手部模型生成装置在生成用于反向运动学IK运算的手部模型时,不是对初始手部模型进行简单的等比例缩放,而是根据用户佩戴的动作捕捉手套获得的手部动作数据以及初始手部模型,计算掌骨展开幅度、手指指节长度以及指节旋转中心,以生成更能反映用户具体手部情况(手部大小、手部厚薄、手指具体长短)的最终手部模型。
实施例六
图9是本申请一实施例提供的终端设备的示意图。如图9所示,该实施例的终端设备9包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92,例如手部模型生成程序。所述处理器90执行所述计算机程序92时实现上述各个手部模型生成方法实施例中的步骤。或者,处理器90执行所述计算机程序92时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序92可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器91中,并由所述处理器90执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序92在所述终端设备9中的执行过程。例如,所述计算机程序92可以被分割成初始手部模型建立单元、重合单元等多个单元,各单元具体功能如下:
初始手部模型建立单元,用于建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;重合单元,用于将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;中间手部模型生成单元,用于根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;所述掌骨展开幅度为手指第一指节相对于所述三维坐标系第三轴的展开幅度;所述手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户手部运动之后得到的;确定单元,用于确定所述中间手部模型每根手指指节的指节旋转中心;最终手部模型生成单元,用于根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
所述终端设备9可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是终端设备9的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91可以是所述终端设备9的内部存储单元,例如终端设备9的硬盘或内存。所述存储器91也可以是所述终端设备9的外部存储设备,例如所述终端设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器91还可以用于暂时地存储已输出或将要输出的数据。
实施例七
图10是本申请一实施例提供的手部动作捕捉方法的流程示意图,所述方法包括:
步骤1001,运用上述任一项所述的手部模型生成方法生成最终手部模型;
步骤1002,使用生成的所述最终手部模型进行IK解算,以获取手部动作数据。
关于手部模型生成方法在前文已经详细描述,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (18)
1.手部模型生成方法,其特征在于,包括:
建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;
将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;
根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;所述掌骨展开幅度为手指第一指节相对于所述三维坐标系第三轴的展开幅度;所述手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户手部运动之后得到的;
根据所述中间手部模型每根手指指节的末端指节位置以及所述动作捕捉相机捕捉到的所述动作捕捉手套上的真实反光标记点的位置信息,确定所述中间手部模型每根手指指节的指节旋转中心;
根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
2.如权利要求1所述的手部模型生成方法,其特征在于,当前用户每根手指指节包括:第一指节和其它指节,所述其它指节包括:第二指节、第三指节、第四指节;所述根据接收的当前用户的手部动作数据以及预设的初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,包括:
根据接收的当前用户的手部动作数据,获取当前用户配戴的所述动作捕捉手套上每个真实反光标记点在所述三维坐标系中的位置信息;
根据所述动作捕捉手套背部刚体上的真实反光标记点和各手指第二指节上真实反光标记点的位置信息确定每根手指第一指节的指节长度;
根据每根手指其余指节上的真实反光标记点的位置信息和所述初始手部模型,计算每根手指每一其它指节对应的指节长度和当前用户的掌骨展开幅度。
3.如权利要求2所述的手部模型生成方法,其特征在于,所述根据每根手指其余指节上的真实反光标记点的位置信息和所述初始手部模型,计算每根手指每一其它指节的对应指节长度和当前用户的掌骨展开幅度,包括:
创建与每根手指每一其它指节上真实反光标记点对应的虚拟标记点,以及根据所述初始手部模型,确定每一所述虚拟标记点的第一位置表达;
根据每根手指其它指节上真实反光标记点的位置信息以及与其它指节上所述真实反光标记点对应的虚拟标记点的第一位置表达,构建第一代价函数,以计算所有手指其它指节上所述真实反光标记点与其对应的虚拟标记点的第一欧式距离平方之和;
利用最小二乘法最小化所述第一代价函数,以获得当前用户掌骨展开幅度的最优解,以及获得当前用户每根手指其它指节长度的最优解。
4.如权利要求3所述的手部模型生成方法,其特征在于,所述构建第一代价函数,以计算所有手指上所述真实反光标记点与其对应的虚拟标记点的第一欧式距离平方之和,包括:
根据所述真实反光标记点的位置信息、所述虚拟标记点的第一位置表达,确定每根手指其他指节上每一所述真实反光标记点与其对应的虚拟标记点pi,j之间的欧式距离Di,j=||loci,j-reali,j||;其中,pi,j表示第i根手指第j指节上的虚拟标记点,loci,j为虚拟标记点pi,j的位置表达,reali,j为虚拟标记点pi,j对应的真实反光标记点的位置表达;i,j为整数且1≤i≤5,2≤j≤4;
将所有手指的第一代价函数的代价值之和作为所述第一欧式距离平方之和
7.如权利要求4所述的手部模型生成方法,其特征在于,所述利用最小二乘法最小化所述第一代价函数,包括:
设置初始手部模型每一虚拟标记点所在指节的指节长度与每一虚拟标记点在第一轴上相对于所述指节末端的偏移幅度之间的比例;
根据所述比例利用最小二乘法最小化所述第一代价函数。
8.如权利要求3所述的手部模型生成方法,其特征在于,所述根据所述初始手部模型,确定所述虚拟标记点的第一位置表达,包括:
获取初始手部模型每根手指每一其它指节对应的末端指节位置;
根据每一所述虚拟标记点在所述第一轴上的偏移幅度、每一所述虚拟标记点在所述第三轴上的偏移幅度、以及每根手指每一其它指节的末端指节位置,确定每根手指其它指节上每一所述虚拟标记点的第一位置表达,即虚拟标记点pi,j的第一位置表达具体为:
loci,j=ai,ju1+bi,ju2+BCi,j;
bi,j=0虚拟标记点pi,j位于末端指节;
其中,pi,j表示第i根手指第j指节上的虚拟标记点;loci,j表示虚拟标记点pi,j的位置表达,u1表示第三轴上的单位向量,ai,j表示虚拟标记点pi,j在第三轴上的偏移幅度,u2表示第一轴上的单位向量,bi,j表示虚拟标记点pi,j在第一轴上的偏移幅度,BCi,j表示虚拟标记点pi,j所在指节的末端指节位置,BLi,j表示虚拟标记点pi,j所在指节的指节长度;i,j为整数且1≤i≤5,2≤j≤4。
9.如权利要求3所述的手部模型生成方法,其特征在于,所述根据所述初始手部模型,确定所述虚拟标记点的第一位置表达,包括:
根据所述初始手部模型,获取每根手指其它指节的末端指节位置;
获取需要进行轴角优化的所述虚拟标记点的信息;
根据所述虚拟标记点在所述第一轴上的偏移幅度、所述虚拟标记点在所述第三轴上的偏移幅度,每根手指每一其它指节的末端指节位置、以及需要进行轴角优化的虚拟标记点的信息,确定每根手指其它指节上每一虚拟标记点的第一位置表达,即虚拟标记点pi,j的第一位置表达为:
loci,j=Ri,j(ai,ju1+bi,ju2+BCi,j);
bi,j=0,虚拟标记点pi,j位于末端指节;
其中,pi,j表示第i根手指第j指节上的虚拟标记点;loci,j表示虚拟标记点pi,j的位置表达,u1表示第三轴上的单位向量,ai,j表示虚拟标记点pi,j在第三轴上的偏移幅度,u2表示第一轴上的单位向量,bi,j表示虚拟标记点pi,j在第一轴上的偏移幅度,BCi,j表示虚拟标记点pi,j所在指节的末端指节位置,BLi,j表示虚拟标记点pi,j所在指节的指节长度;Ri,j表示虚拟标记点pi,j相对于第一轴的旋转矩阵;i,j为整数且1≤i≤5,2≤j≤4。
10.如权利要求9所述的手部模型生成方法,其特征在于,所述动作捕捉手套上存在布局在所述动作捕捉手套的手指指套侧面的真实反光标记点,所述方法还包括:
获取用户输入的布局在所述手指指套侧面的所述真实反光标记点的信息;
依据接收到的布局在所述手指指套侧面的所述真实反光标记点的信息,根据真实反光标记点与虚拟标记点之间的对应关系,确定需要进行轴角优化的所述虚拟标记点的信息。
11.如权利要求3至10中任一项所述的手部模型生成方法,其特征在于,所述手部动作数据包括手指运动的后续多帧数据;所述根据所述中间手部模型每根手指指节的末端指节位置以及所述动作捕捉相机捕捉到的所述动作捕捉手套上的真实反光标记点的位置信息,确定所述中间手部模型每根手指指节的指节旋转中心,具体包括:
基于所述中间手部模型创建每根手指其它指节上每一所述虚拟标记点pi,j所在指节的指节旋转中心cori,j;
确定所述中间手部模型中所述指节旋转中心cori,j的第三位置表达;
根据所述指节旋转中心cori,j的第三位置表达以及该虚拟标记点pi,j的位置信息,确定所述后续多帧数据中所述虚拟标记点pi,j的第二位置表达;
根据所述后续多帧数据中所述虚拟标记点pi,j的第二位置表达和所述虚拟标记点pi,j对应的真实反光标记点的位置信息,构建每根手指的第二代价函数,以计算所述后续多帧数据中所有手指其它指节上所述虚拟标记点pi,j与虚拟标记点pi,j对应的真实反光标记点之间的第二欧式距离平方之和;
利用最小二乘法最小化所述第二代价函数,以获得当前用户每根手指每一其它指节对应的指节旋转中心的最优解。
12.如权利要求11所述的手部模型生成方法,其特征在于,所述确定所述中间手部模型中所述指节旋转中心cori,j的第三位置表达,包括:
获取所述中间手部模型中所述虚拟标记点pi,j所在指节的末端指节位置bci,j;通过所述指节旋转中心cori,j在所述第一轴上的偏移幅度ni,j、所述指节旋转中心cori,j在第三轴上的偏移幅度mi,j、以及所述指节旋转中心cori,j所在指节的末端指节位置bci,j,确定所述指节旋转中心cori,j的第三位置表达,即所述指节旋转中心cori,j的第三位置表达为Doci,j=mi,ju1+ni,ju2+bci,j,u1表示第三轴上的单位向量,u2表示第一轴上的单位向量;或,
16.手部模型生成装置,其特征在于,包括:
初始手部模型建立单元,用于建立三维坐标系,将预设的手部模型投影到所述三维坐标系中第一轴、第二轴构成的平面上,得到初始手部模型;
重合单元,用于将当前用户手掌所在平面与所述三维坐标系中第一轴、第二轴构成的平面重合,且所述用户所有手指初始朝向第一轴;
中间手部模型生成单元,用于根据接收到的当前用户的手部动作数据以及所述初始手部模型,计算当前用户的掌骨展开幅度、手指指节长度,生成中间手部模型;所述掌骨展开幅度为手指第一指节相对于所述三维坐标系第三轴的展开幅度;所述手部动作数据是动作捕捉相机拍摄佩戴动作捕捉手套的用户手部运动之后得到的;
确定单元,用于根据所述中间手部模型每根手指指节的末端指节位置以及所述动作捕捉相机捕捉到的所述动作捕捉手套上的真实反光标记点的位置信息,确定所述中间手部模型每根手指指节的指节旋转中心;
最终手部模型生成单元,用于根据所述掌骨展开幅度、手指指节长度以及每根手指指节的指节旋转中心,生成最终手部模型。
17.终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至15中任一项所述方法的步骤。
18.手部动作捕捉方法,其特征在于,所述方法包括:
运用权利要求1至15中任一项所述的方法生成最终手部模型;
使用生成的所述最终手部模型进行逆向运动学解算,以获取手部动作数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/094725 WO2021000327A1 (zh) | 2019-07-04 | 2019-07-04 | 手部模型生成方法、装置、终端设备及手部动作捕捉方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111433783A CN111433783A (zh) | 2020-07-17 |
CN111433783B true CN111433783B (zh) | 2023-06-06 |
Family
ID=71547541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005240.1A Active CN111433783B (zh) | 2019-07-04 | 2019-07-04 | 手部模型生成方法、装置、终端设备及手部动作捕捉方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111433783B (zh) |
WO (1) | WO2021000327A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115799B (zh) * | 2020-08-24 | 2023-12-26 | 青岛小鸟看看科技有限公司 | 基于标记点的三维手势的识别方法、装置及设备 |
CN112416133B (zh) * | 2020-11-30 | 2021-10-15 | 魔珐(上海)信息科技有限公司 | 手部动作捕捉方法、装置、电子设备及存储介质 |
CN112515661B (zh) * | 2020-11-30 | 2021-09-14 | 魔珐(上海)信息科技有限公司 | 姿态捕捉方法、装置、电子设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9721383B1 (en) * | 2013-08-29 | 2017-08-01 | Leap Motion, Inc. | Predictive information for free space gesture control and communication |
US9911219B2 (en) * | 2015-05-13 | 2018-03-06 | Intel Corporation | Detection, tracking, and pose estimation of an articulated body |
US20170185141A1 (en) * | 2015-12-29 | 2017-06-29 | Microsoft Technology Licensing, Llc | Hand tracking for interaction feedback |
CN105653044A (zh) * | 2016-03-14 | 2016-06-08 | 北京诺亦腾科技有限公司 | 一种用于虚拟现实系统的动作捕捉手套及虚拟现实系统 |
CN106346485B (zh) * | 2016-09-21 | 2018-12-18 | 大连理工大学 | 基于人手运动姿态学习的仿生机械手的非接触式控制方法 |
CN106846403B (zh) * | 2017-01-04 | 2020-03-27 | 北京未动科技有限公司 | 一种三维空间中手部定位的方法、装置及智能设备 |
CN108693958B (zh) * | 2017-04-12 | 2020-05-22 | 南方科技大学 | 一种手势识别方法、装置及系统 |
US10614591B2 (en) * | 2017-05-31 | 2020-04-07 | Google Llc | Hand tracking based on articulated distance field |
CN109191593A (zh) * | 2018-08-27 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 虚拟三维模型的运动控制方法、装置及设备 |
CN109409236B (zh) * | 2018-09-28 | 2020-12-08 | 江苏理工学院 | 三维静态手势识别方法和装置 |
CN115631305A (zh) * | 2018-12-29 | 2023-01-20 | 深圳市瑞立视多媒体科技有限公司 | 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备 |
-
2019
- 2019-07-04 WO PCT/CN2019/094725 patent/WO2021000327A1/zh active Application Filing
- 2019-07-04 CN CN201980005240.1A patent/CN111433783B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2021000327A1 (zh) | 2021-01-07 |
CN111433783A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111402290B (zh) | 一种基于骨骼关键点的动作还原方法以及装置 | |
CN109636831B (zh) | 一种估计三维人体姿态及手部信息的方法 | |
CN111433783B (zh) | 手部模型生成方法、装置、终端设备及手部动作捕捉方法 | |
CN108875524B (zh) | 视线估计方法、装置、系统和存储介质 | |
CN103279186B (zh) | 融合光学定位与惯性传感的多目标运动捕捉系统 | |
Platonov et al. | A mobile markerless AR system for maintenance and repair | |
Chua et al. | Model-based 3D hand posture estimation from a single 2D image | |
JP2021103564A (ja) | 仮想オブジェクト駆動方法、装置、電子機器及び可読記憶媒体 | |
KR20210011425A (ko) | 이미지 처리 방법 및 디바이스, 이미지 장치, 및 저장 매체 | |
CN107820593A (zh) | 一种虚拟现实交互方法、装置及系统 | |
Aristidou | Hand tracking with physiological constraints | |
CN108693958B (zh) | 一种手势识别方法、装置及系统 | |
CN108919943A (zh) | 一种基于深度传感器的实时手部追踪方法 | |
JP2018119833A (ja) | 情報処理装置、システム、推定方法、コンピュータプログラム、及び記憶媒体 | |
WO2024094227A1 (zh) | 一种基于卡尔曼滤波和深度学习的手势姿态估计方法 | |
El-Sawah et al. | A prototype for 3-D hand tracking and posture estimation | |
CN112276914A (zh) | 一种基于ar技术的工业机器人及其人机交互方法 | |
CN111354029A (zh) | 手势深度确定方法、装置、设备及存储介质 | |
CN110096152A (zh) | 身体部位的空间定位方法、装置、设备及存储介质 | |
WO2022018811A1 (ja) | 被写体の3次元姿勢推定装置、3次元姿勢推定方法、及びプログラム | |
CN115223240B (zh) | 基于动态时间规整算法的运动实时计数方法和系统 | |
CN113496168A (zh) | 手语数据采集方法、设备、存储介质 | |
Li et al. | 3D hand reconstruction from a single image based on biomechanical constraints | |
Liu et al. | A robust hand tracking for gesture-based interaction of wearable computers | |
CN115205737B (zh) | 基于Transformer模型的运动实时计数方法和系统 |
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 |