当前位置: 首页 > 专利查询>中北大学专利>正文

一种基于神经网络预测碰撞检测的方法技术

技术编号:27507330 阅读:30 留言:0更新日期:2021-03-02 18:35
本发明专利技术属于虚拟仿真碰撞检测领域,具体涉及一种基于神经网络预测碰撞检测的方法。首先该方法在一个时间步长内,将布料粒子运动的位置和发生碰撞的三角形位置输入神经网络;其次利用神经网络预测布料粒子与三角面片是否发生碰撞;最后对发生碰撞的粒子进行碰撞响应,得到粒子最终的位置;本发明专利技术在保证布料模拟真实性的前提条件下,相比于传统物理碰撞检测的方法,随着碰撞检测难度的增大,该算法的检测速度有显著的提高,同时表现出更高的稳定性,满足使用者对实时性的要求。满足使用者对实时性的要求。满足使用者对实时性的要求。

【技术实现步骤摘要】
一种基于神经网络预测碰撞检测的方法


[0001]本专利技术属于虚拟仿真碰撞检测领域,具体涉及一种基于神经网络预测碰撞检测的方法。

技术介绍

[0002]碰撞检测算法就是防止虚拟环境中的物体发生穿透现象,其在计算机图形学、影视动画和虚拟现实等领域有着广泛的应用。真实性和实时性一直是研究碰撞检测的两个关键问题。真实性要求算法可以准确的表现出物体特性,实时性要求算法具有快速的运算能力。为了保证模拟效果的流畅性,布料需要在较短的时间步长内完成碰撞处理。布料每次运动都会产生大量的与其他物体的碰撞检测,而碰撞检测计算相对复杂,需要大量的时间。如果不及时进行配置处理,就会出现穿透现象,并对后续的模拟产生不可逆的影响。因此,提高碰撞检测的速度是急需解决的问题。
[0003]现有的提高碰撞检测效率的方法,大多都是在包围盒上进行改进。有提出紧密率更高的新包围盒,来更精准的剔除没有发生碰撞的粒子。还有使用混合包围盒的方法,利用不同包围盒的优点,来加快速率。包围盒方法对于小规模的场景效果较好,但是不适合规模较大的场景。
[0004]近年来,随着机器学习,数据驱动技术的兴起和发展,许多结合机器学习的布料仿真技术越来越多。但是大多数机器学习都是与布料建模有关,比如,用机器学习提高布料褶皱,把布料划分为更加精细的模型。在布料碰撞检测方面,机器学习的应用很少,所以碰撞检测效率的提升一直是一个难题。

技术实现思路

[0005]本专利技术的目的在于提供一种基于神经网络预测碰撞检测的方法,旨在解决现有的碰撞检测技术一般通过包围盒算法来提高效率,但是在采用神经网络提高效率方面考虑较少的问题,在保证布料仿真模拟真实性前提条件下,利用神经网络算法对布料碰撞检测效率进行优化,综合考虑真实性和实时性,提高布料仿真的质量。
[0006]为了达到上述目的,本专利技术采用了下列技术方案:
[0007]一种基于神经网络预测碰撞检测的方法,以神经网络为主要内容,具体包括以下步骤:
[0008]步骤1,在一个时间步长Δt内,布料粒子运动开始的位置记为经过verlet积分后布料粒子的位置记为将布料粒子运动开始的位置、经过verlet积分后布料粒子的位置以及与布料粒子发生碰撞模型的三角面片的位置组成一个数据集;
[0009]步骤2,对布料根结点构建一个AABB包围盒,对碰撞物使用AABB包围盒构建BVH树,使用包围盒检测方法检测是否发生碰撞,如果发生碰撞,执行步骤3,否则进入下一次检测;
[0010]步骤3,将布料粒子运动开始的位置、经过verlet积分后布料粒子的位置和与布料
发生碰撞模型的三角面片的位置输入神经网络,经过神经网络预测,如果发生碰撞,执行步骤4,否则进入下一次检测;
[0011]步骤4,对发生碰撞的布料粒子进行碰撞响应,响应后布料粒子的位置为使用代替位置使布料粒子由直接运动到
[0012]传统的使用包围盒技术进行碰撞检测的方法,需要对模拟物体构建大量的包围盒,然后对包围盒进行遍历,找出发生精确碰撞的单元对。随着物体的形变,在每一次检测的过程中,都需要重新构建包围盒。这样在包围盒的构建和遍历上会消耗很多时间。首先本方法只对布料构建一个根结点包围盒,减少了包围盒的数量,并且使用的是AABB简单包围盒,节省了包围盒的构造和遍历时间。然后当包围盒发生碰撞后,利用神经网络可以处理大量数据的能力,预测大量的布料粒子是否发生碰撞,提高效率。最后利用碰撞响应后的位置代替发生碰撞的位置,减少了布料抖动效果,提高真实性。
[0013]进一步,所述步骤1中经过verlet积分后布料粒子的位置记为具体步骤为:
[0014]步骤1.1,将和进行泰勒展开:
[0015][0016][0017]步骤1.2,将式(1)与式(2)相加,得到位置表达式为:
[0018][0019]式(3)中,为下一时刻的位置,为当前时刻的位置,为加速度,为前一时刻的位置,ο(Δt4)为为无穷小量。
[0020]在布料变形模拟过程中,布料粒子运动需要使用积分方法。Verlet积分与其他积分方法相比,其稳定性强,计算的复杂度居中且精度为ο(4),是一种成熟有效的方法。
[0021]进一步,所述步骤2中包围盒检测方法为两个AABB包围盒的相交检测算法,具体为:现有两个AABB包围盒,它们分别是包围盒A和包围盒B,中心位置为c
a
和c
b
,在某一坐标轴上的投影为L
a
和L
b
,如果|c
a-c
b
|>L
a
+L
b
,则投影不重叠,包围盒没有相交,只有在x、y、z三个坐标轴上的投影都重叠时,两个包围盒才相交,即发生碰撞。
[0022]为了加快碰撞检测的效率,对布料柔体的根结点构建一个包围盒,快读剔除没有发生碰撞的粒子。当布料与碰撞物的距离很远时,只需要将布料根结点包围盒与碰撞物包围盒的BVH树遍历一次,就可以快速判断是否发生碰撞。从而省略了布料大量的粒子与碰撞物三角面片复杂的碰撞检测,节约了时间。
[0023]进一步,所述步骤3中神经网络的模型构建的具体步骤为:
[0024]步骤3.1,将数据集分为训练子集、选择子集和测试子集,使用训练子集进行网络训练,测试子集用来检测网络的性能,选择子集在选择合适的网络结构时使用;
[0025]步骤3.2,使用最大最小标度法对数据集进行缩放,缩放后f(x)的表达式为:
[0026][0027]式(4)中,min和max分别为数据集中的最小值和最大值;
[0028]步骤3.3,将缩放后的数据输入感知器神经元,感知器神经元使用逻辑激活函数进行训练,输出y值为:
[0029][0030]式(5)中,x1,x2,

