技术新讯 > 计算推算,计数设备的制造及其应用技术 > 基于聚合解聚的大批量动态目标分层显示方法及装置  >  正文

基于聚合解聚的大批量动态目标分层显示方法及装置

  • 国知局
  • 2024-07-31 22:59:12

本技术涉及数据处理,特别是涉及一种基于聚合解聚的大批量动态目标分层显示方法及装置。

背景技术:

1、在态势地理信息系统中,比如无人机侦察系统或者无人机辅助灾害救援系统,为辅助指战人员实时准确地获取环境态势信息,通常使用符号来可视化战场动态目标。一方面随着态势信息数量的增加,地图区域内可能会同时显示大量符号,导致互相压盖,杂乱无章,影响渲染效率;另一方面,为满足指战人员对不同粒度环境态势的感知需求,需要多层次的表现场景动态目标。对动态目标进行分层聚合,在视口地理范围较小时,关注动态目标的具体信息,在视口地理范围较大时,关注动态目标的整体分布,能较好的满足以上两方面需求,提高指挥人员的指挥准确性,从而提高无人机的侦察效率或者无人机灾害救援效率。

2、现有动态目标聚合算法主要分三类,包括基于空间网格聚合,基于点距离聚合和基于方格距离聚合。基于空间网格聚合计算效率最高,但聚合误差较大;基于距离聚合精度最高,但计算效率极低;基于方格距离聚合的计算效率与聚合精度均处于两者之间。同时提高聚合效率与精度,并满足动态目标实时变化带来的聚合结果频繁更新需求,是大批量动态目标聚合显示面对的主要难题。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够提高动态目标聚合效率和精度的基于聚合解聚的大批量动态目标分层显示方法及装置。

2、一种基于聚合解聚的大批量动态目标分层显示方法,所述方法包括:

3、获取动态目标分层显示的缓冲区;对缓冲区的更新周期、缓冲区边界和空间网络的聚类层级进行初始化,得到初始化后的缓冲区;

4、实时接入动态目标数据,根据动态目标数据中的动态目标位置信息将动态目标加入不同的初始化后的缓冲区,每经历一个更新周期,遍历初始化后的缓冲区中的所有动态目标,对每个动态目标进行聚合,得到初始目标群集合;

5、当视域窗口稳定时长超过一级更新周期时,更新缓冲区分级方法和空间网格聚类层级,基于已有的初始目标群集合进行聚合解聚,得到目标群集合;

6、遍历目标群集合中的所有目标群,刷新每个目标群符号绘制,得到动态目标分层显示结果。

7、在其中一个实施例中,对缓冲区的更新周期、缓冲区边界和空间网络的聚类层级进行初始化,得到初始化后的缓冲区,包括:

8、根据预先设置的动态目标实时位置显示精度要求设置一级更新周期和二级更新周期;根据当前获取的视域窗口地理空间范围设置一级缓冲区和二级缓冲区的分类边界;

9、根据当前获取的视域窗口地图分辨率和标绘符号的大小计算得到碰撞半径,查询h3空间网格分辨率表,将正六边形平均边长小于碰撞半径的最大层级作为空间网格的聚类层级。

10、在其中一个实施例中,根据当前获取的视域窗口地图分辨率和标绘符号的大小计算得到碰撞半径,包括:

11、根据当前获取的视域窗口地图分辨率和标绘符号的大小计算得到碰撞半径为

12、radius=resolution*length/2

13、其中,resolution表示当前获取的视域窗口地图分辨率,length表示标绘符号的大小。

14、在其中一个实施例中,实时接入动态目标数据,根据动态目标数据中的动态目标位置信息将动态目标加入不同的初始化后的缓冲区,还包括:

15、根据动态目标数据中的动态目标位置信息将动态目标加入不同的初始化后的缓冲区,如果动态目标位置信息在视域窗口地理空间范围内,则将对应的动态目标加入到一级缓冲区中,如果动态目标位置信息在视域窗口地理空间范围外,则将对应的动态目标加入到二级缓冲区中。

16、在其中一个实施例中,如果动态目标位置信息在视域窗口地理空间范围内,则将对应的动态目标加入到一级缓冲区中,还包括:

17、若一级缓冲区中存在同id动态目标target(cache),即本周期内已接收过该动态目标,更新target(cache)信息,记录当前位置编码target(cache).code1=code;其中,code1表示动态目标最新位置所在的h3空间网格编码,即当前位置编码code表示h3空间网格编码;

18、如果一级缓冲区中不存在同id动态目标,动态目标集合中存在同id动态目标target(set),即本周期内未接收但历史周期接收过该动态目标,记录历史位置编码target(rcv).code0=target(set).code1,记录所属目标群为

19、target(rcv).group=target(set).group,将target(rcv)加入一级缓冲区中;其中,code0表示动态目标初次加入缓冲区时位置所在的h3空间网格编码,即历史位置编码,group表示动态目标所属的目标群标识;

