一种复杂目标对背景光辐射的二次散射计算方法与流程

文档序号:15982697发布日期:2018-11-17 00:31阅读:467来源:国知局

本发明属于复杂背景中目标对背景辐射的光散射领域,主要涉及空间复杂目标建模,背景的光学辐射计算,目标板块间单次及二次光散射判别及计算,计算结果可以应用到海面、空间中目标的散射特性计算、目标的跟踪及识别等方面。

背景技术

复杂目标对背景光辐射的二次散射计算方法在海面、太阳、天空等背景中复杂目标的光学信息的检测、识别与跟踪上有重要的应用价值。复杂目标对各种背景光学辐射的散射特性计算是研究目标特性的重要手段,是复杂目标光学特性检测的重要组成部分,研究复杂目标对背景辐射的二次散射特性,为目标特性计算提供了更加精确的计算结果。

当前对目标二次散射的研究多是对雷达散射界面(rcs)的研究。而由于目标对二次散射rcs的预估和目标对太阳、天空和海面的光学波段二次散射算法上存在根本上的差异,所以在计算目标对太阳、天空和海面的二次散射研究中只能提出特定的方法。

在对目标进行二次散射的研究时,需要对目标进行单独计算。在“目标光散射特性计算中光线追踪算法研究与实现”一文中,吴开峰等人利用光线追踪的思想给出了比较有效的光线测试计算方法,并利用该测试方法运用到对复杂目标光散射特性理论建模中,并给出了复杂目标在太阳光照下的二次散射效应的光散射亮度图。但是该算法并未给出具体的计算面元对之间散射面积的计算。在“复杂目标多次散射计算的高频混合方法研究”一文中,赵维江等人在几何光学方法的基础上,结合几何光学方法和射线追踪方法导出了一种能有效计算复杂目标多次散射的方法-区域投影物理光学法,该方法能够有效计算出面元对之间散射面积大小,并对目标rcs计算能够取得比较好的精度,但是该方法在计算散射面积时,所用的几何方法不够直观,编程实现比较复杂。而且该方法是专门应用于目标对雷达的二次散射计算,因此在计算复杂目标对背景的二次散射时,在判断二次散射发生条件以及计算散射面积时仅由提供参考价值,还需要新的算法计算目标对太阳、天空和海面的二次散射。



技术实现要素:

本发明针对现有技术的不足,提供了一种复杂度低、易于编程的复杂目标的二次散射计算方法。

本发明是一种复杂目标对背景光辐射的二次散射计算方法,其特征在于,包括有以下步骤:

步骤一:建立目标模型:通过3dmax建立目标的3dmax模型,然后将建立的3dmax目标模型转换为mod模型;mod模型分为五部分组成,第一部分为模型格式识别信息、面元数和顶点数;第二部分为面元索引值、部件索引值、材质索引值、色彩索引值和顶点索引值;第三部分为顶点索引和点的坐标值;第四部分为部件索引值和部件类型名称;第五部分为材质索引值和材质名称。

步骤二:输入目标的mod模型信息:首先利用几何方法对模型进行自遮挡处理,然后针对自遮挡处理后的目标mod模型中的所有面元,将面元之间的遮挡利用z-buffer消隐算法处理,z-buffer消隐算法通过将入射方向或散射方向为z轴建立笛卡尔三维坐标系,把目标mod模型投影到这个坐标系中,把投影后的目标mod模型在xoy平面内划分为若干个像素,像素的个数应该远大于模型的面元数,根据像素在坐标系中的位置信息,保存所有像素中未被其他像素遮挡的像素信息,最后通过保存的像素信息即可以得到目标mod模型所有面元中每个面元未被遮挡的面元面积大小,如果面元被遮挡的面积小于一半则认为这个面元未被遮挡,否则认为面元被遮挡;最后在目标mod模型中去除所有的遮挡面元,得到未被遮挡的目标mod模型;

对未被遮挡的目标mod模型面元进行背景光辐射下的二次散射计算;

步骤三:目标面元对之间二次散射初次判断:对未被遮挡的目标mod模型所有面元遍历依次作为初始面元即面元1和剩余面元之间进行判断,如果可能发生二次散射,则这两个面元组成一个面元对,执行步骤四,进行坐标系转换,并计算这个面元对之间的二次散射,如果未发生二次散射则重复执行步骤三,进行下一个面元对之间的二次散射初次判断;

步骤四:坐标系转换:以太阳作为入射光为例,要计算目标对太阳的二次散射,通过太阳入射方向计算得到太阳光照射到面元1上的镜像散射方向,以镜像散射方向为z轴建立新坐标系,将该新坐标系定义为s坐标系,s坐标系仍然为笛卡尔三维坐标系,把面元对投影到s坐标系的xoy平面内;

