【论文精读】 | 基于图表示的视频抑郁症识别的两阶段时间建模框架

news2024/11/18 20:14:12

文章目录

    • 0、Description
    • 1、Introduction
    • 2、Related work
      • 2.1 Relationship between depression and facial behaviours
      • 2.2 Video-based automatic depression analysis
      • 2.3 Facial graph representation
    • 3、The proposed two-stage approach
      • 3.1 Short-term depressive behaviour modelling
      • 3.2 Video-level depressive behaviour modelling
      • 3.3 Depression recognition
    • 4、 Experiments
      • 4.1 Datasets
      • 4.2 Implementation details
      • 4.3 Comparison to existing approaches
      • 4.4 Ablation studies
      • 4.5 Cross-dataset evaluation
      • 4.6 Conclusions and discussion

0、Description

本文并非逐句翻译,添加个人理解与疑惑,如有需要,请自行阅读原文

在这里插入图片描述

Two-stage Temporal Modelling Framework for Video-based Depression Recognition using Graph Representation

标题:基于图表示的视频抑郁症识别的两阶段时间建模框架
期刊:发表于IEEE TRANSACTIONS ON AFFECTIVE COMPUTING
数据集:AVEC2013/14/19
实验环境:NVIDIA GeForce RTX 4090 D
代码地址:https://github.com/jiaqi-pro/Depression-detection-Graph

  • 基于视频的自动抑郁分析提出了一个两阶段的框架,从多尺度短期和视频水平的面部行为来模拟抑郁症的严重程度。短期抑郁行为建模阶段首先从多个短时间尺度上深度学习抑郁相关的面部行为特征,其中提出了抑郁特征增强(DFE)模块,以增强所有时间尺度上的抑郁相关线索,并去除非抑郁相关的噪声。
  • 在视频级抑郁行为建模阶段,提出了顺序图表示(SEG)和谱图表示(SPG)两种新的图编码策略,将目标视频的所有短期特征重新编码为视频级图表示,总结出与抑郁相关的多尺度视频级时间信息。因此,生成的图表示可以同时使用短期和长期面部行为模式来预测抑郁症的严重程度。

痛点:目前市面上方法大多数要么忽略了时间信息,要么只考虑在预定义的时间窗口内显示的单尺度短期面部动态。由于面部动态是面部行为的关键组成部分,并且考虑到抑郁相关的线索可能在不同的时间尺度上被面部行为编码,因此这些方法将在特征提取阶段错过关键信息

1、Introduction

总结:多尺度面部行为的重要性,抑郁特征增强(DFE)模块,以及两种图编码策略:顺序图表示(SEG)和谱图表示(SPG)

  • 两阶段框架:第一阶段关注短期抑郁行为建模,第二阶段关注视频级抑郁行为建模。
  • 抑郁特征增强(DFE)模块:在短期行为建模阶段,使用DFE模块来增强与抑郁相关的面部行为特征,并去除不相关噪声。
  • 图表示法:在视频级行为建模阶段,使用两种新的图编码策略——序列图表示(SEG)和谱图表示(SPG)——来重新编码所有短期特征为视频级图表示

在这里插入图片描述
从目标视频的每个薄片中提取特征,并通过DFE模块进行处理,最终生成视频级图表示供GNNs处理

  • 深度学习应用于视频级抑郁相关描述符的标准方法是从每个视频中选择固定数量的关键帧,然后将其提供给3D cnn以学习视频级抑郁描述符。然而,这些深度学习方法通常会丢弃大量帧,忽略了可能包含抑郁症分析关键信息的局部短期面部动态。

  • 在论文中提出了一个具体的、两阶段的框架,用于基于视频的自动抑郁分析。

  • 第一个短期抑郁行为建模阶段扩展了时间金字塔网络(TPN),从目标视频的每个薄片中学习多尺度短期面部行为特征,然后提出了抑郁特征增强DFE模块,该模块由相互时间注意MTA)模块和噪声分离(NS)模块组成,以进一步增强提取的抑郁相关线索,同时在不同的时间尺度上抑制非抑郁相关的噪声。

时间金字塔网络:核心思想在于通过构建多层次的特征金字塔,来捕获视频数据中不同时间尺度的行为特征。这些特征金字塔在时间上具有不同的接收域,能够捕捉到从短程到远程的多种行为模式。

图像金字塔是一种通过梯次向下采样获得的图像分辨率集合,其中每一层图像都是对前一层图像分辨率的降低。层级越高,图像越小,分辨率越低。

  • 在第二个视频级抑郁行为建模阶段,建议使用图表示来表示整个视频编码的抑郁相关特征,从而将目标视频的所有薄片级特征总结为统一的描述函数。

  • 多尺度时间行为特征提取(MTB模块):从视频中提取不同时间尺度的短期行为特征。
  • 相互时间注意(MTA)模块:作为DFE的一部分,用于增强不同时间尺度上学习到的特征中的抑郁相关线索
  • 噪声分离(NS)模块:同样作为DFE的一部分,用于分离和去除非抑郁相关的噪声。
  • 图神经网络(GNNs):用于处理视频级图表示,以估计抑郁严重程度。

2、Related work

2.1 Relationship between depression and facial behaviours

相关工作:抑郁症与面部行为之间存在关联,例如抑郁症患者通常表现出积极情绪的面部表达减少。早期方法使用传统机器学习模型和手工提取的特征,如局部二值模式(LBP)和边缘方向直方图(EOH)。深度学习方法通常采用单阶段框架,从单帧或整个视频中提取特征,但可能忽略长期面部行为动态。

之前的研究表明,抑郁症与人类的面部行为有很好的关联。一个关键的发现是,抑郁症通常伴随着积极悄绪的面部表现减少,这在各种研究中得到了频繁的验证。

  • 结果表明,抑郁严重程度高的个体表现出较少的亲和性面部表情(AU12和AU15),但更多的非亲和性面部表情(AU14)和头部运动减少。Scherer等人研究了基于FACS的视觉特征,发现抑郁症可以通过更向下的凝视、更低的微笑强度、更短的平均微笑持续时间、更少的嘴部运动和更多的皱眉来预测。

2.2 Video-based automatic depression analysis

图神经网络(GNNs)被用于处理视频级抑郁行为建模阶段得到的视频级图表示。GNNs 特别适合处理图结构数据,能够捕捉节点之间的复杂关系,这在面部行为特征的分析中尤为重要。

序列图表示(SEG):将视频中的每一帧或薄片作为一个节点,根据时间顺序和预定义的时间尺度连接节点,形成序列图。
谱图表示(SPG):将每个面部行为特征的维度视为一个节点,使用离散傅立叶变换(DFT)将时间序列数据转换为频谱数据,然后选择低频成分作为节点特征,构建谱图。

  • 尽管基于深度学习的方法能够捕获视频级别的视听描述符,但它们是单阶段方法,在具体学习短期行为动力学中与抑郁相关的线索方面存在不足。虽然其中一些方法使用rmn/lstm来模拟视频帧级预测之间的长期时间依赖性,但在模型训练期间,它们仍然需要将每个帧/薄片与视频级标签配对,从而导致学习的模型存在问题。
  • 这是因为不同抑郁状态(不同视频级别抑郁标签)的受试者可能具有非常相似的帧级或短期行为(模型的相似输入),例如微笑或神经面部表情。然而,将相似的输入模式与不同的标签配对会导致不适定的机器学习问题,使得学习一个好的假设几乎是不可能的。此外,上述方法都没有研究过将视频级别的面部行为表示为图形的想法。在本文中,提出了一种两阶段的方法来模拟短期和视频级别的抑郁,其中视频级别的面部行为被编码成图形表示。

2.3 Facial graph representation

  • 很少有方法使用图表示来学习时空面部行为。特别是,一些方法将面部地标作为顶点,通过为每一帧构建一个空间图,然后将它们连接为一个时空图,将空间面部图扩展到时空域,其中帧间边缘连接连续帧之间的相同节点。另一种方法为每个面部序列构建一个面部序列图,其中将每一帧视为一个顶点,并将一对帧之间的关系定义为相应的边缘特征。
  • 然而,上述方法都不适合为包含人脸区域的长时间视频构建图表示,因为时空图和序列图中的顶点和边的数量会随着帧数的增加而增加,使得它们难以训练。受此启发,在本文中,提出了第一个工作,即从长视频中构建用于自动抑郁分析的面部行为图表示。

3、The proposed two-stage approach

在本节中,提出了两阶段框架,即短期抑郁行为建模阶段和视频级抑郁行为建模阶段。框架旨在使用目标视频的所有可用帧,学习用于抑郁严重程度估计的多尺度短期和长期面部行为特征。该方法的第一阶段 由两个模块组成,多尺度时间行为特征提取模块MTB),用于学习不同时空尺度的短期行为特征抑郁特征增强模块(DFE),用于增强与抑郁相关的线索,并从提取的行为特征中抑制非抑郁噪声。

  • 随后,对于视频级行为建模阶段,提出了两种新的图表示,每种图表示都将提取的整个视频的多尺度短期描述符总结为视频级图表示,该图表示编码多尺度抑郁相关线索。最后,将结果图表示提供给gnn,以提供视频级别的抑郁预测。

两阶段框架
第一阶段:短期抑郁行为建模,关注多尺度短期面部行为特征。
第二阶段:视频级抑郁行为建模,构建视频级图表示,总结短期特征

3.1 Short-term depressive behaviour modelling

基于时间金字塔网络构建了MTB模块 。如图下所示,MTB由多个分支组成,可以从图像序列中学习多尺度时空特征。每个分支包含多个3D resnet,这些resnet在特定空间尺度上从相同的输入面部图像序列生成特征图。不同分支输出的特征图(通道号、高度、宽度)的大小是不同的,这是由它们独立设计的结构造成的,包括空间和时间卷积操作的跨步和核大小设置。这使得来自不同分支的表示输出具有不同的时空尺度。特别是,每个分支首先在一个独特的空间尺度上重新调整输入序列的大小,因此可以学习多个空间层次的特征序列。然后,附加一个空间编码模块来对齐生成。

