当前位置: 首页 > news >正文

【论文阅读】Hierarchical Group-Level Emotion Recognition

【论文阅读】Hierarchical Group-Level Emotion Recognition

  • 摘要
  • 1.介绍
  • 2.相关工作
  • 3.方法
  • 4.实验
  • 5.分析

摘要

本篇博客参考IEEE于2021年收录的论文Hierarchical Group-Level Emotion Recognition,对其主要内容进行总结,以便加深理解和记忆

1.介绍

1)情绪识别应用

情绪识别可以用于各种应用:支持自闭症者[7]、检测人的抑郁[8]、图像记忆预测[74-75]、人机交互[9]。照片中的视觉特征在识别个体情绪方面发挥着重要作用[15-16]

2)GER

群体情绪识别的目标是将群体情绪分为三类,这是由心理学知识定义的[29]。研究人员提出不同的群体情绪识别方法,大多数是通过个人面部表情和场景特征提出的,这些特征同时描述了事件的类型(聚会、示威和葬礼)这主要是因为人的面部表情和场景特征与潜在的群体层面的情绪密切相关。

3)问题与发现

在实践中,同时进行三类分类,例如在上述方法中进行的分类,并不能达到高水平的准确性。正如先前的研究[1]、[18]、[19]、[32]、[34]、[40]所强调的那样,面部表情的使用在群体层面的情绪识别中是有效的在对“正面”标签进行分类时,作者同意这一发现,因为特定的面部表情(例如微笑)可能包含在此类图像中。然而,作者质疑上述假设是否适用于标记为“中性”或“阴性”的图像。例如,参考数据集[49]中包括的图像,这些图像已被广泛用于群体层面的情绪识别,作者发现,在被标记为“中性”或“阴性”的图像中,个体的面部表情往往相似(图1)。这表明面部表情识别会导致“中性”和“阴性”之间的区分性能下降。

场景特征使作者能够表示图像中显示的事件类型。它们使系统能够有效地对面部表情代表较少辨别特征的图像进行分类。这表明,场景特征的使用不仅能有效区分“负面”和“中性”标签,还能对没有观察到特定面部表情的“正面”标签进行分类。

因此,作者认为最好通过分别分析图像中的面部表情和场景特征来解决群体情绪识别问题。

2.相关工作

1)假设可以通过聚集图像中个体的情绪识别来估计群体情绪:[1]、[18]、[19]、[32]、[34]、[40]、[73]

2)通过算术运算进行特征聚合以前的大多数方法都采用了算术聚合方案

  • 平均[2]-[4]、[11]、[18]、[32]、[39]、[40]

  • 中值[14]

  • 多数投票[12]、[31]、[34]、[41]、[43]、[47]

  • Rassadin等人使用个人的平均面部表情以及他们的面部标志和场景特征构建了多个分类器,以获得组级情绪估计的结果[14]

  • 方法[30]、[33]、[63]将个体的面部特征连接起来,并将其输入到完全连接(FC)层,以表示用于群体级情绪识别的面部特征

3) 通过相关性分析进行特征聚合

不同的方法利用个体面部特征之间的相关性值来提高群体级情绪识别的性能。一些方法将利用RNN估计的人之间的面部表情相关性:

  • LSTM和GRU,纳入群体级情绪识别框架[13]、[17]、[19]、[20]、[35]、[37]、[44]、[62]
  • Bawa等人将LSTM应用于从图像中的多个面部区域收集的一组深层特征
  • 方法[41],[45]引入注意力层[48]来估计人与人之间面部表情的相关性

3.方法

1)方法概述

Ⅰ.第一个分类步骤:进行二分类,分出“阳性”标签和其他标签

  • 首先通过使用人脸检测器来检测图像中的人脸[24]
  • 为了区分哪些人脸是输入图像中的主要主体,作者利用CASNet框架估计了表征视觉注意力的显著性图[25]
  • 使用估计的显著性图,作者通过对一组检测到的面部区域进行光谱聚类[55]来确定图像中对群体级情绪有贡献的主要主体
  • 将估计为主要受试者的人脸图像输入卷积神经网络(CNNs),对其进行微调,以输出用于面部表情分类的结果
  • 使用级联注意力网络聚合从细胞神经网络中提取的深层特征[41]。这使作者能够表示个人面部特征之间的相关性。使用与级联注意力网络聚合的面部特征,作者对包括特定面部表情和其他表情在内的“积极”标签进行二元分类。