步骤五:计算面元对之间的散射面积:在步骤四建立的s坐标系中,在x0y平面内投影面元之间的位置关系有相交、分离和包含,保存面元线段之间所有的交点和互相包含的点,然后去除重复点,如果剩余的点的个数小于3,则证明不能形成闭合面积,即不能发生二次散射;否则对剩余各点找出y值最小的点设为minp,依次计算出其他各点相对于minp的张角大小,根据张角大小对各点进行排序,最后对排好序的点进行多边形面积计算;

步骤六:计算并完成复杂目标对背景光辐射的二次散射:根据双向反射分布函数(brdf)求出面元1上的镜像散射亮度大小,通过辐亮度和辐照度之间的转换关系,得到面元2接收到的辐照度,然后根据步骤五求出的相交面积大小求出面元对上面元1和面元2的散射面积大小,最后根据面元2上的双向反射分布函数(brdf),对面元之间的二次散射进行计算,进而完成复杂目标的二次散射计算。

本发明通过判断复杂目标面元对之间能否发生二次散射,并计算二次散射面元散射的面积,实现对复杂目标对背景光辐射的二次散射计算。

与现有技术相比,本发明的优点:

1.复杂度低:在计算面元对之间二次散射时,比较困难的地方就是如何计算面元之间散射面积的大小。本发明计算复杂目标的二次散射时对散射面积的计算提出了一种复杂度较低的算法。通过一个面元的镜像散射方向作为z轴建立一个新坐标系,将能够发生二次散射的面元对投影到新坐标系中,通过判断两个投影面元的位置关系把存在相交、包含的点保存;保存的点中通过找出其中y值最小的一个点,然后计算出剩余各点对这个点的张角大小并进行排序,对拍好序的点计算其围成的多边形面积,进而完成一个面元对上面元之间的二次散射亮度。最后对所有面元对进行计算,得到整个目标的二次散射大小。

2.易于编程:本发明具有易于编程的特点,在计算复杂目标二次散射计算的过程中,需要计算面元对之间的散射面积大小,其中涉及多边形求交的问题,在本发明中,对散射面积大小的计算只需要用简单的编程语言就可以实现,而且在计算过程中对面元之间能否发生二次散射也做了判断,方法通俗易懂,比较容易编程实现。无论在计算海面目标二次散射还是在空间目标的二次散射时,按照本方法都能够使用比较方便的编程语言来实现目标对背景光辐射的二次散射的计算。

附图说明

图1为本发明方法的流程图;

图2面元二次散射初次判断模型示意图;

图3面元对相交示意图;

图4面元对包含示意图;

图5为各点相对于minp点的张角图;

图6面元对二次散射示意图;

图7为本发明计算实例模型;

图8为本发明计算时采用的铝窝蜂材质brdf模型;

图9为本发明计算时,可见光条件下,太阳天顶角45度时的太阳光谱辐照度;

图10为利用本发明所计算的目标对太阳光辐射的散射亮度,分别为计算了二次散射的散射亮度和未计算二次散射的散射亮度。

具体实施方式

实施例1

在对复杂目标的二次散射进行计算时,现有技术中有人利用区域投影物理光学法计算复杂目标的二次散射,虽然能够有效计算出散射面积的大小,但是在编程实现的时候比较复杂,而且此方法是专用于计算雷达散射截面(rcs),对于复杂目标在不同背景下的计算没有普遍意义。本发明针对上述问题经过研究提出一种复杂目标在阳光、天空和海面光辐射背景下的二次散射计算方法,参见图1,包括有以下步骤:

步骤一:建立复杂目标模型:通过3dmax建立目标的3dmax模型,然后将建立的3dmax目标模型导出格式为3ds的文件,通过导出的3ds文件将其修改为本发明所用文件类型为mod的目标模型,目标mod模型面元类型为三角面元;mod模型分为五部分组成,第一部分为模型识别信息、面元数和顶点数;第二部分为面元索引值、部件索引值、材质索引值、色彩索引值和顶点的索引值;第三部分为顶点索引和点的坐标值,一个顶点索引对应三个坐标值;第四部分为部件索引值和部件类型名称;第五部分为材质索引值和材质名称。修改后的mod文件模型信息内容更加简单,能够比较清楚直观的看出模型的面元数和顶点数,在编程读取文件的面元信息和顶点信息时,更加容易编程实现。当利用opengl实现模型的界面化时,通过建立好的mod模型,更容易根据自己的需要调整模型,能够更加容易的读取文件信息,所以本发明采取mod文件类型的模型进行计算,如图7所示,图7是本发明所用的一个示例模型,模型由一个边长10米的正方形平板和一个边长为2.5米的正方体组成,这个正方体位于平板的中心位置,而且正方体上下两底面的边与平板的边相平行,为了便于理解,图中对太阳入射方向和探测器接受方向都做了明显的标注,图中太阳入射方向为指向模型中心,为z轴偏向x轴45度方向,探测器方向为从z轴出发沿顺时针到x轴。本发明所述的复杂目标是一个立体模型,它由成千上万个面元组成的一个立体复杂目标,在计算过程中,需要对模型的所有面元进行计算。在下述描述中,如未特殊说明,所提到的目标均指复杂目标。

