《电子技术应用》

基于Android的参与感知式智慧购物系统的设计

2016年电子技术应用第9期 作者:周 静1,周 杰1,2,杜景林1
2016/9/27 14:05:00

周  静1,周  杰1,2,杜景林1

(1.南京信息工程大学 电子与信息工程学院,江苏 南京210044;

2.国立新泻大学 工学部电气电子工学科,日本 新泻950-2181)


    摘  要: 设计提出了一种C/S架构的基于Android参与感知式智慧购物系统,该系统以感知数据为基础,通过客户端和服务器端数据处理,并借助于Web-socket技术和第三方推送服务,将估算的在商场排队结账的等待时间以地图可视化、曲线图和推送通知的形式实时展示给用户,为用户制定更加合理的购物计划提供参考,减少时间浪费。原型实验表明了该系统的有效性和可行性。

    关键词: 参与感知;Android;Web-socket;推送

    中图分类号: TN91;TP391

    文献标识码: A

    DOI:10.16157/j.issn.0258-7998.2016.09.032


    中文引用格式: 周静,周杰,杜景林. 基于Android的参与感知式智慧购物系统的设计[J].电子技术应用,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 引言

    以智能手机为典型代表的移动设备普遍搭载了各种各样的传感器,为人们提供所需要的服务[1]。智能移动设备的强大功能催生了一种以人为主体的感知方式——参与式感知。在进行感知时,由个体或群体使用其所拥有的功能日益强大的移动设备及云端服务器来收集并分析语义信息[2]

    感知应用涉及到各种领域,比如:医疗保健、社会网络应用、交通路线导航等。Ear-Phone[3]、Common Sense Project[4]和Petrol Watch[5]分别利用感知数据提供了环境监测和日常智慧消费服务。

    本设计提出的智慧购物系统估测特定商场特定时间段每位顾客的排队时间,并提供实时查询和推送订阅服务,为用户购物决策提供参考。

1 智慧购物系统的总体架构设计

1.1 核心问题分析

    在参与感知模式中,如果参与者过少,感知数据不足,会严重影响感知结果的准确性。针对此问题,实验小组对商场结账排队模式进行了研究,研究表明,在一个动态时间块内完成排队过程的顾客,他们的等待时间几乎是相同的,这说明,在特定时间块内,即使仅有少数顾客上传数据到服务器,也能得出高准确度的结果值。

1.2 系统总体结构

    系统结构如图1所示,客户端主要功能是搜集数据、对数据进行预处理、上传数据、与用户视图交互等;服务器端的主要功能是接收从客户端发送来的数据,对数据进行清洗、分类、聚合等操作,最终整合出平均排队时间;极光推送服务器为系统提供实时推送功能。

jsj-t1.gif

1.3 客户端结构

    客户端软件结构框架如图2所示。

jsj-t2.gif

    服务控制模块为用户提供登录、配置功能,并且为系统计算结果地图可视化和曲线图展示提供相对应的软件接口。

    感知模块利用传感器技术实现加速度数据、音频数据等的实时采集,保存至本地数据库,为数据处理模块提供数据储备。

    信息收发模块充当着信差的角色,感知主体将数据实时上传到服务器,服务器运用大数据的数据挖掘等算法模型对数据进行处理,然后将处理结果实时发送到客户端。

    推送接收模块接收服务器推送的实时通知,为节约开发成本,提高工作效率,系统引入第三方极光推送服务。

    数据处理模块是整个客户端软件架构的核心,主要包括排队模式识别和排队时间计算。首先将感知数据与本地数据库中的排队模式识别密钥相对比,筛选出符合排队模式特性的数据,采用二进制序列块算法模型,计算结账排队时间,利用网络通信技术上传到服务器。

    排队模式识别:系统主要通过分析加速度和音频数据进行排队模式识别。顾客的运动状态可分为移动和站立两种,以4 Hz的采样率收集加速度样本,每一个样本表示成三维矢量,分析当前样本和邻近样本的矢量夹角,判断当前样本表示的状态。通过大量的实验得出结论:将5°作为夹角阈值判断样本代表的运动状态,其结果精确度最高。即如果系统中样本矢量与邻近矢量的夹角超过5°,则视为移动状态;低于5°,则视为站立状态。假设一位顾客在[Ti,To]时间段内处于排队模式,那么在Ti之前和To之后的一小段时间内处于走或者跑的状态,将这一小段时间记为Tc,在[Ti,To]时间段内顾客的运动模式又分为向前走动和站立等待两种,将顾客每次走动的时间记为tm,等待的时间记为tw。多个商场多次试验表明,tm超过5 s,tw超过300 s的几率很小,所以系统将Tc的最小值设置为5 s。由于顾客在挑选商品时同样会出现上述的运动状态,为避免系统误判,引入音频信号分析,结账时随着顾客靠近收银员,扫码计价器的声音会增强,将麦克风搜集的音频数据同本地数据库已存在的音频数据进行MFCC特性对比,即能精确地识别出用户是否处于排队模式。tm、tw、Tc,音频识别标志,加速度矢量夹角阈值共同组成排队模式的识别密钥。

    排队时间计算:系统采用二进制序列块算法模型计算排队时间。以二进制0和1分别表示排队过程中短暂的站立和走动,由于tm最大值为5 s,tw最大值为300 s,所以可以用0-序列块代表站立,1-序列块代表走动,如果用序列块中二进制数的个数代表序列块的长度,那么排队模式中0-序列块的长度最长为1 200,1-序列块的长度最长为20。如图3所示,0,1序列组中,[0,a]时间段的1-序列块表示走动状态,[a,b]时间段的0-序列块表示站立状态,长度较小的序列块(如图中c,d,e)代表噪声,将这些噪声序列块剔除,就得到对应顾客的排队时间序列组。计算该序列组的长度,结合采样率,即可计算出结账排队时间。

