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

一种基于GPU的社会力模型人群实时仿真方法技术

技术编号:13747604 阅读:110 留言:0更新日期:2016-09-24 04:31
本发明专利技术涉及一种基于GPU的社会力模型人群实时仿真方法。包括:S1.设行人的受力感知范围;S2.根据当前场景的结构信息和行人受力感知范围,采用均匀网格分割法来划分虚拟场景,得到网格化的场景;S3.根据已分割好的场景,在行人受力感知范围内对与当前行人所在网格相邻的8个近邻网格中的行人进行并行化查询获得其他行人的分布信息;S4.根据行人受力感知范围内其他行人的分布信息并行化计算行人间相互作用力;S5.根据社会力模型的思想,CPU串行化计算行人的自驱力、行人与障碍物之间的作用力,结合行人间相互作用力,计算出当前行人新的速度和位置信息,完成群体的更新工作。本发明专利技术大大降低了算法的时间复杂度。

【技术实现步骤摘要】

本专利技术涉及计算机图形学、系统仿真、虚拟现实等领域,更具体地,涉及一种基于GPU的社会力模型人群实时仿真方法
技术介绍
随着现代经济的迅速发展,人民的生活水平得到了巨大的提升,城市化已经成为了主流的趋势。城市人口迅猛增长,城市规模无限制扩大的同时,也带来了很多难以解决的问题。在大型城市里,由于人口众多、资源较为集中、土地面积较为有限,容易出现很多人聚集在一个相当小区域的现象。城市的办公楼和公寓变得越来越复杂,大型建筑业日益增多,公共场所人群聚集的情况不可避免,但是所面临的安全问题也越来越严重。与此同时,与体育、文化、娱乐和宗教活动有关的大型活动在世界各地也都定期举行。一旦发生突发事件,如果人群得不到很好的疏散,就会发生阻塞拥挤现象,人群在恐慌情况下极易发生拥挤踩踏等灾难事件,容易造成严重的人员伤亡。发生突发事件时,如何快速有效地组织人员及时疏散,从而有效地减少事故造成的人员伤亡,已成为国内外公共安全研究的重点。随着计算机技术的飞跃发展,通过与计算机信息技术的相结合,建立基于计算机的人群仿真系统来研究公共场所人群疏散问题,具有低投入、易操作、可重复、数据易采集等优势。社会力模型作为人群仿真的经典模型之一,它借鉴牛顿力学对行人在不同环境下的主观意愿、行人间相互作用以及行人与环境间的相互作用进行建模,并用社会力的概念进行描述,能够真实地重现许多现实世界里可观察到的人群现象和规律。但是,随着人群规模的增大,社会力模型指数级的算法时间复杂度单纯依靠CPU串行已无法满足当前的需求,导致了原模型很难应用于大规模实时人群仿真场景中。为了能够利用社会力模型对上万规模的人群进行实时仿真,有必要降低原算法的时间复杂度以适应大规模人群仿真,同时也可以利用更先进的技术、更多的硬件资源完成这一需求。
技术实现思路
本专利技术为克服上述现有技术所述的至少一种缺陷,提供一种基于GPU的社会力模型人群实时仿真方法,该方法借助社会力模型能够真实地模拟出现实世界里人群运动的特点,利用GPU多核并行计算的方法,在人群数量急剧增加的过程中保证了仿真的效率。为解决上述技术问题,本专利技术的技术方案如下:一种基于GPU的社会力模型人群实时仿真方法,包括:S1.设行人的受力感知范围;S2.根据当前场景的结构信息和行人受力感知范围,采用均匀网格分割法来划分虚拟场景,得到网格化的场景;S3.根据已分割好的场景,在行人受力感知范围内对与当前行人所在网格相邻的8个近邻网格中的行人进行并行化查询获得其他行人的分布信息;S4. 根据行人受力感知范围内其他行人的分布信息并行化计算行人间相互作用力; S5.根据社会力模型的思想,CPU串行化计算行人的自驱力、行人与障碍物之间的作用力,结合行人间相互作用力,计算出当前行人新的速度和位置信息,完成群体的更新工作。上述方案中,所述分布信息包括行人分布情况和行人总数。上述方案中,设行人受力感知范围为圆形,步骤S2中虚拟场景分割时网格大小L与行人受力感知范围的半径R相等。上述方案中,步骤S3的具体步骤包括:S31.初始化得到虚拟场景中每个网格的行人分布情况以及行人总数;S33.并行化查询当前行人所在网格的8个近邻网格,当查询到近邻网格内行人数不为0时,将该网格内行人加入到当前行人所在网格的近邻行人分布表中,得到当前行人所在网格受力感知范围的行人分布信息;S34.将当前行人所在网格中的其他行人分布信息及其8个近邻网格的其他行人分布信息存入到受力感知范围表。上述方案中步骤S4的具体步骤包括:S41.一个block表示一个网格单元,block中的每个线程thread代表该网格单元中的一个行人;S42.利用threadIdx.x为0的线程得到当前网格以及其8个近邻网格行人的数据信息;S43.遍历近邻网格内所有的行人更新其受力情况,如果所遍历的行人状态没有更新过,则进行更新工作,否则不再更新其信息;S44.将行人所受的排斥力、反弹力和摩擦力叠加,返回行人间的相互作用力。上述方案中,步骤S5中更新的计算公式如下:(1)其中,表示行人的加速度,t表示时间;表示行人的自驱力, 和分别表示行人期望速度的大小和方向,表示松弛时间,和表示行人i的质量和速度,和分别表示行人间的相互作用力和行人与障碍物间的作用力,j表示除行人i外的其他行人,w表示场景中的障碍物,通过上式(1)可以得到行人的当前加速度,根据行人的当前加速度得到行人的速度和位置信息。与现有技术相比,本专利技术技术方案的有益效果是:本专利技术在早期的社会力模型基础上引入了行人受力感知范围的概念,并根据该范围的大小采用均匀网格分割法对模拟的当前场景进行分割,将每个网格作为并行化人群实时仿真方法的独立更新单元,充分利用GPU多线程的特点,完成了行人状态的并行化查询和更新工作。本专利技术相对于现有的社会力模型,由于缩小了并行化计算的范围,大大降低了算法的时间复杂度,可以由指数级降为线性级,同时也提高了仿真时的帧速,使得本专利技术的方法能够满足实时性的要求。附图说明图1为本专利技术一种基于GPU的社会力模型人群实时仿真方法具体实施例的人群信息更新过程示意图。图2为本专利技术一种基于GPU的社会力模型人群实时仿真方法具体实施例的流程图。图3为本专利技术中均匀网格法分割场景及行人受力感知范围的示意图。图4为本专利技术的方法与原社会力模型算法的CPU与GPU的FPS性能对比图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本专利技术的技术方案做进一步的说明。实施例1本专利技术的方法是采用人群仿真经典模型之一的社会力模型,结合GPU并行技术,使模型能够应用到大规模实时人群仿真中。如图1所示,是本专利技术一种基于GPU的社会力模型人群实时仿真方法具体实施例的人群信息更新过程示意图,该过程主要由两部分组成:GPU并行化查询更新行人状态和CPU串行化计算、渲染行人运动。两部分相互协调完成整个人群实时仿真工作,在仿真的过程中,各部分具体的实现功能如下:CPU端的主要工作有:初始化系统参数,包括环境参数、行人运动参数、社会力模型参数、行人数量以及行人初始位置信息等;根据场景和行人信息进行图形绘制,主要包括图形顶点操作、纹理操作以及渲染操作等;串行化计算行人的自驱力、行人与障碍物之间的作用力、行人受到的吸引力等;根据CPU端和GPU端得到的行人受力情况,计算行人所受合力大小,然后基于牛顿力学计算出行人的当前加速度,进而对行人的速度和位置信息进行更新。GPU端的主要工作有:资源初始化,准备GPU并行计算相关资源和准备存储空间接收内存传递过来的数据;并行化近邻查询,并行化计算行人间相互作用力;计算行人间所受力的合力。具体地,如图2所示,为本专利技术一种基于GPU的社会力模型人群实时仿真方法具体实施例的流程图。参见图2,本具体实施例一种基于GPU的社会力模型人群实时仿真方法的具体步骤包括:S101.设行人的受力感知范围。行人在运动的过程中只会关注其自身某个范围内的变化,不会考虑远处变化的影响。本专利技术基于这一特点,提出了行人受力感知范围的概念。每个行人都可以根据自己的受力感知范围来本文档来自技高网
...

【技术保护点】
一种基于GPU的社会力模型人群实时仿真方法,其特征在于,包括:S1.设行人的受力感知范围;S2.根据当前场景的结构信息和行人受力感知范围,采用均匀网格分割法来划分虚拟场景,得到网格化的场景;S3.根据已分割好的场景,在行人受力感知范围内对与当前行人所在网格相邻的8个近邻网格中的行人进行并行化查询获得其他行人的分布信息;S4.根据行人受力感知范围内其他行人的分布信息并行化计算行人间相互作用力; S5.根据社会力模型的思想,CPU串行化计算行人的自驱力、行人与障碍物之间的作用力,结合行人间相互作用力,计算出当前行人新的速度和位置信息,完成群体的更新工作。

【技术特征摘要】
1.一种基于GPU的社会力模型人群实时仿真方法,其特征在于,包括:S1.设行人的受力感知范围;S2.根据当前场景的结构信息和行人受力感知范围,采用均匀网格分割法来划分虚拟场景,得到网格化的场景;S3.根据已分割好的场景,在行人受力感知范围内对与当前行人所在网格相邻的8个近邻网格中的行人进行并行化查询获得其他行人的分布信息;S4.根据行人受力感知范围内其他行人的分布信息并行化计算行人间相互作用力; S5.根据社会力模型的思想,CPU串行化计算行人的自驱力、行人与障碍物之间的作用力,结合行人间相互作用力,计算出当前行人新的速度和位置信息,完成群体的更新工作。2.根据权利要求1所述的基于GPU的社会力模型人群实时仿真方法,其特征在于,所述分布信息包括行人分布情况和行人总数。3.根据权利要求1所述的基于GPU的社会力模型人群实时仿真方法,其特征在于,设行人受力感知范围为圆形,步骤S2中虚拟场景分割时网格大小L与行人受力感知范围的半径R相等。4.根据权利要求1所述的基于GPU的社会力模型人群实时仿真方法,其特征在于,步骤S3的具体步骤包括:S31.初始化得到虚拟场景中每个网格的行人分布情况以及行人总数;S32.并行化查询当前行人所在网格的8个近邻网格,当查询到近邻网格内行人数不为0时,将该网格内行人加入...

【专利技术属性】
技术研发人员:纪庆革王福川印鉴
申请(专利权)人:中山大学广州智海纵横信息科技有限公司广州中大南沙科技创新产业园有限公司
类型:发明
国别省市:广东;44

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

1