步骤二:输入目标的mod模型信息:在建立的mod模型中,首先利用几何方法对mod模型进行外部自遮挡处理,自遮挡处理是利用入射方向反方向与面元法线的夹角大小来判断面元是否被自身遮挡,如果夹角大于90度,则认为面元被自身遮挡,如果夹角小于90度则认为面元没有被自身遮挡,而对于复杂目标面元之间的遮挡问题,简单的几何方法则不能进行正确的判断。因为复杂目标的一个面元在一个入射方向可能被其它面元遮挡,但是这个被遮挡的面元符合几何关系因此并不能被判定为遮挡,所以针对经过几何方法消隐后的目标mod模型中并不能消除面元之间的互遮挡问题,本发明利用z-buffer消隐算法处理面元互相遮挡的问题。z-buffer消隐算法的基本原理为:通过入射方向或散射方向为新坐标系的z轴建立笛卡尔三维坐标系,并将舰船坐标系中z轴在新坐标系的xoy平面的投影作为新坐标系的y轴,也就是基于z-buffer算法建立的新坐标系。本发明把目标mod模型投影到这个新坐标系中,则这个投影后的目标mod模型在新坐标系的xoy平面内为一个平面模型,把这个平面模型在xoy平面内划分为若干个像素,像素的个数应该远大于目标mod模型的面元数,根据像素在新坐标系中位置信息,保存所有像素中未被其他像素遮挡的像素信息,最后通过保存的像素信息即可以得到目标mod模型中每个面元在舰船坐标系中未被其他面元遮挡的面元面积大小。本发明中如果面元被遮挡的面积小于一半则认为这个面元未被遮挡,否则如果面元被遮挡的面积大于或等于一半认为面元被遮挡。最后在目标mod模型中去除所有的遮挡面元,得到复杂目标未被遮挡的目标mod模型。

对未被遮挡的目标mod模型进行二次散射计算;

步骤三:目标面元对之间二次散射初次判断:对未被遮挡的目标mod模型所有面元遍历并依次作为初始面元即面元1和剩余面元进行判断,如图2所示,面元1中心到面元2中心的方向矢量为则从面元1和面元2的位置关系可以看出,如果方向矢量与面元1法线方向的夹角小于90度且方向矢量与面元2的夹角大于90度时,则认为这两个面元之间可能发生二次散射,把这两个面元组成一个面元对,执行步骤四,进行坐标系转换,并计算这个面元对之间的二次散射,面元对包含面元1和面元2;如果未发生二次散射则重复执行步骤三,进行下一个面元对的二次散射初次判断。

步骤四:坐标系转换:以太阳光作为入射光为例,要计算目标对太阳的二次散射,通过太阳入射方向计算得到太阳光照射到面元1上的镜像散射方向,以镜像散射方向为z轴建立新坐标系,将该新坐标系命名为s坐标系,舰船坐标系中z轴在s坐标系xoy平面内的投影为新坐标系的y轴,该s坐标系仍然为笛卡尔三维坐标系,把面元对投影到s坐标系的xoy平面内,与原坐标系相比,建立s坐标系的目的是为了方便计算面元对的散射面积,因为目标模型为立体模型,所以如果不建立s坐标系则需要计算空间中两个面元的散射面积,比较复杂,而本发明把面元对投影到s坐标系中时,只需要计算出在s坐标系中投影面元对在xoy平面内的相交面积大小,再通过坐标系反变换就可以计算得到面元对中面元1和面元2的散射面积大小,大大简化了计算过程,也易于编程实现。

步骤五:计算面元对之间的散射面积:在s坐标系中,投影面元对下x0y平面内的位置关系有相交、分离和包含。图3为面元对相交示意图,如图3所示,面元1在s坐标系xoy平面内的投影面元为面元11,面元2在s坐标系xoy平面内的投影面元为面元21,把面元11的三条边依次对面元21的三条边进行求交测试,保存相交的点。如果在计算过程中,两个线段有重合部分,把重合部分的两个点作为被包含的点。如果两条线段不相交则认为没有交点。图4为面元对相互完全包含示意图,面元对在s坐标系xoy平面内的投影面元对为面元11和面元21,根据图4可以看出,面元21完全被包含在面元11内,则被包含的顶点一共有三个,则把这三个点的坐标都保存。包含分为全部包含和部分包含,如果目标的一个面元的部分顶点在另一个面元内也属于包含的情况,把所有被包含的顶点坐标保存。如果投影面元对在s坐标系中xoy平面内相互分离的话则没有相交点。保存面元线段之间所有的交点和互相包含的顶点并去除重复点,如果保存点的个数小于3,则证明保存的点不能形成闭合面积,即不能发生二次散射,返回到步骤三,继续进行目标下一个面元对之间二次散射初次判断。否则,如果保存点的个数大于等于3,则在保存的点中找出s坐标系中xoy平面内y值最小的点并设为minp,依次计算出其他各点相对于minp点的张角大小,根据张角大小依次对各点进行排序,最后对排好序的点进行多边形面积计算。

