CN106682052B - 使用映射和归并的数据聚集 - Google Patents
使用映射和归并的数据聚集 Download PDFInfo
- Publication number
- CN106682052B CN106682052B CN201511035936.9A CN201511035936A CN106682052B CN 106682052 B CN106682052 B CN 106682052B CN 201511035936 A CN201511035936 A CN 201511035936A CN 106682052 B CN106682052 B CN 106682052B
- Authority
- CN
- China
- Prior art keywords
- data
- circles
- points
- region
- circle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明涉及使用映射和归并的数据聚集的方法,其为数据点的集合生成数据集群。定义了包含数据点的关注区域以及该关注区域的中心矩阵,其中该中心矩阵包括定义重叠圆的中心的中心点的阵列。基于相近的中心点将数据点映射至相应的圆。基于位于重叠圆的对的重叠区域中的数据点与相应的圆内的数据点总数相比的相对数量归并重叠圆的对。基于归并的重叠圆的对识别属于一个或多个数据集群的圆,并且基于相应的圆识别属于一个或多个数据集群的数据点。可以由具有使用并行处理器的异构架构的计算机执行该方法。
Description
技术领域
本发明涉及计算机实现的数据处理,并且更具体地涉及用于这种应用的数据聚集技术。
背景技术
在大数据时代,诸如数据挖掘的数据处理应用同时有益于商业活动以及人类的日常生活.聚集,即基于一个或多个数据特性或属性将一组数据组织在多个子集中(也称为数据集群),在诸多数据挖掘应用中扮演着重要角色.一般来说,数据集合越大,计算量越大并且实现数据聚集算法中涉及的传输带宽也越大。
已知在具有并行操作的不同类型的多个处理器(诸如中央处理单元(CPU)和多个图形处理单元(GPU))的异构平台上实现传统的数据聚集算法(诸如K-平均数数据聚集算法),以试图在合理时长和合理开销的情况下执行数据聚集.不幸的是,对于大的数据集合,执行这种解决方案的时间仍然过长.因此,提出更为有效的数据聚集的方法将是有益的.
附图说明
根据下文的详细说明、所附的权利要求以及附图,本发明的实施例将更完整地显现出来,在附图中,相同的附图标记标识相似或相同的要素.
图1是对应于要被聚集的数据集合的二维图像的图形化表示;
图2是根据本发明的一个实施例的数据聚集算法的流程图;
图3是用于图1中表示的数据集合的示例中心矩阵的图形化表示;
图4是对应于覆盖在图1的图像上的图3的中心矩阵的覆盖图像的图形化表示;
图5是对于图4的示例覆盖图像通过执行图2的圆归并步骤生成的关系图的图形化表示;
图6是通过在图5的关系图上执行图2的图遍历步骤生成的树状图的图形化表示;
图7是适于实现图2的数据聚集算法的异构计算机系统的高等级示意框图;以及
图8是在图7的异构计算机系统上以同时、多任务的方式实现图2的数据聚集算法的中心映射步骤的图7的多GPU核心的软件框架的图形化表示.
具体实施方式
此处公开了本发明的详细说明性实施例.然而,本文公开的特定结构性和功能性细节仅仅是代表性的,其目的在于描述本发明的示例实施例.本发明可以以多种可供选择的形式实现,并且不应被理解为仅受限于这里提出的实施例.进一步的,这里使用的术语目的仅在于描述具体实施例,并不是意图限制本发明的示例实施例.
如这里所使用的,单数形式的“一个”、“一种”和“该”意图在于也包括复数形式,除非上下文明确另有指示.将进一步理解,术语“包括”、“包含”指示规定的特征、步骤或组件的存在,但并不排除一个或多个其它特征、步骤或组件的存在.还应当注意,在一些可供选择的实施方式中,记载的功能/行为可以以不同于附图中记载的顺序出现。举例来说,连续示出的两个附图实际上可大体上同时执行或者在某些情况下可以以相反的顺序执行,这取决于所涉及的功能/行为。
在一个实施例中,本发明提供了一种针对数据点的集合生成一个或多个数据集群的计算机实现的方法.计算机定义了包括该数据点的关注区域.计算机定义了关注区域的中心矩阵,其中中心矩阵包括定义了重叠圆的中心的中心点的阵列.计算机基于相近的中心点将数据点映射至相应的圆并基于所映射的数据点确定是否归并相邻对的重叠圆.计算机基于归并的重叠圆的对识别属于一个或多个数据集群的圆并基于识别的圆识别属于一个或多个数据集群的数据点.
现在参见图1,示出了对应于要聚集的数据集合的二维图像100的图形化表示.在此图形化表示中,该集合中的每个数据都被表示为二维空间内的黑点,其中每个数据具有(i)映射至笛卡尔坐标系的X方向中的坐标的第一特性以及(ii)映射至笛卡尔坐标系的Y方向中的坐标的第二特性。在一些数据处理应用中(诸如在光学字符识别(OCR)和其它图像处理应用中),实际上数据为二维图像100的点,并且图1的图形化表示直接表示那幅图像.在其它数据处理应用中,数据集合与二维图像无关,并且图1的图像100仅为那个集合中的数据的图形化表示.
本领域技术人员还将理解,在其它数据处理应用中,要聚集的数据具有多于两种不同类型的特性或者甚至仅具有一种类型的特性.图1的二维数据集合仅是用于解释本发明的数据聚集算法的方便和可理解的方式.本领域技术人员将理解如何将那个数据聚集算法用于具有非二维特性的数据集.
数据聚集的目标在于符合逻辑地将输入数据的集合组织在多个数据子集(即,数据集群)中以用于后续的数据处理.通过观察明显的是,对应于图1的图像100的示例数据集合应当被聚集为三个数据集群102、104和106.一种数据聚集算法被设计用于使得计算机能够获得那个相同的结果.
图2是根据本发明的一个实施例的数据聚集算法200的流程图.该数据聚集算法200被应用于输入数据的集合以识别一个或多个数据集群,其中每个数据集群是输入数据集合的子集。
数据聚集算法200中的第一步骤202是为输入数据集合定义关注区域(ROI).在数据聚集算法的一些实施方式中,ROI定义步骤202定义了等边的ROI,然而一般来说,ROI并不必须为等边形.下文的描述是指其中ROI为等边形的实施方式.本领域技术人员将理解如何实现为非等边ROI的本发明.
对于诸如对应于图1的二维图像100的那个二维数据集合,初始ROI被定义为包括所有输入数据点的最小的矩形空间.基于该数据集合的X和Y坐标值的范围确定初始ROI。举例来说,假设数据集合中的最小X值为-47,并且数据集合中的最大X值为104.进一步假设数据集合中的最小Y值为13,并且数据集合中的最大Y值为156.在那种情况下,初始ROI是由线X=-47、X=104、Y=13以及Y=156作为边界的矩形空间。这个初始ROI为(104-(-47))或者151单位宽(即,在X维中)以及(156-13)或143单位高(即,在Y维中).
在这种实施方式中,由于步骤202定义了等边形或正方形(在二维数据集合的情况中)ROI,正方形ROI可以通过将初始ROI的高度增大8个单位(通过将初始ROI的上界扩展8个单位或通过将初始ROI的下界扩展8个单位或通过将上界和下界总共扩展8个单位)进行定义。这样扩张的空间将是宽和高都为151单位的正方形ROI。这样的正方形ROI将表示具有能包含集合中所有要被聚集的输入数据点的最小尺寸的等边空间,并且那个扩张的空间会是用于图2的数据聚集算法200的合适的正方形ROI.注意,如果初始ROI正好是等边形,那么初始ROI已经是适于用作数据聚集算法200的这个实施方式的正方形ROI.
数据聚集算法200中的第二步骤204是标准化输入数据。继续使用相同的示例输入数据集合,X坐标值范围从-47到104,并且Y坐标值范围从13到156.在那种情况中,假设通过最多仅扩展上界和右界定义ROI,对于输入数据集合在笛卡尔坐标系中正方形ROI的左下角位于点(X,Y)=(-47,13).在数据标准化步骤204中,该集合中的数据点在X维度移位+47单位并在Y方向移位-13单位,以使得对于标准化的数据集合,标准化的ROI的左下角位于的笛卡尔坐标系的原点(0,0).除了线性移位数据坐标外,数据标准化还可包括将数据坐标缩放为在每个维度的范围都为0至1.这种缩放使得接下来的处理更加一般化.这种缩放还将基于整数的坐标转变为浮点坐标,它可使得处理更为准确.注意,对于非等边ROI,基于ROI的最长维度的长度缩放数据坐标.一般来说,在已经标准化数据点后,标准化的数据点的坐标值将是相对于关注区域内的点,例如左下角.本领域技术人员将理解,关注区域内的任何点都可被选为标准化的笛卡尔坐标系的原点.
数据聚集算法200中的下一步骤206是为ROI构建中心矩阵。图3是图1中表示的数据集合的示例中心矩阵300的图形化表示.在此具体示例中,中心矩阵300是跨越ROI的等间距的中心点302的(5×5)阵列.中心矩阵300具有在ROI的四个角处的四个中心点302,沿着ROI四个边的其它的12个中心点302,以及在ROI的内部内的剩余9个中心点302.一般来说,对于中心矩阵阵列中的中心点302的总数Nc通过下述等式(1)给出:
Nc=Nin*P (1)
其中Nin为数据集合中输入数据点的总数,并且P为指定的精度参数.对于图3的示例中心矩阵300,如果在图1的输入数据集合中存在5000个输入数据点,那么0.01的精度参数P将导致阵列大小Nc为50.
如图3所示,每个中心点302是具有半径R的二维空间中的圆304的中心.注意,位于ROI的边上的中心点302对应于半圆304,而位于ROI的角处的中心点302对应于四分之一圆304。半径R对应于最小的可能值,以使得ROI中的每个数据点位于至少一个圆304内.对于本说明,距离中心点302正好R单元的数据点被称为位于对应于那个中心点302的圆304的“内部”.在图3的二维空间的情况中,半径R等于对角相邻的中心点302之间的距离的一半.一般来说,对于N维的数据空间,半径R由下述等式(2)定义:
其中G是N维数据空间中最近相邻中心点之间的距离(即,沿着N维的其中一维).
如图3所示,圆304重叠以使得每个圆304与其相应的相邻圆304中的每个圆304具有重叠区域306以及在圆304的中心的非重叠区域308.因此,对应于角处中心点302的圆304具有两个重叠区域306,对应于边上中心点302的圆304具有三个重叠区域,以及对应于内部中心点302的圆304具有四个重叠区域,同时每个圆304恰好具有一个非重叠区域308.
图4是对应于覆盖在图1的图像100上的图3的中心矩阵300的覆盖图像400的图形化表示.一般来说,位于圆304的非重叠区域308内的每个数据点仅位于那个圆304内,而位于两个相邻圆304的重叠区域306内的每个数据点同时位于那些圆304内.注意,符合四个圆304的交叉部的数据点位于所有那四个圆304内.对于三维数据空间来说,每个数据点将最多位于8个不同球体内.一般来说,对于N维数据空间来说,每个数据点将最多位于2N个不同的“超球体”中.
再次参考图2,数据聚集算法200中的下一步骤208是符合逻辑地将集合中的每个数据点映射至它的相应一个、两个或四个中心点302.位于非重叠区域308内的那些数据点被映射至其相应圆304的单个中心点302,而位于重叠区域306中的那些数据点被映射至其两个相应圆304的两个中心点302.如果数据点符合四个圆的交叉部,那么该数据点将被符合逻辑地映射至那些四个相应圆304的四个中心点302.将通过计算每个数据点和中心矩阵300中的每个中心点302之间的几何距离d来完成这个数据映射步骤208.对于图4的二维空间,几何距离d通过下述等式(3)给出:
其中(XD,YD)是数据点的坐标并且(XC,YC)是中心点302的坐标.如果计算得到的距离d小于或等于半径R,则数据点位于相应圆304内,那么该数据点被符合逻辑地映射至相应的中心点302;否则,该数据点并不位于那个圆304内,并且该数据点不被符合逻辑地映射至那个中心点302.对于每个中心点302i,保持位于相应圆304i内的数据点的数量的计数值Ni。同样保持位于每个重叠区域306j内的数据点的数量的计数值NNj.如果数据点被映射至两个(或四个)不同的中心点302,那么位于相应重叠区域306j内的数据点的计数值NNj会递增(递增1).
等式(3)的距离测量是基于欧几里得距离的。在可供选择的实施方式中,可使用其它适当的距离测量,诸如(并不限制)那些基于曼哈顿距离、切比雪夫距离以及闽科夫斯基距离的测量.
数据聚集算法200中的下一步骤210是将适当的相邻圆304的对归并在一起.在一个可能的实施方式中,相邻圆304被限于是在中心矩阵300的相同行或相同列中的连续的圆.在这种具体实施方式中,对角的圆304并不相邻.
一般来说,如果两个相邻圆304的重叠区域306与那两个圆304的一个或两个中的数据点的总数Ni相比包含较大数量NNj的数据点,那么将那两个圆304归并在一起是适当的.圆归并步骤210的一种可能的实施方式在每个纬度的一个方向上进行.举例来说,圆归并步骤210对于中心矩阵300中的每行圆304可从左向右执行并对于中心矩阵300中的每列圆304从上至下执行.对于给定的相邻圆304-1和304-2对,其中圆304-1要么在圆304-2的左边要么在圆304-2的上方,圆归并步骤210可以如下执行:
●计算比率R1=NN/N1以及R2=NN/N2,其中NN是位于两个相邻圆304-1和304-2的重叠区域306内的数据点的数量,N1是位于圆304-1内的数据点的数量,以及N2是位于圆304-2内的数据点的数量.
●如果满足下述三个条件(a)、(b)或(c)中的任意一个或多个条件,则
归并两个圆304-1和304-2:
(a)如果(i)N1和N2都大于K1并且如果(ii)R1或R2大于K2,其中K1是指定的密度阈值,其值被选择为忽略仅具有噪音或仅具有少量数据点的圆304,并且K2是其中两个圆可以被归并的指定的最小比率阈值;
(b)如果(i)N1小于K1,并且如果(ii)N2大于K1,并且如果(iii)R1大于K3,其中K3是用于确定圆位于数据集群的边缘的指定的最小比率阈值;以及
(c)如果(i)N1大于K1,并且如果(ii)N2小于K1,以及如果(iii)R2大于K3.
注意,如果条件(b)被满足,那么圆304-1位于相应数据集群的边缘,而如果条件(c)被满足,那么圆304-2位于相应数据集群的边缘.如果圆304i不与任何其相邻圆304归并并且如果其数据点的总量Ni小于或等于密度阈值K1,那么圆304i由于仅包含噪音而被忽略.如果圆304i不与任何其相邻圆304归并并且如果其数据点的总数量Ni大于密度阈值K1,那么圆304i被确定具有整体位于圆304i内的其自己的数据集群.
图5是通过针对图4的示例重叠图像400执行图2的圆归并步骤210生成的关系图500的图形化表示.在图5中,处于重叠区域306中的每个箭头502指示两个相应的邻近圆304在圆归并步骤210期间被归并.在重叠区域306中的每个交叉504指示这两个相应的邻近圆304在圆归并步骤210期间并不归并.注意,由于圆归并步骤210从左至右并从上至下执行,每个箭头502指向右或下.在过程中的此处,关于每对是否已经被归并的信息存在于圆304的相邻对的等级上.
数据聚集算法200中的下一步骤212是遍历该关系图以识别属于相同的数据集群的多对归并的圆.举例来说,如果(i)圆304-1已经与圆304-2归并并且(ii)圆304-2已经与圆304-3归并,那么所有三个圆304-1、304-2以及304-3应当属于相同的数据集群.可以以光栅扫描的模式从左向右并从上向下分析每个圆304来遍历图5的示例关系图500,从而定位归并的圆304.当定位了某个归并的圆304时,创建新的集群,并且相邻圆304的序列被既向下又从左至右来分析,从而定位相同集群的相应的归并的圆304.如果圆304已经与一个或多个其它圆304归并,那么第一圆304和一个或多个其它圆304所有都与相同的集群关联。如果那些其它圆304的任意一个已经进一步与仍然为其它的圆304归并,那么那些仍然为其它的圆304同样与那个相同的集群关联。在图遍历步骤212的最后,一个或多个集群将已经被具有一个或多个关联的圆的每个集群来识别.
图6是通过对图5的关系图500执行图遍历步骤212生成的树状图600的图形化表示.如图6所示,树状图600包括三个明显的树形结构602,其中每一个树形结构识别属于不同的、关联的集群的一个或多个圆304.一般来说,如果树状结构602的任何部分覆盖圆304的任何部分,那么那个圆304是相关联集群的一部分.
图2的数据聚集算法200中的下一步以及最后步骤214将数据点映射至它们相关联的数据集群.具体地,如果数据点位于与某集群关联的圆内,那么那个数据点被映射至那个集群.注意,可能存在处于与任何集群都不关联的圆中的数据点.那些数据点将不包括在任何数据集群中并被假定为是噪音或至少是可忽略的.在数据聚集算法200完成时,一个或多个数据集群将已经识别,它们中每个包含原始数据点的不同的、不重叠的子集.然后,那些一个或多个数据集群可进行对特定的、全部的数据处理应用必要的任何适当的数据处理.
图2的数据聚集算法200可比传统的数据聚集算法的计算强度小.数据聚集算法200的计算减少的一个原因在于数据点的映射(即,图2的步骤208)是基于固定的中心点的,而传统的数据聚集算法(例如K-平均数算法)是基于随着数据集群增长而移动的动态的中心点的.
然而,数据聚集算法200的计算强度可能仍然很大,特别是对于大量的数据点和/或数据特性的维度的数量大于二。因此,在具有并行操作的不同类型的多个处理器的异构平台上执行数据聚集算法200是有用的.
图7是适于实现图2的数据聚集算法200的异构计算机系统700的高等级框图。计算机系统700具有ARM(高级RISC(精简指令集计算机)机器)架构,它包括(i)包括中央处理单元(CPU)712和SDRAM(同步动态随机存取存储器)系统存储器714的主机710以及(ii)包括被配置为在GPU处理单元730中并行操作的多个GPU核心740的图形处理单元(GPU)设备720.注意,由于CPU 712以及GPU设备720共享系统存储器714,所以系统存储器714可同时被用作CPU 712和GPU设备720的全局存储器.通过在CPU 712和GPU设备720之间映射系统存储器714的地址空间,可减少数据传输需求.
除了GPU处理单元730之外,GPU设备720还包括存储控制GPU行为和特征的控制值的控制寄存器721,包括GPU存储器管理单元(MMU)722的存储器控制器,加载/存储单元723以及存储器缓存724,存储参数值的参数RAM(随机存取存储器)725;存储处理由数据聚集算法200生成的数据集群的GPU着色器指令的指令RAM 726,加载和分析GPU着色器指令的前端727,以及在由使用GPU核心740实现的工作组中的工作项使用的共享存储器728(参考图8在下文进行解释)。
每个GPU核心740包括控制数据流入和流出GPU核心740的流控制单元742,被配置为执行GPU核心740的浮点计算的浮点执行单元744,被配置为执行GPU核心740的整数计算的整数执行单元746,以及为GPU核心740提供私有存储器的临时寄存器748。
在一个可能的实现方式中,不同的GPU核心740并行操作以针对数据的不同子集和/或针对图3的中心矩阵300的不同的中心点302,同时执行图2的数据聚集算法200的数据映射步骤208,而CPU 712执行数据聚集算法200的剩余步骤.注意,CPU 712可以以并行流水线的方式执行数据聚集算法200的圆归并步骤210,其中GPU核心740执行数据映射步骤208.举例来说,只要GPU核心740完成两个相邻中心点302的数据映射步骤208,则CPU 712就可以向两个相应的重叠圆304应用圆归并步骤210,而GPU核心740为其它中心点302执行数据映射步骤208.
注意,在一些实施方式中,异构计算机系统200具有可以基于要聚集的数据量动态地向CPU 712和GPU设备720分配不同的数据聚集操作的控制器(未示出).举例来说,对于小数据集合,整个数据聚集算法可由CPU 712执行.
图8是在图7的异构计算机系统700上以同时、多任务的方式实现图2的数据聚集算法200的数据映射步骤208的针对多GPU核心740的OpenCL(开放计算语言)软件框架800的图形化表示.
在提出的实施方式中,针对多个中心点302同时执行数据映射步骤208,其中映射程序与针对每个中心点302的是相同的,并且执行指令与针对每个并行过程的是相同的.不同并行过程之间的差异在于要处理的数据.这样的并行模式被称为SIMD(单指令多数据)处理.在图7中,GPU设备720具有多个GPU核心740和前端727.前端727对于不同GPU核心740提供相同的指令以供运行,然而不同的GPU核心740从系统存储器714中获取不同的数据.
在图8的OpenCL框架800中,提出了被称为工作项806的抽象概念以表示将在图7的一个GPU核心740中完成的处理。在本公开中,工作项806对应于与针对图3的中心矩阵300的一个中心点302的数据映射步骤208相关的计算.工作组804包括多个工作项806,这意味着可以由GPU设备720同时完成针对几个中心点302的映射。在一个可能的实施方式中,逐行执行数据映射步骤208.因此,对于图3的(5×5)中心矩阵300,针对中心矩阵300的每行并行操作五个GPU核心740.
在这种情况中,与数据映射步骤208相关联的所有计算被表示为图8中的阵列802.阵列802表示在数据聚集算法200的矩阵构建步骤206中定义的中心矩阵300,其中每个中心点302已经被映射在工作项806中,其中发生所有输入数据点和相应的中心点302之间的距离的计算。每个工作项806在NDR(N-维范围)空间中具有全局坐标(Gx,Gy).
数个相连的工作项806可形成工作组804,其中所有的工作项806共享相同的本地存储器748并且由GPU处理器单元730中的不同的GPU核心740同时执行。同样地,工作组804具有其自身的全局坐标(Wx,Wy)和尺寸(Sx,Sy).因此,工作组804中的工作项806的局部坐标(Lx,Ly)由下述公式给出:
Lx=Gx-Wx*Sx
Ly=Gy-Wy*Sy
一般来说,在等式(1)中使用的精度参数P的值越小,数据聚集算法的保真度越大,而计算负荷越大,这是因为越小的精确参数值意味着在中心矩阵中的中心点越多并且相应的圆更少。可以将精确参数P的值选择为实现提高的保真废和降低的计算负荷的竞争性目标之间的平衡.
虽然已经将图2的数据聚集算法200描述为通过图7的异构计算机系统700来实现,然而本领域技术人员将理解,可以由其它计算机系统实现数据聚集算法200.举例来说,这些其它计算机系统可以具有除GPU外的适当的并行处理单元.其它计算机系统还可以具有单个GPU或其它适当的加速器或除了CPU之外的硬件辅助的处理器。其它计算机系统还可以完全不是异构的,其中所有的处理都在CPU上实现。
可以以方法或实现那些方法的装置的形式表现本发明的实施例.还可以以嵌入有形的介质(诸如磁性记录介质、光学记录介质、固态存储器、软盘、CD-ROM、硬盘驱动器或任意其它非暂态机器可读存储介质)中的程序代码的形式表现本发明的实施例,其中,当程序代码被加载入机器(诸如计算机)并由其执行时,该机器成为用于实现本发明的装置.还可以以程序代码的形式表现本发明的实施例,举例来说,该程序代码被存储在非暂态机器可读存储介质中,包括被加载入机器和/或由机器执行,其中,当该程序代码被加载入机器并由机器(诸如计算机)执行时,该机器成为实现本发明的装置.当在通用处理器上实现时,程序代码片段与处理器组合以提供独特的设备,该设备类似地操作特定逻辑电路.
可利用任何适当的处理器可用/可读或计算机可用/可读的存储介质.该存储介质可以是(并不限制为)电子、磁性、光学、电磁、红外或半导体系统、装置或设备.可能的存储介质的更具体的、非穷尽的列表包括磁带、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)或闪存存储器、便携式只读光盘存储器(CD-ROM)、光学存储设备和磁性存储设备.注意,存储介质甚至可以是纸或其它适当的介质,其上印刷有程序,因为程序可通过诸如印刷的光学扫描进行电子捕获,然后以适当的方式(包括但不限于光学字符识别)被编译、解释或者以其它的的方式进行处理,如果必要的话,然后被存储在处理器或计算机存储器中.在本公开的上下文中,适当的存储介质可以是可能包含或存储程序的任何介质,该程序可被指令执行系统、装置或设备使用或与其相连.
可通过使用专用硬件和与合适软件关联的能够执行软件的硬件提供图中所示多种要素的功能,包括标识为“处理器”的任何功能模块.当由处理器提供时,可由单个专用处理器、单个共享处理器或多个独立的处理器提供该功能,其中部分处理器为共享处理器.此外,术语“处理器”或“控制器”的明确使用不应被理解为仅指能够执行软件的硬件,并可以隐含包括,而并不限制为数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)以及非易失性存储器.也可以包括传统和/或定制的其它硬件.
本领域技术人员应当理解,本文中的任何框图表示实施本发明的原理的说明性电路的概念图.相似地,可理解的是,任何流程图表、流程图、状态迁移图、伪代码等表示可以大体以计算机可读介质表示并因此由计算机或处理器执行的多种过程,无论这种计算机或处理器是否明显示出.
将进一步理解,本领域技术人员可以在不脱离下述权利要求所包括的本发明的实施例的情况下,对已经描述和说明以便解释本发明的实施例的各部分的细节、材料和布置作出多种改变.
在包含任何权利要求的本说明书中,术语“每个”可用于表示多个前引用的要素或步骤中的一个或多个特定特性。当与开放式术语“包括”共同使用时,术语“每个”的引用并不排除额外的、未引用的要素或步骤。因此,将理解的是,装置可以具有额外的、未引用的要素并且方法可以具有额外的、未引用的步骤,其中该额外的、未引用的要素或步骤并不具有一个或多个特定特性.
应当理解,本文提出的示例性方法的步骤并不必须按描述的顺序执行,并且这些方法的步骤的次序应当理解为仅仅是示例性的.相同地,额外的步骤可被包含在这些方法中,并且在与本发明的多种实施例一致的方法中,可以省略或组合某些步骤.
虽然以具有相应的标号的特定次序引用下述方法权利要求的要素(如果有的话),但是除非该权利要求引用相反地暗示着用于实现这些要素的部分或全部的特定次序,否则这些要素并不必须意欲被限制为以那个特定次序进行实现.
本文对于“一个实施例或“一种实施例”的引用是指结合实施例描述的特定特征、结构或特性,其可以包含在本发明的至少一个实施例中.在说明书中多处出现的短语“在一个实施例中”并不必须全部表示相同实施例,也不是必须与其它实施例互相排除的分立或替代实施例.对于术语“实施方式”也是如此。
Claims (10)
1.一种计算机实现的方法,用于针对图像数据点的集合生成一个或多个数据集群,其中所述计算机包括中央处理单元、多个并行处理单元、以及由所述中央处理单元和所述并行处理单元共享的系统存储器;所述方法包括:
(a)所述中央处理单元定义包含所述数据点的在所述图像中的关注区域;
(b)所述中央处理单元为所述关注区域定义中心矩阵,其中所述中心矩阵包括定义重叠圆的中心的中心点的阵列;
(c)所述并行处理单元基于相近的中心点将数据点映射至相应的圆;
(d)所述中央处理单元基于所映射的数据点确定是否归并相邻对的重叠圆;
(e)所述中央处理单元基于重叠圆的所归并的对识别属于所述一个或多个数据集群的圆;
(f)所述中央处理单元基于所识别的圆识别属于所述一个或多个数据集群的所述图像的数据点。
2.如权利要求1所述的方法,其中步骤(a)包括:
(a1)识别数据点的最小和最大坐标值以识别包含所述数据点的初始关注区域;以及
(a2)如果初始关注区域不是等边形,则增大初始关注区域在一个或多个维度中的尺寸以定义包括所述数据点的等边的关注区域。
3.如权利要求1所述的方法,其中步骤(a)包括标准化所述数据点的坐标值为相对于所述关注区域内的点。
4.如权利要求1所述的方法,其中:
所述中心矩阵的中心点在所述关注区域内被规律地间隔开;以及
所述圆具有相同长度的半径,以使得每个数据点均位于单个圆内或者两个或多个圆间的重叠区域内。
5.如权利要求1所述的方法,其中步骤(c)包括:
(c1)计算从每个数据点至每个中心点的距离;以及
(c2)如果数据点和中心点之间的距离被确定为小于或等于对应于所述中心点的圆的半径,那么确定所述数据点位于所述圆内;否则,确定所述数据点并不位于所述圆内。
6.如权利要求1所述的方法,其中基于位于相邻对的重叠圆的重叠区域中的数据点与位于相应的圆内的数据点总数相比较的相对数量,所述计算机确定是否归并相邻对的重叠圆。
7.如权利要求6所述的方法,其中步骤(d)包括,对于共享重叠区域的两个重叠圆:
(d1)生成将重叠区域中的数据点的数量与每个相应的重叠圆中的数据点的总数相关的重叠度量值;以及
(d2)基于所述重叠度量值确定是否将两个重叠圆归并成归并的对。
8.如权利要求1所述的方法,其中步骤(e)包括遍历重叠圆的归并对的关系图以识别属于每个不同数据集群的一个或多个圆。
9.如权利要求1所述的方法,其中:
步骤(a)包括标准化数据点的坐标值为相对于关注区域内的点;
中心矩阵的中心点在关注区域内被规律地间隔开;
所述圆具有相同长度的半径,以使得每个数据点均位于单个圆内或者两个或多个圆之间的重叠区域内;
步骤(c)包括:
(c1)计算从每个数据点至每个中心点的距离;以及
(c2)如果数据点和中心点之间的距离被确定为小于或等于对应于中心点的圆的半径,那么确定所述数据点位于所述圆内;否则,确定所述数据点并不位于所述圆内;
基于位于相邻对的重叠圆的重叠区域中的数据点与位于相应的圆内的数据点总数相比较的相对数量,所述计算机确定是否归并相邻对的重叠圆;
步骤(d)包括,对于共享重叠区域的两个重叠圆:
(d1)生成将重叠区域中的数据点的数量与每个相应的重叠圆中的数据点的总数相关的重叠度量值;以及
(d2)基于重叠度量值确定是否将两个重叠圆归并成归并的对;
步骤(e)包括遍历重叠圆的归并对的关系图以识别属于每个不同数据集群的一个或多个圆。
10.一种计算机系统,用于针对图像数据点的集合生成一个或多个数据集群,所述计算机系统包括:
中央处理单元CPU;
多个并行处理单元;以及
由CPU和并行处理单元共享的系统存储器,其中所述计算机系统通过以下步骤实现数据聚集算法:
(a)所述中央处理单元定义包含所述数据点的在所述图像中的关注区域;
(b)所述中央处理单元为所述关注区域定义中心矩阵,其中所述中心矩阵包括定义重叠圆的中心的中心点的阵列;
(c)所述并行处理单元基于相近的中心点将所述数据点映射至相应的圆;
(d)所述中央处理单元基于所映射的数据点确定是否归并相邻对的重叠圆;
(e)所述中央处理单元基于重叠圆的所归并的对识别属于所述一个或多个数据集群的圆;
(f)所述中央处理单元基于所识别的圆识别属于所述一个或多个数据集群的所述图像的数据点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511035936.9A CN106682052B (zh) | 2015-11-11 | 2015-11-11 | 使用映射和归并的数据聚集 |
US15/256,633 US10289634B2 (en) | 2015-11-11 | 2016-09-05 | Data clustering employing mapping and merging |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511035936.9A CN106682052B (zh) | 2015-11-11 | 2015-11-11 | 使用映射和归并的数据聚集 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106682052A CN106682052A (zh) | 2017-05-17 |
CN106682052B true CN106682052B (zh) | 2021-11-12 |
Family
ID=58663883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511035936.9A Active CN106682052B (zh) | 2015-11-11 | 2015-11-11 | 使用映射和归并的数据聚集 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10289634B2 (zh) |
CN (1) | CN106682052B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10438405B2 (en) * | 2017-03-02 | 2019-10-08 | Sony Corporation | Detection of planar surfaces for use in scene modeling of a captured scene |
US10388042B2 (en) * | 2017-08-25 | 2019-08-20 | Microsoft Technology Licensing, Llc | Efficient display of data points in a user interface |
KR102142767B1 (ko) * | 2018-09-11 | 2020-08-10 | 강원대학교산학협력단 | 데이터간 상대적 거리 비율 및 클러스터의 중심 데이터 간의 거리를 고려한 데이터 클러스터링 방법 및 시스템 |
US10810513B2 (en) * | 2018-10-25 | 2020-10-20 | The Boeing Company | Iterative clustering for machine learning model building |
US11281998B2 (en) | 2018-12-11 | 2022-03-22 | Paypal, Inc. | Systems and methods for automatic labeling of clusters created by unsupervised machine learning methods |
US11403482B2 (en) | 2020-01-15 | 2022-08-02 | Aptiv Technologies Limited | Adaptive search for LiDAR-based clustering |
US11461372B1 (en) * | 2021-03-18 | 2022-10-04 | Bae Systems Information And Electronic Systems Integration Inc. | Data clustering in logic devices using unsupervised learning |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714153A (zh) * | 2013-12-26 | 2014-04-09 | 西安理工大学 | 基于限定区域数据取样的密度聚类方法 |
CN104217015A (zh) * | 2014-09-22 | 2014-12-17 | 西安理工大学 | 基于互为共享最近邻的层次聚类方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834278B2 (en) * | 2001-04-05 | 2004-12-21 | Thothe Technologies Private Limited | Transformation-based method for indexing high-dimensional data for nearest neighbour queries |
WO2007127296A2 (en) * | 2006-04-25 | 2007-11-08 | Data Relation Ltd. | System and method to work with multiple pair-wise related entities |
US20080010245A1 (en) | 2006-07-10 | 2008-01-10 | Jaehwan Kim | Method for clustering data based convex optimization |
US20080086493A1 (en) * | 2006-10-09 | 2008-04-10 | Board Of Regents Of University Of Nebraska | Apparatus and method for organization, segmentation, characterization, and discrimination of complex data sets from multi-heterogeneous sources |
US8385971B2 (en) | 2008-08-19 | 2013-02-26 | Digimarc Corporation | Methods and systems for content processing |
TWI396106B (zh) | 2009-08-17 | 2013-05-11 | Univ Nat Pingtung Sci & Tech | 以格子為導向之資料分群方法 |
TWI385544B (zh) * | 2009-09-01 | 2013-02-11 | Univ Nat Pingtung Sci & Tech | 基於密度式之資料分群方法 |
US8400458B2 (en) | 2009-09-09 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Method and system for blocking data on a GPU |
TWI460680B (zh) | 2011-05-17 | 2014-11-11 | Univ Nat Pingtung Sci & Tech | 密度式資料分群方法 |
-
2015
- 2015-11-11 CN CN201511035936.9A patent/CN106682052B/zh active Active
-
2016
- 2016-09-05 US US15/256,633 patent/US10289634B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714153A (zh) * | 2013-12-26 | 2014-04-09 | 西安理工大学 | 基于限定区域数据取样的密度聚类方法 |
CN104217015A (zh) * | 2014-09-22 | 2014-12-17 | 西安理工大学 | 基于互为共享最近邻的层次聚类方法 |
Non-Patent Citations (1)
Title |
---|
基于区域最近邻生长的层次聚类算法;杨栋等;《化工自动化及仪表》;20100510;第37卷(第5期);第9-12页 * |
Also Published As
Publication number | Publication date |
---|---|
US20170132307A1 (en) | 2017-05-11 |
US10289634B2 (en) | 2019-05-14 |
CN106682052A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682052B (zh) | 使用映射和归并的数据聚集 | |
US11436483B2 (en) | Neural network engine with tile-based execution | |
CN109754064B (zh) | 执行解卷积的神经网络的方法和装置 | |
US11300964B2 (en) | Method and system for updating occupancy map for a robotic system | |
US8072460B2 (en) | System, method, and computer program product for generating a ray tracing data structure utilizing a parallel processor architecture | |
JP7495970B2 (ja) | ルート計画計算デバイスを改良するためのデバイス及び方法 | |
US20190147332A1 (en) | Memory bandwidth reduction techniques for low power convolutional neural network inference applications | |
US20200151573A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
US9835462B2 (en) | System for determining a height coordinate | |
US20200183833A1 (en) | Virtual space memory bandwidth reduction | |
US8630509B2 (en) | Structured grids for label propagation on a finite number of layers | |
TW201447776A (zh) | 透過圖形處理單元執行物件偵測運算 | |
EP3985509A1 (en) | Neural network segmentation method, prediction method, and related apparatus | |
CN110516316B (zh) | 一种间断伽辽金法求解欧拉方程的gpu加速方法 | |
US8345064B2 (en) | Method and system for tile binning using half-plane edge function | |
US20200175392A1 (en) | Multiple Model-Based Apparatus and Method for Inferring a Path for At Least One Target Object | |
US20200210805A1 (en) | Neural Network Generator | |
CN114241388A (zh) | 基于时空记忆信息的视频实例分割方法和分割装置 | |
US20160026646A1 (en) | Recording medium having data recorded therein in data file format structure for visualization of large capacity cfd parallel data and method for generating said data file format structure | |
CN111009034B (zh) | 一种三维模型单体化方法、系统、存储介质及设备 | |
US9110855B2 (en) | Matrix based dynamic programming | |
CN116186571B (zh) | 车辆聚类方法、装置、计算机设备及存储介质 | |
CN109961061A (zh) | 一种边缘计算视频数据结构化方法及系统 | |
CN110009559B (zh) | 图像处理方法及装置 | |
KR20120050642A (ko) | 초기 클러스터링을 사용한 병합식 계층적 클러스터링 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Texas in the United States Applicant after: NXP America Co Ltd Address before: Texas in the United States Applicant before: Fisical Semiconductor Inc. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |