作用域相交检测方法和用于作用域相交检测的装置与流程

文档序号:12550313阅读:149来源:国知局
作用域相交检测方法和用于作用域相交检测的装置与流程

本发明涉及作用域相交检测领域,特别涉及一种作用域相交检测方法和用于作用域相交检测的装置。



背景技术:

现有技术中,对移动作用域进行作用域相交检测主要是基于对移动作用域上的点进行检测,即将移动作用域上的检测点在每一个物理帧的位置与目标作用域的判定区域的关系进行处理及检测的,当且仅当检测点进入目标作用域的判定区域时,判定为产生作用域相交事件。

当作用域高速移动或系统帧率较低时,可能会发生没有准确检测出作用域相交的情况。如图1所示,移动作用域12沿直线运动并穿过目标作用域14。检测点Af1和检测点Af2分别为移动作用域12的检测点A在相邻两个物理帧f1和f2的位置。虽然移动作用域12与目标作用域14实际相交,但是由于两个检测点并未落在目标作用域14的判定区域内,因此按照现行的作用域相交检测方法无法检测出该作用域相交事件。



技术实现要素:

本发明实施例所要解决的一个技术问题是:在作用域高速移动或系统帧率较低的情况下,如何准确地检测出作用域相交事件。

根据本发明实施例的第一个方面,提供了一种作用域相交检测方法,包括:获取移动作用域上的检测点在每一个物理帧的位置;将移动作用域上的检测点在相邻物理帧的位置连接成路径线段;判断路径线段是否与目标作用域相交,如果相交,则移动作用域与目标作用域相交。

在一个实施例中,判断路径线段是否与目标作用域相交包括:如 果目标作用域的对角线的两个端点在路径线段所在直线的两侧,并且,路径线段的两个端点位于目标作用域任意一边所在直线的两侧或者路径线段的两个端点位于目标作用域内部,则判定路径线段与目标作用域相交。

在一个实施例中,判断路径线段是否与目标作用域相交包括:如果路径线段与目标作用域的任意一边相交,或者,如果路径线段的两个端点均位于目标作用域内部,则判定路径线段与目标作用域相交。

在一个实施例中,在检测到移动作用域与目标作用域发生碰撞后,将所述移动作用域上的检测点在相邻物理帧的位置连接成路径线段。

在一个实施例中,方法还包括:构建目标作用域的模型矩阵,其中,模型矩阵包括依据目标作用域的对角线构建的矩形模型矩阵。

在一个实施例中,方法还包括:选取移动作用域上的至少一个点并确定为检测点。

在一个实施例中,将移动作用域划成为若干子区域,从移动作用域的各子区域中分别选取一个点确定为检测点。

根据本发明实施例的第二个方面,提供一种用于作用域相交检测的装置,其特征在于,包括:检测点位置获取模块,用于获取移动作用域上的检测点在每一个物理帧的位置;检测点路径生成模块,用于将移动作用域上的检测点在相邻物理帧的位置连接成路径线段;作用域相交检测模块,用于判断路径线段是否与目标作用域相交,如果相交,则移动作用域与目标作用域产生作用域相交。

在一个实施例中,作用域相交检测模块用于当目标作用域的对角线的两个端点在路径线段所在直线的两侧,并且,路径线段的两个端点位于目标作用域任意一边所在直线的两侧或者路径线段的两个端点位于目标作用域内部时,判定路径线段与目标作用域相交。

在一个实施例中,作用域相交检测模块用于当路径线段与目标作用域的任意一边相交时,或者,当路径线段的两个端点均位于目标作用域内部时,判定路径线段与目标作用域相交。

在一个实施例中,装置还包括碰撞检测模块,用于检测移动作用 域与目标作用域是否相交;检测点路径生成模块用于在移动作用域与目标作用域相交后,将所述移动作用域上的检测点在相邻物理帧的位置连接成路径线段。

在一个实施例中,装置还包括模型构建模块,用于构建目标作用域的模型矩阵,其中,模型矩阵包括依据目标作用域的对角线构建的矩形模型矩阵。

在一个实施例中,装置还包括检测点确定模块,用于选取移动作用域上的至少一个点并确定为检测点。

在一个实施例中,装置还包括划分模块,用于将移动作用域划成为若干子区域,检测点确定模块用于从移动作用域的各子区域中分别选取一个点确定为检测点。

本发明通过对离散的检测点进行连续处理,根据连续处理得到的路径线段对目标作用域进行作用域相交检测,对帧率的依赖较低,在作用域高速移动或系统帧率较低的情况下,也能够准确地检测出作用域相交事件。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出现有技术中作用域相交检测方法的场景示意图。

图2示出本发明作用域相交检测方法的一个实施例的流程图。

图3示出本发明作用域相交检测方法的场景示意图。

图4示出本发明作用域相交检测示例的场景示意图

图5(a)、5(b)、5(c)示出路径线段与目标作用域的位置 关系示意图。

图6示出将移动作用域划分为多个子区域进行作用域相交检测的示意图。