步骤六:计算并完成复杂目标对背景光辐射的二次散射:根据双向反射分布函数(brdf)求出太阳光在面元1上的镜像散射亮度大小,通过辐亮度和辐照度之间的转换关系,得到在面元2上接收到的光谱辐照度,然后根据步骤五中求得的相交面积大小和s坐标系中z轴与面元对两个面元的夹角大小,求出在面元对上面元1和面元2的散射面积大小,最后根据面元2上的双向反射分布函数(brdf),对面元对中面元1对面元2的二次散射进行计算,进而完成复杂目标的二次散射计算。本发明是以太阳光作为辐射源来为例进行计算,太阳光入射方向单一,比较容易计算,如图10所示计算结果即为目标在太阳光辐射下的计算了二次散射的亮度值和未计算二次散射亮度值的一个对比图。

本发明研究目标对天空背景和海面背景的二次散射计算时同样具有可行性,只需要将面元在每一个方向都按照上述方法进行计算并对所有角度进行积分即可。以舰船目标对背景光辐射的二次散射计算为例,舰船不仅受到太阳光辐射还同时受到天空背景光辐射和海面背景光辐射,计算舰船对太阳光辐射的二次散射时,由于太阳入射方向单一,计算简单,按照上述例程即可完成目标对太阳光辐射的二次散射计算;在计算目标对海天背景光辐射的二次散射时,需要对空间中每一个方向进行计算,目标面元在空间中能够接收到海天背景光辐射的方向一共有180x360个,在计算目标对海天背景光辐射的二次散射计算时,需要对每一个方向进行计算。在计算目标对海天背景光辐射的二次散射时,目标面元同时接收到海面背景光辐射和天空背景光辐射,在计算时判断面元在一个方向上接收到的是天空背景光辐射还是海面背景光辐射按如下方法区分,即如果入射光在舰船坐标系下的入射角小于90度则认为这个面元接受到的是天空背景辐射,如果入射光在舰船坐标系下的入射角大于90度则认为这个面元接受到的是海面背景辐射,最后对目标面元接收到的每一个方向作为上述例程的入射方向进行计算,最后进行积分求和,就可以得出复杂目标对海天背景光辐射的二次散射亮度。所以在计算时,目标海天背景光辐射的二次散射计算和目标太阳背景光辐射下的二次散射计算的区别就是,天空和海面背景辐射对目标的二次散射是将面元能够接收到的每一个方向作为入射方向进行计算,而目标在太阳背景光辐射下的二次散射只需要把太阳光照射方向作为入射方向即可。所以本方法对计算复杂目标对海面背景光辐射和天空背景光辐射同样具有可行性。本方法对计算飞机、卫星、车辆等的二次散射均具有较高的工程应用价值。

在计算复杂目标二次散射时,比较困难的地方就是如何计算面元对之间散射面积的大小。本发明提出了一种计算面元之间散射面积的新算法,复杂度低,易于编程。通过一个面元的镜像散射方向作为z轴建立一个新坐标系,将能够发生二次散射的面元对投影到新坐标系中,通过判断两个投影面元的位置关系把存在相交、包含的点保存;保存的点中通过找出其中y值最小的一个点,然后计算出剩余各点对这个点的张角大小进行排序,然后计算多边形的面积,最后根据坐标系逆变换求出面元对上面元1和面元2的散射面积大小。

本发明针对目标对太阳的二次散射提出一种较为有效的算法,因此也具有工程应用价值。

实施例2

复杂目标的二次散射计算方法同实施例1,步骤四中所述的坐标系转换包括有以下步骤:

4.1设太阳入射方向为则入射光线和面元1的法线利用如下几何公式可求得入射光线方向在面元1上的镜像反射方向

4.2以反射方向作为新坐标的z1轴,新坐标系x1o1y1平面与反射波方向垂直,y1轴取为舰船坐标系的z轴在x1o1z1平面内的投影,新坐标系即为前文提到的s坐标系,舰船坐标系和s坐标系转换关系如下:

其中θ为太阳光入射方向在地舰船坐标系上的入射角,为太阳光入射方向在减产坐标系上的方位角,o1x1y1z1表示s坐标系,oxyz为舰船坐标系,为s坐标系中x1轴方向,为s坐标系的y1轴方向,为s坐标系的z1轴方向。

本发明转换坐标系的目的是为了把计算三维坐标中两个三角形的散射面积转换为计算二维平面下两个三角形的相交面积,简化了计算过程。本发明以面元1上的镜像散射方向为z轴建立s坐标系,舰船坐标系中z轴在s坐标系中xoy平面内的投影为y轴,目的是为了能够使计算的面元对在新坐标系中保持直立,而且能够方便的计算面元对在s坐标系下x1o1y1平面内的相交面积,以便最终对目标的二次散射进行计算,所以本发明设计了坐标变换并对复杂目标二次散射进行了计算,使整个计算过程比较易于程序化实现和计算。

实施例3

复杂目标的二次散射计算方法同实施例1,步骤五中所述的在s坐标系下计算面元对之间的散射面积,包括有如下步骤:

5.1能够发生二次散射的面元对面元1和面元2在s坐标系中xoy平面内的投影面元分别为面元11和面元21,这两个投影面元之间的关系在s坐标系中xoy平面内有三种:相交、包含和分离。相交是指投影面元对边与边之间是否相交,参见图3。包含是指投影面元对两个三角形的顶点是否被包含,参见图4。而分离则是投影面元对在s坐标系下没有任何交点和包含点,所以在计算散射面积时只需要对相交和包含两种情况进行讨论即可。

5.2将面元11和面元21在s坐标系下xoy平面内的三条边依次进行求交测试,如果有相交点,则保存相交点的坐标,如图3所示,将面元11的三条边对面元21的三条边依次进行求交测试,则从图中明显的看到有四个交点,所以把四个交点保存。如果在判断过程中,出现判定的两条边有重合的部分,则把重合部分的两个点当作包含点处理。如果判定的两条边经判定没有相交,则认为这两条边没有相交点。

5.3判断面元11和面元21在s坐标系下xoy平面内是否存在相互包含的情况,如图4所示,面元21完全被面元11包含,所以把这三个点保存。本发明判断面元对相互包含的方法是依次判断s坐标系中xoy平面内面元11的三个顶点是否在面元21内,然后再判断面元21的三个顶点是否在面元11内。以判断面元11的三个顶点是否在面元21内为例,依次选择面元11的三个顶点作为待判断的顶点,这个参与判断的顶点与面元21的三个顶点可以组成三个三角形,如果这个参与判断的顶点在面元21内,则这三个三角形的面积和与面元21的面积大小相等。如果面元11参与判断的顶点把面元21分成的三个三角形的面积和与面元21面积不相等,则证明面元11参与判断的顶点不在面元21内,依次对面元11的三个顶点进行上述判断,保存所有符合条件的点,然后依次按照上述方法判断面元21的三个顶点是否在面元11内,然后把所有符合条件的点保存。

5.4对所有保存的点坐标进行查重处理,删除保存的点坐标中xy坐标值相同的点,具体方法是如果两个点的x坐标值相差绝对值不超过10-4且y坐标值相差绝对值不超过10-4就认为两个点坐标是重合的,如果删除重复点后剩余点的个数小于3,则这两个三角面元不能发生二次散射,执行步骤三,进行下一个面元对的二次散射初次判断。否则,即删除重复点后剩余点的个数大于等于3则认为这两个面元能发生二次散射,执行步骤5.5,对保存的点进行排序。

5.5对保存的点进行排序:对保存的各点中找出投影到s坐标系下xoy平面内y值最小的点设为minp,如图5所示,图5中的四个点和minp点是步骤5.4中保存的点,然后根据这四个点相对于minp点的张角大小依次进行排序,就得到图中四个排序后的点,即点1、点2、点3、点4。点1、点2、点3和点4相对于minp的张角依次增大,所以按照这个顺序重新保存排序后的各点,最后保存minp点,依次连接保存的各点形成一个可以计算的多边形。

5.6对所有保存的各点进行多边形面积计算:将保存各点形成的多边形看成若干个三角形面积的和进行计算,假设保存的点的个数为n(n≥3),把这n个点依次编号从1到n,则这n个点组成的多边形根据以下组合方式组合成n-2个三角形,即点(1,2,3)、点(1,3,4)…点(1,n-1,n),每一个括号表示一个三角形,所以多边形面积的和就为这n-2个三角形面积的和。按照上述方法求得保存各点围成的多边形面积大小,最后利用s坐标系z轴与舰船坐标系中面元对的两个面元之间夹角,求得面元对上两个面元的散射面积。

实施例4

复杂目标的二次散射计算方法同实施例1步骤六中所述的计算并完成复杂目标的二次散射包括有以下步骤:

6.1根据步骤4.1中求得的面元1上的镜像散射方向和太阳入射方向,求出太阳入射方向在面元1上的入射角和方位角,镜像散射方向在面元1上的散射角和方位角。本发明所用的brdf模型是五参数模型,通过太阳光在面元1上的入射角和方位角,求出在面元1上任意散射方向上的散射亮度,因此根据brdf求得面元1上的镜像散射亮度li:

li=f1esun(λ)cosθi

式子中f1为面元1的brdf大小,esun(λ)为固定波长对应的太阳辐照度,θi为太阳光入射光线与面元1法线的夹角。

6.2根据s坐标系中xoy平面内求得的相交面积大小和s坐标系z轴与面元对中面元1和面元2之间的夹角大小,求出在面元对中面元1和面元2的散射面积大小:面元1的散射面积为s1,面元2的散射面积为s2。

