三维雷达体的布尔融合方法与流程

文档序号:17737278发布日期:2019-05-22 03:20阅读:313来源:国知局
三维雷达体的布尔融合方法与流程

本发明涉及军事地理信息系统技术领域,具体涉及一种三维雷达体的布尔融合方法,可用于三维雷达探测范围的整体建模显示、雷达探测范围与地形的整体建模显示、多部雷达与探测目标的位置关系判断、根据条件与需求计算多部雷达的部署位置。



背景技术:

随着智能化时代的来临,在未来战场中的决策需要计算机辅助做出更加智能化的分析来应对瞬息万变的战场环境。稳定高效的三维雷达体的布尔融合在诸多应用中有着非常重要的意义。例如:根据雷达探测范围的三维叠加计算与显示,辅助我军做出决策;根据雷达探测范围的三维叠加计算与显示,分析如何部署有限部雷达可以覆盖整个三维空间的战场;根据雷达的探测范围的叠加计算与显示,分析我军多点打击敌方的火力交叉范围;根据雷达的探测范围与敌方多点空间威胁范围的叠加计算与显示,辅助我军做出防御部署;根据水下雷达探测的危险区域的叠加计算与显示,规划合理的潜艇航行路线;根据雷达探测范围与地形起伏范围的叠加计算与显示,构建出雷达探测范围与地形融合的空间区域等等。

以上军事领域所面临的问题都急需去解决,基础在于必须研究出一套完整稳定高效的三维雷达体的布尔融合方法,在此基础上结合军事需求,运用该基础科学做出智能化分析与决策。目前开源的代码如occ不适合地理信息的三维雷达体布尔运算,1、代码十分庞大,很难进一步优化;2、结构体过于复杂,把地理信息的数据传入其结构才能进行计算,这个构造过程效率很低;3、对于地理信息的大数据量的计算,occ效率较差。综上所述,一套成熟与完整的三维雷达体的布尔融合方法是一个非常有实际意义的研究课题。



技术实现要素:

有鉴于此,本发明提供了一种三维雷达体的布尔融合方法,能够完整稳定高效地进行雷达体融合。

本发明的三维雷达体的布尔融合方法,对三维雷达体3dp1和3dp2进行指定的交、并或差的融合方式进行融合,生成三维雷达体3dresult;初始时,3dresult为空集;包括如下步骤:

步骤1,根据指定融合方式所对应的三维多边形丢弃原则,在三维中过滤掉3dp1、3dp2需要舍弃的三维多边形,得到3dp1′、3dp2′;

其中,设两个待融合的雷达体t1和t2的多边形集合分别为p1和p2,则:

a)交保留与多边形丢弃原则:p1在t2内部的保留、外部的丢弃,p2在t1内部的保留、外部的丢弃;

b)并保留与多边形丢弃原则:p1在t2内部的丢弃、外部的保留,p2在t1内部的丢弃、外部的保留;

c)t1–t2差保留与多边形丢弃原则:p1在t2内部的丢弃、外部的保留,p2在t1内部的保留、外部的丢弃;

步骤2、将3dp1′、3dp2′投影到同一个二维投影平面上,在所述二维投影平面上根据三维多边形保留原则,提取出需要保留的三维多边形;将提取的三维多边形加入到3dresult,并在3dp1′、3dp2′中去掉,得到3dp1″、3dp2″;

步骤3、将3dp1″、3dp2″中的多边形转化为参数式表达,然后采用高斯列主元消去法获得3dp1″、3dp2″中任意两个三维多边形的相交点;

步骤4、在三维中提取出3dp1″、3dp2″无交点且需要保留的三维多边形加入到3dresult,并在3dp1″、3dp2″中去掉,得到3dp1″′、3dp2″′;

步骤5、根据3dp1″′、3dp2″′中的每一个三维多边形的结点与相交点构造生成新的三维多边形集合;按照多边形保留原则,在三维中提取出新的三维多边形集合需要保留的三维多边形加入到3dresult;获得的3dresult即为最终的融合结果。