20、如果一级缓冲区中不存在同id动态目标,动态目标集合中也不存在同id动态目标,即本周期内与历史周期都未接收过该动态目标,记录历史位置编码target(rcv).code0为空,记录所属目标群target(rcv).group为空,将target(rcv)加入一级缓冲区中。

21、在其中一个实施例中,对每个动态目标进行聚合,得到初始目标群集合,包括:

22、步骤1:将当前动态目标从缓冲区中移除;

23、步骤2:若当前动态目标的历史位置编码不等于当前位置编码且动态目标所属的目标群为空,则对该动态目标进行聚合;

24、步骤2.1:将该动态目标加入目标群,截取该动态目标当前位置编码前19+(3*l)位形成前缀编码,以前缀编码为索引寻找到该动态目标所属空间网格和临接空间网格,检索网格中是否存在目标群;其中,l表示空间网格聚类层级;

25、步骤2.1.1:如果该动态目标所属空间网格和临接空间网格中不存在目标群,新建目标群group,记录目标群元素数量group.num=1,目标群位置group.location=target(cache).location,目标群位置编码group.code=target(cache).code1,将group加入到目标群集合groupset;记录该动态目标所属目标群target(cache).group=group;

26、步骤2.1.2:如果该动态目标所属空间网格和临接空间网格中存在且仅有一个目标群group,将该动态目标加入到group,并更新group信息,更新group信息包括更新目标群位置group.location、更新目标群位置编码group.code=code、更新目标群元素数量group.num=group.num+1以及记录该动态目标所属目标群target(cache).group=group;

27、步骤2.1.3:如果该动态目标所属空间网格和临接空间网格中存在且有多个目标群,仅在本过程中临时加深网格聚类层级,即令空间网格聚类层级l=l+1后将动态目标加入目标群,截取该动态目标当前位置编码前19+(3*l)位形成前缀编码;以前缀编码为索引,寻找到所属空间网格和临接空间网格,检索网格中是否存在目标群后执行步骤2.1;

28、步骤2.2:将该动态目标加入动态目标集合中;

29、步骤3:若当前动态目标历史位置编码不等于当前位置编码且所属目标群不为空,将该动态目标从原目标群移除,对该动态目标进行聚合,聚合过程包括:获取原目标群group=target(cache).group,将该动态目标从原目标群移除,如果原目标群元素数量为1,将原目标群元素数量置为0;如果原目标群元素数量大于1,更新原目标群信息,包括:更新目标群位置group.location、更新目标群位置编码group.code=code和更新目标群元素数量group.num=group.num-1;将该动态目标加入新目标群;

30、更新目标群位置group.location的过程具体为:将目标群位置group.location经纬度坐标换算为笛卡尔坐标x(group)、y(group)、z(group);将该动态目标位置target(cache).location经纬度坐标换算为笛卡尔坐标x(target)、y(target)、z(target);计算新笛卡尔坐标:

31、x(new)=(x(group)*group.num-x(target))/(group.num-1);

32、y(new)=(y(group)*group.num-y(target))/(group.num-1);

33、z(new)=(z(group)*group.num-z(target))/(group.num-1);

34、将新笛卡尔坐标x(new)、y(new)、z(new)换算为经纬度坐标形成新的位置信息location(new),更新目标群位置group.location=location(new)。

35、在其中一个实施例中,更新目标群位置group.location,包括:

36、将目标群位置group.location经纬度坐标换算为笛卡尔坐标x(group)、y(group)、z(group);将该动态目标位置target(cache).location经纬度坐标换算为笛卡尔坐标x(target)、y(target)、z(target);计算新笛卡尔坐标:

37、x(new)=(x(group)*group.num+x(target))/(group.num+1);

38、y(new)=(y(group)*group.num+y(target))/(group.num+1);

39、z(new)=(z(group)*group.num+z(target))/(group.num+1);

40、将新笛卡尔坐标x(new)、y(new)、z(new)换算为经纬度坐标形成新的位置信息location(new),更新目标群位置group.location=location(new)。

41、在其中一个实施例中,当视域窗口稳定时长超过一级更新周期时,更新缓冲区分级方法和空间网格聚类层级,基于已有的初始目标群集合进行聚合解聚,得到目标群集合,包括:

42、步骤4.1:当视域窗口稳定时长超过一级更新周期时,更新缓冲区分级方法和空间网格聚类层级,基于已有的初始目标群集合进行聚合解聚,首先更新视域窗口地理空间范围,遍历一级缓冲区中所有动态目标,如果动态目标在更新后的视域窗口地理空间范围外,则将该动态目标移至二级缓冲区,得到更新后的二级缓冲区;遍历二级缓冲区中所有动态目标,如果动态目标在更新后的视域窗口地理空间范围内,则将该动态目标移至一级缓冲区,得到更新后的一级缓冲区;

