移动信息系统

PDF
移动信息系统/2019年/文章

研究文章|开放获取

体积 2019年 |文章的ID 1209850 | https://doi.org/10.1155/2019/1209850

达丰塔纳,尼古拉Bicocchi佛朗哥Zambonelli, 骆驼:自适应框架上下文感知中间件来浓缩机器学习能力”,移动信息系统, 卷。2019年, 文章的ID1209850, 15 页面, 2019年 https://doi.org/10.1155/2019/1209850

骆驼:自适应框架上下文感知中间件来浓缩机器学习能力

学术编辑器:劳伦斯·t·杨
收到了 2018年7月10
修改后的 2019年1月14日
接受 2019年1月20日
发表 2019年3月26日

文摘

上下文感知中间件来支持应用程序上下文管理。电流传感器中间件)同时支持硬件和软件提供数据以结构化的形式(如温度、风和烟雾传感器)。然而,最近机器学习的发展铺平了道路获取上下文信息丰富,松散的结构化数据,如音频或视频信号。本文描述了一个框架(骆驼)丰富上下文感知中间件)与机器学习的能力。框架是专注于获取上下文信息从传感器提供松散的结构化数据,而不需要开发人员实现专用的应用程序代码或利用外部库。不过上下文感知中间件)的总体目标是让应用程序更具活力和适应性,提出框架本身可以被编程为动态选择传感器和机器学习算法在语境的基础上。我们用实验和案例研究骆驼框架如何(i)促进代码重用和减少上下文感知应用程序的复杂性通过本机支持机器学习能力和(2)self-adapt使用了上下文允许提高分类精度的同时减少能源消耗在移动平台上。

1。介绍

无处不在的计算和互联网的迅速蔓延的东西(物联网)技术是产生大幅增加可用性的数据在某种程度上代表我们的生活环境1]。越来越多的可用数据,称为上下文数据,利用开发的应用程序能够适应他们的行为根据环境的代表。

2001年,戴伊上下文定义为任何信息,可以用来描述一个实体的情况。一个实体是一个人,的地方,软件,软件服务,或对象,被认为是相关的用户和应用程序之间的交互,包括用户和应用程序本身。因此,环境敏感可以被定义为系统的能力,提供相关的信息和服务对用户使用上下文信息的相关性取决于用户的任务(2]。

从那时起,上下文感知应用程序建立在大多数使用下列方法之一(3]:(i)应用程序收集和处理相关数据以他们自己的方式;(2)应用程序收集和处理上下文数据利用专用的和可重用的外部库;(3)应用程序之上的上下文感知中间件来提供上下文管理功能。

尽管外部库为应用程序提供功能最少的需要编写原始代码,他们仍然需要裁剪和组装为每个应用程序特定的方式。相反,中间件来提供随时可用的方式,基本上下文管理功能,如收购、造型、推理、分布、和可视化1]。因此,第三种方法常常优于其他两个减少开发过程的复杂性。

第一努力开发环境敏感系统专注于利用位置数据,例如,活动徽章系统(4)和板球罗盘(5)后来,上下文感知中间件架构进化实现通用性和它们提供支持更多类别的上下文信息。一些中间件平台,包括上下文工具包(2),盖亚(6),眼镜蛇7],瑞安建业(8),仅举几例,用于构建应用程序开发人员可以派上用场。因此,利用上下文感知中间件允许开发者专注于设计应用程序功能和业务逻辑,而不是管理上下文。

机器学习的最近进展和可用性的增加廉价的计算能力获取上下文从复杂铺平了道路,信息丰富的数据流(比如音频或视频信号9]。作为一个例子,一个摄像头可以用作传感器检测存在的人,位置传感器或车牌阅读器(10]。或者,可以使用麦克风位置传感器或压力传感器通过分析模式在声音11]。

这种方法是可取的,主要有两个原因。前者是一个信息丰富的数据流包含更多的信息比一个更简单的结构化流(比如,一个数字温度计输出一个浮点数)。后者,因为丰富的信息内容,可以构建在软件广泛的传感器从而节约成本相关的专用硬件的发展。因为这些原因,这样的背景来源越来越广泛和高度可取的。然而,由于当前上下文感知中间件)只提供机制访问传感器生产数据的结构化形式(例如,字符串、浮点数和布尔值),开发商仍被迫编写自己的代码或使用第三方库来减少代码重用或增加复杂性。