6.3辐亮度和辐照度之间的转换:如图6所示,面元1散射面积s1发出并落到面元2散射面积s2上的辐射通量φ为:

φ=licosθrs1ω

式中θr为面元1法线与两个面元中心连线的夹角,ω为面元2散射面积s2对面元1散射面积s1所张的立体角,即面元1和面元2中心的距离为r,θd为面元2法线与两个面元连线的夹角,则面元1散射面积s1在面元2散射面积s2上产生的光谱辐照度e(λ)为:

e(λ)=f1esun(λ)cosθi·cosθr·cosθd·s1/r2

6.4利用面元2上的brdf即可求得面元1对面元2的二次散射亮度dlr:

dlr=f2(f1esun(λ)cosθi)s2cosθscosθrcosθddλ/r2

最后利用如上公式即可得到复杂目标对太阳的二次散射亮度lr,

完成复杂目标的二次散射的计算,其中n表示所有能发生二次散射的面元对数。

本发明在研究了目标二次散射形成的条件、判定规则的基础上,提出了一种算法实现对目标表面能够发生二次散射的面元对的判断,计算产生二次散射面元的有效面积,并最终完成复杂目标二次散射的计算。

目标光散射特性研究是目标光学特性的重要组成部分之一,复杂目标光散射特性计算中的关键点和难点是解决目标不同部件之间的遮挡关系,以及多次散射问题。在计算复杂目标二次散射时,首先需要对目标能够发生二次散射的面元对进行判断,找出能够发生二次散射的二面角结构,通过找出能够发生二次散射的面元对进行计算,得出面元对之间的二次散射,进而计算出整个目标的二次散射亮度。二次散射的计算对目标检测的精确预估有重要的应用意义。在本发明中首先找出可能发生二次散射的面元对,为了方便计算面元对之间的散射面积,转换坐标系将空间中的面元对投影到转换坐标系的xoy平面内,将三维问题转化为二维问题简化了运算过程,降低了程序的复杂性,通过计算得到的散射面积利用brdf就可以求得面元对之间的二次散射亮度,进而得到整个目标的二次散射亮度。因此本发明在计算复杂目标的二次散射时具有复杂度低、易于编程等优点,适用于在海面目标、空间目标以及地面目标的精确检测,具有较高的工程应用价值。

下面给出一个更加详实的例子,对本发明进一步说明

实施例5

复杂目标的二次散射计算方法同实施例1-4,

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于此描述的其他方法来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实例的限制。

图1为发明的流程图。参照图1,本发明复杂目标二次散射的计算方法包括以下步骤:

步骤一:建立复杂目标模型:通过3dmax建立目标的3dmax模型,然后将模型导出为3ds类型的文件,将3ds模型修改简化为本发明所用的mod模型,mod模型分为五部分组成,第一部分为模型识别信息、面元数和顶点数;第二部分为面元索引值、部件索引值、材质索引值、色彩索引值和顶点的索引值;第三部分为顶点索引和点的坐标值,一个顶点索引对应三个点的坐标;第四部分为部件索引值和部件类型名称;第五部分为材质索引值和材质名称。本发明所用的mod模型相对于3ds来说,将模型内容进行了简化,3ds文件是用二进制进行存储的,里面包含了模型的纹理、贴图等对本发明计算无用的信息,所以在计算的过程中,利用mod模型进行计算更加容易编程实现。图7是本发明所用的一个计算模型,这个计算模型是用一个边长为10m的平板和边长为2.5m的一个正方体组成;

步骤二:输入模型信息,首先利用几何方法对模型进行外部自遮挡处理,即判断目标面元是否背对入射光方向,设入射光线方向的反向矢量为目标面元法线为则由几何关系可知,如果则证明面元背对入射光线,既属于被自身遮挡的面元;如果则证明面元没有被自身遮挡,然后使用z-buffer算法对面元之间的遮挡问题进行处理。z-buffer消隐算法的基本原理为:通过将入射方向或散射方向作为z轴建立笛卡尔三维坐标系,新坐标系的y轴为舰船坐标系z轴在新坐标系xoy平面内的投影,把目标mod模型投影到这个坐标系中,把投影后的目标mod模型在这个坐标系的xoy平面内划分为若干个像素,像素的个数应该远大于目标mod模型面元数,根据像素在新坐标系中位置信息,保存所有像素中未被其他像素遮挡的像素信息,最后通过保存的像素信息得到目标mod模型所有面元中每个面元未被遮挡的面元面积大小,如果面元被遮挡的面积小于一半则认为这个面元未被遮挡,否则如果面元被遮挡的面元面积大于等于一半则认为面元被遮挡;最后在目标mod模型中去除所有的遮挡面元,得到未被遮挡的目标mod模型。对处理后的目标mod模型进行二次散射计算。

