基于GPU的多目标区域限制预警方法与装置与流程

文档序号:15462306发布日期:2018-09-18 18:27阅读:150来源:国知局

本发明涉及区域检测技术领域,特别涉及一种基于GPU的多目标区域限制预警方法与装置。



背景技术:

在航空,航海,公路交通等活动中,有些目标往往需要被限制在某些区域内,或者是某些区域不得进入等。这些区域要么比较敏感,要么是目标的活动范围,对于目标的进入或者移出需要向管理层汇报,未批准的目标进出需要及时报警。

传统上,雷达,云平台等系统屏幕上可以明确显示区域内目标的活动情况,监控者用肉眼即可发现,但监控者会有换班,休息,屏幕有时也需要关闭,这些情况的发生往往会造成系统在一段时间内不能对区域内的目标进行监控。

目前也有一些自动监控的方法,但这些方法不能及时对大量目标进行分析,监控,而且利用了大量的CPU资源,对平台的运算造成影响。



技术实现要素:

本发明的目的旨在至少解决所述的技术缺陷之一。

为此,本发明的一个目的在于提出一种基于GPU的多目标区域限制预警方法与装置,采用CPU和GPU相结合的架构形式,采用射线交点法判断目标点是否在限制区域内部,通过CPU进行多线程处理逻辑判断,结合GPU进行并发高效处理浮点运算,实现了多目标点多限制区域快速判断,减少了CPU的资源占用,提高了响应速度。

为了实现上述目的,本发明一方面的实施例提供一种基于GPU的多目标区域限制预警方法,包括以下步骤,步骤S1,利用CPU建立参考坐标系,获取每个限制区域对应的坐标,获取目标点的坐标;CPU将获取的目标点坐标和限制区域坐标,存储至预设计算数组;步骤S2,CPU遍历每个目标点的坐标,利用GPU调取每个目标点所属的计算数组,GPU针对当前一个目标点对应的所述计算数组中的所有限制区域,根据当前一个目标点的坐标,以该目标点为起始点构建水平射线,计算所述水平射线与所述限制区域的每条边界线段的交点坐标,并将计算的交点坐标值发送至CPU;完成后跳转下一个目标点,以此类推,直至计算出所有目标点与所述计算数组中所有限制区域的交点坐标;步骤S3,CPU根据接收到的交点的坐标,判断交点是否在所述限制区域的边界线段上,计算所述水平射线与所述限制区域的交点数,根据交点数判断目标点是否落在限制区域里面。

优选的,在步骤S1中,在所述预设计算数组中,如果目标点的纵坐标落入某个限制区域的边界线段纵坐标范围内,则将该目标点的坐标和边界线段的端点坐标存入同一计算数组。

优选的,在步骤S2中,在判断目标点是否落入限制区域中时,构建每个所述限制区域的外接矩形,判断目标点的纵坐标是否落在所述外接矩形中,如果目标点的纵坐标落在所述外接矩形中,则控制GPU处理单元计算所述水平射线与边界线段的交点坐标;如果目标点的纵坐标没有落在外接矩形中,直接判定该目标点不在限制区域中。

进一步,如果目标点的纵坐标落入了所述外接矩形中,则在步骤S3中进一步根据直线方程计算目标点的横坐标是否在所述限制区域的边界线段上。

优选的,在步骤S3中,所述水平射线与所述限制区域的边界线段的交点数为偶数时,则该目标点落在限制区域内部,如果交点数为奇数则该目标点落在限制区域外部。