图7示出本发明用于作用域相交检测的装置的一个实施例的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面参考图2描述本发明一个实施例的作用域相交检测方法。

图2为本发明作用域相交检测方法的一个实施例的流程图。如图2所示,该实施例的方法包括:

步骤S202,获取移动作用域上的检测点在每一个物理帧的位置。

步骤S204,将移动作用域上的检测点在相邻物理帧的位置连接成路径线段。

步骤S206,判断路径线段是否与目标作用域相交,如果相交,则移动作用域与目标作用域相交。

具体地,可以参照图3所示的本发明作用域相交检测方法的场景示意图。如图3所示,移动作用域32沿轨迹36运动,检测点Af31和检测点Af32分别为移动作用域的检测点在相邻两个物理帧的位置,将检测点Af31和检测点Af32连接,连接的线段与目标作用域34相交。因此,即使两个检测点并未落在目标作用域34的判定区域内,也会正确地判断出移动作用域与目标作用域34相交。

通过对离散的检测点进行连续处理,根据连续处理得到的路径线段对目标作用域进行作用域相交检测,对帧率的依赖较低,在作用域高 速移动或系统帧率较低的情况下,也能够准确地检测出作用域相交事件。

针对步骤S206中的判断路径线段是否与目标作用域相交,本发明还提出两种示例性的判断方法。

第一种判断的方式为:如果目标作用域的对角线的两个端点在路径线段所在直线的两侧,并且,路径线段的两个端点位于目标作用域任意一边所在直线的两侧或者路径线段的两个端点位于目标作用域内部,则判定路径线段与目标作用域相交,否则,判定不相交。下面结合图4详细说明判断过程。

图4为本发明作用域相交检测示例的场景示意图。如图4所示,设检测点在相邻物理帧分别位于点S(xs,ys)和点E(xe,ye),目标作用域的四个顶点分别为M1(x1,y1),M2(x2,y2),M3(x1,y2),M4(x2,y1),经过点S和点E的直线SE为ax+by+c=0。其中,a=ys-ye,b=xe-xs,c=xsye-xeys

首先判断目标作用域的对角线的两个端点是否在直线SE的两侧,即判断是否有至少一条对角线线段与直线SE相交。对于公式(ax1+by1+c)(ax2+by2+c)<=0与(ax2+by1+c)(ax1+by2+c)<=0,当两个公式均不成立时,矩形的四个顶点均位于直线SE的同侧,即直线SE未与矩形相交,在这种情况下,显然线段SE也未与矩形相交,即未发生作用域相交;当两个公式中的至少一个公式成立时,至少一条对角线的两个端点位于直线SE的两侧,即存在一条对角线线段与直线SE相交,再进一步判断线段SE是否与矩形相交。

接下来,判断路径线段的两个端点是否位于目标作用域任意一边所在直线的两侧或者位于目标作用域内部。在下列公式中,“&&”表示“和”的逻辑关系。对于公式(xs<x1&&xe<x1)、(xs>x2&&xe>x2)、(ys>y1&&ye>y1)和(ys<y2&&ye<y2),当这四个公式均不成立时,线段SE与矩形相交,移动作用域与目标作用域相交;反之,则未相交。

通过采用这种方法,只需要对路径线段的端点和直线的方位关系进行判断,无需进行交点计算。

在采用上述方法进行作用域相交检测时,可以构建目标作用域的 模型矩阵,其中,模型矩阵包括依据目标作用域的对角线构建的矩形模型矩阵。对于矩形,通过一条对角线的信息,即可获知矩形各个顶点的信息,因此不需要对多余的数据进行存储。

下面参照图5(a)、5(b)、5(c)描述路径线段与目标作用域的位置关系示意图。在连续的两个物理帧的时间段内,可以将移动作用域与目标作用域的作用域相交检测场景分为三种情况:第一种为移动作用域始终未与目标作用域相交,此时路径线段的两个端点均在目标作用域外,如图5(a)所示;第二种为移动作用域从未相交状态移动到相交状态,此时路径线段的两个端点一点在目标作用域内,一点在目标作用域外,路径线段与目标作用域的一边有交点,如图5(b)所示;第三种为移动作用域始终处于相交状态中,此时路径线段的两个端点均在目标作用域内,如图5(c)所示。在后两种情况下,移动作用域均与目标作用域相交。因此,也可以采用本发明提供的第二种方法进行判断:如果路径线段与目标作用域的任意一边相交,或者,如果路径线段的两个端点均位于目标作用域内部,则判定路径线段与目标作用域相交。

对于判断路径线段是否与目标作用域的任意一边相交,具体可以采取以下步骤进行计算:首先,建立路径线段所在的直线以及目标作用域各边所在直线;然后,计算路径线段所在直线与各边所在直线的交点,再判断交点是否在该边以及该路径线段上,如果是,则移动作用域与目标作用域相交,如果不是,则继续判断路径线段的两个端点是否均位于目标作用域内部。通过比较路径线段端点的横纵坐标与目标作用域顶点的横纵坐标的大小关系,可以容易地进行判断。如果路径线段的两个端点是否均位于目标作用域内部,则移动作用域与目标作用域相交,反之则未相交。