由于这些原因,在本文中,我们提出一个框架致力于收购上下文明确支持机器学习技术(可以在下载源代码https://bitbucket.org/damiano_fontana/awareness),并描述如何与现成的上下文感知中间件)集成。框架是用于将数据流转换为结构化数据和开发很容易集成通过一组简洁的接口。利用这个框架,应用程序可以获取上下文从传感器提供结构化数据和传感器提供的数据流,同时保持其内部逻辑脱离上下文管理。这个框架被设计在面向服务的可重构部件毫不费力地允许其内部重新配置上下文的变化。框架的主要特点可以概括如下:(我)它可以改善环境敏感的工程应用程序通过引入机器学习功能直接在上下文感知中间件,从而使代码重用和预防的需要使用外部库。(2)它可以自动选择和重新配置传感器和机器学习算法在基于上下文的时尚。实验表明,该特性可以提高分类精度,同时减少能源足迹在移动设备上。

剩下的纸是组织如下。部分2介绍了这背后的动机和挑战的工作。部分3介绍了全球架构的框架,而部分4细节如何配置使用内部自适应状态自动机。部分56进一步细化内部实现的两个案例研究。实验结果发表在部分7。部分8讨论了相关工作,以及部分9总结了纸。

2。动机

连接对象,如智能手机或智能相机配备增加计算,连接,和感应能力正在迅速被部署。这最终将导致不可预见的定义服务,从医疗、交通系统、环境可持续性和参与式治理(12,13]。这个过程的展开,越多的服务和应用程序将需要理解用户上下文动态和开放的方式。大多数ICT设备(我提供的数据流。e、摄像头、麦克风、加速度计和磁力计)变得极其扩散和廉价的方式获取上下文信息。也就是说,应用程序越来越多地需要收集数据流使用可用的传感器和转移到结构化信息(即。上下文),从而使适应。

然而,上下文感知中间件仍然不明确支持收购上下文信息从非结构化数据流。因此,为了达到这个目标,应用程序必须要么依赖第三方机器学习库/模块或原始从头编写的代码。的方法都有负面影响。

在第一种情况下(图1(一)),开发人员直接使用上下文感知中间件处理结构化数据(例如, )。非结构化数据流(例如, ),相反,通过专用模块路由,本身成为一个软件传感器产生结构化信息。然而,分离机器学习从其他上下文管理系统模块意味着无法调整其内部功能基于上下文。事实上,它是不可能的动态选择传感器,分类器,或者在运行时修改最终的参数。缺乏基于上下文的适应性对模式识别在很多方面造成负面影响。(我)的结合使用不同的传感器和分类算法通常需要有效地认识现实世界的情况。作为一个例子,crowd-sensing(即。,a form of data collection distributed among a number of different mobile users) calls for mechanisms for dynamic selection of sensors and classifiers [14]。(2)几个分类问题在运行时需要修改参数。例如,一些人类行为识别系统不同的人群使用不同的参数(例如,男性、女性、年轻和年长的)(15]。(3)分类精度是类的数量成反比。一个常见的问题在多传感器、多通道系统的复杂性训练阶段。不同数据源饲料单一分类器能够管理大量的功能。框架允许程序员开发特定的分类器和只在需要时(即激活它们。一旦确定了合适的情况下)是可取的(16]。

在第二种情况下(图1 (b)),相反,开发人员在应用程序中直接实现机器学习代码。尽管改进简单的总体体系结构(即。,one component can be removed), this approach lacks the software engineering perspective. In fact, (i) instead of having a collection of well-organised and reusable software components, embedding code within applications reduces its reusability. Furthermore, (ii) this approach cannot fully rely on the underlying middleware. That is, typical features providing middlewares such as context modelling and reasoning must be implemented within the application itself, thus increasing development complexity.

由于两种场景中出现的局限性,我们提出一种模块化、可重构机器学习框架允许完全融入现有的中间件)(图1 (c))。它是基于面向服务和可动态重新配置的组件(13,17)允许根据上下文选择和重新配置组件。框架是建立在以下要求。

2.1。软件工程

提供抽象访问传感器和流水线分类器允许框架脱钩上下文管理应用程序逻辑时还必须分析非结构化的传感器数据。此外,组织周围的框架可重构模块化组件导致的想法并允许软件生态系统的构成。可重构部件也允许快速原型的上下文感知应用程序。事实上,开发人员可以快速部署组件在运行时(甚至)已经包含在框架或开发原创的,如果必要的。

2.2。可扩展性

框架在几个方面是可扩展的,而不需要重新启动。事实上,它可以部署在运行时重新配置和删除组件。组件可以传感器、分类器或模块一起委托给融合不同的信息来源。通过这种方式,应用程序可以丰富随着时间的额外功能。

2.3。自适应

基于机器学习的分类器算法识别物品或事件的准确性是经常与计算复杂性有关。给定一个特定的分类问题,该框架可以被程序使用特定的传感器和组合分类器根据上下文。作为一个例子,生活记录移动应用程序识别车辆使用的用户提供不同的方法(例如,以gps、基于重力感应和microphone-based)。能源设备上运行的应用程序可以使用骆驼框架来动态选择最合适的剩余能量和分类精度之间的权衡。

3所示。体系结构

本节详细的内部架构骆驼节中描述的框架的需求2。它的目标是提供一个轻量级的、通用软件层获取结构形式的语境等非结构化数据流视频或音频信号。数据流分类(即。,transformed into structured data) and provided to a middleware providing context management to applications.

处理软件工程可扩展性需求,开发使用OSGi。OSGi技术是一组定义动态组件的Java语言规范。这些规范使一个发展模式,不同的可重用的组件组成的应用程序(动态)。OSGi组件可以隐藏他们的内部实现,同时通过沟通服务,对象之间共享组件。此外,骆驼已分层的方式组织,关注点分离原则。事实上,围绕三层体系结构,即传感器,分类器,意识层(图2)。(即每一层可以托管多个模块。,OSGi components) connected with each other via a dynamic network of queues. Data traverse the whole architecture by means of in-memory queues, enabling decoupling and many-to-many asynchronous communications. On top of these three layers, there are middlewares providing context management (i.e., modelling, reasoning, and distribution) to applications.

处理自适应要求,三层被监控的控制层,一个非功能层负责推动内部重新配置需要。每次检测到环境变化,这一层负责验证如果主动传感器和分类器正确映射相应的现状和重新配置系统。

3.1。传感器层

模块部署在该层定义哪些传感器可能会激活和用于收集数据。这些模块(即。,drivers for actual sensors) hide the complexity and heterogeneity of the hardware and software underneath the framework.

他们执行双重功能:(i)检索数据从实际传感器利用他们的特定的api和(2)预处理方面的评估有效性和正常化。根据分类提出了(3),模块部署在这一层可以管理物理和虚拟传感器。前者指硬件传感器(例如,摄像头,麦克风,和加速度计),而后者代表软件服务。正如上面提到的,模块可以配置在运行时根据上下文。例如,该框架可以降低帧率或调整图像的相机来节约能源。

3.2。分类层