进一步的,采用如下方法判断多边形polygon是否在三维体3dbody的内、外部:

(1)多边形polygon在三维体3dbody内部的判断方法如下:

首先,将3dbody投影到一个二维投影平面,求取其投影的外接矩形3dbodyrect;

其次,循环遍历polygon的结点,判断结点在所述二维投影平面上的投影是否在3dbodyrect内部,如果有一个结点在外部则跳出循环,得出结论polygon不在3dbody的内部;

第三,如果第一次循环遍历没有得出结论polygon不在3dbody的内部,则回到三维中,循环遍历polygon的结点,判断结点是否在3dbody内部,如果有一个结点在外部则跳出循环,得出结论polygon不在3dbody的内部;

最后,如果经过两次循环没有得出结论polygon不在3dbody的内部,则得出结论polygon在3dbody的内部;

(2)多边形polygon在三维体3dbody外部的判断方法如下:

首先,将3dbody和polygon投影到同一个二维投影平面,分别求取polygon和3dbody的投影的外接矩形polygonrect和3dbodyrect;

其次,如果polygonrect完全在3dbodyrect的外部,得出结论polygon在3dbody的外部;

第三,如果第一次没有得出结论polygon在3dbody的外部,则回到三维中,循环遍历polygon的结点,判断结点是否在3dbody内部,如果有一个结点在内部则跳出循环,得出结论polygon不在3dbody的外部;

最后,如果经过以上两次判断没有得出结论polygon不在3dbody的外部,则得出结论polygon在3dbody的外部;

其中,多边形上的点在三维体内部的判断方法如下:

首先将所述三维体中的所有多边形以及所述点同时投影到一个二维投影平面,然后判断点是否位于二维多边形的外接矩形的外部,若是,则进行点与下一个三维多边形的判断;否则判断点是否在二维多边形的外部,若是,则进行点与下一个三维多边形的判断,否则回到三维空间中做垂直于所述二维投影平面的射线,求出该射线与对应三维多边形的交点,如果交点存在则将交点个数加1;依次完成点与所有多边形的交点计算,最后统计交点个数,若次数为奇数,则点在三维雷达体内部,若次数为偶数,则点在三维雷达体外部。

进一步的,所述步骤5中,采用如下方法构造生成新的三维多边形:

针对所有有相交点的各三维多边形,将三维多边形上原始的点与相交点一起投影到同一个二维投影平面,剖分成delaunay三角网后映射回三维,形成新的三维多边形。

进一步的,采用gpu并行计算的方式进行布尔融合;其中,两个三维雷达体中三维多边形的保留与丢弃操作、一个三维雷达体的每个三维多边形与另一个三维雷达体的位置关系判断、一个三维雷达体的每个三维多边形与另一个三维雷达体求交点、通过两个三维雷达体中每一个三维多边形的结点与交点构造新的三维多边形、一个三维雷达体的每一个新构造的三维多边形与另一个三维雷达体的位置关系判断,采用并行计算的方式进行。

进一步的,二维投影平面的选取方法:多边形在该二维投影平面上的面积不为0。

有益效果:

利用本发明的方法:可以快速判断三维点是否在三维雷达体的内部,快速判断三维多边形是否在三维雷达体的内部和外部,在以上基础上结合提出的保留与丢弃原则、融合计算的流程、gpu加速计算,在粗粒度与细粒度上进行碰撞检测,大量过滤掉无需计算的多边形或多边形节点减少计算量,极大地提高了计算效率。

一套完整、正确、高效的三维雷达体的布尔融合方法的研究成功,将为以后地理信息多部三维雷达体的整体叠加计算、显示与位置关系的整体判断奠定基础。

附图说明

图1为射线与多边形相交的几种情况。

图2为叉积排序提取新的多边形。

图3为delaunay三角网生提取新的多边形。