本发明还提供一种基于GPU的多目标区域限制预警装置,包括CPU处理单元和GPU处理单元;所述CPU处理单元用于设置参考坐标系,并将每个限制区域对应的坐标和目标点坐标,存储至计算数组中;所述CPU处理单元遍历每个目标点的坐标,控制GPU处理单元调取所述计算数组;所述GPU处理单元用于针对当前一个目标点对应的所述计算数组中的所有限制区域进行交点坐标计算;包括根据当前一个目标点的坐标,以该目标点为起始点构建水平射线,计算所述水平射线与所述限制区域的每条边界线段的交点坐标,并将计算的交点坐标值发送至CPU处理单元;完成后跳转下一个目标点,以此类推,直至计算出所有目标点与所述计算数组中所有限制区域的交点坐标;所述CPU处理单元进一步用于根据接收到的交点的坐标,判断交点是否在所述限制区域的边界线段上,并计算所述水平射线与所述限制区域的交点数,根据交点数判断目标点是否落在限制区域里面。

优选的,在预存储单元中,预设计算数组时,如果目标点的纵坐标落入某个限制区域的边界线段纵坐标范围内,则将该目标点的坐标和边界线段的端点坐标存入同一计算数组。

优选的,所述CPU处理单元还包括预处理单元,所述预处理单元用于构建每个所述限制区域的外接矩形,如果目标点的纵坐标落在所述外接矩形中,则控制GPU处理单元计算所述水平射线与边界线段的交点坐标;如果目标点的纵坐标没有落在外接矩形中,直接断定该目标点不在限制区域中。

进一步,如果目标点的纵坐标落入了所述外接矩形中,GPU处理单元根据直线方程计算目标点的横坐标是否在所述限制区域的边界线段上。

优选的,所述判断单元在根据交点个数进行判断时,如果水平射线与所述限制区域的边界线段的交点数为偶数时,则该目标点落在限制区域内部,如果交点数为奇数则该目标点落在限制区域外部。

根据本发明实施例的一种基于GPU的多目标区域限制预警方法与装置,采用CPU和GPU相结合的架构形式,采用射线交点法判断目标点是否在限制区域内部,通过CPU进行多线程处理逻辑判断,结合GPU进行并发高效处理浮点运算,实现了多目标点多限制区域快速判断,减少了CPU的资源占用,提高了响应速度,避免对监控平台造成资源占用的影响。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例的一种基于GPU的多目标区域限制预警方法的流程图

图2为本发明一种基于GPU的多目标区域限制预警方法及装置的实施例中构建限制区域外接矩形的示意图;

图3为本发明一种基于GPU的多目标区域限制预警方法及装置的实施例中计算交点坐标的示意图;

图4(a)为本发明一种基于GPU的多目标区域限制预警方法及装置的实施例中CPU遍历目标点和限制区域的流程图;

图4(b)为本发明一种基于GPU的多目标区域限制预警方法及装置的实施例中CPU构建计算数组的流程图;

图5为本发明一种基于GPU的多目标区域限制预警方法及装置的实施例中判断目标点是否在限制区域内的流程图;

图6为本发明一种基于GPU的多目标区域限制预警方法及装置的另一个实施例的示意图

图7为本发明一种基于GPU的多目标区域限制预警装置的示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

如图1所示,本发明实施例的一种基于GPU的多目标区域限制预警方法,包括以下步骤,

步骤1,利用CPU建立参考坐标系,提取每个限制区域的顶点,并将各个顶点换算成参考坐标系的坐标值,即可将每个限制区域采用坐标的形式表示,CPU获取每个限制区域对应的坐标,采用北斗/GPS等卫星定位系统获取目标点的坐标;CPU将获取的目标点坐标和限制区域坐标,存储至预设计算数组;在步骤S1中,在预设计算数组中,如果目标点的纵坐标落入某个限制区域的边界线段纵坐标范围内,则将该目标点的坐标和边界线段的端点坐标存入同一计算数组。

需要说明的是,目标点或限制区域各顶点的位置的坐标可以直接使用经纬度坐标,也可以自定义坐标系和原点,计算它们的偏移坐标。

步骤2,CPU遍历每个目标点的坐标,利用GPU调取计算数组,GPU针对当前一个目标点对应的所述计算数组中的所有限制区域,根据当前一个目标点的坐标,以该目标点为起始点构建水平射线,计算所述水平射线与所述限制区域的每条边界线段的交点坐标,并将计算的交点坐标值发送至CPU;完成后跳转下一个目标点,以此类推,直至计算出所有目标点与所述计算数组中所有限制区域的交点坐标。

