[论文阅读] Dynamic Group Behaviors for Interactive Crowd Simulation

[论文阅读] Dynamic Group Behaviors for Interactive Crowd Simulation

论文地址

Dynamic Group Behaviors for Interactive Crowd Simulation-原文

Liang He, Jia Pan, Sahil Narang, Wenping Wang, Dinesh Manocha

论文简介

本篇论文的重点在于能够生成动态的群体行为,与真实世界(视频)中出现的人群移动时动态形成小团体现象一致。本文采用least effort principle和改进版的RCA实现寻路和组内、组间的碰撞避免。

Introduction

人群仿真的其中一个主要挑战在于导航、碰撞避免、社会交互方面的不同建模方法。其中,group dynamics的建模是非常重要的,J. James1953年提出群体大小服从泊松分布。

但是先前的研究多数忽视了对任意环境下动态group dynamics的仿真。比如:每个group的大小并不是固定不变的,group可能会分散、合并,group中的任意一个agent有可能随时变换到另一个group。

main results:

  1. 提出了开创性的动态仿真群体行为的方法,使用spatial clustering方法,根据agent的位置和速度生成动态分组策略。最小努力原则保证了agent向目标位置前进。
  2. 延申了RCA碰撞避免方法,实现组内、组间的碰撞避免,因此可以仿真大规模人群、任意形状的群体。
  3. 经实验性能优,在许多复杂的benchmark上实验了该方法。

Overview+Method

背景简介-Velocity Obstacle:经典RVO思想,直观地说,VO在几何上可以构建为一个圆锥体,其顶点在agent的位置p,其两侧与包围群体的凸多边形相切,沿vG扩展,扩展大小为agent的半径ra,如figure3所示。

请添加图片描述

Group formation

用spatial clustering算法对人群做初始化分类,即:对于两个agent a 和b,如果a,b之间的距离小于超参数p并且 v a − v b < ϵ v (超参数 v ) v_a - v_b < \epsilon _v(超参数v) vavb<ϵv(超参数v,那么a和b属于同一个组;本文采用贪心算法做初始化分类,算法复杂度O(nk)并且每帧检查每个agent是都可以被分进已存在的组

Group maintenance and navigation

  • 组间,一个组作为整体对其他组避障,即:

    为了使组内的成员保持整体和谐运动,采用figure3的方式计算出组内每个agent的最小努力向量( v a − v G v_a-v_G vavG),所有agent的最小努力向量相加,如果<0就从右边绕,否则从左边绕过。一个group i和其他多个group避障时,先随便选一个group,算出从哪边绕,选出 e i s , s = l e f t   o r   r i g h t e_i^s,s=left~or~right eis,s=left or right;对于所有其他group,如果有碰撞可能,且在 e i s e_i^s eis的s侧,则更新 e i s e_i^s eis为这个group的 e i s e_i^s eis。用最后算出的 e i s e_i^s eis作为这个group的整体避障策略。

  • 组内,除了group leader的每一个agent都选择一个跟从的agent,即:

    如果这个group决定从s侧绕过其他的group,那么 e i s e_i^s eis就是这个组内所有成员暂时的目标点。group内离目标最近的agent作为group leader。group内所有其他的agent找自己的follower:组内所有比自己离leader更近的agent中,离自己最近的那一个。

Group Update

  • 如果一个agent接近目标,即原有的vdesired不会与其他agent相撞,就让这个agent从group中独立出来,采用ORCA原则接近目标
  • 如果许多group变形,不是凸多边形了,就重新做一次group formation

Collision Avoidance

沿用Group maintenance and navigation里的方法完成。

  • 先采用ORCA的agent-group碰撞避免模式让group leader和其他group避障,即:

    对于一个group leader agent和其他group,采用figure3的方式计算出VO,选取VO之外的、离自己原有的vdesired最近的速度方向矢量即可。

  • 然后采用ORCA的agent-agent碰撞避免模式让其他agent和其他group避障,即:

    对于所有group leader的follower,他们的新速度矢量为:原有的vdesired p l e a d e r − p t h i s   a g e n t p_{leader}-p_{this~agent} pleaderpthis agent方向上的投影(p为位置)

文章中Overview提到,“An agent aligns itself with a group such that the resulting motion is governed by effort minimization”,agent将自己与一个群体对齐,从而使所产生的运动受努力最小化原则的支配。感觉这句话在本文中没有很好的体现。。。

请添加图片描述

Implementation and Performance

与ORCA、meso-scale(同作者13年的成果)+真实视频对比,in C++ on an Intel Core i7 CPU running at 3.30GHz with 16GB of RAM and running Windows 7,单核cpu。

对比:运行时间、从初始位置到目标位置的碰撞次数、用tracking algorithm提取出来的轨迹(以不同颜色标识)

benchmark:

  1. 过人行道
  2. 过一栋建筑里的走廊(tight space)
  3. 杂乱场景过走廊
  4. 场景中随意放置agent,本文提出的方法agent会自动成组
  5. 在benchmark4的基础上放几个静态障碍物

(场景中的人数都不超过200)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值