Ⅱ.第二关分类步骤:对第一分类的结果进行三类分类,这将在图像的场景特征方面具有判别性

  • 使用用局部流估计的对象语义信息和用全局流估计的整个图像的特征来表示场景特征

  • 在局部流中,作者首先通过使用对象检测器来检测图像中的对象[53]。然后,作者对一组检测到的对象图像和相应的对象标签进行偏最小二乘(PLS)分析。

    PLS分析是一种统计方法,用于估计高维特征到子空间的投影,在子空间中,嵌入特征中的潜在类别(即群体级情绪)可以被有效地区分。因此,在PLS分析结果的帮助下,它使作者能够通过对一组检测到的对象进行光谱聚类来估计哪些类型的对象对群体层面的情绪的区分是有区别的。作者将这些估计的对象图像输入到神经网络中,对神经网络进行微调以获得组级情感分类的输出结果,从而获得深层特征。

    与第一分类阶段类似,作者使用级联注意力网络聚合提取的深度特征。这使得能够表征图像中对象的出现频率的共现程度。

  • 在全局流中,作者将整个图像输入另一个CNN,该CNN经过微调以获得组级情感分类的输出结果,从而获得全局特征。

  • 使用从局部和全局流计算的结果,作者最终将其分类为“阳性”、“中性”和“阴性”三类标签

2)第一阶段:使用面部表情分类

  • 人脸检测和对齐

首先利用多任务级联卷积网络检测输入图像D中的人脸区域[24]。然后,作者按照[45]、[57]中的方法对检测到的人脸之间的面部姿态(平移和旋转)变化进行归一化,因为如[56]中所述,这种变化会降低面部表情识别的准确性。

作者将对齐的N个面区域定义为 I a l i g n = { I 1 a l i g n , … , I N a l i g n } I^{align}=\{I^{align}_1,…,I^{align}_N\} Ialign{I1alignINalign}

  • 主要受试者评估

视觉注意力权重计算:根据先前的研究[31],[40],主要受试者的面部表情对图像中的群体级情绪有很大贡献。此外,[28]的作者报告说,照片中主要受试者的脸比背景中的人的脸更容易吸引视觉注意力。这些发现表明,视觉注意力的使用鼓励系统提高群体级情绪识别的性能。

为了估计视觉注意力,作者使用了CASNet[25],这是一种深度架构,通过在图像中加入情感刺激来推断视觉注意力(即显著性图)。作者将估计的显著性图定义为η,并将图像中位置(x,y)处的η值定义为 η ( x , y ) η(x,y) ηxy

使用 η ( x , y ) η(x,y) ηxy,作者为 I a l i g n I^{align} Ialign提供权重,其定义为 w v i s = ( w 1 v i s , … , w N v i s ) w^{vis}=(w^{vis}_1,…,w^{vis}_N) wvis=w1viswNvis。特别地,作者将 w N v i s w^{vis}_N wNvis计算为:
w N v i s = 1 W ∑ ( x , y ) ∈ F N η ( x , y ) , w^{vis}_N = \frac 1 W \sum_{(x,y)∈F_N}η(x, y), wNvis=W1(x,y)FNη(x,y),
其中Fn表示第n个面部图像Ialign的一组像素位置。归一化系数W计算为: W = ∑ n ∑ ( x , y ) ∈ F n η ( x , y ) W=\sum_n \sum_{(x,y)∈Fn}η(x,y) W=nxyFnηxy

  • 使用视觉注意力权重的光谱聚类

为了估计主要受试者,作者使用视觉注意力权重 w v i s w^{vis} wvis I a l i g n I^{align} Ialign进行光谱聚类。在这里,作者用简短的数学推导来描述这个过程的细节。有关光谱聚类的更多详细信息,请参阅[69]。

首先构造了一个全连通相似图, G = ( V , E ) ∈ R N × N ,其中 V = { v 1 , … , v N } G=(V,E)∈R^{N×N},其中V=\{v_1,…,v_N\} G=VERN×N,其中V={v1vN}表示一组节点,其中每个节点表示 I a l i g n I^{align} Ialign中的面部图像。此外, E = { e ( i , j ) } , i = 1 , . . . 。, N 、 j = 1 , . . . , N E=\{e_{(i,j)}\},i=1,...。,N、 j=1,...,N E={eij}i=1...。,Nj1...N表示由视觉注意力权重 w v i s w^{vis} wvis加权的邻接矩阵。具体来说,作者计算边权重 e ( i , j ) e_{(i,j)} eij为:
e ( i , j ) = ∣ w i v i s − w j v i s ∣ e_{(i,j)} = |w^{vis}_i − w^{vis}_j | e(i,j)=wiviswjvis
使用E,作者构造度矩阵D为:
D = { D ( i , j ) } i , j = 1 , . . . , N = { δ ( i , j ) ∑ k e ( i , k ) } i , j = 1 , . . . , N D = \{D_{(i,j)}\}_{i,j=1,...,N} =\{δ_{(i,j)} \sum_ke_{(i,k)}\}_{i,j=1,...,N} D={D(i,j)}i,j=1,...,N={δ(i,j)ke(i,k)}i,j=1,...,N
其中δ(i,j)表示Kronecker delta函数。归一化图拉普拉斯矩阵L计算为:
L = D − 1 2 ( D − E ) D − 1 2 L = D^{− \frac 1 2} (D − E)D^{− \frac 1 2} L=D21(DE)D21
略…

