虚拟形象的映射方法、映射装置及计算机可读存储介质与流程

文档序号:20759417发布日期:2020-05-15 17:52阅读:279来源:国知局
虚拟形象的映射方法、映射装置及计算机可读存储介质与流程

本发明涉及虚拟形象技术领域,尤其涉及虚拟形象的映射方法、映射装置及计算机可读存储介质。



背景技术:

将人体动作映射到三维虚拟形象的技术在许多领域都有应用。在影视制作领域,演员穿动作捕捉服做出相应动作,经过技术处理后便将演员的动作映射到了电影的虚拟角色中。在娱乐领域,基于深度摄像头的动作捕捉技术可以将玩家运动实时反映至游戏人物中。

目前,在人体动作映射到三维虚拟形象时,均需要通过动作捕捉服、深度摄像头等设备才可实现,限制条件较多,非常不方便。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种虚拟形象的映射方法、映射装置及计算机可读存储介质,旨在通过二维坐标到三维坐标的转换,使得动作映射更加方便。

为实现上述目的,本发明提供一种虚拟形象的映射方法,所述虚拟形象的映射方法包括以下步骤:

获取人体二维图像中各个关节的实际二维坐标,根据所述实际二维坐标确定相邻关节之间肢体的参考长度;

根据所述参考长度以及预设的实际长度确定所述肢体对应的关节的深度值;

根据所述关节的深度值以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标;

根据所述三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像。

可选地,所述获取人体二维图像中各个关节的实际二维坐标的步骤包括:

获取摄像头拍摄的当前帧人体图像中每个关节的参考二维坐标以及每个关节在相邻图像帧中的相邻二维坐标;

根据每个所述关节的参考二维坐标以及所述相邻二维坐标确定所述关节的实际二维坐标。

可选地,所述根据每个所述关节的参考二维坐标以及相邻二维坐标确定所述关节的实际二维坐标的步骤包括:

获取所述关节的参考二维坐标和所述相邻二维坐标的均值二维坐标;

分别获取所述关节的参考二维坐标和所述相邻二维坐标的置信度;

根据所述置信度计算所述均值二维坐标对应的置信度;

在所述均值二维坐标对应的置信度大于预设置信度时,将所述均值二维坐标作为所述关节的实际二维坐标。

可选地,所述根据所述关节的深度值以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标的步骤包括:

根据所述深度值、所述预设坐标方向以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标,其中,所述预设坐标方向垂直于所述二维坐标所在平面。

可选地,所述根据所述关节的深度值以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标的步骤之后,所述虚拟形象的映射方法还包括:

获取相邻肢体之间的夹角,所述相邻肢体之间连接同一关节;

在所述夹角处于预设角度范围内时,执行所述根据所述关节的所述三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像的步骤;

在所述夹角超出所述预设角度范围内时,根据所述深度值、所述预设坐标方向的相反方向以及所述二维坐标重新确定所述关节在预设虚拟空间内的三维坐标,其中,根据重新确定的三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像。

可选地,所述根据所述三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像的步骤包括:

确定所述虚拟图像中与所述关节对应的第一虚拟关节;

获取所述第一虚拟关节的当前三维坐标;

根据所述第一虚拟关节的当前三维坐标和所述关节的所述三维坐标,确定所述虚拟图像中需转动的第二虚拟关节以及转动角度;

控制所述第二虚拟关节按照所述转动角度转动,以使所述第一虚拟关节从所述当前三维坐标对应的位置移动至所述关节的所述三维坐标对应的目标位置。

可选地,所述控制所述第二虚拟关节按照所述转动角度转动的步骤包括:

获取所述当前三维坐标对应的位置与所述目标位置之间的三维距离;

根据所述三维距离确定所述第二虚拟关节对应的旋转角速度;

控制所述第二虚拟关节按照所述旋转角速度转动所述转动角度。

可选地,所述获取人体二维图像中各个关节的实际二维坐标的步骤包括:

接收预设终端发送的所述实际二维坐标,其中,所述预设终端获取所述人体二维图像,识别所述人体二维图像中的各个关节,并按照预设坐标系确定所述各个关节的实际二维坐标。

