CN111857367B - 虚拟角色控制方法及装置 - Google Patents

虚拟角色控制方法及装置 Download PDF

Info

Publication number
CN111857367B
CN111857367B CN202010648274.7A CN202010648274A CN111857367B CN 111857367 B CN111857367 B CN 111857367B CN 202010648274 A CN202010648274 A CN 202010648274A CN 111857367 B CN111857367 B CN 111857367B
Authority
CN
China
Prior art keywords
target
determining
motion
virtual character
distance value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010648274.7A
Other languages
English (en)
Other versions
CN111857367A (zh
Inventor
招俊健
梁修杰
黎招洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Gongjiangshe Technology Co ltd
Original Assignee
Shenzhen Gongjiangshe Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Gongjiangshe Technology Co ltd filed Critical Shenzhen Gongjiangshe Technology Co ltd
Publication of CN111857367A publication Critical patent/CN111857367A/zh
Application granted granted Critical
Publication of CN111857367B publication Critical patent/CN111857367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Abstract

本申请实施例提供一种虚拟角色控制方法及装置,所述方法包括:获取目标用户的参考运动参数;根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数;根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作,因此,能够提一定程度上降低对虚拟角色进行控制时的时延。

Description

虚拟角色控制方法及装置
技术领域
本申请涉及控制技术领域,具体涉及一种虚拟角色控制方法及装置。
背景技术
体感控制是人机交互领域的热点方向,而虚拟角色的体感控制是当前机器人学研究中的一个新兴方向。与虚拟角色的传统控制方式相比,体感控制具有许多优点:直观性,便捷性和易用性。
通常,基于体感设备的控制方法采用可Kinect、深度摄像头等设备来采集骨骼信息,这种设备需要大运算力的配合,例如电脑、手机等设备,生产成本大,量产可实现化低。这些方法获取人体骨骼信息后,大多通过视觉结合深度信息来推演人体关节位置,通过复杂运算和模糊性推理射到机器人关节角用于控制机器人,导致了在运算时的运算效率低,进而造成了在对虚拟角色进行控制时的时延较高。
发明内容
本申请实施例提供一种虚拟角色控制方法及装置,能够提一定程度上降低对虚拟角色控制进行控制时的时延。
本申请实施例的第一方面提供了一种虚拟角色控制方法,所述方法包括:
获取目标用户的参考运动参数;
根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数;
根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作;
获取所述目标动作下所述虚拟角色的相对位置参数;
根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,包括:
根据所述参考腿部运动参数确定出,所述目标用户的腿部与地面之间的参考最大距离值;
获取目标障碍物的参考高度,所述目标障碍物为阻挡所述虚拟机器向前移动的物体;
若所述参考最大距离值小于所述参考高度,则根据所述参考高度确定出所述高度修正系数;
将所述参考最大距离值乘以所述高度修正系数,以得到目标最大距离值;
根据所述参考腿部运动参数和所述目标最大距离值,确定出所述目标腿部运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,包括:
根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;
获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;
若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;
根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数。
可选的,所述根据所述参考跨度值确定出目标最大跨度值,包括:
获取所述虚拟角色前腿与所述目标沟壑第一边界之间的第一距离值;
若所述第一距离值小于第二预设距离值,则获取第二目标距离值,所述第二目标距离值为所述第一目标距离值与所述第一距离值之间的差值,所述第二预设距离值小于所述第一预设距离值;
将所述参考跨度值与所述第二目标距离值的二分之一之间的差值作为所述目标最大跨度值。
可选的,所述获取目标用户的参考运动参数,包括:
获取所述目标用户的运动视频,以及确定所述目标用户的多个运动特征点;
根据所述运动视频中的多帧图像,确定出所述多个运动特征点中的每个运动特征点的运动曲线;
根据所述每个运动特征点的运动曲线确定出所述目标用户的参考运动参数。
可选的,所述相对位置参数包括手部末端与身体的相对位置参数,所述方法还包括:
确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致;
所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致,包括:
判断所述虚拟角色手部末端点与手臂起点之间的距离与所述目标用户的手部末端点与手臂起点之间的距离之间的参考误差是否小于预设误差精度;
若所述参考误差小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
若所述参考误差大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
可选的,所述相对位置参数包括手部末端与身体的相对位置参数,所述方法还包括:
确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致;
所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致,包括:
判断所述虚拟角色手臂起点与手部末端点之间的方向向量与所述目标用户的手部末端点与手部末端点之间的方向向量之间的参考偏差角是否小于预设误差精度;
若所述参考偏差角小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
若所述参考偏差角大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
可选的,所述参考运动参数包括脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC。
可选的,所述虚拟角色包括上臂、下臂和运动装置,所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,包括:
根据所述脊柱旋转四元数QA,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数QB,确定出上臂投影平面的第二坐标系;
根据所述上臂旋转四元数QB,在所述第一坐标系中确定出所述上臂的方向向量VU,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量VD;
获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3、以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4;
获取所述虚拟角色中的运动装置的运动参数;
根据所述B1、B2、B3、B4和所述运动装置的运动参数,确定出所述虚拟角色的运动参数。
可选的,所述获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4,包括:
通过预设的公式获取B1、B2、B3和B4,具体如下:
Figure BDA0002573955180000041
Figure BDA0002573955180000042
Figure BDA0002573955180000051
Figure BDA0002573955180000052
其中,arccos()为反余弦函数,
Figure BDA0002573955180000053
为单位向量(1,0,0),/>
Figure BDA0002573955180000054
为单位向量(0,1,0),/>
Figure BDA0002573955180000055
为第一坐标系的x轴,/>
Figure BDA0002573955180000056
为第一坐标系的y轴,Qa为脊柱旋转四元数QA,/>
Figure BDA0002573955180000057
为第二坐标系的x轴,/>
Figure BDA0002573955180000058
为第二坐标系的y轴,Qb为上臂旋转四元数QB,Vu为上臂的方向向量VU,Vd为下臂的方向向量VD,/>
Figure BDA0002573955180000059
Figure BDA00025739551800000510
可选的,所述方法还包括:
获取所述虚拟角色的目标运动姿势;
若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
生成姿势调整指令,以及将所述姿势调整指令发送到所述虚拟角色,所述姿势调整指令携带所述姿势调整参数。
本申请实施例的第二方面提供了一种虚拟角色控制装置,所述装置包括获取单元、确定单元和控制单元,其中,
所述获取单元,用于获取目标用户的参考运动参数;
所述确定单元,用于根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数;
所述控制单元,用于根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作;
所述获取单元,还用于获取所述目标动作下所述虚拟角色的相对位置参数;
所述确定单元,还用于根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,在所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元用于:
根据所述参考腿部运动参数确定出,所述目标用户的腿部与地面之间的参考最大距离值;
获取目标障碍物的参考高度,所述目标障碍物为阻挡所述虚拟机器向前移动的物体;
若所述参考最大距离值小于所述参考高度,则根据所述参考高度确定出所述高度修正系数;
将所述参考最大距离值乘以所述高度修正系数,以得到目标最大距离值;
根据所述参考腿部运动参数和所述目标最大距离值,确定出所述目标腿部运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,在所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元用于:
根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;
获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;
若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;
根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数。
可选的,在所述根据所述参考跨度值确定出目标最大跨度值方面,所述确定单元用于:
获取所述虚拟角色前腿与所述目标沟壑第一边界之间的第一距离值;
若所述第一距离值小于第二预设距离值,则获取第二目标距离值,所述第二目标距离值为所述第一目标距离值与所述第一距离值之间的差值,所述第二预设距离值小于所述第一预设距离值;
将所述参考跨度值与所述第二目标距离值的二分之一之间的差值作为所述目标最大跨度值。
可选的,在所述获取目标用户的参考运动参数方面,所述获取单元用于:
获取所述目标用户的运动视频,以及确定所述目标用户的多个运动特征点;
根据所述运动视频中的多帧图像,确定出所述多个运动特征点中的每个运动特征点的运动曲线;
根据所述每个运动特征点的运动曲线确定出所述目标用户的参考运动参数。
可选的,所述相对位置参数包括手部末端与身体的相对位置参数,所述装置还用于:
确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致;
在所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致方面,所述装置具体用于:
判断所述虚拟角色手部末端点与手臂起点之间的距离与所述目标用户的手部末端点与手臂起点之间的距离之间的参考误差是否小于预设误差精度;
若所述参考误差小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
若所述参考误差大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
可选的,所述相对位置参数包括手部末端与身体的相对位置参数,所述装置还用于:
确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致;
在所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致方面,所述装置具体用于:
判断所述虚拟角色手臂起点与手部末端点之间的方向向量与所述目标用户的手部末端点与手部末端点之间的方向向量之间的参考偏差角是否小于预设误差精度;
若所述参考偏差角小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
若所述参考偏差角大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
可选的,所述参考运动参数包括脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC。
虚拟角色,所述虚拟角色包括上臂、下臂和运动装置,在所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元用于:
根据所述脊柱旋转四元数QA,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数QB,确定出上臂投影平面的第二坐标系;
根据所述上臂旋转四元数QB,在所述第一坐标系中确定出所述上臂的方向向量VU,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量VD;
获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3、以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4;
获取所述虚拟角色中的运动装置的运动参数;
根据所述B1、B2、B3、B4和所述运动装置的运动参数,确定出所述虚拟角色的运动参数。
可选的,在所述获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4方面,所述确定单元还用于:
通过预设的公式获取B1、B2、B3和B4,具体如下:
Figure BDA0002573955180000091
Figure BDA0002573955180000092
Figure BDA0002573955180000093
Figure BDA0002573955180000094
其中,arccos()为反余弦函数,
Figure BDA0002573955180000095
为单位向量(1,0,0),/>
Figure BDA0002573955180000096
为单位向量(0,1,0),/>
Figure BDA0002573955180000097
为第一坐标系的x轴,/>
Figure BDA0002573955180000098
为第一坐标系的y轴,Qa为脊柱旋转四元数QA,/>
Figure BDA0002573955180000099
为第二坐标系的x轴,/>
Figure BDA00025739551800000910
为第二坐标系的y轴,Qb为上臂旋转四元数QB,Vu为上臂的方向向量VU,Vd为下臂的方向向量VD,/>
Figure BDA00025739551800000911
Figure BDA00025739551800000912
可选的,所述虚拟角色控制装置还用于:
获取所述虚拟角色的目标运动姿势;
若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
生成姿势调整指令,以及将所述姿势调整指令发送到所述虚拟角色,所述姿势调整指令携带所述姿势调整参数。
本申请实施例的第三方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
本申请实施例的第四方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
通过本申请实施例,获取目标用户的参考运动参数,根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作,获取所述目标动作下所述虚拟角色的相对位置参数;根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数,相对于现有方案中,通过复杂运算和模糊性推理射到机器人关节角用于控制虚拟角色,能够直接从目标用户的运动参数计算出虚拟角色的运动参数,因此能够一定程度上减少计算时的计算量,进而能够一定程度上减少对虚拟角色控制时的时延,并确定出第二运动参数,也提升了对虚拟角色进行控制时的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供了一种虚拟角色控制方法的示意图;
图2A为本申请实施例提供了一种虚拟角色控制方法的流程示意图;
图2B为本申请实施例提供了一种目标用户的关节节点示意图;
图2C为本申请实施例提供了一种坐标系的示意图;
图2D为本申请实施例提供了一种旋转方向示意图;
图3为本申请实施例提供了另一种虚拟角色控制方法的流程示意图;
图4为本申请实施例提供了另一种虚拟角色控制方法的流程示意图;
图5为本申请实施例提供了一种虚拟角色控制装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子装置可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为电子装置。
为了更好的理解本申请实施例提供的一种虚拟角色控制方法,下面对虚拟角色控制方法进行简要介绍。请参阅图1,图1为本申请实施例提供了一种虚拟角色控制方法的示意图。如图1所示,电子装置102通过体感检测设备101获取目标用户的参考运动参数,电子装置102根据参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,电子装置102根据第一运动参数对虚拟角色进行控制,以得到目标动作,该虚拟角色运行于电子装置102中,因此,相对于现有方案中,通过复杂运算和模糊性推理射到机器人关节角用于控制虚拟角色,能够直接从目标用户的运动参数计算出虚拟角色的运动参数,因此能够一定程度上减少计算时的计算量,进而能够一定程度上减少对虚拟角色控制时的时延。
在计算第一运动参数时,可以采用预设的算法计算出该第一运动参数,预设的算法为计算开销较小的算法,例如可以运行在资源受限设备上的算法,资源受限设备可以理解为运行资源较小的设备,如单片机、SOC芯片(英文名:System-on-a-Chip)等。
请参阅图2A,图2A为本申请实施例提供了一种虚拟角色控制方法的流程示意图。如图2A所示,该控制方法包括步骤201-205,具体如下:
201、获取目标用户的参考运动参数。
其中,可以通过体感设备对目标用户的参考运动参数进行采集,体感设备例如可以是9轴体感采集设备,9轴体感采集设备包括通过三轴陀螺仪、三轴加速度计和三轴地磁计等。
请参阅图2B,图2B为一种目标用户的关节节点示意图。如图2B所示关节节点包括脊柱节点、上臂节点和下臂节点。参考运动参数包括脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC,在对参考运动参数进行采集时,具体可以为,通过三轴陀螺仪、三轴加速度计和三轴地磁计进行采集实时的采集用户的运动信息,然后将运动信息通过数据融合算法生成脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC。
可选的,另一种可能获取目标用户的参考运动参考的方法包括步骤A1-A3,具体如下:
A1、获取所述目标用户的运动视频,以及确定所述目标用户的多个运动特征点;
A2、根据所述运动视频中的多帧图像,确定出所述多个运动特征点中的每个运动特征点的运动曲线;
A3、根据所述每个运动特征点的运动曲线确定出所述目标用户的参考运动参数。
其中,获取目标用户的运动视频的方式,可以通过摄像头获取目标用户的运动视频,在确定运动特征点时,可以采用预设的运动特征点,也可以从目标用户的运动视频中提取出运动特征点。其中,一种可能的通过运动视频提取出运动特征点的方法可以为:根据运动视频的多帧图像,比对目标用户的每个关节的位置,若位置不同,则确定出该关节为运动特征点。例如,肘关节在多帧图像中存在多个位置,则将该肘关节确定为运动特征点。
可选的,在确定每个运动特征点的运动曲线时,可以根据运动特征点的时间和每个视频帧中的位置,依次进行连接,从而得到运动曲线。
可选的,根据运动曲线确定出参考运动参数的方法可以为:根据运动特征点对应的运动曲线,可以直接确定出该运动特征点的运动参数,例如,运动幅值和运动频率等。
202、根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,一种可能的根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数的方法包括步骤B1-B5,具体如下:
B1、根据所述参考腿部运动参数确定出,所述目标用户的腿部与地面之间的参考最大距离值;
B2、获取目标障碍物的参考高度,所述目标障碍物为阻挡所述虚拟机器向前移动的物体;
B3、若所述参考最大距离值小于所述参考高度,则根据所述参考高度确定出所述高度修正系数;
B4、将所述参考最大距离值乘以所述高度修正系数,以得到目标最大距离值;
B5、根据所述参考腿部运动参数和所述目标最大距离值,确定出所述目标腿部运动参数。
其中,目标用户的腿部与地面之间的参考最大距离值可以理解为,目标用户的脚底与地面之间的最大距离值。
可选的,获取目标障碍物的参考高度的方法可以通过双摄测景深的方式来获取,当然也可通过其它方式进行获取,此处仅为举例说明,不作具体限定。
可选的,一种可能的根据参考高度确定高度修正系数的方法可以为:获取所述参考高度与所述参考最大距离值之间的比值,得到第一比值;获取所述虚拟角色的脚趾前端与脚跟之间的目标长度;根据目标长度和所述参考高度,确定出参考修正系数;将所述参考修正系数乘以所述第一比值,得到所述高度修正系数。
其中,一种可能的根据目标长度、最大旋转角度和参考高度,确定出参考修正系数的方法可以为:获取虚拟角色在站立时与该障碍物之间的距离值,该距离值可以理解为虚拟角色腿部与该障碍物之间的距离值;根据该距离值与所述目标长度,确定出碰撞系数;根据碰撞系数确定出参考修正系数。根据该距离值与目标长度确定出碰撞系数的方法可以为:通过预设的神经网络模型确定出该碰撞系数,预设的神经网络模型可以通过有监督或无监督的学习方法进行训练得到,其样本数据为距离值、目标长度和碰撞系数。根据碰撞系数确定出参考修正系数的方法可以为:碰撞系数越大,则参考修正系数越大,碰撞系数越小,则参考修正系数越小。
可选的,一种可能的根据腿部运动参数和目标最大距离值,确定出目标腿部运动参数的方法可以为:将参考腿部运动参数中的参考最大距离值替换为该目标最大距离值,从而得到目标腿部运动参数。
本示例中,在机器人运动前方存在障碍物时,若参考最大距离值和障碍物的参考高度,则确定出高度修正系数,并根据高度修正系数乘以参考高度,得到目标最大距离值,根据目标最大距离值和参考腿部运动参数确定出目标腿部运动参数,从而,可以根据障碍物的高度以及腿部与地面之间的最大距离值确定出目标腿部运动参数,可以一定程度上提升腿部运动参数确定时的准确性。
可选的,另一种可能的根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数的方法包括步骤C1-C4,具体如下:
C1、根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;
可选的,根据腿部运动参数确定出参考最大跨度值的方法可以为:根据腿部运动参数中的运动特征点的运动参数,确定出双脚之间的最大跨度,具体可以为,提取其中一只脚的脚跟的运动参数,提取另外一只脚的脚尖的运动参数,将脚跟与脚尖之间的最大距离值,作为参考最大跨度值。
C2、获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;
可选的,获取目标沟壑的参考跨度值的方法可以参考步骤B2中所述的方法,此处不再赘述。
C3、若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;
其中,一种可能的根据参考跨度值确定出目标最大跨度值的方法包括步骤B31-B33,具体如下:
C31、获取所述虚拟角色前腿与所述目标沟壑第一边界之间的第一距离值;
其中,第一距离值可以理解为,前腿的脚尖与目标沟壑的第一边界之间的距离,目标沟壑的第一边界可以理解为靠近虚拟角色的边界。
C32、若所述第一距离值小于第二预设距离值,则获取第二目标距离值,所述第二目标距离值为所述第一目标距离值与所述第一距离值之间的差值,所述第二预设距离值小于所述第一预设距离值;
其中,第一预设距离值、第二预设距离值通过经验值或历史数据设定。
C33、将所述参考跨度值与所述第二目标距离值的二分之一之间的差值作为所述目标最大跨度值。
C4、根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数。
可选的,步骤C4可以参照前述步骤B5所述的方法,此处不再赘述。
本示例中,在虚拟角色运行路径前存在沟壑时,若参考最大跨度值小于沟壑的跨度,则根据沟壑的跨度确定出目标最大跨度值,根据目标最大跨度值确定出目标腿部运动参数,从而,能够在参考最大跨度值小于沟壑的跨度时,对腿部运动参数进行调整,从而能够一定程度上提升对虚拟角色进行控制时的智能性。
可选的,另一种可能的根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数的方法包括步骤D1-D5,具体如下:
D1、根据所述脊柱旋转四元数QA,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数QB,确定出上臂投影平面的第二坐标系;
请参阅图2C,图2C为本申请实施例提供了一种坐标系的示意图。如图2C所示,将目标用户的竖直站立时的脊柱抽象为一条直线,则该直线位于第一坐标系所在平面,将人体所在的面抽象为一个平面,则第一坐标系的平面与人体所在平面重合。
可选的,一种可能的对第一坐标系和第二坐标系进行表示的方法为:
第一坐标系:
Figure BDA0002573955180000161
其中,
Figure BDA0002573955180000162
为x轴的单位向量,/>
Figure BDA0002573955180000163
为y轴的单位向量,/>
Figure BDA0002573955180000164
为第一坐标系的x轴,/>
Figure BDA0002573955180000165
为第一坐标系的y轴,/>
Figure BDA0002573955180000166
为/>
Figure BDA0002573955180000167
的逆向量,/>
Figure BDA0002573955180000168
为/>
Figure BDA0002573955180000169
的逆向量,Qa为脊柱旋转四元数QA。
第二坐标系:
Figure BDA00025739551800001610
其中,
Figure BDA00025739551800001611
为第二坐标系的x轴,/>
Figure BDA00025739551800001612
为第二坐标系的y轴,Qb为上臂旋转四元数QB。
D2、根据所述上臂旋转四元数QB,在所述第一坐标系中确定出所述上臂的方向向量VU,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量VD;
可选的,上臂的方向向量VU可以表示为:
Figure BDA00025739551800001613
/>
其中,Vu为上臂的方向向量VU;
下臂的方向向量VD可以表示为:
Figure BDA00025739551800001614
其中,Vd为下臂的方向向量VD。
D3、获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3、以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4;
可选的,通过预设的公式获取B1、B2、B3和B4,具体如下:
Figure BDA00025739551800001615
Figure BDA00025739551800001616
Figure BDA0002573955180000171
Figure BDA0002573955180000172
其中,arccos()为反余弦函数,
Figure BDA0002573955180000173
为单位向量(1,0,0),/>
Figure BDA0002573955180000174
为单位向量(0,1,0),/>
Figure BDA0002573955180000175
为第一坐标系的x轴,/>
Figure BDA0002573955180000176
为第一坐标系的y轴,Qa为脊柱旋转四元数QA,/>
Figure BDA0002573955180000177
为第二坐标系的x轴,/>
Figure BDA0002573955180000178
为第二坐标系的y轴,Qb为上臂旋转四元数QB,Vu为上臂的方向向量VU,Vd为下臂的方向向量VD,/>
Figure BDA0002573955180000179
Figure BDA00025739551800001710
可选的,第一坐标系和第二坐标系,可以由空间直角坐标系投影或转换得到。
D4、获取所述虚拟角色中的运动装置的运动参数;
其中,虚拟角色中的运动装置的运动参数可以为,虚拟角色中的旋转装置的旋转范围。例如,虚拟角色中的舵机的运动范围,其中舵机及其他虚拟角色中的部件等均为模拟部件。
D5、根据所述B1、B2、B3、B4和所述运动装置的运动参数,确定出所述虚拟角色的第一运动参数。
可选的,虚拟角色的运动参数包括上臂的第一旋转参数EA、上臂的第二旋转参数EB、下臂的第三旋转参数EC和下臂的第四旋转参数ED,
所述第一旋转参数可以通过如下公式得到:
EA=B1*Range,
所述第二旋转参数可以通过如下公式得到:
EB=B2*Range,
所述第三旋转参数可以通过如下公式得到:
EC=B3*Range,
所述第四旋转参数可以通过如下公式得到:
ED=B4*Range,
其中,Range为所述运动装置的运动参数。
如图2D所示,图2D为一种旋转方向示意图。图中,上臂左右旋转可以理解为虚拟角色的正面朝向的左右旋转,上臂前后旋转可以理解为虚拟角色的正面朝向的前后旋转,下臂左右摆动可以理解为虚拟角色的正面朝向的左右摆动,下臂的前后摆动可以理解为虚拟角色的正面朝向的前后摆动。
203、根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作。
其中,目标动作可以理解为与目标用户相似或相同的动作。
204、获取所述目标动作下所述虚拟角色的相对位置参数。
相对位置参数包括手部末端与身体的相对位置参数,具体例如可以是:手部末端点与手臂起点之间的距离,或者,手臂起点与手部末端点之间的方向向量等。
205、根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数。
根据相对位置参数和第一运动参数,确定第二运动参数的方法可以是:
若虚拟角色的相对位置参数与目标用户的相对位置参数不一致,则调整虚拟角色的臂长系数等,从而确定出第二运动参数。
确定第二运动参数的方法可以是:判断虚拟角色现在的手臂长度,通过改变控制系数,判断虚拟角色是否满足完全仿真控制条件,若满足,则可以确定出第二运动参数;若不满足,则使用跟随模拟的方法模拟捕捉到的目标用户的动作,从而确定出第二运动参数。
在一个可能的实现方式中,本申请实施例还提供了一种确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致的方法,具体如下:
F1、判断所述虚拟角色手部末端点与手臂起点之间的距离与所述目标用户的手部末端点与手臂起点之间的距离之间的参考误差是否小于预设误差精度;
F2、若所述参考误差小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
F3、若所述参考误差大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
其中,预设误差精度通过经验值或历史数据设定,例如可以是1CM,当然还可以是其他数值。
若判断出确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致,则可以通过调整虚拟角色的臂长系数,以使得述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致。
一种可能的调整臂长系数的方法可以为:
假设目标用户右手上臂穿戴的体感控制器为A,右手下臂穿戴的体感控制器为B,左手上臂穿戴的体感控制器为C,左手下臂穿戴的体感控制器为D;
虚拟角色的体感控制器模块映射对应的虚拟运动方块为a,b,c,d;
AB为目标用户人手的实际长度,B模块的x轴方向为右手末端的方向向量(方向向量的确定方法).
ab为虚拟角色中体感控制器模块A,B映射长度,有AB=ab;
CD为目标用户人手的实际长度,D模块的x轴方向为左手末端的方向向量(方向向量的确定方法).
cd为虚拟角色体感控制器模块C,D映射长度,有CD=cd;
假设虚拟角色的右臂长度为R,左臂长度为L,则有系数x使得:
ab*x=R
cd*x=L
其中,x为臂长系数。
在一个可能的实现方式中,另一种所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致的方法包括:
G1、判断所述虚拟角色手臂起点与手部末端点之间的方向向量与所述目标用户的手部末端点与手部末端点之间的方向向量之间的参考偏差角是否小于预设误差精度;
G2、若所述参考偏差角小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
G3、若所述参考偏差角大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
其中,预设误差精度可以通过经验值或历史数据设定,具体可以为1度等。
在一个可能的实现方式中,一种可能的判断虚拟角色是否满足完全仿真控制条件的方法包括:
判断虚拟角色的关节数、自由度是否与目标用户一致;
若不一致,则不满足完全仿真控制条件;若一致,则满足完全仿真控制条件。
当不满足完全仿真控制条件时,则可以则通过末端节点算法确定出,距离最近的点进行跟随仿真。
如下所示,末端节点算法可以为:
目标用户关节数与虚拟角色不一致的情况,采用模拟跟随算法,具体实现:
当雅可比矩阵被用在机械臂&动力学&铰链结构时,此时输入的向量xi就变成了此时各个关节的对应值,而输出向量yi就变成了终端关节的位置与朝向:
Y=[px py pz αx αy αz]T
向量V就代表终端骨节的线速度和角速度,而且对应的线速度和角速度都与其当前的位置和朝向和目标位置相关。这些速度都是三维空间的,因此每个向量都有x,y,z的元素。
V=[vx vy vz ωx ωy ωz],
而θ指代的是各个关节的角度,在上面的方程中,是未知的。
Figure BDA0002573955180000201
J为雅可比矩阵,指代的就是在当前的姿态下,各个关节的变化导致的终端骨节的变化的矩阵。
Figure BDA0002573955180000202
在这种情况下,雅可比矩阵实际上真正要表述的是各个关节的角度变化率θ与终端关节的位置朝向Y的关系如下:
Figure BDA0002573955180000203
从而可以推导出:
Figure BDA0002573955180000211
通过上述公式求解出各个关节的角度,以实现末端节点跟随算法。
一个可能的示例中,由于虚拟角色在运动的过程中可能会由于误差,而导致运动的运动姿势与目标用户运动的运动姿势出现不同的情况,从而需要对虚拟角色的运动进行适当的调整,一种可能的对姿势进行调节的方法包括步骤H1-H3,具体如下:
H1、获取所述虚拟角色的目标运动姿势;
其中,获取虚拟角色的目标运动姿势的方法可以包括步骤H11-H13,具体如下:
H11、获取虚拟角色运动时的多张运动图像;
在对虚拟角色的多张运动图像中的一张运动图像进行采集时,对运动图像进行采集时,可以通过虚拟摄像头进行采集,可以采集多个不同波段中的运动图像,从而得到一个包括多个波段下的运动图像的图像序列。多个不同波段可以表示为n个波段,即,第一波段至第n波段,n为正整数,其中,不同波段可以理解为,将一个固定波段均分成多个子波段,从而得到多个不同的波段,例如,400-600微米波段,将该波段均分为10个波段,则可得到10个子波段。
可选的,在采集得到多个波段中的运动图像后,对运动图像进行融合,具体可以为:
可选的,以运动图像的左下角为坐标原点,运动图像的长边所在方向为x轴,运动图像的短边所在方向为y轴建立直角坐标系,从而得到每个像素点的坐标。然后运动图像进行轮廓标记,对运动图像进行轮廓标记的方法,可以根据像素点的灰度值进行标记,当像素点的灰度值处于预设灰度值区间,则将该像素点点标记为虚拟角色的像素点,预设灰度值区间根据经验值设定或根据历史数据进行设定。
可选的,根据标记结果,对运动图像进行融合的方法可以为:提取相同坐标的像素点的标记结果,若相同像素点的坐标的标记结果为虚拟角色像素点大于或等于预设个数,则将该点判定为虚拟角色的像素点,若相同像素点的坐标的标记结果为虚拟角色素点低于预设个数,则将该点判定为背景图像的像素点;根据虚拟角色的像素点得到运动图像。预设个数根据经验值设定或根据历史数据进行设定。
通过采集多个波段中的人脸图像,然后对多个波段中的人脸图像进行融合,得到人脸图像,由于不同波段对不同的颜色的事物进行成像的结果不同,则不同波段的成像结果,能够更好反映出人脸的特征,从而采用多波段人脸图像融合的方式得到人脸图像,能够一定程度上提升获取人脸图像时的准确性。
H12、对所述多张运动图像进行识别,得到所述多张运动图像中每张运动图像中虚拟角色的运动姿势;
可选的,可以对运动图像进行特征提取,并根据体征提取的结果得到虚拟角色的运动姿势,其中,对运动图像进行特征提取可以采用如下算法中的至少一种进行提取:LBP(Local Binary Patterns,局部二值模式)特征提取算法、HOG(Histogram of OrientedGradient,方向梯度直方图)特征提取算法、LoG(Laplacian of Gaussian,二阶拉普拉斯-高斯)特征提取算法等等,在此不做限定。可以根据预设的特征点与运动姿势之间的映射关系,得到虚拟角色的运动姿势,该映射关系可以由系统中预先存储。
H13、根据所述每张运动图像中虚拟角色的运动姿势,确定出虚拟角色的目标运动姿势。
可选的,目标运动姿势可以包括一个时间段之内的运动姿势,则可以将每张运动图像中的虚拟角色的运动姿势按照时间的顺序进行排序,得到目标运动姿势。
H2、若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
其中,根据目标用户的姿势和参考运动姿势确定出姿势调整参数可以通过神经网络模型进行确定,神经网络模型可以通过如下方式训练得到,对神经网络模型进行训练时可以包括正向训练和反向训练,神经网络模型可以包括N层神经网络,在训练时,可以将样本数据输入到该N层神经网络的第一层,通过第一层进行正向运算后得到第一运算结果,然后将第一运算结果输入到第二层进行正向运算,得到第二结果,以此,直至第N-1结果输入到第N层进行正向运算,得到第N运算结果,在对第N运算结果执行反向训练,以此重复执行正向训练和反向训练,直至神经网络模型训练完成。样本数据为目标运动姿势、参考运动姿势和姿势调整参数。
H3、生成姿势调整指令,以及将所述姿势调整指令发送到所述虚拟角色,所述姿势调整指令携带所述姿势调整参数。
请参阅图3,图3为本申请实施例提供了另一种虚拟角色控制方法的流程示意图。如图3所示,控制方法包括步骤301-307,具体如下:
301、获取目标用户的参考运动参数;
其中,所述参考运动参数包括脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC,虚拟角色包括上臂、下臂和运动装置
302、根据所述脊柱旋转四元数QA,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数QB,确定出上臂投影平面的第二坐标系;
303、根据所述上臂旋转四元数QB,在所述第一坐标系中确定出所述上臂的方向向量VU,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量VD;
304、获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3、以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4;
305、获取所述虚拟角色中的运动装置的运动参数;
306、根据所述B1、B2、B3、B4和所述运动装置的运动参数,确定出所述虚拟角色的第一运动参数;
307、根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作。
本示例中,通过采集目标用户的脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC,并生成对应的方向向量VU和VD,进而得到虚拟角色的运动参数,未采用复杂的算法以及模糊性推理射到机器人关节角用于控制虚拟角色,能够直接从目标用户的运动参数计算出虚拟角色的运动参数,因此能够一定程度上减少计算时的计算量,进而能够一定程度上减少对虚拟角色控制时的时延。
请参阅图4,图4为本申请实施例提供了另一种虚拟角色控制方法的流程示意图。如图4所示,控制方法包括步骤401-406,具体如下:
401、获取目标用户的参考运动参数;
402、根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数;
403、根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作;
404、获取所述虚拟角色的目标运动姿势;
405、若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
406、生成姿势调整指令,以及将所述姿势调整指令发送到所述虚拟角色,所述姿势调整指令携带所述姿势调整参数。
本示例中,在虚拟角色运动的过程中,可以通过姿势来判别虚拟角色与目标用户之间的姿势是否一致,若不一致,则对虚拟角色的运动进行调整,从而能够一定程度上提升虚拟角色运动时的准确性。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图5,图5为本申请实施例提供了一种虚拟角色控制装置的结构示意图。如图5所示,所述装置包括获取单元501、确定单元502和控制单元503,其中,
所述获取单元501,用于获取目标用户的参考运动参数;
所述确定单元502,用于根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数;
所述控制单元503,用于根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作;
所述获取单元501,还用于获取所述目标动作下所述虚拟角色的相对位置参数;
所述确定单元502,还用于根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,在所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元502用于:
根据所述参考腿部运动参数确定出,所述目标用户的腿部与地面之间的参考最大距离值;
获取目标障碍物的参考高度,所述目标障碍物为阻挡所述虚拟机器向前移动的物体;
若所述参考最大距离值小于所述参考高度,则根据所述参考高度确定出所述高度修正系数;
将所述参考最大距离值乘以所述高度修正系数,以得到目标最大距离值;
根据所述参考腿部运动参数和所述目标最大距离值,确定出所述目标腿部运动参数。
可选的,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,在所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元502用于:
根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;
获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;
若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;
根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数。
可选的,在所述根据所述参考跨度值确定出目标最大跨度值方面,所述确定单元502用于:
获取所述虚拟角色前腿与所述目标沟壑第一边界之间的第一距离值;
若所述第一距离值小于第二预设距离值,则获取第二目标距离值,所述第二目标距离值为所述第一目标距离值与所述第一距离值之间的差值,所述第二预设距离值小于所述第一预设距离值;
将所述参考跨度值与所述第二目标距离值的二分之一之间的差值作为所述目标最大跨度值。
可选的,在所述获取目标用户的参考运动参数方面,所述获取单元502用于:
获取所述目标用户的运动视频,以及确定所述目标用户的多个运动特征点;
根据所述运动视频中的多帧图像,确定出所述多个运动特征点中的每个运动特征点的运动曲线;
根据所述每个运动特征点的运动曲线确定出所述目标用户的参考运动参数。
可选的,所述相对位置参数包括手部末端与身体的相对位置参数,所述装置还用于:
确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致;
在所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致方面,所述装置具体用于:
判断所述虚拟角色手部末端点与手臂起点之间的距离与所述目标用户的手部末端点与手臂起点之间的距离之间的参考误差是否小于预设误差精度;
若所述参考误差小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
若所述参考误差大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
可选的,所述相对位置参数包括手部末端与身体的相对位置参数,所述装置还用于:
确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致;
在所述确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数是否一致方面,所述装置具体用于:
判断所述虚拟角色手臂起点与手部末端点之间的方向向量与所述目标用户的手部末端点与手部末端点之间的方向向量之间的参考偏差角是否小于预设误差精度;
若所述参考偏差角小于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数一致;
若所述参考偏差角大于所述预设误差精度,则确定所述虚拟角色的相随位置参数与所述目标用户的相对位置参数不一致。
可选的,所述参考运动参数包括脊柱旋转四元数QA、上臂旋转四元数QB和下臂旋转四元数QC。
虚拟角色,所述虚拟角色包括上臂、下臂和运动装置,在所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元502用于:
根据所述脊柱旋转四元数QA,确定出上臂投影平面的第一坐标系,以及根据所述上臂旋转四元数QB,确定出上臂投影平面的第二坐标系;
根据所述上臂旋转四元数QB,在所述第一坐标系中确定出所述上臂的方向向量VU,以及根据所述下臂旋转四元数,在所述第二坐标系中确定出所述下臂的方向向量VD;
获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3、以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4;
获取所述虚拟角色中的运动装置的运动参数;
根据所述B1、B2、B3、B4和所述运动装置的运动参数,确定出所述虚拟角色的运动参数。
可选的,在所述获取所述上臂的方向向量VU在所述第一坐标系的X轴方向上的投影B1、所述上臂的方向向量VU在所述第一坐标系的在Y轴方向上的投影B2、所述下臂的方向向量VD在所述第二坐标系的X轴方向上的投影B3以及所述下臂的方向向量VD在所述第二坐标系的在Y轴方向上的投影B4方面,所述确定单元502用于:
通过预设的公式获取B1、B2、B3和B4,具体如下:
Figure BDA0002573955180000281
Figure BDA0002573955180000282
Figure BDA0002573955180000283
Figure BDA0002573955180000284
其中,arccos()为反余弦函数,
Figure BDA0002573955180000285
为单位向量(1,0,0),/>
Figure BDA0002573955180000286
为单位向量(0,1,0),/>
Figure BDA0002573955180000287
为第一坐标系的x轴,/>
Figure BDA0002573955180000288
为第一坐标系的y轴,Qa为脊柱旋转四元数QA,/>
Figure BDA0002573955180000289
为第二坐标系的x轴,/>
Figure BDA00025739551800002810
为第二坐标系的y轴,Qb为上臂旋转四元数QB,Vu为上臂的方向向量VU,Vd为下臂的方向向量VD,/>
Figure BDA00025739551800002811
Figure BDA00025739551800002812
可选的,所述虚拟角色控制装置还用于:
获取所述虚拟角色的目标运动姿势;
若所述目标运动姿势与所述目标用户的参考运动姿势不同,则根据所述目标运动姿势和所述参考运动姿势生成姿势调整参数;
生成姿势调整指令,以及将所述姿势调整指令发送到所述虚拟角色,所述姿势调整指令携带所述姿势调整参数。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种虚拟角色控制方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种虚拟角色控制方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种虚拟角色控制方法,其特征在于,所述方法包括:
获取目标用户的参考运动参数;
根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,其中,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数;
根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作;
获取所述目标动作下所述虚拟角色的相对位置参数;
根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数;
其中,所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,包括:根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数。
2.根据权利要求1所述的方法,其特征在于,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,包括:
根据所述参考腿部运动参数确定出,所述目标用户的腿部与地面之间的参考最大距离值;
获取目标障碍物的参考高度,所述目标障碍物为阻挡虚拟机器向前移动的物体;
若所述参考最大距离值小于所述参考高度,则根据所述参考高度确定出高度修正系数;
将所述参考最大距离值乘以所述高度修正系数,以得到目标最大距离值;
根据所述参考腿部运动参数和所述目标最大距离值,确定出所述目标腿部运动参数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述参考跨度值确定出目标最大跨度值,包括:
获取所述虚拟角色前腿与所述目标沟壑第一边界之间的第一距离值;
若所述第一距离值小于第二预设距离值,则获取第二目标距离值,所述第二目标距离值为所述第一目标距离值与所述第一距离值之间的差值,所述第二预设距离值小于所述第一预设距离值;
将所述参考跨度值与所述第二目标距离值的二分之一之间的差值作为所述目标最大跨度值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述相对位置参数包括手部末端与身体的相对位置参数,所述方法还包括:
确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数是否一致;
所述确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数是否一致,包括:
判断所述虚拟角色手部末端点与手臂起点之间的距离与所述目标用户的手部末端点与手臂起点之间的距离之间的参考误差是否小于预设误差精度;
若所述参考误差小于所述预设误差精度,则确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数一致;
若所述参考误差大于所述预设误差精度,则确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数不一致。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述相对位置参数包括手部末端与身体的相对位置参数,所述方法还包括:
确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数是否一致;
所述确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数是否一致,包括:
判断所述虚拟角色手臂起点与手部末端点之间的方向向量与所述目标用户的手部末端点与手臂起点之间的方向向量之间的参考偏差角是否小于预设误差精度;
若所述参考偏差角小于所述预设误差精度,则确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数一致;
若所述参考偏差角大于所述预设误差精度,则确定所述虚拟角色的相对位置参数与所述目标用户的相对位置参数不一致。
6.一种虚拟角色控制装置,其特征在于,所述装置包括获取单元、确定单元和控制单元,其中,
所述获取单元,用于获取目标用户的参考运动参数;
所述确定单元,用于根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,其中,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数;其中,所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数,包括:根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数;
所述控制单元,用于根据所述第一运动参数对所述虚拟角色进行控制,以得到目标动作;
所述获取单元,还用于获取所述目标动作下所述虚拟角色的相对位置参数;
所述确定单元,还用于根据所述相对位置参数和所述第一运动参数,确定所述虚拟角色的第二运动参数。
7.根据权利要求6所述的装置,其特征在于,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,在所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元用于:
根据所述参考腿部运动参数确定出,所述目标用户的腿部与地面之间的参考最大距离值;
获取目标障碍物的参考高度,所述目标障碍物为阻挡虚拟机器向前移动的物体;
若所述参考最大距离值小于所述参考高度,则根据所述参考高度确定出高度修正系数;
将所述参考最大距离值乘以所述高度修正系数,以得到目标最大距离值;
根据所述参考腿部运动参数和所述目标最大距离值,确定出所述目标腿部运动参数。
8.根据权利要求6所述的装置,其特征在于,所述参考运动参数包括参考腿部运动参数,所述第一运动参数包括目标腿部运动参数,在所述根据所述参考运动参数,采用预设的运动参数确定方法,确定出虚拟角色的第一运动参数方面,所述确定单元用于:
根据所述参考腿部运动参数确定出所述目标用户的双脚之间参考最大跨度值;
获取目标沟壑的参考跨度值,所述目标沟壑为在所述虚拟角色向前移动时遇到的沟壑;
若第一目标距离值大于第一预设距离值,则根据所述参考跨度值确定出目标最大跨度值,所述第一目标距离值为所述参考最大跨度值与所述参考跨度值之间的差值;
根据所述目标最大跨度值和所述参考腿部运动参数,确定出所述目标腿部运动参数。
9.根据权利要求8所述的装置,其特征在于,在所述根据所述参考跨度值确定出目标最大跨度值方面,所述确定单元用于:
获取所述虚拟角色前腿与所述目标沟壑第一边界之间的第一距离值;
若所述第一距离值小于第二预设距离值,则获取第二目标距离值,所述第二目标距离值为所述第一目标距离值与所述第一距离值之间的差值,所述第二预设距离值小于所述第一预设距离值;
将所述参考跨度值与所述第二目标距离值的二分之一之间的差值作为所述目标最大跨度值。
CN202010648274.7A 2019-07-10 2020-07-07 虚拟角色控制方法及装置 Active CN111857367B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019106215870 2019-07-10
CN201910621587 2019-07-10

Publications (2)

Publication Number Publication Date
CN111857367A CN111857367A (zh) 2020-10-30
CN111857367B true CN111857367B (zh) 2023-06-27

Family

ID=73153704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010648274.7A Active CN111857367B (zh) 2019-07-10 2020-07-07 虚拟角色控制方法及装置

Country Status (2)

Country Link
CN (1) CN111857367B (zh)
WO (1) WO2021004507A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147658A (zh) * 2011-02-12 2011-08-10 华为终端有限公司 实现扩增实境互动的方法、扩增实境互动装置及移动终端
WO2017012361A1 (zh) * 2015-07-22 2017-01-26 深圳多新哆技术有限责任公司 调整虚拟物件在虚拟空间中位置的方法及装置
WO2017172982A1 (en) * 2016-03-31 2017-10-05 Magic Leap, Inc. Interactions with 3d virtual objects using poses and multiple-dof controllers
CN109801350A (zh) * 2019-01-24 2019-05-24 湖南深度体验智能技术有限公司 一种基于示例动画的人物运动模拟方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223786B1 (en) * 2011-03-15 2015-12-29 Motion Reality, Inc. Communication in a sensory immersive motion capture simulation environment
CN105630169A (zh) * 2015-12-25 2016-06-01 北京像素软件科技股份有限公司 一种体感输入方法及装置
KR20190110539A (ko) * 2016-12-13 2019-09-30 딥모션, 인크. 솔버용의 다수의 힘 어레이를 사용한 향상된 가상 현실 시스템
CN107589840A (zh) * 2017-08-31 2018-01-16 维沃移动通信有限公司 一种虚拟角色的模拟方法及智能终端
CN107930085A (zh) * 2017-12-22 2018-04-20 武汉市龙五物联网络科技有限公司 一种带有娱乐交互系统的多功能健身设备
CN107930087A (zh) * 2017-12-22 2018-04-20 武汉市龙五物联网络科技有限公司 一种基于物联网的健身仪共享辅助设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147658A (zh) * 2011-02-12 2011-08-10 华为终端有限公司 实现扩增实境互动的方法、扩增实境互动装置及移动终端
WO2017012361A1 (zh) * 2015-07-22 2017-01-26 深圳多新哆技术有限责任公司 调整虚拟物件在虚拟空间中位置的方法及装置
WO2017172982A1 (en) * 2016-03-31 2017-10-05 Magic Leap, Inc. Interactions with 3d virtual objects using poses and multiple-dof controllers
CN109801350A (zh) * 2019-01-24 2019-05-24 湖南深度体验智能技术有限公司 一种基于示例动画的人物运动模拟方法

Also Published As

Publication number Publication date
WO2021004507A1 (zh) 2021-01-14
CN111857367A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
US20190206073A1 (en) Aircraft information acquisition method, apparatus and device
KR101791590B1 (ko) 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법
CN111402290A (zh) 一种基于骨骼关键点的动作还原方法以及装置
CN109671120A (zh) 一种基于轮式编码器的单目slam初始化方法及系统
CN109063584B (zh) 基于级联回归的面部特征点定位方法、装置、设备及介质
CN106504275B (zh) 一种惯性定位与点云配准耦合互补的实时三维重建方法
CN106625673A (zh) 狭小空间装配系统及装配方法
CN108780577A (zh) 图像处理方法和设备
Jain et al. From pixels to legs: Hierarchical learning of quadruped locomotion
CN112639874A (zh) 目标跟随方法、目标跟随装置、可移动设备和存储介质
JP2003271975A (ja) 平面抽出方法、その装置、そのプログラム、その記録媒体及び平面抽出装置搭載型ロボット装置
CN116097307A (zh) 图像的处理方法及相关设备
CN109531578B (zh) 仿人机械手臂体感控制方法及装置
WO2022227664A1 (zh) 机器人姿态的控制方法、机器人、存储介质及计算机程序
CN107121128A (zh) 一种足式机器人地形参数的测量方法及系统
CN113886510A (zh) 一种终端交互方法、装置、设备及存储介质
CN113984068A (zh) 定位方法、定位装置和计算机可读存储介质
CN111857367B (zh) 虚拟角色控制方法及装置
CN103679712A (zh) 人体姿态估计方法及系统
CN111339969B (zh) 人体姿势估计方法、装置、设备及存储介质
CN109993108B (zh) 一种增强现实环境下的手势纠错方法、系统及装置
US20230067081A1 (en) System and method for real-time creation and execution of a human Digital Twin
CN113221729B (zh) 一种基于手势人机交互的无人机集群控制方法及系统
CN109754412B (zh) 目标跟踪方法、目标跟踪装置及计算机可读存储介质
JP2022011821A (ja) 情報処理装置、情報処理方法、移動ロボット

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