处理一个所有人都是主体的情况:

在这种情况下,光谱聚类将强制将人区分为主要主体和背景中的人。

为了解决这个问题,作者纳入了一个标准,以确定是否所有人都是主要主体。当一张照片包括主要拍摄对象和背景人物时,视觉显著性的值会随着面部图像的变化而变化。相反,当所有人都是主要受试者时,所有面部图像的视觉显著性值将同样显著。这表明,视觉注意力的变化将是确定是否所有人都是主要受试者的合适线索。

为了统计检查图像中每个人脸的视觉注意力变化的程度,作者使用数据集中的图像建立了视觉注意力权重 w v i s w^{vis} wvis的方差累积直方图,定义为CumulHist(wvis)。通过分析CumulHist(wvis),作者确定当输入图像的方差Var(wvis)小于从CumulHist(wvis)的累积相对频率得出的特定阈值th时,输入图像中的所有人都是主要对象。基于初步实验,作者根据经验确定th为: t h = 0.2 m a x C u m u l H i s t ( w v i s ) th=0.2 max CumulHist(w^{vis}) th=0.2maxCumulHistwvis

区分:光谱聚类为每个顶点vn(即第n个面部图像)提供了一个标签ψn∈{main,others},指示vn是否是主要主体(main)(others)

  • 面部表情特征的提取

作者使用CNN从I(主要人脸)中提取面部特征。使用VGG16模型[23],该模型是用VGGFace数据集[22]预先训练的。(VGGFace是一个由2622个身份的2.6M图像组成的大规模人脸数据集。)由于VGG16模型是为了人脸识别而构建的,作者使用真实世界情感人脸数据库(RAF-DB)[21]和群体情感数据库2.0(GAF2)[49]对其进行微调,以适应面部表情识别任务。

(RAF-DB数据集[21]是最新的面部表情识别数据集之一,包括在外观、姿势和年龄方面有很大变化的面部图像。GAF2数据集[49]是一个著名的用于群体级情绪识别任务的数据集。)

RAF-DB数据集包含七个面部表情类别(标签),用于识别个人的面部表情;因此,很难将这些标签直接用于组级情绪识别任务。为了解决这一问题,作者重新定义了这些面部表情标签,使其适用于小组级的情绪识别任务,就像之前的方法[33]、[43]所做的那样:(1)“幸福”和“惊喜”→ “积极”、(2)“愤怒”、“厌恶”、“恐惧”和“悲伤”→ “否定”,以及(3)其他→ “中性。”

Ⅰ.微调:作者接下来描述系统中微调过程的细节。作者遵循[27]中提出的微调程序。作者首先从原始VGG16模型中移除最后两个FC层。作者将最后两个FC层分别称为FC7和FC8。作者添加了一个由256个节点组成的具有整流线性单元(ReLU)的FC层作为FC7,而不是这些删除的FC层。然后,作者将最终的FC层(即分类层)堆叠为FC8,其中softmax激活单元由与第一阶段分类类别(“阳性”和“非阳性”)相对应的2个节点组成。

作者首先使用RAF-DB数据集训练这个微调的VGG16模型。然后,作者使用GAF2数据集来训练这个经过微调的VGG16模型。根据之前的一项研究,这种两阶段微调策略对于提高群体级情绪识别的性能是有效的[65]。

Ⅱ.深层特征提取:作者将I(主要人脸)中的每个人脸图像输入到这个微调的VGG16模型中。对于每个图像,作者在这个微调的VGG16模型中从FC7中提取256维深度特征。作者将这些提取的深度特征的集合定义为 f f a c e = { f f a c e 1 , … , f f a c e M } f^{face}=\{f^{face1},…,f^{faceM}\} fface={fface1ffaceM},其中 f f a c e M f^{faceM} ffaceM表示第M个面部图像的深度特征。

  • 使用级联注意力网络的特征聚合

作者聚合了所使用的多个深层特征以及它们之间的相关性。为此,作者使用了级联注意力网络(CAN)[41]

Ⅰ.自注意力计算

Ⅱ.上下文注意力计算

  • 二分类

作者使用面部特征对输入图像进行二值分类。作者首先使用CAN来聚合个人的面部特征。根据之前的一项研究[58],个体的情绪可能会受到同一群体中附近人的情绪的影响。这表明,分析面部表情的相关性将在估计潜在的群体层面情绪方面发挥重要作用。分类为“非阳性”的图像将在下一个分类器中根据场景特征进行评估

