发明内容
本发明针对现有技术只能基于特定信号或物理地址进行设备识别,无法实现进一步信息的集成和处理等缺陷,提出一种基于电子设备行为模式的辅助定位的实现方法,当与用户绑定的关键设备由于没有信号、未启动等原因无法定位的情况下通过数据分析,由辅助设备的位置进行定位辅助。
本发明是通过以下技术方案实现的:
本发明包括以下步骤:
1)通过扫描设备采集用户的关键设备并针对关键设备对用户编号;
2)采集用户使用过的所有辅助设备的Wi-Fi与蓝牙MAC地址以及发现的时间和离开的时间。为每个MAC地址在信息库中建立信息库,并基于信息库生成权重图。
3)通过关联度算法计算权重图中的各个权重,即各个设备的关联度,得到经常同时出现的设备,生成设备间的无向权重网络,该关联度算法包括:Wi-Fi设备关联度算法、蓝牙设备关联度算法、Wi-Fi蓝牙结合关联度算法。
4)采用数据分析方法对用户的某台辅助设备进行鉴别,即分析该辅助设备的所有关联设备的信息,经过分析定位得到对应的关键设备的当前预测位置。
所述的关键设备采用但不限于:带有经实名认证手机卡的实体手机、登录有支付宝等虚拟账号的无线设备等。
所述的扫描设备的布置方式为:在广阔的公共场所内部,布置多个Wi-Fi Mac扫描设备,将Wi-Fi设备的扫描范围覆盖全场;在公共场所的出入口处,布置蓝牙Mac扫描设备,以扫描进出此场所的蓝牙设备。
所述的信息库,具体包括:
1)Wi-Fi索引表,记录了出现过的所有Wi-Fi设备的信息,包括但不限于:属性ID、物理地址MAC、设备位置LOCATION与时间TIME,其中:属性ID作为检索设备表的依据,通过“W”+ID可以查询Wi-Fi设备对应的设备表;物理地址MAC则记录了Wi-Fi设备的MAC地址;设备位置LOCATION与时间TIME记录了该设备最近出现的基站地点与时间,具体如下所示:
Wi-Fi索引表:
2)蓝牙索引表,记录有所有出现过的蓝牙设备信息。拥有属性ID、BLUE、LOCATION与TIME,ID作为检索设备表的依据,通过“B”+ID可以查询到蓝牙设备对应的设备表。BLUE则记录了蓝牙设备的MAC地址。而LOCATION与TIME同样记录了该设备最近出现的基站地点与时间,具体如下所示:
蓝牙索引表
3)设备表:对于Wi-Fi设备,其拥有Wi-Fi索引表,表名为“W”+ID号;对于蓝牙设备,其拥有蓝牙设备表,表名为“B”+ID号;对于蓝牙与Wi-Fi结合算法,每个蓝牙设备拥有一个混合设备表,表名为“C”+蓝牙ID号。每个设备表包括但不限于:属性ID、物理地址MAC(蓝牙设备表中为BLUE)、同时出现次数CLOSE、可信度RCLOSE,其中:属性ID用以为区分各个设备,便于检索;物理地址MAC(蓝牙设备表中为BLUE)记录了与设备表拥有者同时出现过的设备MAC地址;CLOSE记录了该设备与设备表拥有者同时出现的有效次数;RCLOSE是对CLOSE的一个调整,记录了该设备与设备表拥有者同时出现的条件概率。
3.1)Wi-Fi索引表,其中:记录的是与索引表中ID对应的Wi-Fi设备同时出现的Wi-Fi设备信息,具体如下所示:
Wi-Fi索引表
3.2)蓝牙设备表,其中:记录的是与索引表中ID对应的蓝牙设备同时出现的蓝牙设备信息,具体如下所示:
蓝牙设备表
3.3)混合设备表,其中:记录的是与索引表中ID对应的蓝牙设备同时出现的Wi-Fi设备信息,具体如下所示:
混合设备表
所述的权重图是指:单单从设备表无法直观地体现设备与设备之间的关联度,因此建立一个节点为不同设备,边为设备之间关联度的权重图至关重要。这会大大提升关联的可读性,为后续的工作提供基础,同时在一定程度上减小系统的开销。
所述的权重图中的蓝牙设备与蓝牙设备之间、Wi-Fi设备与Wi-Fi设备之间、Wi-Fi设备与蓝牙设备之间都有权值,该权重图的总体设计为一层Wi-Fi网络、一层蓝牙网络以及一层Wi-Fi蓝牙连接网络,各自独立分开计算后加以整合;分别对应信息库中的Wi-Fi索引表,蓝牙设备表,混合设备表。
所述的权重,具体通过以下方式得到:
3.1)对于Wi-Fi设备关联度算法或蓝牙设备关联度算法,具体步骤如下:
3.1.1)对于在同一时间范围内出现在同一扫描基站附近的Wi-Fi设备,首先在Wi-Fi索引表或蓝牙索引表中检索其是否存在,若不存在,将其添入该表,记录其出现的时间和地点。
3.1.2)并依据其ID号,检索到其对应的Wi-Fi索引表或蓝牙索引表,接下来将与其同一时间范围出现的设备添加到对应的Wi-Fi设备表或蓝牙设备表,依据OCLOSE算法累加可信度CLOSE;
3.1.3)当某设备已经存在于对应的Wi-Fi设备表或蓝牙设备表,只需按照OCLOSE算法更新可信度CLOSE,并在Wi-Fi索引表或蓝牙索引表中更新其时间和地点。
所述的可信度CLOSE反映了设备间同时出现的有效次数,而OCLOSE算法则是按照基站附近设备流量计算CLOSE有效累加值的算法,即:其中:x表示当前设备的流量,a表示设备流量阈值,而b是一个可调参数,取值为正,用来调节流量对OCLOSE的影响。OCLOSE的取值范围为0~2,当设备流量大于阈值时,CLOSE小于1;而当其小于阈值时,CLOSE大于1。而b取值越大,OCLOSE随流量变动变化越小,表示流量对CLOSE影响越小。
3.2)对于Wi-Fi蓝牙结合关联度算法,具体步骤如下:
3.2.1)通过比较每个时间点基站扫描范围内Wi-Fi设备的变化,得到在这些时间点附近的一小段时间区间内经过扫描区域边界的Wi-Fi设备。
3.2.2)将Wi-Fi扫描区域边界所部属的蓝牙扫描基站扫描得到的蓝牙设备,通过“C”拼接上在蓝牙索引表中对应的ID号,得到该蓝牙设备的混合设备表。
3.2.3)根据该蓝牙设备出现时间,检索对应时间段内在Wi-Fi扫描区域内变化的Wi-Fi设备,将这些设备信息填入对应的混合设备表,并按照OCLOSE算法累加可信度CLOSE。
所述的无向权重网络,通过以下方式得到:
1)遍历三种设备表,依据条件概率公式计算各个设备与设备拥有者同时出现的条件概率RCLOSE:其中:R(i)指某设备表第i个设备的R可信度CLOSE,C(i)指第i个设备的可信度CLOSE。而U(TableName)则指该设备表数据更新的次数;
2)通过步骤3.1和步骤3.2首先生成了设备间的有向网络。基于此,按照可信度更新公式将其转化为无向权重图:即令A表中B的R可信度CLOSE与B表中A的R可信度CLOSE相等,具体为:其中:R为调整后A在B设备表与B在A设备表的R可信度CLOSE,则指B设备在A设备表中的R可信度CLOSE,U(ATableName)则指A设备表更新的次数。
3)将调整后的可信度填入对应位置,称其为关联度,反映设备间的关系亲密程度,取值范围为0~1。
所述的鉴别,具体包括以下步骤:
4.1)通过设备间的无向权重图,获得要查找设备的关联设备表;通过马尔可夫随机场模型对关联设备表进行优化。
由于有些设备虽然和要搜索的设备连接,但是有非常低的关联度;而基于要搜索的节点做宽度优先搜索也很难实现,一方面将会搜索到海量的数据,另一方面也能难计算间接连接的节点的关联度。此处优选使用马尔可夫随机场模型对权重网络进行降噪处理:将粗选入关联设备表的节点标示为1,其余节点标示为-1,然后通过调整这些节点的标示,来优化关联设备表,即首先将和节点A直接相连的节点标注为1(包括A,表示选入关联设备表),其余节点标注为-1(表示不选入关联设备表),
所述的马尔可夫随机场模型满足:
1)经处理后的马尔科夫随机场是有噪声的,此时节点的随机变量值并不能完全准确,需要进行降噪处理。把这样处理后的随机场称为噪声图,图中点记作y;降噪处理后的称为原图,图中点记作x;
2)原权重图中点的随机变量,仅与和其关联度最大的k个设备相关;
3)原权重图中点的随机变量,与噪声图中对应点的随机变量值有关;
4)原权重图中点的随机变量,与其随机变量值本身有关。
做了如上假设之后,该权重图就具备了条件独立性质,这样就得到了一个人为定义的最小团,具备局部马尔可夫性质。yi表示噪声图中对应的节点,xi表示原图中的节点,xa、xb、xc、xd、xe分别表示原图中与x相邻的点(以k=5为例),xi和yi、xa、xb、xc、xd、xe之间的概率依赖关系分别为α、βa、βb、βc、βd、βe,与自己的依赖关系为η,如图3所示。
所述的优化是指:调整节点的标注,使得网络的能量函数达到最低,其中能量函数为E(X,Y)=ηΣixi-Σ{i,j}β(i,j)xixi-αΣixiyi,其中:x自身的取值会有所影响,越多的x被选入待选节点能量就会越低,用与使整体的x取值偏向某个值;x和周围节点的一致性也会有所影响,不一致就会引起代价的产生从而提高能量;原图和噪声图的一致性也会降低能量。
所述的调整节点,通过使用模拟退火算法实现,具体为:
1)初始化参数,如初始温度T(充分大),初始解状态S(是算法迭代的起点)
2)对k=1,…做第3步至第6步,其中k为关联度最大的k个设备;
3)产生新解S′
4)计算增量ΔT=C(S′)-C(S),其中:C(S)为评价函数
5)若ΔT<0则接受S′作为新的当前解,否则以概率exp(-ΔT/T)接受S′作为新的当前解
6)当满足终止条件则输出当前解作为最优解,结束程序
7)T逐渐减少,且T慢慢趋于0,然后转第2步
使用了模拟退火算法,由于对于非优化的解具有一个接受概率。因此在相当概率上能走出局部最优;同时进行多次迭代加上了随机过程,使得多次迭代能够成为一个逼近全局最优的过程。
4.2)从优化后的关联设备表以及信息库得到关联设备的信息,具体包括:根据优化后的关联设备表中的各设备做一个关联度的排序,每个设备对应一个用于排序的参数sort;通过对sort排序的方式,排序各设备;然后通过关联设备提供建议搜索地址。
所述的关联设备包括:在权重图中与所搜索设备直接相连的设备。它们比较容易排序,sort值赋值为相应的关联度即可;在权重图中与所搜索设备没有直接相连的设备。由于使用过降噪算法,相关设备表中可能会有与所搜索设备间接相连的设备。对于这些设备,先用Dijkstra算法求出在权重图中该设备到所搜索设备的最大关联度路线(使用乘法连接两条边的权值),sort赋值为最大关联度路线的权值。
所述的建议搜索地址是指:考虑到系统需要有较好的抗干扰性,筛选出关联设备中最后出现时间距目前时间点5min以内的Wi-Fi设备,60min以内的蓝牙设备;接着将各地点目前时间点所包含的设备sort值进行累加,求出各地点的对于所搜索设备的亲和度,将地点按亲和度排列,最后输出前k个地点(k为可调参数)。
技术效果
与现有技术相比,本发明通过设置扫描点,主动扫描用户携带的设备,大大提高了主动性和定位的精确度,完善了现有技术只通过用户的一台手机设备的MAC来鉴别用户的身份,鉴别用户的数量和速度增加,并且提高了身份识别的准确度。
具体实施方式
如图1所示,本实施例的搭建是基于以下条件:
(1)在不同的地点都设置这样的数据采集环境是这样一种空间:如图1所示,空间里充满着Wi-Fi信号,人可以在其中:选择不同的Wi-Fi名称连接上网,空间有边界,即空间之外没有Wi-Fi信号,人们走出空间之后将失去与Wi-Fi的连接;该空间存在着有限的门,即人们只能通过这有限的出入口进入或者离开该空间;门处布置扫描设备用于扫描蓝牙MAC,离开该空间的人经过门时会携带蓝牙设备如手机、手环或蓝牙耳机等。这假设符合正常生活情境。
(2)对于图中的黄色虚线部分也就是门处蓝牙扫描做如下的假设:蓝牙扫描范围不大且此范围内没用一直停留的人。基于这点假设就可以排除在此区域内存在人长时间办公、学习或者娱乐等活动的可能性,使得空间内携带有蓝牙设备的人只要没有进入或者离开的意图,就不会被门处的扫描设备扫到。
(3)进入搜索中的人都有电子指纹,即至少有一个Wi-Fi MAC和蓝牙MAC地址,并且这些设备都处于开启状态,这种假设也是合情合理的,否则只有一种电子指纹则情况过于简单,每个MAC都是一个人则应用价值不大;若是一个人没有电子指纹,那么在本项目中也就看成是一个不存在的人,没有搜集定位的价值。只有一个人有多种电子指纹,才可以在庞大的数据之中发现它们,判断它们属于一个还是几个人,才可以通过一种电子指纹找到这个人的其他电子指纹。
(4)平时有较大相关度的设备今后也会经常一起行动。基于这点假设可以将一个人平时经常携带智能设备的特点展现出来,既反映了生活习惯又不至于经常更换设备;还可以挖掘出和此人关系较为亲密的人的电子指纹,即他们经常一起结伴出行,降低了人际关系只在某一天亲密而实际上却很普通的可能。
(5)区域内的人不会频繁的进入或者离开门口,并且不会频繁地连接或者断开与Wi-Fi的连接。
(6)受到监控的总区域非常广泛,即使某人隐藏了自己某台移动设备的电子指纹,其人以及他的其他设备的仍在的监控范围的总区域之内。
(7)一个人的社会关系不会在短时间内有较大的改变。同时,人们的社会关系网络能在一定程度上映射到电子设备关系网络中。
如图7~图10所示,本实施例包括以下步骤:
1)实例环境选择。
按照算法的设计,需要寻找一个边界明确,内部充斥有某AP发射的Wi-Fi信号,且具有有限个出入口的空间。此外,该区域内部必须有一定量的动态人流,以产生足够多的有效测试数据。因此最终选取了两间自习教室(ED100,ED200)以及两个图书馆(N-Library,B-Library)作为了测试场所。在测试场所,部署了Wi-Fi扫描基站以获取内部接入该AP的设备。而在出入口处,放置了蓝牙扫描基站来收集经过该地点的蓝牙设备。
2)数据采集和信息库的建立。
在第一次试验性的测试中,选取了人流较少的时段进行基站扫描。获得数据并且运行数据预处理与数据处理模块,并查看信息库中数据,部分数据如下:
Wi-Fi索引表
蓝牙索引表:
Wi-Fi设备表:
蓝牙设备表:
混合表:
3)设备亲密度权重图的生成。
在数据采集时,携带了多台测试设备往返于基站之间,其中:作为样例的Wi-Fi设备对应ID为94,而作为样例的蓝牙设备ID对应为1。在Wi-Fi索引表中选取ID为94的Wi-Fi设备作为测试对象,将其设备表按照R可信度CLOSE降序输出,部分数据如下所示:
同样,查看ID为1的蓝牙设备对应的混合表C1,数据如下所示:
此外,查看“F0:B4:29:55:79:5F”对应设备表中MAC为“F0:B4:29:55:79:60”的设备的R可信度CLOSE,如下所示:
可以发现其值同样为0.784761,满足无向图的对称性要求。
4)使用降噪算法生成关联设备表。
在降噪处理中有几个重要的参数需要调整。
一组是马尔科夫网络中的参数:E(X,Y)=ηΣixi-Σ{i,j}β(i,j)xixi-αΣixiyi
由于β为节点之间的关联度,已在权重网络中有所表示,因此需要调节的参数包括以下三个:α表示节点标记对某一个值的亲和度(本项目中具体为-1),η表示改动后节点标记和原标记的关联度,connect表示节点和几个与其直接相连的设备有直接的相关关系。
而由于蓝牙和Wi-Fi节点有一定的性质区别,因此对于α以及η取两组不同的默认参数,分别命名为(blueα,blueη)以及(wifiα,wifiη)。
另一组是模拟退火算法中的参数,温度T的初始值以及其下降函数,总体迭代次数kmax。这两个参数的设定较为简单,因为仅仅影响迭代寻找全局最优的效率,并且只要在接近迭代结束时T接近于0就行。经过实验,将kmax定为5,T的下降函数定为如下,其中:k为此次迭代的次数:
因此在这里主要需要思考的问题是如何调整(blueα,blueη),(wifiα,wifiη),以及connect。
首先对wifiα,wifiη,connect进行调整。对于wifiα,wifiη,以0.05为间隔,从0遍历到1;对于connect,以2为间隔,从4遍历到10。每个参数组合都输出(其中:E(X)表示降噪后图的能量,E(Y)表示降噪前能量),ΔNum(表示改变的节点个数),Num(表示调整标示后,置为1的节点个数)。并将这些结果输出。
以起始标记与自己电脑的MAC地址60:03:08:a1:32:c0直接相连的节点为例。可以看到输出的结果大概为如下所示:
由于数据量过大,在这里只展示一部分。
通过这几个指标的综合考量,剔除一些参数选择后,使用Matlab作出wifiα-wifiη-Δe(X,Y)图像。如图4所示。
可以看到随着connect值的增大,(α,η)在右侧形成了一个较为平缓的阶梯,而在最右侧突越。这是因为在最右的参数设定下,原能量相当接近与0,导致能量增长比重有一个突越,同时查看那里的ΔNum,Num,可以发现所有节点都标注为了-1,也就是说没有节点被选入与设备60:03:08:a1:32:c0关联的设备集合,这显然是不合理的。
因此,对于connect的选择,选其为10,一方面对于这个参数值,右侧的平缓阶梯是一个很好的参数选择区域;其次若connect再大,就会增加算法的复杂度,增加服务器的负担,10是一个兼顾的参数选择。对于(wifiα,wifiη),选择默认参数分别为(0.50,0.30)。这个点位于右侧的阶梯,在能量降低比率以及标记1节点的分布上均有良好的特性。
对于蓝牙的(blueα,blueη)调整,采取和(wifiα,wifiη)相同的方法,这里就不再赘述。最后选择默认参数分别为(blueα,blueη)=(0.10,0.60)
5)对设备的定位与追踪。
提供了两种不同的定位追踪方式。一种是获得某设备最近出现的时间和地点,一种是使用了降噪算法之后,输出此设备的关联设备表,并在最后给若干个建议寻找地址。
(1)先测试第一种方式。输入以下命令后,输出如下结果所示:
youga@ubuntu:~/Desktop/fingerprint/python search.py-rw60:03:08:a1:32:c0
Recent:New Library
Recent time:12:23
(2)接着测试第二种方式。先查看一下输出结果,输入以下命令:
python search.py-w 60:03:08:a1:32:c0
可以看到,在输出文件中,展示了经过排列之后的相关设备表。
同时显示了这些设备最近的出现时间和地点(W表示这是Wi-Fi的MAC地址,B表示这是蓝牙地址)。由于可以看到,60:03:08:A1:32:C0最近出现时间为12:23,尽管其最后出现地点为Classroom ED200,但在最上方给出了建议地点是N-Library。因为执行命令的时间是16:07,因此只对最后出现时间为16:01-16:06的Wi-Fi设备、15:07-16:06的蓝牙设备进行地点的统计,并将不同地点所包含的设备的sort值分别求和,得分最高的地点被推荐。可以从图中看出,推荐地点为N-Library。
接着对其进行具体的测试。首先让测试人员随身携带若干个Wi-Fi、蓝牙设备,在的监控点中以其正常的行为模式行动若干天,搜集到足够的数据。测试员1持有的设备包括,Wi-Fi设备:9C:B6:D0:13:5E:D9,00:CD:FE:5A:0A:45;蓝牙设备:00:CD:FE:5A:0A:46。而测试员2携带Wi-Fi设备:D0:33:11:4E:FB:E2,并与测试员1在某几个测试点一同行动,以模拟与测试员1关系密切的好友。
之后,令测试员1不携带设备:9C:B6:D0:13:5E:D9,模拟他通过某种手段(丢弃,销毁等)隐藏了这个设备,但仍然携带其他设备的情况。之后使其前往某个监控点,而使用命令python search.py-w命令查找设备9C:B6:D0:13:5E:D9。
通过测试了40次,即让测试员1前往四个监控地点各10次。系统给出的建议地址与测试员1实际地址一致的情况有33次,最后准确率达到了82.5%,误报率为17.5%。
以下是具体的各地点实例正确率如图5所示。
最后,令测试员1不携带任何设备,而是和测试员2以正常的行为模式去往的某个监控点,模拟他隐藏了所有设备,但是社会关系不变的情况。使两位测试员前往某个监控点,而使用命令python search.py-w命令查找设备9C:B6:D0:13:5E:D9。
同样经过40次测试,即让测试人员前往四个监控地点各10次。python search.py-w命令给出的建议地址与测试人员实际地址一致的情况有24次,最后准确率达到了60%,误报率为40%。具体的各地点测试正确率如图6所示。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。