如图2所示,需要说明的是,在步骤S2中,在判断目标点是否落入限制区域中时,首先要构建每个限制区域的外接矩形,该外接矩形只需计算多边形顶点中最左最右,最上最下的顶点坐标,即可确定该外接矩形的坐标。判断目标点的纵坐标是否落在外接矩形中,如果目标点的纵坐标落在外接矩形中,则控制GPU处理单元计算水平射线与边界线段的交点坐标;如果目标点的纵坐标没有落在外接矩形中,直接判定该目标点不在限制区域中。

需要说明的是,对每个限制区域设置外接矩形不局限在步骤2中,设置外界矩形可以在步骤1中,预设计算数组时进行此项操作,如图4(a)为本发明CPU在遍历每个目标点和每个限制区域时的流程图,其中,CPU遍历每一个点,对与每个点,又遍历每个限制区域,如果在这个区域的外接矩形内,则在图4(b)的流程内继续处理,这个流程会遍历区域的每条边,如果目标落在线段的纵坐标内,则将目标的坐标和这条边的端点坐标存入计算数组。

如图3所示,判断以(x0,y0)为起始点的水平射线s是否与(x1,y1)和(x2,y2)组成的线段l相交时,如果相交,设交点为(x3,y3),由图形可以看出y3=y0,根据直线方程,l所在的直线为:

代入,可得:

如果x3在x1和x2之间,并且y3在y1和y2之间,则说明射线s与线段l有交点。

公式(1)可用来计算交点坐标,由于是水平线,纵坐标已知,只需求出横坐标,然后即可判断交点是否在该线段上,如果在,则相交数加1。遍历每条边,即可算出射线与区域的交点数,然后判断点是否在区域里面。

步骤3,CPU根据接收到的交点的坐标,判断交点是否在限制区域的边界线段上,计算水平射线与限制区域的交点数,根据交点数判断目标点是否落在限制区域里面。如果目标点的纵坐标落入了外接矩形中,则在步骤3中进一步根据直线方程计算目标点的横坐标是否在限制区域的边界线段上。

进一步,在步骤3中,水平射线与限制区域的边界线段的交点数为偶数时,则该目标点落在限制区域内部,如果交点数为奇数则该目标点落在限制区域外部。

本发明提供的基于GPU的多目标区域限制预警方法中,目标可能会有很多个,限定区域也有多个,每个目标都要针对临近的区域进行判断,每个区域可能有多个边进行判断,公式(1)的计算次数与目标数和区域的边数的积成正比,尽管可以通过外接矩形限定一些点的运算,运算量依然很大,而且系统要求要对多个目标的进行实时判断,因此针对上述问题采用CPU和GPU相结合的架构。即CPU采用流水线对逻辑处理进行了优化,GPU则可以并发高效处理浮点运算,CPU进行多线程处理逻辑判断,判断每个点与该计算的线段放到一个数组内,然后将这个数组传送到GPU,GPU的并发运算单元对数组内的每个元素进行计算,算出交点的坐标,然后传回CPU,CPU再根据交点坐标判断是否在线段上,进而计算该点与区域的边的交点个数,得到点是否在区域内的判断。

如图5所示,按照图4的流程形成计算数组后,传入GPU进行运算,运算完的结果后回传内存,CPU再做下一步判断,即如果GPI计算得到的目标点形成的水平射线与限制区域边界线段相交的交点在边界线段上,并且与该限制区域形成的交点数为偶数则判断为该目标点落入了该限制区域内部,如果交点个数为奇数,则该目标点没有落在该限制区域中。

如图6所示,本发明提供的预警方法采用与本发明提供的预警装置相同的程序代码,以将上述算法进行应用。本发明实际运行中具体实施例的示意图,将每个限制区域设置编号,CPU同时监控多个目标。操作系统可选择Windows系统也可以用Linux系统,这里我们以linux为内核的Ubuntu云服务器为例进行介绍。