③第二阶段:使用场景特征分类

作者描述了使用场景特征的第二分类的细节。在所提出的方法中,场景特征由局部对象流和全局流表示。

  • 物体检测

作者首先通过利用VG数据集[59]预训练的Faster R-CNN[53],在第一分类阶段检测被分类为“非阳性”的输入图像D≤中的对象区域。(VG数据集是一个包含108K图像的大规模数据集,这些图像用对象位置和相应的对象标签(例如,“人”和“车”)进行了注释。)

  • 判别对象的估计

作者估计有助于描述图像中群体层面情绪的对象。作者对一组成对的对象区域和相应的对象标签进行偏最小二乘(PLS)分析。下面,作者描述了如何通过PLS分析的简短数学推导来估计判别对象的细节。有关PLS分析的数学建模的更多详细信息,请参阅[70]。

Ⅰ.对象标签出现频率的构建:作者将数据集中的每个样本(图像)表示为对象标签的出现频率(即直方图)。使用这种表示的原因是,作者预计对象标签的出现频率将显示出有偏见的特征,这取决于标记为“阳性”、“中性”和“阴性”的图像。

Ⅱ. PLS分析:作者对H和相应的标签集Y={y1,…,Yα}进行PLS分析,其中每个标签ya取组级情绪标签“积极”、“中性”或“消极”中的任何一个。这种PLS分析使作者能够获得哪些对象标签更具鉴别性,以区分组级情绪。

Ⅲ.对象语义权重计算:作者为 I o b j I^{obj} Iobj提供权重,定义为: w p l s = ( w 1 p l s , … , w B p l s ) w^{pls}=(w^{pls}_1,…,w^{pls}_B) wpls=w1plswBpls

Ⅳ.使用对象语义权重的光谱聚类:为了估计群体级情感的判别对象,作者使用 w p l s w^{pls} wpls I o b j I^{obj} Iobj进行光谱聚类。

  • 局部场景特征提取

作者使用CNN从I(obj,dis)中提取局部场景特征

Ⅰ.微调:作者使用了一个VGG16模型,该模型是用ImageNet数据集预先训练的[26]。作者通过使用从数据集中包括的图像中检测到的对象图像来对其进行微调,以适应组级别的情绪识别任务。

Ⅱ.深层特征提取:作者将每个对象图像I(obj,dis)输入到这个微调的VGG16模型中。对于每个图像,作者在这个微调的VGG16模型中从FC7中提取256维深度特征。

  • 使用级联注意力网络聚合对象特征

作者可以假设图像中对象标签的出现频率存在共现关系。例如,对象标签“flag”和“sign”可能同时出现在标记为“Negative”的图像中。为了利用对象标签的这种共存,作者使用了基于CAN的注意力网络

  • 全局场景特征提取

作者使用CNN提取单个全局场景特征,该特征表征在整个图像中观察到的事件类型。

Ⅰ.微调:作者使用一个VGG16模型,该模型是用ImageNet数据集预先训练的。作者通过使用GAF2数据集的整体图像对其进行微调,以适应组级情绪识别任务

Ⅱ.深层特征提取:作者将整个图像输入到这个经过微调的VGG16模型中。然后,作者在这个微调的VGG16模型中从FC7中提取256维深度特征。

  • 最终分类

作者使用局部和全局特征进行最后的群体级情绪识别。作者将 f ( o b j , a t t ) 和 f g l o f^{(obj,att)}和f ^{glo} f(objatt)fglo连接起来,然后将其馈送到由三个节点组成的FC层中,这三个节点对应于具有softmax激活函数的组级情感标签。

4.实验

1)实施细则

随机梯度下降(SGD)优化器[66],学习率为0.001,批量大小为10。数据增强(随机水平翻转,±20°旋转,通道偏移±5°),20轮训练

验在搭载英特尔酷睿i9-7900X 3.3 GHz和GeForce GTX 1080Ti的Windows PC

2)GAF2[49]和群体情感数据库3.0(GAF3)数据集[50]

3)消融实验

  • 层次分类方法
  • 视觉注意力和对象语义信息的结合

4)定性评价

  • 主要受试者评估结果
  • 判别对象估计结果

5.分析

  • 作者认为在使用场景特征的第二阶段分类中,面部特征的使用会阻碍准确估计
  • 复杂度分析
  • 局限性:探索一种提高主体估计方案性能的方法
  • 未来的工作:群体凝聚力[51],[52]是衡量群体成员之间联系的指标,在识别群体层面的情绪方面是有效的[32],[67]。作者将研究如何通过将群体凝聚力纳入作者的群体级情绪识别框架来提高分类性能。

相关文章:

【论文阅读】Hierarchical Group-Level Emotion Recognition

【论文阅读】Hierarchical Group-Level Emotion Recognition 摘要1.介绍2.相关工作3.方法4.实验5.分析 摘要 本篇博客参考IEEE于2021年收录的论文Hierarchical Group-Level Emotion Recognition,对其主要内容进行总结,以便加深理解和记忆 1.介绍 1&am…...

(2025最新版)CUDA安装及环境配置

CUDA安装 文章目录 CUDA安装检查本地环境下载CUDA安装包CUDA安装检查是否安装成功 学习深度学习的小伙伴在配置环境的时候必不可少的一件事就是安装CUDA,在这个过程中也是容易踩很多坑,所以这里写一篇教程来帮助新入门的小伙伴快速安装CUDA,减…...

ODC 4.3.4 发布:三大核心功能升级,打造更好的数据开发体验

ODC 是OceanBase提供的企业级数据库协同开发平台,提供了团队协作开发的基础框架,和14种工单任务类型。此次升级的 ODC 4.3.4版本,重点优化了30余项功能,主要聚焦快速上手、配置管理和核心功能中的改进,来为用户打造更高…...

JavaFX 第一篇 Hello World

1、简介 JavaFX 是一个用于构建客户端应用程序的 Java 库,作为 Java 标准库的一部分(JDK 8 到 10),从 JDK 11 开始,JavaFX 将以独立模块发布,将不再包含在 JDK标准库中,他是 Java 应用程序开发的…...

es的range失效

es的range失效的解决方法 问题描述 当我们es使用keyword类型存储数字时,当我们使用range时我们发现range失效的问题,例如以下的用例: 我们创建一个test1的索引test1: 使用_bulk进行批量导入数据: 进行查询我们发现我…...

gem5-gpu教程03 当前的gem5-gpu软件架构(因为涉及太多专业名词不知道该如何翻译所以没有汉化)

Current gem5-gpu Software Architecture 这是当前gem5-gpu软件架构的示意图。 CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py) Wrapper for GPGPU-Sim shader_core_ctx (gpgpu-sim/gpgpu-sim/shader.h) Sends instruction, global and const m…...

【C++】vector扩容缩容

vector扩容缩容 1 扩容 一般来说&#xff0c;主要是重新分配内存 2 缩容 resize 缩小后&#xff0c;vector 的容量&#xff08;capacity()&#xff09;可能保持不变&#xff0c;需要显式调用 shrink_to_fit() 来释放内存。 验证代码&#xff1a; #include <vector>…...

【鸿蒙HarmonyOS】深入理解router与Navigation

