Stetman读论文小记:Emotion Recognition using Wireless Signals

文章提出了EQ-Radio方法,通过分析人体反射的射频信号无接触地推断情绪。该方法克服了依赖视听技术和物理设备的局限,通过心跳信号预测情绪,使用特殊算法减弱呼吸影响并分割心跳信号。最终,心跳和呼吸特征被用于情绪分类,采用SVM进行情绪状态的识别。

        这是2016年的一篇文章,应该算是物联网中情感识别的开山之作。之前参与物联网课题就有了解过,最近又接触情感识别的相关课题,又重新精读了一遍。

文章简述

        作者认为现存通过视听技术来判断个人情绪的方法并不合适,因为它只关注了外表,并没有从人的内心感受进行推断。文章提出了一种名为EQ-Radio方法:通过分析从人体反射的射频信号来推断一个人的情绪。这种创新的方法消除了对物理接触或佩戴设备的需求,同时也让情绪识别更加便捷和可靠。

        作者提出的方法需要通过心跳信号来对情绪进行预测,而一般情况下呼吸比心跳带来的振动大一个量级,因此分离出所需的心跳信号比较困难;第二,射频信号中的心跳缺乏作为心电信号特征的尖锐峰,这使得很难准确识别心跳边界。第三,节拍间隔的差异(IBI )只有几十毫秒。因此,单个节拍必须在几毫秒内被分割成分段。在没有尖锐特征的情况下,获得这样的准确性尤其困难 识别心跳的开始时间或结束时间。

 作者通过算法分别解决了以上问题:

(1)EQ-Radio 的关键技术是一种从射频信号中提取个人心跳及其差异的新算法。 我们的算法首先减轻了呼吸的影响。我们的缓解机制所基于的直觉如下:虽然吸气-呼气过程导致的胸部位移 比心跳引起的微小振动大几个数量级,但呼吸的加速度却小于心跳的加速度。但呼吸加速度却小于心跳加速度。这是因为呼吸通常是缓慢而稳定的 而心跳则涉及肌肉的快速收缩(发生在局部区域)。这是因为呼吸通常是缓慢而稳定的,而心跳则涉及肌肉的快速收缩(在局部时间内发生)。 因此,EQ-Radio 利用射频信号的加速度 以减弱呼吸信号,突出心跳信号。

(2)EQ-Radio 需要将射频反射信号分割成单个心跳信号。心电图信号有一个已知的预期形状,而射频反射中的心跳形状则是未

EmotionMIL是一种用于从脑电图(EEG)信号中进行情绪识别的端到端多实例学习框架。与传统的机器学习和深度学习方法相比,EmotionMIL的设计旨在解决EEG信号处理中的一些关键挑战,例如信号的高噪声水平、个体间的变异性以及特征提取和选择的复杂性。 在EmotionMIL框架中,EEG数据被处理为多实例(multi-instance, MI)学习问题,其中每个样本(例如一个情绪识别任务中的一个受试者)被视为一个包含多个实例(即EEG信号的不同片段或通道)的包。这种方法允许模型在不依赖于手动特征提取的情况下,自动学习如何从原始EEG信号中识别情绪相关的模式。 EmotionMIL的核心组成部分包括: 1. **多实例编码器**:该模块负责将EEG信号的多个实例编码为低维特征表示。它通常由深度神经网络构成,例如卷积神经网络(CNN)或循环神经网络(RNN),以捕捉EEG信号的时间和空间特征。通过这种方式,模型能够直接从原始EEG信号中学习有用的特征,而无需手动设计特征提取过程[^1]。 2. **注意力机制**:为了提高情绪识别的准确性,EmotionMIL引入了注意力机制,以动态地加权不同EEG通道或时间片段的重要性。注意力机制允许模型在复杂的EEG数据中聚焦于与情绪识别最相关的部分,从而增强其对情绪状态的敏感性[^1]。 3. **多实例分类器**:经过编码和注意力加权后,EEG信号的特征表示被输入到多实例分类器中,以预测情绪类别。分类器通常由全连接层组成,并使用softmax激活函数来输出情绪类别的概率分布[^1]。 4. **端到端训练**:EmotionMIL采用端到端的训练策略,将整个框架的参数联合优化。这种方法避免了传统情绪识别方法中繁琐的特征工程步骤,同时提高了模型的泛化能力。 通过上述设计,EmotionMIL在多个EEG情绪识别数据集上表现出了优越的性能,尤其是在跨个体和跨任务的泛化能力方面。该框架的端到端特性使其能够适应不同的EEG信号采集条件,并在实际应用中展现出良好的潜力。 ```python # EmotionMIL的简化模型结构示例 import torch import torch.nn as nn class EmotionMIL(nn.Module): def __init__(self, input_dim, hidden_dim, num_classes): super(EmotionMIL, self).__init__() self.encoder = nn.LSTM(input_dim, hidden_dim, batch_first=True) self.attention = nn.Linear(hidden_dim, 1) self.classifier = nn.Linear(hidden_dim, num_classes) def forward(self, x): # x: (batch_size, num_instances, input_dim) batch_size, num_instances, _ = x.size() x = x.view(-1, input_dim) # Reshape for LSTM encoded, _ = self.encoder(x) attention_weights = torch.softmax(self.attention(encoded).view(batch_size, num_instances), dim=1) weighted_encoded = torch.bmm(attention_weights.unsqueeze(1), encoded.view(batch_size, num_instances, -1)).squeeze(1) logits = self.classifier(weighted_encoded) return logits ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值