丁 磊,刘清华,江志文
DING Lei,LIU Qinghua,JIANG Zhiwen
广东工业大学 计算机学院,广州 510006
School of Computer Science and Technology,Guangdong University of Technology,Guangzhou 510006,China
随着电子货架标签[1]在商场中的广泛应用,使得顾客在商场中购物越来越便利,一方面顾客通过电子货架标签上的信息可以了解商品的生产地、规格、价格等,另一方面零售商可以通过POS系统更改商品信息来管理电子货架标签。从搜集顾客数据信息到解决方案,如能对此善加利用,则能使企业在激烈的市场竞争中脱颖而出。室内定位技术一般应用在用户手机客户端在商场中通过请求服务器,服务器端会根据用户所在的区域进行定位,然后把用户所在区域的商品列表信息推送到手机客户端,用户还可以通过客户端提交自己对商品的使用心得等[2]。但是如果能够通过定位技术获得消费者在商场中位置信息、在商场中驻留的时间,并把这些位置信息存储起来并传送到数据中心结合POS系统中消费者购买的商品,来分析顾客的消费习惯并在顾客分析基础上对消费者后期进行定向服务、定向推送,及时做出准确的销售预测,再传导到供应链的各个环节,实现高效的商品组合、订单管理、物流安排,成本更低,周转更快,把整个供应链的效力充分发挥出来。
本文在电子货架标签系统的基础之上开发顾客定位系统。在定位算法上,谢可等人[3]提出遮蔽因子方法对传统的测距方法进行了改进,并进行了仿真研究,效果良好。为此,该系统采用其提出的测距方法进行定位,以提高定位精度,来获取顾客位置信息以及顾客的驻留时间,为企业后期做数据分析提供一个获取顾客新数据的平台。
电子货架标签系统[4](Electronic Shelf Label System,ESLS),一般由电子货架标签、智能网关、后台服务器构成。该室内定位数据采集系统是ESLS的一个子系统,该系统负责收集消费者在商场中的位置信息、驻留时间,并把该信息传送到数据中心。该系统的电子标签安装在购物车或者是购物篮上,如图1中所示。电子标签显示含有蓝牙模块MAC地址、购物篮信息以及包含这些信息的二维码[5]。每当顾客进入商场使用购物篮时,通过微信扫描二维码的方式绑定用户信息。智能网关一方面负责采集购篮上的电子标签的蓝牙RSSI值,并把该值传送到后台服务器进行定位计算,另一方面负责管理商品的电子货架标签,方便更改商品的价格、规格等信息。数据中心包含标签信息、商品信息和消费者在商场中的消费行为以及定位系统中的消费者位置信息等数据,然后运用ETL技术进行数据处理。ETL[6]是数据抽取、转换和装载(Extract,Transformation,Loading)的英文简称,是数据仓库获取高质量数据的关键环节,是对分散在各个业务系统中的现有数据进行提取、转换、清洗和加载的过程,是这些数据成为商业智能系统需要的有用数据。
图1 系统架构图
定位系统采用智能网关同时对电子标签进行RSSI采集并传送到后台服务器算出电子标签与智能网关的距离,进而得出购物篮的位置坐标。在实际环境中,通过RSSI来估算电子标签与智能网关之间的距离是有较大误差的,主要原因是:蓝牙底层协议中会根据需要自动调节发射功率;室内环境中存在多经效应以及绕射、障碍物等因素,导致智能网关端收到的RSSI值波动比较大。为此在智能网关采集到RSSI值需要进行高斯滤波处理后,才能向服务端发送,然后进行测距计算。本文选择了RSSI高概率发生区,经过大量的测试,RSSI的取值范围为[0.15σ+μ,3.09σ+μ][7],其中:
式中,n为滤波前的RSSI个数。
然后,取出该范围内的信号强度值,利用式(3)求出其算术平均值作为电子标签的信号强度值,发送到服务器端。
式中,m为滤波后的RSSI个数,m小于式(1)中的n。
通过获取蓝牙RSSI的值进行定位的方法主要分为两类:基于位置指纹算法[8-9]和基于测距定位算法[10-11]。前者方法的优点是定位精度高,但是计算复杂,且在离线建立位置指纹库时需要把实际环境中的每个采集点进行采样,并建立RSSI与物理位置的对应表,使得前期工作量巨大。
本文在算法实现上采用的是基于距测的定位算法。在室内环境中,电磁波的传播过程不能用自由空间的传播模型来表示,较为常用的是一种带有遮蔽因子的对数正态分布模型[3]。
式中,P是距离为d时的信号强度,P0是距离为d0的信号强度,该值需要现场测量,d0通常取为1 m。η为衰减因子,该值需要现场多次测量后进行拟合。ξ为遮蔽因子,是均值为μ,方差为σ2的正态随机变量。
设各个智能网关收到电子标签的信号强度为P=[P1P2…PN],对应的距离为 D=[D1D2…DN],由式(4)可得到P的对数似然函数为:
其中
由最大似然估计原理可知,当l(P|(x,y))取得最大时,可得到电子标签点的估计位置,即
利用共轭梯度法求解式(5),可得到估计坐标(,)。
在上述似然函数求解位置坐标时,未考虑式(4)中的遮蔽因子,求出的距离与实际的位置存在偏差,使得定位精确度下降。为此采用调节遮蔽因子方法对式(6)改进,进行定位计算,该定位方法为一种循环执行的程序,每一次循环都包含4个部分:粗定位、调节遮蔽因子、调整标准差,以及循环结束判定[3]。
(1)粗定位
首先,令式(5)中的为:
σi为智能终端i与电子标签之间的遮蔽因子,首次计算时,令 σi=0 ,之后求解式(6)得到 ()。
(2)调整遮蔽因子
遮蔽因子的调整公式为:
其中为调整前的 σi,为调整后的 σi,其中di为模型映射距离,由式(7)可以得出:
为估计坐标计算距离:
其中,xi,yi为智能终端i的坐标。
(3)调整标准差
此时式(5)中用到的遮蔽因子标准差δ为:
其中σ0为初始的遮蔽因子标准差。
(4)循环结束判定
若δ大于0,则再次执行循环,否则,停止执行循环。循环结束之后再执行一次精定位,即再次求解式(6)得到最终的)。
智能网关嵌入Android系统,该设备主要实现电子标签的Mac以及RSSI值的获取并发送到服务器端,其中网关的蓝牙模块采用TI公司的CC2540作为射频发射器。在该Android系统上开发应用程序[12](Application,APP)主要负责电子标签RSSI的采集与后台服务器的交互。具体实现的流程如下:(1)打开蓝牙:得到BluetoothAdapter对象判断该设备是否有蓝牙,有则打开蓝牙;(2)蓝牙设备的扫描:①获得IntentFilter对象,添加BluetoothDevice广播信息过滤;②创建Broadcast-Receiver对象,注册广播接收器,接收并处理搜索结果;③BluetoothAdapter的对象调用startDiscovery()方法,APP会将查找到的设备以广播形式发出去。
由于受到室内环境等影响,导致收到电子标签的RSSI值不稳定。在蓝牙设备扫描阶段②步骤中,采用滤波算法对目标电子标签采集的RSSI值进行处理,智能网关端每5 s通过HTTP请求向服务器端发送mac地址和处理后RSSI的值以及系统时间值,APP流程如图2。
系统服务器端是搭建在基于Web的Java EE[13]平台之上,采用SSH(Spring4、Struts2、Hibernate)框架进行开发的。对于整个开发平台环境的简单搭建描述如下:JDK 1.7,集成开发环境MyEcplice 2014,服务器tomact 8.0.9,数据库MySQL 5.5。
图2 APP流程图
整个服务器端如图3所示。其中,com.lbs_server.domain该包放置的是普通的JavaBean,系统运用Hibernate技术将这些JavaBean对象映射到数据库中;com.lbs_server.actions包内放置的是系统的所有action类,处理前端的各类请求,包括查找顾客的位置、接收智能网关端的信息等操作;com.lbs_server.service包内放置的是系统的所有service接口,定义了所有用到的业务逻辑方法;com.lbs_server.serviceImpl包内放置的是系统的所有service的实现类,实现了所有业务逻辑方法的具体行为;com.lbs_server.dao包内放置的是系统所有数据访问的数据持久化方法的实现的接口;com.lbs_server.dao-Impl包内放置的是所有dao接口的实现类,直接操作数据库中的数据,包括各类数据的增、删、改、查等。
图3 服务器端图
智能网关端通过HTTP协议[14-15]请求的方式与后台系统进行交互。HTTP请求的路径包括服务器的URL、端口号以及请求的参数值。参数值由int类型的RSSI、String类型的mac以及智能网关端发送到服务器端String类型的time组成。com.lbs_server.action包下面的getAp()的方法中,该方法调用com.lbs.serverImple中的getApDistance(String mac,int rssi,String time)的方法,该方法返回智能网关与电子标签的距离。在商场中放置4个智能网关得到4组电子标签的距离和mac地址、时间,然后经过getxx_yy(double dd1,double dd2,double dd3,double dd4,String mac,Date time)方法计算出搜索到电子标签的位置坐标,定位算法流程如图4。
图4 定位算法流程图
智能网关端主要方法:
服务器端主要方法如下:
为了验证该实验的有效性,选择了一间6 m×9 m的小型超市,划分区域建立室内坐标系,4个智能网关分别置于坐标(0,0),(4.8,0),(0,7.2),(7.2,7.2)的位置,1部手机、1台电脑、1台服务器、1个购物篮和电子标签。
系统工作流程如下:(1)4个智能网关的APP同时打开,扫描电子标签设备,服务器端向智能网关端发送校准时间,使得智能网关端采集的RSSI的开始时间值一致;(2)手机微信扫描电子标签上的二维码,使得顾客与购物篮、电子标签绑定;(3)每隔15 s移动电子标签的位置,同时管理员在电脑端登录定位系统,通过查询购物篮编号获得正在使用该购物篮顾客的位置信息,并在该顾客走出定位区域后,通过查询顾客编号得到顾客驻留的时间。系统查询结果如图5。
图5 查询结果图
定位信息采集的数据如表1所示。
表1 定位信息采集的数据m
通过实验证明,利用调节遮蔽因子的测距方法,能够达到精确定位的效果。一方面在位置信息页面通过搜索购物篮编号能够知道顾客的位置以及时间,另一方面在驻留时间页面也能够搜索到购物篮进出测试区域的时间值以及在这一片区域停留的时间,该驻留时间理论应5分钟0秒,实际为7分钟08秒。其原因来自于在位置之间互相移动时,导致的延时,但该获得的时间为在整个实验环境中驻留的时间值。
该系统采用调节遮蔽因子的测距方法,进行定位。在智能网关端对采集的RSSI值用高斯滤波算法进行过滤,采用SHH框架搭建后台系统,通过实验验证了该测距算法的可行性。管理员通过后台页面查询到顾客的位置以及在测试区域的驻留时间。该获得数据信息可以结合电子货架标签系统以及与消费者在商场中购买商品信息等的数据进行数据分析,为发现潜在的顾客提供了便利。
参考文献:
[1]丁磊,张彩祥,冯永晋.基于蓝牙4.0的低功耗电子货架标签设计[J].电子技术应用,2014,40(5):29-34.
[2]顾聪,陈益强,刘军发,等.基于Android平台的室内LBS系统设计与实现[J].计算机工程与设计,2012,33(1):396-401.
[3]谢可,丁磊.关于ESL定位系统优化设计仿真研究[J].计算机仿真,2015,32(8):311-314.
[4]张彩祥.基于BLE的电子货架标签系统的研究与设计[D].广州:广东工业大学,2014.
[5]桂振文,王涌天,刘越,等.二维码在移动增强现实中的应用研究[J].计算机辅助设计与图形学学报,2014,26(1):35-39.
[6]徐俊刚,裴莹.数据ETL研究综述[J].计算机科学,2011,38(4):15-17.
[7]朱明辉,张会清.基于RSSI的室内测距模型的研究[J].传感器与微系统,2010,29(8):19-22.
[8]蔡朝晖,夏溪,胡波,等.室内信号强度指纹定位算法改进[J].计算机科学,2014,41(11):178-181.
[9]Wu Zheng,Jedari E,Muscedere R,et al.Improved particle filter based on WLAN RSSI fingerprinting and smart sensors for indoor localization[J].Computer Communications,2016,83(1):64-71.
[10]顾宗海.基于RSSI测距的室内定位算法研究[D].郑州:郑州大学,2011.
[11]罗炬锋,付耀先,王营冠.基于RSSI测距的WLS定位算法[J].华中科技大学学报:自然科学版,2011,39(11):34-38.
[12]郭霖.第一行代码Android[M].北京:人民邮电出版社,2014.
[13]李刚.轻量级Java EE企业应用实战[M].4版.北京:电子工业出版社,2015.
[14]Stevens W R.TCP/IP详解(卷1:协议)[M].范建华,胥光辉,张涛,等译.北京:机械工业出版社,2014.
[15]Shiva S R P,Swetha L,Prasad C G.Analysis and design of enhanced HTTP proxy cashing server[J].International Journal of Computer Technology and Applications,2011,2(3):537-541.