此外,为实现上述目的,本发明还提供一种虚拟形象的映射装置,所述虚拟形象的映射装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟形象的映射程序,所述虚拟形象的映射程序被所述处理器执行时实现如上所述中任一项所述的虚拟形象的映射方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有虚拟形象的映射程序,所述虚拟形象的映射程序被处理器执行时实现如上所述中任一项所述的虚拟形象的映射方法的步骤。

本发明实施例提出的虚拟形象的映射方法、映射装置及计算机可读存储介质,获取人体二维图像中各个关节的实际二维坐标,根据实际二维坐标确定相邻关节之间肢体的参考长度,根据参考长度以及预设的实际长度确定肢体对应的关节的深度值,根据关节的深度值以及二维坐标确定所述关节在虚拟空间内的三维坐标,根据所述三维坐标在预设虚拟空间内显示人体图像对应的虚拟图像。本发明通过获取人体关节的二维坐标,结合相邻关节之间的参考长度,确定人体关节的三维坐标,并映射到虚拟形象中,实现了二维坐标到三维坐标的转换,使得动作映射摆脱了动作捕捉服、深度摄像头的限制,动作映射更加方便。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明虚拟形象的映射方法的第一实施例的流程示意图;

图3为本发明虚拟形象的映射方法的第二实施例的流程示意图;

图4为本发明虚拟形象的映射方法的第三实施例的流程示意图;

图5为本发明虚拟形象的映射方法的第四实施例的流程示意图;

图6为本发明虚拟形象的映射方法的深度值计算原理的示意图;

图7为神经网络关键点的输出数据格式的示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种解决方案,通过获取人体关节的二维坐标,结合相邻关节之间的参考长度,确定人体关节的三维坐标,并映射到虚拟形象中,实现了二维坐标到三维坐标的转换,使得动作映射摆脱了动作捕捉服、深度摄像头的限制,动作映射更加方便。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端可以是智能手机,也可以是pc、平板电脑、智能电视等具有显示功能的终端设备。

如图1所示,该终端可以包括:处理器1001,例如cpu,通信总线1002,存储器1003。其中,通信总线1002用于实现这些组件之间的连接通信。存储器1003可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1003可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机可读存储介质的存储器1003中可以包括操作系统和虚拟形象的映射程序。

在图1所示的终端中,处理器1001可以用于调用存储器1003中存储的虚拟形象的映射程序,并执行以下操作:

获取人体二维图像中各个关节的实际二维坐标,根据所述实际二维坐标确定相邻关节之间肢体的参考长度;

根据所述参考长度以及预设的实际长度确定所述肢体对应的关节的深度值;

根据所述关节的深度值以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标;

根据所述三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

获取摄像头拍摄的当前帧人体图像中每个关节的参考二维坐标以及每个关节在相邻图像帧中的相邻二维坐标;

根据每个所述关节的参考二维坐标以及所述相邻二维坐标确定所述关节的实际二维坐标。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

获取所述关节的参考二维坐标和所述相邻二维坐标的均值二维坐标;

分别获取所述关节的参考二维坐标和所述相邻二维坐标的置信度;

根据所述置信度计算所述均值二维坐标对应的置信度;

在所述均值二维坐标对应的置信度大于预设置信度时,将所述均值二维坐标作为所述关节的实际二维坐标。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

根据所述深度值、所述预设坐标方向以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标,其中,所述预设坐标方向垂直于所述二维坐标所在平面。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

获取相邻肢体之间的夹角,所述相邻肢体之间连接同一关节;

在所述夹角处于预设角度范围内时,执行所述根据所述关节的所述三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像的步骤;

在所述夹角超出所述预设角度范围内时,根据所述深度值、所述预设坐标方向的相反方向以及所述二维坐标重新确定所述关节在预设虚拟空间内的三维坐标,其中,根据重新确定的三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

确定所述虚拟图像中与所述关节对应的第一虚拟关节;

获取所述第一虚拟关节的当前三维坐标;

根据所述第一虚拟关节的当前三维坐标和所述关节的所述三维坐标,确定所述虚拟图像中需转动的第二虚拟关节以及转动角度;

控制所述第二虚拟关节按照所述转动角度转动,以使所述第一虚拟关节从所述当前三维坐标对应的位置移动至所述关节的所述三维坐标对应的目标位置。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

获取所述当前三维坐标对应的位置与所述目标位置之间的三维距离;

根据所述三维距离确定所述第二虚拟关节对应的旋转角速度;

控制所述第二虚拟关节按照所述旋转角速度转动所述转动角度。

进一步地,处理器1001可以调用存储器1003中存储的虚拟形象的映射程序,还执行以下操作:

接收预设终端发送的所述实际二维坐标,其中,所述预设终端获取所述人体二维图像,识别所述人体二维图像中的各个关节,并按照预设坐标系确定所述各个关节的实际二维坐标。

参照图2,在第一实施例中,所述虚拟形象的映射方法包括以下步骤:

步骤s10,获取人体二维图像中各个关节的实际二维坐标,根据所述实际二维坐标确定相邻关节之间肢体的参考长度;

在本实施例中,实际二维坐标,与通过非深度摄像头获取的人体二维图像中各个关节相对应,其中,各个关节可以包括人体的腕关节、肘关节、膝关节等。基于人体二维图像建立二维坐标系,通过人体二维图像中各个关节在二维坐标系中的位置,即可确定各个关节的实际二维坐标。通过针对人体二维图像的动作映射,其计算量远小于人体三维图像的计算量,降低了人体动作映射的算力要求,并使得本实施例的技术方案可用于智能手机等移动终浓度,减少了人体动作映射的条件限制。

参考长度为相邻关节之间的肢体长度,也可看作是相邻的两个关节之间的二维距离。在根据实际二维坐标确定相邻关节之间肢体的参考长度时,通过相邻的两个关节的实际二维坐标进行确定,例如,相邻的两个关节为腕关节和肘关节,腕关节和肘关节之间的肢体为小臂,小臂的长度即是相邻关节之间肢体的参考长度,若腕关节在人体二维图像平面中的实际二维坐标为(1,1),肘关节在人体二维图像平面中的实际二维坐标为(5,1),则腕关节和肘关节之间的小臂的参考长度为4,长度单位为像素。

可选地,本实施例终端可同时包括两个终端,其中,一终端执行获取人体二维图像,识别人体二维图像中的各个关节,并按照预设坐标系确定各个关节的实际二维坐标,并发送至另一终端的步骤,需要说明的是,此处的一终端获取到的各个关节的实际二维坐标可以是直接从人体二维图像识别出的参考二维坐标,也可以是根据参考二维坐标和相邻二维坐标确定的二维坐标。而另一终端接收各个关节的实际二维坐标,进而确定关节的三维坐标,并根据预设虚拟空间内显示人体图像对应的虚拟图像。例如,一终端可以是智能手机端,用于获取人体二维图像以及发送各个关节的实际二维坐标,另一终端可以是智能电视端,用于显示人体图像对应的虚拟图像,从而实现人体动作到虚拟图像的映射。通过这种前后端分离的方式,使得人体动作到虚拟图像的映射的限制条件更少。

可选地,本实施例终端还可包括服务器,例如,本实施例终端包括智能手机端、服务器端以及智能电视端,由于识别人体二维图像中的各个关节的步骤一般通过神经网络模型实现,需要较多的计算量,对算力要求较高,因此放在算力较强的手机端或服务器端,以使人体动作到虚拟图像的映射更加迅速,虚拟图像的动作更加流畅。

步骤s20,根据所述参考长度以及预设的实际长度确定所述肢体对应的关节的深度值;

在本实施例中,预先获取相邻关节之间肢体的预设的实际长度。预设的实际长度可由用户事先手动输入,或者通过人体二维图像获取。在通过人体二维图像获取时,需先提示用户面对摄像头以及提示用户控制所有肢体尽量处于同一平面内,即用户肢体所在平面与人体二维图像所在平面平行,此时,相邻关节之间肢体的参考长度即为该肢体的预设的实际长度,并存储该预设的实际长度,该预设的实际长度包括用户手长、上臂长、大腿以及小腿长度。需要说明的是,在用户控制肢体摆动时,相邻关节之间肢体的参考长度为该肢体的预设的实际长度在人体二维图像所在平面上的投影的长度,随着该肢体的摆动,该肢体所在直线与人体二维图像所在平面的夹角角度发生变化,该肢体的参考长度也发生变化。

