《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Android的參與感知式智慧購(gòu)物系統(tǒng)的設(shè)計(jì)
基于Android的參與感知式智慧購(gòu)物系統(tǒng)的設(shè)計(jì)
2016年電子技術(shù)應(yīng)用第9期
周 靜1,周 杰1,2,杜景林1
1.南京信息工程大學(xué) 電子與信息工程學(xué)院,江蘇 南京210044; 2.國(guó)立新瀉大學(xué) 工學(xué)部電氣電子工學(xué)科,日本 新瀉950-2181
摘要: 設(shè)計(jì)提出了一種C/S架構(gòu)的基于Android的參與感知式智慧購(gòu)物系統(tǒng),該系統(tǒng)以感知數(shù)據(jù)為基礎(chǔ),通過(guò)客戶端和服務(wù)器端數(shù)據(jù)處理,并借助于Web-socket技術(shù)和第三方推送服務(wù),將估算的在商場(chǎng)排隊(duì)結(jié)賬的等待時(shí)間以地圖可視化、曲線圖和推送通知的形式實(shí)時(shí)展示給用戶,為用戶制定更加合理的購(gòu)物計(jì)劃提供參考,減少時(shí)間浪費(fèi)。原型實(shí)驗(yàn)表明了該系統(tǒng)的有效性和可行性。
關(guān)鍵詞: 參與感知 Android Web-socket 推送
中圖分類號(hào): TN91;TP391
文獻(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.
Design of intelligent shopping system in the mode of participatory sensing based on Android
Zhou Jing1,Zhou Jie1,2,Du Jinglin1
1.College of Electronic & Information Engineering,Nanjing University of Information Science and Technology, Nanjing 210044,China; 2.Department of Electronic and Electrical Engineering,Niigata University,Niigata 950-2181,Japan
Abstract: The design comes up with a C/S architecture intelligent shopping system by the participatory sensing manner based on Android. The system is based on the sensory data, processing data on the server and client side and showing the estimated waiting time at the mall check-out queue to the user side real-timely in the form of map visualization,graphs and pushing notifications with the aid of web-socket technology and the third party delivery service,providing the reference for users to make more reasonable shopping plan,and reducing the waste time. The experiment of the prototype system shows the effectiveness and feasibility of the system.
Key words : participatory sensing;Android;Web-socket;push

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í)推送功能。

jsj-t1.gif

1.3 客戶端結(jié)構(gòu)

    客戶端軟件結(jié)構(gòu)框架如圖2所示。

jsj-t2.gif

    服務(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í)間。

jsj-t3.gif

    視圖交互模塊為應(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í)通信。

jsj-t4.gif

    傳感器技術(shù)、通信網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)技術(shù),分別承擔(dān)對(duì)信息的獲取、傳輸和處理應(yīng)用[6]。

    剔除算法原理如下文所述。

    將某一特定類表示成:

jsj-gs1-5.gif

    重新回到式(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所示。

jsj-t5.gif

    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所示。

jsj-t6.gif

    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提醒。jsj-t7.gif

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。

jsj-b1.gif

    分析表1可知,由于受噪聲干擾,排隊(duì)時(shí)間越短,誤差越大。

    部分界面展示如圖8所示。

jsj-t8.gif

    圖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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。