模块部署在该层定义为任何特定的应用程序可用的分类功能。这些模块使用来自传感器的数据流层,将它们转化为结构化的信息。最常见的学习技术(如Naїve贝叶斯,贝叶斯网络,隐马尔科夫模型、神经网络和支持向量机)等已经被集成库嵌入Weka [18],OpenCV [19],jMir [20.在一个OSGi组件。

开发人员需要部署正确的组件(例如,Weka组件),选择所需的分类算法,并将其附加到特定的传感器或一组。例如,模块能够识别人类活动从加速度数据可能部署在这一层。为了试验,我们已经实现了用户活动划分模块,位置,速度,和车辆使用Android传感器的基础上(21,22]。然而,考虑到大量的现成的算法可用库包括,大多数程序员可以轻松地开发所需的模块。

3.3。感知层

模块部署在这一层使用结构化数据(例如,类ification labels) coming from the classification layer and feed context-aware middleware with context. It is not mandatory to deploy modules in this layer in which applications might need only one sensor and one classifier. The main function of this layer is to provide a global representation of the current context by implementing data fusion techniques. These modules receive labels, eventually conflicting with each other, coming from multiple classification modules and apply algorithms to achieve higher semantical levels, remove duplicates, and spot eventual inconsistencies. Data fusion techniques embeddable in this layer such as logic programming, spatial and temporal logic, ontologies, and common-sense knowledge have been surveyed in [23]。

3.4。控制层

启用自适应,上下文是美联储外部中间件)和内部控制层。这一层为框架提供了自我监控和自身重构能力。给定一个特定的上下文和一组规则,该组件加载,卸载,重新配置,改接组件部署在所有其他层。

组件允许开发人员定义的动态选择最合适的模块在每个特定上下文中使用。这不是可行的,事实上,处理大量的场景单一,静态架构。例如,可以卸载所需传感器和分类器分类所使用的车辆当用户位于室内。或者,它可以取代和替代的分类器,更轻量级的,只要它是必要的。

重新配置组件,相反,允许框架最终改变运行参数模块。例如,传感器的采样频率或分类的准确性可以在运行时修改符合可用的计算资源。尽管这个特性不可能大大影响分类精度,减少能源消耗的是有用的。

接下来的小节将详细介绍如何实际上内部重组程序。

4所示。基于上下文的重新配置

系统能够改变他们的内部运作必须决定根据变量的数量。这些决定可能在不同的基础和可能的输出不同的推理过程。逻辑、有限状态自动机和机器学习已经使用(24]。在这项工作中,我们选择了有限状态机(FSM)由于其通用性。许多现实问题,事实上,可以使用这种方法进行描述。每个FSM代表一组可能的上下文和描述转换和行动。此外,FSM human-understandable。机器学习技术,尽管他们的欢迎,主要生产不能容易被人类理解的数值模型。FSM,相反,允许驱动重新配置使用清晰的图,可以轻松地监控和更新人类的运营商。此外,计算效率的FSM允许实时应用程序性能约束的平台上运行。

FSM定义的状态和转换。每个州(即。,node) in the FSM corresponds to a specific context and defines which sensors and classifiers have to be used. It is associated with a set of active modules and a set of possible transitions. Each time the output of an active classifier changes, a reconfiguration is applied. In this way, the overall problem of context recognition is modularised. Each state embeds the knowledge acquired by the previous states and activates more specific classifiers to collect further details. Whenever a transition event occurs (i.e., a specific context is detected), a transition is triggered. More specifically, transitions might imply (i) the reconfiguration of active components, (ii) the deployment of additional components, and (iii) the displacement of active components. Developers only need to define the structure of their scheme by selecting the needed modules and define eventual reconfiguration strategies (i.e., reconfiguration events associated to context states).

为了更好的细节如何使用这个框架,我们将讨论FSM驾驶智能监控摄像头能够自动检测人群(即。的人数,超过某一阈值),如图3。在右边,传感器和分类器,活跃的和不活跃的,州的A, B, C表示。每个分类器的输出必须是标准化的具体形式(例如,JSON和XML),以下称为分类标签。每个标签代表一个上下文变化和外部组件(即是美联储。控制层、中间件)和。字的边缘代表活跃的分类器触发转换产生的标签。

每个状态是激活标签生产的其他州。在这种情况下,一个状态用于检测的存在人们利用语音分类器,而状态B激活一个摄像头和一个图像分类器针对人类的身体。的人数超过一定的阈值时,产生一个标签和一个过渡状态C触发。最后,状态C使用相同的传感器和分类器状态B和代表一个国家的人群实际上是礼物。它允许一个过渡状态B一个状态每当的人数减少。

值得注意的是,这种编程抽象一般不依赖于特定的传感器或分类器。这使得该框架多才多艺的和符合需求中指定的部分2。最后,实际的Java代码描述重构自动机和驾驶的可以自动生成利用模型驱动的工程技术。可以定义元模型描述FSM和用于生成实际的Java代码从系统的图形表示。

5。实现的见解

从工程角度来看,骆驼是技术发展水平上实现Java技术(图2)。OSGi提供的重构机制,一个著名的Java框架提供面向服务的功能。OSGi规范定义了一个基于java的服务动态部署服务平台网络环境。主要能力导致其日益增长的影响力都支持动态服务部署生命周期和远程管理的顺从。

在OSGi之上,我们使用了一个iPOJO层。iPOJO是一个基于容器的框架处理的生命周期普通旧式Java对象(pojo)和支持管理之类的设备动态依赖关系处理、重新配置组件,组件工厂,和自省。此外,iPOJO容器容易扩展,允许可插入处理程序,通常为非功能方面的管理。每个骆驼模块实际上是一个iPOJO组件。为程序员提供现成的机器学习算法,我们挤进iPOJO组件驰名数据处理库OpenCV等图像和视频,音频jMir, Weka通用任务。

层之间的通信处理上演,even-driven Apache骆驼图书馆提供的方法。这个库提供了异步处理数据流组件(即。SEDA)和内存与最低硬件要求的沟通。

本节的其余部分描述的是模块的实现层。

5.1。传感器层

清单1显示了一个示例的iPOJO代表一个传感器组件。该组件可以从相机获取帧和寄给分类层。更多的细节,与注释的方法@Validate当组件部署。也就是说,由这种方法启动线程从相机获取图像传感器。与注释的方法@Invalidate被称为组件取代时,由该方法处理线程。Java装饰为组件提供一个生命周期执行环境的完全解耦。此外,值得注意的是,小框架引入的开销:只有几行代码不相关的应用程序的内部逻辑但参考框架本身的功能。

(1) @Validate
(2) 公共空间start ()抛出异常{
(3) 线程t=线程();
(4) t.start ();
(5) }
(6) @Invalidate
(7) 公共空间stop () {
(8) 停止=真正的;
(9) }
(10) 公共空间run () {
(11) FrameGrabber打捞工具=;
(12) 试一试{
(13) ProducerTemplate生产商=上下文。getContext ()。createProducerTemplate ();
(14) / /图像通过OpenCV API
(15) 强夺者= FrameGrabber。createDefault (0);
(16) 夺人眼球。开始();
(17) IplImage grabbedImage =打捞工具。抓住();
(18) (停止= =& & (grabbedImage = grabber.grab ()) ! = null) {
(19) / /…创建imageData对象
(20) / /发送数据到“图像”队列
(21) 生产商。年代endBody (imageSedaQueue, imageData);
(22) }
(23) 夺人眼球。停止();
(24) }(异常e) {
(25) / /…异常处理
(26) }
(27) }
5.2。分类器层

清单2显示了一个iPOJO组件的代码检测人使用OpenCV API(嵌入在骆驼)。的过程()类实现的方法处理器接口(即。,in this exampleHumanBodyProcessor)每次新项目可以在输入队列(例如,seda:形象)。当这种情况发生时,消费和图像处理。在这种情况下,我们利用OpenCV检测机构的数量出现在现场。分类的结果然后发送到输出队列(例如,seda:标签)喂意识层。HumanBodyProcessor实际上不需要知道传感器产生图像。事实上,它们可能是由任何组件能够获得图像从一个视频源(例如,智能手机相机,闭路电视摄像头,摄像头)和存储他们seda:形象队列中。

(1) 公开课HumanBodyProcessor实现了处理器{
(2) 私人CvHaarClassifierCascade分类器=CvHaarClassifierCascade (cvLoad (“body.xml”));
(3) 公共空间过程(交换交换)抛出异常{
(4) / /得到图像原始数据
(5) ImageData ImageData =交换。捷信()。getBody (ImageData。);
(6) / /…rgb灰色转换
(7) / /通过OpenCV API分类的身体形象
(8) CvSeq身体= cvHaarDetectObjects (grayImage、分类、存储、1.1、10);
(9) int总=身体();
(10) LabelData LabelData =LabelData(“身体”,总);
(11) / /分类标签发送到意识层
(12) 生产商。年代endBody (“seda:label”, labelData);
(13) }
(14) }
5.3。控制组件

清单3描述了相关的控制组件的代码用于驱动重新配置需要的FSM(图3)。的配置()的方法控制器在Java类转换自动机的状态和转换。行动,当触发状态转换时,中定义StateMachine类。

(1) @ component
(2) = RoutesBuilder @Provides(规范。)
(3) 公开课控制器扩展RouteBuilder {
(4)
(5) 公共空间配置()抛出异常{
(6) / /状态自动机的定义
(7) StateMachineBuilder < StateMachine、州、字符串、上下文> bld = StateMachineBuilderImpl。newStateMachineBuilder (StateMachine。,状态。,字符串。、上下文。);
(8) / /定义的状态和状态转换
(9) 梁式引线掐。externalTransition() .从(该)。(State.B)。(“人”);
(10) 梁式引线掐。externalTransition() .从(State.B)。(State.C)。(“人群”);
(11) 梁式引线掐。externalTransition() .从(State.B)。(该)。(“No_Crowd”);
(12) 梁式引线掐。externalTransition() .从(State.C)。(该)。(“No_Crowd”);
(13) stateMachine =建设者。新StateMachine(状态。Start);
(14) stateMachine。年代etInstanceFactory (instanceFactory);
(15) 从(labelQueue)。过程(LabelProcessor ());
(16) }
(17)
(18) }
(19) 公开课StateMachine扩展AbstractStateMachine < StateMachine、州、字符串、上下文> {
(20) 私人InstanceFactory InstanceFactory;
(21) 公共空间transitFromAToBOnPeople (ControllerState, ControllerState字符串事件,ControllerContext ctx)抛出异常{
(22) / /摧毁音频传感器和语音分类器
(23) instanceFactory。disposeInstance(“传感器。音频”、“音频”);
(24) instanceFactory。disposeInstance(“分类器。声音”、“voice_classifie”);
(25) / /创建相机传感器和人体分类器
(26) instanceFactory。调用createInstance(“传感器。CameraSensor”、“CameraSensor”);
(27) instanceFactory。调用createInstance(“分类器。HumanBodyDetector”、“HumanBodyDetector”);
(28) }
(30) }

该方法transitFromAToBOnPeople ()类的StateMachine显示了重新配置进行状态转换过程中引发的标签“人”。在这个例子中,该框架api用于(i)关闭音频传感器和语音分类器和(2)激活视频传感器和人体分类器。看看这段代码,值得注意的是如何重新配置已解耦的实际代码的应用程序本身。重新配置策略一般可用于任何应用程序独立于其内部逻辑。

这种方法还支持开发过程由一个社区。框架,事实上,允许重新配置策略编译直接从实际的状态图。使用自动代码生成技术,有可能拖放传感器和分类器在一个图形应用程序,连接他们特定的国家,并让软件编写相应的Java代码。如果最终可用模块的数量变得显著,发展的许多不同应用程序的上下文中收集部分可能会大大简化。

6。案例研究

为了证明我们的方法,我们描述了两个上下文感知应用程序可以实现利用骆驼。以下应用程序中实现特定的:(我)智能手机应用程序能够收集数据对用户如她的生命活动,地点,车辆使用,并最终出现的人说话(2)无人驾驶侦察机应用程序能够发现人们在特定领域的

系统收集数据的目标,进行分类,并提供背景通过上下文感知中间件应用程序。正如我们之前所讨论的,在部分2,开发人员可以实现一切从头开始或利用外部库。第一个选项需要一个重要的编码奋进号,而第二个不允许利用典型的中间件)提供的上下文管理功能。相反,开发人员可以保持应用程序的更简单的通过将上下文获取和管理委托给一个中间件集成了骆驼。中间件管理所需的传感器和分类器(上下文驱动的方式)来获取上下文,同时提供应用程序上下文管理功能。通过这种方式,两个应用程序将变得非常简单:他们可以接收来自中间件和采取相应的上下文通过储蓄的数据(数据记录应用程序)或驾驶无人机(无人机应用程序)。因此,最相关的一部分,这些应用程序将使用的自动机骆驼内部重新配置需要。图4显示了他们两人。

4(一)描述了自动机用于生活记录的应用程序。代表州后,从A到F,可以理解上下文的逻辑收购的过程。首先,系统会尝试检测当前位置( )。然后,如果用户去户外,用户活动和速度评估使用额外的传感器( )。而用户保持外,如果她的速度超过指定阈值,( )最终被激活检测车辆。否则,在低速的情况下,用户活动进行监视。在运行的情况下,( )激活识别类型的位置(即。、街道或公园)。另外,如果用户回到室内,系统会尝试检测如果用户在家里,在办公室,或者在其他地方( )。在其他地方,( )被激活的歧视在酒吧、餐馆和其他地方。值得注意的是我们的方法允许基于上下文的应用程序扩展,最终随着时间的推移更准确。如果事实,新国家,专门研究现有的,随着时间的推移可以添加。

4 (b)相反,驱动无人驾驶侦察机的重新配置。( )尽快激活无人机起飞和检测领域的利益。一旦发现一个感兴趣的领域,( )被激活,最后人们发现。( ),激活只有当人们发现在一个感兴趣的领域,分析音频信号来检测对话框。最后,( )改进( )通过推断一般的话题。之前,实际的机制用于检测感兴趣的领域,人,和对话框可以改变毫不费力地在不同的应用程序版本,甚至在运行时。

值得注意的是,这两个自动机可以定义的Java代码或图形表示允许自动代码生成。这种方法允许应用程序代码几乎完全脱离机制用于收集上下文。如果事实,一个可以完全改变应用程序(例如,用户界面,功能,以及存储系统)在不改变传感器、分类器,FSM使用。或者,可以改变传感器,分类器,自动机无需修改实际的应用程序代码。上下文收集完全委托给骆驼和应用程序只需要定义行为关联到当前上下文。这个功能可能会明智地加快普及应用程序的原型。

7所示。一个案例研究实验评估