深度值所对应的方向与人体二维图像所在平面垂直,通过人体二维图像中的二维坐标、深度值以及深度值所对应的方向即可确定关节的三维坐标,其中,三维坐标中各个维度相互垂直。

可选地,在根据参考长度以及预设的实际长度确定肢体对应的关节的深度值时,可通过勾股定理等算法实现。例如,以预设的实际长度作为三角形的斜边长度,参考长度为三角形的一直角边长度,则深度值为三角形的另一直角边长度,通过勾股定理即可计算出深度值,比如,预设的实际长度为5,参考长度为4,则深度值为3,长度单位为像素。例如,如图6所示,肘关节到手指末端的手长为预设的实际长度,肘关节与手指末端关节之间的手-肘间距为相邻关节之间肢体的参考长度,手臂深度为肘关节相对于手指末端关节的深度值。需要说明的是,肢体对应的关节的深度值为一关节相对于另一相邻关节的深度,因此人体中每一关节的深度值均可通过相邻关节的深度进行确定。

可选地,在确定关节的深度值后,将深度值从像素单位转换为实际长度单位,例如,将像素单位转换为米,长度单位转化系数为s,以便于后续预设虚拟空间内坐标的计算。

步骤s30,根据所述关节的深度值以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标;

在本实施例中,根据关节的深度值确定该关节在与人体二维图像所在平面垂直的第三维度上的第三维坐标,整合第三维坐标和该关节的二维坐标,即可得到该关节的实际三维坐标。例如,在腕关节的深度值为3时,腕关节相对于肘关节的第三维坐标为(3)或(-3),此时,若腕关节的实际二维坐标为(1,1),与腕关节相邻的肘关节的实际三维坐标为(6,6,6),则腕关节的实际三维坐标为(1,1,3)或(1,1,9),其中,腕关节相对于肘关节的第三维坐标的正负根据关节的深度值对应的方向确定。关节的深度值对应的方向,即在与人体二维图像所在平面垂直的直线上,该关节与相邻关节的前后位置关系,也是该关节与相邻关节相对于摄像头的距离远近关系。通过人体关节的二维坐标到三维坐标的计算,实现了2d轻度模型到3d位置的转换。

在确定关节的实际三维坐标后,根据基于人体二维图像的二维坐标系与预设虚拟空间的对应关系,确定关节在在预设虚拟空间内的三维坐标。例如,在根据基于人体二维图像的二维坐标系与预设虚拟空间的长度比例,确定关节在在预设虚拟空间内的三维坐标时,若关节的实际三维坐标为(1,1,1),比例为5,则关节在预设虚拟空间内的三维坐标为(5,5,5),长度单位为像素。

可选地,预设虚拟空间内存在虚拟形象,以将用户的肢体动作映射到预设虚拟空间,并控制虚拟形象执行与用户肢体动作对应的动作,以形成虚拟图像。

可选地,采用前后端分离的方式实现虚拟形象的映射。具体地,后端获取人体二维图像,基于tensorflow等机器学习框架的关键点检测,获取人体二维图像中各个关节的实际二维坐标,将实际二维坐标对应的数据转为json格式,并通过websocket传输至前端,以使前端根据实际二维坐标获取三维坐标,并将三维坐标对应的动作映射到虚拟形象中进行图形渲染,通过这种前后端分离的方式,拓展了虚拟形象映射的应用。其中,后端可以是算力更强的服务器,以实现更加流畅的动作捕捉。可选地,后端模块中设置有tensorflow深度学习框架,神经网络为mobilenet,相应的网络权值为预设值,可通过前期训练得到。如图7所示,图7为神经网络识别到的关键点的输出数据格式,图7中的y为纵坐标,x为横坐标,(x,y)即为该关键点的二维坐标。

步骤s40,根据所述三维坐标在所述预设虚拟空间内显示所述人体图像对应的虚拟图像。