在这里插入图片描述

  • 相互时间注意MTA模块:该模块的主要目的是增强分别从每个时间尺度学习到的特征编码的抑郁相关线索。假设在不同的时间尺度上学习到的抑郁相关线索是高度相关的,因为所有的特征都是为了预测目标个体的抑郁严重程度而学习的,即预测相同的分数。由于注意操作可以明确地定位和突出表示之间的相似语义,MTA模块旨在识别和增强从MTB中学习到的所有潜在特征的显著区域(高度相关息)。
'''
 放入tpn提取特征
'''
tpn = TPN_attention( in_channels=cfg.necks.in_channels,
                 out_channels=1024,
                 spatial_modulation_config=cfg.necks.spatial_modulation_config,
                 temporal_modulation_config=cfg.necks.temporal_modulation_config,
                 upsampling_config=cfg.necks.upsampling_config,
                 downsampling_config=cfg.necks.downsampling_config,
                 level_fusion_config=cfg.necks.level_fusion_config,
                 aux_head_config=cfg.necks.aux_head_config,
                 )
class MTA(nn.Module):
    def __init__(self):
        super(MTA, self).__init__()
        self.tpn_resnet_slow = resnet_slowfast
        self.tpn = tpn
        self.fc1 = nn.Linear(100352,2048)
        self.dropout = nn.Dropout(p=0.1)
        self.relu1 = nn.ReLU()
        self.fc2 = nn.Linear(2048,1)

    def forward(self,data,label):
        data_1  = data.permute(0,2,1,3,4)
        backbone = self.tpn_resnet_slow(data_1)
        out, loss_aux = self.tpn(backbone, target= label)
        tpn_feature = out.reshape(out.shape[0],-1)
        tpn_result_0 = self.fc1(tpn_feature)
        tpn_result_0 = self.dropout(tpn_result_0)
        tpn_result_0 = self.relu1(tpn_result_0)
        tpn_result = self.fc2(tpn_result_0)
        return tpn_result,loss_aux,tpn_result_0

特征增强与初步预测

  • MTB的输出特征被输入到MTA: 通过相互时间注意力(MTA)模块,增强与抑郁状态高度相关的特征,得到加权特征向量 f M T A f^{MTA} fMTA ,并使用 f M T A f^{MTA} fMTA 去进行预测,得到MTA预测结果 D M T A D^{MTA} DMTA .

  • 计算MTA的损失函数 L M T A L_{MTA} LMTA

L MTA = 1 N ∑ n = 1 N ( D n MTA − D n ) 2 L_{\text{MTA}} = \frac{1}{N} \sum_{n=1}^{N} \left(D_n^{\text{MTA}}-D_n\right)^{2} LMTA=N1n=1N(DnMTADn)2

其中, D n D_n Dn 表示对应的抑郁等级,用于训练和评估模型的准确性。

深入特征分离与损失计算

  • MTA的输出特征向量接着传入 Noise Separation (NS) 组件。该组件分离出与抑郁症相关的特征 F n Dep F_{n}^\text{Dep} FnDep 和与抑郁无关的噪声 F n Non F_{n}^{\text{Non}} FnNon,并重构特征 R f e a t _ i R_{feat\_i} Rfeat_i , 以及预测抑郁等级 D N S D_{NS} DNS

计算NS相关损失:

  • 计算NS的预测损失函数 L N S L_{NS} LNS

L NS = 1 N ∑ n = 1 N ( D n NS − D n ) 2 L_{\text{NS}} = \frac{1}{N} \sum_{n=1}^{N} \left(D_n^{\text{NS}}-D_n\right)^{2} LNS=N1n=1N(DnNSDn)2

其中,

D n NS D_n^{\text{NS}} DnNS表示第 n n n 个样本经过NS 预测的抑郁等级。

D n D_n Dn 表示第 n n n 个样本真实的抑郁等级

  • 计算相似度函数 L s i m L_{sim} Lsim

L sim = 1 N 2 ∑ n = 1 N − 1 ∑ i = n + 1 n ( F n Dep − F i Dep ) 2 L_{\text{sim}} = \frac{1}{N^2}\sum_{n=1}^{N-1} \sum_{i=n+1}^n (F_{n}^\text{Dep}-F_{i}^\text{Dep})^2 Lsim=N21n=1N1i=n+1n(FnDepFiDep)2

其中,

F n Dep F_{n}^\text{Dep} FnDep F i Dep F_{i}^\text{Dep} FiDep 是从共享抑郁编码器中提取的抑郁相关特征。

索引 n n n i i i 为相同类别但是不同个体的输入特征索引。

在这里插入图片描述

  • 计算非相似度函数 L D − s i m L_{D-sim} LDsim

L D-sim = 1 N 2 ∑ n = 1 N ∥ ( F n Dep ) ⊤ F n Non ∥ Frob 2 L_{\text{D-sim}} = \frac{1}{N^2} \sum_{n=1}^{N} \left\|(F_{n}^{\text{Dep}})^{\top} F_{n}^{\text{Non}} \right\|_{\text{Frob}}^{2} LD-sim=N21n=1N (FnDep)FnNon Frob2

其中,

F n Dep F_{n}^{\text{Dep}} FnDep 为第 n n n 个输入特征的抑郁相关特征

F n Non F_{n}^{\text{Non}} FnNon 为第 n n n 个输入特征的与抑郁无关特征

∥ ⋅ ∥ F 2 \left\| \cdot \right \| ^{2}_{F} F2 表示平方Frobenius范数,通常用于计算矩阵的元素平方和。

  • 计算重构函数 L R e c L_{Rec} LRec

L Rec = 1 N × J ∑ n = 1 N ∑ j = 1 J ( F n Dec ( j ) − F n ( j ) ) 2 L_{\text{Rec}} = \frac{1}{N \times J} \sum_{n=1}^{N} \sum_{j=1}^{J} \left(F_n^{\text{Dec}}(j) - F_n(j)\right)^{2} LRec=N×J1n=1Nj=1J(FnDec(j)Fn(j))2

3.2 Video-level depressive behaviour modelling

  • 与抑郁相关的短期面部行为线索外,长期行为通常是估计抑郁严重程度的更可靠来源。为此,首先回顾了为基于视频的自动抑郁分析构建视频级(长期表示所遇到的主要问题)标准ML/CNN模型要求输入视频确认为固定大小,而从不同受试者收集的人脸视频通常具有可变长度,原始视频通常包含大量帧,无法直接提供给ML/CNN模型。简单地计算所有细视频切片的预测特征的统计数据,放弃了关键的面部动态,而将变长视频降采样到相同长度[则丢弃了大量携带重要信息的帧。

为了缓解这些问题,提出了两种视频级面部行为图表示编码策路:序列图表示(SEG)和频谱图表示(SPG),它们不仅编码多尺度短期和长期面部动态,而且保留目标视频中所有可用帧的信息,而不管其长度如何。

在这里插入图片描述
在这里插入图片描述
首先,我们提出将可变长度的人脸视频直接表示为具有可变顶点和边缘数量的序列图表示(SEG),以表示目标被试在视频水平上与抑郁相关的面部行为。每个顺序图表示(SEG)的拓扑结构取决于其相应视频的长度(即荐切片的数量)。

  • 对于SEG,视频中的每个薄切片级抑椰相关特征都被表示为一个顶点,该顶点基于两个标准与其他顶点连接,即它们在视频中的时间邻接性和预定义的时间尺度。
    具体来说,给定我们的MTB-DFE提取的视频级面部行为表示(对应于视频,我们将其大小定义为[Kn,J],其中K表示视频的片段数,J表示每个片段级凹陷特征的维度。
  • 然后,我们用K节点构建其SEG,每个节点特征具有J个属性。对于表示给定nth视频的i片段的每个节点vin,有三种类型的有向边将其与其他节点连接起来。

①第一组有向边从vin开始到m个连续节点vi+1n,vi+2n,…,vi+mn,总结短期面部动态上图中用黄色ar行表示)。

②第二种类型的有向边缘从vin开始,到对应于给定视频的(i+p)th段的节点v”,旨在模拟长期面部时间演化上图中用黑色箭头表示)。参数m和p的烧蚀分析在补充材料中提供。

③第三组有向边从前面的节点连接到v(上图4(b)中用蓝色箭头表示)

为了处理产生的具有不同类型的sg,我们使用图注意网络(GAT)从这些seg中进行抑郁预测。这有利于直接处理与可变长度视频相对应的图(包含不同数量的节点),从而允许使用所有可用帧在视频级别预测抑郁。不同m和p值的分析在补充材料中提供。

  • 简而言之,假设MTB-DFE从每个薄切片中提取J个深度学习的面部属性J-D短期特征,对于具有任意帧数的视频,为每个视频构建具有J个顶点的SPG,其中每个顶点描述一个面部属性并具有K个维度。
  • 为每个视频构建一个具有J个顶点的SPG,其中每个顶点描述一个面部属性并具有K维。具体来说,顶点特征中的每个维度对应于一个唯一的视频级频率,表示整个视频中对应的面部属性的唯一时间模式(即对应的面部属性在视频中以一定速度变化的频率)。
  • 因此,顶点特征的所有维度决定了相应视频级面部属性时间序列的最终形状,这进一步反映了该面部属性在视频中激活的强度、持续时间和频率。
  • SPG中的每个顶点特征包含J个抑郁相关面部属性的多尺度(K个时间尺度)视频级面部时间榄式。在本文中,定义了SPG中的所有顶点都是完全连接的,这使得所有深度学习的面部属性都可以直接连接,并被GNN预测器用于抑郁症识别。

在这里插入图片描述

3.3 Depression recognition