使用一个案例研究中,我们评估(i)骆驼内部重新配置需要如何影响分类精度和能源消耗和(2)骆驼的行为方式方面的性能和可伸缩性(使用数据集可以在下载http://www.agentgroup.unimore.it/Bicocchi/files/dataset01.tar.gz)。

精度和能耗评价了实施部分中描述的生活记录的应用程序6安卓智能手机。为了训练分类器使用,我们收集和注释地面实况数据与麻省理工学院开发的新建铁路实用程序(25]。性能和可伸缩性测试桌面和移动平台。

7.1。准确性和能源消耗

如上介绍,我们想展示的好处骆驼生活的框架通过比较两个不同版本的应用程序。前者利用重构功能提供的骆驼,后者使用更传统的方法将所有所需的传感器和分类器总是激活。

我们定义为背景 每个字段的元组是有限的一组特定的值。特别是 , , , 目标应用程序的日志,每一分钟,一个元组年代描述用户的上下文SQLite表。

每个字段的元组是由一个特定的分类器:(i)活动分类器使用加速度计和麦克风的数据使用一个区别的核心基于支持向量机与64维;(2)分类器使用滑动窗口的位置15秒;(3)通过计算分类器识别速度快和慢运动的平均速度在一个滑动窗口10 GPS样本;(iv)车辆分类器使用麦克风收集的数据在44.100赫兹,16位,mono,分成4秒的窗户,这是基于支持向量机和两个特征向量计算每个窗口:13个维度Mel-Frequency Cepstral系数(MFCC)特征向量和一个10维线性预测系数的特征向量。我们4个小时的记录跟踪传感器从5个不同的用户。结果10倍交叉验证。

考虑到车辆分类器,联系在一起 ,是最活跃在我们的数据集的总活动时间和数量的开关转换,我们称它为解释结果(数据吗5(一个)5 (b))。分类利用内部重新配置需要实现在大多数的情况下(即。,train, car, and bus) a 10% improvement in precision while recall did not vary significantly. The improvement derives from the fact that automata-driven reconfigurations avoid errors related to classifiers working without context (e.g., a vehicle classifier working while users are walking in a busy street).

然而,分类精度的提高已经配上大量减少能源消耗(表1)。对于每一个自动机的状态,我们报道传感器活性和总执行时间的百分比是活跃的状态。总的来说,GPS活跃时间的46%左右,麦克风54%,加速度计6%。这些数据表明,骆驼框架允许降低整体能耗的50%左右。我们测量了电池寿命相同的智能手机运行两个版本的应用程序,并获得一个实际的改进(即40%左右。10 h不间断;14 h使用骆驼)。


状态 主动传感器 时间(%)

全球定位系统(GPS) 0.03
全球定位系统(GPS) 0.24
GPS,加速度计 0.06
麦克风 0.54
全球定位系统(GPS) 0.03
全球定位系统(GPS) 0.10

注:都是主动传感器和显示时间的百分比状态实际上是积极的。
7.2。性能和可伸缩性

骆驼的固有的便携式性质框架允许它运行在桌面和移动平台。然而,考虑到伟大的性能差异,两个平台之间的频繁出现,这些结果可能更相关的移动域。

框架是建立在OSGi组件通过内存交换消息队列。虽然CPU负载的频率低,使用的队列组件之间的消息传递可能随时间增长和减少由于不同的相关组件的处理速度。如果队列达到最大或最小容量,组件之间的消息交换的数量减少。正因为如此,两个相关的度量标准测量框架的性能和可伸缩性(i)其内存使用量,(2)其吞吐量(即。,平均每秒处理的消息数量)在桌面和移动架构。已经进行了两个实验通过增加并行组件的数量在分类器层处理的消息没有有效载荷(尽快注射)没有进一步的计算。由于不同的硬件限制,我们注入每个活动分类器500和10000桌面和移动平台上的消息,分别。结果平均超过10轮(数据5 (c)5 (d))。

5 (c):框架的吞吐量。在这个实验中,我们逐步增加的数量分类层中的组件,并测量了平均每秒处理的消息数量。图表显示了平均吞吐量降低线性与越来越多的组件消耗数据流。这个结果意味着框架应用程序并不意味着重大的开销。事实上,每个分类器的吞吐量降低线性分类器的数量。此外,即使在最坏的情况下并行分类器(80),大多数应用程序的平均吞吐量仍然是可以接受的(约400味精/秒)。

5 (d):内存使用。特别是,图表显示了堆内存使用线性增长处理的消息数量在桌面和移动架构。之前,一个线性相关性意味着一个可扩展的框架。

7.3。讨论

虽然这个案例研究得出结论不允许,可以应用到所有可能的应用程序,它是足够的制定一些一般性的原则。

首先,框架显示其有效性获取上下文从视频和音频信号。生活记录应用程序开发使用的骆驼在不同的情况下正常工作。事实上,应用程序能够描述一天的部分用户住在一个有意义的方式(即。,精度和召回约80%)。也值得注意,机器学习能力与中间件集成,生成的应用程序代码非常紧凑。应用程序简单地收到中间件字符串代表当前上下文并保存在关系数据库中。

其次,案例研究显示积极重构策略如何影响精度和功耗。FSM,事实上,允许开发者将环境的知识状态。每个州的细化。每个州封装特定情况,允许进一步细化或回到更一般的情况。这种方法允许只在需要时使用传感器和减少误分类错误。案例研究表明,例如,GPS传感器(高耗能)可以有效地替换为一个麦克风超过一半的执行时间。值得注意的FSM如何允许快速原型和测试。在这样一个模型,一个社区的开发人员可能会建立大型集合不同的FSM处理现实世界的浩瀚。这些模型还可以方便地相互连接和集成将FSM的简单性。

第三,该框架显示其轻量级的性质和可伸缩性以令人信服的方式。事实上,平均Android智能手机配备了大约10硬件传感器。我们可以想象应用程序使用额外的10个软件传感器,每一个抽样10赫兹。我们还可以制定使进入催眠状态,每个传感器连接到一个合适的分类器。即使在这种情况下,与20个传感器和20个分类器,我们将需要一个吞吐量低于100条/秒。我们所进行的分析表明,与40个组件,框架能够处理,移动平台,近400 /秒的消息。也可以观察到类似的结论,内存使用量。设想应用程序应该使用400条/秒左右,因此需要50 MB的RAM。

骆驼框架依赖(即建立设计原则。,年代eparation of concerns, service-oriented architectures), providing developers with a tool for acquiring and managing context inside available middlewares. Its design and development are rooted in both software engineering and context-aware pervasive computing. Related work in both areas is discussed below.

从软件工程的角度来看,大量的中间件)和框架设计为从应用程序代码解耦上下文管理。然而,我们所知,没有一个支持可重构机器学习能力与可编程API。

在[26),一个框架能够管理相关的上下文管理需求的变化,而不影响应用程序提出了。它依赖于一个RDF模型使开发人员能够定义自己的模块。开发人员必须遵守提供的模型和语义,用于管理上下文数据和相应的管理操作。然而,使用基于本体的推理框架使小的可伸缩时其性能大大降低管理上下文数量的增加。

在[27),作者提出一个平台提供上下文应用程序基于分层的方法使用第三方模块从上下文数据来推断知识。平台使用一个预定义的本体,允许开发人员提供他们的推理模块。背景分布依赖于订阅特定的上下文数据对这些数据变得可用的时间和通知。然而,提供的本体框架意味着特定的语义,从而限制数量的目标应用程序场景。

在[24),从应用程序代码解耦上下文管理的框架。其目的是减少资源有限的设备上运行的应用程序的开销,同时仍然提供支持环境敏感和应用程序适应机制。框架结构背景下利用原子功能。这些函数可以由第三方开发者使用基于xml的编程语言。尽管这种方法与我们分享一些基本的基础方法,它不提供从传感器和后续分类器收集环境的机制。

研究人员开发环境敏感的应用程序原型传感系统能获得详细的上下文信息从数据流9- - - - - -11]。最著名的作品一直在调查(16]。然而,大多数这些研究缺乏普遍性和地址特定分类问题利用一组预定义的传感器。

其中的一些灵活的框架,实现资源高效和健壮的在一个大的情况。例如,陆et al。28建议使用各种传感器(即处理管道。,全球定位系统(GPS),microphone, and accelerometer) to show how processing pipelines and dynamic reconfiguration could be used in continuous sensing. However, the framework does not focus on a generic approach enabling runtime reconfigurations. It is tied to the presented case study and cannot be programmed in other ways. Thus, it does not allow the framework to be reconfigurable and programmable in a general way. On the contrary, Cimino et al.[29日)描述一个框架基于本体异构的用户行为。然而,它不允许上下文驱动的重新配置传感器和分类器。

在[30.- - - - - -32),提出优化传感过程节能。特别是,纳(30.]利用推理技术学习之间的关联上下文属性优化的内部逻辑框架。然而,与之前的研究一样,它缺乏普遍性和只关注能耗优化的连续检测。

这项研究在33]表明,我们的方法模拟人类活动和环境有限状态自动机可以成功地描述许多真实世界的场景和驱动器内部重新配置需要。它描述了一种编程方法基于高层普遍系统模型的人类活动,所谓位于流,发现任务信息嵌入在物理环境。

在[34),作者提出了一个基于uml的,事件驱动模型基于两个视图的上下文感知服务:前者代表上下文数据和事件引发的上下文的变化。后者代表动态等环境敏感服务不同的场景,它们之间的转换和服务行为对应于一个场景,可以发起响应过渡。虽然模型驱动和基于有限状态机,适应提供了对于一个给定的场景,而不是一个事件。这些状态机是预定义的,不能动态地定制对于一个给定的应用程序。

最后,所有先前的研究并不关注宽松的发展普遍应用而骆驼有一个FSM嵌入式编程抽象。我们所知,我们的自我意识和可重构框架代表一个第一次尝试设计一个可编程的感知模块能够满足开发人员的需求和具体要求。由于其一般自我意识架构,它能够实现和充分利用所有的策略和优化提出了以前的研究,它能够处理更复杂的场景,需要灵活性和适应性是基础的基础。

9。结论

在本文中,我们提出一个框架能够丰富通用上下文感知中间件)与机器学习的能力。它能够收集数据从许多不同的来源和分类他们使用各种算法只假设下被封装在OSGi容器/ iPOJO。框架是高度动态的和可重构,允许开发人员激活和配置传感器和基于上下文的方式分类器。其内部重新配置需要可编程和基于有限状态机的一个简单的编程接口。实验评估了它的实用性(我)使代码重用和减少复杂性的上下文感知应用程序;(2)自适应使用了上下文,允许提高分类精度,同时减少能耗受限平台上。

数据可用性