图4为delaunay三角网生提取的非法多边形。

图5为三维空间的delaunay三角网剖与二维的对应映射;

图6为两部雷达探测范围的交、并、差融合运算效果图;其中,其中,(a)两个雷达探测范围并融合运算a;(b)两个雷达探测范围交融合运算a;(c)两个雷达探测范围差融合运算a;(d)两个雷达探测范围并融合运算b;(e)两个雷达探测范围交融合运算b;(f)两个雷达探测范围差融合运算b。

图7为三部雷达探测范围的并融合运算效果图。其中,(a)三个雷达探测范围求并融合前;(b)三个雷达探测范围求并融合后。

图8为本发明流程图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供了一种三维雷达体的布尔融合方法。

三维中雷达体的交、并、差运算与二维的面交并差运算有着本质的区别,二维的面交、并、差运算,主要是利用面本身的点串序列的顺序与交点的进出性来构造出新的面。但在三维中,由于构成雷达体的基本元素面集合,在三维空间中面集合是没有一个固定的顺序的,所以二维的计算方式完全不适用。三维雷达体布尔融合的目的就是根据要求(交、并或差)由两个雷达体构造出一个新的雷达体,而这个新体的最主要用途就是判断目标物体与该雷达体的空间关系,所以通俗的说,就是由三维中一组多边形集合与另一组多边形集合根据要求(交、并或差)构造出新的一组多边形集合。显然新的多边形集合分为两类,一类是原有的多边形,这类多边形与另一组多边形集合无交点且符合要求,另一类多边形则是经过计算重新构造出的多边形,这类多边形是由交点与原有多边形集合上的原有节点构造而成的。

由此,本发明的技术方案如下:

(1)三维中多边形的数据结构

由于生成的新的三维多边形是由原多边形的点与该多边形与其它多边形的交点组成,为方便提取新的三维多边形,将数据结构定义如下:

三维空间中点的数据结构

三维空间中多边形的数据结构

三维空间中体的数据结构

(2)计算时选取合理的投影方式

在计算过程中为了使计算简化与提高计算效率经常需要对三维的多面体进行投影转化到二维进行计算。此时需要注意选取不合理的二维投影有可能导致以后的计算完全失去意义。例如:某个三维多边形由5个点组成,而这五个点的x、y坐标完全相同只有z坐标有差别,这时若选择在x、y坐标上进行投影则这五个点将全部堆积在一条直线上,导致后续计算失效。为保证投影后点与点保持原有的拓扑关系,在投影后要对多边形的面积进行计算,若不为0才是合理的投影,如果为0要选择新的投影方式。

(3)三维空间中线段与三维多边形的求交方法

三维空间的线、面目标的表示方法有显示表达公式、参数表达公式等。通过实验选取参数表达公式更便于计算,而且可以提高计算效率与算法的稳定性(参数表达便于快速地转化为计算方程组,适合进行高斯列主元消去法求解)。

三维中直线的参数表达式:

已知(x1,y1,z1),(x2,y2,z2)是直线上的两点,则参数表达式为:

x=x1+t(x2–x1)

y=y1+t(y2–y1)

z=z1+t(z2–z1)

三维中面的参数表达式:

已知(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)是面上的三点,则参数表达式为:

x=x1+u(x2–x1)+v(x3–x1)

y=y1+u(y2–y1)+v(y3–y1)

z=z1+u(z2–z1)+v(z3–z1)

三维空间中线段与多边形的求交

已知(px1,py1,pz1),(px2,py2,pz2)是直线上的两点,(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)是面上的三点。

根据直线与面的参数表达式得到方程组

px1+t(px2–px1)=x1+u(x2–x1)+v(x3–x1)

py1+t(py2–py1)=y1+u(y2–y1)+v(y3–y1)===〉

pz1+t(pz2–pz1)=z1+u(z2–z1)+v(z3–z1)

u(x2–x1)+v(x3–x1)-t(px2–px1)=px1-x1

