張國林,羅回彬,鄭澤江,董晉源,劉永怡
(北京理工大學(xué)珠海學(xué)院計算機學(xué)院,珠海519000)
在公共場所,如大型商場和景區(qū),各項指標(biāo)如客流量的大小和人流分布等在商業(yè)數(shù)據(jù)分析中發(fā)揮著重要作用。傳統(tǒng)的客流統(tǒng)計方式有人工統(tǒng)計、紅外感應(yīng)、視頻檢測等。其中,人工統(tǒng)計相對來說成本較低,但僅限于短時間內(nèi)的客流量統(tǒng)計,隨著時間的增加數(shù)據(jù)的誤差將逐漸增大;紅外感應(yīng)則不能區(qū)分對象是否被重復(fù)計數(shù),統(tǒng)計精度受紅外感應(yīng)裝置安裝位置影響較大;而視頻檢測相對來說需要的計算資源較大,而且易受光照強度、遮擋等影響。
而隨著移動互聯(lián)網(wǎng)的普及,智能手機用戶已經(jīng)越來越多,人們隨時隨地想上網(wǎng)的需求越來越大,因此很多公共場所開放了免費Wi-Fi 為大眾帶來便利,與此同時也為商戶更加深入的了解消費者需求提供了全新渠道。例如,可以利用Wi-Fi 探針技術(shù)通過對手機MAC 地址的分析來進行對客流量的分析,同時還利用延伸的標(biāo)桿管理才能,較好洞悉并提供有助于推動實際客流量和消費者習(xí)慣行為的一系列因素。例如,通過駐店時長可以快速掌握店招、產(chǎn)品或營銷活動的吸引力,從而能夠及時改變營銷方案,對商業(yè)績效能產(chǎn)生較好的促進作用。因此,基于Wi-Fi 探針客流統(tǒng)計分析的系統(tǒng)的開發(fā)意義非凡。
基于Wi-Fi 探針的客流統(tǒng)計分析系統(tǒng)主要通過Web 客戶端和后臺服務(wù)進行交互實現(xiàn)響應(yīng)的功能,主要分為Wi-Fi 探針、數(shù)據(jù)庫、后臺服務(wù)器模塊、Web 客戶端,系統(tǒng)整體框架如圖1 所示。
(1)Wi-Fi 探針主要作用是采集實時用戶智能手機的Wi-Fi 信號的強弱程度、獲取用戶智能手機的MAC地址和當(dāng)前獲取人數(shù)等數(shù)據(jù),發(fā)送到后臺服務(wù)器進行處理并存儲到數(shù)據(jù)庫;
(2)數(shù)據(jù)庫的數(shù)據(jù)包括:用戶智能手機MAC 地址、RSSI 數(shù)值、設(shè)備ID、具體客戶的訪問時間、訪問次數(shù)、訪問時長、用戶信息等數(shù)據(jù);
(3)后臺服務(wù)器模塊主要進行處理分析從Wi-Fi探針收集到的零散數(shù)據(jù),利用MAC 地址識別不同的用戶,利用RSSI 數(shù)值的大?。╓i-Fi 信號的強弱)判斷具體用戶的大概所在范圍從而判斷此用戶是屬于客流量范疇還是人流量的范疇等理念,逐一分析,將零散看似無用的數(shù)字整理成有價值的數(shù)據(jù);
(4)Web 客戶端主要進行數(shù)據(jù)顯示,可以查看當(dāng)前門店客流量,也可以通過地圖切換到其他門店,了解其他門店的客流情況。
圖1 系統(tǒng)整體架構(gòu)
基于以上整體設(shè)計和業(yè)務(wù)功能要求,系統(tǒng)進行詳細(xì)設(shè)計,采用的Java+MySQL 作為主要的軟件開發(fā)模式,Web 前端采用HTML+JS+CSS 的開發(fā)模式進行開發(fā)。
本系統(tǒng)數(shù)據(jù)處理的流程分為:數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)儲存、數(shù)據(jù)顯示,具體如圖2 所示。
圖2 數(shù)據(jù)流程
本系統(tǒng)采集的數(shù)據(jù)為Wi-Fi 探針數(shù)據(jù),Wi-Fi 探針數(shù)據(jù)是probe 幀,其以手機MAC 地址為重要組成,同時還包括了Wi-Fi 的信號強度RSSI,Wi-Fi 探針設(shè)備的設(shè)備ID,所接收到的手機信號的個數(shù)等基礎(chǔ)數(shù)據(jù)??梢砸罁?jù)不同的設(shè)備ID 來識別是哪個Wi-Fi 探針獲取的數(shù)據(jù),從而可以依據(jù)不同的設(shè)備靈活處理數(shù)據(jù)。另外,由于智能手機數(shù)量較大,接收的探針數(shù)據(jù)量巨大,因此本系統(tǒng)采用基于UDP 的分布式集群,實現(xiàn)動態(tài)擴展,滿足海量Wi-Fi 探針數(shù)據(jù)的接收及解析。
本該系統(tǒng)的后臺服務(wù)器采用Java+SpringBoot 框架系統(tǒng)來實現(xiàn)。Spring Boot 是由Pivotal 團隊提供的全新框架,其配置簡單方便。此外,針對數(shù)據(jù)接收,本服務(wù)器采用Java 自帶的Socket 包來實現(xiàn)UDP 的服務(wù)端。
當(dāng)Wi-Fi 探針連接后臺服務(wù)器時,會不停地向服務(wù)器發(fā)送與顧客智能手機相關(guān)的JSON 數(shù)據(jù)。數(shù)據(jù)樣例,如下:
{
"Num":10,
"Id":3772638,
"Data":[{
"mac":"00:22:69:5a:d1:8f",
"rssi":-43
},{
"mac":"00:22:69:5a:d1:7f",
"rssi":-43
},{
"mac":"00:23:69:5a:d1:8f",
"rssi":-43
}]
}
針對JSON 數(shù)據(jù)解析,本系統(tǒng)采用了Java 庫FastJSON 來解析Wi-Fi 探針發(fā)來的JSON 數(shù)據(jù)。利用FastJSON 庫中的JSONObject 對象來逐一獲取JSON 數(shù)據(jù)中的內(nèi)容,以便后面的數(shù)據(jù)分析處理部分使用。
數(shù)據(jù)分析處理部分,首先依據(jù)RSSI 信號強度與距離的轉(zhuǎn)換公式d = 10^((abs(rssi)- A)/ (10 * n)),式中d表示計算所得距離(單位:m);RSSI 為接收信號強度;A為發(fā)射終端和接收終端相隔1 米時的信號強度;n 為環(huán)境衰減因子。計算出該用戶的大概所在位置后,在此基礎(chǔ)上分析計算出人流量、客流量、每小時統(tǒng)計客流量和進店人數(shù)等數(shù)值,如表1 所示。
基于功能業(yè)務(wù)需求及規(guī)劃,本系統(tǒng)采用的MySQL+MyBatis 的架構(gòu)系統(tǒng)的存儲模式。在Web 應(yīng)用方面,MySQL 是RDBMS(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))最好的應(yīng)用軟件。MyBatis 是一個優(yōu)秀的持久性層框架,它支持自定義SQL、存儲過程和高級映射。MyBatis 可以使用簡單的XML 或注釋來配置和映射本地信息、映射接口和Java POJO(通用Java 對象)到數(shù)據(jù)庫中的記錄。MySQL+MyBatis 的體系結(jié)構(gòu)系統(tǒng)的存儲模式可以提高系統(tǒng)的輸入和輸出性能。
表1 主要技術(shù)指標(biāo)及描述
另外,在數(shù)據(jù)庫的設(shè)計方面,本系統(tǒng)的數(shù)據(jù)庫表結(jié)構(gòu)主要以客戶手機的MAC 地址為唯一標(biāo)識存儲數(shù)據(jù),這樣就可以很好地減低數(shù)據(jù)冗余情況并且可以大幅度地提升數(shù)據(jù)庫的存儲性能。其中關(guān)鍵數(shù)據(jù)表的表結(jié)構(gòu)如圖3 所示。
圖3 關(guān)鍵數(shù)據(jù)表
在Web 客戶端數(shù)據(jù)顯示方面,本系統(tǒng)主要采用HTML+JS+CSS 的設(shè)計模式,此設(shè)計模式可以實現(xiàn)與后臺服務(wù)器順暢地進行數(shù)據(jù)交互和簡潔地進行數(shù)據(jù)的展現(xiàn)。
在動態(tài)圖表方面,本系統(tǒng)采用百度的ECharts 插件。ECharts 是一個純JavaScript 圖表庫,與大多數(shù)瀏覽器的短格式圖表兼容。底層依賴于輕質(zhì)畫布庫ZRender,提供直觀、生動、交互式的、高度可定制的數(shù)據(jù)可視化的圖表。創(chuàng)新的拖放計算、數(shù)據(jù)查看和范圍漫游功能,大大改善了用戶體驗,讓用戶更好地挖掘和整合數(shù)據(jù)。
此外,為了方便用戶在Web 客戶端清晰地查看店鋪分布,系統(tǒng)還使用了百度map 的JavaScript API,其可以支持PC 和手機上的基于瀏覽器的地圖應(yīng)用程序開發(fā),實現(xiàn)互動式地圖應(yīng)用。
圖4 圖表數(shù)據(jù)顯示
圖5 店面地圖布局
為了驗證提出的基于Wi-Fi 探針的客流統(tǒng)計分析系統(tǒng)的準(zhǔn)確性及方便調(diào)試,本系統(tǒng)在實驗室設(shè)置了兩個Wi-Fi 探針,每隔3 秒嗅探一次MAC 地址并發(fā)送數(shù)據(jù)給后臺數(shù)據(jù)服務(wù)器進行數(shù)據(jù)處理。本系統(tǒng)中,Wi-Fi探針發(fā)送的數(shù)據(jù)如2.3 小節(jié)所示的JSON 數(shù)據(jù)樣例。本系統(tǒng)Web 顯示效果如圖6 所示,可以較好地顯示當(dāng)前店內(nèi)各項指標(biāo)數(shù)據(jù)。
圖6 Web數(shù)據(jù)顯示效果
本文設(shè)計并實現(xiàn)了一種基于Wi-Fi 探針的客流統(tǒng)計分析系統(tǒng),可準(zhǔn)確地計算出門店人員想要關(guān)注的客流數(shù)據(jù),一改傳統(tǒng)計算人流量客流量效率低和準(zhǔn)確性低的缺點,實時性強,展現(xiàn)的數(shù)據(jù)擁有較高的參考價值,可以較好地提高門店或商場的管理效率,具有較大的市場價值和應(yīng)用前景。