使用的数据来支持本研究的发现已经存入以下库(https://bitbucket.org/damiano_fontana/awareness)。

的利益冲突

作者宣称没有利益冲突。

确认

这项工作是支持的ASCENS项目(欧盟FP7-FET,合同编号。257414)。

引用

  1. a . r .汗,m·奥斯曼f .夏和a . n .汗,“环境敏感移动云计算及其挑战,”IEEE云计算,卷2,不。3,42-49,2015页。视图:出版商的网站|谷歌学术搜索
  2. a·k·戴伊“理解和使用上下文,”个人和无处不在的计算,5卷,不。1,4 - 7,2001页。视图:出版商的网站|谷歌学术搜索
  3. 李x m·埃克特j·f·马丁内斯·g·卢比奥,“环境意识到中间件架构:调查和挑战,”传感器,15卷,不。8,20570 - 20607年,2015页。视图:出版商的网站|谷歌学术搜索
  4. r ., a .料斗、诉法尔考和j·吉本斯,”活动徽章定位系统”,ACM交易信息系统,10卷,不。1,第102 - 91页,1992。视图:出版商的网站|谷歌学术搜索
  5. n . b .标a . k .最后,h··s .出纳员,“板球指南针对于上下文感知的移动应用程序,”学报》第七届一年一度的移动计算和网络国际会议(MobiCom ' 01)ACM,页1 - 14,纽约,纽约,美国,2001年7月。视图:出版商的网站|谷歌学术搜索
  6. 罗马和r·h·m·坎贝尔,“盖亚:使活跃的空间,”学报》第九届ACM SIGOPS欧洲研讨会研讨会:超越个人电脑:操作系统(电子战9)的新挑战ACM,页229 - 234年,2000年9月纽约,纽约,美国。视图:出版商的网站|谷歌学术搜索
  7. t·h . Chen Finin, a . Anupam Joshi l . Kagal f . Perich和d Dipanjan Chakraborty,“智能代理满足语义网在智能空间中,“IEEE网络计算,8卷,不。6,69 - 79年,2004页。视图:出版商的网站|谷歌学术搜索
  8. t·顾h . k .箱型雪撬,d .问:张先生,“面向服务的中间件构建环境敏感服务”网络和计算机应用》杂志上,28卷,不。1队,2005页。视图:出版商的网站|谷歌学术搜索
  9. o . Yurur c·h·刘,z, v . c . m .梁w·莫雷诺和k . k .梁”移动传感环境敏感:一项调查和未来方向,”IEEE通信调查和教程,18卷,不。1,第93 - 68页,2016。视图:出版商的网站|谷歌学术搜索
  10. c . Nuesch e·鲁斯、g . Pagenstert和a . Mundermann”测量关节运动学的跑步机上行走和奔跑:对比基于惯性传感器系统和基于成像系统中,“生物力学杂志卷,57 32-37,2017页。视图:出版商的网站|谷歌学术搜索
  11. m . Sharmin a . Raij d Epstien et al .,“时序传感器数据的可视化通知即时适应压力的干预措施的设计,”《2015年ACM国际联合会议上普遍的和无处不在的计算ACM,页505 - 516年,2015年9月日本大阪。视图:谷歌学术搜索
  12. 诉Saritha p v .克里希纳,s . Sivanesan“无处不在的环境意识到服务”软计算在传感器网络中的应用美国佛罗里达州波卡拉顿,CRC新闻,2016年。视图:谷歌学术搜索
  13. c·佩雷拉,a . Zaslavsky, p . Christen, d . Georgakopoulos”上下文意识到物联网的计算:一项调查,“IEEE通信调查和教程,16卷,不。1,第454 - 414页,2014。视图:出版商的网站|谷歌学术搜索
  14. c·d·l . Wang, y Wang Chen x汉,和a . M 'hamed“稀疏已被称作移动群体感知:挑战和机遇,”IEEE通讯杂志,54卷,不。7,161 - 167年,2016页。视图:出版商的网站|谷歌学术搜索
  15. y他和李y,“身体活动识别利用智能手机的内置运动传感器,”国际期刊的分布式传感器网络,9卷,不。4、文章ID 481580, 2013。视图:出版商的网站|谷歌学术搜索
  16. w z汗,y, m . y . Aalsalem问:艾尔沙德,“手机传感系统:一项调查,”IEEE通信调查和教程,15卷,不。1,第427 - 402页,2013。视图:出版商的网站|谷歌学术搜索
  17. j .你们,美国多布森和美国McKeever”情况识别在普适计算技术:一个评论,”普及和移动计算,8卷,不。1,33 - 66年,2012页。视图:出版商的网站|谷歌学术搜索
  18. m·霍尔·e·弗兰克,g .福尔摩斯b . Pfahringer p . Reutemann和i . h .威滕“WEKA数据挖掘软件,”ACM SIGKDD探索通讯,11卷,不。1,10 - 18,2009页。视图:出版商的网站|谷歌学术搜索
  19. g . r . Bradski和a . Kaehler学习OpencvO ' reilly Media, Inc .,牛顿,妈,美国第1版,2008年。
  20. c·麦凯和i Fujinaga JMIR:自动音乐分类的工具”《国际计算机音乐会上2009年8月,蒙特利尔,魁北克,加拿大。视图:谷歌学术搜索
  21. n . Bicocchi m . Mamei, f . Zambonelli”检测活动通过基于实例的算法,从穿在身上加速计”普及和移动计算》第六卷,没有。4、482 - 495年,2010页。视图:出版商的网站|谷歌学术搜索
  22. l·法拉利和m . Mamei”下落的分类和预测模式的现实挖掘数据集,“普及和移动计算,9卷,不。4、516 - 527年,2013页。视图:出版商的网站|谷歌学术搜索
  23. l . Snidaro j·加西亚,j . m . Corchado“基于上下文的信息融合,”信息融合21卷,第84 - 82页,2015年。视图:出版商的网站|谷歌学术搜索
  24. b . Chihani、e·贝尔坦公司和n Crespi,“可编程序上下文感知框架,”系统和软件杂志》上卷,92年,页59 - 70,2014。视图:出版商的网站|谷歌学术搜索
  25. n . Aharony w·潘,c . Ip Khayal,和a . Pentland”社会功能磁共振成像:调查和塑造社会机制在现实世界中,“普及和移动计算,7卷,不。6,643 - 659年,2011页。视图:出版商的网站|谷歌学术搜索
  26. j .朱h .箱型雪撬,m . Oliya和w . Wong“上下文实现无处不在的应用框架和运行时支持,”IEEE通讯杂志卷,49号9日,第141 - 132页,2011年。视图:出版商的网站|谷歌学术搜索
  27. p . Gutheim”,一个基于本体的上下文推理服务下一代网络的移动应用程序,”IEEE通讯杂志卷,49号1、60 - 66、2011页。视图:出版商的网站|谷歌学术搜索
  28. j . h . Lu, z . Liu n . d . Lane t . Choudhury和a·t·坎贝尔,“拼图连续感应发动机对于手机应用程序,“第八届ACM会议程序嵌入式网络化传感器系统瑞士苏黎世,页71 - 84,,2010年11月。视图:谷歌学术搜索
  29. m·g·c·a·西米诺b . Lazzerini f . Marcelloni和a . Ciaramella“自适应规则的方法来管理的大局意识,”专家系统与应用程序,39卷,不。12日,第10811 - 10796页,2012年。视图:出版商的网站|谷歌学术搜索
  30. 美国纳,“王牌:利用相关节能和持续的上下文感知”学报第十届国际会议在移动系统中,应用程序和服务(MobiSys 12)页29-42 Ambleside,英国,2012年6月。视图:出版商的网站|谷歌学术搜索
  31. 康,j·李,h .张成泽y李,美国公园,和j·歌,“一个可伸缩的和节能的背景为个人移动传感器网络监测框架,“IEEE移动计算,9卷,不。5,686 - 702年,2010页。视图:出版商的网站|谷歌学术搜索
  32. m . Schirmer h .效果,“Senst∗:方法6967年分享服务上下文识别减少能源消耗,”《国际和跨学科会议建模和使用上下文卡尔斯鲁厄,页250 - 263年,德国,2011年9月。视图:出版商的网站|谷歌学术搜索
  33. f . Kawsar g . Kortuem, b . Altakrouri”设计普遍的交互环境指导与位于流,”《IEEE / WIC / ACM国际会议上Web智能和智能代理技术2010年8月,页371 - 375。视图:出版商的网站|谷歌学术搜索
  34. w·t·莫w . Li楚,z,“上下文感知服务的事件驱动模型,”Proceedinds IEEE 20国际会议上的Web服务华盛顿特区,页740 - 741,美国2011年7月。视图:出版商的网站|谷歌学术搜索

版权©2019尼古拉Bicocchi等。这是一个开放分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。


更多相关文章

PDF 下载引用 引用
下载其他格式更多的
订单打印副本订单
的观点1033年
下载707年
引用

相关文章

文章奖:2020年杰出的研究贡献,选择由我们的首席编辑。获奖的文章阅读