发明内容
有鉴于此,本发明提供一种射频标签的扫描方法和扫描装置。达到了根据重复标签的数量,确定连续扫描的策略的技术效果,根据实际情况在重复识别和通信开销中进行取舍,提高了识别效率。
在第一方面,本发明实施例提供了一种射频标签的扫描识别方法,包括:
计算重复标签系数C(A,B)的值,其中,A代表本次扫描待识别的射频标签的集合,B代表前一次扫描已经被识别的射频标签的集合,|A∩B|代表集合A与集合B交集中的射频标签的个数,|B|代表集合B中的射频标签的个数;
当所述C(A,B)的值大于最优策略阈值时,指示标签阅读器对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别;
当所述C(A,B)的值小于等于所述最优策略阈值时,指示标签阅读器对A集合内的射频标签进行扫描识别。
在第一种可能的实现方式中,所述计算重复标签系数C(A,B)的值具体包括:
计算集合A与集合B的杰卡德相似系数J(A,B),其中,其中,|A∪B|代表集合A与集合B并集中的射频标签的个数;
根据公式: 计算C(A,B)的值,其中,|A|代表集合A中的射频标签的个数;
其中,所述J(A,B)通过最小哈希算法计算得到。
进一步地,所述J(A,B)的计算方法具体包括:
按照预定的哈希函数,对集合A和集合B中的各射频标签的标签编号进行哈希运算,得到相应的哈希值;
从集合A对应的哈希值中选择最小的k个哈希值,构成集合hk(A),从集合B对应的哈希值中选择最小的k个哈希值,构成集合hk(B),从集合hk(A)∪hk(B)对应的哈希值中选择最小的k个哈希值,构成集合hk(A∪B),其中,k为大于0的整数;
根据公式: 计算所述J(A,B),其中,|hk(A∪B)∩hk(A)∩hk(B)|代表集合hk(A∪B)、集合hk(A)和集合hk(B)的交集中的哈希值的个数。
在第二种可能的实现方式中,所述对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别具体包括:
根据集合B中各射频标签的标签编号构造布隆过滤器,生成布隆比特串;
指示标签阅读器向集合A中的各射频标签广播所述布隆比特串,其中,当集合A中的射频标签判断自身的标签编号属于集合B时,不响应扫描识别;
指示标签阅读器对A集合内的各射频标签进行扫描识别。
进一步地,所述最优策略阈值RTS通过公式:RTS=λe-ρtid计算得到,其中,ρ为时间常数,tid为识别一个射频标签的时间,λ通过公式:计算得到,pfp为设定的布隆过滤器的假阳性概率值,tb为标签阅读器发送一个比特信息的时间。
在第二方面,本发明实施例提供了一种射频标签的扫描识别装置,包括:
重复标签系数计算单元,用于计算重复标签系数C(A,B)的值,其中,A代表本次扫描待识别的射频标签的集合,B代表前一次扫描已经被识别的射频标签的集合,|A∩B|代表集合A与集合B交集中的射频标签的个数,|B|代表集合B中的射频标签的个数;
第一扫描识别单元,用于当所述C(A,B)的值大于最优策略阈值时,指示标签阅读器对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别;
第二扫描识别单元,用于当所述C(A,B)的值小于等于所述最优策略阈值时,指示标签阅读器对A集合内的射频标签进行扫描识别。
在第一种可能的实现方式中,所述重复标签系数计算单元包括:
相似系数计算子单元,用于计算集合A与集合B的杰卡德相似系数J(A,B),其中,其中,|A∪B|代表集合A与集合B并集中的射频标签的个数;
重复系数计算子单元,用于根据公式: 计算C(A,B)的值,其中,|A|代表集合A中的射频标签的个数;
其中,所述J(A,B)通过最小哈希算法计算得到。
进一步地,所述相似系数计算子单元具体用于:
按照预定的哈希函数,对集合A和集合B中的各射频标签的标签编号进行哈希运算,得到相应的哈希值;
从集合A对应的哈希值中选择最小的k个哈希值,构成集合hk(A),从集合B对应的哈希值中选择最小的k个哈希值,构成集合hk(B),从集合hk(A)∪hk(B)对应的哈希值中选择最小的k个哈希值,构成集合hk(A∪B),其中,k为大于0的整数;
根据公式: 计算所述J(A,B),其中,|hk(A∪B)∩hk(A)∩hk(B)|代表集合hk(A∪B)、集合hk(A)和集合hk(B)的交集中的哈希值的个数。
在第二种可能的实现方式中,所述第二扫描识别单元具体用于:
根据集合B中各射频标签的标签编号构造布隆过滤器,生成布隆比特串;
指示标签阅读器向集合A中的各射频标签广播所述布隆比特串,其中,当集合A中的射频标签判断自身的标签编号属于集合B时,不响应扫描识别;
指示标签阅读器对A集合内的各射频标签进行扫描识别。
进一步地,所述最优策略阈值RTS通过公式:RTS=λe-ρtid计算得到,其中,ρ为时间常数,tid为识别一个射频标签的时间,λ通过公式:计算得到,pfp为设定的布隆过滤器的假阳性概率值,tb为标签阅读器发送一个比特信息的时间。
本发明实施例根据重复标签系数,来确定连续扫描的策略,当重复标签系数大于最优策略阈值时,选择抑制算法对待扫描的射频标签集合中的重复标签进行抑制;当重复标签系数小于等于最优策略阈值时,允许在待扫描的射频标签集合中出现重复识别,达到了自适应的根据重复标签的数量,确定连续扫描策略的技术效果,根据实际情况在重复识别和通信开销中进行取舍,使得标签识别的效率最大化。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
发明人通过研究发现,在连续扫描中,何时允许重复识别,何时不允许重复识别,以达到最优的识别效率是一个关键性的问题,其中,连续扫描的最优策略与重复标签的数目有紧密的关系。举例而言,在图1中示出了一种连续扫描过程中重复标签较少时的示意图。如图1所示,由于无线射频系统中包括的射频标签较多,一次识别扫描无法覆盖所有的射频标签,需要将阅读器进行移动以实现全部射频标签的识别(图中箭头代表阅读器的移动方向),单位圆B内的各点代表前一次扫描已经被识别的射频标签,单位圆A内的各点代表本次扫描待识别的射频标签的集合,其中单位圆A与单位圆B中的射频标签的交集构成重复标签。在图1中,重复标签的数目较少,如果采用抑制算法使得重复标签在第二次识别过程中不进行回复,带来额外的通信开销会远远大于允许重复开销而在后台服务器进行去重复处理带来的运算开销。相应的,在图2中示出了一种连续扫描过程中重复标签较多时的示意图。在图2中,如果不采用抑制算法,后台服务器进行去重复处理带来的运算开销会远远大于采用抑制算法带来的额外通信开销。
第一实施例
图3是本发明第一实施例的一种射频标签的扫描方法的流程图,本实施例的方法可以由射频标签的扫描装置来执行,该装置可通过硬件和/或软件的方式实现,并集成于服务器中,包括如下步骤:
步骤310、计算重复标签系数C(A,B)的值,其中,A代表本次扫描待识别的射频标签的集合,B代表前一次扫描已经被识别的射频标签的集合,|A∩B|代表集合A与集合B交集中的射频标签的个数,|B|代表集合B中的射频标签的个数。
发明人通过研究发明,连续扫描的最优策略的选择与重复标签系数C(A,B)直接相关。因此,在本实施例中,根据计算得到的C(A,B)来确定相应的连续扫描策略。
其中,所述连续扫描策略包括:采用抑制算法使得重复标签在第二次识别中不响应和不采用抑制算法防止重复标签被重复识别。
其中,C(A,B)代表重复标签占前次扫描已识别射频标签的比例。C(A,B)的值越大,越倾向于在连续扫描策略中使用抑制算法;C(A,B)的值越小,越倾向于在连续扫描策略中不使用抑制算法。
在本实施例中,计算C(A,B)时需要分别得到|A∩B|和|B|:其中,因为B代表前一次扫描已经被识别的射频标签的集合,所以|B|已经被服务器记录并存储;|A∩B|的值可以通过服务器中预存的各射频标签的位置、当前标签阅读器所在的位置以及标签阅读器的作用范围,进行估计;也可以通过集合的运算公式,将C(A,B)通过杰卡德相似系数(Jaccardsimilarity coefficient)J(A,B)来表示,其中,J(A,B)表示两个集合A和B的交集元素在A,B的并集中所占的比例。再通过比较经典、成熟的算法,例如:最小哈希值(MinHash)算法,计算得到J(A,B)的值。
当然,本领域技术人员可以理解,还可以通过其他的方式计算或者估算J(A,B)的值,对此并不限定。
步骤320、判断所述C(A,B)是否大于最优策略阈值:若是,执行步骤330;否则,执行步骤340。
在本实施例中,服务器通过将计算得到的C(A,B)与最优策略阈值进行比较,当C(A,B)大于最优策略阈值时,对集合A中的重复标签进行抑制;当C(A,B)小于等于最优策略阈值时,不对集合A中的重复标签进行抑制。
在本实施例中,最优策略阈值可以为预设的固定值,例如:0.5,0.6或者0.7等,也可以根据实际情况计算得到,也可以通过理论值估算等,对此并不限定。
步骤330、指示标签阅读器对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别。
在本实施例中,服务器指示标签阅读器对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别。
其中,服务器根据预定的抑制算法,例如:基于布隆过滤器(Bloom Filter)的抑制算法等,指示标签阅读器对A∩B集合内的射频标签(重复标签)进行抑制,以实现标签阅读器对A-B集合内的射频标签进行扫描识别。
步骤340、指示标签阅读器对A集合内的射频标签进行扫描识别。
在本实施例中,服务器指示标签阅读器对A集合内的射频标签进行扫描识别,不进行任何重复标签的抑制操作。通过服务器自身完成对射频标签的去重复处理。
本发明实施例根据重复标签系数,来确定连续扫描的策略,当重复标签系数大于最优策略阈值时,选择抑制算法对待扫描的射频标签集合中的重复标签进行抑制;当重复标签系数小于等于最优策略阈值时,允许在待扫描的射频标签集合中出现重复识别,达到了自适应的根据重复标签的数量,确定连续扫描策略的技术效果,根据实际情况在重复识别和通信开销中进行取舍,使得标签识别的效率最大化。
在上述技术方案的基础上,所述计算重复标签系数C(A,B)的值具体包括:
计算集合A与集合B的杰卡德相似系数J(A,B),其中,其中,|A∪B|代表集合A与集合B并集中的射频标签的个数;
根据公式: 计算C(A,B)的值,其中,|A|代表集合A中的射频标签的个数;其中,所述J(A,B)通过最小哈希算法计算得到。
在本优选实施方式中,通过集合变化的方式将C(A,B)表示为:
其中,|A|可以根据|B|的数目以及射频标签的总数量进行估计,J(A,B)可以通过最小哈希算法计算得到。
最小哈希算法的种类很多,最简单的最小哈希算法是使用k个不同的哈希函数,其中k是固定的整数参数,使用这k个函数所对应的k个最小哈希值来描述每个集合S。根据每个集合的k个最小哈希值来计算J(A,B);但是,计算多个哈希函数的代价是相当昂贵的,因此提出了一种使用单一哈希函数的最小哈希算法。对于每个集合,使用这个单一的哈希函数选出其中的k最小值来描述每个集合S,进而计算J(A,B)。
在上述各技术方案的基础上,所述J(A,B)的计算方法具体包括:
按照预定的哈希函数,对集合A和集合B中的各射频标签的标签编号进行哈希运算,得到相应的哈希值;
从集合A对应的哈希值中选择最小的k个哈希值,构成集合hk(A),从集合B对应的哈希值中选择最小的k个哈希值,构成集合hk(B),从集合hk(A)∪hk(B)对应的哈希值中选择最小的k个哈希值,构成集合hk(A∪B),其中,k为大于0的整数;
根据公式: 计算所述J(A,B),其中,|hk(A∪B)∩hk(A)∩hk(B)|代表集合hk(A∪B)、集合hk(A)和集合hk(B)的交集中的哈希值的个数。
在本优选实施方式中,集合B代表前一次扫描已经被识别的射频标签的集合,因此很容易hk(B)获取,本实施方式的关键在于求取hk(A)。
在一个例子中,本优选实施方式使用一个基于二分查找法的通信协议,快速从集合A中获取最小的k个哈希值。
算法描述如下:服务器指示阅读器不断广播一个比特,此比特可以为0也可以为1。广播后等待射频标签的回复。其中,每个射频标签在收到此比特之后,将此比特储存起来,然后用储存的比特串和它自身的哈希值进行前缀匹配。如果匹配成功,则回复一个1比特给标签阅读器,否则不回复。标签阅读器在广播每个比特的时候,总是先广播0。如果有射频标签回复,则进入下一个比特位,继续广播0。否则,还停留在此比特位,广播1。
阅读器先广播0,每个标签都存储0,用0进行前缀匹配。如果有标签匹配成功,阅读器会收到回复。则进入第二个比特位,广播0。此时每个标签继续存储此0,得到00。再用00进行前缀匹配,决定是否回复。假设此时没有标签匹配成功,那说明没有标签哈希值以00开头,则阅读器在第二比特位广播1(期望上,肯定有标签以01开头)。此过程一直进行下去,则最后广播的比特串就是最小的哈希值。
如图4所示的为一种获取一个最小哈希值的树形查找流程图。如图4所示,集合A中共有4个射频标签,上述射频标签通过哈希计算后,每个标签的哈希值分别为:001、100、101和110,并且每个射频标签中都存储自身的哈希值。其中,图中箭头走向示出了获取最小哈希值001的流程图。可以看到,这种查找方法利用了二分查找的思想,每广播一个比特位,期望上都把所有标签依据哈希值大小分成了两组,在小的一组中继续查找。
在上述各技术方案的基础上,所述对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别具体包括:
根据集合B中各射频标签的标签编号构造布隆过滤器,生成布隆比特串;
指示标签阅读器向集合A中的各射频标签广播所述布隆比特串,其中,当集合A中的射频标签判断自身的标签编号属于集合B时,不响应扫描识别;
指示标签阅读器对A集合内的各射频标签进行扫描识别。
简单来说,布隆过滤器是一个比特串,可以用来检测任意一个元素是否属于某个集合。在本优选实施方式中,通过集合B中的射频标签编号(或者通过哈希处理后的射频标签编号)生成一个布隆过滤器,来过滤A里面的元素。
其中,该生成的布隆过滤器可以达到如下效果:如果集合A中某些射频标签编号如果同时存在于集合B中,那么通过布隆过滤器可以以很大的概率识别出来。这样,我们就可以有效的识别出A∩B,进而抑制A∩B中的射频标签。
具体来说,服务器使用集合B中的射频标签编号构造一个布隆过滤器(比特串),通过标签阅读器广播这个布隆过滤器给集合A中的所有标签。集合A中的每个标签在收到这个布隆过滤器后,检测自己的编号是否属于集合B,如果判断自身编号属于集合B,则在接下来的识别过程中保持沉默。如果判断不属于集合B,则参与接下来的识别过程。
其中,布隆过滤器存在假阳性检测。即有可能某些射频标签不属于集合B,通过布隆过滤器检测的结果也是属于集合B。这个假阳性概率可以通过过滤器的比特串长度控制。比特串的长度越长,则假阳性的概率越小,反之亦反。给定一定的假阳性概率pfp,可以计算得到相应的通信开销:其中,tb为标签阅读器发送一个比特信息的时间。
在上述各实施例的基础上,所述最优策略阈值RTS通过公式:RTS=λe-ρtid计算得到,其中,ρ为时间常数,tid为识别一个射频标签的时间,λ通过公式:计算得到,pfp为设定的布隆过滤器的假阳性概率值,tb为标签阅读器发送一个比特信息的时间。
第二实施例
在图5中示出了本发明第二实施例的一种射频标签的扫描装置的结构图。如图5所示,所述装置包括:
重复标签系数计算单元51,用于计算重复标签系数C(A,B)的值,其中,A代表本次扫描待识别的射频标签的集合,B代表前一次扫描已经被识别的射频标签的集合,|A∩B|代表集合A与集合B交集中的射频标签的个数,|B|代表集合B中的射频标签的个数;
第一扫描识别单元52,用于当所述C(A,B)的值大于最优策略阈值时,指示标签阅读器对A∩B集合内的射频标签进行抑制,对A-B集合内的射频标签进行扫描识别;
第二扫描识别单元53,用于当所述C(A,B)的值小于等于所述最优策略阈值时,指示标签阅读器对A集合内的射频标签进行扫描识别。
本发明实施例根据重复标签系数,来确定连续扫描的策略,当重复标签系数大于最优策略阈值时,选择抑制算法对待扫描的射频标签集合中的重复标签进行抑制;当重复标签系数小于等于最优策略阈值时,允许在待扫描的射频标签集合中出现重复识别,达到了自适应的根据重复标签的数量,确定连续扫描策略的技术效果,根据实际情况在重复识别和通信开销中进行取舍,使得标签识别的效率最大化。
在上述各实施例的基础上,所述重复标签系数计算单元包括:
相似系数计算子单元,用于计算集合A与集合B的杰卡德相似系数J(A,B),其中,其中,|A∪B|代表集合A与集合B并集中的射频标签的个数;
重复系数计算子单元,用于根据公式: 计算C(A,B)的值,其中,|A|代表集合A中的射频标签的个数;
其中,所述J(A,B)通过最小哈希算法计算得到。
在上述各实施例的基础上,所述相似系数计算子单元具体用于:
按照预定的哈希函数,对集合A和集合B中的各射频标签的标签编号进行哈希运算,得到相应的哈希值;
从集合A对应的哈希值中选择最小的k个哈希值,构成集合hk(A),从集合B对应的哈希值中选择最小的k个哈希值,构成集合hk(B),从集合hk(A)∪hk(B)对应的哈希值中选择最小的k个哈希值,构成集合hk(A∪B),其中,k为大于0的整数;
根据公式: 计算所述J(A,B),其中,|hk(A∪B)∩hk(A)∩hk(B)|代表集合hk(A∪B)、集合hk(A)和集合hk(B)的交集中的哈希值的个数。
在上述各实施例的基础上,所述第二扫描识别单元具体用于:
根据集合B中各射频标签的标签编号构造布隆过滤器,生成布隆比特串;
指示标签阅读器向集合A中的各射频标签广播所述布隆比特串,其中,当集合A中的射频标签判断自身的标签编号属于集合B时,不响应扫描识别;
指示标签阅读器对A集合内的各射频标签进行扫描识别。
在上述各实施例的基础上,所述最优策略阈值RTS通过公式:RTS=λe-ρtid计算得到,其中,ρ为时间常数,tid为识别一个射频标签的时间,λ通过公式:计算得到,pfp为设定的布隆过滤器的假阳性概率值,tb为标签阅读器发送一个比特信息的时间。
本发明实施例所提供的射频标签的扫描装置可以用于执行本发明任意实施例提供的射频标签的扫描方法,具备相应的功能模块,达到同样的技术效果。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的服务器实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。