云服务器以Ubuntu为基础,采用Java NIO技术做高并发数据接收,接收终端发来的目标位置信息,这种架构可与十万数量级的终端进行通信,实时接收目标的位置信息,收到这些信息后,需要在极短时间内对目标是否在这些限定区域做出判断,根据前述讨论的方法,设计如下计算结构体,其中,每个结构体又包含多个数组:

1、线段结构体:包括线段低端点坐标;线段高端点坐标;线段由两个端点组成,不失一般性,以纵坐标小的一端为第一端点;

2、区域:区域编号数组区域左下坐标数组;区域右上坐标数组;线段数组;线段数目;该区域内目标序号数组;每个区域都有编号,以及外接矩形的左下和右上坐标,线段集合,计算的结果放在序号数组内;

3、计算单位:记录要计算的量,由点坐标和线段组成,该数组会被传送到GPU,由GPU计算出交点坐标,然后传回内存;

4、判断体:点目标数组;区域编号数组;需计算的线段数;有交点的线段数;所占的计算数组起始位置;CPU根据计算的结果进行判断,得出在区域中的目标的详细信息。

采用opencl模型对GPU的运算进行了建模和管理,计算单元在内存中打包完成后,发给显存,GPU中有很多运算单元,称为work item,每个work item有唯一的global id,采用一维模型,核心的代码如下:

以上代码中,GPU中的每个运算单元都会同时运行,相当cpu的几千个浮点计算一次就完成了,大大加快了运算效率。

如图7所示,本发明还提供一种基于GPU的多目标区域限制预警装置,包括CPU处理单元1和GPU处理单元2;CPU处理单元1用于设置参考坐标系,并将每个限制区域对应的坐标和目标点坐标,存储至计算数组中;在预存储单元中,预设计算数组时,如果目标点的纵坐标落入某个限制区域的边界线段纵坐标范围内,则将该目标点的坐标和边界线段的端点坐标存入同一计算数组。

需要说明的是,目标点或限制区域各顶点的位置的坐标可以直接使用经纬度坐标,也可以自定义坐标系和原点,计算它们的偏移坐标。

CPU处理单元遍历每个目标点的坐标,控制GPU处理单元调取计算数组;GPU处理单元用于针对当前一个目标点对应的所述计算数组中的所有限制区域进行交点坐标计算;包括根据当前一个目标点的坐标,以该目标点为起始点构建水平射线,计算所述水平射线与所述限制区域的每条边界线段的交点坐标,并将计算的交点坐标值发送至CPU处理单元;完成后跳转下一个目标点,以此类推,直至计算出所有目标点与所述计算数组中所有限制区域的交点坐标。

CPU处理单元还包括预处理单元,预处理单元用于构建每个限制区域的外接矩形,如果目标点的纵坐标落在外接矩形中,则控制GPU处理单元计算水平射线与边界线段的交点坐标;如果目标点的纵坐标没有落在外接矩形中,直接断定该目标点不在限制区域中。如果目标点的纵坐标落入了外接矩形中,GPU处理单元根据直线方程计算目标点的横坐标是否在限制区域的边界线段上。

需要说明的是,对每个限制区域设置外接矩形不局限在步骤2中,设置外界矩形可以在步骤1中,预设计算数组时进行此项操作,如图4(a)为本发明CPU在遍历每个目标点和每个限制区域时的流程图,其中,CPU遍历每一个点,对与每个点,又遍历每个限制区域,如果在这个区域的外接矩形内,则在图4(b)的流程内继续处理,这个流程会遍历区域的每条边,如果目标落在线段的纵坐标内,则将目标的坐标和这条边的端点坐标存入计算数组。

如图3所示,在进行交点判断时,按照上述公式1的直线方程进行计算由于是水平线,纵坐标已知,只需求出横坐标,然后即可判断交点是否在该线段上,如果在,则相交数加1。遍历每条边,即可算出射线与区域的交点数,然后判断点是否在区域里面。

