本发明属于虚拟现实及人机交互技术领域,尤其涉及一种语义驱动的混合现实场景下的虚拟宠物行为生成方法。
背景技术:
随着增强现实和混合现实技术的发展,虚拟宠物成为替代真实宠物的一种途径出现在人们的生活中。在与虚拟宠物的互动中,用户可以得到与真实宠物互动相似的愉悦感,又可以避免喂养真实宠物的麻烦。混合现实场景下的虚拟宠物可以让用户与虚拟宠物进行具有真实体验感的交互。
近年来,随着混合现实技术的发展,用户对虚拟宠物交互体验的期望越来越高。在混合现实环境中,高沉浸感的特点给虚拟宠物系统带来了新的挑战,要求虚拟宠物的行为更具真实感。
基于位置的移动虚拟宠物系统及其方法是目前为数不多的使用基于场景语义进行宠物行为生成的方法。该方法通过给虚拟宠物赋予现实世界中的位置,来进行虚拟宠物与用户的互动。基于位置的虚拟宠物系统在服务器上运行,通过网络连接到多个移动设备。虚拟宠物系统的客户端部署在可定位的移动通讯设备上,虚拟宠物系统定位用户的移动设备位置,根据启发式规则生成虚拟宠物在对应位置上应有的行为。但该方案仅仅使用了移动设备所在的位置信息,没有提取真实场景的语义信息;对于虚拟宠物的行为生成使用了关于虚拟宠物位置的启发式规则,这导致所生成的虚拟宠物行为缺乏细节、不够自然。
由此可见,目前的混合现实场景下的虚拟宠物行为生成方法没有考虑场景的语义,所生成的虚拟宠物的行为不能反映真实宠物的行为模式,使得用户的交互体验不够自然。具体为:
1)所生成的虚拟宠物的行为序列不够自然。很多虚拟宠物行为生成方法通过生成固定的行为序列来手动定义宠物行为。例如,虚拟的小猫总是在吃完饭后睡觉。这些固定的行为序列通常是重复和单调的。还有一些方法是生成一些随机的行为序列,而随机生成的行为序列与真实宠物的行为模式存在较大的差别,会导致用户与虚拟宠物的交互体验不够自然。
2)虚拟宠物在真实场景中的行为不够真实。混合现实的关键特征是将虚拟世界与现实世界融合在一起。在现有的应用中,例如holopet,虚拟宠物通常被直接放置在用户面前,而没有考虑真实场景的情况。虚拟宠物可能会漂浮在空中,导致用户体验的不自然。另一种方式是将虚拟宠物放置在用户指定的表面上。在不考虑真实场景中周围环境语义的情况下,虚拟宠物被限制在指定的区域内行动,使得用户无法像与真实宠物交互那样进行灵活自然的交互。
技术实现要素:
为解决上述问题,本发明提供一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,可以生成与真实宠物行为模式一致的虚拟宠物行为序列,使得虚拟宠物在真实场景中的行为更加真实,用户体验更好。
一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,应用于混合现实头戴式显示器,所述方法包括以下步骤:
s1:使用训练好的宠物行为模型生成虚拟宠物的行为序列s={s1,s2,…,sn…,sn},其中,n=1,2,…,n,n为设定的行为数量,且s1~sn为虚拟宠物可能发生的各个行为;
s2:采用maskr-cnn法从待生成虚拟宠物的真实场景二维图像中检测并分割出相关物体,并将相关物体的数量记为i,其中,所述相关物体为虚拟宠物各行为可能的发生位置,且虚拟宠物的每一个行为均至少对应一个相关物体,同时,所述真实场景二维图像由混合现实头戴式显示器内置的相机拍摄得到;
s3:利用投影矩阵法将真实场景二维图像转换为混合现实头戴式显示器坐标系下的三维场景,得到相关物体的三维坐标;
s4:将三维场景中各相关物体的表面进行网格划分,然后分别将行为序列s中的各行为作为当前行为执行位置获取操作,得到行为序列s中各行为的发生位置序列l={l1,l2,…,ln,…,ln},其中,ln为行为sn对应的最终发生位置,且所述位置获取操作包括以下步骤:
s41:获取当前行为sn发生在各个相关物体上的先验概率:
其中,θn(i)为第n个行为sn发生在第i个相关物体上先验概率,i=1,2,…,i,fn(i)为第n个行为sn在第i个相关物体上发生的频率,o0为虚拟宠物的当前位置,oi是第i个相关物体的位置,d(o0,oi)为虚拟宠物与第i个相关物体之间的欧氏距离,dmax为真实场景中各相关物体之间的最大距离;
s42:将当前行为发生在各个相关物体上的先验概率进行归一化,然后按照归一化后的先验概率将区间[0,1]划分为多个子区间,且每个子区间对应一个相关物体;
s43:获取一个随机数,然后将该随机数落入的子区间对应的相关物体作为当前行为的最终发生物体;
s44:在最终发生物体上随机选取一个网格单元,作为当前行为的最终发生位置,并将该网格单元的三维坐标记为ln;
s5:以最小的路径成本获取发生位置序列l中任意两个相邻的最终发生位置ln与ln+1之间的路径,使得虚拟宠物在位置ln完成行为sn后再移动到位置ln+1完成行为sn+1,实现虚拟宠物的行为生成。
进一步地,步骤s1中所述宠物行为模型的训练方法为:
s11:通过在真实环境中安装的摄像机拍摄真实宠物的日常行为,得到真实宠物的真实行为数据;
s12:根据所述真实行为数据构建真实宠物的行为序列,其中,所述真实宠物的行为序列表示真实宠物发生的不同类别行为的顺序;
s13:以真实宠物的行为序列作为输入,真实宠物的行为序列中最后一个行为的下一个行为作为输出对长短时记忆网络进行训练,得到宠物行为模型。
进一步地,所述虚拟宠物的行为序列s={s1,s2,…,sn…,sn}的生成方法为:
将随机获取的一个初始行为序列输入训练好的宠物行为模型中,输出初始行为序列中最后一个行为的下一个行为s1;
剔除初始行为序列中的第一个行为,并将行为s1作为初始行为序列的最后一个行为,完成行为序列的更新;将更新后的行为序列输入训练好的宠物行为模型中得到行为s2;以此类推,直到输出行为sn,得到虚拟宠物的行为序列s。
进一步地,步骤s5中所述以最小的路径成本获取发生位置序列l中任意两个相邻的最终发生位置ln与ln+1之间的路径具体为:
s51:将位置ln所在的网格单元及其邻域内的八个网格单元加入网格备选集中,并将八个网格单元的父节点记为位置ln所在的网格单元;然后将位置ln所在的网格单元从网格备选集中删除,加入网格已选集中;
s52:将位置ln所在的网格单元作为中心网格单元,然后分别获取网格备选集中各网格单元的成本ctotal(m):
ctotal(m)=λgcg(m)+λscs(m)+λhch(m)
cg(m)=λ1ht(m)+λ2hc(m)
其中,λg、λs以及λh为设定权重,cg(m)为网格单元m的几何成本,cs(m)为中心网格单元到网格单元m的路径成本,ch(m)为网格单元m到位置ln+1所在的网格单元的路径成本,ht(m)为网格单元m的高度,hc(m)为中心网格单元邻域内的八个网格单元的平均高度,λ1和λ2为设定权重;
s53:获取网格备选集中成本ctotal(m)最小的网格单元gmin1邻域内的八个网格单元,然后将本步骤得到的八个网格单元中既不属于网格备选集又不属于网格已选集的网格单元加入网格备选集中,完成网格备选集的更新;然后将网格单元gmin1作为新加入的网格单元的父节点,同时将网格单元gmin1从网格备选集中删除,加入网格已选集中,完成网格已选集的更新;
s54:判断网格单元gmin1邻域内的八个网格单元是否包括位置ln+1所在的网格单元,若包括,则进入步骤s55;若不包括,则分别将更新后的网格已选集中的网格单元作为中心网格单元,重复步骤s52~s53,完成网格备选集和网格已选集的再次更新;以此类推,不断重复步骤s52~s53,直到位置ln+1所在的网格单元出现在某个中心网格单元邻域内;
s55:获取位置ln+1所在的网格单元的父节点后,再获取父节点的父节点,以此类推,直到得到位置ln所在的网格单元,进而得到位置ln到位置ln+1的路径。
有益效果:
本发明提供一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,首先通过数据驱动的方法,采集真实宠物的行为序列,基于采集的行为序列,采用机器学习的方法,建立真实宠物的行为模型;相比于现有技术中的宠物行为模型、手工建立的固定模型或是采用随机生成行为的方法,本发明可以更好地模拟真实宠物的行为,提高了所产生的虚拟宠物行为的真实性;其次,本发明以现实世界中的场景作为输入,以计算机视觉的方法识别场景的语义信息和几何信息,并在此基础上生成宠物行为,相比于现有技术对场景的语义信息使用不够全面,只能在固定位置作一些交互,例如只能根据宠物在无线网络上的位置标签生成宠物行为,本发明可以让虚拟宠物更好的和场景相结合,使虚拟宠物更加智能。
附图说明
图1为本发明提供的一种语义驱动的混合现实场景下的虚拟宠物行为生成方法的流程图;
图2为本发明提供的语义驱动的虚拟宠物行为生成方法的原理框图;
图3(a)为本发明提供的虚拟宠物行为模型的训练过程示意图;
图3(b)为本发明提供的虚拟宠物行为模型的生成过程示意图;
图4(a)为本发明采用hololens头盔扫描的场景的3d重建示意图;
图4(b)为本发明提供的语义驱动的虚拟宠物行为生成方法在真实场景中检测到的相关物体示意图;
图5为本发明提供的网格备选集生成示意图;
图6为本发明提供的网格备选集第一次拓展示意图;
图7为本发明提供的网格备选集第二次拓展示意图
图8为本发明提供的网格备选集第三次拓展示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1和图2所示,一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,应用于混合现实头戴式显示器,所述方法包括以下步骤:
s1:使用训练好的宠物行为模型生成虚拟宠物的行为序列s={s1,s2,…,sn…,sn},其中,n=1,2,…,n,n为设定的行为数量,且s1~sn为虚拟宠物可能发生的各个行为。
需要说明的是,宠物行为模型的获取过程属于离线训练阶段;离线训练阶段采用数据驱动的方式,从真实宠物的行为数据出发,建立宠物行为模型;具体的,所述宠物行为模型的训练方法包括以下步骤:
s11:通过在真实环境,例如公寓的各个房间中安装的摄像机拍摄真实宠物,例如猫的日常行为,得到真实宠物的真实行为数据。
s12:根据所述真实行为数据构建真实宠物的行为序列,其中,所述真实宠物的行为序列表示真实宠物发生的不同类别行为的顺序。
也就是说,步骤s12对宠物行为数据进行人工标注,得到宠物的行为序列,例如{吃饭,睡觉,散步…};同时,还可以对真实场景中的相关物体进行标注,例如沙发,床,桌子等。
s13:以真实宠物的行为序列作为输入,真实宠物的行为序列中最后一个行为的下一个行为作为输出对长短时记忆网络进行训练,得到宠物行为模型。
需要说明的是,本发明采用长短时记忆网络(lstm),来学习宠物的行为模型。在学习过程中,输入的是宠物的行为序列(前序行为),序列中的每个行为由一个独热编码向量(one-hotvector)表示。向量中的每个元素都是一个二进制值,每一列的类别是固定的,因此可以用1表示属于当前类别,用0表示不属于当前类别。例如,如果第i个元素为1,则该行为属于第i个类别。数据集中的行为序列被分成若干片段,每个片段包含若干个行为。然后将这些片段送入lstm网络中进行训练。
图3(a)展示了训练过程。使用两层lstm结构,每个结构由512个隐藏单元组成;网络的权重是迭代更新的。通过学习得到一个能够生成宠物行为序列的lstm模型;此时,还可以统计宠物每种行为发生在某个物体处的概率,得到行为物体关联模型,例如睡觉行为有60%的概率发生在床上,有40%的概率发生在沙发上等。
进一步地,使用训练好宠物行为模型生成宠物的行为序列属于在线行为生成阶段;在线行为生成阶段指的是通过真实场景的语义信息,使用训练得到的宠物行为模型和行为物体关联模型来生成虚拟宠物在真实场景中的行为;如图3(b)所示,将一个随机的行为输入到训练好的lstm网络中,根据所有行为的概率分布从softmax层采样,输出一个行为,而不是使用概率最高的行为作为输出,以保证所生成行为序列的多样性。然后将当前采样的行为和softmax之前的层作为输入,生成下一个行为;通过迭代,得到行为序列s={s1,s2,…,sn…,sn}。
具体的,虚拟宠物的行为序列s={s1,s2,…,sn…,sn}的生成方法包括以下步骤:
将随机获取的一个初始行为序列输入训练好的宠物行为模型中,输出初始行为序列中最后一个行为的下一个行为s1;
剔除初始行为序列中的第一个行为,并将行为s1作为初始行为序列的最后一个行为,完成行为序列的更新;将更新后的行为序列输入训练好的宠物行为模型中得到行为s2;以此类推,直到输出行为sn,得到虚拟宠物的行为序列s。
使用训练好宠物行为模型生成宠物的行为序列后,应用三维重构和物体检测的方法来获取物体在场景中的位置(几何)信息和内容(语义)信息;其中,几何信息使用hololens的空间映射技术获取场景的三维模型;对于每个房间,扫描并重建其三维模型;场景几何体由一组密集的三角形网格表示,如图4(a)所示;语义信息通在场景中检测所有可能发生行为的相关物体得到;由于在二维图像上的检测更为稳健和准确,采取如下步骤s2和s3来获取三维场景中相关物体的内容和位置。
s2:采用maskr-cnn法从待生成虚拟宠物的真实场景二维图像中检测并分割出相关物体,并将相关物体的数量记为i,其中,所述相关物体为虚拟宠物各行为可能的发生位置,且虚拟宠物的每一个行为均至少对应一个相关物体,同时,所述真实场景二维图像由混合现实头戴式显示器内置的相机拍摄得到。
也就是说,本发明应用maskr-cnn对hololens相机拍摄的二维图像中的相关物体进行检测和分割;图4(b)为一些物体检测的示例,通过maskr-cnn法可以检测到沙发、桌子、猫砂和食盆,并应用不同色度进行标记。
s3:利用投影矩阵法将真实场景二维图像转换为混合现实头戴式显示器坐标系下的三维场景,得到相关物体的三维坐标。
也就是说,本发明采用horry等人的方法从二维图像中粗略估计相机的参数:根据透视投影原理提取消失点,估计相机参数。有了估计好的参数,在三维场景中设置虚拟摄像机,渲染图像。在渲染的图像中,利用与hololen相机拍摄的二维图像最相似的那幅图像,计算出相关物体在三维场景中的对应位置。然后将二维检测结果映射到三维场景中,得到物体在三维场景中的位置和类别。
需要说明的是,对于行为序列s中的每个行为sn,在真实场景中生成一个对应的位置ln,从而将生成的行为转换到真实场景中;对于场景中的每个相关对象,根据一个行为在那里发生的可能性定义一个先验概率;先验概率由两个约束条件来建模:宠物对执行一种行为的地点的偏好和虚拟宠物当前位置到候选位置的距离,具体参见步骤s4。
s4:将三维场景中各相关物体的表面进行网格划分,然后分别将行为序列s中的各行为作为当前行为执行位置获取操作,得到行为序列s中各行为的发生位置序列l={l1,l2,…,ln,…,ln},其中,ln为行为sn对应的最终发生位置,且所述位置获取操作包括以下步骤:
s41:获取当前行为sn发生在各个相关物体上的先验概率:
其中,θn(i)为第n个行为sn发生在第i个相关物体上先验概率,i=1,2,…,i,fn(i)为第n个行为sn在第i个相关物体上发生的频率,o0为虚拟宠物的当前位置,oi是第i个相关物体的位置,d(o0,oi)为虚拟宠物与第i个相关物体之间的欧氏距离,dmax为真实场景中各相关物体之间的最大距离。
s42:将当前行为发生在各个相关物体上的先验概率进行归一化,然后按照归一化后的先验概率将区间[0,1]划分为多个子区间,且每个子区间对应一个相关物体。
s43:获取一个随机数,然后将该随机数落入的子区间对应的相关物体作为当前行为的最终发生物体。
s44:在最终发生物体上随机选取一个网格单元,作为当前行为的最终发生位置,并将该网格单元的三维坐标记为ln。
由此可见,得到位置序列l后,需要为每两个相邻的位置实例化路径,即虚拟宠物从位置ln到位置ln+1的行走路径,以使虚拟宠物在真实场景中顺利移动;通常情况下,宠物喜欢在空旷的地方行走,而不是在拥挤的地方行走;此外,由于在平坦区域行走花费的能量更少,它们更喜欢在平坦的区域行走,可以使用成本函数建模这些因素,并且用一个改进的a*算法来完成路径规划。
本发明将三维场景的表面网格化,以实现对三维空间的离散化;每个网格的大小为10cm×10cm;从当前位置ln开始,采用a*算法策略,以最小的路径成本找到通往目的地ln+1的路径;每次迭代时,a*算法都会选择一个单元来扩展路径;选择时基于以下三个成本:下一个单元格的几何成本,当前路径的成本,以及将路径一直扩展到目的地所需成本的估计,具体参见步骤s5。
s5:以最小的路径成本获取发生位置序列l中任意两个相邻的最终发生位置ln与ln+1之间的路径,使得虚拟宠物在位置ln完成行为sn后再移动到位置ln+1完成行为sn+1,实现虚拟宠物的行为生成。
需要说明的是,每个行为都对应一个最终发生位置,虚拟宠物到达每一个最终发生位置后,就会进行该最终发生位置对应的行为,完成该行为后,才会前往下一个最终发生位置,进行下一个行为;进一步地,位置ln与ln+1之间的路径获取方法具体为:
s51:将位置ln所在的网格单元及其邻域内的八个网格单元加入网格备选集中,并将八个网格单元的父节点记为位置ln所在的网格单元;然后将位置ln所在的网格单元从网格备选集中删除,加入网格已选集中。
s52:将位置ln所在的网格单元作为中心网格单元,然后分别获取网格备选集中各网格单元的成本ctotal(m):
ctotal(m)=λgcg(m)+λscs(m)+λhch(m)
cg(m)=λ1ht(m)+λ2hc(m)
其中,λg、λs以及λh为设定权重,初始权重可以分别设为0.6,0.2和0.2,cg(m)为网格单元m的几何成本,cs(m)为中心网格单元到网格单元m的路径成本,ch(m)为网格单元m到位置ln+1所在的网格单元的路径成本,ht(m)为网格单元m的高度,hc(m)为中心网格单元邻域内的八个网格单元的平均高度,λ1和λ2为设定权重。
需要说明的是,cs(m)对从起始位置ln到m的路径成本进行建模,ch(m)模拟了从扩展单元m到目的地ln+1的路径成本,几何成本项cg(m)用来使虚拟宠物能够模仿真实宠物的运动;其中,几何成本项cg(m)考虑两个约束条件:(1)真实的宠物通常喜欢花费较少的能量从一个位置移动到另一个位置;例如,如果在一条路径上,宠物必须跳过一些高大的家具才能到达目的地,宠物可能会换到另一条没有高大家具的路径;(2)真正的宠物也喜欢在宽敞的空间里移动,而不是在拥挤的空间里移动以到达目的地。
为了满足这两项考虑,才将几何成本项定义为cg(m)=λ1ht(m)+λ2hc(m),ht(m)对地形进行建模,即单元网格m的高度。它对在路径上虚拟宠物必须越过高的物体这一约束进行惩罚。hc(m)对路径上的拥挤程度进行建模,也就是8个邻域的平均高度。
s53:获取网格备选集中成本ctotal(m)最小的网格单元gmin1邻域内的八个网格单元,然后将本步骤得到的八个网格单元中既不属于网格备选集又不属于网格已选集的网格单元加入网格备选集中,完成网格备选集的更新;然后将网格单元gmin1作为新加入的网格单元的父节点,同时将网格单元gmin1从网格备选集中删除,加入网格已选集中,完成网格已选集的更新。
s54:判断网格单元gmin1邻域内的八个网格单元是否包括位置ln+1所在的网格单元,若包括,则进入步骤s55;若不包括,则分别将更新后的网格已选集中的网格单元作为中心网格单元,重复步骤s52~s53,完成网格备选集和网格已选集的再次更新;以此类推,不断重复步骤s52~s53,直到位置ln+1所在的网格单元出现在某个中心网格单元邻域内。
需要说明的是,此时网格已选集中包含的网格单元为位置ln所在的网格单元与步骤s53中成本ctotal(m)最小的网格单元,然后将这两个网格单元代入步骤s52的公式中,得到第一次更新后的网格备选集各网格单元的成本ctotal(m)。
下面以第二次更新为例,对更新方法进行进一步说明,具体为:
s54a:将第一次更新后的网格已选集中的网格单元分别作为中心网格单元,按照步骤s52获取更新后的网格备选集中各网格单元的成本ctotal(m);
s54b:获取更新后的网格备选集中成本ctotal(m)最小的网格单元gmin2邻域内的八个网格单元,然后将再次得到的八个网格单元中既不属于网格备选集又不属于网格已选集的网格单元加入更新后的网格备选集中,完成网格备选集的二次更新;然后将网格单元gmin2作为再次加入的网格单元的父节点,同时将网格单元gmin2从网格备选集中删除,加入网格已选集中,完成网格已选集的二次更新;
s54c:分别将二次更新后的网格已选集中的网格单元作为中心网格单元,按照步骤s52获取二次更新后的网格备选集各网格单元的成本ctotal(m);以此类推,不断重复步骤s52~s53,直到位置ln+1所在的网格单元出现在某个中心网格单元邻域内;
s55:获取位置ln+1所在的网格单元的父节点后,再获取父节点的父节点,以此类推,直到得到位置ln所在的网格单元,进而得到位置ln到位置ln+1的路径。
需要说明的是,本发明在拓展网格备选集时已经记录了每个网格单元的父节点,获取ln+1所在的网格单元的父节点后,再根据记录中找到此网格单元的父节点;每回溯一个新的网格单元,都去寻找其父节点,以此类推,直到找到位置ln所在的网格单元,所有找到的网格单元的逆序组成了位置ln到位置ln+1的路径。
例如,如图5所示,起始点为5#网格单元,其邻域内的八个网格单元构成的网格备选集为{1#,2#,3#,4#,6#,7#,8#,9#},网格已选集为{5#};从网格备选集{1#,2#,3#,4#,6#,7#,8#,9#}中选出成本ctotal(m)最小的网格单元进行拓展,假设为3#网格单元,如图6所示,拓展出3#网格单元邻域内的八个网格单元14#,15#,16#,17#,18#,3#,5#,6#,然后将既不属于网格备选集又不属于网格已选集的网格单元14#,15#,16#,17#,18#加入网格备选集得到{1#,2#,4#,6#,7#,8#,9#14#,15#,16#,17#,18#},网格已选集为{3#,5#};从网格备选集{1#,2#,4#,6#,7#,8#,9#14#,15#,16#,17#,18#}中选出成本ctotal(m)最小的网格单元进行拓展,假设为1#网格单元,如图7所示,拓展出1#网格单元邻域内的八个网格单元14#,2#,5#,4#,19#,20#,21#,22#,然后将既不属于网格备选集又不属于网格已选集的网格单元19#,20#,21#,22#加入网格备选集得到{2#,4#,6#,7#,8#,9#14#,15#,16#,17#,18#,19#,20#,21#,22#},网格已选集为{1#,3#,5#};同理,从网格备选集{2#,4#,6#,7#,8#,9#14#,15#,16#,17#,18#,19#,20#,21#,22#}中选出成本ctotal(m)最小的网格单元进行拓展,假设为17#网格单元,如图8所示,拓展出17#网格单元邻域内的八个网格单元18#,6#,3#,15#,16#,23#,24#,25#,然后将既不属于网格备选集又不属于网格已选集的网格单元23#,24#,25#加入网格备选集得到{2#,4#,6#,7#,8#,9#14#,15#,16#,18#,19#,20#,21#,22#,23#,24#,25#},网格已选集为{1#,3#,5#,17#};由于终点23#网格单元是由17#网格单元拓展来的,3#网格单元是由5#网格单元拓展来的,因此路劲为5#→3#→17#→23#。
也就是说,本发明使用a*算法选择一条最小路径成本ctotal(m)的路径。a*算法的实现使用一个优先队列来进行最小成本单元的重复选择扩展;这个优先级队列又被称为网格备选集;在算法的每一步,具有最低ctotal(m)值的单元格从队列中移除,其邻域的cs(m)、cg(m)和ch(m)值也相应更新,这些邻域被添加到队列中;算法一直持续到目的单元格的ctotal(ln+1)值低于队列中的任何单元格(或者直到队列为空)。沿着路径的单元格是最终的解决方案,按照这个方案,虚拟宠物可以从ln移动到ln+1。
由此可见,为了克服现有技术中由于采用手工建立的固定模型或随机生成行为的方法所导致的宠物行为序列的丰富性和真实性都相对有限,与真实宠物的行为模式相差较大等缺陷,本发明提供一种更自然、更真实、具有更好用户体验的混合现实场景下的虚拟宠物行为生成方法,可以解决上述的虚拟宠物行为生成方法存在的问题,具体为:
1)对于所生成的虚拟宠物的行为序列不够自然的问题,设计了虚拟宠物行为生成方法,从真实宠物的行为数据中学习宠物的行为模式,建立真实宠物的行为模型,根据所建立的行为模型,可以生成与真实宠物行为模式一致的虚拟宠物行为序列。
2)对于虚拟宠物在真实场景中的行为不够真实的问题,设计了基于真实场景语义的虚拟宠物行为实例化方法,通过计算机视觉的方法识别真实场景的语义,以真实场景来约束虚拟宠物的行为,将所生成的虚拟宠物的行为序列,在真实场景中实例化,生成虚拟宠物在真实场景中的地点序列以地点之间的路径信息,从而使虚拟宠物在真实场景中的行为更加真实。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当然可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
技术特征:
1.一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,应用于混合现实头戴式显示器,其特征在于,所述方法包括以下步骤:
s1:使用训练好的宠物行为模型生成虚拟宠物的行为序列s={s1,s2,...,sn...,sn},其中,n=1,2,...,n,n为设定的行为数量,且s1~sn为虚拟宠物可能发生的各个行为;
s2:采用maskr-cnn法从待生成虚拟宠物的真实场景二维图像中检测并分割出相关物体,并将相关物体的数量记为i,其中,所述相关物体为虚拟宠物各行为可能的发生位置,且虚拟宠物的每一个行为均至少对应一个相关物体,同时,所述真实场景二维图像由混合现实头戴式显示器内置的相机拍摄得到;
s3:利用投影矩阵法将真实场景二维图像转换为混合现实头戴式显示器坐标系下的三维场景,得到相关物体的三维坐标;
s4:将三维场景中各相关物体的表面进行网格划分,然后分别将行为序列s中的各行为作为当前行为执行位置获取操作,得到行为序列s中各行为的发生位置序列l={l1,l2,...,ln,...,ln},其中,ln为行为sn对应的最终发生位置,且所述位置获取操作包括以下步骤:
s41:获取当前行为sn发生在各个相关物体上的先验概率:
其中,θn(i)为第n个行为sn发生在第i个相关物体上先验概率,i=1,2,...,i,fn(i)为第n个行为sn在第i个相关物体上发生的频率,o0为虚拟宠物的当前位置,oi是第i个相关物体的位置,d(o0,oi)为虚拟宠物与第i个相关物体之间的欧氏距离,dmax为真实场景中各相关物体之间的最大距离;
s42:将当前行为发生在各个相关物体上的先验概率进行归一化,然后按照归一化后的先验概率将区间[0,1]划分为多个子区间,且每个子区间对应一个相关物体;
s43:获取一个随机数,然后将该随机数落入的子区间对应的相关物体作为当前行为的最终发生物体;
s44:在最终发生物体上随机选取一个网格单元,作为当前行为的最终发生位置,并将该网格单元的三维坐标记为ln;
s5:以最小的路径成本获取发生位置序列l中任意两个相邻的最终发生位置ln与ln+1之间的路径,使得虚拟宠物在位置ln完成行为sn后再移动到位置ln+1完成行为sn+1,实现虚拟宠物的行为生成。
2.如权利要求1所述的一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,其特征在于,步骤s1中所述宠物行为模型的训练方法为:
s11:通过在真实环境中安装的摄像机拍摄真实宠物的日常行为,得到真实宠物的真实行为数据;
s12:根据所述真实行为数据构建真实宠物的行为序列,其中,所述真实宠物的行为序列表示真实宠物发生的不同类别行为的顺序;
s13:以真实宠物的行为序列作为输入,真实宠物的行为序列中最后一个行为的下一个行为作为输出对长短时记忆网络进行训练,得到宠物行为模型。
3.如权利要求2所述的一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,其特征在于,所述虚拟宠物的行为序列s={s1,s2,...,sn...,sn}的生成方法为:
将随机获取的一个初始行为序列输入训练好的宠物行为模型中,输出初始行为序列中最后一个行为的下一个行为s1;
剔除初始行为序列中的第一个行为,并将行为s1作为初始行为序列的最后一个行为,完成行为序列的更新;将更新后的行为序列输入训练好的宠物行为模型中得到行为s2;以此类推,直到输出行为sn,得到虚拟宠物的行为序列s。
4.如权利要求1所述的一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,其特征在于,步骤s5中所述以最小的路径成本获取发生位置序列l中任意两个相邻的最终发生位置ln与ln+1之间的路径具体为:
s51:将位置ln所在的网格单元及其邻域内的八个网格单元加入网格备选集中,并将八个网格单元的父节点记为位置ln所在的网格单元;然后将位置ln所在的网格单元从网格备选集中删除,加入网格已选集中;
s52:将位置ln所在的网格单元作为中心网格单元,然后分别获取网格备选集中各网格单元的成本ctotal(m):
ctotal(m)=λgcg(m)+λscs(m)+λhch(m)
cg(m)=λ1ht(m)+λ2hc(m)
其中,λg、λs以及λh为设定权重,cg(m)为网格单元m的几何成本,cs(m)为中心网格单元到网格单元m的路径成本,ch(m)为网格单元m到位置ln+1所在的网格单元的路径成本,ht(m)为网格单元m的高度,hc(m)为中心网格单元邻域内的八个网格单元的平均高度,λ1和λ2为设定权重;
s53:获取网格备选集中成本ctotal(m)最小的网格单元gminl邻域内的八个网格单元,然后将本步骤得到的八个网格单元中既不属于网格备选集又不属于网格已选集的网格单元加入网格备选集中,完成网格备选集的更新;然后将网格单元gminl作为新加入的网格单元的父节点,同时将网格单元gminl从网格备选集中删除,加入网格已选集中,完成网格已选集的更新;
s54:判断网格单元gminl邻域内的八个网格单元是否包括位置ln+1所在的网格单元,若包括,则进入步骤s55;若不包括,则分别将更新后的网格已选集中的网格单元作为中心网格单元,重复步骤s52~s53,完成网格备选集和网格已选集的再次更新;以此类推,不断重复步骤s52~s53,直到位置ln+1所在的网格单元出现在某个中心网格单元邻域内;
s55:获取位置ln+1所在的网格单元的父节点后,再获取父节点的父节点,以此类推,直到得到位置ln所在的网格单元,进而得到位置ln到位置ln+1的路径。
技术总结
本发明提供一种语义驱动的混合现实场景下的虚拟宠物行为生成方法,首先通过数据驱动的方法,采集真实宠物的行为序列,基于采集的行为序列,采用机器学习的方法,建立真实宠物的行为模型;相比于现有技术中的宠物行为模型、手工建立的固定模型或是采用随机生成行为的方法,本发明可以更好地模拟真实宠物的行为,提高了所产生的虚拟宠物行为的真实性;其次,本发明以现实世界中的场景作为输入,以计算机视觉的方法识别场景的语义信息和几何信息,并在此基础上生成宠物行为,相比于现有技术对场景的语义信息使用不够全面,只能在固定位置作一些交互,本发明可以让虚拟宠物更好的和场景相结合,使虚拟宠物更加智能。
技术研发人员:梁玮;于馨喆
受保护的技术使用者:北京理工大学
技术研发日:2020.08.06
技术公布日:2020.11.13
相关知识
传媒观察丨元宇宙与拟态现实下的身体认同焦虑
一种虚拟宠物聊天系统、方法及虚拟宠物问答服务器
一种公共场所中的异常宠物行为的检测方法、装置及系统与流程
虚拟宠物进化与行为模型研究
虚拟现实技术在宠物培训和行为矫正中的应用.docx
虚拟宠物系统和虚拟宠物聊天方法、装置
一种宠物行为识别方法、装置和可读存储介质与流程
25家企业亮相智谱AI Z计划首届路演!张鹏:AGI生态基金“Z基金”正式推出
虚拟宠物狗app
一种基于深度学习的宠物行为识别方法及系统与流程
网址: 一种语义驱动的混合现实场景下的虚拟宠物行为生成方法与流程 https://m.mcbbbk.com/newsview62776.html
上一篇: 搞定你的狗——宠物行为纠错训练 |
下一篇: 宠物行为的纠正方法及装置与流程 |