一且获得视频级别的图形表示,我们采用最先进的GAT来预测抑郁症的严重程度。GAT使用遮罩自注意层为不同的顶点分配不同的权重。

  • 重要的是,它可以同时处理不同类型的图。在本文中,GAT模型由几个GAT层(层数在补充材料中提供)和全连接(FC层组成,以便从每个输入图表示中输出单个抑郁严重程度评分。
GAT: Graph Attention Network
Graph Attention Networks (Veličković et al., ICLR 2018)
https://arxiv.org/abs/1710.10903
class GATNet(nn.Module):
    def __init__(self, net_params):
        super().__init__()
        num_atom_type = net_params['num_atom_type']

        hidden_dim = net_params['hidden_dim']
        num_heads = net_params['n_heads']
        out_dim = net_params['out_dim']
        in_feat_dropout = net_params['in_feat_dropout']
        dropout = net_params['dropout']
        n_layers = net_params['L']
        self.readout = net_params['readout']
        self.batch_norm = net_params['batch_norm']
        self.residual = net_params['residual']
        self.dropout = dropout
        self.in_feat_dropout = nn.Dropout(in_feat_dropout)
        self.embedding_h = nn.Linear(num_atom_type, hidden_dim * num_heads)
        self.layers = nn.ModuleList([GATLayer(hidden_dim * num_heads, hidden_dim, num_heads,
                                              dropout, self.batch_norm, self.residual) for _ in range(n_layers-1)])
        self.layers.append(GATLayer(hidden_dim * num_heads, out_dim, 1,
                                    dropout, self.batch_norm, self.residual))
        self.MLP_layer = MLPReadout(out_dim, 1)   # 1 out dim since regression problem


    def forward(self, g, h, e):

        h = self.embedding_h(h)
        h = self.in_feat_dropout(h)
        for conv in self.layers:
            h = conv(g, h)
        g.ndata['h'] = h
        
        if self.readout == "sum":
            hg = dgl.sum_nodes(g, 'h')
        elif self.readout == "max":
            hg = dgl.max_nodes(g, 'h')
        elif self.readout == "mean":
            hg = dgl.mean_nodes(g, 'h')
        else:
            hg = dgl.mean_nodes(g, 'h')  # default readout is mean nodes
            
        return self.MLP_layer(hg)
    
    def loss(self, scores, targets):
        loss = nn.MSELoss()(scores,targets)
        # loss = nn.L1Loss()(scores, targets)
        return loss

4、 Experiments

4.1 Datasets

实验是在AVEC2013和AVEC2014挑战对应的视听减压语料库上进行的。

  • AVEC2013挑战使用的语料库包含150个视听片段,其中每个片段记录了受试者参与一系列预先定义的任务,例如在解决任务时大声说话,持续元音发音,持续大声元音发音,从1数到10,以及持续微笑元音发音。
  • AVEC2013视频时长从20分钟到50分钟不等,平均25分钟。AVEC2014挑战赛使用的语料库还包含150个视听片段,其中每个片段包含两个子片段,分别记录两个任务:Northwind和Freeform
  • 与AVEC2013语料库相比,AVEC2014语料库的子片段长度要短得多(从6秒到4分8秒不等)。对于这两个数据集,每个片段都标有贝克抑郁量表(BDID评分,表示抑郁严重程度,范围从最小0到最大63.
  • 在AVEC2019抑郁数据集上评估了我们的方法,该数据集被称为扩展痛苦分析访谈语料库。它是woz-aic数据集的扩展版本。该数据集记录了动画虚拟计算机代理采访人的场景下的音频和视频剪辑。该数据集包含163个用于训练的受试者,56个用于验证的受试者和56个用于测试的受试者的片段,其中8项患者健康问卷(PHQ-8)分数被用作抑郁症严重程度标签。

与AVEC2013/2014数据集不同,该数据集只提供了几个馍级面部描述符作为视觉模态,而不是原始视频。

  • 在的实验中,使用基于CE-CLM地标检测器的OpenFace2.0对每帧的人脸区域进行裁剪和对齐,其中获得的人脸图像分辨率为112×112。对于人脸检测失败的每一帧,我们将其替换为榄型训练前视频中最近一帧提取的人脸图像。

4.2 Implementation details

MTB模块设置

  • AVEC2013和AVEC2014数据集:使用由三个预训练在VGGFace2上的ResNet-50网络组成的MTB模块。
  • 空间尺度:考虑三个空间尺度,通过三个分支处理输入序列(30帧,每帧尺寸为3×112×112),生成不同空间尺度的特征图序列。
  • 输出尺寸:生成的特征图集具有不同尺寸,分别为256×28×28、512×14×14和2048×4×4。
  • 最终输出:三个时序特征图集,每个集包含1024个1×4×4大小的特征图,转换为2048维的一维潜在特征向量。

DFE模块设置

  • MTA模块:包含三个非局部模块和三个相互关注模块,用于增强不同时间尺度上的特征表示。
  • NS模块:一个标准编码器,包含四个1D卷积层(内核数分别为1024、512、128和32),用于分离抑郁相关和非抑郁特征。

抑郁症识别模型(GAT)

  • GAT层:模型包含一个GAT层,用于处理图结构数据。
  • 读出层:使用“均值”运算来聚合读出层中节点的特征。
  • FC层:包含三个全连接层,带有ReLU激活函数。

训练细节

  • 优化器:使用Adam优化器进行训练。
  • 损失函数:使用最小均方误差(MSE)作为损失函数。

超参数

  • AVEC2013和AVEC2014数据集:MTB的批大小、学习率和β2分别设置为5、1e-5和0.999。
  • AVEC2019数据集:所有实验设置为24、1e-5和0.999。

RMSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} n1i=1n(yiy^i)2

MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| n1i=1nyiy^i

4.3 Comparison to existing approaches

  • 在本节中,将提出的方法与现有的最先进的基于视觉的方法进行比较,这些方法已经在AVEC2013/2014年的洼地数据集中报告了他们的结果。从表1和表2可以看出,本文提出的短期建模模块(MTB-DFE模型在所有列出的基于薄片的抑郁症识别方法中已经达到了第二好的性能,可以与最先进的方法相媲美

在这里插入图片描述


4.4 Ablation studies

下图首先将提出的MTB模块与标准帧级模型(ResNet-50)和单尺度短期时间模型进行了比较,用于基于面部行为的短期抑郁症识别。在预处理设置相同的情况下,这三种方法唯一的区别是提取的特征的时间尺度不同,ResNet-50(静态特征)、C3D(单尺度动态特征)和MTB(多尺度动态特征)。结果表明,MTB模型比单尺度时间模型和框架水平模型的RMSE分别提高17.9%和20.2%,CCC分别提高303.7%和52.6%,表明抑郁相关线索嵌入在多个时间尺度的面部行为中,即多尺度时间模型对基于人脸的抑郁症识别至关重要。
在这里插入图片描述

此外,我们通过梯度加权类激活映射(GRAD-CAM)可视化了下图中使用DFE模块的影响,以识别与抑郁状态相关的面部区域。对于所有原始模型,热图都是基于它们最后一个池化层输出的特征图一致地生成的。
在这里插入图片描述

同时,对于所有基于DFE的模型,热图都是基于其DFE模块的最后一个最大池化层输出的特征图生成的。与原始模型相比,添加DFE模块可以帮助他们提取抑郁线索从面部区域而不是背景中提取C3D来自更重要的面部区域,包括嘴、鼻子和左脸颇,这与之前的研究结论一致,即高抑郁水平的受试者在AU12、AU15(与嘴有关)、AU9(与鼻子有关)和AU36(与嘴有关)和左脸颊的激活较少。

  • 可见,左验颊始终如一地为抑郁分析提供了更多线索。我们假设这是因为控制身体左侧(例如左脸颊)的右半球在管理人类梢铭状态方面起着关键作用,因此在推断抑郁状态方面更有信息:或DMTB:通过关注更具区别性的面部区域(却眉毛和眉毛之间的区域,这与抑郁受试者通常在这些区域的肌肉相对过度活动的结论相对应
  • 最后,比较了C3D和MTB-DFE在使用它们进行短期建模、视频级建模和两阶段建模时的结果。两阶段系统(将C3D/MTB-DFE)作为短期模型,然后使用SPG进行视频级建模的结果)在两种网络的所有三种设置中都取得了最好的结果,显示了所提出的两阶段框架的明显优势。这些结果可以用以下事实来解释:基于C3D/mtb-dfe的视须级建模在降采样过程中丢弃了短期面部行为细节,这些细节可能包含识别抑郁症的关键线索。

ATP:我们将所有薄片级预测平均为视频级预测
STA:我们使用引入的12个统计量来表示每个特征维度的视频级信息,然后将所有特征维度的统计量连接起来作为视频级表示。然后将生成的视频级别表示馈送到MLP以生成视频级别预测。
SPV:我们采用介绍的频谱编码算法,将所有薄片级特征总结为视频级频谱向量,然后将其馈给MLP以生成视频级预测。
SPH:我们采用频谱编码算法,将所有薄片级特征总结为视频级光谱热图,然后将其馈送到1D-CNN以生成视频级预测。
SEG:我们使用提出的顺序图表示将所有薄片级特征总结为视频级表示,然后将其馈送到1DCNN以生成视频级预测。
SPG:我们使用提出的谱图表示将所有薄片级特征总结为视频级表示,然后将其馈送到GatedGCN以生成视频级预测。

在这里插入图片描述

4.5 Cross-dataset evaluation

为了进一步评估提出的方法的泛化能力,我们还报告了下表中的跨数据集评估结果。

在这里插入图片描述

我们观察到,在AVEC2013数据集上训练的模型在两个AVEC2014任务上表现良好,特别是预训练的MTB-DFE模型的PCC和RMSE分别达到了0.732和8.04。相比之下,在AVEC2014的短视频上训练的MTB-DF模型的鲁棒性较差。特别是,在自由形式视频上训练的模型比在北风视频上训练的模型产生了更好的结果。由于AVEC2013任务和自由形式任务是无媒介和复杂的,而北风视频是在严格控制的条件下录制的(即只要求参与者阅读预先定义的德语段落),AVEC2013视频和自由形式视频(特别是AVEC2013视频)包含比北风视频更丰富的面部行为。因此,我们假设这些模型可以从AVEC2013视频和自由形式视频中提取更多与抑郁相关的线索。

  • 换句话说,它表明,在引发更多自然行为和反应的任务上训练的模型提供了更好的泛化能力。
  • 还可以观察到,在AVEC2013和自由形式任务上训练的大多数MTB-DFE模型优于相应的MTB-DFE+SPG模型。这可以解释为MTB-DFE只关注于从短期面部行为预测抑郁,不同的任务仍然可能触发一些类似的短期面部行为。然而,SPG模型试图学习视频级别的面部行为,这意味着它们在很大程度上取决于任务的全局上下文。因此,MTB-DFE+SPG模型在跨数据集评估中的泛化能力较差。

4.6 Conclusions and discussion

根据AVEC2013、AVEC2014和AVEC2019的实验结果,我们得出结论:两阶段方法优于大多数现有方法,具有边际优势:MTB-DFE模型也比所有现有的短期抑郁建模方法产生更好的性能,其中DFE模块大大提高了性能,显示出其增强抑郁相关线索和去除非抑郁噪声的能力(两种视频级别的图形表示都可以进一步提高抑郁症识别性能,其中spg比seg和其他基线产生更好的预测,这表明它可能是总结视频任意数量的薄片级别特征的优越策略)

提出的两阶段框架可以很容易地使用各种短期和长期建模方法进行扩展。
特别是,在相同的设置下,两阶段建模总是比相应的一阶段方法提供更好的预测。

  • 虽然提出的两阶段框架在抑郁症识别方面取得了最好和最稳健的性能,但一个主要的限制是这两个阶段是单独实现的,这意味着深度学习的短期抑郁症特征可能仍然不是最优的。如果短期抑郁建模和视频级抑郁编码可以集成到一个端到端框架中,那么短期和视频级抑郁表示都可能得到潜在的改进,并产生更好的预测。
  • 此外,现有的视听AVEC数据集仅包含150个片段,并且这些数据集是在受控的实验室环境中收集的。因此,这些实验并不能完全验证所提出的方法在现实世界应用中的实用性。因此,该领域未来的一项重要工作是收集更大的现实世界视听数据集,并将其提供给社区的公共研究使用。最后,由于DFE模块和SPG在抑郁分析方面取得了显著的成果,将它们扩展到类似的视频级/剪辑级识别任务中。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1955449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

18746 逆序数

这个问题可以使用归并排序的思想来解决。在归并排序的过程中,我们可以统计逆序数的数量。当我们合并两个已经排序的数组时,如果左边的数组中的元素��于右边的数组中的元素,那么就存在逆序,逆序数的数量就是…

力扣SQL50 按分类统计薪水 条件统计

Problem: 1907. 按分类统计薪水 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 Code SELECT Low Salary AS category,SUM(CASE WHEN income < 20000 THEN 1 ELSE 0 END) AS accounts_count FROM AccountsUNION SELECT Average Salary category,SUM(C…

DBus快速入门

DBus快速入门 参考链接&#xff1a; 中文博客&#xff1a; https://www.e-learn.cn/topic/1808992 https://blog.csdn.net/u011942101/article/details/123383195 https://blog.csdn.net/weixin_44498318/article/details/115803936 https://www.e-learn.cn/topic/1808992 htt…

Vue3 Pinia的创建与使用代替Vuex 全局数据共享 同步异步

介绍 提供跨组件和页面的共享状态能力&#xff0c;作为Vuex的替代品&#xff0c;专为Vue3设计的状态管理库。 Vuex&#xff1a;在Vuex中&#xff0c;更改状态必须通过Mutation或Action完成&#xff0c;手动触发更新。Pinia&#xff1a;Pinia的状态是响应式的&#xff0c;当状…

JAVA中的异常:异常的分类+异常的处理

文章目录 1. 异常的分类1.1 Error1.2 Exception1.2.1 运行时异常1.2.2 非运行时异常 2.异常的处理2.1 try catch用法2.2 throws和throw的区别 1. 异常的分类 Throwable类&#xff08;表示可抛&#xff09;是所有异常和错误的超类&#xff0c;两个直接子类为Error和Exception分…

C++11新特性——智能指针——参考bibi《 原子之音》的视频以及ChatGpt

智能指针 一、内存泄露1.1 内存泄露常见原因1.2 如何避免内存泄露 二、实例Demo2.1 文件结构2.2 Dog.h2.3 Dog.cpp2.3 mian.cpp 三、独占式智能指针:unique _ptr3.1 创建方式3.1.1 ⭐从原始(裸)指针转换&#xff1a;3.1.2 ⭐⭐使用 new 关键字直接创建&#xff1a;3.1.3 ⭐⭐⭐…

敏感信息泄露wp

1.右键查看网页源代码 2.前台JS绕过&#xff0c;ctrlU绕过JS查看源码 3.开发者工具&#xff0c;网络&#xff0c;查看协议 4.后台地址在robots,拼接目录/robots.txt 5.用dirsearch扫描&#xff0c;看到index.phps,phps中有源码&#xff0c;拼接目录&#xff0c;下载index.phps …

【Go - context 速览,场景与用法】

作用 context字面意思上下文&#xff0c;用于关联管理上下文&#xff0c;具体有如下几个作用 取消信号传递&#xff1a;可以用来传递取消信号&#xff0c;让一个正在执行的函数知道它应该提前终止。超时控制&#xff1a;可以设定一个超时时间&#xff0c;自动取消超过执行时间…

Oat++ 后端实现跨域

这里记录在官方的例子中&#xff0c;加入跨域。Oat Example-CRUD 在官方的例子中&#xff0c;加入跨域。 Oat Example-CRUD 修改AppComponent.hpp文件中的代码&#xff0c;如下&#xff1a; #include "AppComponent.hpp"#include "controller/UserController…

8、从0搭建企业门户网站——网站部署

目录 正文 1、域名解析 2、云服务器端口授权 3、Mysql数据库初始化 4、上传网站软件包 5、Tomcat配置 6、运行Tomcat 7、停止Tomcat 8、部署后发现验证码无法使用 完毕! 正文 当云服务器租用、域名购买和软件开发都完成后,我们就可以开始网站部署上线,ICP备案会长…

表达式的转换

题目&#xff1a; 表达式的转换 - 洛谷 P1175 - Virtual Judge 思路&#xff1a; 这道题可以拆成两问&#xff1a; 第一问&#xff0c;将中缀表达式转成后缀表达式放入一个数组 第二问&#xff0c;将后缀表达式的数组计算&#xff0c;并输出过程 第一问思路&#xff1a; …

Python高维度大型气象矩阵存储策略分享

零、前情提要 最近需要分析全球范围多变量的数值预报数据&#xff0c;将grb格式的数据下载下来经过一通处理后需要将预处理数据先保存一遍&#xff0c;方便后续操作&#xff0c;处理完发现此时的数据维度很多&#xff0c;数据量巨大&#xff0c;使用不同的保存策略的解析难度和…

信息安全技术解析

在信息爆炸的今天&#xff0c;信息技术安全已成为社会发展的重要基石。随着网络攻击的日益复杂和隐蔽&#xff0c;保障数据安全、提升防御能力成为信息技术安全领域的核心任务。本文将从加密解密技术、安全行为分析技术和网络安全态势感知技术三个方面进行深入探讨&#xff0c;…

C++笔试强训9

文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 函数形参是个int类型的引用&#xff0c;传参的时候直接传一个int类型的变量就行 故选A 1.malloc/calloc/realloc—>free 2. new / delete 3. new[] / delete[] 一定要匹配起来使用&#xff0c;否则…

猫头虎分享:Numpy知识点一文带你详细学习np.random.randn()

&#x1f42f; 猫头虎分享&#xff1a;Numpy知识点一文带你详细学习np.random.randn() 摘要 Numpy 是数据科学和机器学习领域中不可或缺的工具。在本篇文章中&#xff0c;我们将深入探讨 np.random.randn()&#xff0c;一个用于生成标准正态分布的强大函数。通过详细的代码示…

ADS 使用教程(二十九)Understanding Bounding Area Layer for FEM

上一篇&#xff1a;ADS 使用教程&#xff08;二十八&#xff09;Working with FEM Mesh & Field Data in ADS 这一节&#xff0c;我们来一起了解一下有限元法&#xff08;FEM&#xff09;中的边界区域层&#xff08;Bounding Area Layer&#xff09;&#xff0c;这是定义仿…

python项目实例和源码权限管理系统

✌网站介绍&#xff1a;✌10年项目辅导经验、专注于计算机技术领域学生项目实战辅导。 ✌服务范围&#xff1a;Java(SpringBoo/SSM)、Python、PHP、Nodejs、爬虫、数据可视化、小程序、安卓app、大数据等设计与开发。 ✌服务内容&#xff1a;免费功能设计、免费提供开题答辩P…

浅谈HOST,DNS与CDN

首先这个是网络安全的基础&#xff0c;需得牢牢掌握。 1.什么是HOST HOSTS文件&#xff1a; 定义&#xff1a; HOSTS文件是一个操作系统级别的文本文件&#xff0c;通常位于操作系统的系统目录中&#xff08;如Windows系统下的C:\Windows\System32\drivers\etc\hosts&#xf…

黑马头条vue2.0项目实战(二)——登录注册功能的实现

1. 布局结构 目标 能实现登录页面的布局 能实现基本登录功能 能掌握 Vant 中 Toast 提示组件的使用 能理解 API 请求模块的封装 能理解发送验证码的实现思路 能理解 Vant Form 实现表单验证的使用 这里主要使用到三个 Vant 组件&#xff1a; NavBar 导航栏 Form 表单 F…

windows 安装 Linux 子系统 Ubuntu,并编译安装nginx

1. 安装Ubuntu 首先可以在 Microsoft Store 自行搜索安装 Ubuntu&#xff0c;个人建议安装 22 版本的即可。Ubuntu安装完成后&#xff0c;以管理员身份打开CMD&#xff0c;运行如下命令&#xff1a; wsl --install 此时打开Ubuntu已经可以正常使用了。 2. 安装C/C编译器 对于…