步骤三:目标面元对之间二次散射的初次判断:对未被遮挡的目标mod模型所有面元进行遍历,依次作为初始面元即面元1和剩余面元之间进行判断,找出可能发生二次散射的面元对,面元对包含面元1和面元2。如图2所示:n1和n2分别为面元1和面元2的外法线矢量,为面元1中心o1到面元2中心o2的矢量,由几何关系可知,如果三者满足则认为两个面元可能发生二次散射,则执行骤四,进行坐标系变换;否则认为这个面元对之间不存在二次散射则重复执行步骤三,进行下一个面元对之间二次散射初次判断。

步骤四:坐标系转换:以太阳作为入射光为例,假设太阳入射光线为面元1法线为则入射光线利用如下几何公式可以求得入射光线在面元1上的镜像反射波方向

以反射方向作为新坐标系即s坐标系的z1轴,x1o1y1平面与反射方向垂直,s坐标系中y1轴取为舰船坐标系的z轴在x1o1z1平面内的投影,舰船坐标系与s坐标系转换如下:

其中θ为太阳光入射方向在舰船坐标系的入射角,为太阳光入射方向在舰船坐标系上的方位角,o1x1y1z1表示s坐标系,oxyz为舰船坐标系,为s坐标系中x1轴方向,为s坐标系的y1轴方向,为s坐标系的z1轴方向。

在计算面元对上面元1和面元2的散射面积时,由于模型是一个三维立体模型,所以面元对也是位于空间中两个不同的位置,如果直接求取面元对中面元1和面元2的散射面积时难度比较大。所以以面元1镜像散射方向为z轴建立s坐标系,把面元对投影到这个s坐标系中则可以保持面元对形体的直立,在s坐标系xoy平面内只需要计算平面内两个投影三角形的相交面积大小,再根据坐标系逆变换即可求得面元对中面元1和面元2的散射面积,所以建立s坐标系能够简化计算过程,容易理解。

步骤五:面元对中面元1和面元2散射面积计算:

5.1面元1在s坐标系中的投影面元为面元11,面元2在s坐标系中的投影面元为面元21,在s坐标系下,面元11和面元21这两个面元之间的位置关系在xoy平面内有三种:相交、包含和分离;

5.2以面元11三条边依次对面元21三条边进行求交测试:如果有相交点,则保存相交点的坐标。如图3所示,利用面元11的三条边依次对面元21的三条边进行求交测试后,在图中可以明显的看到有四个交点,所以把四个点坐标保存;如果出现两条线段部分重合的情况,则把重合部分的两个交点当做被包含点储存;如果两个线段相互分离则没有交点;

5.3判断面元11和面元21在xoy平面内是否存在相互包含:包含分为全部包含和部分包含,如果目标的一个面元的部分顶点在另一个面元内也属于包含的情况,把所有被包含的顶点坐标保存。如图4两个三角形位置关系所示,面元21被面元11全部包含,所以符合要求的包含点一共有3个,将这三个被包含点保存;

5.4对保存的点坐标进行判断,删除重复点,如果删除重复点后剩余点的个数小于3,则两个三角面元不能发生二次散射,返回执行步骤三,进行下一个面元对的二次散射初次判断。否则,即删除重复点后剩余点的个数大于等于3则认为发生二次散射,执行步骤5.5,对保存的点进行排序;

5.5对保存的点进行排序:对保存的点中找出新坐标系下xoy平面内y值最小的点设为minp,依次对剩余各点求出相对于minp点的张角大小,并按照张角大小对各点进行排序,如图5,点1、点2、点3、点4分别为剩余的四个点,在图中可以清楚的看到点1、点2、点3和点4相对于minp点的张角依次增大,所以依次存入点1、点2、点3、点4这四个点,最后存入minp点,此时,保存的各点按照顺序围成一个多边形。

5.6将所有保存的各点围成一个多边形,可以将多边形的面积看成若干个三角形面积的和进行计算,假设保存了n(n≥3)个点,按保存的点的顺序依次为编号为1~n,则可以把这n各点分为(1,2,3)、(1,3,4)…(1,n-1,n)等n-2个三角形,每一个括号表示一个三角形,最后对这n-2个三角形面积和相加即可得到相交面积大小,最后利用新坐标系z轴与面元对的两个面元之间夹角大小,求得面元对两个面元的散射面积大小。

步骤六:计算并完成复杂目标的二次散射:

6.1根据步骤四中求得的面元1上的镜像散射方向和太阳入射方向,求出太阳光入射方向在面元1上的入射角和方位角,面元1镜像散射方向在面元1上的散射角和方位角,根据面元1上的brdf求得面元1上的镜像散射亮度li:

li=f1esun(λ)cosθi

式子中f1为面元1的brdf大小,esun(λ)为固定波长对应的太阳辐照度,θi为太阳光入射光线与面元1法线的夹角;

6.2根据s坐标系中求得的相交面积大小求出在面元对上面元1和面元2的散射面积大小:如图6所示,面元1上的散射面积为s1,面元2上的散射面积s2;

6.3辐亮度和辐照度之间的转换:如图6所示,面元1上的散射面积为s1,面元2上散射面积为s2,则由面元1散射面积s1在oo'上产生的光谱辐照强度为iθr:

iθr=li·s1·cosθr=f1·esun(λ)·cosθi·cosθr

其中θr为面元1法线与两个面元中心连线的夹角;

所以由s1发出并落到s2上的辐射通量为φ:

φ=licosθrs1ω

式中ω为面元2散射面积s2对面元1散射面积s1所张的立体角,即面元1和面元2中心的距离为r,如图6所示两个面元中心之间的距离,θd为面元2法线与两个面元中心连线的夹角,则面元1散射面积s1在面元2散射面积s2上产生的光谱辐照度e(λ)为:

e(λ)=f1esun(λ)cosθi·cosθrcosθds1/r2

6.4利用面元2上的brdf即f2可求得面元1对面元2的二次散射亮度dlr:

dlr=f2·e(λ)=f2(f1esun(λ)cosθi)s2cosθscosθrcosθd/r2

最后利用如上公式得到复杂目标对太阳的二次散射亮度lr,

完成复杂目标的二次散射的计算,如图10是本发明在利用上述过程计算求得的太阳光辐射背景条件下目标的散射亮度。其计算所用的模型如图7所示,由一个边长为2.5米的正方体和一个边长为10米的正方形平板组成,正方体位于平板中心,正方体上下两个底面的边与正方形平板的边相互平行。计算所用的brdf模型如图8所示,图中所示为入射角为45度、方位角为0度时,brdf在散射角从-90度到90度时的数值大小,从图中可以明显的看到,当散射角为45度时,出现明显的峰值,原因是因为本发明使用的brdf五参数模型为铝蜂窝模型,有很强的镜像作用,所以会在45度有峰值出现。计算所用的太阳光谱辐照度如图9所示,图中横坐标是可见光的波长范围,纵坐标是对应可见光波长下的光谱辐照度大小,0.4~0.75是可见光谱的波长范围。图10是利用本发明所计算的二次散射亮度图,图中虚线表示只计算一次散射的散射亮度计算结果,实线表示计算了一次散射和二次散射两次散射结果相加的散射亮度。从图中可以明显的看到在散射角45度时,计算了二次散射的结果有明显的峰值。原因是因为本发明采用的brdf模型镜像散射效果比较明显,所以在计算二次散射时,探测器会在与太阳处于同一方向时二次散射亮度有最大值。

在计算复杂目标对背景辐射的散射时,针对目标面元对间的二次散射计算是一个难点,本发明适用于对目标能够发生二次散射面元对的判断,以及计算能够发生二次散射的面元对散射面积的大小,并最终完成复杂目标对背景光辐射的二次散射的计算。

本发明的复杂目标对背景光辐射的二次散射计算方法,首先输入模型信息,对模型进行遮挡处理。利用面元间的几何关系判断面元对是否可能发生二次散射,面元对依据读取模型中面元的顺序标记为面元1和面元2;如果可能发生则以太阳光在面元1上的镜像散射方向为z轴建立新坐标系,并利用面元1的brdf得到面元1上的镜像散射亮度,将面元对投影到新坐标系的xoy平面中,判断投影面元对在新坐标系中xoy平面内的位置关系,对相交点、包含点进行保存,并去除重复点;如果保存的点个数小于3,则认为这个面元对不能够发生二次散射,也就不是我们寻找的面元对;如果保存点个数大于3,则在这几个点中找出在新坐标系中y值最小的点,然后依次计算出其余各点相对于这个点的张角大小,最后按张角大小依次对点进行保存;利用保存的点计算相交面的面积,计算时可把多边形看成若干三角形的面积和进行计算,分别求得面元对上两个面元的散射面积大小;将面元1上的镜像散射亮度利用辐照度和辐亮度之间的转换关系转换为辐照度,再利用面元2的brdf求得面元对中面元1对面元2的二次散射亮度;最后对目标模型所有能够发生二次散射的面元对进行如上计算就可以求得复杂目标对背景光辐射的二次散射亮度。

简而言之,本发明提供的一种复杂目标对背景光辐射的二次散射计算方法,解决了复杂目标面元对之间二次散射的判断、面元对之间散射面积计算及复杂目标的二次散射计算的问题。其实现为:建立目标模型;输入建立的目标的mod模型信息并进行遮挡处理;对遮挡处理后的目标面元对之间进行二次散射初次判断;转换坐标系并计算面元对之间的散射面积;计算并完成复杂目标对背景光辐射的二次散射。

本发明通过找出目标模型中发生二次散射的面元对进行二次散射的计算,进而完成整个目标的二次散射的计算。首先需要找出可能发生二次散射的面元对,然后为了方便计算面元对之间的散射面积,转换坐标系将空间中的面元对投影到转换坐标系的xoy平面内,将三维问题转化为二维问题简化了运算过程,降低了程序的复杂性,通过计算得到的散射面积利用brdf就可以求得面元对之间的二次散射亮度,进而得到整个目标的二次散射亮度。

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