地理围栏生成方法及装置
技术领域
本申请涉及基于位置的计算机技术领域,尤其涉及一种地理围栏生成方法及装置。
背景技术
LBS(Location Based Services):又称定位服务,指通过移动终端和移动网络的配合,确定移动用户的实际地理位置,从而提供用户所需要的与位置相关的服务信息的一种移动通信与导航融合的服务形式。
地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。当手机进入、离开某个特定地理区域,或在该区域内活动时,手机可以接收自动通知和警告。有了地理围栏技术,位置社交网站就可以帮助用户在进入某一地区时自动登记。
例如,“留意”是一款基于地理围栏的移动社交软件;可以通过设置位置闹铃,添加关注区等方式建立地理围栏,并在此基础上组织你的人际关系,比如与朋友互动,分享信息,找打折,签到,等等。
地理围栏的建立,目前基本上还以人工标记、基于中心的圆形区域或者基于建筑物本身范围来完成。
例如,专利申请CN201220177983.2公开了一种建立地理围栏的方法:“虚拟围栏系统服务器包含了数据接收处理程序和电子地图,并在电子地图上根据相应的地理信息数据和逻辑,建立闭合的虚拟边界线,并定义前端跟踪模块与围栏之间及其他局限条件之间的关系,即构建出虚拟围栏”。
综上,地理围栏技术越来越普及,但本领域尚缺少准确的、自动化程度高的地理围栏创建技术。
发明内容
本申请要解决的技术问题是,针对现有技术的不足,提供一种地理围栏生成方法及装置,自动生成地理围栏。
根据本申请一个方面,提供一种地理围栏生成方法,包括:对符合预设条件的对象的位置信息中的经纬度坐标进行聚类分析,得到一个或多个经纬度坐标团簇,其中,每个经纬度坐标团簇包括多个经纬度坐标;和基于所述经纬度坐标团簇的边界点生成地理围栏。
可选的,所述位置信息为某一段时间的位置数据或某一时刻的位置数据。
可选的,对经纬度坐标进行聚类分析步骤包括:步骤1、给定多个初始聚类中心点;步骤2、将每个经纬度坐标归属到拥有最小WCSS的聚类中心对应的团簇;步骤3、更新每个团簇的聚类中心得到新的聚类中心;和步骤4、重复步骤2和3直至每个团簇的WCSS变化小于给定阈值。
可选的,对经纬度坐标进行聚类分析步骤包括:步骤1、把每个样本归为一类,计算每两个类之间的距离,其中,样本即经纬度坐标;步骤2、寻找各个类之间距离最近的两个类,把他们合并为一类;步骤3、重新计算新生成的这个类与原有类之间的相似度;和步骤4、重复步骤2和3直至所有样本点都归为一类,其中,每一次迭代都产生团簇的集合。
可选的,对经纬度坐标进行聚类分析步骤包括:步骤1、预设扫描半径和最小包含点数;步骤2、遍历未被访问的经纬度坐标,统计与其距离小于等于所述扫描半径的附近经纬度坐标的数量,根据该数量与所述最小包含点数之间的关系,将经纬度坐标划分为核心点、边界点和噪声点;步骤3、去除所有噪声点;和步骤4、将所有相互距离小于等于所述扫描半径的经纬度坐标作为一个团簇。
可选的,将经纬度坐标划分为核心点、边界点和噪声点包括:如果附近坐标点的数量大于等于最小包含点数,那么标记此经纬度坐标为核心点;如果附近坐标点的数量小于最小包含点数,并且与其距离小于等于所述扫描半径的范围内包含着至少一个核心点,那么标记此点为边界点;如果附近坐标点的数量小于最小包含点数,并且与其距离小于等于所述扫描半径的范围内不包含任何一个核心点,那么标记此点为噪声点。
根据本申请另一个方面,提供一种地理围栏生成装置,包括:聚类分析模块,用于对符合预设条件的对象的位置信息中的经纬度坐标进行聚类分析,得到一个或多个经纬度坐标团簇,其中,每个经纬度坐标团簇都包括多个经纬度坐标;和边界生成模块,与聚类分析模块连接,用于基于团簇的边界点生成地理围栏。
相对于现有技术,本申请提供的实施例不但能够提高生成地理围栏的自动化程度,而且可提高生成地理围栏的精确度,从而具有较高的商业使用价值或应急场景使用价值。
附图说明
图1是根据本申请一个实施例提供的地理围栏生成方法的方法流程图;
图2是根据本申请另一个实施例提供的K-Means算法过程示意图;
图3是根据本申请另一个实施例提供的凝聚层次聚类算法过程示意图;
图4是根据本申请另一个实施例提供的位置信息采集结果示意图;
图5是图4中显示的数据利用DBSCAN算法得到的团簇结果示意图;
图6是根据本申请另一个实施例提供的DBSCAN算法过程示意图;
图7是图6中显示的数据利用DBSCAN算法得到的团簇结果示意图;
图8是根据本申请另一个实施例提供的基于团簇的边界点生成地理围栏的示意图;和
图9是根据本申请另一个实施例提供的地理围栏生成装置结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图,对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请发明人经研究发现,利用聚类算法能够提高地理围栏生成的自动化程度,并且所得到的地理围栏数据更加准确。另外,该种方式能够随着数据的变化而自适应调整地理围栏的形状。
地理围栏生成方法
基于上述发现,根据本申请一个实施例,提供一种地理围栏的生成方法,如图1所示,该方法包括:
S11、采集符合预设条件的对象的位置信息;
其中,预设条件可以为地理范围,例如,杭州市西湖区龙井村的地理范围;预设条件还可以为身份信息,例如,浙江大学计算机学院的学生身份;预设条件还可以为其他指定的条件,例如,曾经在上海长宁区办理登记结婚的人、在北京海淀区苏州街ABC洗车房进行过洗车服务的车辆等。
其中,符合预设条件的对象既可以是用户携带的导航设备,也可以是具有车载导航设备的车辆或其他具有地理位置信息系统的移动设备;例如,曾经在长沙平和堂百货大楼无线网络系统中登录的移动设备。
其中,位置信息包括:经纬度坐标,例如(117.32123,85.11233)。根据本申请另一个实施例,位置信息还可以包括:和经纬度相关的服务信息。
需要注意的是,本实施例中,位置信息为某一段时间的位置数据,例如,期限为6个月的用户的位置信息,即一个经纬度坐标集合;此时得到的地理围栏的商业价值高。
在本申请其他实施例中,位置信息也可以为瞬时信息,此时得到的地理围栏为一个瞬时围栏,瞬时围栏在应急条件下的使用价值高,例如,当自然灾害发生时,该瞬时围栏可用于判断是否有人员位于灾害发生地。
其中,采集符合预设条件的对象的位置信息包括:通过电信移动运营商的网络(如GSM网、CDMA网)获取移动终端用户的位置信息(经纬度坐标)。根据本申请另一个实施例,采集符合预设条件的对象的位置信息包括:采集用户使用的WIFI或IP所对应的位置信息。
根据本申请另一个实施例,上述位置信息可以来自第三方数据库或者软件,不需要在地理围栏生成方法中进行采集。
S12、对位置信息中的经纬度坐标进行聚类分析,得到一个或多个经纬度坐标团簇,其中,每个经纬度坐标团簇都包括多个经纬度坐标;
根据本申请一个实施例,对经纬度坐标进行聚类分析可以包括:通过K-Means算法对经纬度坐标进行聚类分析,生成一个或多个团簇,每个团簇包含一个或多个经纬度坐标。
K-Means算法采用迭代优化的技术对给定点集合进行聚类,利用K-Means算法生成团簇的过程包括:
给定k个初始聚类中心点并不断对以下两个步骤1.1和1.2进行迭代直至簇内均方和(within-cluster sum of squares,WCSS)不再变化(即变化量为0)或变化小于给定阈值:
步骤1.1、将每个坐标点归属到拥有最小WCSS的聚类中心对应的团簇;
其中,xp为待操作点p的坐标,为第t次迭代、第i个团簇的聚类中心,k为初始化的聚类中心点数量,为点p到第t次迭代第i个团簇的聚类中心的距离平方,为第t次迭代第i个团簇中所有点的集合,其中每个点到第i个团簇的聚类中心的距离平方最小。
步骤1.2、当每个坐标点都归属到相应聚类中心对应的团簇后,更新每个团簇的聚类中心得到新的聚类中心;
其中,为第t次迭代、第i个团簇中所有坐标点的数量,为将第t次迭代、第i个团簇中所有坐标点的坐标求和,j的取值范围为[1,第i个团簇中所有坐标点的数量],为更新后在第t+1次迭代中使用的第i个团簇的聚类中心,即代表第t次迭代、第i个团簇中所有点的重心。
为了进一步说明上述方法,如图2所示,举例说明如下:
步骤2.1、参考图2的(a)部分,对于给定12个数据点(图中显示为实心圆点),初始化3个随机聚类中心201、202和203(图中显示为空心圆点);
步骤2.2、对于每个数据点,计算其相对3个聚类中心的针对每一个团簇的WCSS,并选择最小的那个进行归属,参考图2的(b)部分,每个数据点均能够计算出相应的归属,形成三个团簇211、212和213;
步骤2.3、参考图2的(c)部分,对于已经产生的3个团簇,更新每个团簇的新的聚类中心:
(1)团簇211的中心从中心201改变为中心221,由于第一个团簇中只有1个数据点,所以中心221即该数据点;
(2)团簇212的中心从中心202改变为中心222;
(3)团簇213的中心从中心203改变为223;
步骤2.4、不断迭代第2.2和第2.3步,直至三个团簇的WCSS不再变化或变化很小,参考图2的(d)部分,三个团簇稳定在团簇231、232和233。最后得到的4个经纬度坐标团簇。
根据本申请另一个实施例,对经纬度坐标进行聚类分析可以包括:通过凝聚层次聚类算法对经纬度坐标进行聚类分析,生成一个具有层次的统一结果团簇,该统一结果团簇的每一层均可作为聚类分析的结果(即统一结果团簇的每一层都包含一个或多个团簇)。
利用凝聚层次聚类算法生成团簇的过程包括:
步骤3.1、把每个样本归为一类,计算每两个类之间的距离(即样本与样本之间的相似度);
在计算两个类之间距离的时候,由于每个类可能包含多个数据点,计算距离的方法可选择:(1)single-linkage clustering(取两个类中距离最近的两个点的距离作为两个类的距离);(2)complete linkage clustering(取两个类中距离最远的两个点的距离作为两个类的距离);(3)mean or average linkage clustering(取两个类中所有点之间的距离的平均值作为两个类的距离);或(4)centroid linkage clustering(取两个类中的重心点之间的距离作为两个类的距离)。
步骤3.2、寻找各个类之间距离最近的两个类,把他们合并为一类;例如,类A和类B合并为类AB,类的数量减少1;
步骤3.3、重新计算新生成的这个类与原有类之间的相似度;
步骤3.4、重复步骤3.2和步骤3.3,直到所有样本点都归为一类,迭代结束。
其中,层级聚类每迭代一次所产生的所有类均可作为一个个团簇,每一次迭代即产生团簇的集合。
为了进一步说明上述方法,参考图3,举例说明如下:
步骤4.1、如图3的(A)部分所示,对于给定的6个数据点,点301-点306(称为类a-类f),分别计算两两之间的距离;
步骤4.2、如图3的(B)部分所示,比较并确定其中类b和类c之间的距离以及类d和类e之间的距离相同且最小,则类b、c合并为类bc,类d、e合并为类de;
步骤4.3、计算类a、bc、de、f两两之间的距离;
步骤4.4、比较并确定其中类de和类f之间的距离最近,类de和类f合并为类def;
步骤4.5、计算类a、bc、def两两之间的距离;
步骤4.6、比较并确定其中类bc和类def之间的距离最近,类bc和类def合并为类bcdef;
步骤4.7、计算类a、bcdef两两之间的距离;
步骤4.8、比较并确定类a和类bcdef的距离最近,类a和类bcdef合并为类abcdef,此时所有节点均被归为一类,迭代结束。
其中,层级聚类所产生的每一个层均能被独立认定为团簇的集合,如在上文中步骤4.6中,bc为一个团簇,团簇内包含b点和c点,def为一个团簇,团簇内包含d点、e点和f点。
根据本申请又一个实施例,对经纬度坐标进行聚类分析可以包括:通过DBSCAN算法对经纬度坐标进行聚类分析。DBSCAN能够自动发现多个聚类中心而无须预先设定。DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise):基于密度的聚类算法,它将“簇”定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。DBSCAN算法需要二个参数:扫描半径(eps)和最小包含点数(minPts)。
例如,对南京某大学在校学生的位置信息进行采集,采集结果如图4所示,图中A、B、C三个地区的标记为定位图形的地点都是来自同学们的在一段时间内的位置信息。
通过DBSCAN对上述在校学生的经纬度坐标进行聚类分析,其中,扫描半径(eps)和最小包含点数(minPts)可以预设完成,聚类分析过程如下:
步骤5.1、任选一个标记为未被访问(unvisited)的坐标点,统计与其距离≤eps的附近坐标点的数量:
(1)如果附近坐标点的数量≥minPts,那么标记此点为核心点;
(2)如果附近坐标点的数量<minPts,其距离≤eps的范围内包含着至少一个核心点,那么标记此点为边界点;
(3)如果附近坐标点的数量<minPts,其距离≤eps的范围内不包含任何一个核心点,那么标记此点为噪声点;
不断重复该步骤直至所有坐标点均被访问过;
步骤5.2、去除所有噪声点;
步骤5.3、所有相互距离≤eps的坐标点作为一个团簇。
图4中的采集数据利用上述聚类方法生成的团簇如图5所示。图5中显示了该大学各个校区、社会实践中心以及学生们课余时间聚会地的地理区域范围。
为了进一步说明上述步骤的操作过程,参考图6,举例说明如下:
预设minPts=4,从未扫描的点开始搜索附近以eps为半径的范围内的点的数量,若附近点的数量≥4,则为核心点,如A点;若附近点的数量<4但附近点中包含核心点,则为边界点,如B点;若附近点的数量<4且附近点中不包含核心点,则为噪声点,如C。这样不断迭代直至所有坐标点均被遍历过一次。
去除所有噪声点后,在所有剩余的点中相互距离≤eps的点之间加上一条边,从而得到一个团簇如图7所示。
上述DBSCAN的实现方式包含核心点、边界点和噪声点,其优点在于:(1)无需在聚类前指定需要多少个团簇中心,将自发通过数据的本质属性生成一个或多个聚类中心,如图6中的结果将南京某大学的三个校区聚类成三个团簇,与现实相符合;(2)去噪声数据能力强。
S13、基于团簇的边界点生成地理围栏。
根据本申请一个实施例,如图8所示,基于团簇的边界点生成地理围栏包括:对于每一个团簇,按同一纬度对应的最小经度和最大经度作为边界。或者,对于每一个团簇,按同一经度对应的最小纬度和最大纬度作为边界。
为了提高地理围栏的精度,根据本申请另一个实施例,步骤S13包括:
如果对于每一个纬度(例如,精准到1m*1m),该团簇均存在最小经度和最大经度(例如,精准到1m*1m),则选取每个经度的最小和最大维度作为边界,否则,采用随机高密度填充法进行补足:
(1)选取该团簇的最小经度、最大经度、最小纬度和最大纬度形成长方形区域;
(2)在长方形区域中随机经纬度添加一个点,保证这个点与其距离≤eps的附近坐标点的数量≥minPts,其中eps和minPts和DBSCAN中的参数选择一致,不断重复本步骤,直至对于每一个纬度,该团簇均存在最小经度和最大经度。
本领域技术人员可以理解,本申请的实施例对于经纬度的描述只是举例,经纬度可以互换。例如,对于每一个纬度该团簇均存在最小经度和最大经度,也可以表述为:对于每一个经度该团簇均存在最小纬度和最大纬度。
之后,当需要确定一个经纬度(即坐标点)是否在给定的围栏中时,仅需计算该经纬度的坐标和一定范围内的所有围栏的距离,取距离最小的围栏即为该经纬度所属围栏。
本领域技术人员便能够根据说明书,采用DSP/FPGA/ASIC等常规手段,实现计算机程序对应的产品权利要求的功能模块。
地理围栏生成装置
与上述地理围栏生成方法相对应,根据本申请一个实施例,提供一种地理围栏生成装置。如图9所示,该地理围栏生成装置包括:
位置信息采集模块41,用于采集符合预设条件的对象的位置信息,该位置信息包括经纬度坐标;
聚类分析模块42,与位置信息采集模块41连接,用于对位置信息中的经纬度坐标进行聚类分析,得到一个或多个经纬度坐标团簇,其中,每个经纬度坐标团簇都包括多个经纬度坐标;和
边界生成模块43,与聚类分析模块42连接,用于基于团簇的边界点生成地理围栏。
其中,聚类分析模块42所采用的聚类分析方法,以及边界生成模块43所采用的边界生成方法,在上述方法实施例中已经详细描述,这里不再赘述。
根据本申请另一个实施例,上述位置信息可以来自第三方数据库或者软件,不需要在地理围栏生成装置中包含位置信息采集模块。
本申请上述实施例利用用户的活跃位置信息进行聚类分析,在刻画某个地理位置(如:某大学)的时候,能自动识别出并生成活跃区域的围栏信息(如:大学中的图书馆、食堂、宿舍、教学区),活跃区域的围栏信息对于之后的进入推介、广告营销等场景非常重要。
应该注意到并理解,在不脱离后附的权利要求所要求的本申请的精神和范围的情况下,能够对上述详细描述的本申请做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。