一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于金字塔的散点图采样方法及系统与流程

2021-10-19 23:36:00 来源:中国专利 TAG: 采样 金字塔 特别 方法 是基于


1.本发明涉及散点图采样技术领域,特别是涉及一种基于金字塔的散点图采样方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.可视化系统具有低延迟,以保持用户的注意力,从而支持有效的数据探索的作用。随着数据规模的不断增长,渐进式可视化已成为控制延迟的一种有希望的范例。通过将数据划分为多个块,可以在有限的带宽通道上每次传输单个数据块并逐步呈现可视化效果,从而使分析人员能够以受控的延迟体验探索中间结果,从而可以确保大数据可视化的计算可伸缩性。这种范式同样适用于流数据可视化,其中数据随着时间不断到来,而可视化会展示一个定长的滑动时间窗口内部的数据。
4.基于点的可视化通常用于显示各种形式的数据,例如双变量数据,降维数据和地理数据,为了方便起见,将它们统称为散点图。但是,这样的散点图在数据量过大时可能无法有效地工作,因为会受到过度绘制的困扰,即随着数据密度的增加,重叠的可视标记的数量也会增加,降低可视化的可读性。此外,具有不均匀分布的小数据也存在该问题。而基于密度的方法(如kde)能够有效解决该问题,可以有效地揭示高密度区域中的数据模式。但是,这类方法有可能导致低密度区域中的数据模式(如离群点)不可见。
5.采样技术是一种广泛运用的解决方案,能够选取适用于展示的数据子集,常见目标为保持相对数据密度的准确性与低密度区域的异常值。最简单的随机采样以统一的方式对待所有数据点,能够很好的保持密集区域的相对密度准确性,但是会丢失低密度区域的离群点。因此,有很多研究者提出感知驱动的采样策略,试图同时保持好相对密度和离群点;典型的,陈等人(chen,x.,ge,t.,zhang,j.,chen,b.,fu,c.w.,deussen,o.,&wang,y.(2019).a recursive subdivision technique for sampling multi

class scatterplots.ieee transactions on visualization and computer graphics,26(1),729

738.)提出一种基于递归划分的kd树的多类散点图采样技术,显式地特征化相对数据密度、相对类密度与主要离群点,能够在保持相对密度和异常值之间取得平衡。
6.然而,这些现存方法往往假设所有数据都能够被预先加载到内存中,对于无法全部加载到内存的大数据以及网络环境下逐步加载的数据等渐进式数据可能效果不好;例如,前述的递归划分采样技术的kd树结构构建相对复杂,每次新数据到来都需要从根节点开始重新构建,没有办法在各帧之间维持稳定;而经典的水塘采样(reservoirsampling)能够从未知大小的数据中选取固定数量的样本点,并在帧切换时保持一定程度上的稳定性,和随机采样一样能保持相对密度,但同样存在随机采样会丢失低密度区域离群点的缺陷。
7.综上所述,目前渐进式场景下的散点图采样技术都各有局限性,尚没有一个被广泛采纳的标准解决方案。


技术实现要素:

8.为了解决上述问题,本发明提出了一种基于金字塔的散点图采样方法及系统,将常用于图像处理的金字塔结构用于散点图采样,以解决过度绘制问题,通过融合数据密度图和视觉密度图来选取能同时保持好相对密度和异常值的效果采样点。
9.为了实现上述目的,本发明采用如下技术方案:
10.第一方面,本发明提供一种基于金字塔的散点图采样方法,包括:
11.将获取的样本数据的散点图转换为密度图;
12.基于密度图构建数据密度金字塔和视觉密度金字塔;
13.以视觉密度金字塔顶层值为样本分配图中对应区域分配的初始样本数,根据数据密度金字塔和视觉密度金字塔逐层计算样本分配图中各区域分配的样本数,得到最终样本分配图;
14.基于最终样本分配图选择样本点得到采样结果。
15.第二方面,本发明提供一种基于金字塔的散点图采样系统,包括:
16.转换模块,被配置为将获取的样本数据的散点图转换为密度图;
17.金字塔构建模块,被配置为基于密度图构建数据密度金字塔和视觉密度金字塔;
18.样本分配模块,被配置为以视觉密度金字塔顶层值为样本分配图中对应区域分配的初始样本数,根据数据密度金字塔和视觉密度金字塔逐层计算样本分配图中各区域分配的样本数,得到最终样本分配图;
19.采样模块,被配置为基于最终样本分配图选择样本点得到采样结果。
20.第三方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
21.第四方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
22.与现有技术相比,本发明的有益效果为:
23.本发明将常用于图像处理的金字塔结构用于散点图采样,以解决过度绘制问题,对于给定的散点图数据和有限的屏幕空间,通过融合数据密度图和视觉密度图,能够快速地选取同时保持好相对密度和异常值的数据子集,并且在渐进式和流处理场景下能够在新数据到来时进行保持帧间稳定性的增量式更新,以能够更好的利用散点图技术可视化大规模数据和流数据。
24.本发明采用的增量式更新策略在渐进式与流处理场景下能做到只进行有必要的更新,通过减少不必要的采样点变化来保持帧间稳定性,有助于用户观察和分析散点图包含的真实信息。
25.本发明预先将散点图转化为密度图,使得单次采样过程消耗的时间与输入数据大小完全无关,采样过程运行时间短,能够在0.1秒内处理2
10
×210
规模的密度图,满足交互式分析的实时处理需求。
26.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
27.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
28.图1是本发明实施例1提供的基于金字塔的散点图采样方法流程图;
29.图2(a)

2(b)是本发明实施例1提供的密度图转化过程示意图;其中,图2(a)为输入数据映射到屏幕空间上得到的散点图的部分示意,图2(b)为输出密度图的对应部分;
30.图3(a)

3(e)是本发明实施例1提供的结合数据密度与视觉密度的采样算法流程图;其中,图3(a)为输入数据对应的密度图与视觉密度图,图3(b)构建的数据密度金字塔和视觉密度金字塔,图3(c)为按照数据密度图和视觉密度图逐层计算样本分配图的过程示意图;图3(d)为得到的最终样本分配图;图3(e)为根据样本分配图得到的采样结果示意图;
31.图4(a)

4(c)是本发明实施例1提供的双目标分配过程示意图;其中,图4(a)为前两层的数据密度金字塔和视觉密度金字塔,图4(b)为高密度位置分配过程示意图,图4(c)为低密度位置分配过程示意图;
32.图5(a)

5(c)是本发明实施例1提供的跨边界修复过程示意图;其中,图5(a)为输入数据对应的散点图(上)和半透明密度图(下),图5(b)

5(c)分别为stoplevel=5和9的采样结果示意图;
33.图6(a)

6(c)是本发明实施例1提供的增量式更新过程示意图;
34.图7(a)

7(d)为本发明实施例1提供的世界股票市场在911事件发生前后的成交量(x轴)与涨跌幅(y轴)情况示意图;其中,图7(a)

7(b)分别为输入的散点图;图7(c)

7(d)分别为(a)

7(b)的采样结果。
具体实施方式
35.下面结合附图与实施例对本发明做进一步说明。
36.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
37.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
38.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
39.实施例1
40.本实施例提供一种基于金字塔的散点图采样方法,具体是提出一种基于金字塔结构的采样算法,将该采样算法用于对渐进式数据与流数据的散点图采样以及还提出基于该采样算法的用于渐进式与流数据可视化的增量更新算法;可以应用于地理坐标构建、故障诊断评估、数据汇总分析等场景,需要进行数据处理时,根据输入数据的散点图,进行有针对性的采样;如图1所示的具体采样过程包括:
41.(1)将获取的样本数据的散点图转换为密度图;
42.(2)提出基于金字塔结构、结合数据密度与视觉密度的采样算法;具体为,基于密度图构建数据密度金字塔和视觉密度金字塔;以视觉密度金字塔顶层值为样本分配图中对应区域分配的初始样本数,根据数据密度金字塔和视觉密度金字塔逐层计算样本分配图中各区域分配的样本数,得到最终样本分配图;
43.(3)若当前样本数据为第一帧,则以最终样本分配图为准,基于最终样本分配图为样本数为1的网格通过随机采样选择样本点,得到采样结果;若当前样本数据不是第一帧,则进行基于金字塔结构的增量式更新。
44.所述步骤(1)中,将获取的样本数据的散点图转换为密度图的过程包括以下步骤:
45.(1

1)根据用户输入的预设网格大小将给定的屏幕空间划分为一系列等大小的网格,如图2(a)和2(b)中灰线即为划分网格的边;
46.(1

2)将获取的新一帧样本数据映射到给定屏幕空间中,确定所属网格,结果如图2(a)所示;
47.(1

3)将落在每个网格中的数据量作为密度,从网格位置到密度的映射即为密度图,结果如图2(b)所示;其中,对渐进式场景需要将新密度图累加到之前的密度图上,对流处理场景需要在之前的密度图上累加新密度图,并减去不在选定时间窗口内的数据对应的密度。
48.所述步骤(2)中:
49.(2

1)基于密度图构建数据密度金字塔和视觉密度金字塔,如图3(a)为密度图和对应视觉密度图,如图3(b)为数据密度金字塔和视觉密度金字塔的示意图;
50.(2

2)基于金字塔结构,根据数据密度金字塔和视觉密度金字塔逐层地按照数据密度图和视觉密度图计算样本分配图中各区域分配的样本数,直到金字塔底层,得到最终样本分配图;如图3(c)所示,其中,从上至下分别为数据密度金字塔、各层样本分配图和视觉密度金字塔,省略的金字塔最下层如图3(a)所示,黑色箭头表示将样本总数分配到下一层的过程,灰色箭头表示将对应层的数据密度与视觉密度金字塔融入计算,如图3(d)为得到的最终样本分配图;
51.(2

3)若当前样本数据为第一帧,则基于最终样本分配图选择样本点得到采样结果,如图3(e)为最终采样结果示意图。
52.所述步骤(2

1)中,基于密度图构建数据密度金字塔和视觉密度金字塔包括以下步骤:
53.(2
‑1‑
1)若密度图不是边长为2的幂次的正方形,则将之扩充最接近的正方形以便构建金字塔,新增位置的密度为0;
54.(2
‑1‑
2)通过密度图生成视觉密度图,其中,密度不为0的位置视觉密度即为1,密度为0则视觉密度为0;
55.(2
‑1‑
3)从底层开始逐层构建数据密度和视觉密度金字塔,每一层的边长都是下一层的1/2,直到边长为1的顶层;每个位置的值都是下一层对应的2
×
2区域的值的总和。
56.所述步骤(2

2)中,基于金字塔结构计算样本分配图的过程包括以下步骤:
57.(2
‑2‑
1)构建边长为1的正方形为初始样本分配图,初始样本分配图中的值表示对应区域可供分配的样本总数,初始值等于视觉密度图顶层的值;
58.(2
‑2‑
2)在该层的数据密度图和视觉密度图的约束下,将各位置的样本总数分配给边长为2倍的下一层样本分配图的对应2
×
2区域,如果当前的层数小于一个用户定义的阈值stoplevel,则进行双目标分配;如果大于阈值,则先根据数据密度排序,然后按每个位置的视觉密度占金字塔上层位置记录的总视觉密度的比例进行直接分配;
59.(2
‑2‑
3)如果当前样本分配图的边长大于等于4,其中每个2
×
2区域的值都是仅基于其上层位置的局部计算得到的,所以需要进行跨边界修复,重新确定各位置的样本总数;
60.(2
‑2‑
4)返回至步骤(2
‑2‑
2),直到得到边长与金字塔底层一致的最终样本分配图。
61.所述步骤(2
‑2‑
2)中,双目标分配包括以下步骤:
62.(2
‑2‑2‑
1)对2
×
2区域进行分类,如果某位置与最高密度位置的数据密度之比小于用户定义的阈值λ∈[0.0,1.0],则分类为低密度位置,否则为高密度位置,如图4(a)所示,数据密度为736和117的位置表示λ=0.1时的高密度位置,数据密度为35和51的位置表示λ=0.1时的低密度位置;
[0063]
(2
‑2‑2‑
2)对高密度位置进行样本数分配,首先,计算上层给出的样本总数乘以该位置与金字塔上层对应位置的视觉密度之比,将以此得到的样本数分配给最高密度位置;然后,计算样本总数乘以该位置与最高密度位置的数据密度之比,将以此得到的样本数分配给其他位置,分配过程如图4(b)所示,将样本总数(47)分配给高密度位置;
[0064]
(2
‑2‑2‑
3)如果存在低密度位置,则对它们进行考虑离群点的样本数分配,过程如图4(c)所示,基于已经计算出的高密度区域样本数给低密度位置分配样本数,具体为:
[0065]
(2
‑2‑2‑3‑
1)首先,计算低密度位置要分配的样本数之和:
[0066][0067]
其中,a
h
是所有高密度位置分配到的样本数之和,φ(ω
l

h
)是低密度位置总体与高密度位置总体的数据密度之比,是上述二者的视觉密度之比,ω是一个用户定义的权重,本实施例中取0.2;
[0068]
(2
‑2‑2‑3‑
2)对得到的样本数之和进行分配,根据每个区域视觉密度占低密度位置总体的视觉密度之比为每个区域分配相应的样本数。
[0069]
所述步骤(2
‑2‑
3)中,跨边界修复包括以下步骤:
[0070]
(2
‑2‑3‑
1)从水平和垂直两个方向分组进行跨边界检查,即某个2
×
2区域的右侧某个位置与它右边区域的左侧对应位置为一组,垂直同理,如图5(a)所示,为输入数据对应的散点图(上)和半透明密度图(下);
[0071]
(2
‑2‑3‑
2)设两个位置中,相对低密度的为l,高密度的为h,数据密度分别为d
l
,d
h
,视觉密度分别为v
l
,v
h
,分配到的样本数之和为a
s

[0072]
(2
‑2‑3‑2‑
1)当l与h的数据密度之比大于样本数之比时,说明高密度位置的样本数过多,重新计算后高密度位置的样本数为:
[0073][0074]
低密度位置的样本数为a
s
减去上述高密度位置的样本数,如图5(b)所示;
[0075]
(2
‑2‑3‑2‑
2)当l的样本数大于h的样本数时,说明高密度位置的样本数过少,重新
计算后高密度区域的样本数为:
[0076][0077]
其中,ω是上述(2
‑2‑2‑3‑
1)中用户定义的权重,低密度位置的样本数为a
s
减去高密度位置的样本数,如图5(c)所示;图5(b)

5(c)分别为stoplevel=5和9的采样结果,对应高密度区域位置的样本数过多与过少两种情况,左右分别为修复前后的结果,中间部分为被框出位置的各个具体值。
[0078]
所述步骤(3)中,基于金字塔结构的增量式更新如图6(a)

(c)所示,在4
×
4区域进行增量式更新,其中,图6(a)上方为用更新后的密度图d

构建成的数据密度金字塔,灰色区域为三个变化的位置,即分别从44、60、26变为79、90、61,下方是根据更新后密度图得到的新样本分配图图6(b)

(c)分别为局部区域更新和修复性更新过程,上方是原样本分配图金字塔,下方是根据替换过的原样本分配图,色区域为“需更新”区域,图6(c)中用黑色虚线框框出的是新检测到的“需更新”位置;
[0079]
具体地,包括以下步骤:
[0080]
(3

1)为上一次得到的样本分配图构建原样本密度金字塔;
[0081]
(3

2)自顶向下找到原样本密度金字塔上与最新数据密度不一致的各位置,对它们进行局部区域更新,如图6(b)所示,“需更新”区域为灰色背景处,下方为根据图6(a)中更新后的结果;
[0082]
(3

3)根据更新后的样本分配图重新构建原样本密度金字塔,重新对上一步更新过的区域周围的未更新区域进行修复性更新,如图6(c)所示,上方为重新构建的原样本密度金字塔,新选出的“需更新”位置用黑色虚线框框出,下方为根据图6(a)中更新后的结果;
[0083]
(3

4)为样本分配图中更新过的网格通过随机采样重新选择样本点。
[0084]
所述步骤(3

2)中,自顶向下找到原样本密度金字塔上与最新的数据密度不一致的各位置,对它们进行局部区域更新包括以下步骤:
[0085]
(3
‑2‑
1)自顶向下逐层地访问各个位置;
[0086]
(3
‑2‑
2)为每个位置计算不匹配程度,不匹配度值为:首先计算下层2
×
2区域样本数占当前位置样本总数之比与数据密度占比之差,该差的绝对值的平均值为不匹配度值;
[0087]
(3
‑2‑
3)如果不匹配程度大于用户设置的阈值ε(本实施例中取0.25),则标记该位置所代表的金字塔底层区域每层被标为“需更新”;
[0088]
(3
‑2‑
4)计算进行到底层后,将原样本分配图中的所有“需更新”区域替换为根据更新后密度图计算出的最终样本分配图的对应区域。
[0089]
所述步骤(3

3)中,对上一步更新过的区域周围的未更新区域进行修复性更新包括以下步骤:
[0090]
(3
‑3‑
1)自顶向下逐层地访问各个被标记为“需更新”的位置;
[0091]
(3
‑3‑
2)对每个“需更新”位置,检查与它们下层的2
×
2区域相邻的那些“不需更新”的位置,如果“需更新”和“不需更新”位置的样本数之比与数据密度之比的差的绝对值大于上述步骤(3
‑2‑
3)的阈值ε,则将“不需更新”的位置所表示的区域标为“需更新”;
[0092]
(3
‑3‑
3)计算进行到底层后,将原样本分配图中的所有“需更新”区域替换为根据更新后密度图计算出的最终样本分配图的对应区域。
[0093]
本实施例以股票市场的汇总分析为例进行说明,如图7(a)

