CN104794494A - 一种可扩展快速的轨迹聚类方法 - Google Patents

一种可扩展快速的轨迹聚类方法 Download PDF

Info

Publication number
CN104794494A
CN104794494A CN201510217525.5A CN201510217525A CN104794494A CN 104794494 A CN104794494 A CN 104794494A CN 201510217525 A CN201510217525 A CN 201510217525A CN 104794494 A CN104794494 A CN 104794494A
Authority
CN
China
Prior art keywords
track
mst
cluster
coordinate
thread
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.)
Granted
Application number
CN201510217525.5A
Other languages
English (en)
Other versions
CN104794494B (zh
Inventor
邓泽
陈小岛
陈云亮
胡阳阳
朱茂
杜波
黄晓辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China University of Geosciences
Original Assignee
China University of Geosciences
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China University of Geosciences filed Critical China University of Geosciences
Priority to CN201510217525.5A priority Critical patent/CN104794494B/zh
Publication of CN104794494A publication Critical patent/CN104794494A/zh
Application granted granted Critical
Publication of CN104794494B publication Critical patent/CN104794494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2132Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on discrimination criteria, e.g. discriminant analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种可扩展快速的轨迹聚类方法,首先进行局部最小生成树(MST)计算,然后生成全局MST,再利用粗粒度并行方法或者细粒度并行方法从全局MST提取聚类。本发明在点数据聚类的基础之上提出了新的轨迹聚类算法,时间开销比传统的基于模型、基于距离或者基于密度的聚类算法小,能够提高轨迹聚类速度和计算性能,同时本发明所提出的算法实现了轨迹大数据聚类的可扩展性。

Description

一种可扩展快速的轨迹聚类方法
技术领域
本发明涉及一种可扩展快速的轨迹聚类方法,属于数据挖掘技术和高性能计算领域。
背景技术
目前,已有许多成功的轨迹聚类方法。轨迹聚类方法大致可分为三类,即基于模型、基于距离和基于密度。基于模型的方法是对部分或者全部轨迹数据集进行建模,并为该模型寻找代表不同聚类的一组拟合参数。整个轨迹聚类的模型有回归混合模型和Markov模型,EM算法被用来估计这些模型的参数。这些方法中,轨迹模型作为一个整体,因此不能检测轨迹中相似的部分。
基于距离的聚类算法采用不同的轨迹距离函数和通用聚类算法来进行轨迹聚类。Chen等人提出的轨迹聚类函数,叫做实序列编辑距离(EDR),EDR用来健壮轨迹的不完美。该轨迹聚类是基于ERD的分层聚类算法。最近,Wu等人提出了一种新奇的基于距离的轨迹聚类算法——CluST,CluST的主要思想是将轨迹数据划分成线段,并基于空间和和时间特征使用一种新的时空线性距离函数。所使用的线段距离函数和轨迹线段是基于k-means聚类算法。
基于密度的聚类算法每条轨迹的密度阈值从噪声数据中辨别相关的数据项。在基于密度的轨迹聚类算法中占主导地位的是DBSCAN和点数据聚类(OPTICS),因为DBSCAN和OPTICS能够发现任意形状的聚类。
发明内容
为了解决现有技术的不足,本发明首次提以分布式方式在GPU上并行处理轨迹大数据的聚类方法,提供了一种可扩展快速的轨迹聚类方法,采用分布式和并行方法实现了轨迹大数据聚类的可扩展性以及提高轨迹聚类速度和计算性能。
本发明为解决其技术问题所采用的技术方案是:提供了一种可扩展快速的轨迹聚类方法,包括以下步骤:
(1)局部MST计算:
(1-1)已知轨迹Ti由Ni个连续不断的点的位置和时间戳组成,其中zj和tj分别表示轨迹Ti中数据点的位置和时间戳,位置由其x坐标和y坐标组成,j∈[1,Ni];STi为Ti的子集,STi中的点为轨迹Ti中的连续点的一部分,轨迹数据D为N个轨迹的集合{T1,T2,...,TN}或者轨迹的子集的集合{ST1,ST2,...,STN};
首先对轨迹数据D建立STR树索引,STR树索引的每个叶子节点存储近似相等的轨迹;然后根据索引的叶子节点将轨迹数据D划分为V个子集D1、D2、…、DV,V为叶子节点数;
(1-2)寻找邻域内的轨迹:
(1-2-1)将V个子集分别分配给一个CPU线程;
(1-2-2)对于每个CPU线程,该CPU线程扫描该CPU线程中的子集的各个轨迹,在任意时间周期tk到tk+1内的两条轨迹T1和T2,T1和T2均为该CPU线程中的子集中的轨迹,T1和T2在时间标记tk到tk+1内的线性插值;所述时间周期tk到tk+1为设置的采样频率的倒数,是时刻tk的点到时刻tk+1的点组成的两条已知的不同线段;
(1-2-3)利用以下时空距离公式近似计算任意两条轨迹的时空距离:
Dist ( T 1 , T 2 ) ≈ Σ i = 1 N - 1 ( ( D T 1 , T 2 ( t k ) + ( D T 1 , T 2 ( t k + 1 ) × ( t k + 1 - t k ) ) . . . . . . ( 1 )
其中,Dist(T1,T2)表示任意两条轨迹T1和T2的时空距离,是随时间变化的欧氏距离,通过以下公式计算:
D T 1 , T 2 ( t ) = a × t 2 + b × t + c . . . . . . ( 2 )
a = A ( t k - 1 - t k ) 2 . . . . . . ( 3 )
b = B t k + t k - 1 - 2 × A × t k + 1 ( t k + 1 - t k ) 2 . . . . . . ( 4 )
c = A × t k 2 t k + 1 - t k - B × t k t k + 1 - t k + C . . . . . . ( 5 )
A = ( q t k + 1 . x - q t k . x - p t k + 1 . x + p t k . x ) 2 + ( q t k + 1 . y - q t k . y - p t k + 1 . y + p t k . y ) 2 . . . . . . ( 6 )
B = 2 ( ( q t k + 1 . x - q t k . x - p t k + 1 . x + p t k . x ) ( q t k . x - p t k . x ) + ( q t k + 1 . y - q t k . y - p t k + 1 . y + p t k . y ) ( q t k . y - p t k . y ) ) . . . . . . ( 7 )
C = ( q t k . x - p t k . x ) 2 + ( q t k . y - p t k . y ) 2 . . . . . . ( 8 )
其中,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标;
(1-2-4)判断两条轨迹之间的时空距离是否小于预设值ε,若是则两条轨迹为邻域ε内的轨迹,将两条轨迹进行聚类;
(1-2-5)重复步骤(1-2-2)至步骤(1-2-4),直到每个CPU线程中子集的任意两条轨迹完成聚类;
(1-3)对于每个CPU线程,计算该CPU线程中的每条轨迹到该轨迹的MBB之间的距离,其中任意一条轨迹Ta到其MBB之间的距离利用以下公式计算:
dist ( T a , M ) = Σ i = 1 g min Dist ( T a . linei , M ) . . . . . . ( 9 )
其中,M表示轨迹Ta的MBB,g表示轨迹Ta投影到其MBB的线段数目,i表示轨迹Ta投影到其MBB的线段序号,Ta.linei表示轨迹Ta投影到其MBB的第i条线段;
(1-4)生成局部MST:
(1-4-1)设置一个共享队列Q使其对所有CPU线程共享;
(1-4-2)对于每个轨迹,利用公式(1)分别计算该轨迹与其它各轨迹之间的核心距离ε′,若ε′<ε则其他轨迹为该轨迹邻域ε内的轨迹;
(1-4-3)对于每个轨迹,判断该轨迹Ti在邻域ε内的轨迹数目是否大于预设的一个聚类中最少的轨迹数目minNumofTrs,若是则轨迹Ti为核心轨迹,进入步骤(1-4-4);
(1-4-4)在所有两个轨迹之间的核心距离值中,将最小的核心距离值插入队列Q;
(1-4-5)重复步骤(1-4-2)至步骤(1-4-4)直到对每个轨迹判断其是否为核心轨迹;
(2)生成全局MST:
(2-1)创建一个空的MST;
(2-2)归并步骤(1-4)生成的所有局部MST,得到全局MST;
(3)利用粗粒度并行方法或细粒度并行方法从全局MST提取聚类。
步骤(2)通过FindNeighbor函数寻找邻域内的轨迹。
步骤(3)所述的粗粒度并行方法包括以下步骤:利用Hyper-Q将2个以上CPU线程同时连接一个GPU启动GPU内核,从全局MST提取聚类。
步骤(3)所述的细粒度并行方法包括以下步骤:
(3-1)MST的并行计算:
(3-1-1)并行计算每条轨迹之间的时空距离,将结果以矩阵形式存储到GPU;
(3-1-2)利用GPU线程获取所有轨迹的核心距离,利用所有轨迹的核心距离构成列表L,列表L中的每条信息记录为边(tri,trj,w),表示任意两条互相可达的轨迹tri和trj之间的可达距离w,轨迹tri和trj之间的可达距离w为邻域ε内最小的核心距离;
(3-1-3)扫描所有MST中的轨迹,如果一个轨迹的祖先节点是否属于它的孩子节点,则构成环;记录下每个环对应的轨迹,删除MST中的环;
(3-2)MSTs的并行归并:
(3-2-1)每个GPU线程合并一对最小生成树MSTs
(3-2-2)当两个MSTs根节点之间的时空距离小于ε时,通过将一个的根节点指针指向另一个来合并两个MSTs
(3-2-3)重复步骤(3-2-1)到(3-2-2),直到生成全局MST;
(3-3)聚类的并行提取:
(3-3-1)各个GPU线程并行地初始化每个轨迹,使各个轨迹具有单独的轨迹ID集群标识;
(3-3-2)从所有GPU线程中选取一组GPU线程,该组GPU线程中的每一个GPU线程检查列表L中的一个边,对于边(ti,tj,wij)检查任意轨迹ti与tj是否属于邻域时空距离内的同一聚类,若是则将两条轨迹ti与tj置为相同的聚类ID。
本发明基于其技术方案所具有的有益效果在于:
本发明从全局MST提取聚类算法的复杂度为O((n/p)2+2n),查询每条轨迹的邻域的时间开销为O(n′2),STR树索引轨迹的时间开销为O(n′2×logn′),其中n′为子集的轨迹数目。本发明在点数据聚类的基础之上提出了新的轨迹聚类算法,时间开销比传统的基于模型、基于距离或者基于密度的聚类算法小,能够提高轨迹聚类速度和计算性能,同时本发明所提出的算法实现了轨迹大数据聚类的可扩展性。
附图说明
图1为基于STR树索引示意图。
图2为一条轨迹的投影到其MBB之间的距离计算示意图。
图3为基于STR树和Hyper-Q并行计算示意图。
图4为可扩展快速的轨迹聚类方法的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
本发明提供了一种可扩展快速的轨迹聚类方法,参照图4,包括以下步骤:
(1)局部MST计算:
(1-1)已知轨迹Ti由Ni个连续不断的点的位置和时间戳组成,其中zj和tj分别表示轨迹Ti中数据点的位置和时间戳,位置由其x坐标和y坐标组成,j∈[1,Ni];STi为Ti的子集,STi中的点为轨迹Ti中的连续点的一部分,轨迹数据D为N个轨迹的集合{T1,T2,...,TN}或者轨迹的子集的集合{ST1,ST2,...,STN};
首先对轨迹数据D建立STR树索引,STR树索引的每个叶子节点存储近似相等的轨迹;然后根据索引的叶子节点将轨迹数据D划分为V个子集D1、D2、…、DV,V为叶子节点数;
近似相等的两条轨迹定义如下:若两个轨迹Tα={(zα1,tα1),(zα2,tα2)...(zαN,tαN)}和Tβ={(zβ1,tβ1),(zβ2,tβ2)...(zβN,tβN)},轨迹Tα和Tβ的数据点的个数相同均为N,对于任意1≤j≤N有tαj=tβj即时间戳相同,则轨迹Tα和Tβ近似相等。
如图1所示为STR树索引示意图,轨迹tr被划分成三个线段,即线段1、线段2、线段3。所述线段表示轨迹的相邻两点的连线。这三条线段被相应的MMB(minimumbounding boxs)所封闭,并存储于STR树的叶节点A。叶节点A有三个索引条目(entry1,entry2,entry3),每个条目的组成形式为(entry-ID,#trajectory,MBB),没个条目对应一个线段,#trajectory是相应线段所属的轨迹数目。
(1-2)通过FindNeighbor函数寻找邻域内的轨迹:
(1-2-1)将V个子集分别分配给一个CPU线程;
(1-2-2)对于每个CPU线程,该CPU线程利用FindNeighbor函数扫描该CPU线程中的子集的各个轨迹,在任意时间周期tk到tk+1内的两条轨迹T1和T2,T1和T2均为该CPU线程中的子集中的轨迹,则T1和T2在时间标记tk到tk+1内的线性插值;所述时间周期tk到tk+1为设置的采样频率的倒数,是时刻tk的点到时刻tk+1的点组成的两条已知的不同线段;
(1-2-3)利用以下时空距离公式近似计算任意两条轨迹的时空距离:
Dist ( T 1 , T 2 ) &ap; &Sigma; i = 1 N - 1 ( ( D T 1 , T 2 ( t k ) + ( D T 1 , T 2 ( t k + 1 ) &times; ( t k + 1 - t k ) ) . . . . . . ( 1 )
其中,Dist(T1,T2)表示任意两条轨迹T1和T2的时空距离,是随时间变化的欧氏距离,通过以下公式计算:
D T 1 , T 2 ( t ) = a &times; t 2 + b &times; t + c . . . . . . ( 2 )
a = A ( t k - 1 - t k ) 2 . . . . . . ( 3 )
b = B t k + t k - 1 - 2 &times; A &times; t k + 1 ( t k + 1 - t k ) 2 . . . . . . ( 4 )
c = A &times; t k 2 t k + 1 - t k - B &times; t k t k + 1 - t k + C . . . . . . ( 5 )
A = ( q t k + 1 . x - q t k . x - p t k + 1 . x + p t k . x ) 2 + ( q t k + 1 . y - q t k . y - p t k + 1 . y + p t k . y ) 2 . . . . . . ( 6 )
B = 2 ( ( q t k + 1 . x - q t k . x - p t k + 1 . x + p t k . x ) ( q t k . x - p t k . x ) + ( q t k + 1 . y - q t k . y - p t k + 1 . y + p t k . y ) ( q t k . y - p t k . y ) ) . . . . . . ( 7 )
C = ( q t k . x - p t k . x ) 2 + ( q t k . y - p t k . y ) 2 . . . . . . ( 8 )
其中,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标;
(1-2-4)判断两条轨迹之间的时空距离是否小于预设值ε,若是则两条轨迹为邻域ε内的轨迹,将两条轨迹进行聚类;
(1-2-5)重复步骤(1-2-2)至步骤(1-2-4),直到每个CPU线程中子集的任意两条轨迹完成聚类;
(1-3)对于每个CPU线程,计算该CPU线程中的每条轨迹到该轨迹的MBB之间的距离,其中任意一条轨迹Ta到其MBB之间的距离利用以下公式计算:
dist ( T a , M ) = &Sigma; i = 1 g min Dist ( T a . linei , M ) . . . . . . ( 9 )
其中,M表示轨迹Ta的MBB,g表示轨迹Ta投影到其MBB的线段数目,i表示轨迹Ta投影到其MBB的线段序号,Ta.linei表示轨迹Ta投影到其MBB的第i条线段;
图2所示为一条轨迹Ta的投影与其MMB之间的距离的一个示例,投影包含三条线段(Ta.line1,Ta.line2,Ta.line3),则dist(Ta,M)=minDist(Ta.line1,M)+minDist(Ta.line2,M)+minDist(Ta.line3,M)=min{d1,d2,d3}+min{d3,d4,d5,d6}+min{d6,d7,d8}=d2+d5+d6。
(1-4)生成局部MST:
(1-4-1)设置一个共享队列Q使其对所有CPU线程共享;
(1-4-2)对于每个轨迹,利用公式(1)分别计算该轨迹与其它各轨迹之间的核心距离ε′,若ε′<ε则其他轨迹为该轨迹邻域ε内的轨迹;
(1-4-3)对于每个轨迹,判断该轨迹Ti在邻域ε内的轨迹数目是否大于预设的一个聚类中最少的轨迹数目minNumofTrs,若是则轨迹Ti为核心轨迹,进入步骤(1-4-4);
(1-4-4)在所有两个轨迹之间的核心距离值中,将最小的核心距离值插入队列Q;
(1-4-5)重复步骤(1-4-2)至步骤(1-4-4)直到对每个轨迹判断其是否为核心轨迹;
(2)生成全局MST:
(2-1)创建一个空的MST;
(2-2)归并步骤(1-4)生成的所有局部MST,得到全局MST;
(3)利用粗粒度并行方法或细粒度并行方法从全局MST提取聚类。
步骤(3)所述的粗粒度并行方法包括以下步骤:利用Hyper-Q将2个以上CPU线程同时连接一个GPU启动GPU内核,从全局MST提取聚类。
步骤(3)所述的细粒度并行方法包括以下步骤:
(3-1)MST的并行计算:
(3-1-1)并行计算每条轨迹之间的时空距离,将结果以矩阵形式存储到GPU;
(3-1-2)利用GPU线程获取所有轨迹的核心距离,利用所有轨迹的核心距离构成列表L,列表L中的每条信息记录为边(tri,trj,w),表示任意两条互相可达的轨迹tri和trj之间的可达距离w,轨迹tri和trj之间的可达距离w为邻域ε内最小的核心距离;
(3-1-3)扫描所有MST中的轨迹,如果一个轨迹的祖先节点是否属于它的孩子节点,则构成环;记录下每个环对应的轨迹,删除MST中的环;
(3-2)MSTs的并行归并:
(3-2-1)每个GPU线程合并一对最小生成树MSTs
(3-2-2)当两个MSTs根节点之间的时空距离小于ε时,通过将一个的根节点指针指向另一个来合并两个MSTs
(3-2-3)重复步骤(3-2-1)到(3-2-2),直到生成全局MST;
(3-3)聚类的并行提取:
(3-3-1)各个GPU线程并行地初始化每个轨迹,使各个轨迹具有单独的轨迹ID集群标识;
(3-3-2)从所有GPU线程中选取一组GPU线程,该组GPU线程中的每一个GPU线程检查列表L中的一个边,对于边(ti,tj,wij)检查任意轨迹ti与tj是否属于邻域时空距离内的同一聚类,若是则将两条轨迹ti与tj置为相同的聚类ID。
图3所示为m个CPU线程被分配去连接同一个GPU。每个CPU线程Pi的响应用于处理一组局部轨迹数据。使用基于STR树的轨迹索引结构以实现CPU线程的数据分配。
当接受到单个局部数据后,每个CPU线程同时启动一个任务队列进入GPU的Hyper-Q。任务队列包含以下三个任务:
输入任务——从主机传送局部数据到GPU存储器
聚类任务——调用GPU内核来执行局部MST计算
输出任务——从GPU设备将结果返回给主机。

Claims (4)

1.一种可扩展快速的轨迹聚类方法,其特征在于包括以下步骤:
(1)局部MST计算:
(1-1)已知轨迹Ti由Ni个连续不断的点的位置和时间戳组成,其中zj和tj分别表示轨迹Ti中数据点的位置和时间戳,位置由其x坐标和y坐标组成,t1<t2<...<tNi<当前时刻,j∈[1,Ni];STi为Ti的子集,STi中的点为轨迹Ti中的连续点的一部分,轨迹数据D为N个轨迹的集合{T1,T2,...,TN}或者轨迹的子集的集合{ST1,ST2,...,STN};
首先对轨迹数据D建立STR树索引,STR树索引的每个叶子节点存储近似相等的轨迹;然后根据索引的叶子节点将轨迹数据D划分为V个子集D1、D2、…、DV,V为叶子节点数;
(1-2)寻找邻域内的轨迹:
(1-2-1)将V个子集分别分配给一个CPU线程;
(1-2-2)对于每个CPU线程,该CPU线程扫描该CPU线程中的子集的各个轨迹,在任意时间周期tk到tk+1内的两条轨迹T1和T2,T1和T2均为该CPU线程中的子集中的轨迹,T1和T2在时间标记tk到tk+1内的线性插值;所述时间周期tk到tk+1为设置的采样频率的倒数,是时刻tk的点到时刻tk+1的点组成的两条已知的不同线段;
(1-2-3)利用以下时空距离公式近似计算任意两条轨迹的时空距离:
Dist ( T 1 , T 2 ) &ap; &Sigma; i = 1 N - 1 ( ( D T 1 , T 2 ( t k ) + ( D T 1 , T 2 ( t k - 1 ) &times; ( t k - 1 - t k ) ) . . . . . . ( 1 )
其中,Dist(T1,T2)表示任意两条轨迹T1和T2的时空距离,是随时间变化的欧氏距离,通过以下公式计算:
D T 1 , T 2 ( t ) = a &times; t 2 + b &times; t + c . . . . . . ( 2 )
a = A ( t k - 1 - t k ) 2 . . . . . . ( 3 )
b = B t k - t k - 1 - 2 &times; A &times; t k - 1 ( t k + 1 - t k ) 2 . . . . . . ( 4 )
c = A &times; t k 2 t k + 1 - t k - B &times; t k t k + 1 - t k + C . . . . . . ( 5 )
A = ( q t k + 1 . x - q t k . x - p t k + 1 . x + p t k . x ) 2 + ( q t k + 1 . y - q t k . y - p t k + 1 . y + p t k . y ) 2 . . . . . . ( 6 )
B = 2 ( ( q t k + 1 . x - q t k . x - p t k + 1 . x + p t k . x ) ( q t k . x - p t k . x ) + ( q t k + 1 . y - q t k . y - p t k + 1 . y + p t k . y ) ( q t k . y - p t k . y ) ) . . . . . . ( 7 )
C = ( q t k . x - p t k . x ) 2 + ( q t k . y - p t k . y ) 2 . . . . . . ( 8 )
其中,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标,分别表示数据点的x坐标和y坐标;
(1-2-4)判断两条轨迹之间的时空距离是否小于预设值ε,若是则两条轨迹为邻域ε内的轨迹,将两条轨迹进行聚类;
(1-2-5)重复步骤(1-2-2)至步骤(1-2-4),直到每个CPU线程中子集的任意两条轨迹完成聚类;
(1-3)对于每个CPU线程,计算该CPU线程中的每条轨迹到该轨迹的MBB之间的距离,其中任意一条轨迹Ta到其MBB之间的距离利用以下公式计算:
dist ( T a , M ) = &Sigma; i = 1 g min Dist ( T a . linei , M ) . . . . . . ( 9 )
其中,M表示轨迹Ta的MBB,g表示轨迹Ta投影到其MBB的线段数目,i表示轨迹Ta投影到其MBB的线段序号,Ta.linei表示轨迹Ta投影到其MBB的第i条线段;
(1-4)生成局部MST:
(1-4-1)设置一个共享队列Q使其对所有CPU线程共享;
(1-4-2)对于每个轨迹,利用公式(1)分别计算该轨迹与其它各轨迹之间的核心距离ε′,若ε′<ε则其他轨迹为该轨迹邻域ε内的轨迹;
(1-4-3)对于每个轨迹,判断该轨迹Ti在邻域ε内的轨迹数目是否大于预设的一个聚类中最少的轨迹数目minNumofTrs,若是则轨迹Ti为核心轨迹,进入步骤(1-4-4);
(1-4-4)在所有两个轨迹之间的核心距离值中,将最小的核心距离值插入队列Q;
(1-4-5)重复步骤(1-4-2)至步骤(1-4-4)直到对每个轨迹判断其是否为核心轨迹;
(2)生成全局MST:
(2-1)创建一个空的MST;
(2-2)归并步骤(1-4)生成的所有局部MST,得到全局MST;
(3)利用粗粒度并行方法或细粒度并行方法从全局MST提取聚类。
2.根据权利要求1所述的可扩展快速的轨迹聚类方法,其特征在于:步骤(2)通过FindNeighbor函数寻找邻域内的轨迹。
3.根据权利要求1所述的可扩展快速的轨迹聚类方法,其特征在于:步骤(3)所述的粗粒度并行方法包括以下步骤:利用Hyper-Q将2个以上CPU线程同时连接一个GPU启动GPU内核,从全局MST提取聚类。
4.根据权利要求1所述的可扩展快速的轨迹聚类方法,其特征在于:步骤(3)所述的细粒度并行方法包括以下步骤:
(3-1)MST的并行计算:
(3-1-1)并行计算每条轨迹之间的时空距离,将结果以矩阵形式存储到GPU;
(3-1-2)利用GPU线程获取所有轨迹的核心距离,利用所有轨迹的核心距离构成列表L,列表L中的每条信息记录为边(tri,trj,w),表示任意两条互相可达的轨迹tri和trj之间的可达距离w,轨迹tri和trj之间的可达距离w为邻域ε内最小的核心距离;
(3-1-3)扫描所有MST中的轨迹,如果一个轨迹的祖先节点是否属于它的孩子节点,则构成环;记录下每个环对应的轨迹,删除MST中的环;
(3-2)MSTs的并行归并:
(3-2-1)每个GPU线程合并一对最小生成树MSTs
(3-2-2)当两个MSTs根节点之间的时空距离小于ε时,通过将一个的根节点指针指向另一个来合并两个MSTs
(3-2-3)重复步骤(3-2-1)到(3-2-2),直到生成全局MST;
(3-3)聚类的并行提取:
(3-3-1)各个GPU线程并行地初始化每个轨迹,使各个轨迹具有单独的轨迹ID集群标识;
(3-3-2)从所有GPU线程中选取一组GPU线程,该组GPU线程中的每一个GPU线程检查列表L中的一个边,对于边(ti,tj,wij)检查任意轨迹ti与tj是否属于邻域时空距离内的同一聚类,若是则将两条轨迹ti与tj置为相同的聚类ID。
CN201510217525.5A 2015-04-30 2015-04-30 一种可扩展快速的轨迹聚类方法 Active CN104794494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510217525.5A CN104794494B (zh) 2015-04-30 2015-04-30 一种可扩展快速的轨迹聚类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510217525.5A CN104794494B (zh) 2015-04-30 2015-04-30 一种可扩展快速的轨迹聚类方法

Publications (2)

Publication Number Publication Date
CN104794494A true CN104794494A (zh) 2015-07-22
CN104794494B CN104794494B (zh) 2018-02-23

Family

ID=53559281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510217525.5A Active CN104794494B (zh) 2015-04-30 2015-04-30 一种可扩展快速的轨迹聚类方法

Country Status (1)

Country Link
CN (1) CN104794494B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788448A (zh) * 2016-12-20 2017-05-31 中国地质大学(武汉) 一种移动轨迹数据压缩方法及装置
CN106897374A (zh) * 2017-01-19 2017-06-27 浙江大学 一种基于轨迹大数据最近邻查询的个性化推荐方法
CN109388757A (zh) * 2018-10-10 2019-02-26 广州力挚网络科技有限公司 一种热门轨迹提取方法与装置
CN110288044A (zh) * 2019-07-01 2019-09-27 上海海事大学 一种基于轨迹划分与优先队列的轨迹简化方法
CN112100652A (zh) * 2020-08-20 2020-12-18 电子科技大学 一种基于马尔科夫链的跨地理分布轨迹聚类方法
CN112307286A (zh) * 2020-11-09 2021-02-02 西南大学 一种基于并行st-agnes算法的车辆轨迹聚类方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086622A1 (en) * 2005-10-14 2007-04-19 Microsoft Corporation Bi-Directional Tracking Using Trajectory Segment Analysis
CN101527000A (zh) * 2009-04-03 2009-09-09 南京航空航天大学 一种基于取样的快速移动对象轨迹聚类方法
CN103246706A (zh) * 2013-04-09 2013-08-14 哈尔滨工程大学 一种道路网络空间中车辆对象移动轨迹聚类的方法
CN103593430A (zh) * 2013-11-11 2014-02-19 胡宝清 一种基于移动对象时空信息轨迹分段聚类的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086622A1 (en) * 2005-10-14 2007-04-19 Microsoft Corporation Bi-Directional Tracking Using Trajectory Segment Analysis
CN101527000A (zh) * 2009-04-03 2009-09-09 南京航空航天大学 一种基于取样的快速移动对象轨迹聚类方法
CN103246706A (zh) * 2013-04-09 2013-08-14 哈尔滨工程大学 一种道路网络空间中车辆对象移动轨迹聚类的方法
CN103593430A (zh) * 2013-11-11 2014-02-19 胡宝清 一种基于移动对象时空信息轨迹分段聚类的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788448A (zh) * 2016-12-20 2017-05-31 中国地质大学(武汉) 一种移动轨迹数据压缩方法及装置
CN106788448B (zh) * 2016-12-20 2020-04-10 中国地质大学(武汉) 一种移动轨迹数据压缩方法及装置
CN106897374A (zh) * 2017-01-19 2017-06-27 浙江大学 一种基于轨迹大数据最近邻查询的个性化推荐方法
CN109388757A (zh) * 2018-10-10 2019-02-26 广州力挚网络科技有限公司 一种热门轨迹提取方法与装置
CN109388757B (zh) * 2018-10-10 2021-11-02 广州力挚网络科技有限公司 一种热门轨迹提取方法与装置
CN110288044A (zh) * 2019-07-01 2019-09-27 上海海事大学 一种基于轨迹划分与优先队列的轨迹简化方法
CN110288044B (zh) * 2019-07-01 2021-06-08 上海海事大学 一种基于轨迹划分与优先队列的轨迹简化方法
CN112100652A (zh) * 2020-08-20 2020-12-18 电子科技大学 一种基于马尔科夫链的跨地理分布轨迹聚类方法
CN112307286A (zh) * 2020-11-09 2021-02-02 西南大学 一种基于并行st-agnes算法的车辆轨迹聚类方法

Also Published As

Publication number Publication date
CN104794494B (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
CN104794494A (zh) 一种可扩展快速的轨迹聚类方法
Tao et al. An object detection system based on YOLO in traffic scene
Naseer et al. Semantics-aware visual localization under challenging perceptual conditions
Siam et al. Fast-SeqSLAM: A fast appearance based place recognition algorithm
Zheng et al. Parameter-efficient person re-identification in the 3d space
CN103246706A (zh) 一种道路网络空间中车辆对象移动轨迹聚类的方法
CN103593430A (zh) 一种基于移动对象时空信息轨迹分段聚类的方法
CN105678231A (zh) 一种基于稀疏编码和神经网络的行人图片检测方法
CN105528794A (zh) 基于混合高斯模型与超像素分割的运动目标检测方法
CN104035954A (zh) 一种基于Hadoop的套牌车识别方法
Li et al. Pedestrian detection with dilated convolution, region proposal network and boosted decision trees
CN103824284A (zh) 一种基于视觉注意力模型的关键帧提取方法和系统
CN105046720B (zh) 基于人体运动捕捉数据字符串表示的行为分割方法
Yin et al. Bridging the gap between semantic segmentation and instance segmentation
CN109785387A (zh) 机器人的回环检测方法、装置及机器人
CN104881655A (zh) 一种基于多特征时空关系融合的人类行为识别方法
Wang et al. Focal loss dense detector for vehicle surveillance
CN104966090A (zh) 实现面向图像理解的视觉单词生成和评价的系统及方法
CN103473813A (zh) 一种三维模型构件的自动提取方法
CN102208033A (zh) 基于数据聚类的鲁棒sift特征匹配方法
CN103853794A (zh) 一种基于部件关联的行人检索方法
CN105678246A (zh) 一种基于基站标号轨迹的运动模式挖掘方法
CN105608105A (zh) 一种基于收听上下文的音乐推荐方法
CN109581444B (zh) 一种gps轨迹分段及语义标注方法
Han et al. Learning of holism-landmark graph embedding for place recognition in long-term autonomy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant