刘 勇,谢若莹,丰 阳,王亚辉,刘亚清
1.四川轻化工大学 人工智能四川省重点实验室,四川 自贡 643000
2.大连海事大学 信息科学技术学院,辽宁 大连 116026
3.晋中职业技术学院 电子信息学院,山西 晋中 030600
行为识别在公共安全、健康医疗、人机交互等领域有着重要的应用。例如,使用行为识别技术可以对公共场所中潜在的危险或者犯罪行为进行预警,可以对行人摔倒、跌落等意外行为进行识别,进而为其提供及时的援助。行为识别一般是使用传感器来感知人的行为,通过对感知数据的分析来推断人的行为。根据使用的传感器的类型,行为识别可以分为三类:基于视频的行为识别、基于可穿戴设备的行为识别以及基于环境传感器的行为识别。基于视频的行为识别主要是根据摄像仪记录的视频,使用视频分析与处理技术来对视频中人的行为进行识别。由于视频容易暴露人的隐私,基于视频的行为识别一般适用于公共场所。基于可穿戴设备的行为识别是根据可穿戴设备(例如智能手机)记录的行人姿态的变化来识别行人的行为。基于可穿戴设备的行为识别适合识别一些相对简单的行为,例如“摔倒”或者“跌落”。基于环境传感器的行为识别是根据行为触发的传感器事件流来对当前的行为进行识别。由于环境传感器一般部署在相对封闭的空间内,能够很好地保护人们的隐私,也不需要附着额外的可穿戴设备,因此环境传感器在智能家居中获得了应用。
智能家居中的日常行为识别可以在不侵犯居民隐私的前提下,通过对居民日常行为的识别发现其是否存在认知功能障碍(例如阿尔茨海默症)。由于认知功能障碍的鉴定需要长期对居民日常行为的变化进行跟踪,因此智能家居中日常行为识别的意义在于,借助日常行为识别可以极大地减少对认知障碍居民的护理成本。同时,普适计算(Pervasive Computing)和泛在智能(Ambient Intelligence)技术的兴起与发展也有力地推动了日常行为识别在智能家居中的应用[1-2]。本文主要对智能家居中居民日常行为识别的研究现状进行综述,并指出该领域未来的研究方向。
环境感知的智能家居是指在居民家中安装了若干非入侵式传感器,例如地板压力传感器、开关传感器、温度传感器等,当居民在家中进行日常行为(例如做饭、睡觉等)时,会先后触发部署在房间的传感器[3]。日常行为识别的目的就是根据触发的传感器序列来推断居民当前正在进行哪一种日常行为。
如图1所示,居民的日常行为识别过程由四个阶段组成。
图1 日常行为识别流程图
第一个阶段,获取传感器事件流。当居民在进行日常活动时将连续地触发部署在房间内的传感器,从而产生传感器事件流。一个被触发的传感器事件是一个四元组(时间,传感器,传感器值,日常行为)。图2所示的传感器事件流包含两个日常行为“洗澡”和“睡觉”,当用户在洗澡时将连续地触发传感器“M021”“BATV012”“LS013”“LS013”四个传感器。居民睡觉时连续触发“BATV013”“M021”“MA013”“M018”“MA013”五个传感器。
图2 传感器事件流示意图
第二个阶段,传感器事件流分割。按照分割策略,传感器事件流被划分为若干个子序列。
第三个阶段,特征选择与特征值计算。根据特征选择方法和特征值计算策略产生能够描述日常行为的特征集以及相应的特征值。
第四个阶段,根据日常行为识别模型,对分割后传感器事件流蕴含的日常行为进行识别。
对于给定的一段时间(通常为一天),居民将进行多个日常行为。对这些日常行为触发传感器事件流的分割质量直接关系到日常行为识别的效果。传感器事件流的分割方法主要有两种:基于固定窗口长度的传感器事件流分割方法和基于可变窗口的传感器事件流分割方法。
图3 传感器事件流分割示意图
如图3所示,基于固定窗口长度的传感器事件流分割方法可分为基于等时间的传感器事件流方法和基于等传感器事件数的传感器事件流方法。基于等时间的传感器事件流分割方法的主要思路是事先设定一个时间片t(通常是几秒到十几秒),然后根据这个时间片来对传感器事件流进行平均分割。基于等传感器事件数的传感器事件流分割方法的主要思路是事先指定一个整数n,然后依次以n个被触发的传感器事件为单位对传感器事件流进行分割[4-6]。不难看出,基于固定传感器事件流的方法的优点在于分割方法简单易行。由于不同日常行为持续的时间和触发的传感器数量差异极大,如果窗口设定太小,将导致持续时间较长或者触发传感器较多的日常行为被分割得支离破碎;如果窗口设定太大,将出现多个日常行为被划分在一个窗口里的情形。因此,无论窗口太大或者太小都会影响到日常行为特征的选择和特征值的计算,进而影响到日常行为识别的效果。
基于可变窗口的传感器事件流分割的主要思想是根据不同的日常行为对传感器事件流进行分割。Cook等人提出一种基于窗口概率密度(Probability Density)变化点检测算法,根据两个连续时间序列的概率密度的差异来确定两个窗口之间是否存在行为类别转换,进而实现对传感器事件流的分割。该方法的创新在于定义了表征窗口传感器事件流概率密度的公式以及概率密度差异性的公式[7-8]。Krishnan 等人对日常行为之间时间间隔的依赖关系、传感器事件的依赖关系以及日常行为的上下文信息进行统计分析,提出一种基于可变窗口的传感器事件流分割方法[9]。Wan等人认为同一日常行为在空间和时间上具有较强的相关性,因此定义了用于反映连续两个传感器事件的传感器相关度和触发时间相关程度的公式,通过计算连续两个传感器事件的相关度来确定传感器事件流的边界[10]。Shahi等人融合了传感器事件依赖度、传感器触发频率以及日常行为时间间隔等时空特征,提出了一种基于互信息(Mutual Information,MI)的传感器事件流分割方法[11]。Aminikhanghahi等人则构建了包括时间特征、传感器特征和窗口特征的三大类特征和十七个小类特征的体系结构,根据特征体系提出了一种行为变化点检测的算法来进行传感器事件流分割[12]。Triboan 等人认为基于数据驱动的传感器事件流分割方法的鲁棒性较差,通过构建日常行为间的语义关系模型,提出了一种基于语义的传感器事件流分割方法,提升了传感器事件流分割方法的鲁棒性[13-14]。类似地,Okeyo 等人使用本体模型对传感器事件流进行分割[15]。由于能够将属于同一日常行为触发的传感器事件流分在一组,基于可变窗口传感器事件流分割后的日常行为识别质量要明显优于基于固定窗口传感器事件流分割后的日常行为识别质量。但是基于可变窗口的传感器事件流分割需要设计专门的算法来对传感器事件流进行分割,导致识别结果往往有一定的延迟,因此并不适合实时性要求较高的日常行为识别问题。
日常行为特征可以分为时态特征和空间特征[16]。时态特征通常包括传感器事件流开始的时刻、事件流持续的时间以及传感器事件流结束的时刻。空间特征通常由初始的传感器集合或者其频繁项、频繁序列构成。例如,Liu等人以传感器事件流开始的时刻、事件流持续的时间和初始的传感器集合为特征集进行日常行为识别[17]。但是由于一些日常行为在空间特征上的相似性,由单个传感器构成的空间特征集合不足以反映这些日常行为的差异。于是,Wen等人和Nasreen等人使用频繁模式挖掘算法来挖掘频繁的传感器组合,从而构建日常行为的空间特征集[18-19]。Twomey 等人提出一种无监督的方法来学习传感器在智能家居中的拓扑结构,根据拓扑结构挖掘有效的传感器事件组合作为日常行为特征[20]。
对于时态特征,传感器事件流开始时刻的近似值、持续时间的近似值以及结束时刻的近似值是最常见的特征值计算指标。对于空间特征,传感器触发的次数、触发的密度是最常见的特征值计算指标[21]。由于特征值的计算策略影响日常行为识别的效果,也有学者提出使用基于TF-IDF 公式[22]、基于互信息公式[23]、深度学习(Deep Learning,DL)技术[24]来计算特征值的策略。
根据居民数量、识别目的以及识别环境的差异,日常行为识别主要包括面向单居民日常行为识别、面向多居民日常行为识别、异常行为识别和异构环境下的日常行为识别。
面向单居民的日常行为识别方法可以分为数据驱动的行为识别方法和知识驱动的行为识别方法。
(1)数据驱动的行为识别方法
数据驱动的行为识别方法通常将日常行为识别看作一个分类问题,主要包括基于产生式分类的方法、基于判别式分类的方法和基于集成分类的方法[25-26]。
①基于产生式分类的方法
Fahad等人首先利用主成分分析(Principal Component Analysis,PCA)方法来约简日常行为特征,然后使用Lloyd’s 算法对训练数据聚簇,最后以簇为单位构建基于Evidence TheoreticKNN 分类器的日常行为识别模型[27]。由于传感器事件流是一个时间序列,一些学者以隐马尔可夫模型(Hidden Markov Model,HMM)为基础模型对日常行为进行识别。例如,Kasteren等人使用HMM 来对日常行为进行识别[28]。Lu 等人使用一种改进的HMM模型BP-HMM对日常行为进行识别[29]。
②基于判别式分类的方法
Fahad等人以支持向量机(Support Vector Machine,SVM)作为基础模型,先后提出基于“距离最小化”和“概率估计”公式的日常行为识别模型[30-31]。Tong和Chen等人以条件随机场(Conditional Random Field,CRF)为基础模型,先后提出了Latent-Dynamic CRF 和Hidden State CRF模型进行日常行为识别[32-33]。Bourobou等人首先使用聚簇算法从日常行为样本中获取行为模式,然后使用时态人工神经网络(Artificial Neural Network,ANN)模型进行日常行为识别[34]。Bianchi 等人根据可穿戴传感器和Wi-Fi信号传递信息,使用卷积神经网络(Convolutional Neural Network,CNN)模型来对居民的日常行为进行识别[35]。江南大学的谢林柏教授利用卷积神经网络训练深度运动图数据,使用密集轨迹来描述RGB 视频序列的动态运动信息,最后根据提取到的静态特征和动态特征使用SVM对日常行为进行识别[36]。中国社会科学院大学的盖赟等人提出了一种基于包含多尺度卷积算子的卷积神经网络识别模型,可以同时计算行为序列样本在时间和空间的特征[37]。
③基于集成分类的方法
当日常行为的类别较少时,单一的分类模型能够取得较好的分类效果,但是当日常行为识别的类别增多后,单一的分类模型的效果则不尽如人意。国内外学者尝试使用集成分类模型对日常行为进行识别。Hu 和Nef 等人分别验证了随机森林(Random Forests,RF)的效果要明显优于单一的分类模型[38]。Krawczyk 提出主动学习(Active Learning,AcL)和自适应学习(Adaptive Learning,AdL)相结合的策略来进行日常行为识别[39],Medina-Quero等人提出长短期记忆模型(Long and Short Term Memory Model,LSTM)和模糊时态窗口技术相结合的方法进行日常行为识别[40]。Jurek 等人提出基于聚类的集成学习方法,首先使用K均值聚类算法来训练基分类器,然后根据基分类器的支持度来集成基分类器[41]。Wu等人认为泛在传感器和可穿戴传感器能够分别实现对日常行为不同粒度的识别,基于这一认知提出了一个日常行为识别框架,首先利用集成学习方法对居民的日常行为实现粗粒度的识别,然后根据居民身上可穿戴传感设备感知日常行为细节,实现对日常行为的细粒度识别[42]。
(2)知识驱动的行为识别方法
知识驱动行为识别方法的主要思想是建立日常行为之间的逻辑约束规则,根据逻辑约束规则,借助自动推理技术来对日常行为进行识别。本体是知识驱动的方法中被普遍采用的逻辑模型。例如,Meditskos 等人和Salguero 等人使用精确本体来描述日常行为之间的逻辑关系[43-44]。Safyan等人使用本体对具有共存关系的日常行为进行识别[45]。Rodriguez 等人构建了模糊行为本体进行日常行为识别[46]。Gayathri等人则构建了基于马尔可夫逻辑网(Markov Logic Network,MLN)的概率行为本体[47]。为提升行为识别的效果,Noor等人使用不确定性推理方法进行行为识别[48]。
异常行为识别是指对“突变”的日常行为及时地做出判断,例如老年人连续睡觉时间超过常规睡眠时间则存在突发疾病的可能性[49]。
异常行为识别通常被看作一个孤立点检测问题。Dahmen等人使用聚类的方法来发现异常行为[50]。Lotfi等人使用递归神经网络(Recursive Neural Network,RNN)来识别独居老人是否患有老年痴呆症[51]。Civitarese 等人使用逻辑推理的方法来识别异常行为[52]。Arifoglu等人分别使用递归神经网络(RNN)、Vanilla递归神经网络(VRNN)以及长短期记忆模型(LSTM)对异常行为进行识别[53]。Mahmoud等人提出一种两阶主成分分析(PCA)来计算日常行为的差异度,使用Hamming 距离和模糊推理方法来识别异常行为[54]。江南大学的谢林柏教授等人提出了一种基于双重残差网络的行为识别方法,用于检测居民跌倒的异常行为[55]。
异构环境下的日常行为识别是指在一个智能家居中训练学习到的行为识别模型能够对另外一个智能家居中的日常行为进行识别。目前,异构环境下的日常行为识别主要有基于迁移学习(Transfer Learning)和基于本体两种方法。例如Hu 等人使用Web Mining 技术来计算两个不同智能家居中的日常行为的相似性,根据相似性来标注目标家居中的日常行为,然后使用迁移学习技术来识别目标智能家居中的日常行为[56]。Samarah等人提出一种基于雾计算(Fog Computing)的日常行为识别框架,在这一框架下计算源智能家居和目标智能家居的环境相似度,然后使用迁移学习方法进行日常行为识别[57]。Ding 等人提出一种深度学习和迁移学习相结合的模型进行日常行为识别[58]。Wemlinger等人首先定义了一个共享的语义特征空间模型,然后采用机器学习的方法来计算语义特征空间的参数,最后根据这个特征空间模型实现日常行为识别[59]。Chiang 等人认为异构环境下日常行为识别的关键在于日常行为特征的表示以及目标智能家居环境和源智能家居环境的特征对齐策略,基于这一观点提出了一种日常行为特征分解、组合以及对齐的特征处理算法用于日常行为识别[60]。
多居民(Multi-residents)日常行为是指在智能家居中有多个居民参与的日常行为。多居民日常行为的特点在于不同居民的日常行为在时间上完全或者部分是并行执行的。相比较单居民的日常行为识别,多居民日常行为识别的复杂性在于除了要识别日常行为的类别,还要识别日常行为的主体。
Chen 等人以条件随机场作为基本模型,提出一种两阶段的行为识别方法,分别用于识别行为类别和行为主体[61]。Alemdar等人使用因子隐马尔可夫模型(Factorial HMM)作为识别模型,然后使用Nonlinear Bayesian Tracking 策略实现行为主体的分离[62]。Benmensour 等人认为不同居民执行同一日常行为特点是不同的,于是将行为识别和行为主体识别合并为一个分类问题,提出两种改进的隐马尔可夫模型进行日常行为识别[63]。Hao等人则将行为识别和行为主体统一在一个多维概念格模型下,使用该模型一次性地完成对日常行为的识别[64]。
表1 日常行为识别方法小结
如前所述,智慧家居中居民日常行为识别方法可以分为数据驱动的方法和知识驱动的方法。如表1所示,知识驱动的方法的优势在于识别模型的可移植性较强,且无需对数据进行标注。其局限性在于居民日常行为表现的多样性,导致构建、维护一个完备的识别模型较为困难,而且识别模型通常是根据先验知识来构建,因此不能有效地应对目标数据中存在的噪音和不确定性。此外,随着识别模型复杂度的增加,推理的复杂度必然随着增加,导致识别效率下降。知识驱动的方法主要应用在单、多居民的日常行为识别,异构环境下的日常行为识别的场景下。数据驱动方法的优势在于能够较好地处理数据中存在的噪音以及不确定性,而且学习到的识别模型能够很好地覆盖日常行为的特征。其局限性在于识别模型的构建需要大量已标注的数据,此外,对数据的严重依赖导致学习到的模型的可移植性较差,模型的移植需要借助迁移学习完整源域到目标域的映射。基于数据驱动方法的优缺点,数据驱动的方法主要应用在单、多居民的日常行为识别,异构环境下的日常行为识别以及异常行为识别的场景下。
公开的日常行为识别数据集主要包括荷兰阿姆斯特丹大学(University of Amsterdanm)发布的Kasteren数据集和华盛顿州立大学(Washington State University)CASAS(Center for Advanced Studies in Adaptive Systems)发布的数据集。其中CASAS 是目前为止规模最大、使用最广泛的日常行为识别数据集[3]。如表2 所示,CASAS在49个测试床下共搜集并发布了64个数据集,包括了面向单用户的日常行为数据集、面向多用户的日常行为数据集和面向异常行为的数据集。一些数据集是全部标注(A),一些是部分标注(P),其他是未标注(N)。
表2 CASAS数据集基本信息
常用数据集的信息如表3所示,涉及约30种日常行为,主要包括“睡觉(Sleep)”“如厕(Toilet)”“工作(Work)”“做饭(Cook)”“吃饭(Eat)”“洗餐具(Wash)”“洗澡(Bath)”“穿衣服(Dress)”“吃药(Take_Medicine)”“待客(Entertain_Guests)”“看电视(Watch_TV)”“阅读(Read)”等。测试床中的传感器可以分为7 大类,包括“温度传感器(T)”“红外运动传感器(M)”“广域红外运动传感器(MA)”“光传感器(LS)”“电灯开关传感器(L)”“门开关传感器(D)”“电量传感器(BA)”,其中“光传感器”“电量传感器”“温度传感器”被触发时将输出实数值,“红外运动传感器”“广域红外运动传感器”“门开关传感器”“电灯开关传感器”被触发时输出布尔值。
表3 常用数据集中的日常行为信息
智能家居中的居民日常行为识别仍是一个尚未彻底解决的问题,具体表现在:
(1)目前传感器事件流分割方法的关键是定义评价两个日常行为在空间和时间上连续程度的公式,这种公式往往是局部的,并未考虑分割结果在整个传感器事件流上的影响。随着日常行为类别的增多,传感器事件流的分割效果在急剧下降。提升分割效果的一种途径是将传感器事件流分割视为一个多目标优化问题:首先随机确定k个边界值作为初始种群,然后通过训练集来训练深层神经网络模型,利用局部泛化误差作为适应度函数来评估每次训练得到的深度模型的泛化能力。在每一次评估中,具有较小泛化误差的模型胜出。经过若干代的突变、交叉和选择操作后,最终输出最优的传感器事件边界。
(2)虽然已有大量的特征计算策略提出,但是这些策略仍然较为有限并且单一(传感器及其组合被触发的频率是最常用的特征计算策略),日常行为特征计算策略有待进一步挖掘和融合。单一的行为识别方法已经难以大幅提升当前行为识别的效果。融合知识驱动与数据驱动方法的优势是日常行为识别未来研究的一个方向。在日常行为识别本体的构建过程中,可以引入机器学习的方法来确定日常行为间的分类和非分类关系,进而提升日常行为识别本体的表达能力;进一步,引入概念隶属度来更加精确地描述日常行为间的分类关系。
(3)日常行为识别模型是对居民已经发生的日常行为时空规律的抽象表示,但是不能对居民未来发生的日常行为进行预测。未来该领域的研究方向之一是日常行为预测,能够对居民遗漏的日常行为(例如吃药)进行有效提示;能够根据居民日常行为的时空轨迹,判断居民是否已开始或者已经患有认知疾病,从而给出相应的预警。实现日常行为预测的方法之一是采用聚类算法对已经发生的日常行为进行聚簇,通过计算给定日常行为与已经发生日常行为的特征相似度来预测居民当前的日常生活轨迹是否存在变化。
本文对智能家居中的居民日常行为识别研究现状进行了综述。通过对研究现状的分析可知,经过多年艰苦的研究和探索,居民日常行为的研究已经取得了长足的进展,涌现出大量有价值的成果。然而,当面临更为复杂的行为场景时,现有的行为识别研究并未达到人们的预期,仍然需要探索新的模型和方法来进一步推动智能家居中居民日常行为识别的研究。