帕特里克·兰格拉,∗,埃尔加·弗里沙,b,苏黎世菲利普·巴拉塔,数字健康干预中心,瑞士,圣加伦大学,数字健康干预中心,瑞士,圣加伦
越来越多的具有增强传感能力的边缘设备,如智能手机、可穿戴设备和配备传感器的物联网设备,在医疗保健领域具有创新的智能边缘应用的潜力。这些设备产生大量的多模态数据,使数字生物标志物得以实现,机器学习解决方案可以利用它来获得见解,预测健康风险,并允许个性化干预。训练这些模型需要从边缘设备中收集数据,并将其聚合到云中。为了验证和验证这些模型,必须在现实世界的场景中使用它们,并使用来自不同队列的数据对它们进行测试。由于有些模型的计算成本太高,无法直接在边缘设备上运行,因此需要建立一个边缘设备和云设备之间的协作框架。在本文中,我们提出了CLAID,一个基于透明计算的开源跨平台中间件框架,与安卓、iOS、WearOS、Linux、macOS和Windows兼容。CLAID支持将运行不同操作系统的设备逻辑集成到一个边缘云系统中
此外,我们提出了一种新的方法,循环中的ML-Model,用于验证已部署的机器学习模型,它有助于分析模型从云到边缘设备迁移过程中可能发生的问题。我们在三个不同的实验中验证了我们的框架,并实现了在不同传感器之间的数据收集的100%的采样覆盖率,以及在Android和iOS设备上部署的咳嗽检测模型的相同性能。此外,我们还比较了我们的框架在两个移动操作系统上的内存和电池消耗量。关键词:数字健康、数字生物标志物、移动传感、机器学习、边缘云、跨平台1。便携式边缘设备的普及,包括可穿戴传感器、移动电话和具有传感能力的物联网(物联网)设备,如植入式或可消化的[1],为满足全球老龄化人口和慢性疾病[2,3,4,5]患者的健康监测需求提供了巨大的前景。通过向个人提供接近实时的健康状况数据,边缘设备可以实现更主动的健康状况方法
1.便携式边缘设备的普及,包括可穿戴传感器、移动电话和具有传感能力的物联网(物联网)设备,如植入式或可消化的[1],为满足全球老龄化人口和慢性疾病[2,3,4,5]患者的健康监测需求提供了巨大的前景。通过向个人提供接近实时的健康状况数据,边缘设备可以实现更积极主动的健康管理方法,包括早期发现疾病、预测治疗结果,以及促进个性化干预[6,7]。近实时数据的例子可能包括生理数据,如光体积描记术,以及行为数据,如活动学[5,7]。然而,为了对医生和患者有用,必须对这些设备收集的非结构化传感器数据进行处理和聚合,以创建通常使用机器学习的数字生物标志物。数字生物标记物被定义为通过解释、影响或预测健康相关结果[5,8,9,10]的边缘设备收集和测量的生理和行为数据。机器-
对于数字生物标记物的发展至关重要,因为它们有助于从边缘设备产生的大量行为和生理数据中获得有意义的见解。通过应用这些算法,可以揭示收集的数据中隐藏的模式,从而更深入地了解个人的健康状况,并准确评估其[11]的能力。此外,机器学习算法可用于执行医疗功能,如治疗建议、干预措施[5],或提供新的传感能力(例如,从音频数据[12]中自动检测咳嗽)。近年来,人们越来越认识到需要结构化和可重用的软件框架,以支持在数据收集[13,14,15]和数据分析[16,17]方面的数字生物标志物的开发。这种软件框架的主要目标是最小化复杂性,从而减少在开发过程中与管理各种设备和传感器相关的工作。为了实现这一目标,这些框架提供了可重用的组件,例如用于数据采集、上传和分析,以简化和简化整个过程
这种软件框架的主要目标是最小化复杂性,从而减少在开发过程中与管理各种设备和传感器相关的工作。为了实现这一目标,这些框架提供了可重用的组件,如用于数据采集、上传和分析,以简化和简化开发数字生物标记物的总体过程。根据之前的工作[5],我们推导了一个开发和评估数字的软件框架的要求
生物标记物必须满足: 1.模块化是必要的,以使数字生物标记物能够由可互操作的软件和硬件组件组成。在这种情况下,模块化是指用于传感器数据收集、机器学习模型或计算的组件的灵活实现。这些组件必须易于重新配置,以实现从数据收集到数据分析的过渡,并促进它们在不同场景中的重用。此外,它们必须可以部署在智能手机或智能手表等不同的硬件设备上
需要对数字生物标志物进行测量。这些测量数据由传感器捕获,并允许在医学研究期间创建多模态数据集,这是训练数字生物标志物的机器学习模型所必需的。数据通常被聚合在云中,即配备了足够的存储和计算能力的多个服务器。因此,为了收集数据,边缘设备需要配备用来捕获、处理和上传数据的软件,而云服务器则需要数据库来进行存储。理想情况下,从传感器进行的数据采集可以在没有编程的情况下,通过简单的配置文件或用户接口进行设置,因为对传感器的支持已经集成在框架中。该框架应该会促进增加对进一步传感器的支持,比如外部可穿戴设备。
验证和验证对于确保数字生物标志物模型在不同患者群体和上下文中的性能和适用性至关重要。分析验证确保了数字生物标志物模型的输出在不同的硬件和计算能力中保持准确。经验验证证实,数字生物标志物模型可以可靠地预测或监测不同设备和患者之间的健康结果,例如通过在临床环境和不同队列中进行测试。部署数字生物标志物模型是验证和验证的先决条件,因为它能够在现实生活条件下,基于边缘设备的连续测量来评估数据和预测。由于边缘设备只有有限的计算和内存能力,因此在这些设备上部署模型可能并不总是可行的。有些模型可能过于计算或内存密集型的[18],无法直接部署在边缘设备上,因此必须部署在云中。因此,评估数字生物标记的框架必须使机器机器的部署成为可能
然而,到目前为止,还没有针对开发和评估数字生物标志物的所有三个要求的框架出现。以前的工作只部分地解决了这些需求,并关注于各个方面。例如,现有的解决方案,如Pogo [19]和USense [20]专注于模块化,但没有为医疗使用案例开发和缺乏
支持外部传感器,如可穿戴设备,并集成机器学习模型。传感框架,如Sensus [14]、雷达基[15]和CAMS [21]目标测量,但没有为合并机器学习模型提供必要的模块化。最后,诸如MobiCOP [22,23]和MTC [24]等框架可以通过利用边缘和云资源来卸载计算来实现机器学习模型的部署。然而,这些框架并没有为医疗场景量身定制,也缺乏在Pogo等框架中所看到的灵活性。此外,它们还不提供集成基于传感器的测量数据的能力。
为了为开发和评估满足所有三个需求的数字生物标记物的软件框架做出贡献,我们设计、实现并评估了CLAID(关闭人工智能和数据收集的循环)框架。CLAID是一个基于透明计算的跨平台、跨语言的研发中间件框架,提供了数据收集和机器学习部署的功能。为了实现所需的模块化,我们应用了中间件、透明计算和卸载中的几种软件设计原则。在中间件中,它可以被认为是操作系统和应用程序[25,26]之间的一个抽象层,我们提供了用于实现灵活和松散耦合的组件的功能,我们称之为模块。我们提供了针对传感和模型部署、目标数据收集和分析的模块的具体实现。为了在这些模块之间提供灵活的通信,我们使用了透明计算的网络计算范式,它为异构设备和操作系统之间的通信提供了抽象[27]
使用透明计算,网络连接和数据传输对模块来说仍然难以察觉或透明,因此它们甚至可以跨网络边界进行无缝通信。单个模块之间的透明通信使边缘和云设备能够集成到一个逻辑的边缘-云系统中,这允许根据需要在整个系统中分布模块。这种分布可以卸载[28,29,30],该过程允许在必要时将计算任务,如机器学习模型的推理,从边缘设备转移到云上。我们的工作的主要贡献,解决了具体的要求,包括以下几点:
我们提供了一个可伸缩、灵活的、自包含的跨平台中间件实现,使其能够创建松散耦合的模块,例如用于数据收集和模型部署,它与不同的编程语言和操作系统兼容,针对模块化需求(1)。 2.我们提供了现有的用于数据收集的模块和一个API来促进新模块的集成,并针对测量的需求(2)。我们还提供了用于后台记录、数据存储和上传的现有模块,以帮助减轻在移动设备上收集数据时遇到的常见缺陷。我们根据需要从配置文件中启用组合和重新配置现有的模块。
我们将透明计算机制集成到中间件中,允许将边缘设备和云设备结合到一个逻辑的边缘-云系统中。此外,我们还提供了卸载功能,允许在这个边缘云系统中分发模块。这些功能允许在边缘和云设备上部署机器学习模型,以满足第三个需求,即在现实场景中验证和验证已开发的模型(3)。 4.我们在三个独立的实验来评估我们的框架。在第一个实验中,我们使用采样覆盖作为度量来验证24小时内不同传感器的稳定数据收集。在第二个实验中,我们提出了一种新的方法来验证已部署的机器学习模型,我们称之为循环中的ml模型。在第三个实验中,我们评估了我们的框架的内存和电池利用率。
CLAID的主要关注点是促进数字生物标志物的开发,通过利用智能手机、可穿戴设备和蓝牙外设等移动设备来收集数据集,用于训练基于机器学习的数字生物标志物来实现实现。然而,它的潜力超出了这一特定领域,提供了更广泛的适用性。我们认为它对于智能边缘或边缘云应用的开发是有用的。作为对研究社区的贡献,我们将CLAID作为一个完全开源的框架发布,并通过一个专门的网站提供广泛的文档、教程和示例应用程序。表1)。
本工作的其余部分组织如下:第2节提供了相关工作的概述,如透明计算、中间件和移动传感框架。第3节提供了CLAID的系统和架构概述。第3.2节解释了为评估而进行的实验,结果见第4节。最后,第5节和第6节最后进行了讨论和未来展望。
生物标记物必须满足: 1.模块化是必要的,以使数字生物标记物能够由可互操作的软件和硬件组件组成。在这种情况下,模块化是指用于传感器数据收集、机器学习模型或计算的组件的灵活实现。这些组件必须通过少到无编码轻松地重新配置,以实现从数据收集到数据分析的过渡,并促进它们在不同场景中的重用。此外,它们还必须可以在智能手机或智能手表等不同的硬件设备上进行部署。 2. 对于数字生物标记物需要进行测量。这些测量数据由传感器捕获,并允许在医学研究期间创建多模态数据集,这是训练数字生物标志物的机器学习模型所必需的。数据通常聚集在云中,即配备了足够的存储和计算能力的多个服务器。因此,为了收集数据,边缘设备需要配备用来捕获、处理和上传数据的软件,而云服务器则需要数据库来进行存储。理想情况下,数据采集
验证和验证对于确保数字生物标志物模型在不同患者群体和上下文中的性能和适用性至关重要。分析验证确保了数字生物标志物模型的输出在不同的硬件和计算能力中保持准确。经验验证证实,数字生物标志物模型可以可靠地预测或监测不同设备和患者之间的健康结果,例如通过在临床环境和不同队列中进行测试。部署数字生物标志物模型是验证和验证的先决条件,因为它能够在现实生活条件下,基于边缘设备的连续测量来评估数据和预测。由于边缘设备只有有限的计算和内存能力,因此在这些设备上部署模型可能并不总是可行的。有些模型可能过于计算或内存密集型的[18],无法直接部署在边缘设备上,因此必须部署在云中。因此,评估数字生物标记的框架必须使机器机器的部署成为可能
然而,到目前为止,还没有针对开发和评估数字生物标志物的所有三个要求的框架出现。以前的工作只部分地解决了这些需求,并关注于各个方面。例如,现有的解决方案,如Pogo [19]和USense [20]专注于模块化,但没有为医疗使用案例开发和缺乏支持外部传感器,如可穿戴设备,并集成机器学习模型。传感框架,如Sensus [14]、雷达基[15]和CAMS [21]目标测量,但没有为合并机器学习模型提供必要的模块化。最后,诸如MobiCOP [22,23]和MTC [24]等框架可以通过利用边缘和云资源来卸载计算来实现机器学习模型的部署。然而,这些框架并没有为医疗场景量身定制,也缺乏在Pogo等框架中所看到的灵活性。此外,它们还不提供集成基于传感器的测量数据的能力。
为了为开发和评估满足所有三个需求的数字生物标记物的软件框架做出贡献,我们设计、实现并评估了CLAID(关闭人工智能和数据收集的循环)框架。CLAID是一个基于透明计算的跨平台、跨语言的研发中间件框架,提供了数据收集和机器学习部署的功能。为了实现所需的模块化,我们应用了中间件、透明计算和卸载中的几种软件设计原则。在中间件中,它可以被认为是操作系统和应用程序[25,26]之间的一个抽象层,我们提供了用于实现灵活和松散耦合的组件的功能,我们称之为模块。我们提供了针对传感和模型部署、目标数据收集和分析的模块的具体实现。为了在这些模块之间提供灵活的通信,我们使用了透明计算的网络计算范式
它为异构设备和操作系统[27]之间的通信提供了抽象概念。使用透明计算,网络连接和数据传输对模块来说仍然难以察觉或透明,因此它们甚至可以跨网络边界进行无缝通信。单个模块之间的透明通信使边缘和云设备能够集成到一个逻辑的边缘-云系统中,这允许根据需要在整个系统中分布模块。这种分布可以卸载[28,29,30],该过程允许在必要时将计算任务,如机器学习模型的推理,从边缘设备转移到云上。我们的工作的主要贡献,解决了具体的要求,包括以下几点:
我们提供了一个可伸缩、灵活的、自包含的跨平台中间件实现,使其能够创建松散耦合的模块,例如用于数据收集和模型部署,它与不同的编程语言和操作系统兼容,针对模块化需求(1)。 2.我们提供了现有的用于数据收集的模块和一个API来促进新模块的集成,并针对测量的需求(2)。我们还提供了用于后台记录、数据存储和上传的现有模块,以帮助减轻在移动设备上收集数据时遇到的常见缺陷。我们根据需要从配置文件中启用组合和重新配置现有的模块。
我们将透明计算机制集成到中间件中,允许将边缘设备和云设备结合到一个逻辑的边缘-云系统中。此外,我们还提供了卸载功能,允许在这个边缘云系统中分发模块。这些功能允许在边缘和云设备上部署机器学习模型,以满足第三个需求,即在现实场景中验证和验证已开发的模型(3)。 4.我们在三个独立的实验来评估我们的框架。在第一个实验中,我们使用采样覆盖作为度量来验证24小时内不同传感器的稳定数据收集。在第二个实验中,我们提出了一种新的方法来验证已部署的机器学习模型,我们称之为循环中的ml模型。在第三个实验中,我们评估了我们的框架的内存和电池利用率。
CLAID的主要关注点是促进数字生物标志物的开发,通过利用智能手机、可穿戴设备和蓝牙外设等移动设备来收集数据集,用于训练基于机器学习的数字生物标志物来实现实现。然而,它的潜力超出了这一特定领域,提供了更广泛的适用性。我们认为它对于智能边缘或边缘云应用的开发是有用的。作为对研究社区的贡献,我们将CLAID作为一个完全开源的框架发布,并通过一个专门的网站提供广泛的文档、教程和示例应用程序。表1)。
本工作的其余部分组织如下:第2节提供了相关工作的概述,如透明计算、中间件和移动传感框架。第3节提供了CLAID的系统和架构概述。第3.2节解释了为评估而进行的实验,结果见第4节。最后,第5节和第6节最后进行了讨论和未来展望。
2.在本节中,我们将重点介绍之前在中间件框架、透明计算、卸载和移动传感框架等方面与CLAID相关的研究。在表2中,我们提供了与CLAID相关的相关框架和实现的比较。2.1.中间件框架中间件可以被认为是位于操作系统和软件应用程序之间的一个抽象层。它
旨在管理硬件的异构性,提高软件应用程序的质量,简化软件设计,并降低开发成本[33]。中间件为实现松散耦合的组件提供了功能,它们可以通信、交换数据和执行任务。近年来,中间件框架已成为分布式系统、物联网(IoT)、云计算和机器人技术[25,26,34,35]等领域越来越多的研究课题。特别是在机器人技术领域,已经出现了先进的中间件框架和架构[25]的激增。其中一个最广泛使用的机器人中间件是机器人操作系统(ROS)[35],它最近被ROS2 [36]所取代,并已成为工业和研究中机器人应用的实际标准。ROS为感知任务、感知和控制[36]提供了许多软件包和特性。
一些中间件实现是专门为部署在智能手机等移动设备上而设计的,并可以提供用于集成传感器、上下文感知应用程序和与云同步的功能。Pogo中间件[19]旨在帮助研究人员从智能手机收集数据,旨在实现现实世界的部署和评估已开发的算法。它提供了一个能够添加自定义功能的API。Pogo中间件于2012年发布,但源代码并不公开。另一个移动中间件USense发布于2014年的[20]。USense专注于社区驱动的感知任务,并整合了诸如应用程序意识、用户意识和情境意识等概念。它的目的是确定适当的情况,并在机会出现时收集数据。然而,USense只提供了有限的传感器,不能随时查询。相反,中间件的硬编码设置决定了何时记录数据。因此,它不能被认为是一个模块化的中间件。Pogo和USense都不提供对机器的支持
一般来说,现有的移动中间件解决方案通常不提供与机器人中间件框架中相同类型的可扩展性和特性。机器人中间件框架通常具有一个打包系统,允许它们包含新特性,像ROS这样的框架提供了许多包含用于数据收集和分析的组件的包。然而,机器人中间件并不能轻易地用于移动应用程序场景。它们主要是为桌面或嵌入式操作系统开发的,如Linux、Windows和macOS。因此,它们通常依赖于第三方库和框架,比如boost [37],这可能只适用于那些桌面操作系统。此外,ROS-Mobile [38],一种可用于将安卓应用程序连接到ROS实例并在某种程度上控制它们的实现,并不支持运行ROS本身。到目前为止,还没有官方支持Android或iOS2。据我们所知,目前还没有公开的中间件框架来允许集成移动、物联网和云设备。这可以用固有的c来解释
“内部传感器”指的是智能手机中内置的传感器,如GPS或麦克风,而“外部传感器”指的是那些与可穿戴设备或其他设备集成的传感器。一个“扩展API”允许集成新的功能。“ML算法”表示该框架部署机器学习算法的能力。“卸载”指的是跨不同设备(如智能手机和服务器)无缝地执行功能或模块的能力。最后,“无代码重新配置”允许加载和配置不同的组件,而不需要额外的编码,例如通过配置文件。
2.2.透明计算异构边缘和云设备之间的通信可以通过透明计算(TC)来实现。透明计算是一种网络计算范式,旨在提供抽象来管理设备、操作系统和资源[27]的异构性。Ren等人表示,“透明计算使设备可以通过网络选择服务”[27]。这些服务外,可能需要数据存储和计算服务。例如,在智能手机上运行的一个服务可以请求使用一个服务来存储大量的数据。如果这样的服务是提供的,例如由连接的云设备提供,则可以在这两个服务之间通信数据。在智能手机上运行的服务不需要知道,存储服务在哪里运行。数据将由透明的计算机制自动在两个服务之间转发。因此,从服务的角度来看,数据的传输或网络通信是隐藏的或透明的。Zhou等人[24]提供了一个透明计算方法的具体实现。他们提出了一个移动透明的补偿
缺陷这些计算结果的分布量被称为卸载量。2.3.卸载卸载是一种可用于跨具有不同功能的设备分发任务和计算的技术。存在不同类型的卸载机制。卸载可以是静态或动态[29]卸载。静态表示计算的分布只确定一次,例如在编译时或应用程序启动时。例如,这可以通过在启动期间分析可用资源来实现,或者简单地由用户或开发人员[29]手动配置。另一方面,动态卸载允许人们通过使用负载平衡或能量平衡策略[22],更灵活地适应并利用基于可用性的计算资源。此外,还可以区分不同的卸载粒度。例如,可以卸载方法、类、线程或整个应用程序。卸载可以独立于透明计算来实现。例如,贝内代托等人提出了在安卓设备[22]之间卸载的MobiCOP框架。MobiCOP不使用TC的原则,但遵循一个固定的Cl
同样依赖于安卓操作系统,也适用于云设备。有了MobiCOP-IoT [23],它也支持运行安卓系统的设备,因此可以使用运行该操作系统的物联网设备来收集数据。虽然卸载并不一定依赖于透明计算,但透明计算可以促进其实现,并支持在异构操作系统之间进行卸载
2.4.移动传感框架移动传感框架与前十年[27]的云分析趋势一致。它们单向工作,将数据从移动设备传输到云上以进行后续分析。虽然不像中间件框架那样灵活,但它们可以为从移动设备收集数据提供全面的解决方案,而且在过去的十年中出现了不同的框架。2010年发布的AWARE [13]是第一个开源框架之一,旨在为从移动设备[39]中获得的数据收集提供一个完整和可配置的解决方案。Awapre主要专注于内部智能手机传感器,如GPS或音频以及问卷,但它有一个插件API,允许包含新的内部和外部传感器[13]。它带有Android和iOS版本,尽管两者都是单独维护的,并且不共享一个共同的代码库。这导致了两个平台上的API的不同。此外,可感知的应用程序依赖于可感知的web服务器来上传数据。使用自定义服务器设置并不容易实现。另一个移动传感框架是北威平台[31]
它还配备了两种不同版本的安卓和iOS版本,并且只支持有限数量的内部手机传感器(如GPS和手机日志)。它不提供包含外部传感器的API。此外,北威中的数据收集可以从运行在web服务器上的仪表盘上进行配置。雷达基地的目标是安卓设备1,并特别关注安全方面。它采用不同的认证措施和策略,确保通过web界面[15]安全访问记录的数据进行分析和可视化。雷达基地通常支持内部和外部传感器,但是,访问外部传感器的集成保持作为一个闭源特性[15,21]。该大脑框架也专门用于安卓系统,旨在通过优先考虑高采样率记录[32]来实现高通量的数据收集。与上述框架相比,Sensus [14]和摄像头[21]追求跨平台的方法,这意味着他们使用通用编程语言(C#通过唤醒和镖通过抖动[41]摄像头),可以运行在安卓和iOS系统上,而不是维护单独的代码ba
它可以同时在Android和iOS上运行,而不是维护单独的代码库。一方面,这允许了高水平的灵活性和针对多个设备和平台的能力。另一方面,由于c#和Dart不是针对Android和iOS的本地语言,因此这些框架有一个局限性,因为开发人员不能直接使用
访问这些平台上的硬件传感器。相反,他们必须依赖额外的包或手动开发,以使用Androidid和iOS的本地语言实现传感器集成,并提供c#或Dart使用的接口。然而,这些软件包通常不能提供与本机api中相同的功能,而且更新的频率也较低,正如CAMS的作者所提到的那样。
3.在本节中,我们将介绍CLAID,一个透明的计算中间件框架,起源于我们的数字生物标志物研究。通过CLAID,我们寻求实现一个框架,以满足第1节中衍生的数字生物标志物开发的要求。为了满足这些需求,我们应用了中间件、透明计算、卸载和移动传感中的软件原理,我们将在第3.1节中描述这些原理。我们使用三个不同的实验来根据需求来评估我们的框架,如第3.2节所述。
3.1.CLAID框架实现为了有效地验证和应用基于数字生物标志物的应用程序以及由此产生的治疗建议,我们需要一种方法,允许我们重新利用我们的数据收集应用程序,以无缝集成我们开发的模型。因此,我们努力关闭从数据收集到模型部署的循环。图1显示了所提出的闭环方法的一个高级概念。我们的框架al
图1:研究人员和开发人员可以使用专为传感器集成、机器学习部署、算法或可视化而设计的模块来创建CLAID应用程序。我们提供可部署在移动操作系统(Android、iOS、WearOS)上的特定平台的传感器模块,以及可在移动和桌面(Windows、Linux、macOS)操作系统上工作的跨平台模块。跨平台模块允许在服务器上或直接在边缘设备上部署训练过的模型。模块可以通过网络连接进行无缝通信,允许模型在这两种情况下直接利用记录在边缘设备上的数据。
通过组合不同的组件来低构建应用程序,我们称之为模块。这些模块实现了诸如传感器集成、数据存储和机器学习模型的部署等功能。使用CLAID,我们可以im-
使用不同的编程语言编写的平台模块,并根据需要使用用XML编写的配置文件将它们组合起来。配置文件允许我们为不同的应用程序场景重新配置和重新组合模块,从而允许我们从数据收集切换到模型部署。3.1.1.中间件架构我们的框架基于中间件架构,它提供了调度、配置、序列化和通信的功能,开发人员可以使用这些功能来实现模块。模块可以通过基于发布者-订阅者范式的通道进行通信,这通常可以在ROS [35]等中间件框架中找到[42]
信道是双向的,因此允许每个模块与任何其他模块进行通信。每个频道由一个名称或主题标识,在订阅或发布频道时指定。CLAID的多个实例可以通过一个网络相互连接。我们实现了透明计算机制,允许模块甚至跨网络边界进行通信。如果模块将数据发布到在远程连接的实例中具有用户的通道,则数据将被序列化并自动发送到远程运行的模块(见第3.1.3节)。否则,通信只在本地进行。图2描述了CLAID中间件体系结构的概述。
图2:为了使用CLAID构建应用程序,我们可以结合不同的模块(蓝色),实现传感器集成、机器学习部署等。除了传感器模块外,现有的模块还可以在不同的移动设备(Android、iOS)以及桌面机(Windows、Linux、macOS)操作系统上运行。中间件在所有这些操作系统中统一地工作。我们的框架基于C++中的一个公共代码基础,它允许与所有目标操作系统的本地兼容性。使用C++,我们创建了一个通用的API,并提供绑定来在Java和Python等各种本地语言中使用我们的框架。这意味着,虽然CLAID的基本功能是用C-++实现的,但开发人员可以使用诸如Java、目标-C和Python等语言来使用和扩展它。清单1显示了一个使用Java API实现的模块的示例。为创建API绑定
清单1:通过JavaCLAID API实现的CLAID模块的示例
不同的语言,我们目前使用pybind11 [43]和jbind112 [44]。该API提供了创建模块、模块之间通过通道进行通信、序列化和反序列化、属性以及以特定时间或间隔速率调度功能的功能。我们直接在C-++中实现了跨平台模块,以便能够在不同的设备之间重用它们。然而,为了收集数据,我们为每个移动操作系统使用一种本地语言创建特定于平台的模块,如Java或Object-C。这种方法允许我们直接使用移动操作系统的本地API,以确保与所提供的功能具有最大限度的兼容性。为了结合现有的模块来创建应用程序,我们提供了一个模块加载器,它允许在运行时加载所需的模块。模块加载器处理配置文件,使用其名称或标识符实例化单个模块,并根据配置文件分配任意属性。对于Android和iOS,模块加载器可以自动将模块放置在前景或背景环境中,如果重新启动,将启动服务
2注意,jbind11是由我们专门实现的,用来模拟针对Java的pybind11的功能,并将单独发布
quired.这种灵活性允许模块在各种场景中使用模块。CLAID和我们的API是可扩展的,我们提供了一个包管理系统,允许我们合并新的功能。3.1.2.重新配置:数据收集到模型部署利用移动电话作为移动传感设备是一个挑战。通常,开发人员通过单片管道实现数据收集,这些管道包含传感器访问、数据序列化和每个不同传感器上传的步骤。在许多情况下,这些实现都存在两个问题。首先,这些管道逐个同步地执行各个步骤。因此,将传感器数据收集与数据序列化和上传解耦具有挑战性。如果序列化时间太长或应用程序失去与服务器的连接,如果传感器值不能及时读取,单片管道处理的延迟可能会导致数据丢失。其次,单片管道不提供为不同场景重新使用单个组件所需的模块化,因为它们是严格耦合的。在将数据收集到服务器上后,开发人员不能轻易地更改th
为了克服同步处理和单片管道缺乏模块化的问题,CLAID提供了从单个和松散耦合的异步模块组成传感器管道的功能。图3显示了我们如何将这些模块用于数据收集和模型部署场景的一个示例。对于数据序列化和上传,我们分别提供了数据保存模块和数据同步模块,它们从传感器模块接收数据。如果所有所需的传感器模块都可用,那么CLAID的用户可以通过提供一个指定要加载的模块,以及如何连接它们的配置文件来设置数据收集,而无需进行程序设计。清单2提供了一个示例,它展示了我们如何使用微电话收集器来记录音频数据。该模块具有以下属性,允许指定音频数据和质量的记录细节,如采样率、编码、比特率和通道数。此外,该模块还提供了不同的记录选项,以配置记录的开始、停止和长度。在示例配置中,音频数据以6秒的块连续记录,每个块分别发布到th
虽然我们的目标不是为跨不同设备的所有可能的传感器提供现有的模块,但我们的目标是通过我们的API促进集成新的传感器的过程。由于数据保护模块和数据同步模块通过我们的反射系统支持任意的数据类型,集成一个新的传感器只需要使用移动操作系统的相应(原生)API实现传感器模块就可以读取传感器值。这种方法减轻了在实现异步传感器读取和上传时出现常见陷阱的风险。对于单片管道,需要额外的努力来确保在上传数据时确保连续记录,例如音频数据,以不阻塞数据协议
偏转管道。使用CLAID,这些方面将通过前面提到的模块进行异步处理。我们提供了一个模块加载器,它允许在前景或后台自动运行模块。此外,我们采用了不同的特定于操作系统的技术,以确保通过我们的keepalive模块从后台收集可靠的数据。例如,在Android上,此模块可确保前景服务以正确的方式启动,并具有从后台访问传感器的必要权限。此外,它还使用了唤醒锁,以防止设备空转。在iOS系统上,它可以确保至少有一个后台传感器正在运行,以保持应用程序的运行状态。在数据收集之后,重新配置允许重新利用现有的应用程序,现在可以合并机器学习模型。例如,部署在智能手机上的咳嗽检测[12,45]模型可以直接使用来自麦克风的音频数据来做出预测,如清单3所示。在此场景中,不再需要与服务器的连接。我们的拉伸流模块允许模型直接部署在边缘设备,如smar
在此场景中,不再需要与服务器的连接。我们的拉伸模块允许直接在智能手机等边缘设备上部署模型,并可选择支持硬件加速设置,因为一个模型可以转换为拉伸流格式。或者,我们的Python绑定允许我们在已连接的服务器或其他边缘设备上部署模型。为了实现运行在边缘设备上的模块与已连接的服务器之间的通信,我们利用了透明计算。
3.1.3.透明计算透明计算是一种(网络)计算范式,它允许有逻辑地将通过远程连接连接的设备集成到一个系统[27]中。CLAID对模块和通道采用了这一概念。当通过网络连接连接多个CLAID实例时,这些实例将为每个通道交换本地和远程发布者和订阅者的列表。如果数据被发布到具有远程订阅者的通道,则数据将使用通用反射系统自动序列化为二进制格式,然后传输到远程连接的实例。到达后,数据将被自动反序列化并插入到通道中。从模块的角度来看,这与本地通信没有什么区别,因此所涉及的通信对模块是透明的。当通道中的新数据可用时,模块都将收到通知,无论该数据是在本地插入的还是从远程连接插入的。因此,无论设备是什么设备,模块都可以通过通道与逻辑系统的其他模块进行通信,而不需要使用特定的代码来进行网络通信。理论上,th
因此,无论设备是什么设备,模块都可以通过通道与逻辑系统的其他模块进行通信,而不需要使用特定的代码来进行网络通信。理论上,这允许多个设备或应用程序的任意拓扑,而它们之间没有层次结构。但是,由于我们使用TCP/IP来进行网络通信,因此一些设备必须作为服务器,而另一些设备则作为客户端连接到此服务器。默认情况下,每个CLAID实例只在本地运行,并且不建立任何远程连接。为了连接不同的实例,我们提供了网络服务器模块和网络客户端模块。这些模块允许灵活地访问网络接口。还可以加载这些模块的多个实例,以便一个CLAID实例可以作为一个或多个服务器和/或客户端
为数据收集而配置的(a) CLAID模块。
为部署机器学习模型而配置的(b) CLAID模块。
图3:重新配置的示例,展示了我们如何使用CLAID来进行数据收集和模型部署。由于所有实现都使用松散耦合的模块,因此我们可以根据不同场景的需要重用和连接它们。
同一时间我们的透明计算实现可以跨Android、iOS、WearOS、Linux、macOS和Windows操作系统运行。3.1.4.语言中性数据类型为了实现模块间通信的透明计算,有必要将任意数据类型序列化为要通过网络连接发送的二进制表示。此外,这必须在不同的编程语言中工作,例如,用Python编写的模块可以
从用Java编写的模块中接收数据,反之亦然。为了实现这一点,我们需要与平台无关的和跨语言的数据类型。这些通常可以通过接口描述语言(IDL)创建,如原数据库[46]或ROS [35]使用的IDL。但是,idl需要生成代码,并且不允许为数据类型定义函数。它们大多是用于存储和传递数据的容器。使用这种方法,不容易使用现有的应用程序的数据类型进行透明计算,或者仅在一定程度上仅限于原始数据类型。为了克服这些限制,我们开发了一个自定义反射系统,其灵感来自于一些机器人中间件框架中使用的系统,如MIRA [47]。这个反射系统允许对任意数据类型进行集成、序列化和反序列化,以及在所有支持的语言中启用函数调用。此外,我们的反射系统的实现使我们能够为不同的编程语言自动生成数据类型绑定,例如分别使用pybind11 [43]和jbind11 [44]。3.1.5.卸载能力目前的移动设备和边缘设备在计算和内存能力方面通常没有足够的资源来执行机器学习模型和算法进行分析。使用我们的透明计算方法(cf。第3.1.3节),CLAID允许在模块级别的多个连接设备之间进行静态卸载。需要由更强大的设备执行任务的模块可以将数据发布到相应的通道。如果一个在远程连接的设备上运行的模块可以处理来自此通道的数据,那么它将运行必要的计算,并将结果发布到其他通道。模块之间的通信是透明处理的。由于我们的实现与所有主要的操作系统兼容,因此卸载可以跨不同的设备进行工作。目前,我们支持静态卸载[29],这需要通过配置文件进行手动配置。我们将在下面重点介绍一些用例
智能手机到服务器。虽然我们提供的模块可以直接在移动设备上部署机器学习模型,例如通过我们的张量流流模块,但由于边缘设备的计算能力有限,一些模型不能使用相同的方法运行。在这种情况下,CLAID支持将模型托管在连接的服务器上,要么通过拉伸流流模块,要么通过使用Python绑定集成现有的机器学习管道。机器学习模块可以订阅传感器模块的数据通道。使用这种方法,可以将数据从智能手机直接流到运行在连接设备上的Python应用程序。这允许跨设备实现和部署分布式数据分析管道,从而允许使用各种Python软件包进行数据处理和机器学习。智能手表到智能手机。智能手表能够收集不同方式的数据,如心率、氧饱和度、身体活动、身体组成和更多的[48,49]。基于机器学习的方法可以从这些智能手表的数据中获得新的医学见解,从而可能能够持续跟踪一个人的健康状态。例如,智能手表记录的身体活动数据有可能允许开发新的炎症和死亡率[50]的数字生物标志物。由于智能手表的处理能力有限,它们不能直接运行所需的分析,比如对机器学习模型的推断。为了克服这一限制,CLAID支持WearOS,并允许将任务卸载到附近的设备,如智能手机,通过蓝牙连接。此外,我们的框架还允许从智能手表卸载到服务器,如果Wi-Fi或蜂窝网络连接可用。除了可以在WearOS上收集数据的安卓模块外,我们还为三星Galaxy Watch [51]等智能手表提供了额外的传感器模块。3.2.在下面,我们将描述这个实验
指的是内部智能手机传感器,如GPS或麦克风,而外部传感器指的是通过蓝牙配对的可穿戴设备,比如智能手表。在第二个实验中,我们提出了一种新的部署在边缘设备上的机器学习模型的验证方法,我们称之为循环中的ml模型。为此,我们在智能手机上部署了一个咳嗽检测[12,52]的模型,并通过从服务器发送测试数据来评估它。最后,我们评估了内存和电池的消耗量。所有实验均分别在Android和iOS上进行,使用的设备如表3所示。表3:我们用于进行实验的设备的概述。
这个表显示了我们用于实验的设备以及相应的规范,如随机存取存储器(RAM)容量、中央处理单元(CPU)和内部存储。
3.2.1.采样覆盖率与之前的工作[21]一致,我们进行了一个实验来测试CLAID的数据收集能力。在这个实验中,我们从固定采样率的多个传感器中收集了24小时的数据。从采样率中,我们可以计算出每小时预期的测量值的数量,以便为每小时收集的数据的百分比创建一个度量标准。例如,在20Hz采样的加速度计数据,结果是每小时得到20·60·60 = 72000个样本。我们专注于这个实验的被动数据收集,使用的传感器连续运行,没有进一步的交互。我们使用内部和外部传感器,并配置了采样频率,如表4所示。我们选择了5个内部智能手机表4:采样覆盖实验中每个传感器使用的采样频率概述。
和电池水平),以及两个外部传感器,即极度感应[53]和核心体温传感器[54]。来自麦克风的音频数据被记录在16 kHz,连续块10秒。换句话说,每10秒记录一次一个音频文件,每个文件的长度为10秒,导致连续记录超过24小时。为此,我们通过附加8640个记录的文件来验证音频数据的连续记录,以便通过筛选记录中的不连续点来产生一个24小时的连续音频文件。其他内部传感器被配置为以表中规定的采样率提供数据。通过使用外部传感器,我们的目标是演示如何将新的和定制的传感器与CLAID集成,这里使用极度感和核心传感器。极度感是一种光学心率监测器,以腕带的形式存在,其中包括心率监测和加速度计记录功能。该设备通过蓝牙连接将数据传输到智能手机上。它附带了一个SDK,可以帮助集成到Android和iOS的应用程序中。核心传感器是一种无创的核心体温传感器。它可以通过将传感器连接到一个人的身体[55]上来测量核心体温。CORE传感器也可以通过蓝牙传输数据,但没有提供公共SDK。该传感器的集成必须通过手动来实现。通过这个传感器的选择,我们想要演示CLAID如何促进没有特定SDK的未知传感器的集成。本文的作者之一在实验过程中佩戴了外部传感器。极地真实性感是戴在上臂使用包括的腰带。核心装置附着在阔阔肌上方的胸腔上的身体上极地真实性感是戴在上臂使用包括的腰带。根据用户手册的指示,该核心装置被附着在胸肌和阔肌上方的胸腔上的身体上。除了调查采样覆盖率作为每小时收集多少数据的度量外,我们还希望评估波动网络连接期间数据上传的可靠性。我们使用预定义的协议在24小时的时间内控制智能手机的网络连接,并研究了CLAID如何应对长时间断开和从Wi-Fi切换到蜂窝网络,反之亦然。表5显示了指定的协议。这个原型lular网络。当连接可用时,CLAID将记录的数据传输到服务器。否则,系统将将记录的数据存储在手机的内存中,直到重新建立连接,然后对其进行同步。我们研究了长时间断开后的数据同步,一次通过Wi-Fi,一次通过蜂窝连接。3.2.2.ml模型循环:卸载部署机器学习模型的验证和验证和验证机器学习模型在不同的场景,例如医疗用例,需要部署他们可以使用数据记录通过传感器在边缘设备为了使连续分析。理想情况下,这些机型可以直接部署在智能手机等边缘设备上。然而,当将模型从服务器上的受控训练和测试环境转移到边缘时,可能会出现一些问题。要在边缘设备上运行模型,可能需要将它们转换为支持的格式(例如,拉伸流图)或应用量化,这可能会导致模型性能的差异。此外,不同设备之间的内部传感器的差异可能会影响机器学习模型的准确性和行为。设备的硬件和操作系统上的差异也可能导致计算上的变化,并导致不同的模型输出[56]。由于这些发生的差异,人们必须期望一个模型在首次部署在现场时的性能与实验室环境相比有所不同。调查方差模型跨设备和验证模型的正确执行,我们提出一种新的方法称为ML-Model循环,允许迁移模型从实验室环境一步一步和以受控的方式,这是受到软件循环方法通常用于分析验证[57]。当首先在手机上部署模型时,我们可以通过从服务器发送已知良好的测试数据,并将结果与地面真相进行比较,来测试其性能。这允许调查在智能手机上实现的模型是否对有地面真实信息的数据正确,并逐步调查差异。这种新方法的验证方法
图4:此图显示了我们建议的在边缘设备上验证ML模型的设置,我们将其称为循环中的ML-Model。在这个场景中,来自服务器的已知良好测试数据被流到连接设备上的模型,并进行评估以确保正确的实现。冒险是由CLAID的透明计算机制来实现的。在许多情况下,机器学习模型的训练是使用Python完成的,使用主要的机器学习之一
清单4:Python示例中的咳嗽检测器计算器模块
框架(例如,拉伸流)。用于模型推理的实现管道通常由用于预处理、模型推理和后处理[58]的代码组成。CLAID支持Python。因此,运行在服务器上的Python模块可以与运行在智能手机上的模块进行通信。当将模型从服务器上的训练环境传输到边缘设备时,这种集成允许对管道的单独部分进行验证。在我们提出的场景中,模型将在服务器上进行训练,然后部署在智能手机上,如图4所示。为了确保模型在智能手机上的正确运行,特别是在转换和量化之后,我们可以使用Python中现有代码的已知良好和预处理的数据进行测试。之后,预处理器模块和后处理器模块也可以调整为在智能手机上的部署,并逐个进行测试。作为最后一步,所有模块都可以在边缘设备上运行,并从服务器接收已知良好的测试数据。如果该模型与服务器上的原始实现相比表现良好,那么它可以直接处理从th接收到的数据
如果该模型与服务器上的原始实现相比性能良好,那么它就可以直接处理从智能手机传感器接收到的数据。剩余的性能差异可以归因于硬件传感器的差异。在我们的实验中,我们使用Barata等人的咳嗽检测集成演示了该方法。al [12, 45].该算法通过应用滑动窗口方法分析6秒的音频片段,计算每个窗口的Mel谱图。每个文件的窗口数量可能会有所不同,因为有些窗口可能会由于沉默而被忽略。然后由5个咳嗽检测模型集合进行处理,以预测咳嗽概率,从中我们计算6秒内的咳嗽次数。有关更多细节,我们请参考所参考的出版物。在实验中,我们在Android和iOS上运行集成,并通过集成ex从服务器发送测试数据
现有的评估代码作为一个Python模块,它可以通过通道在电话上与模型进行通信。我们比较了这两个平台的结果,包括咳嗽检测到的数量和计算出的窗口概率。在这个实验中,我们感兴趣的是使用任意的测试集来比较Android和iOS之间的模型实现。我们不评估模型作为咳嗽检测器的性能,这在之前的工作中已经做过。测试数据由278个音频文件组成,每个文件的长度为6秒,记录来自6个不同的患者(5名男性,1名女性)。总共发生了281次咳嗽,其中一些文件包含0次,其他文件多达6次咳嗽。
3.2.3.内存和电池消耗调查如果CLAID的灵活性和抽象是增加资源使用的成本,我们进行了一个实验,允许我们确定资源利用率的电池和内存消耗,以及了解对设备的整体性能运行。这些信息对于决定CLAID是否适合特定应用程序或使用场景的适用性非常有用。比较Android和iOS设备之间的内存和电池消耗情况,可以为了解不同操作系统和硬件配置之间的性能变化提供有价值的见解。在本实验中,我们使用了第3.2.1节中介绍的采样覆盖实验中使用的传感器的一个子集,即加速度计、位置和连通性。加速度计和位置传感器都是基于硬件的,与基于软件的连接传感器相比,预计将消耗更多的资源。之所以选择其他硬件传感器,是因为它们是智能手机中最常用和资源密集型的两个传感器。我们首先运行每个传感器
即加速度计,位置和连通性。加速度计和位置传感器都是基于硬件的,与基于软件的连接传感器相比,预计将消耗更多的资源。之所以选择其他硬件传感器,是因为它们是智能手机中最常用和资源密集型的两个传感器。我们首先单独运行每个传感器两个小时,然后结合运行。然后,我们将结果与基线进行比较,即CLAID在不启用任何传感器的情况下运行,以深入了解CLAID在使用多个传感器时的可伸缩性。在两个小时的时间框架内,我们预计每个传感器的电池消耗将近似为线性的。因此,可以通过计算表示此期间电池消耗的图的斜率,从而对每个传感器的电流绘制进行近似估计。这允许根据当前的绘制来估计运行单个传感器的费用。
4.结果我们将在下面介绍第3.2节中描述的实验的结果和重要发现。我们分别讨论了4.1节中的采样覆盖实验和4.2节中的循环实验中的MLModel。我们将在第4.3节中讨论关于内存和电池消耗的发现。4.1.采样覆盖率图5为采样覆盖率实验的结果。我们将每个样本收到的样本的百分比可视化
图5:抽样覆盖实验的结果。使用完全相同的采样配置,从Android和iOS上的各种传感器上收集24小时的数据。采样率决定了每小时预测的预测样本数。
传感器和每一小时。可以看出,我们实现了100%采样覆盖每个传感器,即加速度计,电池水平,位置,连接,和麦克风数据在智能手机,加速度计,心率,和电池水平极度,以及核心体温的核心设备,Android和iOS。我们在图6中可视化了在Android设备上24小时内记录的一些数据示例。该智能手机的电池水平显示在中
图6a。智能手机从00:30开始充电上午至8时上午,导致电池充满电。它在白天使用,并在11点左右进行额外充电上午和晚上9点半。电池在11点之间连续耗尽上午和晚上9点半,如图所示。类似地,极度感的电池水平如图6d所示。当我们在早上00点开始实验时,该设备已经充满电,并连续使用了24小时,导致电池电量在24小时内从100%下降到20%。核心体温的测量值如图6b所示。我们在早上00点测量了最高温度为37.49摄氏度,
将传感器直接投入运行后,在早上7点的最低温度为36.23度。下午2点至下午3点之间的不连续现象是由于暂时从身体上拆卸传感器而造成的。用极度感测量的心率如图6e所示。在上午00点20分和晚上10点20分左右的不连续现象,再次导致了暂时从体内移除传感器。我们测量了凌晨04点00左右的最小心率每分钟44.0次(bpm),下午3点03:00左右的最大心率133 bpm。最后,图6c和6f分别显示了智能手机和极地度上加速度计的测量值。以加速度表示的测量活动在夜间00:00时很低上午至8时上午,但在08点后就会增加两个设备都是上午。在数据收集过程中,智能手机大多躺在桌子上,因此活动水平低于极度感。关于音频数据,我们在24小时内没有发现单个录音之间的任何不连续性。对于这个位置,由于隐私的原因,我们不提供可视化。已记录的连接性数据文件夹
对于这个位置,由于隐私的原因,我们不提供可视化。记录的连接数据遵循我们在表5中定义的连接协议。即使网络连接突然被禁用了两次,CLAID也能够处理此问题并继续采样。在重新建立连接后,它能够同步所收集到的数据。我们在图7中可视化输入时间的数据。
图7a和图7b显示了在24小时内收集的单个样本的数据接收时间,归一化后表示每个传感器在一个图中已经接收到的文件的百分比。图7d和图7c显示了相同的情况,但对每个传感器都分别显示了相同。上午10时至下午12时及18时至下午20时因网络连接中断而造成的不中断清晰可见。在我们的实验中,使用Wi-Fi的文件同步比通过蜂窝连接的同步更快。这在iOS上可以明显观察到,在下午12点恢复连接后,通过细胞进行的同步花费了近30分钟。无论是在安卓系统还是iOS系统上,通过Wi-Fi进行的同步只花了大约10分钟。请注意,Wi-Fi和蜂窝网络之间的传输速度可能会有所不同。因此,我们在进行实验前,在实验位置测试了连接速度。在蜂窝网络上,我们使用LTE连接记录了平均下载速度为34.1Mbit/秒,平均上传速度为26.5Mbit/秒。在Wi-Fi上,我们记录了平均下载速度为89.9Mbit/秒和平均上传速度
4.2.我们在循环实验中的循环结果如表6所示。我们在安卓和iOS系统上使用了相同的配置。使用从服务器发送的测试数据,我们能够在Android和iOS上获得相同的结果,即在两种设备上检测到的咳嗽次数完全相同。然而,表中所示的指标的结果仅基于检测到的咳嗽的数量。当集合中模型的平均输出在后续的一些窗口中超过某个阈值时,就可以识别咳嗽。即使
图7:每个传感器的样品的数据到达时间。我们根据24小时后预期的样本总数,对每个传感器已经接收的样本百分比进行归一化。不连续性表示在10:00-12:00和18:00-20:00之间的网络连接已中断
模型输出在不同设备之间略有不同,当输出高于阈值时,仍然可以识别咳嗽。在应用阈值之前,我们进一步研究了设备之间直接模型输出的差异。一个6秒的测试文件的典型结果如表7所示。表6:在Android与iOS上的循环实验中ml模型的结果
对于这个特定的测试文件,作为移动窗口过程的一部分,计算了40个窗口的Mel光谱图。请注意,窗口的数量可能会因不同的文件而有所不同,如第3.2.2节所述。有五个模型是集成的一部分,每个模型分别有两个咳嗽或非咳嗽的输出值。这导致该文件的40·5·2 = 400值,代表每个窗口的每个模型的咳嗽或非咳嗽概率。其中,Android和iOS设备之间有181个相同,219个不同,最大偏差和平均偏差如表所示。
4.3.我们分别使用Android(版本2021.2.1)和Xcode(版本14.2)分析器估计电池和内存消耗,它们允许估计单个应用程序的消耗。图8描述了这两种设备的电池消耗量。每个传感器配置的电池水平的起点为100%。在iOS系统上,CLAID在空转或使用传感器较少时比安卓系统消耗更多的电池,但在使用多个传感器时更节能。当所有传感器都在使用时,iOS和Android的电池消耗最高,安卓消耗为76毫安时,iOS消耗为51.32毫安时。当所有传感器组合使用时,电池消耗主要由加速度计传感器决定。在安卓系统上,连接性和位置传感器消耗最少的电池,在两小时内只能消耗4毫安时,而加速度计在同一时间段内消耗76毫安时。相反,在iOS系统上,单个传感器的电池消耗更加平衡,加速度计能大约为24毫安时,位置和
图8:使用不同传感器2小时的电池消耗。电池消耗相当于我们的应用程序估计的电池累积的消耗(总电池消耗)
图9:使用不同传感器的CLAID超过2小时的内存消耗。内存消耗是指我们的应用程序在系统上消耗的RAM总量,包括已分配的数据以及代码所需的空间。连接传感器在两小时内都会消耗约21毫安时。根据电池消耗量,我们计算出了每个传感器的电流拉图,如表8所示。类似于电池水平,相同时期的内存消耗如图9所示。从图中可以看出,Android的内存消耗高于iOS,且消耗情况有很大波动。与此相比,iOS系统上的内存消耗更为稳定。它似乎在第一个小时内增加,然后饱和到稳定的值。当在两个设备上组合使用所有传感器时,可以达到最大的内存使用量。在这种情况下,Android的最大内存消耗是62.42兆(MB)。相比之下,当组合使用所有传感器时,iOS的最大内存消耗仅为7.50MB。因此,在相同的情况下,安卓系统上的内存消耗量要高出8倍多。在不使用传感器时,iOS的内存消耗最低,导致消耗约5.73MB。在Android上,即使没有使用传感器,内存消耗仍然是54.21MB。暂时地说,使用连接和位置传感器需要的甚至更少在iOS系统上。表9总结了每个传感器配置在两个小时内的最大内存消耗量。最后,我们还评估了24小时采样实验中的内存使用情况,使用了9个传感器,发现在24小时内,Android的最大值达到约90MB,iOS的最大值达到50MB。
5.在本文中,我们介绍并评估了一个基于透明计算的中间件框架CLAID,它源于我们在数字生物标记物领域的研究。它的目标是解决缺乏满足数字生物标记物开发要求的框架,特别是模块化(1)、测量(2)、验证和验证(3)。我们的框架允许将边缘和云设备结合成一个逻辑的边缘-云系统,统一了传感器数据收集和跨设备部署机器学习模型的能力。这使得我们甚至可以部署复杂的数字生物标记物模块,并允许在不同的场景下进行验证。下面将讨论主要的发现、与以前工作的比较、实际意义和局限性。
表9:该表显示了两小时内每个传感器的RAM使用量的最大内存消耗量。为了进行比较,我们还提供了在不使用任何传感器的CLAID空闲状态下的最大内存消耗。
主要发现。我们的实验表明,CLAID在几个方面满足了数字生物标记物开发框架的要求,如下文所示。首先,模块化中间件设计能够实现灵活和松散耦合的模块,例如,用于数据收集和机器学习,明确地针对数字生物标记物的模块化需求。可以根据需要调整现有的模块或根据需要添加新的模块。我们的包系统允许集成新特性或扩展。第二,CLAID可以通过跨设备进行稳定的数据收集来进行测量,如实验1所示。鉴于传感器模块可用,数据收集只需要一个配置文件的规范,该配置文件可跨不同的设备或操作系统使用。配置文件的重用使得标准化跨不同设备的数据收集成为可能。新型传感器的集成只需要实现相应的传感器模块。我们的现成的DataSav缓解了数据存储和同步等常见的缺陷
在实验3中,我们还评估了不同配置下的内存和电池消耗,发现CLAID在iOS系统上比在安卓系统上更有效。在Android上,内存消耗大约高出8倍,可能是由于Java虚拟机和垃圾收集器引入的开销。相比之下,iOS上的iOS内存消耗更为稳定。在电池消耗方面,安卓在更少的传感器下表现更好,而在同时使用多个传感器时,电池消耗相对较低。值得注意的是,电池消耗的估计值
近似并受CPU使用、屏幕时间以及Androdio和Xcode中记录实用程序引入的开销等因素的影响,这些因素会增加电池消耗,并导致我们无法解释的内存开销。
与之前的工作比较。之前的工作仅部分解决了第1节中建立的数字生物标记物开发的要求。例如,像Pogo [19]和USense [20]这样的框架专注于模块化,但还没有为医疗用例开发,也不满足需求2和3,因为它们缺乏对外部传感器和机器学习模型的集成的支持。对测量的要求2通过诸如Sensus、雷达基体或CAMS [14,15,21]等框架来解决,这些框架专注于传感。它们特别开发用于从移动和可穿戴设备收集数据,部分也用于医疗用途案例。然而,它们没有提供合并机器学习模型所需的模块化,因此不满足需求1和3。最后,像MobiCOP [22,23]和MTC [24]等框架满足了需求3。虽然它们尚未为医疗场景实现,但它们允许结合边缘资源和云资源来卸载计算,从而使机器学习模型的部署成为可能。然而,它们并不提供与Pogo等框架中相同的灵活性,也不提供支持f
据我们所知,目前还没有任何统一中间件平台、移动传感功能和透明计算和卸载功能的开源框架,这些框架支持Linux、macOS和Windows旁边跨Android、iOS和WearOS的应用程序实现。实际意义。为了方便CLAID的使用,我们提供了现有的软件包,包括用于数据收集、同步、后台任务和机器学习部署的模块。我们的软件包管理器允许安装和管理这些软件包。要在应用程序中使用这些模块,用户可以编写配置文件,这允许他们指定所需模块的名称和属性。基于这些文件,该框架会在运行时加载并配置这些模块。透明的计算功能,使设备和程序之间的无缝数据流-
据我们所知,目前还没有任何统一中间件平台、移动传感功能和透明计算和卸载功能的开源框架,这些框架支持Linux、macOS和Windows旁边跨Android、iOS和WearOS的应用程序实现。实际意义。为了方便CLAID的使用,我们提供了现有的软件包,包括用于数据收集、同步、后台任务和机器学习部署的模块。我们的软件包管理器允许安装和管理这些软件包。要在应用程序中使用这些模块,用户可以编写配置文件,这允许他们指定所需模块的名称和属性。基于这些文件,该框架会在运行时加载并配置这些模块。透明的计算功能,使设备和程序之间的无缝数据流-
明语。我们提供了一个API,允许实现新的模块和自定义模块。通过桌面操作系统上的Python API绑定,可以将数据直接从手机流到服务器上的Python程序。这种功能支持实时可视化和数据分析,例如通过软件包从可穿戴数据生成特征,如调情[17]。这种方法还允许通过集成现有的Python代码来在服务器上部署机器学习模型。另外,我们还提供了机器学习模块,以受支持的格式从文件中加载模型,例如使用张量流Lite,它可以根据需要在服务器或手机上使用。这些模块可以从文件系统、资产(Android)、捆绑包(iOS)或网络路径加载机器学习模型。
限制。基于我们的实验和框架的实现,我们认为以下几点是CLAID的局限性:1。长期评估:虽然我们已经在实验中证明了我们的框架的能力,但我们必须在我们正在进行的研究中进一步评估它,以评估更长时间和不同研究中的可靠性和有效性。此外,与其他框架相比,我们没有在内存和电池消耗方面评估我们的系统。 2.加密:数据隐私和安全是医学研究期间从患者收集数据时的主要问题。目前,CLAID允许使用散列或非个人用户标识符传输假名数据,但是,它还没有在数据存储或传输期间提供对加密的支持。我们目前正在开发一个前瞻性的解决方案,利用我们的反射系统来集成对各种数据类型的加密支持。 3.可持续性:为了处理多种设备、操作系统和传感器的复杂性,我们需要一个系统的方法来延续这个框架,包括文档和文档
6.结论和展望我们所知,CLAID有助于数字生物标记领域(1)提供一个模块化的开源中间件框架,作为一个平台来构建数字生物标记(2)使稳定的数据收集在各种设备,和(3)提供方法部署训练有素的机器学习模型验证和验证。所提供的API允许在不同的编程语言中实现模块,如C-++、Java或Python。现有的软件包提供了能够从各种传感器收集数据的模块
以及机器学习模型的部署。使用透明计算的原则,CLAID允许将运行在设备上的应用程序与任何主要的操作系统相结合,即Linux、macOS、Windows、安卓、iOS和WearOS。用任何受支持的语言编写的模块都可以跨设备进行通信,以交换数据或卸载任务
虽然我们在数字生物标记物的研究领域提出了涉及数据收集和部署机器学习模型的常见场景,但我们的系统并不局限于本工作中提出的用例。由于CLAID模块是松散耦合的,因此可以调整或替换它们,以适应新的用例,或根据需要集成新的模块。通过使用一个允许集成新功能的软件包系统,促进了扩展。由于可以连接多个CLAID实例,因此可以根据需要实现不同的网络拓扑结构,例如,连接多个智能手机或其他设备。在所连接的设备之间没有固定的层次结构,并且可以使用任意的拓扑结构。
在我们今后的工作中,我们将进一步评估我们在该领域的框架。目前,我们正在进行一项研究,从使用多个传感器的参与者那里收集数据,包括在WearOS上运行CLAID的三星Galaxy手表。另一项计划中的研究将涉及各种传感器,如智能手表、肺活量测定设备和音频数据,并伴随着调查和互动元素。这些研究旨在帮助在机器学习的支持下,开发和评估新的数字生物标志物。我们将使用我们平台的模型部署能力在现实场景中测试这些数字生物标记。我们的目标是增强与更多的机器学习算法的兼容性,并能够部署不同的和更大的模型。为了实现这一点,我们打算集成更多的机器学习模块,如热火炬mobile和CoreML,并优化预处理模块以提高效率,从而支持更广泛的机器学习框架。此外,我们目前正在实现对数据存储和上传的加密的支持。我们还在努力通过provi来改善我们项目的长期可持续性
我们要感谢弗朗西斯科·费赫尔对我们的系统评估的实现和贡献。参考文献[1] M. Javaid, A. 《日常生活传感器》,国际传感器2(2021)100121. doi:10.1016/j. sintl.2021.100121. [2] S. Wieser,托莫纳加,里格齐, B. 费舍尔,特尔瑟,普莱切尔,艾切勒,特罗斯特,施温克格伦克斯,瑞士医学研究:施卢斯贝里特(2014)。doi:10.5167/uzh-103453. [3]¨.¨.¨.¨,中低收入国家非传染性疾病的家庭经济负担:系统审查,卫生研究政策和系统19(2021)。
[4] M. M.雅科夫尔耶维奇,《新兴卫生市场非传染性疾病日益增长的负担:细菌的案例,公共卫生前沿》3(2015)65. doi:10.3389/fpubh。2015.00065.[5] A. Coravos,S.科津,K. Mandl,开发和采用安全有效的数字生物标志物以改善患者预后,npj数字医学2(12 2019)。doi:10.1038/s41746-019-0090-4.[6] R. S. H.伊斯特帕尼亚,移动健康(移动健康)回顾:已知未知》,《国际环境研究和公共卫生杂志》19 (7)(2022)。doi:10.3390/ijerph19073747.URL https://www.mdpi.com/1660-4601/19/7/3747 [7] J. Moses,S. Adibi,伊斯兰伊斯兰教,阮,智能手机技术在疾病监测中的应用:系统回顾,医疗保健9(2021)889。doi:10.3390/医疗保健9070889。[8] I. Sim,《移动设备与健康》,《新英格兰医学杂志》381(10)(2019)956-968。[9] L. Babrak,J.梅内茨基,M.雷布汉,G. Nisato,M。津格利尔,布拉齐尔,贝伦法勒,布伦齐科弗,巴尔泽, C. 沃格勒, C. 施耐德,斯特雷夫,格罗宁,美穗,传统和数码数码
国立建民,陈,健康机器学习的挑战与机遇,转化科学联合峰会。AMIA转化科学联合峰会2020(2020)191-200。[12] F.巴拉塔,廷舍特,拉苏里,弗莱施,普汉,布鲁切, D. 《智能手机录音中夜间哮喘咳嗽和咳嗽时代的自动识别、分割和性别分配:观察现场研究,医学互联网研究杂志22(07 2020)》。doi:10.2196/18082. [13] D. 费雷拉,诉科斯塔科斯案, A. 注意:移动上下文仪器框架,ICT前沿2(05 2015). doi:10.3389/fict. 2015. 00006. [14] H.熊Y.黄L. E.巴恩斯,森:跨平台,通用系统,在:2016年ACM普适计算国际联合会议论文集,泛必公司16,计算机协会,纽约,纽约,美国,2016,第415-426页。doi:10.1145/2971648.2971711。URL https://doi.org/10.1145/2971648.29717
J.E.Bardram,CARP移动传感框架-跨平台,反应,编程框架和运行时环境
表型研究,CoRR abs/2006.11904(2020). arXiv:2006.11904. URL https://arxiv.org/abs/2006.11904 [22] J. I.贝内代托,G.瓦伦苏埃拉,P.萨纳布里亚, A. Neyem, J. Nav'on, C. 《可扩展和可靠的移动代码卸载解决方案》,无线通信和移动计算2018(2018)。doi:10.1155/2018/8715294. [23] J. I.贝内代托,洛杉矶冈斯亚雷斯,P.萨纳布里亚, A. Neyem,面向物联网代码卸载的实用框架,未来一代计算机系统92(2019)424-4-437。doi: https: //doi.org/10.1016/j.future.2018.09.056. URL https://www.sciencedirect.com/science/article/pii/S0167739X18302310310[24]Y.Zhou, B. 阳 C. 吴,任,张勇,移动透明计算:一种以用户为中心的统一设备、边缘和云的新方法,IEEE网络33(2)(2)2019)132-137.doi:10.1109/MNET.2018.1700458.[25]E.沙龙,P.mitka,机器人框架,架构和中间件比较(11 2017)。[26] M. A. Razzaque,M。《物联网中间件:一项调查》,IEEE物联网杂志3(1)(2016)70-95。doi:10.1109
J.Toror,M.Kiang,J.Lorme,精神病学新研究的新工具:一个可扩展和可定制的平台,授权数据驱动的智能手机研究,JMIR心理健康3(2016)e16。doi: 10.2196/mental. 5165。[32] S. M.侯赛因,T.赫纳特,N.萨莱欣,N.纳斯林,J.努尔, B.-大脑:用于开发和验证数字生物标记和干预的移动传感软件平台,2017卷,2017年,第1-14.doi:10.1145/3131672.3131694.[33]页 A. Elkady,T. Sobh,机器人中间件:全面的文献调查和基于属性的参考书目,2012年机器人学杂志2012(2012)。[34]I.Adun-Ayo,奥克索拉,文森特,云中间件和服务-系统地图评论,电气工程和信息学公报10(2021)2696-2706.doi:10.11591/eei.v10i5.3169.[35]M.奎格利,K.康利, B. 格基,浮士德,富特,莱布斯,惠勒, A.吴杰华,Ros:一个开源的机器人操作系统,第3卷,2009年。[36] S.马肯斯基,T.富特, B. Gerkey, C. 他说,机器人操作系统2:设计、架构和在野外使用,科学机器人7
飘动着,为任何屏幕构建应用程序(2023年)。
URL https://flutter.dev/ [42] P.埃格斯特,P.费尔伯,R.格罗维,a.m.克尔马雷克,出版/订阅的许多面孔,ACM Comput。冲浪。35(2003)114-131.1.doi:10.1145/857076.857078.[43]W.Jakob,吡绑定11-c++11和蟒蛇之间的无缝可操作性(2023)。URL https://pybind11.readthedocs.io/en/stable/index.html[44]P.Langer11-c++和爪哇之间的互操作性(2023)。URL https://github.com/RealLast/jbind11 [45] F. Barata, D. 陈,陈,布氏,夜间连续非接触式智能电话咳嗽监测:验证研究,JMIR形成研究(2023)。[46]谷歌,协议缓冲(2023)。URL https://developers.google.com/protocol-buffers [47] E.艾因霍恩,T.朗纳,R.斯特里克, C. 马丁,m,机器人应用中间件,2012 IEEE/RSJ智能机器人和系统国际会议,2012,页2591-2598.doi:10.1109/IROS.2012.6385959.[48] A. 奥梅托夫,舒比纳,克卢斯,斯基比恩斯卡,萨菲,帕斯卡西奥,弗鲁图, D. 奎萨达-盖伯,北丘赫诺, A.阿里,查恩
三星,三星银河手表(2023年)。URL https://www.samsung.com/ch/watches/galaxy-watch/ [52] F. Barata, D. 克莱斯, C.-希,拉索里,博施,布鲁切,弗莱施,夜间连续非接触式智能电话病房咳嗽监测:验证研究(02 2023)。[53]极地,极地真实感(2023)。URL https: //support.polar.com/e_manuals/verity-sense/ polar-verity-sense-user-manual-english/manual.pdf [54] greenTEG,核心体温监测(2023)。https://corebodytemp.com/ [55] N. Verdel,波德加,丘哈,H。张志明,核心传感器评估核心体温的可靠性和有效性,传感器21(17)(2021)。doi:10.3390/21175932。URL https://www.mdpi.com/1424-8220/21/17/5932 [56] D. 蒙诺,验证浮点计算的缺陷,关于编程语言和系统的ACM事务30(03 2007)。doi:10.1145/1353445.1353446. [57] M. Ahamed,G。自动驾驶汽车软件建模与仿真框架,2018年,页。0305–0310.doi:10.1109/EIT.201