Biometric_Identification_System_based_on_Object_Interactions_in_Internet_of_Things_Environments

2023-05-16

基于物联网环境下对象交互的生物特征识别系统

引言

概论:本文讲述一种将智能环境中与物体发生的自然交互性行为用作生物识别技术的系统

原因:智能设备数量越来越多,但是受限于设备接口有限,这些设备通常没有内置安全控制。智能家居能够识别是哪些用户在与其进行交互,限制未经授权的使用是十分必要的。这样可以实现个性化配置(不同人有不同的操作),同时也可以进行访问控制(只允许某些人进行的操作)。

例如:保护儿童远离危险机器或防止观看不适合其年龄的视频。

可行性:智能设备的异构性使得能够从交互中收集各种各样的输入。

贡献:无论家庭规模或环境配置如何,该系统都能实现高识别精度,具体如下:

  • 构建了一个基于与智能设备交互的新型识别系统。
  • 创建了一个数据集,包含来自六个家庭的 38 台设备的传感器数据,涉及 25 名参与者。
  • 提供重现结果所需的所有数据和代码

结果:在多用户环境中,进行单次对象交互时,系统可以以至少 91% 的平均精度识别用户。当考虑六次或更多次连续交互时,准确率将上升到 100%

相关技术

A. 多传感器融合

         多传感器融合系统,使用不同传感器所提供的不同类型的输入来识别特别动作,信号是从不同的传感器中提取的,而不是依赖于单一的来源。

该领域的主要用于人类活动识别(HAR)。一些HAR系统通过分析物体的方向和加速度来识别特定类型的身体运动。另一些则通过应用传感器融合技术,精确识别烹饪或打扫房屋等任务。

B. 基于交互的生物识别系统

此类系统通过收集用户在执行某些任务(包括打字、鼓掌、行走等)时的独特动作和手势的相关信息来分析用户,可以充分利用内置传感器的异构性。在智能环境中,可以使用多个 IOT 设备来捕捉这些交互。

系统设计

A. 设计目标

      主要目标是为智能环境引入一种直观的、无缝的识别方法。也就是说智能环境应该在用户与智能设备的日常交互过程中识别用户的指纹。

1 系统应该提供无缝的用户体验,不应该要求用户改变他们的正常行为,例如必须执行明确的动作或手势。

2)对于用户来说,系统应该具有较低的错误率。系统应该避免由于系统的错误识别而需要用户的干预的情况。

3)系统不应该有关于传感器放置的特定配置要求。相反,它应该适用于现有的部署。特别是,该系统不应要求每一个用于识别的物体都配备传感器,对于没有传感器的设备,应允许使用 co-located 的装置。

B. 系统概述

生物特征识别系统可以根据用户与智能对象的交互无缝识别用户。此系统模型无需用户参与(或在用户身上安装传感器)、或重新摆放家中智能设备

系统使用智能环境中最常见的传感器(如惯性测量单元(IMU)和麦克风)为物理交互建模。

系统拥有三种模式配置:ON-OBJECT(仅使用交互设备上的传感器提取特征)、OFF-OBJECT(使用附近设备(co-located)的传感器提取特征)、COMBINEDON-OBJECT + OFF-OBJECT)。

C. 参考模型

SenseTribute 是一个基于交互的乘员识别系统,从加速度计和陀螺仪提取信号。本系统从多个方面扩展了 SenseTribute,包括考虑更多的传感器模式、多个家庭而不是一个家庭,以及增加用户数量。本系统能够使用不直接位于物体上的 co-located 传感器来对用户进行指纹识别。这不仅可以显着提高识别性能,而且还使其更容易部署在现有的智能家居中,因为它使用智能设备的自然位置,而不限制它们的放置。它还可以识别与没有传感器设备的交互。

D. 对手模型

        假定的攻击者拥有对屋内智能设备的访问权限。

情形一(错误识别):攻击者以正常方式与 IOT 设备交互,但设备错误地将其识别为授权用户。

注:系统准确性指标实际上比这更严格,因为一个孩子被误认为是另一个未经授权的孩子被认为是一个错误的分类,但不会导致错误地拒绝或授予访问权限。

情形二(模仿攻击):攻击者尝试模仿授权用户的行为。(例如,攻击者与智能设备交互时,试图模仿授权用户的手势。)

实验设计

A. 数据收集

        本文使用在智能家居中常见的传感器收集数据(无法访问商业智能设备中的原始传感器数据),实验中使用的传感器是磁性接触开关(可以检测类似于门/窗接触传感器的打开/关闭事件),USB麦克风(仅用于测量声压级)以及ICM20948 IMU(由加速度计,陀螺仪和磁力计组成)。

将这些传感器安装在十个树莓派上并通过它进行控制。传感器板部署在大多数智能环境中很常见的智能设备(如家用电器或厨房家具)上。与智能对象交互相关的事件由上述磁性触点开关提供。

树莓派通过智能手机提供的无线热点将数据传输到远程服务器。此外,设备存储了测量数据的本地备份。智能手机还允许用户访问一个应用程序,该应用程序可以指导用户完成实验,为每次运行的实验添加标签和时间戳,并同步所有部署的树莓派的时间。。

B. 实验参与者

        共招募了25人,包括六个家庭,其中第六个家庭有两个孩子。

C. 实验环境

为了强调实验的真实世界性质,不会限制参与者在研究期间使用的设备的数量和类型,但主要是在参与者的厨房进行。使用的设备数量因家庭而异,具体取决于厨房的大小,会有六到十个设备不等。每一个智能设备都对应一个对象交互(例如,打开和关闭冰箱门)

对于每一个交互动作都有一个树莓派设备安装在其相应的交互监测点上。唯一的例外是安装在户 H1 地板上的设备。这类设备根据用户在房间内移动时的步态特征为其他交互提供辅助传感器数据。

实验方法

用户 U 与对象 O 之间的交互 I,被模型化为一个时间序列 I = {X1, X2, …, Xz}Xt 是设备传感器在 t 时刻捕获的信号。这些信号来源于各种传感器,如麦克风、加速度计、陀螺仪和磁感其等。

当用户与智能对象 O 交互时,设备本身和 co-located 的传感器提取特征并提供给弱学习者(是指一个分类器,它的结果只比随机分类好一点点) ,计算一级预测 P

这些预测然后由元分类器聚合,并在二级预测层中决定最终的预测 —— PF

A. 预处理

将交互 I 的开始和结束表示为 t0 t1,系统会将信号按照 t0 – 1 t1 + 1 进行分段,然后再提取特征。

I 由多种传感器的特征值组成。因此,对于每个 I 都有一个对应的矩阵 M = S1, S2 Sz 存在,包含不同传感器矢量 Xt,在 t0 – 1 t1 + 1 之间。单个矩阵的列数由传感器组件决定。

对于具有三个内置传感器且每个传感器具有两个组件的智能对象,将生成三个这样的六列矩阵。然后将它们作为输入传递给特征提取函数。

B. 特征提取和选择

矩阵 M 可以从与用户交互的智能设备(ON-OBJECT)、附近的设备(OFF-OBJECT)或两者的组合(COMBINED)中检索。从St的每一列中计算特征,其中包含从t0−1t1 + 1之间提取的传感器值,以考虑物理相互作用的开始和结束运动产生的信号。

该系统从时域和频域中提取特征,包括:平均值、中值、标准差、方差、峰度、偏度、形状因子、绝对能量、二阶导数中心近似值的平均值、绝对变化的平均值和总和、峰值和傅里叶熵。

C. 训练

在训练阶段,每个用户在验证自己后(例如,通过设置PIN),标记自己进行的交互,以避免错误标记数据和训练数据中毒。培训阶段的这些交互必须单独执行(每次一个用户,一次交互)。在实验中,这种标记是通过智能手机应用程序实现的。在训练过程中用用户标识,标记交互生成的特征向量。

D. 集成学习(通过多个机器学习器完成学习任务) —— 集成算法根据上一步获得的结果创建二级预测

1)投票

         系统将硬投票(聚合弱学习者的预测,选择获得票数最多的类)作为基线集成方法。每个智能设备实现一个弱学习器,该弱学习器在其自身传感器提取一组特征的情况下进行一个预测,该预测被输入到一个元分类器中,该元分类器基于最常重复的类,输出最终的预测。

2)堆叠

堆叠的元分类器使用弱学习者的预测作为其特征进行训练。堆叠可以提高系统准确率,它会丢弃不太准确的对象。

系统使用随机森林算法作为堆叠元分类器。

评估

检验方法:本文使用十折交叉验证(将数据集分成十份,轮流将其中9份作为训练数据,1份作为测试数据,进行试验。每次试验都会得出相应的正确率/错误率。10次的结果的正确率/错误率的平均值作为对算法精度的估计)将整个数据集分为训练数据和测试数据。

存在问题:大多数人都是在同一天进行数据采集的,这并不能反映出他们的行为随着时间的推移可能发生的变化。

提升:SenseTribute 5 人环境中的平均目标准确率仅为 74%,而我们的系统在人口密集的环境中至少可获得 88% 的更高分数,从而将识别性能比 SenseTribute 系统提高 14%

识别性能的比较:精度是针对 ON-OBJECT 配置计算的(使用性能最差的配置)。在这种情况下,系统会学习哪些对象具有更好的分类性能,并依赖于它们的预测。与堆叠不同,投票为所有基分类器分配相等的权重;因此,它们同样有助于最终的预测(可以通过为性能较差的分配较小的权重)。

结论:1、除了 H1 H4 外其余家庭均是 COMBINED 更为准确,这是因为这两个家庭的 IOT 设备之间的距离更远(屋子里的设备的摆放和间距是存在一定影响的)2、当输入来自交互设备本身和 co-located 两种传感器的数据对系统最有利(考虑到 H1 H4 两个家庭,说明 IOT 设备的摆放将确定哪种系统配置更适合给定的智能环境)。3、随着家庭成员数量的增加,两个元分类器的性能开始分化。总体而言,堆叠元分类器在识别性能方面优于投票元分类器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Biometric_Identification_System_based_on_Object_Interactions_in_Internet_of_Things_Environments 的相关文章

  • 如何从另一个 Excel 实例引用工作簿

    我相信我的问题相当简单 我有一个工作簿 我正在使用它从另一个软件 SAP 获取一些数据 当我从软件导出数据时 它会自动打开一个 xlsx 文件 然后我需要做的是从该文件复制一些数据 粘贴到我的原始工作簿上 然后关闭该文件 我的代码中给我带来
  • JAVASCRIPT - 为什么这个对象没有改变?

    function myFunc theObject theObject make Ford model Focus year 2006 var mycar make Honda model Accord year 1998 var x my
  • 如何使用 new 干净地初始化 Ruby 中的属性?

    class Foo attr accessor name age email gender height def initalize params name params name age params age email params e
  • 如何在 R 中使用别名运行系统可执行文件?

    假设我正在 R 中运行系统命令来运行executable inputfile lt path myfile txt 我该如何更换 path myfile txt在下面的命令中inputfile如下面命令所示 system executabl
  • JS如何获取多维数组的最大深度?

    我有一个多维数组 我想知道它的最大深度 我发现了这个灵魂 但它不适用于对象数组 const getArrayDepth arr gt return Array isArray arr 1 Math max arr map getArrayD
  • 为什么对于整数键,“Map”操作比 JavaScript (v8) 中的“Object”慢得多?

    我很高兴使用Map对于在我的 JavaScript 代码库中随处访问的索引 但我刚刚偶然发现了这个基准 https stackoverflow com a 54385459 365104 https stackoverflow com a
  • 匿名添加对象时从ArrayList获取特定对象?

    我创建了一个关于我的问题的简短示例 我正在匿名创建一个对象列表并将它们添加到ArrayList 一旦物品进入ArrayList我稍后回来并向列表中的每个对象添加更多信息 如果您不知道其索引 有没有办法从列表中提取特定对象 我只知道对象的 名
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • Python 中的方括号和点符号有什么区别?

    我来自 Javascript 背景 可以通过以下方式访问属性 and 符号 所以请原谅我 但是 Python 中两者之间到底有什么区别 从我的实验看来 应该始终使用 两者都可以获取 a 的索引list or set并从 a 中的某个键获取值
  • 当我尝试在 PHP 中访问类变量时,类变量为 null

    好吧 这是我的主要代码 require checkpassword php require mysqllogininfo php Validate password if validatePassword GET password retu
  • Android系统应用程序信息

    我想要一些有关系统应用程序的一般信息 我正在与一家制造商合作 他们愿意向我提供使我的应用程序成为系统应用程序所需的信息 但是 我不确切知道这些信息应该是什么 也不知道如何更改我的应用程序以使其成为具有给定信息的系统应用程序 我相信我的清单中
  • 为什么这个对象属性未定义?

    考虑下面的代码 首先console log正确记录图像 您可以在下图中看到其属性 但是 当我尝试将其属性记录到控制台时 我得到undefined console log that data 0 cards works see image b
  • 如何在 PHP 中对数组和数据进行排序?

    这个问题旨在作为有关 PHP 中数组排序问题的参考 人们很容易认为您的特定案例是独特的并且值得提出新问题 但大多数实际上只是此页面上的解决方案之一的微小变化 如果您的问题因与此问题重复而被关闭 请仅在您能解释为什么它与以下所有问题显着不同的
  • 将 FORTRAN 对象传递给 C,反之亦然

    我有我的 Fortran 对象 即 this object a this object b this object c 我想将它传递给用 C 编写的代码 我主要是一名 FORTRAN 程序员 而且我很少接触 C 我正在使用iso c bin
  • 将 Javascript 对象的属性从 string 更改为 int

    我有一个对象数组 每个对象具有三个属性 年份 总计 人均 例子 0 Object per capita 125 8 total 1007 2 year 2009 这些属性是字符串 我想创建一个循环来遍历数组并将它们转换为 int 我尝试了以
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 使用 include 的 Javascript 过滤对象

    我正在尝试使用 javascript 中的 filter 函数来过滤对象 我想过滤这样的数组 1615 1616 它在代码中被引用为 value verdier 数据集是一个大型数组 包含从 JSON 字符串解析的具有多个属性的对象 数组中
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R

随机推荐