u(y2–y1)+v(y3–y1)-t(py2–py1)=py1-y1

u(z2–z1)+v(z3–z1)-t(pz2–pz1)=pz1-z1

由此可以根据高斯消去法求解u、v、t的值。

代入参数方程可求得交点p(x、y、z),如果p是合理的交点,则必须满足该交点在三维线段上且在三维多边形上。

情况1:u、v、t有解

将u、v、t代入参数式方程计算出交点p(x、y、z),若交点是合理的交点保留,反之则丢弃。

情况2:u、v、t无解

除直线与面平行的情况外,此种情况是由于确定直线的两点(px1,py1,pz1),(px2,py2,pz2)中px1与px2相等且py1与py2相等,x1与px2相等且pz1与pz2相等或py1与py2相等且pz1与pz2相等所造成,因此为求交点需改变方式。不妨设px1与px2相等且py1与py2,此时交点p(x、y、z)中x=px1,y=py1,代入方程组可得

px1=x1+u(x2–x1)+v(x3–x1)

py1=y1+u(y2–y1)+v(y3–y1)

由此可以根据高斯消去法求解u、v的值,代入可得

pz1=z1+u(z2–z1)+v(z3–z1)

若交点p是合理的交点保留,反之则丢弃。

(4)判断线段确定直线与多边形确定面的交点是否在多边形上

由于需要判断的交点是线段确定直线与多边形确定面的交点,所以显然若该三维交点在二维平面上的投影点在三维多边形在相应二维平面上的投影多边形的内部,则该三维交点在三维多边形上。这样问题就转化为在二维平面中点在多边形内部的判断。

在判断点是否落在某多边形内,射线法是最常用的方法:从所判断的点向左引水平射线,计算射线与多边形的边界相交的次数,若次数为奇数,则点在多边形内部,若次数为偶数,则点在多边形外部。

这种算法的原理虽然简单,但在现实时却需要考虑一些特殊情况:当计算交点时,如果交点恰好是多边形的某个顶点,必须小心处理。如果这两条边的其余两端点在射线同侧,则认为相交两次,反之,异侧则相交一次。如图1(b)所示。还有一种情况,当射线与多边形重合时,判断更为复杂,因为此时设计三条边,如图1(c)所示。由此可见这种方法要处理的特殊情况多,效率低,使判断十分复杂和繁琐。因此,本发明采用“高端点去除法”,能够在相当程度上提高了通过性和效率。

高端点去除法的核心思想是:对参与判断的多边形上的每条边,在计算交点时,都把边上两个端点中高端点去掉,即将两端点中y坐标较大的端点不参与交点计数,实践证明,交点的计算仍是正确的。如果多边形的某条边的两端点y坐标相等,则对该边不作任何处理,记录相交次数的计数器值不变。另外,当发现点恰好落在多边形边界上时,都不需要在计算,直接返回点在多边形上或点不在多边形内的结果即可。

(5)判断三维点是否在三维雷达体的内部

判断三维中点是否落在某三维雷达体内,二维的判断理论同样有效,所以采用射线法进行判断最为有效。从所判断的点向左引水平射线,计算射线与三维雷达体的相交的次数,若次数为奇数,则点在三维雷达体内部,若次数为偶数,则点在三维雷达体外部。

按照射线法进行判断时需要进行大量浮点数运算,效率较低;因此,本发明先进行碰撞检测筛选,即:将三维中的点与组成雷达体的每一个多边形向一个二维投影平面,如xy坐标系投影,首先求出投影后二维多边形的外界矩形,如果点在外界矩形外部则进行点与下一个三维多边形的判断,否则判断投影后点是否在二维多边形的内部,如果点在二维多边形外部则进行点与下一个三维多边形的判断,否则回到三维空间中做与二维投影平面相垂直的射线,求出该射线与该三维多边形的交点,如果交点存在则将交点个数加1。最后统计交点个数,若次数为奇数,则点在三维雷达体内部,若次数为偶数,则点在三维雷达体外部。