这种方法虽然需要逐个计算交点,但是可以将其应用于目标作用域为多边形的情况,适用范围更广。

上述两种方法为较为典型的判断路径线段是否与目标作用域相交的方法。显然,除了上述描述的方法外,本领域技术人员根据需要还可 以采用其他方法进行判断,这里不再穷举。

在采用上述方法进行作用域相交检测时,需要对检测点在所有相邻位置的点都连接成为路径线段,并计算路径线段是否与目标作用域相交。当计算性能较低时,可能会影响执行效率。因而,可以采用如下方法:在检测到移动作用域与目标作用域发生碰撞后,再将所述移动作用域上的检测点在相邻物理帧的位置连接成路径线段。具体地,可以采用如下步骤:首先,建立缓冲区,记录检测点在每一个物理帧的位置,并对缓冲区定期进行更新,保证缓冲区中记录检测点最新的位置;然后,对移动作用域和目标作用域进行碰撞检测,两作用域的边缘发生接触即认为发生碰撞;当检测到移动作用域和目标作用域产生碰撞时,将缓冲区内检测点在相邻物理帧的位置连接成路径线段,并执行步骤S208。通过采用这种方法,能够在碰撞检测装置检测到移动作用域与目标作用域的边缘产生碰撞后,再采用本发明提供的方法进行计算,提高了检测效率,避免了多余的资源消耗。

此外,关于检测点的选择,可以选取移动作用域上的至少一个点并确定为检测点。可以根据实际情况和需求,例如根据移动作用域的大小、形状、检测精度要求来确定检测点的位置和数量。例如,当移动作用域比较小,可以选取移动作用域上的一个点并确定为检测点,通常可以选取作用域中心处的点为检测点。

在本发明的方案中,还可以根据需要采用分治法,选取多个检测点检测是否产生作用域相交,即:将移动作用域划成为若干子区域,从移动作用域的各子区域中分别选取一个点确定为检测点。采用这种方法进行作用域相交检测的具体步骤如下:首先,将移动作用域划成为若干子区域,从移动作用域的各子区域中分别选取一个点确定为检测点;然后,对于每一个子区域的检测点,采用步骤S202~S206的方法判断子区域是否与目标作用域相交;最后,如果至少有一个子区域与目标作用域相交,则移动作用域与目标作用域相交,如果所有子区域均未与目标作用域相交,则移动作用域与目标作用域未相交。

图6为选取多个检测点进行作用域相交检测的示意图。如图6 所示,移动作用域具有两个子区域,两个子区域的检测点在前一个物理帧的位置分别为A和B,在后一个物理帧的位置分别为A’和B’。虽然线段AA’与目标作用域无交点,但是线段BB’与目标作用域有交点,因此判断移动作用域与目标作用域相交。

通过采用这种方法,可以对同一个移动作用域中多个感兴趣的点均进行作用域相交检测,能够适应多点检测,满足不同应用场景的需要,提高作用域相交检测的精度。在具体实施中,可以结合精度要求和计算性能对子区域的数量进行调整。

本发明的方法可以应用于多媒体领域,例如在对游戏中的对象进行作用域相交检测,或者检测视频中作用域之间是否相交的情况以便触发后续处理。显然,根据需要,也可以将本发明的方法应用于其他需要进行作用域相交检测的技术领域。

下面参考图7描述本发明一个实施例的用于作用域相交检测的装置。

图7为本发明用于作用域相交检测的装置的一个实施例的结构图。如图7所示,该装置包括:检测点位置获取模块72,用于获取移动作用域上的检测点在每一个物理帧的位置;检测点路径生成模块74,用于将移动作用域上的检测点在相邻物理帧的位置连接成路径线段;作用域相交检测模块76,用于判断路径线段是否与目标作用域相交,如果相交,则移动作用域与目标作用域相交。

其中,作用域相交检测模块用于当目标作用域的对角线的两个端点在路径线段所在直线的两侧,并且,路径线段的两个端点位于目标作用域任意一边所在直线的两侧或者路径线段的两个端点位于目标作用域内部时,判定路径线段与目标作用域相交。

其中,作用域相交检测模块用于当路径线段与目标作用域的任意一边相交时,或者,当路径线段的两个端点均位于目标作用域内部时,判定路径线段与目标作用域的模型相交。

其中,装置还包括碰撞检测模块,用于检测移动作用域与目标作用域是否发生碰撞;检测点路径生成模块用于在移动作用域与目标作 用域发生碰撞后,将所述移动作用域上的检测点在相邻物理帧的位置连接成路径线段。

其中,装置还包括模型构建模块,用于构建目标作用域的模型矩阵,其中,模型矩阵包括依据目标作用域的对角线构建的矩形模型矩阵。

其中,装置还包括检测点确定模块,用于选取移动作用域上的至少一个点并确定为检测点。

其中,装置还包括划分模块,用于将移动作用域划成为若干子区域,检测点确定模块用于从移动作用域的各子区域中分别选取一个点确定为检测点。

此外,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1