jsj-t3.gif

    视图交互模块为应用提供视图接口,为系统和用户提供界面交互服务。

1.4 服务器端结构

    服务器端结构如图4所示。存储模块主要维护着系统数据库。数据处理模块用来处理数据,首先数据收发模块按照指定的格式解析由客户端通过网关发送来的数据包,存储在缓存数据库,使用数据挖掘技术中的聚类算法模型将缓存数据库中具有相同地理标签、同一个时间块内的数据包整合为一类。清洗模块运用剔除算法模型清洗掉特定类中无效的数据包。计算模块将特定类中有效的数据进行融合。过滤模块启用下行通信模块,调用极光推送远程API,将融合结果值自动推送到特定的客户端。上行通信模块通过3G、WiFi网关或者其他Internet接入方式与客户端进行Web-Socket实时通信。

jsj-t4.gif

    传感器技术、通信网络技术和计算机技术,分别承担对信息的获取、传输和处理应用[6]

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

    将某一特定类表示成:

jsj-gs1-5.gif

    重新回到式(1)进行验证,直到满足S<M,完成清洗操作。

2 关键技术介绍

2.1 Web-Socket实时通信

    Web-Socket是基于HTML5规范的一种新的协议,实现了浏览器与服务器的全双工通信。

    在Android客户端,系统借助开源Android网络类库Autobahn Android[7],建立与Web-Socket服务器的实时通信,具体的通信流程如图5所示。

jsj-t5.gif

    Android客户端将相关数据包实时传送给Web-Socket服务器,经过数据处理模块处理后通过WiFi或3G网关将结果值发送到Android客户端,在地图服务界面和曲线趋势图中即时更新。

2.2 极光推送技术

    推送(push)是一种由服务器端主动向客户端推动消息的技术[8]。设计借助第三方极光推送服务进行估测时间的实时推送。具体流程如图6所示。

jsj-t6.gif

    Jpush SDK以jar的方式集成于Android客户端,该jar文件为客户端极光推送初始化、TCP长连接等机制提供服务。当过滤模块监测到估算时间满足用户需求,推送服务模块调用Jpush远程API将要发送的数据通过JPush服务器发送给特定客户端,Jpush SDK解析定制数据,并发送Notification提醒。jsj-t7.gif

2.3 隐私保护、激励策略、安全机制和数据有效性

    参与感知系统存在如图7所示的4种挑战。隐私泄露会给用户带来参与风险,若参与的用户过少,则可用数据缺乏,系统估测结果的正确性和实时性将大打折扣,安全机制用来保证数据在传输、处理和存储过程中的安全,所以隐私保护、激励策略和安全机制是不容忽视的环节,是后续研究的重点。数据有效性验证为服务器处理结果的精确度和可参考性提供保障。

3 原型实验

    实现基于Android的智慧购物系统,硬件上需要通信设施,软件上需要一个服务器用来处理数据,若干Android客户端用来收集数据、预处理数据、上传数据、展示估测结果。

    实验小组由10位成员组成,每位成员携带一部安装了智慧购物系统的Android智能手机,在一家大型商场进行试验,6人模拟排队结账,2人模拟货物架挑选商品,2人作为查询用户,验证系统计算结果的准确性。实验人员在同一个时间块内完成整个排队结账过程。试验选择在周六的3个时间块内的3组实验,总结见表1。

jsj-b1.gif

    分析表1可知,由于受噪声干扰,排队时间越短,误差越大。

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

jsj-t8.gif

    图8(a)为个人设置界面。若系统监测到特定时间块的排队结账时间满足用户设置需求,将发送Notification提醒,如图8(b)所示。图8(c)为排队时间曲线图,系统提供自当日起一周内的历史查询,以每个时间块的计算时间为坐标点描图。图8(d)为地图可视化界面,系统采用第三方地图服务,用户可以清晰地查看商场的位置(图中红色气泡标记),点击红色气泡标记,会以对话框的方式显示对应的商场名称及坐标,同时弹出下面的消息框,将实时计算结果形象地展示给用户。

4 总结

    本文提出了一种C/S架构的基于Android的参与感知式智慧购物系统,运用相关算法模型,分析客户端移动设备搜集的感知数据,进行预估算,服务器端接收客户端预估值,利用数据挖掘算法模型处理整合,得出最终结果值,为用户提供实时查询和推送服务。系统收集数据仅仅使用智能手机内置传感器,不需要外部传感设备,并且采用参与感知的模式,参与者为普通民众,所以成本极低,结构简单;另一方面,借助于智能手机越来越强大的计算能力,数据的预处理在客户端完成,参与者仅仅将预估算结果上传到服务器,缓解了宽带拥挤,设计可以广泛运用在一些排队场所,用于进行类似的排队时间估算,具有广阔的应用前景。但是,设计在激励参与者机制、保护用户隐私、客户端资源优化等方面还缺乏有效的措施,需要进一步探索。另外系统仅仅局限于Android平台,改进系统架构,实现更广泛的跨平台应用是后续研究的又一重点。

参考文献

[1] 熊英,史殿习,丁博,等.移动群体感知技术研究[J].计算机科学,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] 何欣,宋亚林,安健,等.移动感知物联网技术研究[J].计算机应用研究,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的信息推送管理系统的设计和实现[D].大连:大连理工大学,2012.

继续阅读>>