在人群模拟环境中计算智能体的无冲突速度的方法

文档序号:6341174阅读:238来源:国知局
专利名称:在人群模拟环境中计算智能体的无冲突速度的方法
技术领域
一般来说,本发明的公开实施例涉及计算机生成影像(imagery),更具体来说,涉 及计算机生成影像中的人群模拟(crowd simulation)任务。
背景技术
虚拟世界应用(例如kcond Life)成为连接视觉运算(CVC :Connected Visual Computing)范例的重要组件。待执行的重要任务之一是Α. I.(人工智能),其中虚拟世界 的人物(character)执行特定的所分配任务并且在该世界导航(navigate)。人物导航又称 作人群模拟,它是计算密集任务,并且现有算法只能实时模拟几千个智能体(agent)。这是 生成现实虚拟世界场景(scenario)所需的从支持数十到几十万个智能体的数量级。

发明内容
本发明一方面涉及一种使用计算装置在人群模拟环境中计算智能体的无冲突 速度(collision-free)的方法,所述方法包括识别与所述无冲突速度对应的二次优化 (quadratic optimization)问题;以及在所述计算装置通过使用几何方法找到所述二次优 化问题的准确解决方案。本发明另一方面涉及一种在人群模拟环境中计算智能体的无冲突速度的方法,在 所述人群模拟环境中所述智能体具有初始速度并且与驻留在速度空间中的多个障碍锥体 (obstacle cone)关联,所述方法包括将所述障碍锥体中位于所有其它障碍锥体外部的所 有边界段识别为外部边界段;针对每个外部边界段,计算所述外部边界段距所述初始速度 的最小距离;以及选择与最小的所计算最小距离对应的速度作为所述无冲突速度。本发明另一方面涉及一种在虚拟世界应用中计算智能体的无冲突速度的方法,所 述方法包括针对所述虚拟世界应用的视觉模拟环节(loop)的每个图像更新帧得到所述 智能体的初始速度;为所述虚拟世界应用中位于所述智能体的特定距离之内的每个外来智 能体构造速度空间中的障碍锥体,每个这种障碍锥体表示将在所述智能体与特定外来智能 体之间引起冲突的所有速度的集合,假定所述特定外来智能体的速度没有改变;识别所述 智能体的多个可能新速度,其中的每个位于所有所述障碍锥体外部;确定从所述初始速度 到所述可能新速度中每一个的距离,以便找到所述可能新速度中最接近所述初始速度的特 定一个新速度;以及选择所述多个可能新速度中最接近的那个新速度作为所述图像更新帧 的无冲突速度。