5. 路由 1.页面路由(router模式&#xff09; 1.概述 页面路由指的是在应用程序中实现不同页面之间的跳转&#xff0c;以及数据传递。 我们先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component 装饰的UI单元&#xff0c;页面&#xff1a;即应用的UI…...

手机端touch实现DOM拖拉功能

touch实现DOM拖拉功能 1、面板交互流程图 [ 用户触摸拖动手柄 ]↓ [ 记录起始位置、偏移量 ]↓ [ 实时更新面板 translateY ]↓ [ 手指松开 → 判断释放位置 ]↓ [ 达到恢复条件&#xff1f; → 复位 ]2、详细实现步骤 2.1 初始面板位置 const initialPosition () > tr…...

Discuz!与DeepSeek的AI融合:打造智能网址导航新体验——以“虎跃办公”为例

在数字化办公需求日益增长的今天&#xff0c;高效获取优质资源成为职场人士的核心痛点。传统网址导航网站往往面临信息过载、个性化不足、交互体验单一等问题&#xff0c;难以满足用户精准触达目标资源的需求。本文将深入剖析“虎跃办公”这一基于Discuz!系统构建的网址导航网站…...

【AI】Windows环境安装SPAR3D单图三维重建心得

效果一览 左图为原始单个图像&#xff0c;右图为通过SPAR3D重建后的三维建模&#xff0c;可以看出效果还是不错的。 本地环境配置 系统&#xff1a;Windows 11 专业版CPU&#xff1a;i5-13400F内存&#xff1a;32GBGPU&#xff1a;RTX3060 12GBcuda&#xff1a;11.8conda&…...

关于Agent的简单构建和分享

前言&#xff1a;Agent 具备自主性、环境感知能力和决策执行能力&#xff0c;能够根据环境的变化自动调整行为&#xff0c;以实现特定的目标。 一、Agent 的原理 Agent(智能体)被提出时&#xff0c;具有四大能力 感知、分析、决策和执行。是一种能够在特定环境中自主行动、感…...

【C/S通信仿真】

文章目录 一、实验背景与目的二、实验设计与实现思路1. 设计思想2. 核心代码实现 总结 一、实验背景与目的 在网络编程中&#xff0c;TCP 协议是实现可靠通信的核心。本次实验基于 Windows 平台&#xff0c;使用 WinSock2 库实现客户端与服务器的双向数据传递&#xff0c;模拟…...

Tomcat 8 启动闪退解决方案:版本差异与调试技巧详解

在使用 Tomcat 8 时&#xff0c;启动闪退是常见问题&#xff0c;核心原因多与 JAVA_HOME 环境变量配置、版本特性及启动脚本逻辑相关。本文结合官方文档与专家实践&#xff0c;提供分版本解决方案及调试技巧&#xff0c;适用于开发与运维场景。 一、核心问题&#xff1a;JAVA_…...

【Project】基于spark-App端口懂车帝数据采集与可视化

文章目录 hadoop完全分布式部署hdfs-site.xmlcore-site.xmlmarpred-site.xmlyarn-site.xml spark集群部署spark-env.sh mongodb分片模式部署config 服务器初始化config 副本集 shard 服务器初始化shard 副本集 mongos服务器添加shard设置chunk大小 启动分片为集合 user 创建索引…...

基于ARM+FPGA+DSP的储能协调控制器解决方案,支持国产化

储能协调控制器的作用与设计方案 一、‌核心作用‌ ‌实时监测与协调控制‌ 实时采集储能系统电压、电流、温度等参数&#xff0c;监测电池电量状态及充放电功率&#xff0c;动态调整储能与电网、负载的功率交互&#xff0c;保障能源供需平衡15。支持一次调频&#xff08;AGC&a…...

将天气查询API封装为MCP服务

下面我将展示如何将一个天气查询API封装为符合MCP协议的服务。我们将使用Python实现&#xff0c;包括服务端和客户端。 ## 1. 服务端实现 python # weather_mcp_server.py from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Di…...

JSON实现动态按钮管理的Python应用

在开发桌面应用程序时&#xff0c;动态生成用户界面元素并根据配置文件灵活管理是一项常见需求。本文将介绍如何使用Python的wxPython库结合JSON配置文件&#xff0c;开发一个支持动态按钮创建、文件执行和配置管理的桌面应用程序。该应用允许用户通过设置界面配置按钮名称和关…...

基于GA遗传优化TCN-BiGRU注意力机制网络模型的时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b&#xff08;提供软件版本下载&#xff09; 3.部分核心程序 &#xff08;完整版代码包…...

MongoDB(docker版)备份还原

docker启动MongoDB docker run -d -p 27017:27017 --name my-mongo -v /mongodb/db:/data/db mongo备份MongoDB 使用mongodump备份数据库时&#xff0c;默认会将备份数据保存在当前工作目录下的dump文件夹中。 docker容器中默认备份在当前工作目录&#xff0c;所以此处指定当…...

[蓝桥杯 2025 省 Python B] 异或和

暴力&#xff08;O(n^2)&#xff09;&#xff1a; def xor_sum(n, arr):total 0for i in range(n):for j in range(i 1, n):total (arr[i] ^ arr[j]) * (j - i)return total# 主函数 if __name__ "__main__":n int(input())arr list(map(int, input().split()…...

HTTP代理基础:网络新手的入门指南

目录 一、为什么需要了解HTTP代理&#xff1f; 二、HTTP代理的“中间人”角色 三、代理的三大核心类型 四、HTTP代理的5大实用场景 五、设置代理的三种方式 六、代理的优缺点分析 七、如何选择代理服务&#xff1f; 八、安全使用指南 九、未来趋势 结语 一、为什么需要…...

GRE 多层级网络数据处理系统

​ 一、整体架构​ 多层级网络数据处理系统&#xff0c;从底层硬件中断到上层协议处理&#xff0c;涵盖了数据包的接收、转发、解封装、路由决策和发送全流程。系统采用分层处理和模块化设计&#xff0c;结合了传统Linux网络协议栈与快速路径&#xff08;Fast Path&#xff0…...

展望未来,楼宇自控系统如何全方位推动绿色建筑智能高效发展

在全球积极践行可持续发展理念的时代背景下&#xff0c;绿色建筑已成为建筑行业发展的必然趋势。绿色建筑追求在全生命周期内&#xff0c;最大限度地节约资源、保护环境和减少污染&#xff0c;为人们提供健康、舒适、高效的使用空间。而楼宇自控系统作为建筑智能化的核心技术&a…...

【计算机视觉】CV项目实战- Florence-SAM 多模态视觉目标检测+图像分割

Florence-SAM多模态视觉分析系统&#xff1a;技术解析与实战指南 一、项目架构与技术解析1.1 核心模型架构1.2 支持的任务模式 二、环境配置与部署实战2.1 本地部署指南2.2 运行演示系统 三、核心功能实战解析3.1 图像开放词汇检测3.2 视频目标跟踪 四、高级应用与二次开发4.1 …...

2025-04-23 Python深度学习3——Tensor

文章目录 1 张量1.1 数学定义1.2 PyTorch中的张量 2 创建 Tensor2.1 直接创建**torch.tensor()****torch.from_numpy()** 2.2 依据数值创建**torch.zeros() / torch.zeros_like()****torch.ones() / torch.ones_like()****torch.full() / torch.full_like()****torch.arange() …...

ZYNQ笔记(十三):双核 AMP 通信实验

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; ZYNQ 裸机双核 AMP 实验&#xff1a; CPU0 接收串口的数据&#xff0c;并写入 OCM 中&#xff0c;然后利用软件产生中断触发 CPU1&#xff1b;CPU1 接收到中断后&#xff0c;根据从 OCM 中读出的数据控制呼吸灯的频…...

黑马Java基础笔记-3

短路逻辑运算符与逻辑运算符 逻辑运算符 符号作用说明&逻辑与&#xff08;且&#xff09;并且&#xff0c;两边都为真&#xff0c;结果才是真|逻辑或或者&#xff0c;两边都为假&#xff0c;结果才是假^逻辑异或相同为 false&#xff0c;不同为 true!逻辑非取反 短路逻辑…...

4.23学习总结

虽然之前写过的相关dfs和bfs的题&#xff0c;但方法忘的差不多了&#xff0c;重写了一遍相关的算法题&#xff0c;今天完成了岛屿数量的算法题&#xff0c;我利用的是bfs的算法&#xff0c;遍历每个结点&#xff0c;如果是1就count,然后再bfs向四周遍历并标记已经走过 初步看了…...

ElasticSearch:高并发场景下如何保证读写一致性?

在Elasticsearch高并发场景下&#xff0c;可以通过以下多种方式来保证读写一致性&#xff1a; 等待主分片和副本分片都确认&#xff08;类似半同步机制&#xff09; 设置consistency参数&#xff1a;在写操作时&#xff0c;可以设置consistency参数来控制写操作的一致性级别。…...

Qt基础007(Tcp网络编程)

文章目录 QTcp服务器的关键流程QTtcp客户端的关键流程TCP协议Socket QTcp服务器的关键流程 工程建立&#xff0c;需要在.pro加入网络权限 创建一个基于 QTcpServer 的服务端涉及以下关键步骤&#xff1a; 创建并初始化 QTcpServer 实例&#xff1a; 实例化 QTcpServer 。 调…...

visio导出的图片过大导致latex格式转成pdf之后很不清楚

联想电脑解决方法 右键打开方式选择【照片】&#xff0c;然后选择调整图片大小&#xff0c;将像素的宽度和高度调低。...

leetcode刷题——判断对称二叉树(C语言版)

题目描述&#xff1a; 示例 1&#xff1a; 输入&#xff1a;root [6,7,7,8,9,9,8] 输出&#xff1a;true 解释&#xff1a;从图中可看出树是轴对称的。 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 解释&#xff1a;从图中可看出最…...

STM32与i.MX6ULL内存与存储机制全解析:从微控制器到应用处理器的设计差异

最近做FreeRTos&#xff0c;以及前面设计的RVOS&#xff0c;这种RTOS级别的系统内存上的分布与CortexA系列里面的分布有相当大的区别&#xff0c;给我搞糊涂了。 目录 STM32&#xff08;Cortex-M系列&#xff09;的内存与存储机制 Flash存储内容RAM存储内容启动与运行时流程示例…...

经验分享-上传ios的ipa文件

.ipa格式的二进制文件&#xff0c;是打包后生成的文件&#xff0c;无论我们是放上去testflight测试还是正式上传到app store&#xff0c;都需要先上传到苹果开发者中心的app store connect上的构建版本上。 在app store connect上&#xff0c;上传构建版本的功能&#xff0c;它…...

Linux423 删除用户

查找 上面已查过&#xff1a;无法使用sudo 新开个终端试试 之前开了一个终端&#xff0c;按照deepseek排查 计划再开一个进程 开一个终端 后强制删除时显示&#xff1a;此事将被报告...

AI与Web3.0:技术融合

AI与Web3.0&#xff1a;技术融合 分享一下给大家一个从0开始学习ai 的网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 随着互联网技术的飞速发展&#xff0c;Web3.0作为下一代互联网形态&#xff0c;正以前所未有的速度改变着我们的生活方式和工作模式。Web3.0强…...

Python爬虫第18节-动态渲染页面抓取之Splash使用上篇

目录 引言 一、Splash 的简介与安装 1.1 简介 1.2 安装 二、Splash 的使用 三、Splash Lua 脚本开发 3.1 脚本入口与返回值 3.2 异步处理 四、Splash 对象属性 4.1 args 4.2 js_enabled 4.3 resource_timeout 4.4 images_enabled 4.5 scroll…...

Linux进程状态及转换关系

目录 1、就绪态&#xff08;Ready&#xff09; 2、运行态&#xff08;Running&#xff09; 3、僵尸态&#xff08;Zombie&#xff09; 4、可中断睡眠态&#xff08;Interruptible Sleep&#xff09; 5、不可中断睡眠态&#xff08;Uninterruptible Sleep&#xff09; 6、…...

Java基础:认识注解,模拟junit框架

认识注解 自定义注解 注解的原理 元注解 解析注解 应该场景-配合反射做juint框架 public static void main(String[] args) {AnnotationDemo4 a new AnnotationDemo4();Class clazz AnnotationDemo4.class;Method[] methods clazz.getDeclaredMethods();for (Method method …...

chrony服务器

时间有什么作用&#xff1f;约定干什么事情&#xff0c;会出问题&#xff0c;双方约定会达成 一旦有一方的时间不准确&#xff0c;约定都会达不成 不联网&#xff0c;计算机运行一个月&#xff0c;你的计算机就会和标准的时间差一两分钟 通常情况下&#xff0c;硬件时间的运…...

Springboot——Redis的使用

在当今的软件开发领域&#xff0c;缓存技术是提升应用性能的关键手段之一。Redis 作为一款高性能的键值对存储数据库&#xff0c;凭借其出色的读写速度和丰富的数据结构&#xff0c;在缓存场景中得到了广泛应用。Spring Boot 作为一款简化 Spring 应用开发的框架&#xff0c;与…...

【EasyPan】removeFile2RecycleBatch方法及递归操作解析

【EasyPan】项目常见问题解答&#xff08;自用&持续更新中…&#xff09;汇总版 文件批量转移到回收站方法解析 一、方法总述 removeFile2RecycleBatch方法实现将用户选中的文件/目录及其子内容批量移入回收站的业务逻辑&#xff0c;主要特点&#xff1a; 递归处理&…...

AIGC的伦理困境:机器生成内容是否该被监管?

AIGC的伦理困境&#xff1a;机器生成内容是否该被监管&#xff1f; 在当今数字时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的发展日新月异&#xff0c;其中生成式人工智能&#xff08;AIGC, AI-Generated Content&#xff09;作为一项前沿技术&#xff0c;正以前…...

缓存一致性

什么是缓存一致性&#xff1f; 当数据库和缓存之间的额数据内容保持同步或最终一致&#xff0c;称为缓存一致性 为什么缓存不一致会发生&#xff1f; 因为缓存和数据库是两个独立系统&#xff0c;它们的更新过程不是原子操作&#xff0c;就可能发生以下情况&#xff1a; //…...

【Java学习方法】终止循环的关键字

终止循环的关键字 一、break 作用&#xff1a;跳出最近的循环&#xff08;直接结束离break最近的那层循环&#xff09; 使用场景&#xff1a;一般搭配if条件判断&#xff0c;如果满足某个条件&#xff0c;就结束循环&#xff0c;&#xff08;场景&#xff1a;常见于暴力枚举中…...

bert学习

BERT Google在2018年提出的​​预训练语言模型​​&#xff0c;通过双向Transformer结构和大规模预训练。 核心特点 双向上下文 与传统模型&#xff08;如LSTM或单向Transformer&#xff09;不同&#xff0c;BERT通过同时考虑单词的​​左右上下文​​来捕捉更丰富的语义信息。…...

读书笔记:淘宝十年产品与技术演进史

作者&#xff1a;大淘宝技术 原文地址&#xff1a;读书笔记&#xff1a;淘宝十年产品与技术演进史 本文是对《淘宝十年产品事》与《淘宝技术这十年》两本书的阅读笔记总结。通过回顾淘宝过去十年在产品、技术、架构、中间件及开放平台等方面的发展历程&#xff0c;展现了其从初…...

ROS 快速入门教程02

5. Node 节点 以智能手机为例&#xff0c;当我们使用智能手机的某个功能时&#xff0c;大多时候在使用手机的某个APP。同样当我们使用ROS的某个功能时&#xff0c;使用的是ROS的某一个或者某一些节点。 虽然每次我们只使用ROS的某一个或者某一些节点&#xff0c;但我们无法下…...

卷积神经网络常用结构

空间注意力机制(Spatial Attention)详解 空间注意力机制(Spatial Attention)详解 空间注意力机制是计算机视觉中的重要组件&#xff0c;它使网络能够选择性地关注特征图中的重要空间区域&#xff0c;同时抑制不相关区域的影响。 空间注意力机制结构图 空间注意力机制详细解析…...