三维点point(x,y,z)做单边射线与三维多边形求交点的方法与三维空间中线段与面的求交方法完全类似,只是这时合理的点必须要求在单边射线上。例如将三维点point沿z轴向上做单边射线,则求出的交点(xj,yj,zj)必须满足在三维多边形上且满足zj>z才是合理的交点。

(6)判断三维多边形是否在三维雷达体的内部和外部

若三维多边形在三维雷达体的内部需要满足以下两个条件:1、三维多边形与三维雷达体无交点;2、三维多边形的结点全部在三维雷达体的内部。

若三维多边形在三维雷达体的内部要满足以下两个条件:1、三维多边形与三维雷达体无交点;2、三维多边形的结点全部在三维雷达体的外部。

由此可见,若要按照以上计算方法要进行大量的浮点数计算,会使效率降低,在实际应用中,两个雷达体进行计算时,一个三维雷达体的绝大多数三维多边形是在另一个三维雷达体的内部或外部,由此,本发明先进行碰撞检测判断是否需要进一步计算,可以极大地提高效率。

不妨设体在xy坐标平面上的投影是一个合理的投影,设参与判断的三维雷达体与三维多边形为polygon和3dbody。

1、提高内部判断效率

首先,求出3dbody在xy坐标平面上投影的外界矩形3dbodyrect。

其次,循环遍历polygon的结点,判断结点在xy坐标平面上投影是否在3dbodyrect内部,如果有一个结点在外部则跳出循环,得出结论polygon不在3dbody的内部。

第三,如果第一次循环遍历没有得出结论polygon不在3dbody的内部,则回到三维中,循环遍历polygon的结点,判断结点是否在3dbody内部,如果有一个结点在外部则跳出循环,得出结论polygon不在3dbody的内部。

最后,如果经过两次循环没有得出结论polygon不在3dbody的内部,则得出结论polygon在3dbody的内部。

2、提高外部判断效率

在三维空间中外部判断不能采取内部判断同样的方式,因为三维点在三维雷达体的外部,其投影未必不会在内部,而三维点在三维雷达体的内部,无论如何投影也必会在内部。

首先,求出polygon在xy坐标平面上投影的外界矩形polygonrect和3dbody在xy坐标平面上投影的外界矩形3dbodyrect。

其次,如果polygonrect完全在3dbodyrect的外部,得出结论polygon在3dbody的外部。

第三,如果第一次没有得出结论polygon在3dbody的外部,则回到三维中,循环遍历polygon的结点,判断结点是否在3dbody内部,如果有一个结点在内部则跳出循环,得出结论polygon不在3dbody的外部。

最后,如果经过以上两次判断没有得出结论polygon不在3dbody的外部,则得出结论polygon在3dbody的外部。

(7)三维雷达体的布尔融合中交、并、差的三维多边形保留与丢弃的原则为构造经过计算生成的新多边形集合,对于原有的多边形与重新构造出的多边形的保留与丢弃的原则如下:

设参与计算的两个雷达体t1和t2的多边形集合分别为ps1和ps2,不难理解重新生成的多边形一定是在t1或t2上,设t1上的新多边形集合为pts1,t2上的新多边形集合为pts2。

a)交保留与多边形丢弃原则

ps1在t2内部的保留、外部的丢弃,ps2在t1内部的保留、外部的丢弃,pts1在t2内部的保留、外部的丢弃,pts2在t1内部的保留、外部的丢弃。

b)并保留与多边形丢弃原则

ps1在t2内部的丢弃、外部的保留,ps2在t1内部的丢弃、外部的保留,pts1在t2内部的丢弃、外部的保留,pts2在t1内部的丢弃、外部的保留。

c)差(t1–t2)保留与多边形丢弃原则

ps1在t2内部的丢弃、外部的保留,ps2在t1内部的保留、外部的丢弃,pts1在t2内部的丢弃、外部的保留,pts2在t1内部的保留、外部的丢弃。

