文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.032
中文引用格式: 周靜,周杰,杜景林. 基于Android的參與感知式智慧購(gòu)物系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(9):122-125.
英文引用格式: Zhou Jing,Zhou Jie,Du Jinglin. Design of intelligent shopping system in the mode of participatory sensing based on Android[J].Application of Electronic Technique,2016,42(9):122-125.
0 引言
以智能手機(jī)為典型代表的移動(dòng)設(shè)備普遍搭載了各種各樣的傳感器,為人們提供所需要的服務(wù)[1]。智能移動(dòng)設(shè)備的強(qiáng)大功能催生了一種以人為主體的感知方式——參與式感知。在進(jìn)行感知時(shí),由個(gè)體或群體使用其所擁有的功能日益強(qiáng)大的移動(dòng)設(shè)備及云端服務(wù)器來(lái)收集并分析語(yǔ)義信息[2]。
感知應(yīng)用涉及到各種領(lǐng)域,比如:醫(yī)療保健、社會(huì)網(wǎng)絡(luò)應(yīng)用、交通路線導(dǎo)航等。Ear-Phone[3]、Common Sense Project[4]和Petrol Watch[5]分別利用感知數(shù)據(jù)提供了環(huán)境監(jiān)測(cè)和日常智慧消費(fèi)服務(wù)。
本設(shè)計(jì)提出的智慧購(gòu)物系統(tǒng)估測(cè)特定商場(chǎng)特定時(shí)間段每位顧客的排隊(duì)時(shí)間,并提供實(shí)時(shí)查詢和推送訂閱服務(wù),為用戶購(gòu)物決策提供參考。
1 智慧購(gòu)物系統(tǒng)的總體架構(gòu)設(shè)計(jì)
1.1 核心問(wèn)題分析
在參與感知模式中,如果參與者過(guò)少,感知數(shù)據(jù)不足,會(huì)嚴(yán)重影響感知結(jié)果的準(zhǔn)確性。針對(duì)此問(wèn)題,實(shí)驗(yàn)小組對(duì)商場(chǎng)結(jié)賬排隊(duì)模式進(jìn)行了研究,研究表明,在一個(gè)動(dòng)態(tài)時(shí)間塊內(nèi)完成排隊(duì)過(guò)程的顧客,他們的等待時(shí)間幾乎是相同的,這說(shuō)明,在特定時(shí)間塊內(nèi),即使僅有少數(shù)顧客上傳數(shù)據(jù)到服務(wù)器,也能得出高準(zhǔn)確度的結(jié)果值。
1.2 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)如圖1所示,客戶端主要功能是搜集數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行預(yù)處理、上傳數(shù)據(jù)、與用戶視圖交互等;服務(wù)器端的主要功能是接收從客戶端發(fā)送來(lái)的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行清洗、分類、聚合等操作,最終整合出平均排隊(duì)時(shí)間;極光推送服務(wù)器為系統(tǒng)提供實(shí)時(shí)推送功能。
1.3 客戶端結(jié)構(gòu)
客戶端軟件結(jié)構(gòu)框架如圖2所示。
服務(wù)控制模塊為用戶提供登錄、配置功能,并且為系統(tǒng)計(jì)算結(jié)果地圖可視化和曲線圖展示提供相對(duì)應(yīng)的軟件接口。
感知模塊利用傳感器技術(shù)實(shí)現(xiàn)加速度數(shù)據(jù)、音頻數(shù)據(jù)等的實(shí)時(shí)采集,保存至本地?cái)?shù)據(jù)庫(kù),為數(shù)據(jù)處理模塊提供數(shù)據(jù)儲(chǔ)備。
信息收發(fā)模塊充當(dāng)著信差的角色,感知主體將數(shù)據(jù)實(shí)時(shí)上傳到服務(wù)器,服務(wù)器運(yùn)用大數(shù)據(jù)的數(shù)據(jù)挖掘等算法模型對(duì)數(shù)據(jù)進(jìn)行處理,然后將處理結(jié)果實(shí)時(shí)發(fā)送到客戶端。
推送接收模塊接收服務(wù)器推送的實(shí)時(shí)通知,為節(jié)約開(kāi)發(fā)成本,提高工作效率,系統(tǒng)引入第三方極光推送服務(wù)。
數(shù)據(jù)處理模塊是整個(gè)客戶端軟件架構(gòu)的核心,主要包括排隊(duì)模式識(shí)別和排隊(duì)時(shí)間計(jì)算。首先將感知數(shù)據(jù)與本地?cái)?shù)據(jù)庫(kù)中的排隊(duì)模式識(shí)別密鑰相對(duì)比,篩選出符合排隊(duì)模式特性的數(shù)據(jù),采用二進(jìn)制序列塊算法模型,計(jì)算結(jié)賬排隊(duì)時(shí)間,利用網(wǎng)絡(luò)通信技術(shù)上傳到服務(wù)器。
排隊(duì)模式識(shí)別:系統(tǒng)主要通過(guò)分析加速度和音頻數(shù)據(jù)進(jìn)行排隊(duì)模式識(shí)別。顧客的運(yùn)動(dòng)狀態(tài)可分為移動(dòng)和站立兩種,以4 Hz的采樣率收集加速度樣本,每一個(gè)樣本表示成三維矢量,分析當(dāng)前樣本和鄰近樣本的矢量夾角,判斷當(dāng)前樣本表示的狀態(tài)。通過(guò)大量的實(shí)驗(yàn)得出結(jié)論:將5°作為夾角閾值判斷樣本代表的運(yùn)動(dòng)狀態(tài),其結(jié)果精確度最高。即如果系統(tǒng)中樣本矢量與鄰近矢量的夾角超過(guò)5°,則視為移動(dòng)狀態(tài);低于5°,則視為站立狀態(tài)。假設(shè)一位顧客在[Ti,To]時(shí)間段內(nèi)處于排隊(duì)模式,那么在Ti之前和To之后的一小段時(shí)間內(nèi)處于走或者跑的狀態(tài),將這一小段時(shí)間記為Tc,在[Ti,To]時(shí)間段內(nèi)顧客的運(yùn)動(dòng)模式又分為向前走動(dòng)和站立等待兩種,將顧客每次走動(dòng)的時(shí)間記為tm,等待的時(shí)間記為tw。多個(gè)商場(chǎng)多次試驗(yàn)表明,tm超過(guò)5 s,tw超過(guò)300 s的幾率很小,所以系統(tǒng)將Tc的最小值設(shè)置為5 s。由于顧客在挑選商品時(shí)同樣會(huì)出現(xiàn)上述的運(yùn)動(dòng)狀態(tài),為避免系統(tǒng)誤判,引入音頻信號(hào)分析,結(jié)賬時(shí)隨著顧客靠近收銀員,掃碼計(jì)價(jià)器的聲音會(huì)增強(qiáng),將麥克風(fēng)搜集的音頻數(shù)據(jù)同本地?cái)?shù)據(jù)庫(kù)已存在的音頻數(shù)據(jù)進(jìn)行MFCC特性對(duì)比,即能精確地識(shí)別出用戶是否處于排隊(duì)模式。tm、tw、Tc,音頻識(shí)別標(biāo)志,加速度矢量夾角閾值共同組成排隊(duì)模式的識(shí)別密鑰。
排隊(duì)時(shí)間計(jì)算:系統(tǒng)采用二進(jìn)制序列塊算法模型計(jì)算排隊(duì)時(shí)間。以二進(jìn)制0和1分別表示排隊(duì)過(guò)程中短暫的站立和走動(dòng),由于tm最大值為5 s,tw最大值為300 s,所以可以用0-序列塊代表站立,1-序列塊代表走動(dòng),如果用序列塊中二進(jìn)制數(shù)的個(gè)數(shù)代表序列塊的長(zhǎng)度,那么排隊(duì)模式中0-序列塊的長(zhǎng)度最長(zhǎng)為1 200,1-序列塊的長(zhǎng)度最長(zhǎng)為20。如圖3所示,0,1序列組中,[0,a]時(shí)間段的1-序列塊表示走動(dòng)狀態(tài),[a,b]時(shí)間段的0-序列塊表示站立狀態(tài),長(zhǎng)度較小的序列塊(如圖中c,d,e)代表噪聲,將這些噪聲序列塊剔除,就得到對(duì)應(yīng)顧客的排隊(duì)時(shí)間序列組。計(jì)算該序列組的長(zhǎng)度,結(jié)合采樣率,即可計(jì)算出結(jié)賬排隊(duì)時(shí)間。
視圖交互模塊為應(yīng)用提供視圖接口,為系統(tǒng)和用戶提供界面交互服務(wù)。
1.4 服務(wù)器端結(jié)構(gòu)
服務(wù)器端結(jié)構(gòu)如圖4所示。存儲(chǔ)模塊主要維護(hù)著系統(tǒng)數(shù)據(jù)庫(kù)。數(shù)據(jù)處理模塊用來(lái)處理數(shù)據(jù),首先數(shù)據(jù)收發(fā)模塊按照指定的格式解析由客戶端通過(guò)網(wǎng)關(guān)發(fā)送來(lái)的數(shù)據(jù)包,存儲(chǔ)在緩存數(shù)據(jù)庫(kù),使用數(shù)據(jù)挖掘技術(shù)中的聚類算法模型將緩存數(shù)據(jù)庫(kù)中具有相同地理標(biāo)簽、同一個(gè)時(shí)間塊內(nèi)的數(shù)據(jù)包整合為一類。清洗模塊運(yùn)用剔除算法模型清洗掉特定類中無(wú)效的數(shù)據(jù)包。計(jì)算模塊將特定類中有效的數(shù)據(jù)進(jìn)行融合。過(guò)濾模塊啟用下行通信模塊,調(diào)用極光推送遠(yuǎn)程API,將融合結(jié)果值自動(dòng)推送到特定的客戶端。上行通信模塊通過(guò)3G、WiFi網(wǎng)關(guān)或者其他Internet接入方式與客戶端進(jìn)行Web-Socket實(shí)時(shí)通信。
傳感器技術(shù)、通信網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)技術(shù),分別承擔(dān)對(duì)信息的獲取、傳輸和處理應(yīng)用[6]。
剔除算法原理如下文所述。
將某一特定類表示成:
重新回到式(1)進(jìn)行驗(yàn)證,直到滿足S<M,完成清洗操作。
2 關(guān)鍵技術(shù)介紹
2.1 Web-Socket實(shí)時(shí)通信
Web-Socket是基于HTML5規(guī)范的一種新的協(xié)議,實(shí)現(xiàn)了瀏覽器與服務(wù)器的全雙工通信。
在Android客戶端,系統(tǒng)借助開(kāi)源Android網(wǎng)絡(luò)類庫(kù)Autobahn Android[7],建立與Web-Socket服務(wù)器的實(shí)時(shí)通信,具體的通信流程如圖5所示。
Android客戶端將相關(guān)數(shù)據(jù)包實(shí)時(shí)傳送給Web-Socket服務(wù)器,經(jīng)過(guò)數(shù)據(jù)處理模塊處理后通過(guò)WiFi或3G網(wǎng)關(guān)將結(jié)果值發(fā)送到Android客戶端,在地圖服務(wù)界面和曲線趨勢(shì)圖中即時(shí)更新。
2.2 極光推送技術(shù)
推送(push)是一種由服務(wù)器端主動(dòng)向客戶端推動(dòng)消息的技術(shù)[8]。設(shè)計(jì)借助第三方極光推送服務(wù)進(jìn)行估測(cè)時(shí)間的實(shí)時(shí)推送。具體流程如圖6所示。
Jpush SDK以jar的方式集成于Android客戶端,該jar文件為客戶端極光推送初始化、TCP長(zhǎng)連接等機(jī)制提供服務(wù)。當(dāng)過(guò)濾模塊監(jiān)測(cè)到估算時(shí)間滿足用戶需求,推送服務(wù)模塊調(diào)用Jpush遠(yuǎn)程API將要發(fā)送的數(shù)據(jù)通過(guò)JPush服務(wù)器發(fā)送給特定客戶端,Jpush SDK解析定制數(shù)據(jù),并發(fā)送Notification提醒。
2.3 隱私保護(hù)、激勵(lì)策略、安全機(jī)制和數(shù)據(jù)有效性
參與感知系統(tǒng)存在如圖7所示的4種挑戰(zhàn)。隱私泄露會(huì)給用戶帶來(lái)參與風(fēng)險(xiǎn),若參與的用戶過(guò)少,則可用數(shù)據(jù)缺乏,系統(tǒng)估測(cè)結(jié)果的正確性和實(shí)時(shí)性將大打折扣,安全機(jī)制用來(lái)保證數(shù)據(jù)在傳輸、處理和存儲(chǔ)過(guò)程中的安全,所以隱私保護(hù)、激勵(lì)策略和安全機(jī)制是不容忽視的環(huán)節(jié),是后續(xù)研究的重點(diǎn)。數(shù)據(jù)有效性驗(yàn)證為服務(wù)器處理結(jié)果的精確度和可參考性提供保障。
3 原型實(shí)驗(yàn)
實(shí)現(xiàn)基于Android的智慧購(gòu)物系統(tǒng),硬件上需要通信設(shè)施,軟件上需要一個(gè)服務(wù)器用來(lái)處理數(shù)據(jù),若干Android客戶端用來(lái)收集數(shù)據(jù)、預(yù)處理數(shù)據(jù)、上傳數(shù)據(jù)、展示估測(cè)結(jié)果。
實(shí)驗(yàn)小組由10位成員組成,每位成員攜帶一部安裝了智慧購(gòu)物系統(tǒng)的Android智能手機(jī),在一家大型商場(chǎng)進(jìn)行試驗(yàn),6人模擬排隊(duì)結(jié)賬,2人模擬貨物架挑選商品,2人作為查詢用戶,驗(yàn)證系統(tǒng)計(jì)算結(jié)果的準(zhǔn)確性。實(shí)驗(yàn)人員在同一個(gè)時(shí)間塊內(nèi)完成整個(gè)排隊(duì)結(jié)賬過(guò)程。試驗(yàn)選擇在周六的3個(gè)時(shí)間塊內(nèi)的3組實(shí)驗(yàn),總結(jié)見(jiàn)表1。
分析表1可知,由于受噪聲干擾,排隊(duì)時(shí)間越短,誤差越大。
部分界面展示如圖8所示。
圖8(a)為個(gè)人設(shè)置界面。若系統(tǒng)監(jiān)測(cè)到特定時(shí)間塊的排隊(duì)結(jié)賬時(shí)間滿足用戶設(shè)置需求,將發(fā)送Notification提醒,如圖8(b)所示。圖8(c)為排隊(duì)時(shí)間曲線圖,系統(tǒng)提供自當(dāng)日起一周內(nèi)的歷史查詢,以每個(gè)時(shí)間塊的計(jì)算時(shí)間為坐標(biāo)點(diǎn)描圖。圖8(d)為地圖可視化界面,系統(tǒng)采用第三方地圖服務(wù),用戶可以清晰地查看商場(chǎng)的位置(圖中紅色氣泡標(biāo)記),點(diǎn)擊紅色氣泡標(biāo)記,會(huì)以對(duì)話框的方式顯示對(duì)應(yīng)的商場(chǎng)名稱及坐標(biāo),同時(shí)彈出下面的消息框,將實(shí)時(shí)計(jì)算結(jié)果形象地展示給用戶。
4 總結(jié)
本文提出了一種C/S架構(gòu)的基于Android的參與感知式智慧購(gòu)物系統(tǒng),運(yùn)用相關(guān)算法模型,分析客戶端移動(dòng)設(shè)備搜集的感知數(shù)據(jù),進(jìn)行預(yù)估算,服務(wù)器端接收客戶端預(yù)估值,利用數(shù)據(jù)挖掘算法模型處理整合,得出最終結(jié)果值,為用戶提供實(shí)時(shí)查詢和推送服務(wù)。系統(tǒng)收集數(shù)據(jù)僅僅使用智能手機(jī)內(nèi)置傳感器,不需要外部傳感設(shè)備,并且采用參與感知的模式,參與者為普通民眾,所以成本極低,結(jié)構(gòu)簡(jiǎn)單;另一方面,借助于智能手機(jī)越來(lái)越強(qiáng)大的計(jì)算能力,數(shù)據(jù)的預(yù)處理在客戶端完成,參與者僅僅將預(yù)估算結(jié)果上傳到服務(wù)器,緩解了寬帶擁擠,設(shè)計(jì)可以廣泛運(yùn)用在一些排隊(duì)場(chǎng)所,用于進(jìn)行類似的排隊(duì)時(shí)間估算,具有廣闊的應(yīng)用前景。但是,設(shè)計(jì)在激勵(lì)參與者機(jī)制、保護(hù)用戶隱私、客戶端資源優(yōu)化等方面還缺乏有效的措施,需要進(jìn)一步探索。另外系統(tǒng)僅僅局限于Android平臺(tái),改進(jìn)系統(tǒng)架構(gòu),實(shí)現(xiàn)更廣泛的跨平臺(tái)應(yīng)用是后續(xù)研究的又一重點(diǎn)。
參考文獻(xiàn)
[1] 熊英,史殿習(xí),丁博,等.移動(dòng)群體感知技術(shù)研究[J].計(jì)算機(jī)科學(xué),2014,41(4):1-8.
[2] ESTRIN D.Participatory sensing:applications and architecture[Internet Predictions][J].Internet Computing,IEEE,2010,14(1):12-42.
[3] RANA R K,CHOU C T,KANHERE S S,et al.EarPhone:An end-to-end participatory urban noise mapping system[C].IPSN′10.New York,2010:105-116.
[4] DUTTA P,AOKI P M,KUMAR N,et al.Common sense:participatory urban sensing using a network of handheld air quality monitors[C].SenSys′ 09.New York,2009:349-350.
[5] DONG Y F,KANHERE S,CHOU C T,et al.Automatic collection of fuel prices from a network of mobile cameras[C].4th IEEE International Conference.Greece,2008:140-156.
[6] 何欣,宋亞林,安健,等.移動(dòng)感知物聯(lián)網(wǎng)技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2011,28(7):2407-2410,2417.
[7] GOEDDE A.Autobahn Android[EB/OL].(2015-10-25)[2015-11-10].https://github.com/crossbario/autobahn-android/commit.
[8] 王克峰.基于Android的信息推送管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[D].大連:大連理工大學(xué),2012.