判断单元用于根据接收到的交点的坐标,判断交点是否在限制区域的边界线段上,并计算水平射线与限制区域的交点数,根据交点数判断目标点是否落在限制区域里面。判断单元在根据交点个数进行判断时,如果水平射线与限制区域的边界线段的交点数为偶数时,则该目标点落在限制区域内部,如果交点数为奇数则该目标点落在限制区域外部。

本发明提供的基于GPU的多目标区域限制预警方法中,目标可能会有很多个,限定区域也有多个,每个目标都要针对临近的区域进行判断,每个区域可能有多个边进行判断,公式(1)的计算次数与目标数和区域的边数的积成正比,尽管可以通过外接矩形限定一些点的运算,运算量依然很大,而且系统要求要对多个目标的进行实时判断,因此针对上述问题采用CPU和GPU相结合的架构。即CPU采用流水线对逻辑处理进行了优化,GPU则可以并发高效处理浮点运算,CPU进行多线程处理逻辑判断,判断每个点与该计算的线段放到一个数组内,然后将这个数组传送到GPU,GPU的并发运算单元对数组内的每个元素进行计算,算出交点的坐标,然后传回CPU,CPU再根据交点坐标判断是否在线段上,进而计算该点与区域的边的交点个数,得到点是否在区域内的判断。

如图5所示,按照图4的流程形成计算数组后,传入GPU进行运算,运算完的结果后回传内存,CPU再做下一步判断,即如果GPI计算得到的目标点形成的水平射线与限制区域边界线段相交的交点在边界线段上,并且与该限制区域形成的交点数为偶数则判断为该目标点落入了该限制区域内部,如果交点个数为奇数,则该目标点没有落在该限制区域中。

如图6所示,本发明提供的预警方法采用与本发明提供的预警装置相同的程序代码,以将上述算法进行应用。本发明实际运行中具体实施例的示意图,将每个限制区域设置编号,CPU同时监控多个目标。操作系统可选择Windows系统也可以用Linux系统,这里我们以linux为内核的Ubuntu云服务器为例进行介绍。

云服务器以Ubuntu为基础,采用Java NIO技术做高并发数据接收,接收终端发来的目标位置信息,这种架构可与十万数量级的终端进行通信,实时接收目标的位置信息,收到这些信息后,需要在极短时间内对目标是否在这些限定区域做出判断,根据前述讨论的方法,设计如下计算结构体,其中,每个结构体又包含多个数组:

1、线段结构体:包括线段低端点坐标;线段高端点坐标;线段由两个端点组成,不失一般性,以纵坐标小的一端为第一端点;

2、区域:区域编号数组区域左下坐标数组;区域右上坐标数组;线段数组;线段数目;该区域内目标序号数组;每个区域都有编号,以及外接矩形的左下和右上坐标,线段集合,计算的结果放在序号数组内;

3、计算单位:记录要计算的量,由点坐标和线段组成,该数组会被传送到GPU,由GPU计算出交点坐标,然后传回内存;

4、判断体:点目标数组;区域编号数组;需计算的线段数;有交点的线段数;所占的计算数组起始位置;CPU根据计算的结果进行判断,得出在区域中的目标的详细信息。

采用opencl模型对GPU的运算进行了建模和管理,计算单元在内存中打包完成后,发给显存,GPU中有很多运算单元,称为work item,每个work item有唯一的global id,采用一维模型,核心的代码如下:

以上代码中,GPU中的每个运算单元都会同时运行,相当cpu的几千个浮点计算一次就完成了,大大加快了运算效率。

根据本发明实施例的一种基于GPU的多目标区域限制预警方法与装置,采用CPU和GPU相结合的架构形式,采用射线交点法判断目标点是否在限制区域内部,通过CPU进行多线程处理逻辑判断,结合GPU进行并发高效处理浮点运算,实现了多目标点多限制区域快速判断,减少了CPU的资源占用,提高了响应速度,避免对监控平台造成资源占用的影响。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

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