在本实施例中,在确定关节在预设虚拟空间内的三维坐标后,将该关节的三维坐标,作为预设虚拟空间内与人体对应的虚拟图像中与该关节对应的虚拟关节对应的目标坐标。控制虚拟图像中与该关节对应的虚拟关节从当前位置移动到目标坐标对应的位置,即可实现人体动作到虚拟形象动作的映射。在控制虚拟图像中的虚拟关节从当前位置移动到目标坐标对应的位置的过程中,显示虚拟形象对应的图像,即显示人体图像对应的虚拟图像。由于在虚拟形象中,一般以米作为长度单位,在将关节的三维坐标通过长度单位转化系数s,转化为以米为长度单位的三维坐标后,人体动作映射到虚拟图像更加方便。

在本实施例公开的技术方案中,通过获取人体关节的二维坐标,结合相邻关节之间的参考长度,确定人体关节的三维坐标,并映射到虚拟形象中,实现了二维坐标到三维坐标的转换,使得动作映射摆脱了动作捕捉服、深度摄像头的限制,动作映射更加方便。

在第二实施例中,如图3所示,在上述图2所示的实施例基础上,步骤s10包括:

步骤s11,获取摄像头拍摄的当前帧人体图像中每个关节的参考二维坐标以及每个关节在相邻图像帧中的相邻二维坐标;

在本实施例中,由于摄像头拍摄到的人体二维图像中各个关节的识别并不准确,可能会导致从人体二维图像直接读取到的各个关节的坐标也不准确,因此,可获取摄像头拍摄的当前帧人体图像中直接读取到的每个关节的二维坐标,即各个关节的参考二维坐标,以及摄像头拍摄的相邻图像帧中直接读取到的每个关节的二维坐标,即各个关节的相邻二维坐标。其中,相邻图像帧对应的拍摄时间与当前帧对应的拍摄时间相邻,但相邻图像帧并不限于当前帧的前一帧和后一帧,也可包括前多帧与后多帧。例如,在摄像头拍摄图像的帧率为每秒1帧时,获取当前帧对应的拍摄时间的前两秒以及后三秒对应的图像帧,并作为相邻图像帧。

步骤s12,根据每个所述关节的参考二维坐标以及所述相邻二维坐标确定所述关节的实际二维坐标。

在本实施例中,通过滤波的方式,使得各个关节的实际二维坐标更加准确。例如,可通过移动均值滤波确定关节的实际二维坐标,具体地,计算关节的参考二维坐标以及相邻二维坐标的均值二维坐标,并将均值二维坐标作为当前帧人体图像中该关节的实际二维坐标,例如,在移动均值滤波的窗口为3时,获取关节的参考二维坐标、前一帧图像和后一帧图像中该关节的二维坐标,若关节的参考二维坐标为(110,60),前一帧图像该关节的二维坐标为(100,50),后一帧图像中该关节的二维坐标为(105,55),则该关节的实际二维坐标为(105,55),单位长度为像素。需要说明的是,移动均值滤波是以当前帧作为中心,获取当前帧的前至少一帧和后至少一帧的图像,因此,随着当前时间的变化,当前帧是不同的,对应的相邻图像帧也不同。通过滤波,关节的实际二维坐标更加准确,减少了由于关节的实际二维坐标的误差导致的虚拟形象的虚拟关节抖动和漂移,虚拟角色的运动更加自然。

可选地,在获取到均值二维坐标后,还可判断该均值二维坐标是否可信,并在该均值二维坐标可信时,将该均值二维坐标作为关节的实际二维坐标,在该均值二维坐标不可信时,则舍弃掉当前均值二维坐标,不计算关节的三维坐标以及不映射到虚拟形象中,或者,在该均值二维坐标不可信时,将关节的参考二维坐标作为关节的实际二维坐标。

