丁 磊,劉清華,江志文
DING Lei,LIU Qinghua,JIANG Zhiwen
廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510006
School of Computer Science and Technology,Guangdong University of Technology,Guangzhou 510006,China
隨著電子貨架標(biāo)簽[1]在商場中的廣泛應(yīng)用,使得顧客在商場中購物越來越便利,一方面顧客通過電子貨架標(biāo)簽上的信息可以了解商品的生產(chǎn)地、規(guī)格、價格等,另一方面零售商可以通過POS系統(tǒng)更改商品信息來管理電子貨架標(biāo)簽。從搜集顧客數(shù)據(jù)信息到解決方案,如能對此善加利用,則能使企業(yè)在激烈的市場競爭中脫穎而出。室內(nèi)定位技術(shù)一般應(yīng)用在用戶手機(jī)客戶端在商場中通過請求服務(wù)器,服務(wù)器端會根據(jù)用戶所在的區(qū)域進(jìn)行定位,然后把用戶所在區(qū)域的商品列表信息推送到手機(jī)客戶端,用戶還可以通過客戶端提交自己對商品的使用心得等[2]。但是如果能夠通過定位技術(shù)獲得消費(fèi)者在商場中位置信息、在商場中駐留的時間,并把這些位置信息存儲起來并傳送到數(shù)據(jù)中心結(jié)合POS系統(tǒng)中消費(fèi)者購買的商品,來分析顧客的消費(fèi)習(xí)慣并在顧客分析基礎(chǔ)上對消費(fèi)者后期進(jìn)行定向服務(wù)、定向推送,及時做出準(zhǔn)確的銷售預(yù)測,再傳導(dǎo)到供應(yīng)鏈的各個環(huán)節(jié),實(shí)現(xiàn)高效的商品組合、訂單管理、物流安排,成本更低,周轉(zhuǎn)更快,把整個供應(yīng)鏈的效力充分發(fā)揮出來。
本文在電子貨架標(biāo)簽系統(tǒng)的基礎(chǔ)之上開發(fā)顧客定位系統(tǒng)。在定位算法上,謝可等人[3]提出遮蔽因子方法對傳統(tǒng)的測距方法進(jìn)行了改進(jìn),并進(jìn)行了仿真研究,效果良好。為此,該系統(tǒng)采用其提出的測距方法進(jìn)行定位,以提高定位精度,來獲取顧客位置信息以及顧客的駐留時間,為企業(yè)后期做數(shù)據(jù)分析提供一個獲取顧客新數(shù)據(jù)的平臺。
電子貨架標(biāo)簽系統(tǒng)[4](Electronic Shelf Label System,ESLS),一般由電子貨架標(biāo)簽、智能網(wǎng)關(guān)、后臺服務(wù)器構(gòu)成。該室內(nèi)定位數(shù)據(jù)采集系統(tǒng)是ESLS的一個子系統(tǒng),該系統(tǒng)負(fù)責(zé)收集消費(fèi)者在商場中的位置信息、駐留時間,并把該信息傳送到數(shù)據(jù)中心。該系統(tǒng)的電子標(biāo)簽安裝在購物車或者是購物籃上,如圖1中所示。電子標(biāo)簽顯示含有藍(lán)牙模塊MAC地址、購物籃信息以及包含這些信息的二維碼[5]。每當(dāng)顧客進(jìn)入商場使用購物籃時,通過微信掃描二維碼的方式綁定用戶信息。智能網(wǎng)關(guān)一方面負(fù)責(zé)采集購籃上的電子標(biāo)簽的藍(lán)牙RSSI值,并把該值傳送到后臺服務(wù)器進(jìn)行定位計(jì)算,另一方面負(fù)責(zé)管理商品的電子貨架標(biāo)簽,方便更改商品的價格、規(guī)格等信息。數(shù)據(jù)中心包含標(biāo)簽信息、商品信息和消費(fèi)者在商場中的消費(fèi)行為以及定位系統(tǒng)中的消費(fèi)者位置信息等數(shù)據(jù),然后運(yùn)用ETL技術(shù)進(jìn)行數(shù)據(jù)處理。ETL[6]是數(shù)據(jù)抽取、轉(zhuǎn)換和裝載(Extract,Transformation,Loading)的英文簡稱,是數(shù)據(jù)倉庫獲取高質(zhì)量數(shù)據(jù)的關(guān)鍵環(huán)節(jié),是對分散在各個業(yè)務(wù)系統(tǒng)中的現(xiàn)有數(shù)據(jù)進(jìn)行提取、轉(zhuǎn)換、清洗和加載的過程,是這些數(shù)據(jù)成為商業(yè)智能系統(tǒng)需要的有用數(shù)據(jù)。
圖1 系統(tǒng)架構(gòu)圖
定位系統(tǒng)采用智能網(wǎng)關(guān)同時對電子標(biāo)簽進(jìn)行RSSI采集并傳送到后臺服務(wù)器算出電子標(biāo)簽與智能網(wǎng)關(guān)的距離,進(jìn)而得出購物籃的位置坐標(biāo)。在實(shí)際環(huán)境中,通過RSSI來估算電子標(biāo)簽與智能網(wǎng)關(guān)之間的距離是有較大誤差的,主要原因是:藍(lán)牙底層協(xié)議中會根據(jù)需要自動調(diào)節(jié)發(fā)射功率;室內(nèi)環(huán)境中存在多經(jīng)效應(yīng)以及繞射、障礙物等因素,導(dǎo)致智能網(wǎng)關(guān)端收到的RSSI值波動比較大。為此在智能網(wǎng)關(guān)采集到RSSI值需要進(jìn)行高斯濾波處理后,才能向服務(wù)端發(fā)送,然后進(jìn)行測距計(jì)算。本文選擇了RSSI高概率發(fā)生區(qū),經(jīng)過大量的測試,RSSI的取值范圍為[0.15σ+μ,3.09σ+μ][7],其中:
式中,n為濾波前的RSSI個數(shù)。
然后,取出該范圍內(nèi)的信號強(qiáng)度值,利用式(3)求出其算術(shù)平均值作為電子標(biāo)簽的信號強(qiáng)度值,發(fā)送到服務(wù)器端。
式中,m為濾波后的RSSI個數(shù),m小于式(1)中的n。
通過獲取藍(lán)牙RSSI的值進(jìn)行定位的方法主要分為兩類:基于位置指紋算法[8-9]和基于測距定位算法[10-11]。前者方法的優(yōu)點(diǎn)是定位精度高,但是計(jì)算復(fù)雜,且在離線建立位置指紋庫時需要把實(shí)際環(huán)境中的每個采集點(diǎn)進(jìn)行采樣,并建立RSSI與物理位置的對應(yīng)表,使得前期工作量巨大。
本文在算法實(shí)現(xiàn)上采用的是基于距測的定位算法。在室內(nèi)環(huán)境中,電磁波的傳播過程不能用自由空間的傳播模型來表示,較為常用的是一種帶有遮蔽因子的對數(shù)正態(tài)分布模型[3]。
式中,P是距離為d時的信號強(qiáng)度,P0是距離為d0的信號強(qiáng)度,該值需要現(xiàn)場測量,d0通常取為1 m。η為衰減因子,該值需要現(xiàn)場多次測量后進(jìn)行擬合。ξ為遮蔽因子,是均值為μ,方差為σ2的正態(tài)隨機(jī)變量。
設(shè)各個智能網(wǎng)關(guān)收到電子標(biāo)簽的信號強(qiáng)度為P=[P1P2…PN],對應(yīng)的距離為 D=[D1D2…DN],由式(4)可得到P的對數(shù)似然函數(shù)為:
其中
由最大似然估計(jì)原理可知,當(dāng)l(P|(x,y))取得最大時,可得到電子標(biāo)簽點(diǎn)的估計(jì)位置,即
利用共軛梯度法求解式(5),可得到估計(jì)坐標(biāo)(,)。
在上述似然函數(shù)求解位置坐標(biāo)時,未考慮式(4)中的遮蔽因子,求出的距離與實(shí)際的位置存在偏差,使得定位精確度下降。為此采用調(diào)節(jié)遮蔽因子方法對式(6)改進(jìn),進(jìn)行定位計(jì)算,該定位方法為一種循環(huán)執(zhí)行的程序,每一次循環(huán)都包含4個部分:粗定位、調(diào)節(jié)遮蔽因子、調(diào)整標(biāo)準(zhǔn)差,以及循環(huán)結(jié)束判定[3]。
(1)粗定位
首先,令式(5)中的為:
σi為智能終端i與電子標(biāo)簽之間的遮蔽因子,首次計(jì)算時,令 σi=0 ,之后求解式(6)得到 ()。
(2)調(diào)整遮蔽因子
遮蔽因子的調(diào)整公式為:
其中為調(diào)整前的 σi,為調(diào)整后的 σi,其中di為模型映射距離,由式(7)可以得出:
為估計(jì)坐標(biāo)計(jì)算距離:
其中,xi,yi為智能終端i的坐標(biāo)。
(3)調(diào)整標(biāo)準(zhǔn)差
此時式(5)中用到的遮蔽因子標(biāo)準(zhǔn)差δ為:
其中σ0為初始的遮蔽因子標(biāo)準(zhǔn)差。
(4)循環(huán)結(jié)束判定
若δ大于0,則再次執(zhí)行循環(huán),否則,停止執(zhí)行循環(huán)。循環(huán)結(jié)束之后再執(zhí)行一次精定位,即再次求解式(6)得到最終的)。
智能網(wǎng)關(guān)嵌入Android系統(tǒng),該設(shè)備主要實(shí)現(xiàn)電子標(biāo)簽的Mac以及RSSI值的獲取并發(fā)送到服務(wù)器端,其中網(wǎng)關(guān)的藍(lán)牙模塊采用TI公司的CC2540作為射頻發(fā)射器。在該Android系統(tǒng)上開發(fā)應(yīng)用程序[12](Application,APP)主要負(fù)責(zé)電子標(biāo)簽RSSI的采集與后臺服務(wù)器的交互。具體實(shí)現(xiàn)的流程如下:(1)打開藍(lán)牙:得到BluetoothAdapter對象判斷該設(shè)備是否有藍(lán)牙,有則打開藍(lán)牙;(2)藍(lán)牙設(shè)備的掃描:①獲得IntentFilter對象,添加BluetoothDevice廣播信息過濾;②創(chuàng)建Broadcast-Receiver對象,注冊廣播接收器,接收并處理搜索結(jié)果;③BluetoothAdapter的對象調(diào)用startDiscovery()方法,APP會將查找到的設(shè)備以廣播形式發(fā)出去。
由于受到室內(nèi)環(huán)境等影響,導(dǎo)致收到電子標(biāo)簽的RSSI值不穩(wěn)定。在藍(lán)牙設(shè)備掃描階段②步驟中,采用濾波算法對目標(biāo)電子標(biāo)簽采集的RSSI值進(jìn)行處理,智能網(wǎng)關(guān)端每5 s通過HTTP請求向服務(wù)器端發(fā)送mac地址和處理后RSSI的值以及系統(tǒng)時間值,APP流程如圖2。
系統(tǒng)服務(wù)器端是搭建在基于Web的Java EE[13]平臺之上,采用SSH(Spring4、Struts2、Hibernate)框架進(jìn)行開發(fā)的。對于整個開發(fā)平臺環(huán)境的簡單搭建描述如下:JDK 1.7,集成開發(fā)環(huán)境MyEcplice 2014,服務(wù)器tomact 8.0.9,數(shù)據(jù)庫MySQL 5.5。
圖2 APP流程圖
整個服務(wù)器端如圖3所示。其中,com.lbs_server.domain該包放置的是普通的JavaBean,系統(tǒng)運(yùn)用Hibernate技術(shù)將這些JavaBean對象映射到數(shù)據(jù)庫中;com.lbs_server.actions包內(nèi)放置的是系統(tǒng)的所有action類,處理前端的各類請求,包括查找顧客的位置、接收智能網(wǎng)關(guān)端的信息等操作;com.lbs_server.service包內(nèi)放置的是系統(tǒng)的所有service接口,定義了所有用到的業(yè)務(wù)邏輯方法;com.lbs_server.serviceImpl包內(nèi)放置的是系統(tǒng)的所有service的實(shí)現(xiàn)類,實(shí)現(xiàn)了所有業(yè)務(wù)邏輯方法的具體行為;com.lbs_server.dao包內(nèi)放置的是系統(tǒng)所有數(shù)據(jù)訪問的數(shù)據(jù)持久化方法的實(shí)現(xiàn)的接口;com.lbs_server.dao-Impl包內(nèi)放置的是所有dao接口的實(shí)現(xiàn)類,直接操作數(shù)據(jù)庫中的數(shù)據(jù),包括各類數(shù)據(jù)的增、刪、改、查等。
圖3 服務(wù)器端圖
智能網(wǎng)關(guān)端通過HTTP協(xié)議[14-15]請求的方式與后臺系統(tǒng)進(jìn)行交互。HTTP請求的路徑包括服務(wù)器的URL、端口號以及請求的參數(shù)值。參數(shù)值由int類型的RSSI、String類型的mac以及智能網(wǎng)關(guān)端發(fā)送到服務(wù)器端String類型的time組成。com.lbs_server.action包下面的getAp()的方法中,該方法調(diào)用com.lbs.serverImple中的getApDistance(String mac,int rssi,String time)的方法,該方法返回智能網(wǎng)關(guān)與電子標(biāo)簽的距離。在商場中放置4個智能網(wǎng)關(guān)得到4組電子標(biāo)簽的距離和mac地址、時間,然后經(jīng)過getxx_yy(double dd1,double dd2,double dd3,double dd4,String mac,Date time)方法計(jì)算出搜索到電子標(biāo)簽的位置坐標(biāo),定位算法流程如圖4。
圖4 定位算法流程圖
智能網(wǎng)關(guān)端主要方法:
服務(wù)器端主要方法如下:
為了驗(yàn)證該實(shí)驗(yàn)的有效性,選擇了一間6 m×9 m的小型超市,劃分區(qū)域建立室內(nèi)坐標(biāo)系,4個智能網(wǎng)關(guān)分別置于坐標(biāo)(0,0),(4.8,0),(0,7.2),(7.2,7.2)的位置,1部手機(jī)、1臺電腦、1臺服務(wù)器、1個購物籃和電子標(biāo)簽。
系統(tǒng)工作流程如下:(1)4個智能網(wǎng)關(guān)的APP同時打開,掃描電子標(biāo)簽設(shè)備,服務(wù)器端向智能網(wǎng)關(guān)端發(fā)送校準(zhǔn)時間,使得智能網(wǎng)關(guān)端采集的RSSI的開始時間值一致;(2)手機(jī)微信掃描電子標(biāo)簽上的二維碼,使得顧客與購物籃、電子標(biāo)簽綁定;(3)每隔15 s移動電子標(biāo)簽的位置,同時管理員在電腦端登錄定位系統(tǒng),通過查詢購物籃編號獲得正在使用該購物籃顧客的位置信息,并在該顧客走出定位區(qū)域后,通過查詢顧客編號得到顧客駐留的時間。系統(tǒng)查詢結(jié)果如圖5。
圖5 查詢結(jié)果圖
定位信息采集的數(shù)據(jù)如表1所示。
表1 定位信息采集的數(shù)據(jù)m
通過實(shí)驗(yàn)證明,利用調(diào)節(jié)遮蔽因子的測距方法,能夠達(dá)到精確定位的效果。一方面在位置信息頁面通過搜索購物籃編號能夠知道顧客的位置以及時間,另一方面在駐留時間頁面也能夠搜索到購物籃進(jìn)出測試區(qū)域的時間值以及在這一片區(qū)域停留的時間,該駐留時間理論應(yīng)5分鐘0秒,實(shí)際為7分鐘08秒。其原因來自于在位置之間互相移動時,導(dǎo)致的延時,但該獲得的時間為在整個實(shí)驗(yàn)環(huán)境中駐留的時間值。
該系統(tǒng)采用調(diào)節(jié)遮蔽因子的測距方法,進(jìn)行定位。在智能網(wǎng)關(guān)端對采集的RSSI值用高斯濾波算法進(jìn)行過濾,采用SHH框架搭建后臺系統(tǒng),通過實(shí)驗(yàn)驗(yàn)證了該測距算法的可行性。管理員通過后臺頁面查詢到顧客的位置以及在測試區(qū)域的駐留時間。該獲得數(shù)據(jù)信息可以結(jié)合電子貨架標(biāo)簽系統(tǒng)以及與消費(fèi)者在商場中購買商品信息等的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,為發(fā)現(xiàn)潛在的顧客提供了便利。
參考文獻(xiàn):
[1]丁磊,張彩祥,馮永晉.基于藍(lán)牙4.0的低功耗電子貨架標(biāo)簽設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(5):29-34.
[2]顧聰,陳益強(qiáng),劉軍發(fā),等.基于Android平臺的室內(nèi)LBS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(1):396-401.
[3]謝可,丁磊.關(guān)于ESL定位系統(tǒng)優(yōu)化設(shè)計(jì)仿真研究[J].計(jì)算機(jī)仿真,2015,32(8):311-314.
[4]張彩祥.基于BLE的電子貨架標(biāo)簽系統(tǒng)的研究與設(shè)計(jì)[D].廣州:廣東工業(yè)大學(xué),2014.
[5]桂振文,王涌天,劉越,等.二維碼在移動增強(qiáng)現(xiàn)實(shí)中的應(yīng)用研究[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2014,26(1):35-39.
[6]徐俊剛,裴瑩.數(shù)據(jù)ETL研究綜述[J].計(jì)算機(jī)科學(xué),2011,38(4):15-17.
[7]朱明輝,張會清.基于RSSI的室內(nèi)測距模型的研究[J].傳感器與微系統(tǒng),2010,29(8):19-22.
[8]蔡朝暉,夏溪,胡波,等.室內(nèi)信號強(qiáng)度指紋定位算法改進(jìn)[J].計(jì)算機(jī)科學(xué),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測距的室內(nèi)定位算法研究[D].鄭州:鄭州大學(xué),2011.
[11]羅炬鋒,付耀先,王營冠.基于RSSI測距的WLS定位算法[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2011,39(11):34-38.
[12]郭霖.第一行代碼Android[M].北京:人民郵電出版社,2014.
[13]李剛.輕量級Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)[M].4版.北京:電子工業(yè)出版社,2015.
[14]Stevens W R.TCP/IP詳解(卷1:協(xié)議)[M].范建華,胥光輝,張濤,等譯.北京:機(jī)械工業(yè)出版社,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.