43、步骤4.2:重新对空间网格聚类层进行初始化,若当前的空间网格聚类层级比上一时刻的空间网格聚类层级大,则进行目标群解聚,遍历初始目标群集合中的所有目标群,对位置在更新后的视域窗口地理空间范围内且动态目标数量大于1的目标群,遍历该目标群中所有动态目标,更新动态目标所属目标群,更新过程包括:将该动态目标从原目标群移除,如果原目标群元素数量为1,将原目标群元素数量置为0;如果原目标群元素数量大于1,更新原目标群信息,包括:更新目标群位置group.location、更新目标群位置编码group.code=code和更新目标群元素数量group.num=group.num-1;或将该动态目标加入新目标群,具体过程如步骤2.1。

44、步骤4.3:若当前的空间网格聚类层级比上一时刻的空间网格聚类层级小,则进行目标群聚合,包括:

45、步骤4.3.1:遍历初始目标群集合中的所有目标群,将位置在更新后的视域窗口地理空间范围内的目标群从目标群集合中移除,加入临时目标群集合中;

46、步骤4.3.2:遍历临时目标群集合中所有目标群,对每个目标群进行聚合,包括:

47、步骤4.3.2.1:截取该目标群group(old)当前位置编码前19+(3*l)位形成前缀编码;以前缀编码为索引,寻找到该目标群所属空间网格和临接空间网格,检索网格中是否存在该目标群,如果所属空间网格和临接空间网格中不存在目标群,新建目标群group,记录group.num=group(old).num,group.location=group(old).location,group.code=group(old).code,将group加入到groupset;遍历group(old)中所有动态目标,更新每个动态目标所属目标群为group;如果所属空间网格和临接空间网格中存在且仅有一个目标群group,将group(old)加入group,更新group信息,更新group信息包括:更新目标群位置group.location、更新目标群位置编码group.code=code、更新目标群元素数量group.num=num以及更新每个动态目标所属目标群为group;如果所属空间网格和临接空间网格中存在且有多个目标群,仅在本步骤临时加深网格聚类层级,即令空间网格聚类层级l=l+1,跳转执行步骤4.3.2.1;

48、目标群位置group.location的更新过程包括:将group.location经纬度坐标换算为笛卡尔坐标x(group)、y(group)、z(group);将group(old).location经纬度坐标换算为笛卡尔坐标x(old)、y(old)、z(old);计算新笛卡尔坐标:

49、num=group.num+group(old).num;

50、x(new)=(x(group)*group.num+x(old)*group(old).num)/num;

51、y(new)=(y(group)*group.num+y(old)*group(old).num)/num;

52、z(new)=(z(group)*group.num+z(old)*group(old).num)/num;

53、将新笛卡尔坐标x(new)、y(new)、z(new)换算为经纬度坐标形成位置信息location(new),记录group.location=location(new)。

54、在其中一个实施例中,遍历目标群集合中的所有目标群,刷新每个目标群符号绘制,得到动态目标分层显示结果,包括:

55、遍历目标群集合中的所有目标群,如果目标群的动态目标数量为0,删除目标群绘制符号,将目标群从目标群集合中移除;如果目标群为新增目标群,在地图上创建新的标绘符号,符号位置为目标群位置,在符号右上角数字标注目标群元素数量;如果目标群为已有目标群,刷新符号位置至该目标群位置,刷新符号右上角数字为该目标群元素数量。

56、一种基于聚合解聚的大批量动态目标分层显示装置,所述装置包括:

57、初始化模块,用于获取动态目标分层显示的缓冲区;对缓冲区的更新周期、缓冲区边界和空间网络的聚类层级进行初始化,得到初始化后的缓冲区;

58、聚合模块,用于实时接入动态目标数据,根据动态目标数据中的动态目标位置信息将动态目标加入不同的初始化后的缓冲区,每经历一个更新周期,遍历初始化后的缓冲区中的所有动态目标,对每个动态目标进行聚合,得到初始目标群集合;

59、目标群集合聚合解聚模块,用于当视域窗口稳定时长超过一级更新周期时,更新缓冲区分级方法和空间网格聚类层级,基于已有的初始目标群集合进行聚合解聚,得到目标群集合;

60、动态目标分层显示模块,用于遍历目标群集合中的所有目标群,刷新每个目标群符号绘制,得到动态目标分层显示结果。

61、上述基于聚合解聚的大批量动态目标分层显示方法及装置,本技术通过采用h3空间网格编码对动态目标的空间分布进行快速定位,利用编码索引高效检索临近的目标群,在获得接近基于距离聚类精度效果的同时,规避了大量的空间几何计算;通过分级缓存的方式对动态目标实时状态进行周期性更新,在满足用户感知态势需求的同时,减少了目标群状态无意义的频繁更新;在视域窗口变换时,基于现有目标群进行聚合解聚,相较于基于目标进行聚合解聚节省计算时间,通过这几个方面对聚合计算的优化,提高动态目标聚合效率和精度,实现了大批量动态目标的高效渲染显示。

本文地址:https://www.jishuxx.com/zhuanli/20240730/195606.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。