(8)新生成三维多边形的构造

经过计算所有有交点的三维多边形都要经过重新组合生成碎小的新的三维多边形,这些三维多边形要根据三维雷达体运算的类型进行保留与丢弃的选择。

在相关的文献中经常要采用叉积排序的方法进行组合,但在有些生成凹多边形时并不适用,如图2所示,在这种情况下叉积排序并不一定可以提出p1和p2。

采用将原始的点与交点一起剖分成delaunay三角网生成细小的多边形更能适应多种复杂的情况,如图3所示。

在有些情况下由于计算机的误差会造成提取非法的多边形,如图4所示,此时需要进行特殊处理。此种多边形的特点就是有一个内角十分接近180度,筛选出这样的多边形,将交点调整到多边形的边上即可。

三维空间的delaunay三角网剖分比较复杂且计算量较大,本发明采用先将多边形投影到二维平面上进行delaunay三角网剖分,再映射回三维,这样既简单又高效,如图5所示。

(9)三维雷达体运算的大致流程

设最后生成的三维雷达体为3dresult,参与计算的三维雷达体为3dp1、3dp2。

步骤1、按照交、并、差的三维多边形丢弃的原则,在三维中过滤掉3dp1、3dp2需要舍弃的三维多边形,得到3dp1’、3dp2’待进一步计算。

步骤2、按照交、并、差的三维多边形保留的原则,在二维投影平面上初步提取出3dp1’、3dp2’需要保留的三维多边形加入到3dresult并在3dp1’、3dp2’中去掉,得到3dp1”、3dp2”待进一步计算。

步骤3、计算3dp1”、3dp2”中每个三维多边形的交点。

步骤4、按照交、并、差的三维多边形保留的原则,在三维中提取出3dp1”、3dp2”无交点且需要保留的三维多边形加入到3dresult并在3dp1”、3dp2”中去掉,得到3dp1”’、3dp2”’待进一步计算。

步骤5、根据3dp1”’、3dp2”’中的每一个三维多边形的结点与交点构造生成新的三维多边形集合,并按照交、并、差的三维多边形保留的原则,在三维中提取出新的三维多边形集合需要保留的三维多边形加入到3dresult。

步骤6、最后得到结果3dresult。

(10)gpu加速计算

在三维雷达体布尔融合运算的过程中,所有浮点数计算都是三维多边形与三维雷达体的判断或三维多边形与三维多边形的计算,这些任务都是不相关的,根据这个性质,将不相关的任务分为以下几类,其中下一级标题为上一级的进一步划分。

i、两个三维雷达体中三维多边形的保留与丢弃操作。

ii、一个三维雷达体的每个三维多边形与另一个三维雷达体的位置关系判断。

ii.i、一个三维雷达体的每个三维多边形的每个结点与另一个三维雷达体的位置关系判断。

ii.i.i、一个三维雷达体的每个三维多边形的每个结点的单边射线与另一个三维雷达体的每一个三维多边形求交。

iii、一个三维雷达体的每个三维多边形与另一个三维雷达体求交点。

iii.i、一个三维雷达体的每个三维多边形与另一个三维雷达体的每个三维多边形求交点。

iii.i.i、一个三维雷达体的每个三维多边形的每一条三维线段与另一个三维雷达体的每个三维多边形求交点。

iv、通过两个三维雷达体中每一个三维多边形的结点与交点构造新的三维多边形。

v、一个三维雷达体的每一个新构造的三维多边形与另一个三维雷达体的位置关系判断。具体划分如ii.i,ii.i.i。

以上不相关的任务将整个过程从粗粒度与细粒度两个方面进行了划分,采用并行编程的方法进行并行计算是本算法加速的主要手段。

基于两部雷达的交、并、差运算效果图,如图6所示。

基于三部雷达的交运算效果图,如图7所示。

由图6和图7可以看出,融合后的效果准确。

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

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