基于SOAR模型的面部情绪识别

摘要

情绪表达在日常交流中起着特殊的作用,而检测情绪最重要的方法之一就是识别面部情绪状态。因此,自然人机交互的关键点是识别面部表情并根据感知到的情绪提供反馈。模型的实现涉及两个主要步骤。第一步是读取视频并将其转换为图像,然后对其进行预处理。接下来,结合三维卷积神经网络(3DCNN)和学习自动机(LA)对面部情绪识别率进行分类检测。本研究选择3DCNN的原因是该模型不会从图像中删除任何维度,并且考虑了动态图像中的时间信息,从而可以进行更高效和更好的分类。此外,3DCNN网络在计算反向传播误差时通过LA进行调整,既提高了模型的效率,又改善了SOAR模型的工作记忆部分。鉴于情绪识别的重要性,本文提出了一种基于深度学习和认知混合模型SOAR的面部情绪识别方法。该模型对面部情绪状态识别的准确率高达85.3%。为了比较模型的有效性,本研究将该模型与其他模型进行了比较。研究结果表明,该模型比其他模型具有更好的性能。

引言

面部表情识别(FER)是一个新兴的研究课题。FER利用计算机技术和图像处理来分析和识别面部表情的类型、强度和持续时间,并通过检测细微变化来揭示一个人的情绪状态。FER在医疗保健、安全、安全驾驶等领域的应用,推动了这些方法在人机交互中的验证。计算FER模拟人类面部表情编码技能。同样,基于深度学习和人工智能(AI)技术,FER方法已开发出边缘模块以确保效率和实时处理。为此,一些研究对FER的不同方面进行了探索。

情绪是决策和人际沟通中的一个重要驱动因素。随着近年来人机交互研究的增加,情绪计算已成为一个热门的研究主题,旨在开发能够理解和响应人类情感的计算系统。据研究,人与人之间的交流90%以上是通过不同的渠道传递的,而面部表情和肢体动作在其中发挥着独特的作用。情感在沟通中起着至关重要的作用。例如,皱眉通常是不满和不同意的标志。惊讶、喜悦和恐惧是人类对环境因素的自然反应。

Han等人(2024)提出了一种仿生模型,它模拟人脑功能,符合人类感知且能更好地解释生物特征。在生物学特征的基础上,开发了一种非线性神经网络来提取时序特征,可用于动态情绪分析。在Liu等人(2024)的研究中,他使用了具有混沌多分支结构的贝叶斯卷积神经网络进行这种诊断。该模型旨在解决不确定性问题,通过提高训练精度,使网络的决策变得更加确定。

理解面部表情可以帮助调节情绪反应,例如增强积极情绪或减少消极情绪状态,尤其是当刺激的面部表情与个人意图相匹配时。也就是说,当它与个人的监测努力相一致时。现有的研究通常使用两种分类方法:动态和静态。动态分类器[例如隐马尔可夫模型(HMM)]使用多个视频帧,并通过分析区域或提取特征的时间模式来进行分类。静态分类器根据特定视频帧的结果,将视频中的每一帧分类为一组面部表情。一般来说,这些方法首先提取图像的某些特征,然后在分类系统中进行分类,从而选择出情绪类别之一。从面部视频图像中自动识别情绪面临许多挑战,包括在图像中找到面部、定位眼睛、鼻子和嘴巴的位置,揭示面部及其组成部分在一定时期内的变化,并建立它们之间的关系。将这些变化与个人的情感表达相匹配非常困难,因为每个个体都有自己的变化,具体取决于环境和个体情况。

现有证据表明,人们有时在高兴时微笑,在悲伤时皱眉,生气时皱眉的频率更高。然而,人们与愤怒、厌恶、恐惧、喜悦、悲伤和惊讶的关系因文化、情境而异,甚至在同一情境中的不同个体之间也有所不同。此外,面部动作的类似组合会不同程度地表达不止一种情绪类别的情况。事实上,面部动作的某种组合,比如皱眉,通常传达的并非只是一种情绪状态。科学家们一致认为面部表情传达了广泛的信息,并且对于社交、情感或其他交流非常重要。

情绪状态识别

面部情绪识别

Höfling等人(2023)使用自动面部编码技术研究了面部动作(即动作单元活动)与广告、宣传和品牌效应之间的关系。在Ma等人(2022)的研究中,为了确定中国人对亚洲人(自己种族)和白人(其他种族)面部表情(中性、快乐、悲伤、愤怒、厌恶和恐惧)的识别准确性和注视模式是否不同,89名健康的中国成年人在眼动追踪期间观看了亚洲和白人的面部表情,然后被要求识别表情并对其强度和唤醒效果进行评分。研究结果表明,受试者对亚洲面孔的悲伤表情的识别比白人面孔更好。另一方面,对白人的中性、快乐、恐惧和厌恶表情的识别准确率更高。在Zhu等人(2022)的研究中,首先讨论了面部情绪识别与心理特征之间的关系。在此基础上,通过增加卷积神经网络(CNN)层,并将CNN与其他神经网络(如VGGNet、AlexNet和LeNet-5等)集成来构建面部情绪识别模型。其次,基于特征融合,引入了一种针对CNN优化的中心局部二值(CLBP)算法,构建用于面部情绪识别的CNN-CLBP算法。最后,对面部图像进行预处理并优化相关参数,从而对算法进行有效性分析。与其他方法相比,CNN-CLBP算法在识别面部表情方面具有更高的准确率,平均识别率为88.16%。此外,该算法的检测精度通过图像预处理和参数优化得到了提高,并且没有出现拟合不良的情况。此外,CNN-CLBP算法能够识别97%的快乐和惊讶表情,但对悲伤表情的误识率为22.54%。该研究结果为分析青少年犯罪的心理逻辑特征提供了数据参考和依据。Li和Gao(2022)基于多尺度特征的混合网络构建了面部识别模型,旨在充分利用面部特征并提高面部识别准确率。此外,还设计了三种不同尺度的网络来提取面部的全局特征。Arora等人(2022)改进了卷积神经网络技术来检测七种基本情绪,并评估了几种预处理方法,以展示它们如何影响CNN的性能。这项研究的重点是基于情绪识别的面部特征和表情增强。通过识别或识别引起人类反应的面部表情,计算机可以对人们的心理状态做出更准确的预测,并提供更具针对性的响应。Alphonse等人(2023)提出了一种新的混合神经网络(NN)模型,该模型能够在实时应用中进行识别。该研究首次比较了几种神经网络模型。然后创建了一个结合卷积神经网络(CNN)、循环神经网络(RNN,即长短期记忆(LSTM))和视觉变换器的混合NN模型。在Dias等人(2022)的研究中,研究者提出了一种使用低照度图像增强和卷积神经网络对上半面部特征进行特征分析的蒙面面部图像的面部情绪识别方法。

学习自动机(LA)

学习自动机(LA)是一种在强化学习框架下工作的随机模型。自动学习将选定的动作输入到其随机和操作环境中。在获得理想答案时,环境使用强化反馈来响应所采取的动作接近理想目标的程度。动作概率向量使用强化反馈进行更新。自动学习试图从动作集中找到最优动作,以最小化平均惩罚。自动学习在无法获得关于环境完整信息的系统中可能有用。LA分为两大类:固定结构和可变结构。可变结构学习自动机由三元组{β,α,T}表示,其中β是输入集,α是动作集,T是学习算法,环境与自动学习之间的交互如图1所示。

图1.环境与学习自动机之间相互作用的视图。

令ai(n)∈a和P(n)分别表示学习自动机在时刻n选择的动作和动作集上的概率向量。令a和b表示奖励和惩罚参数,并且让惩罚分别确定动作概率的增加和减少。另外,可以将r视为机器学习可能执行的动作数量。在每个n时刻,如果环境奖励所选动作ai(n),则动作概率向量P(n)将由公式(1)中给出的线性学习算法更新。如果该动作受到惩罚,则根据公式(2)进行更新。

如果a=b,重复1和2被称为线性奖惩(LR-P)算法,如果a>b,则给定的方程被称为线性ε奖惩(LR-εP)。若b=0,它们被称为线性reward-inaction(LR-I),其中。如果学习自动机在第n次重复中选择了类似αi的动作,并从环境中获得了积极响应,则pi(n;动作αi的概率)增加,而其他动作的概率降低。相反,如果来自环境的响应是不利的,则动作αi的概率降低,而其他自动机动作的概率增加。在任何情况下,改变总是以使pi(n)的总和保持恒定且等于一的方式进行。

所提出的模型

接下来,将详细解释所提出的模型,并提供每个组件的子结构的详细信息。方法示意图如图2所示。

图2.方法示意图。

如图2所示,第一步是从eNTERFACE'05数据集中读取视频。为了从视频中提取图像帧,将特定帧率的视频分离算法应用于所有的样本。面部图像存储在特定的文件夹中,然后对视频中的图像帧进行预处理操作。视频样本被分为三类:训练、验证和测试。为此,从视频文件的开头分离出10个不同的帧。帧差被认为是相对于上一帧变化超过3个点的变化。这种操作的方式是,将所有提取的帧分为10份,每个分组的第一帧作为选定帧。使用这种模式的原因是避免在视频文件末尾进行选择,因为视频文件的末尾几乎是静止的。为了更好地显示视觉特征,本研究将3DCNN与LA的组合。这种组合能够更准确地提取特征并增加检测率。最终,将每个视频样本的图像帧以三维矩阵的形式发送到3DCNN网络,其中包括每个视频帧的序列数、宽度、高度和图像通道数。选择3DCNN的原因是,该方法可以将数据存储在整个网络中,不仅能够很好地处理缺失帧,而且具有较高的容错能力。

在本文提出的方法中,使用3DCNN-LA进行特征提取、选择和分类。将多维RGB面部图像输入预训练的3DCNN模型中进行调优。在本文中,视频文件的采样帧数设置为10帧。在第一层中,所有的输入为255×255×3。在卷积层(CL)中,它由卷积滤波器组成,用于从输入中的每个局部区域提取多个局部模式并生成多个特征图。在3DCNN模型中包含四个卷积层,分别是Conv1、Conv2、Conv3和Conv4,其中三个卷积层(Conv1、Conv2和Conv4)之后是最大池化。卷积层使用ReLU激活函数。第一个卷积层(Conv1)有64个卷积核,大小为3×8×8,步长为4像素,零填充。第二个卷积层(Conv2)有256个核,大小为64×3×3,步长为1像素,填充为2。第三个卷积层(Conv3)有384个核,大小为128×3×3,连接到Conv2的输出,第四个卷积层(Conv4)有384个核,大小为164×3×3。在每个卷积层的输出处使用ReLU激活函数来适应训练过程。基于此,卷积层用于特征提取,使用两个FC层进行特征选择,最后使用LA进行分类。

SOAR是一种认知科学模型,受大脑功能系统的启发,将问题解决作为一种以目标为导向的行为,并通过对问题的调查和从结果中学习进行探索。这种架构应用广泛,例如日常任务和解决开放式问题,这是人工智能和与外界交互的典型特征,无论是在模拟还是在现实环境中。

SOAR中的决策过程与其他系统类似:该过程涉及匹配规则,这实际上是一种依赖于情境的知识表征。SOAR具有处理程序性知识和工作记忆的深度学习组件。Soar中的强化学习相对简单。该组件基于环境数值奖励来调节动作选择。数值优先级指定了当前状态下操作符的预期值。当选择一个操作符时,所有确定了该操作符预期值的规则都会根据该操作符所获得的新奖励以及其后继可能获得的未来预期奖励而进行更新。对系统中所有目标和子目标的操作符进行评估,使得能够快速识别特定条件下的良好和不良操作符。

在所提出的方法中,为了检测情绪,从环境中接收到的信息被感知记忆接收并存储。感知记忆信息的初始加工阶段由程序性记忆完成。学习自动机借助语义记忆、情景记忆和评估阶段以及在短期工作记忆中完成的决策过程,尝试学习并重复最终诊断,直到产生最终结果。学习自动机的学习过程结果被存储为语义和情景记忆的一部分。存储在语义和情景记忆中的结果作为行动返回到环境中。决策和评估过程中的所有奖励被存储在工作记忆中,而目标和最终值则以语义部分的长期记忆的形式存储。提高SOAR模型分析和评估中的学习能力可以提高最终性能。

改进的SOAR模型

SOAR模型包括两个主要记忆,即长期符号记忆和短期工作记忆,两者相互关联。符号长期记忆包括程序性记忆、语义记忆和情景记忆,每种记忆执行不同的任务。选择这种从长期到短期记忆的数据存储和比较模型的原因是为了观察人脑的功能系统。该模型的输入包括面部情绪状态的图像。对面部图像进行去噪和大小调整,使预处理后的图像输入到该模型中。记忆部分将对所有归一化图像应用图像文件,以提取最佳特征。为此,将3DCNN-LA应用于从面部图像中获取的特征。LA会根据3DCNN的误差率来优化神经网络权重的更新参数(图3)。

图3.改进的SOAR模型概述。

图3展示了改进后的SOAR模型。如前所述,该模型包括两个输入,并且每个网络都具有参数W,根据情绪状态的观察x生成类成员概率P(C|x,W)。除了softmax层以外,所有网络层都使用线性单元激活函数(ReLU)(公式(3)):

本研究计算了Softmax层的输出如下(公式(4)):

其中zq是神经元q的输出。网络的输出为P(C|x,W)。卷积深度学习的训练过程包括优化网络参数W,以最小化数据集D的成本函数。本研究选择了负对数概率作为成本函数(公式(5)):

预处理

第一阶段进行数据准备和预处理操作,以从视频中识别面部表情。这些步骤如下:在数据准备阶段,将数据集分为训练和测试两个部分。此外,70%的数据集用于训练,30%用于测试。接下来,从每个视频样本中提取面部图像帧,并将其存储在与视频帧相关的文件夹中。对所有样本应用具有特定帧率的分离算法,以从视频中提取图像帧。在这些测试中,图像的帧率为10(即每秒提取10帧)。eNTERFACE'05数据集视频的平均长度为3-4s。图4显示了该数据集中不同面部表情的排列图像示例。

图4.eNTERFACE'05数据集中不同面部表情的排列图像示例。

结果

本文中的所有测试均使用MATLAB 2022软件实现,精度测试采用K折验证法,其中K=10。各部分的衡量标准是识别混淆矩阵。在图像部分,输入大小为100×96的彩色面部图像序列,每个序列包含10帧,并输入到3DCNN-LA神经网络中。在生成的卷积神经网络3DCNN-LA中,每个批次的大小为32,重复步数为500。学习率为0.001,动量为0.0001。在该方法的训练过程中使用了早期停止技术。

面部情绪状态识别

表1显示了使用改进SOAR模型在eNTERFACE’05数据集上识别面部情绪状态的混淆矩阵。

表1.使用改进的SOAR模型识别面部情绪状态的混淆矩阵。

如表1所示,使用改进的SOAR模型对面部情绪的识别率完全不同。结果显示,“厌恶”的识别率最高,而“恐惧”的识别率最低,分别为89%和80%。“厌恶”情绪的识别率很高,可能是因为这种情绪在面部表现出来的特征比较明显,容易被检测到。然而,像恐惧这样的情绪,其识别率最低,是因为这种情绪在面部不太容易被观察到。所提出方法的详细信息如图3所示。通过对不同情绪进行分类,并对系统进行改进,可以得到更准确、更优质的结果。表2显示了所提出模型在eNTERFACE'05数据集的六种基本情绪类别上识别面部情绪状态的混淆矩阵。

表2.使用SOAR模型识别面部情绪状态的混淆矩阵。

在面部情绪识别中,表2显示了“厌恶”和“愤怒”情绪状态的识别率分别为最高和最低。通过检验模型的结果发现,厌恶情绪在面部情绪识别中的检出率最高。表3显示了本文方法与其他方法的比较结果。通过K折交叉验证(K=10)进行精度测试。

表3.与其他方法的比较。

由表3可知,使用CNN实现了81.4%的准确率。使用3DCNN对该方法进行改进时,达到了83.27%的准确率。3D卷积神经网络基于卷积神经网络(CNN)的概念,但3DCNN-LA在此基础上增加了时间维度。在传统的2D CNN中,输入由网络处理和分析的多个图像帧组成。增加时间维度可以改善结果,从表中可以看出,结果提高了1.87%。时间维度对视频文件来说非常重要,它可以提高检测的准确性和效率。3DCNN-LA方法不仅利用了3DCNN的时间维度优势,还将LA作为FC层中的学习奖励计算器,精度高达85.3%。在接下来的评估中,将与类似的方法进行比较和检查。在CNN和3DCNN中,通过添加另一个FC层来获得分类器值,但在本文的方法中,第二个FC层是使用LA完成的。

如表4所示,本文方法的精度优于同类方法,并且与该标准最接近的方法相比,提高了4.2%。与本文方法最接近的是Liang等人(2020)研究中所提出的方法,该方法也使用深度卷积网络对FER的空间特征和时间动态进行联合建模。

表4.最近模型的比较。

结论

本文提出了一种利用改进的SOAR模型来从面部表情中检测情绪的方法。改进的SOAR模型基于3DCNN-LA,同时考虑了所提取帧的特征及其序列。同时,LA有助于微调权重,使其比以往的检测模型更具针对性。3DCNN对图像的采样点数据进行处理;它们以原始像素数据作为输入,训练设计的架构并自动提取特征。本研究提出的模型包括几个主要目标。第一个目标是提供一个模型来学习电影中帧的时间顺序,第二个目标是提供一个能更好展示视觉特征并最终提高识别率的模型。这些模型不考虑由视频连续帧产生的时空参数。同时,基于3DCNN-LA改进的SOAR算法对序列数据和图像本身进行处理。这使本研究的模型能够生成一个更准确、更具计算效率的模型。改进的SOAR结合3DCNN和LA,可以利用更丰富的信息提取图像特征,从而更好地描述图像,进而提高检测和目标识别性能。

参考文献:Ramzani Shahrestani M, Motamed S and Yamaghani M (2024) Recognition of facial emotion based on SOAR model. Front. Neurosci. 18:1374112. doi: 10.3389/fnins.2024.1374112

小伙伴们关注茗创科技,将第一时间收到精彩内容推送哦~

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

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

相关文章

iOS包ShaderVariantCollection预热慢问题

1)iOS包ShaderVariantCollection预热慢问题 2)使用SBP打Bundle如何读取AssetBundleManifest 3)如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用 4)为什么我的水这么干净,和UE教程里的有差别 这是第392篇…

Pandas 学习笔记(一)

一、pandas简介 Pandas 是 Python 语言的一个扩展程序库,用于数据分析。 Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。 Pandas 是一个开放源码…

ubuntu 18.04 server源码编译安装freeswitch 1.10.11——筑梦之路

前言 这里主要编译支持语音通话、视频通话、短信、webrtc功能的PBX。 安装编译工具包和依赖包 sudo apt-get updatesudo apt-get install -y autoconf git libtool g zlib1g-dev libjpeg-dev libcurl4-openssl-dev libspeex-dev libldns-dev libedit-dev libssl-dev pkg-con…

百问网全志D1h开发板投屏功能实现

投屏功能实现 D1系列号称点屏神器,不仅能点屏,还能用于投屏。 源码准备 百问网为 【百问网D1h开发板】提供了投屏功能需要使用的源码,直接git下载即可: git clone https://github.com/DongshanPI/DongshannezhaSTU_DLNA_Scree…

平板WPS转换的PDF文件保存位置解析

在日常工作和生活中,我们经常需要将文档转换成PDF格式进行分享,以确保接收者能够无障碍地查看文件内容,不受软件版本或操作系统的限制。WPS作为一款功能强大的办公软件,也提供了文档转换为PDF的功能。然而,有时在转换并…

基于振弦采集仪的工程安全监测技术研究与应用

基于振弦采集仪的工程安全监测技术研究与应用 随着工程规模的不断扩大和复杂性的增加,工程安全监测变得越来越重要。工程安全监测的目的是保证工程的安全运行,预防事故的发生,保护人们的生命财产安全。其中,振弦采集仪作为一种重…

JOSEF约瑟 JOLP(ROS-2D)型两级跑偏开关 精度高,耐振动

​ 品牌 :JOSEF约瑟 型号名称 :JOLP(ROS-2D)型两级跑偏开关 触点容量 :AC380V 10A 触点数量 :常开:2常闭:2 极限角度 :70 复位方式 :自动 动作力 :3kg 防护等级 :IP66 结构特点 1.通用的安装设计可使跑偏检测装置随意安装在输送机纵梁顶!顶部或底部位置 2.封闭、防腐、坚固的铸…

3D数字人视频合成用户指南

数字人开放平台3D互动数字人如何接入_虚拟数字人(DVH)-阿里云帮助中心3D互动数字人(对应开放平台的“智能客服”场景)是虚拟数字人开放平台提供能够支持用户与3D数字人进行实时语音交互的数字人产品能力,需要配合智能对话机器人产品使用。本篇…

徐徐拉开的帷幕:拜登与特朗普的辩论大戏 日元跌破160大关!创1986年以来最低纪录

北京时间6月27日(本周五)上午9:00,拜登和特朗普将参加2024年总统候选人电视辩论。作为参考,2016年大选辩论期间,美元汇率对辩论结果的反应相对温和,希拉里胜选预期增强在一定程度上支撑了美元。 时间逐渐临…

Java - 程序员面试笔记记录 实现 - Part1

社招又来学习 Java 啦,这次选了何昊老师的程序员面试笔记作为主要资料,记录一下一些学习过程。 1.1 Java 程序初始化 Java 程序初始化遵循规则:静态变量优于动态变量;父类优于子类;成员变量的定义顺序; …

Spring的jar包下载(最新版6.0版本)

1.在Spring官网的projects下面点击spring-framework 2.进入github官网 3.进入github后往下滑,点击Spring Framework Artifacts 4.往下滑找到 点击 5.在左边先点击Artifacts,在右边找到 libs-snapshot,展开libs-snapshot(之前其他…

道路救援入驻派单小程序开源版开发

道路救援入驻派单小程序开源版开发 1、用户立即救援 2、后台收到救援通知,派单救援师傅. 道路救援入驻派单小程序通常会包含一系列功能,旨在方便救援服务提供商、用户和后台管理系统之间的交互。以下是一个可能的功能列表: 用户端功能&…

GPOPS-II教程(4): 多级火箭上升最优控制问题

文章目录 本篇重点问题描述动力学方程约束条件性能指标 GPOPS代码main function1. 初始参数设置2. 边界条件设置3.初值猜测4.设置GPOPS求解器参数5.求解6.画图 continuous function1. 取输入参数2. 计算过程变量3. 写动力学方程4. 给输出 endpoint function坐标转换函数位置-速…

大猫咪守护LoRA:定制你的大猫私人大猫咪宠物写真合影,某音某书流行款

🌹大家好!我是安琪!感谢大家的支持与鼓励。 大猫咪LoRA模型简介 今天应群里同学大猫咪宠物合影写真提议,为大家介绍一款来自作者 沐沐人像合成的主题为大猫咪守护的LoRAl模型:沐沐-大猫咪。这是一款当下在某音、某书…

基于FreeRTOS+STM32CubeMX+LCD1602+MCP3308(SPI接口)的8通道ADC转换器Proteus仿真

一、仿真原理图: 二、仿真效果: 三、STM32CubeMX配置: 1)、时钟配置: 2)、USART配置: 四、软件部分: 1)、主功能函数: 2)、初始化部分: /* USER CODE BEGIN Header */ /** ******************************************************************************

Apache Flink类型及序列化研读生产应用|得物技术

一、背景 序列化是指将数据从内存中的对象序列化为字节流,以便在网络中传输或持久化存储。序列化在Apache Flink中非常重要,因为它涉及到数据传输和状态管理等关键部分。Apache Flink以其独特的方式来处理数据类型以及序列化,这种方式包括它…

vscode使用Black Formatter以及Flake8实现代码格式化

vscode使用Black Formatter以及Flake8实现代码格式化(实现和pycharm相似的效果) 简单介绍一下这两个插件的功能,flake8可以实现对python代码风格的检测,对空格换行等内容都会有提示。 Black Formatter则可以实现在保存时&#x…

kafka 消费者 API 使用总结

前言 应用程序使用KafkaConsumer向Kafka订阅主题,并从订阅的主题中接收消息。不同于从其他消息系统读取数据,从Kafka读取数据涉及一些独特的概念和想法。如果不先理解这些概念,则难以理解如何使用消费者API。本文将先解释这些重要的概念&…

【乐吾乐2D可视化组态编辑器】文件

1 文件 文件:文件的新建、打开、导入、保存、另存为、下载JOSN文件、下载ZIP打包文件、导出为HTML、导出为Vue2组件、导出为Vue3组件、导出为React组件(老版将不再维护)、下载为PNG、下载为SVG 乐吾乐2D可视化组态编辑器demo:ht…

Elasticsearch 聚合查询

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…