可选地,在判断均值二维坐标是否可信时,通过德·摩根定律(demorgan'slaws)进行确定。具体地,获取关节的参考二维坐标和相邻二维坐标的置信度,并根据关节的参考二维坐标和相邻二维坐标的置信度计算均值二维坐标的置信度,其中,关节的参考二维坐标和相邻二维坐标的置信度均可通过识别人体二维图像中各个关节时的神经网络模型得到。在关节的相邻二维坐标对应当前帧的前一帧和后一帧的图像时,均值二维坐标的置信度的计算公式如下:

p=1-(1-p1)*(1-p2)*(1-p3),

其中,p为均值二维坐标的置信度,p1为关节的参考二维坐标的置信度,p2为当前帧的前一帧图像中关节的相邻二维坐标的置信度,p3为当前帧的后一帧图像中关节的相邻二维坐标的置信度。需要说明的是,存在当前帧的前多帧和后多帧图像中关节的相邻二维坐标时,上述计算公式可相应拓展。

在均值二维坐标的置信度大于预设置信度时,判定该均值二维坐标可信,在均值二维坐标的置信度小于或等于预设置信度时,判定该均值二维坐标不可信,并将该均值二维坐标作为噪音点抛弃,以滤除二维坐标中的高频噪声点。通过均值二维坐标的置信度的检验,进一步提高关节的实际二维坐标的准确度,进一步减少虚拟形象的虚拟关节抖动和漂移,虚拟角色的运动更加自然。

在本实施例公开的技术方案中,通过当前帧人体图像中关节的参考二维坐标以及该关节在相邻图像帧中的相邻二维坐标确定关节的实际二维坐标,通过多个二维坐标的综合,使得关节的实际二维坐标更加准确,虚拟形象的虚拟关节抖动和漂移更少,虚拟角色的运动更加自然,通过滤波和置信度对于二维坐标的过滤,使得过滤后的二维坐标与实际关节位置拟合度更高,虚拟形象中虚拟关节的偏移和抖动更少。

在再一实施例中,如图4所示,在图2至图3任一实施例所示的基础上,步骤s30包括:

步骤s31,根据所述深度值、所述预设坐标方向以及所述二维坐标确定所述关节在预设虚拟空间内的三维坐标,

其中,所述预设坐标方向垂直于所述二维坐标所在平面。

在本实施例中,在确定关节的深度值后,获取预设坐标方向,以确定该关节相对于相邻的另一关节的第三维度坐标,其中,预设坐标方向为预先设置好的方向,且该预设坐标方向垂直与人体二维图像的二维坐标所在平面,即第三维度的方向。例如,在关节的深度值为3时,若按照预设坐标方向,该关节相对于相邻的另一关节的第三维度坐标为(3),若按照预设坐标方向的相反方向,该关节相对于相邻的另一关节的第三维度坐标为(-3)。在该关节的实际二维坐标为(1,1),相邻的另一关节的实际三维坐标为(6,6,6)时,若按照预设坐标方向,则该关节的实际三维坐标为(1,1,9),若按照预设坐标方向的相反方向,则该关节的实际三维坐标为(1,1,3)。

在确定关节的实际三维坐标后,根据基于人体二维图像的二维坐标系与预设虚拟空间的对应关系,确定关节在在预设虚拟空间内的三维坐标。例如,在根据基于人体二维图像的二维坐标系与预设虚拟空间的长度比例,确定关节在在预设虚拟空间内的三维坐标时,若关节的实际三维坐标为(1,1,1),比例为5,则关节在在预设虚拟空间内的三维坐标为(5,5,5),长度单位为像素。

可选地,为了判断关节的第三维度方向是预设坐标方向还是预设坐标方向的相反方向,在按照预设坐标方向确定关节的三维坐标后,检测相邻肢体之间的夹角,在所述夹角处于预设角度范围内时,表示即将映射到虚拟形象的动作正确,与人体的正常动作一致,并执行根据关节的三维坐标在预设虚拟空间内显示人体图像对应的虚拟图像的步骤,其中,预设角度范围为人体关节正常活动范围,不同的关节对应的正常活动范围也不同。相邻肢体连接到同一关节,以将相邻肢体之间的夹角作为该关节的当前活动角度。在夹角超出预设角度范围内时,表示即将映射到虚拟形象的动作错误,与人体的正常动作不符,关节的第三维度方向不是预设坐标方向,而是预设坐标方向的相反方向,因此,可根据预设坐标方向的相反方向、关节深度值、二维坐标重新确定关节在预设虚拟空间内的三维坐标,并根据重新确定的三维坐标在预设虚拟空间内显示人体图像对应的虚拟图像。

在本实施例公开的技术方案中,根据深度值、预设坐标方向以及二维坐标确定关节在预设虚拟空间内的三维坐标,以保证关节的三维坐标的准确性。

在又一实施例中,如图5所示,在图2至图4任一实施例所示的基础上,步骤s40包括:

步骤s41,确定所述虚拟图像中与所述关节对应的第一虚拟关节;

步骤s42,获取所述第一虚拟关节的当前三维坐标;

在本实施例中,在确定关节在预设虚拟空间内的三维坐标后,按照人体与虚拟形象的映射关系,确定虚拟图像中与该述关节对应的第一虚拟关节,以及确定第一虚拟关节的当前三维坐标。通过第一虚拟关节的当前三维坐标,可确定第一虚拟关节的当前位置。

步骤s43,根据所述第一虚拟关节的当前三维坐标和所述关节的所述三维坐标,确定所述虚拟图像中需转动的第二虚拟关节以及转动角度;

在本实施例中,人体动作映射到虚拟形象,即是控制虚拟图像中的第一虚拟关节从当前三维坐标对应的位置,移动到关节在预设虚拟空间内的三维坐标对应的目标位置。因此,根据第一虚拟关节的当前三维坐标和关节的三维坐标,通过逆运动学(ik,inversekinematics)求解虚拟图像中需转动的第二虚拟关节以及转动角度。例如,在将腕关节从(1,1,1)位置移动至(2,2,2)位置时,则需要控制与腕关节相邻的肘关节转动,通过肘关节的转动,使得腕关节的位置发生变化。

逆运动学是决定要达成所需要的姿势所要设置的关节可活动对象的参数的过程。例如,给定一个人体的三维模型,如何设置手腕和手肘的角度以便把手从放松位置变成挥手的姿势。这个问题在机器人学中是很关键的,因为操纵机械手臂通过关节角度来控制。逆运动学在游戏编程和三维建模中也很重要。其中,逆运动学函数表达式如下:

其中,y为输入的关节的三维坐标以及第一虚拟关节的当前三维坐标,关节的三维坐标为(x,y,z),第一虚拟关节的当前三维坐标为(o,a,t),q为逆运动学解算出的各个关节的转动角度,由于第一虚拟关节对应的目标位置可能超出一定范围,通过单个关节的转动无法使第一虚拟关节从当前三维坐标对应的位置到达目标位置,因此逆运动学解算出的需转动的关节可以有多个,并且每个关节对应一个转动角度θ,第二虚拟关节对应转动角度θ1,第三虚拟关节对应转动角度θ2,第(n+1)虚拟关节对应转动角度θn。

步骤s44,控制所述第二虚拟关节按照所述转动角度转动,以使所述第一虚拟关节从所述当前三维坐标对应的位置移动至所述关节的所述三维坐标对应的目标位置。

在本实施例中,确定虚拟图像中需转动的第二虚拟关节以及转动角度后,控制虚拟图像中第二虚拟关节按照转动角度转动,以使第一虚拟关节从当前三维坐标对应的位置移动至关节的三维坐标对应的目标位置,实现人体动作到虚拟图像的映射。

可选地,在控制第二虚拟关节按照转动角度转动前,根据当前三维坐标和关节的三维坐标,确定当前三维坐标对应的位置与关节的三维坐标对应的目标位置之间的三维距离。根据三维距离计算第二虚拟关节旋转时对应的旋转角速度,以通过旋转角速度的不断变化,使得该三维距离匀速减小。通过控制第二虚拟关节按照旋转角速度和转动角度转动,实现第一虚拟关节的平滑运动,虚拟角色的动作更加自然。

可选地,由于人体关节存在冗余的自由度,可同时通过虚拟形象中多个虚拟关节的转动来确保虚拟形象的运动与用户的实际运动拟合。

在本实施例公开的技术方案中,根据虚拟图像中与关节对应的第一虚拟关节以及第一虚拟关节的当前三维坐标,获取虚拟图像中需转动的第二虚拟关节以及转动角度,并控制第二虚拟关节按照转动角度转动,以实现第一虚拟关节的移动,实现人体动作到虚拟图像的映射。

此外,本发明实施例还提出一种虚拟形象的映射装置,所述虚拟形象的映射装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟形象的映射程序,所述虚拟形象的映射程序被所述处理器执行时实现如上各个实施例所述的虚拟形象的映射方法的步骤。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有虚拟形象的映射程序,所述虚拟形象的映射程序被处理器执行时实现如上各个实施例所述的虚拟形象的映射方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1