,x
n
代表输入数据信息,w1,w2,

,w
n
代表权重,b代表偏差,act()代表逻辑激活函数,表达式为:
[0031][0032]步骤3.4,训练网络,使用优化算法拟牛顿法寻找神经网络参数x
k
使损失函数最小,神经网络使用的损失函数为标准化平方误差,损失函数的值NSE等于神经网络的输出out与数据集中的目标tar之差的平方除以归一化系数A,如公式(7):
[0033][0034]步骤3.5,为了找到具有最佳泛化特性的网络结构,使用增量顺序法从少量神经元开始逐步增加神经元个数,并计算每个网络结构的训练误差和选择误差,选择训练误差和选择误差的最小值对应的网络结构,作为本算法合适的神经网络模型。
[0035]当布料与碰撞物的距离很近时,会出现大面积的布料发生碰撞,此时无法再使用包围盒这样高层的剔除方法,必须使用底层的检测。在底层碰撞检测过程中,需要精确的找到碰撞单元对,处理大量的布料粒子和碰撞物三角面片的检测计算,这样会非常耗时。为了解决这个问题,利用神经网络可以处理大量数据的能力,我们本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于神经网络预测碰撞检测的方法,其特征在于,所述方法以神经网络为主要内容,具体包括以下步骤:步骤1,在一个时间步长Δt内,布料粒子运动开始的位置记为经过verlet积分后布料粒子的位置记为将布料粒子运动开始的位置、经过verlet积分后布料粒子的位置以及与布料粒子发生碰撞模型的三角面片的位置组成一个数据集;步骤2,对布料根结点构建一个AABB包围盒,对碰撞物使用AABB包围盒构建BVH树,使用包围盒检测方法检测是否发生碰撞,如果发生碰撞,执行步骤3,否则进入下一次检测;步骤3,将布料粒子运动开始的位置、经过verlet积分后布料粒子的位置和与布料发生碰撞模型的三角面片的位置输入神经网络,经过神经网络预测,如果发生碰撞,执行步骤4,否则进入下一次检测;步骤4,对发生碰撞的布料粒子进行碰撞响应,响应后布料粒子的位置为使用代替位置使布料粒子由直接运动到2.根据权利要求1所述的一种基于神经网络预测碰撞检测的方法,其特征在于,所述步骤1中经过verlet积分后布料粒子的位置记为具体步骤为:步骤1.1,将和进行泰勒展开:进行泰勒展开:步骤1.2,将式(1)与式(2)相加,得到位置表达式为:式(3)中,为下一时刻的位置,为当前时刻的位置,为加速度,为前一时刻的位置,ο(Δt4)为为无穷小量。3.根据权利要求1所述的一种基于神经网络预测碰撞检测的方法,其特征在于,所述步骤2中包围盒检测方法为两个AABB包围盒的相交检测算法,具体为:现有两个AABB包围盒,它们分别是包围盒A和包围盒B,中心位置为c
a
和c
b
,在某一坐标轴上的投影为L
a
和L
b
,如果|c
a-c
b
|>L
a
+L
b
,则投影不重叠,包围盒没有相交,只有在x、y、z三个坐标轴上的投影都重叠时,两个包围盒才相交,即发生碰撞。4.根据权利要求1所述的一种基于神经网络预测碰撞检测的方法,其特征在于,所述步骤3中神经网络的模型构建的具体步骤为:步骤3.1,将数据集分为训练子集、选择子集和测试子集,使用训练子集进行网络训练,测试子集用来检测网络的性能,选择子集在选择合适的网络结构时使用;步骤3.2,使用最大最小标度法对数据集进行缩放,缩放后f(x)的表达式为:
式(4)中,min和max分别为数据集中的最小值和最大值;步骤3.3,将缩放后的数据输入感知器神经元,感知器神经元使用逻辑激活函数进行训练,输出y值为:...

【专利技术属性】
技术研发人员:靳雁霞马博马巧梅贾瑶陈治旭芦烨史志儒刘亚变杨晶张建华
申请(专利权)人:中北大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1