通过阅读以下结合附图的具体实施方式
,将会更好地了解所公开实施例,附图 中图1是根据本发明实施例涉及三个智能体的简单人群模拟场景的表示;图2是根据本发明实施例在人群模拟场景中发现无冲突的几何方法的图示;
图3是示出根据本发明实施例在人群模拟环境中计算智能体的无冲突速度的方 法的流程图;以及图4是示出根据本发明实施例在其中智能体具有初始速度并且与驻留在速度空 间的多个障碍锥体关联的人群模拟环境中计算智能体的无冲突速度的方法的流程图。
具体实施例方式为了说明的简洁和清晰起见,附图示出构造的一般方式,并且可省略众所周知的 特征和技术的描述及细节,以免不必要地混淆对本发明所述实施例的论述。另外,附图中的 要素不一定按比例绘制。例如,图中一些要素的尺寸相对于其它要素被放大,以便帮助提高 对本发明实施例的理解。不同附图中的相同参考标号表示相同要素,而相似参考标号可以 但不一定表示相似要素。说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等如果存在则用于 区分相似要素,但不一定用于描述特定连续或时间顺序。要理解,这样使用的术语在适当情 况下是可互换的,使得本文所述的本发明实施例例如能够按照与本文所示或所述的不同次 序进行操作。类似地,如果方法在本文中描述为包括一系列步骤,则本文所提供的这类步骤 的顺序不一定是可执行这类步骤的唯一顺序,而是可能省略所述步骤中的某些和/或可能 将本文没有描述的某些其它步骤添加到该方法。此外,术语“包括”、“包含”、“具有”及其任 何变型意在涵盖非排他的包含,使得包括要素列表的过程、方法、产品或设备不一定局限于 那些要素,而是可包括未明确列出或者这种过程、方法、产品或设备固有的其它要素。说明书和权利要求书中的术语“左”、“右”、“前”、“后”、“顶部”、“底部”、“之上”、“之 下”等如果存在则用于描述性目的,而不一定用于描述永久相对位置。要理解,这样使用的 术语在适当情况下是可互换的,使得本文所述的本发明实施例例如能够按照与本文所示或 所述的不同的其它取向进行操作。本文所使用的术语“耦合”定义为按照电或非电的方式 直接或间接连接。本文中描述为彼此“相邻”的对象在适合于使用该词语的上下文的情况 下可以是彼此物理接触、彼此接近或者彼此在同一一般区域或地区。本文中词语“在一个实施例中”的出现不一定都表示同一实施例。在本发明的一个实施例中,一种在人群模拟环境中计算智能体的无冲突速度的方 法包括识别与无冲突速度对应的二次优化问题;以及通过使用几何方法来找到二次优化 的准确解决方案。虚拟世界中的人群模拟在给定出现3D社交网站的情况下具有不断增长的重要 性。同样,人群模拟是视觉模拟环节中Α. I.部分的增长组件。计算智能体的无冲突速度 是人群模拟算法的最费时部分。当前最常用的方法称作RV0(互逆速度障碍Reciprocal Velocity Obstacle),其中在速度空间中为智能体构成障碍锥体,并且计算使与这些锥 体的冲突的时间最大的速度。该算法使用基于取样的方法,其中从均勻分布点选择一组 200-300个样本,并且选择使冲突的时间最大的样本作为智能体的下一时间步(time step) 的速度。这种方法甚至不保证找到无冲突速度,并且实际上常常导致智能体之间的冲突。相比之下,本发明的实施例将无冲突速度问题阐述为二次优化问题,并且使用几 何方法对它准确求解,下面进一步描述。(二次优化问题寻求最佳值,其中该优化函数为二 次,并且约束函数为线性。)本发明的实施例使智能体的局部冲突避免速度能够比当前使用方法明显更快地进行计算,并且实现现实3D人群模拟的生成、新用例(use-case)场景和更 丰富用户体验。所公开的方法也可适用于现代3D游戏,因为存在虚拟世界的特定实例。现在参照附图,图1是根据本发明实施例在速度空间中涉及三个智能体的简单人 群模拟场景100的表示。如图1所示,这三个智能体包括智能体110连同智能体110必须 避开的智能体120和130。箭头115(智能体110、120和130中每个一个)表示下一帧中 每个智能体的优选速度(例如,使用根据本发明实施例的计算找到的)。障碍锥体125和 135对于智能体110表示分别对应于智能体120和130的速度障碍。这些速度障碍构成将 与其它智能体引起冲突的速度区域。换言之,锥体内部的每个点对应于最终将引起智能体 110与智能体120和130中之一或二者之间的冲突(只要那些智能体保持恒定速度)的速 度,而两个锥体外部的每一个点对应于无冲突速度。当然,智能体120和130可很好地呈现 从一个瞬间(moment)到下一个瞬间的速度变化,从而使恒定速度的假设成为不良假设,但 是由于在每个时间步或更新帧更新障碍锥体,所以这个潜在问题得到缓解。如图所示,智能体110的速度箭头115与障碍锥体125相交,表示与智能体120的 冲突即将来临。因此,必须计算智能体110的新速度,以避免该冲突;这个新速度应当位于 两个障碍锥体外部。仍然参照图1,一个这样的新速度由箭头117表示。由于这个新速度 位于障碍锥体125和135外部,所以它将(根据在图中所示时间已知的信息)允许智能体 110避免与智能体120和130发生冲突。当然,箭头117仅表示许多可能无冲突速度中之 一。选择这个特定速度,因为它位于所有障碍锥体外部,并且最接近原始速度,因而使智能 体110的速度突然变化最小,并且实现平滑和自然运动。现在将更详细地描述选择这个最 接近速度的方式。如上所述,本发明的实施例计算位于所有障碍锥体外部并且与原始速度点偏离最 小的新(无冲突)速度(应当记得,它是2D速度空间中的点)。这可通过以下方式进行 使新速度与原始速度的欧几里德(Euclidian)距离最小,以便得到下列二次优化问题(其 中,( ,K)表示原始速度而(x,y)表示所涉及智能体的新速度)使(χι。) 2+(y-yQ)2最小,使得对于所有锥体段AiX+Biy < Q。(1)对于N个锥体,将存在2N个这类(线性)约束。代替使用如同内部点、活动(active)集或共轭梯度的方法,本发明的实施例利用 人群模拟问题的几何性质,以便以几何方法计算所得速度(x,y)。作为示例,适当的所得速 度可通过在速度空间中操纵障碍锥体来显现,如图2所示。图2示出障碍锥体225和障碍锥体235,它们均由于其它附近智能体(未示出)的 存在而针对所涉及智能体(也未示出)出现。所涉及智能体的初始速度由点215表示。本 发明的实施例要求将障碍锥体225和235分成“段”,段为由线端点(line end)或者通过与 另一线段的相交而终止的锥体边界线的长度。(作为说明,例如图2示出障碍锥体235中 的线段237,并且还示出障碍锥体225中的线段227和228。)随后,锥体段根据它们是在 其它锥体的内部还是外部而被分为“内部”和“外部”区域,如图所示(其中,“外部”区域包 括锥体边界上的区域,只要它们不是在任何其它锥体内部)。测试内部/外部锥体段基本 上是线性约束校验,并且可由Ax+By < C形式的表达式来表示。在分为内部段和外部段之 后,计算各段与原点的最小距离,以便找到各段的最接近速度点(即,各段上最接近初始速 度点的点),并且然后从这些最接近点,选择总最接近速度点作为新速度。这个点在图2中由点217表示。在一些场景中,也许不可能找到解决方案。在这些情况下,去除最低有效约束(例 如忽略对所涉及智能体最不重要的智能体),并且根据上述步骤来解决优化问题。作为示 例,最不重要的智能体可被理解为离所涉及智能体最远的智能体或者沿与所涉及智能体的 运动直接相反的方向移动或者也许最不可能影响所涉及智能体的智能体。本发明的实施例实现比文献中报道的最佳执行时间快某个数量级的人群模拟执 行时间(对于从100变化到250000及以上的智能体数量)。另外,本发明的实施例几乎随 大量核心(32及以上)线性缩放(scale),并且还可利用数据级并行性来实现甚至更快的加 速。例如,在8核心htel Penryn系统上,已经观测到整体7X并行缩放。当采用多核模拟 器进行模拟时,实现32个核心上的29X缩放。同时,在8核心3. 2GHz Penryn系统上,本发 明的实施例能够以58FPS(帧每秒)模拟15000个智能体以及以121FPS模拟复杂环境中的 5000个智能体。得到上述结果,并且使用现在将进行描述的输入数据来测试本发明的实施例并且 将其与现有方法进行比较。圆周100 100个智能体开始围绕圆周均勻设置,并且设法通过圆周直接移动到 它们在另一侧的对映(antipodal)位置。当所有智能体在中间相遇时,场景变得非常拥挤, 从而导致漩涡(swirling)行为。四个流2000个智能体被组织为四个流,它们沿正方形对角线行走。观测到平滑 运动、小巷(lane)形成和某些漩涡。前和后10与100之间的智能体沿行列(line)前后移动。这个测试与 Oper^teer (为游戏和动画中的自主人物帮助构造操纵行为的C++库)并排运行,以便将未 经修改Oper^teer的冲突数与结合本发明实施例的Oper^teer的冲突进行比较。建筑物撤离(Building Evacuation)智能体在办公楼的不同房间的初始位置中 建立。场面(scene)具有218个障碍,并且路标(roadmap)由4 个节点(node)和7200 个边缘组成。智能体朝对应于出口标志的目标位置移动。使用这个场景的三个版本,其中 分别具有500、1000和5000个智能体。运动场场面这模拟25000个智能体在从其座位离开运动场时的运动。该场面具 有大约1400个障碍,并且路标由将近2000个节点和3200个边缘组成。智能体朝走廊移动, 从而引起拥塞和高度拥挤的场景。城市模拟使用具有建筑物和街道以及1500个障碍的城市模型。路标具有480个 节点和916个边缘。模拟不同智能体在城市四处并在十字路口(intersection)行走的运 动。智能体以不同速度移动,以及相互赶超并且与接近的智能体避免冲突。使用这个场景 的三个版本,其中分别具有10000、100000和250000个智能体。图3是示出根据本发明实施例在人群模拟环境中计算智能体的无冲突速度的方 法300的流程图。无冲突速度使用计算装置来计算。在一个实施例中,计算装置可经由通 信网络连接到第二计算装置。方法300的步骤310将识别与无冲突速度对应的二次优化问题。作为示例,二次 优化问题可与上文出现的表达式(1)相似。作为另一个示例,计算装置可以是客户端计算 机,第二计算装置可以是服务器,以及通信网络可以是因特网。
方法300的步骤320将在计算装置通过使用几何方法来为二次优化问题找到准确 解决方案。在某些实施例中,该几何方法包括在速度空间中识别智能体的障碍锥体,并且 找到位于障碍锥体外部的点(其中该点表示无冲突速度)。在一些实施例中,找到(无冲突速度)点包括识别多个障碍锥体边界段,识别位 于所有障碍锥体外部的障碍锥体边界段的子集,在速度空间中计算(针对该子集中的各障 碍锥体边界段)与对应于智能体初始速度的初始点的最小距离,以及选择所计算最小距离 中的最小那个距离。最小距离中的这个最小距离将是所涉及的点,即,无冲突速度。图4是示出根据本发明实施例在其中智能体具有初始速度并且与驻留在速度空 间中的多个障碍锥体关联的人群模拟环境中计算智能体的无冲突速度的方法400的流程 图。方法400针对与方法300所针对的相似的情形,但按照不同方式来描述。方法400的步骤410将把障碍锥体中位于所有其它障碍锥体外部的所有边界段识 别为外部边界段。作为示例,障碍锥体可与图1和图2所示的障碍锥体125、135、225和235 相似,并且外部边界段可与上文在图2的论述中所定义的一样。如上所述,在没有外部边界 段存在的情形中,该方法还包括忽略障碍锥体中之一,例如最不可能影响智能体的障碍锥 体,或者更一般地为比另一个障碍锥体更不可能影响智能体的障碍锥体。以上论述了这类 锥体的可能特性(identity)。方法400的步骤420将针对每个外部边界段计算外部边界段与初始速度的最小距 离。这个计算可以简单地通过测量速度空间中点之间的欧几里德距离(使用标准技术)来 实现。方法400的步骤430将选择与最小的所计算最小距离对应的速度作为无冲突速度。图5是示出根据本发明实施例在虚拟世界应用中计算智能体的无冲突速度的方 法500的流程图。方法500针对与方法300和400所针对的相似的情形,但按照不同方式 来描述。针对虚拟世界应用的视觉模块环节的各图像更新帧或时间步,执行方法500的步 骤510-550中的每一个。方法500的步骤510将得到智能体的初始速度。应当理解,这不要求(尽管它确 实准许)进行实际计算;它只要求初始速度在完成后续步骤之前是已知的。因此,可计算、 从虚拟世界服务器接收或者通过某种其它方式得到初始速度。方法500的步骤520将为虚拟世界应用中位于智能体的特定距离之内的每个外 来智能体构造速度空间中的障碍锥体。如以上首先所述,每个这种障碍锥体表示将在智能 体与特定外来智能体之间引起冲突的所有速度的集合,假定特定外来智能体的速度没有改变。方法500的步骤530将识别智能体的多个可能新速度,其中的每个位于所有障碍 锥体外部。在一个实施例中,步骤530包括识别多个障碍锥体边界段;识别位于所有障碍 锥体外部的障碍锥体边界段的子集;以及针对子集中的各障碍锥体边界段,在速度空间中 计算与对应于智能体初始速度的初始点的最小距离。方法500的步骤540将确定从初始速度到可能新速度中每一个的距离,以便找到 可能新速度中最接近初始速度的特定一个新速度。在一个实施例中,找到可能新速度的特 定一个新速度包括使(x-xtl)2+(y-y。)2最小,使得对于障碍锥体中的每一个AiX+Biy < Ci,其中(κ,y。)是初始速度,U,y)是智能体的无冲突速度,以及AiX+Biy < Ci是线性约束校验。方法500的步骤550将选择多个新速度中的最接近那个作为图像更新帧的无冲突速度。虽然参照具体实施例描述了本发明,但是本领域技术人员会理解,在不脱离本发 明精神或范围的情况下可进行各种变更。相应地,本发明实施例的公开意在说明本发明的 范围,而不是要进行限制。预计本发明的范围仅限制到所附权利要求书所要求的程度。例 如,对本领域技术人员而言,显而易见,本文所述的人群模拟计算方法及相关方法可在各种 实施例中实现,并且这些实施例中某些的以上论述不一定表示所有可能实施例的完整描 述。另外,针对具体实施例描述了有益效果、其它优点和问题的解决方案。但是,有益 效果、优点、问题的解决方案以及可使任何有益效果、优点或解决方案发生或者变得更为显 著的任何要素或多个要素并不是要被理解为权利要求书中任一个或全部的关键、必要或本 质特征或者要素。此外,如果本文所公开的实施例和/或限制(1)在权利要求书中没有被明确要求 权益;以及(2)在等效原则下作为或者可能作为权利要求书中明确要素和/或限制的等效 物,则这些实施例和限制在贡献原则下并未贡献给公众。
权利要求
1.一种使用计算装置在人群模拟环境中计算智能体的无冲突速度的方法,所述方法包括识别与所述无冲突速度对应的二次优化问题;以及在所述计算装置通过使用几何方法找到所述二次优化问题的准确解决方案。
2.如权利要求1所述的方法,其中 所述几何方法包含在速度空间中识别所述智能体的障碍锥体;以及 找到位于所述障碍锥体外部的点,所述点表示所述无冲突速度。
3.如权利要求2所述的方法,其中 找到所述点包括识别多个障碍锥体边界段;识别位于所有所述障碍锥体外部的障碍锥体边界段的子集;针对所述子集中的每个障碍锥体边界段,在所述速度空间中计算距与所述智能体的初 始速度对应的初始点的最小距离;以及选择所计算最小距离中的最小一个距离。
4.如权利要求1所述的方法,其中所述二次优化问题包括使(x-xtl)2+(y-y。)2最小,使得对于所述障碍锥体的所有段 AiX+BiY < Ci,其中(Xtl,y0)是所述智能体的原始速度,(X,y)是所述智能体的无冲突速度, 以及AiX+Biy < Ci是线性约束校验。
5.一种在人群模拟环境中计算智能体的无冲突速度的方法,在所述人群模拟环境中所 述智能体具有初始速度并且与驻留在速度空间中的多个障碍锥体关联,所述方法包括将所述障碍锥体中位于所有其它障碍锥体外部的所有边界段识别为外部边界段; 针对每个外部边界段,计算所述外部边界段距所述初始速度的最小距离;以及 选择与最小的所计算最小距离对应的速度作为所述无冲突速度。
6.如权利要求5所述的方法,还包括在没有外部边界段存在的情况下忽略所述障碍锥体中之一。
7.如权利要求6所述的方法,其中被忽略的障碍锥体是最不可能影响所述智能体的障碍锥体。
8.—种在虚拟世界应用中计算智能体的无冲突速度的方法,所述方法包括 针对所述虚拟世界应用的视觉模拟环节的每个图像更新帧得到所述智能体的初始速度;为所述虚拟世界应用中位于所述智能体的特定距离之内的每个外来智能体构造速度 空间中的障碍锥体,每个这种障碍锥体表示将在所述智能体与特定外来智能体之间引起冲 突的所有速度的集合,假定所述特定外来智能体的速度没有改变;识别所述智能体的多个可能新速度,其中的每个位于所有所述障碍锥体外部; 确定从所述初始速度到所述可能新速度中每一个的距离,以便找到所述可能新速度中 最接近所述初始速度的特定一个新速度;以及选择所述多个可能新速度中最接近的那个新速度作为所述图像更新帧的无冲突速度。
9.如权利要求8所述的方法,其中识别所述多个可能新速度包括 识别多个障碍锥体边界段;识别位于所有所述障碍锥体外部的障碍锥体边界段的子集;以及 针对所述子集中的每个障碍锥体边界段,在所述速度空间中计算距与所述智能体的初 始速度对应的初始点的最小距离。
10.如权利要求8所述的方法,其中找到所述可能新速度中特定一个新速度包括使(X-Xtl)2+(y-y。)2最小,使得对于所述障 碍锥体的每一个AiX+Biy < Ci,其中(Xtl,y0)是所述初始速度,(X,y)是所述智能体的无冲 突速度,以及AiX+Biy < Ci是线性约束校验。
全文摘要
一种在人群模拟环境(100)中计算智能体(110)的无冲突速度(117,217)的方法包括识别与无冲突速度对应的二次优化问题;以及通过使用几何方法找到二次优化问题的准确解决方案。
文档编号G06T17/00GK102110311SQ20101062091
公开日2011年6月29日 申请日期2010年12月23日 优先权日2009年12月29日
发明者A-T·D·阮, C·金, D·金, J·奇胡加尼, S·J·盖 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1