7(b)所示为世界股票市场在911事件发生前后的涨跌幅与成交量散点图,最终得到采样结果如图7(c)

7(d)所示,能够得到同时保持好相对密度差异和主要离群点的采样结果,并且能够在帧切换时保持相对稳定,不仅有效解决了过度绘制的问题,而且提高了数据分析的准确性和可靠性,在不影响分析准确率的基础上,运行速度加快,提升散点图可视化后的分析数据的效率。
[0094]
实施例2
[0095]
本实施例提供一种基于金字塔的散点图采样系统,包括:
[0096]
转换模块,被配置为将获取的样本数据的散点图转换为密度图;
[0097]
金字塔构建模块,被配置为基于密度图构建数据密度金字塔和视觉密度金字塔;
[0098]
样本分配模块,被配置为以视觉密度金字塔顶层值为样本分配图中对应区域分配的初始样本数,根据数据密度金字塔和视觉密度金字塔逐层计算样本分配图中各区域分配的样本数,得到最终样本分配图;
[0099]
采样模块,被配置为基于最终样本分配图选择样本点得到采样结果。
[0100]
此处需要说明的是,上述模块对应于实施例1中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0101]
在更多实施例中,还提供:
[0102]
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1中所述的方法。为了简洁,在此不再赘述。
[0103]
应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0104]
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
[0105]
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1中所述的方法。
[0106]
实施例1中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0107]
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范
围。
[0108]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0109]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献