[论文阅读]Guiding flows for controlling crowds
目录
论文地址
原文
The Visual Computer: International Journal of Computer Graphics Volume 26 Issue 11 November 2010
论文总结
使用动态势函数(harmonic functions)模拟大规模人群流动,通过基于密度的权重混合方式将人群对control particle的路径跟随与人群原有路径规划结合。提供GUI操纵control particle的轨迹,人群路径跟随此轨迹。
1. Introduction
主流人群仿真方法:agent-based method的难点在于如何为人群确定一个恰当的行为规则。
对于大规模人群仿真而言 ,用于建模的主流agent-based方法和用于控制仿真的传统key-framing方法由于计算开销过大,性能不佳。
本文注意到动态势场可以高效生成流畅的人群流形运动,难点在于如何控制、甚至让用户交互式控制动态势场。为了解决这个难点,本文采用了control particle。Control particle是agent-based模型中常用于创造局部吸引/排斥力的方法。本文基于control particle的轨迹生成全局控制场,通过基于密度的权重混合方式将全局控制场与人群原有路径混合。这样,控制动态势场的问题就变成了典型的求边界值问题。
2. Related Work
-
agent-based方法:
难点在于如何为人群确定一个恰当的行为规则,曾经有尝试从视频图像中学习规则。大多数工作集中在local behavior,而不是overall shape。计算开销过大。
-
直接生成全局人群流体:使用动态势场和差分方程
难点在于在每个grid中计算,环境大小被限制
结合agent-based和动态势函数:交互式控制精确、性能好,但对于大规模人群计算开销太大、路径被环境的spatial sampling限制、或目标函数/优化需要精心设计过于复杂,不适合大规模人群
详细对比我们的方法和JIN的另一个方法,给出区别:
- JIN使用radial basis函数,我们的harmonic function生成的人群路径更自然
- JIN使用固定锚点,我们使用control particle允许动态交互
- 我们在控制向量场时耦合进了障碍物
contribution:
- 采用业界熟悉的概念——control particle,用于控制轨迹
- 我们不直接生成外部力影响人群仿真,而是直接计算梯度场更新人群位置,然后混合两者,解耦了控制和原有仿真过程
- 我们的方法是基于在每个grid上计算harmonic function,而不是计算每个个体,因此可以仿真大规模人群
3. Overview(方法)
分两步:
- control particle确定轨迹,反算出control particle经过的所有cell中每个cell对应的速度矢量。但大多数cell是没有被经过的,因此采用harmonic function确定未被经过的cell的速度矢量。
- 耦合control field和原有仿真。对于agent-based方法来说,可以把第一步算出的速度矢量看作方向偏差offset;对于使用动态势函数的方法来说,可以根据人群分布等因子混合两个场,比如根据control particle和相邻particle的距离计算权重,基于权重混合。
4. Control fields
- 对于control particle经过的cell:
通过control particle的位置变化算出第n个粒子在t时刻所在的cell i,j的速度矢量;
其中n代表control particle经过此cell的time step次数,算出每个cell的平均速度矢量;
- 对于未经过的cell: harmonic function
ustart=1,ugoal=0,ukeyframe用(2)式算,uobstacle用启发式方法算:
如果障碍cell和goal之间连线没有其他障碍cell阻挡,用line of sight direction vector;如果有,用边界切线方向;大小是control particle最大速度大小的一半左右。
- 为了对不同类别的人群指定不同的control particle轨迹,对人群particle标flag指定其类别,创造多层control field
5. Applying control fields
- 对于agent-based方法来说,可以把第一步算出的速度矢量看作方向偏差offset
- 对于使用动态势函数的方法来说,采取基于权重的混合方式:
g是密度,d是目前cell和最近的被control particle经过的cell之间的距离。
6. Experiments
run on 2.66GHZ 双核CPU,8GB内存