Feature Prediction Diffusion Model for Video Anomaly Detection 论文阅读

news2024/11/15 15:48:00

Feature Prediction Diffusion Model for Video Anomaly Detection论文阅读

  • Abstract
  • 1. Introduction
  • 2. Related work
  • 3. Method
    • 3.1. Problem Formulation
    • 3.2. Feature prediction diffusion module
  • 3.3. Feature refinement diffusion module
  • 4. Experiments and discussions
    • 4.1. Datasets
    • 4.2. Performance evaluation metrics
    • 4.3. Implementation details
  • 5. Conclusions
  • 阅读总结

文章标题:Feature Prediction Diffusion Model for Video Anomaly Detection
文章信息:

在这里插入图片描述
发表于:ICCV 2023
原文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Yan_Feature_Prediction_Diffusion_Model_for_Video_Anomaly_Detection_ICCV_2023_paper.pdf
源代码:https://github.com/daidaidouer/FPDM

Abstract

在视频异常检测是一个重要的研究领域,在实际应用中也是一项具有挑战性的任务。由于缺乏大规模标注的异常事件,大多数现有的视频异常检测(VAD)方法侧重于学习正常样本的分布,以便检测明显偏离的样本作为异常。为了更好地学习正常运动和外观的分布,许多辅助网络被用于提取前景对象或动作信息。这些高层语义特征有效地过滤了背景噪声,减少了其对检测模型的影响。然而,这些额外的语义模型的能力对VAD方法的性能产生了重要影响。受扩散模型(DM)出色的生成和抗噪声能力的启发,本文引入了一种新颖的基于DM的方法来预测用于异常检测的视频帧特征。我们的目标是学习正常样本的分布,而无需涉及任何额外的高层语义特征提取模型。为此,我们构建了两个去噪扩散隐式模块来预测和细化特征。第一个模块专注于特征运动学习,而最后一个专注于特征外观学习。据我们所知,这是第一个基于DM的用于VAD的特征预测方法。DM的强大能力也使得我们的方法能够更准确地预测正常特征,相较于基于非DM的特征预测的VAD方法。广泛的实验证明了所提方法在性能上大大优于最先进的竞争方法。代码可在FPDM上获得。

1. Introduction

视频异常检测(VAD)旨在识别在视频中罕见且与正常行为不同的异常事件。成功检测异常事件,如交通事故、暴力和踩踏事件,在广泛应用于公共安全的视频监控中具有重要意义。然而,由于真实世界中异常事件的种类繁多且难以收集大规模标注数据,VAD是一项具有挑战性的任务。

多年来已经提出了许多视频异常检测(VAD)方法[9,10,14,19,23,33,34,39,45,46,57,62,68,71],以解决这一问题,其中一类学习方法由于相对可获得的正常训练集以及其实现更好性能的能力而受到青睐[44]。这些一类学习的VAD方法假设具有所有样本均为正常的训练数据,并构建不同的模型来学习正常数据的分布。生成建模是这一领域中广泛使用的技术,因为在训练后,正常样本可以比异常更好地生成。生成对抗网络(GAN)[22, 52, 71, 72]和自编码器(AE)[24, 29, 40, 46]是两个流行的框架。尽管这些生成方法在VAD中取得了令人满意的性能,但存在三个主要挑战:(1) 基于GAN/AE的方法具有较弱的生成能力,导致低质量生成图像中的噪音增多,降低了性能,(2) 当前的SOTA方法通常使用一些辅助模型,例如目标检测和动作识别模型,来捕获前景对象或动作信息的特征,因此性能在很大程度上依赖于这些高级语义模型的表示能力,以及(3) 异常事件通常以新颖的外观和/或异常运动为特征,增加了生成模型在这两个方面捕获正常性/异常性的难度。
总之,主要贡献有三个:

  • 我们引入了一种基于扩散模型的方法,用于预测语音活动检测(VAD)中每个样本的特征。据我们所知,这是首个利用扩散模型进行视频异常检测的工作。
  • 我们设计了两种DDIM模块,分别从正常样本中进行运动和外观学习,以保证预测特征的生成质量。
  • 该模型以2D图像作为输入,没有辅助的语义网络,同时实现了高度可比的性能,利用高层次的3D语义特征的方法。

在四个公开的视频异常检测数据集上的实验结果表明,我们的方法大大优于基于图像特征的VAD同行,并表现出良好的方法使用3D语义特征。

2. Related work

针对不同的应用场景,根据训练样本的标注情况,视频异常检测方法大致可以分为半监督、单类和无监督VAD三类。由于我们的方法属于单类类型,因此我们只回顾单类VAD方法。

早期的单类VAD方法是两步方法,其中特征提取和学习分离。他们首先使用手工制作的特征描述符来呈现每个帧,例如3D梯度特征[38],梯度直方图(HOG)[16],直方图光流(霍夫)[16],词袋(BOW)等,然后构建一个浅层模型来学习正态分布,例如基于字典的模型[75],概率模型[13,41]和重建模型[16,38,75]。这些传统方法的缺点是手工制作的特征性能差。随着深度学习的发展[35,36,64 -67],基于卷积神经网络的方法紧随其后。CNN将特征提取和学习集成到端到端框架中[42,43,70]。这些基于CNN的方法大多属于生成方法,其中模型对正态性应用特征学习,并根据生成样本与原始样本之间的差异检测异常。生成对抗网络(GAN)[20,51,73]和基于自动编码器的网络(AE)[25,27,56]被广泛用于这种正常的特征学习。基于这些框架,提出了记忆模块[24]和特征预测模块[33]来增强特征学习的能力。为了进一步提高性能,一些高级特征提取模型,例如,采用对象检测[23,37]、动作识别[62]和光流[33]来获得前景或运动信息以用于正常性的学习。辅助模型为这些VAD方法带来了好处,同时增加了对语义表示的依赖性。

近年来,扩散模型在许多生成性任务上取得了最好的表现,成为研究的热点[5,17,26,49,53]。计算机视觉中已经出现了许多应用,例如图像修复[7,15,54]、图像处理[47]、图像超分辨率[7,18]和图像到图像转换[50,76]。这些应用程序最先进的性能证实了基于DM的模型具有非凡的生成能力。为了进一步将DMS扩展到主流的计算机视觉任务,已经提出了一些基于DM的潜在表示学习方法,如用于目标检测的DiffusionDet[12]、用于分割的SegDiff[2]和用于分类的SBG分类器[77]。这些区分任务通常需要更强大的模型,不容易受到背景的干扰。因此,这些方法在不同任务上的成功验证了数据挖掘的抗噪声能力。早期的扩散模型,如去噪扩散概率模型(DDPM),由于马尔可夫过程通过微小的修正转换数据分布,在采样阶段需要相当多的去噪步骤。为了加快采样过程,已经提出了许多加速扩散方法[30,53,74]。去噪扩散隐式模型(DDIM)因其无需训练的特性而被广泛应用。DDIM不需要额外的训练,可以直接应用先进的采样算法,步骤更少,保真度更高。因此,基于DDIM的方法更有可能在实际中被采用。

3. Method

我们的主要动机是设计一种基于扩散模型的方法,以便在没有3D特征提取网络的帮助下很好地学习正常运动和外观的分布。在推理阶段,正常样本的特征比异常样本的特征更容易被优化模型预测。

如图2所示,我们的框架包含三个部分,即帧编码器、特征预测扩散模块和特征细化扩散模块。首先,我们使用一个编码器来提取每一帧的特征。任何预训练的CNN都可以用作编码器。

在这里,我们采用了[48]中的轻量编码器,因为:
(1)输出特征图的大小在空间上比原始图像的大小小64倍,并且只包含四个通道,这大大减少了后续扩散模块的计算,
(2)该编码器的预训练是无监督的,这更容易获得。

为了预测特征,我们设计了两个基于DDIM的模块来预测和细化每帧的特征。注意,DDIM具有与DDPM相同的训练过程,但在采样阶段更有效,因为它采用跳步隐式采样器,而不是逐步提取噪声信息。特征预测扩散模块侧重于学习运动的分布,特征细化扩散模块侧重于外观分布学习。

在这里插入图片描述

3.1. Problem Formulation

该问题旨在解决的是通过给定几个连续的视频帧来生成一个特征,然后估计该特征是否属于学习的分布。形式上,给定具有k个连续帧 X X X={ x 1 x_1 x1 x 2 x_2 x2,···, x k x_k xk}的视频剪辑,我们的目标是预测第k帧的特征,简称为 f ¨ ( x k ) \ddot{f}(x_k) f¨(xk) f ˙ k \dot{f}_k f˙k。我们使用 f ˙ k \dot{f}_k f˙k f ¨ ( x k ) \ddot{f}(x_k) f¨(xk)来表示特征预测和细化扩散模块的输出。由于涉及到时间步,我们用 f k t f_k^t fkt表示时间步长t时第k帧的特征。因此, f k 0 f^0_k fk0指的是时间步长0处的第k个特征,其等同于 f k f_k fk。与原始特征 f k f_k fk相比,第k帧的异常分数可以通过 f k f_k fk f ¨ k \ddot{f}_k f¨k之间的均方误差来计算。

3.2. Feature prediction diffusion module

公式有点复杂,简单来说就是图中的过程:
在这里插入图片描述

与之前采用k个样本预测第k+1个样本的工作不同,我们将1到k-1帧的特征{ f 1 0 , f 2 0 , ⋅ ⋅ ⋅ , f k − 1 0 f^0_1,f^0_ 2,···,f^0_{k−1} f10f20⋅⋅⋅fk10}和第k帧的噪声特征 f k t f^t_k fkt一起作为输入,预测特征 f ˙ k 0 \dot{f}_k^0 f˙k0。为此,我们构建了一个特征预测扩散模块,通过使用隐式采样[53]逐步去除 f k t f^t_k fkt的噪声,以生成 f ˙ k 0 \dot{f}_k^0 f˙k0
对于训练,我们的扩散模型的目标是学习近似原始数据分布 q θ ( f 0 ) q_θ(f^0) qθ(f0)的分布 p θ ( f 0 ) p_θ(f^0) pθ(f0)。在前向过程中,后验 q ( f 1 : T ∣ f 0 ) q(f^{1:T}| f^0) q(f1:Tf0)固定到马尔可夫链:
在这里插入图片描述

其中t ∈ [1,T]是时间步长,并且:
在这里插入图片描述
其中 α t ∈ α_t ∈ αt{ α t α_t αt} t = 1 T ^T_{t=1} t=1T是控制 f t − 1 f^{t−1} ft1的百分比的时间表, ( 1 − α t ) (1-α_t) (1αt)控制噪声的百分比。随着时间步长t的增大, α t α_t αt减小。基于这些性质, f t f_t ft可以由 f 0 f_0 f0和标准高斯噪声的线性组合表示如下:
在这里插入图片描述
为了学习分布 p θ ( f 0 ) p_θ(f^0) pθ(f0),我们基于LDM [49]构建了一个U网扩散网络 ϵ θ ( ⋅ ) \epsilon_θ(·) ϵθ()。为了更好地预测特征,我们修改LDM的两个部分:
(1)我们丢弃潜在条件部分并将所有的交叉注意层修改为传统的注意层,
(2)每个输入样本包含k个特征{ f 1 0 , f 2 0 , ⋅ ⋅ ⋅ , f k t f^0_1,f^0_ 2,···,f^t_k f10f20⋅⋅⋅fkt},其中仅第k个特征被应用扩散前向过程。这种修改有两个原因:
(1)我们希望从正常样本中学习特征的分布,而不涉及任何其他潜在条件
(2)结合前一帧的连续特征,我们可以向 ϵ θ ( ⋅ ) \epsilon_θ(·) ϵθ()提供运动信息,使这个扩散模块专注于特征运动学习。

根据文献[26,53],在训练中使用了目标函数的简化版本,其定义如下:
在这里插入图片描述
其中,t是时间步长, ϵ θ ( ⋅ , t ) \epsilon_θ(·,t) ϵθ(⋅,t)是时间t处的预测噪声。用Eq.(3)到EQ.(4)当给定足够的特征样本和随机时间步长t 0∈ [ 1,T ]时,参数θ可以得到优化。

对于相反的过程,在时间t-1的第k个样本的特征可以通过以下公式在给定{ f 1 0 , f 2 0 , . . . , f k t f^0_1,f^0 _2,...,f^t_k f10f20...fkt}的情况下生成一次:
在这里插入图片描述
其中, α t α_t αt ∈{ α t {α_t} αt} t = 1 T ^T_{t=1} t=1T是控制每个步骤的附加噪声的时间表。在采样阶段,第(t-1)步将特征{ f 1 0 , f 2 0 , ⋅ ⋅ ⋅ , f k t f^0_1,f^0_2,···,f^t_k f10f20⋅⋅⋅fkt}作为输入来预测 f k t − 1 f^{t-1}_k fkt1

对反向过程的连续监督可以有效地保证运动预测,但它可能会错过一些外观细节,因为无噪声的k-1特征有助于运动学习,同时对外观学习有影响。为此,我们创建另一个DDIM模块来细化外观信息。

3.3. Feature refinement diffusion module

上一个模块考虑了运动关系,但是外观信息被忽略,为了让生成的最后一帧更接近真实值,又设计了这个模块,简单来说还是下面的图片过程:
在这里插入图片描述
我们在预测模块旁边构建了一个特征细化扩散模块。该精化模型强调学习特征的外观分布。同样,我们采用基于LDM的U-net作为细化的扩散网络,其中的条件部分被保持。我们将前一个预测模块的输出,即去噪特征 f ˙ k 0 \dot{f}_k^0 f˙k0作为输入,并使用第k帧的原始特征 f k 0 f^0_k fk0作为条件,以生成表示为 f ¨ k 0 \ddot{f}_k^0 f¨k0的细化特征。条件 f k 0 f^0_k fk0用于交叉注意以保证特征外观学习。特征细化扩散模块的目标是学习一个近似于 q ( f 0 ) q(f^0) q(f0)的分布 p φ ( f 0 ) p_φ(f^0) pφ(f0)

与先前的特征预测模块相同,后验 q ( f ˙ 1 : T ∣ f ˙ 0 ) q(\dot{f}^{1:T}| \dot{f}^0) q(f˙1:Tf˙0)固定到马尔可夫链,并且在给定 f ˙ 0 \dot{f}^0 f˙0和高斯噪声 ϵ \epsilon ϵ的情况下,可以按方程(3)计算时刻t处的输入 f ˙ t \dot{f}^t f˙t

为了使细化网络 ϵ φ \epsilon_φ ϵφ 专注于外观学习,我们通过在基础的 UNet 主干网络中引入交叉注意力机制,并将原始特征 f k 0 f^0_k fk0作为条件传入交叉注意力层。我们对特征 f k 0 f^0_k fk0 进行展平,然后使用线性变换得到一个 d-维向量 f k 0 ^ \widehat{f^0_k} fk0 ,交叉注意力的实现如下:
在这里插入图片描述
其中 W k W_k Wk W q W_q Wq W v W_v Wv是可学习的投影矩阵, ϕ ( f ˙ k t ) \phi(\dot{f}_k^t) ϕ(f˙kt)φ(stecft k)是每个交叉注意层的输入特征图。对于不同的交叉注意层, f k 0 ^ \widehat{f^0_k} fk0 是不变的,这为特征学习提供了一致的外观监督。损失函数也是DDIM的简化版本,定义为:
在这里插入图片描述
对于逆过程,我们可以通过以下方式获得t-1时间步长的特征:
在这里插入图片描述
其中,参数 α \alpha α σ \sigma σ与方程 (5) 中的相同。在特定的时间步 t,通过方程 (9) 可以获得经过细化的特征 f ¨ k 0 \ddot{f}_k^0 f¨k0
为了进行测试,我们使用MSE来计算 f k 0 f^0_k fk0和原始特征 f ¨ k 0 \ddot{f}_k^0 f¨k0之间的异常分数,定义为:
在这里插入图片描述
在训练阶段,我们分别训练两个扩散模块,即在预测模块收敛后再训练细化模块。这是因为细化模块的输入是预测模块的采样输出,在训练初期质量较低。联合学习对细化模块的性能有负面影响(参见表格3的结果)。因此,我们采用了分开训练的策略。训练和推断的伪代码如算法1所示。
在这里插入图片描述

4. Experiments and discussions

4.1. Datasets

在四个视频异常检测数据集上进行了实证评估:

  • CUHK Avenue
  • ShanghaiTech
  • UCF-Crime
  • UBnormal

ShanghaiTech和UCF-Crime是大规模真实世界的VAD数据集,UBnormal是一个生成的数据集。

4.2. Performance evaluation metrics

和之前的很多工作一样采用AUC作为评价指标,结果如表1:

表1. 不同的一类语音活动检测(VAD)方法的AUC。OD指的是来自目标检测方法的前景边界框,而I3D、R3D和A3D分别指ConvNet3D、ResNext3D和动作识别网络的3D特征。 ‘(FPM)’ 表示该模型还采用了基于帧预测的方法进行VAD。
在这里插入图片描述

4.3. Implementation details

遵循许多先前的研究工作[24, 34, 45],图像的输入尺寸设置为256×256。由于编码器有四个2×下采样层,每个样本的最终特征图的大小为32×32×4。根据视频异常检测中第一个预测框架的设置,我们使用四个连续的相邻帧来预测第五帧[33]。具体而言,我们为训练和测试创建一个立方体,其中包含四个原始特征和来自第五个特征的噪声特征。我们使用DDIM [53]中推荐的 α \alpha α σ \sigma σ的设置。在训练阶段,将训练轮数 S S S 设置为60,包括开始时的12个热身轮数,时间步长 T T T 和学习率分别设置为1k和 1 0 − 5 10^{-5} 105。在推理阶段,我们采用200步的采样计划 T ′ T' T,即按照[53]的设置, T ′ T' T中的每一步相当于 T T T 中的五步。此外,我们将 t t t 设置为 0.25 T ′ 0.25T' 0.25T 以进行采样,因为在[28, 63]中发现这是最佳设置。因此,与DDPM相比,采样阶段加速了20倍。

5. Conclusions

本文引入了首个用于视频异常检测的特征预测扩散模型(DDIM)。我们进一步设计了两个DDIM模块,即特征预测扩散模块和特征细化扩散模块,用于从正常样本中学习运动和外观。令人印象深刻的是,尽管我们的模型将图像作为输入以预测用于异常检测的特征,但与利用高级3D语义特征的方法相比,它表现出竞争性的性能。广泛的实证结果还表明,我们的方法在对抗最先进的基于2D图像特征的VAD模型方面具有优越性。

阅读总结

difussion那一块还不是很了解,还需要多学习。
创新点主要是首次将difussion引入到了视频异常检测领域,当然感觉最近的VAD论文好几个都说自己首次。看了一下用difussion做VAD的感觉还是不算多的,有潜力。
2d的VAD检测基本上有去考虑运动和外观的重建,这篇也是。

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

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

相关文章

Flink1.17实战教程(第六篇:容错机制)

系列文章目录 Flink1.17实战教程(第一篇:概念、部署、架构) Flink1.17实战教程(第二篇:DataStream API) Flink1.17实战教程(第三篇:时间和窗口) Flink1.17实战教程&…

如何在无公网IP环境使用Windows远程桌面Ubuntu

文章目录 一、 同个局域网内远程桌面Ubuntu二、使用Windows远程桌面连接三、公网环境系统远程桌面Ubuntu1. 注册cpolar账号并安装2. 创建隧道,映射3389端口3. Windows远程桌面Ubuntu 四、 配置固定公网地址远程Ubuntu1. 保留固定TCP地址2. 配置固定的TCP地址3. 使用…

使用Visual Studio 2022 winform项目打包成安装程序.exe

winform项目打包 1.安装扩展插件 Microsoft Visual Studio Installer Projects 20222.在解决方案上新建一个setup project 项目3.新建成功如下图,之后添加你的winform程序生成之后的debug下的文件4.在Application Folder上点击右键->Add->项目输出->主输出…

从实际业务问题出发去分析Eureka-Server端源码

文章目录 前言1.EnableEurekaServer2.初始化缓存3.jersey应用程序构建3.1注册jeseryFilter3.2构建JerseyApplication 4.处理注册请求5.registry() 前言 前段时间遇到了一个业务问题就是k8s滚动发布Eureka微服务的过程中接口会有很多告警,当时…

黄向墨创立的玉湖冷链参加首届中欧班列(成渝)全球合作伙伴大会签订

玉湖集团是总部设于香港的有二十多年历史的跨国实业投资集团,由祖籍广东的香港企业家、著名爱国侨领黄向墨先生创立。黄向墨先生现任中国和平统一促进会常务理事、中华海外联谊会常务理事、香港选委会委员及香港全国人大代表选举会议成员。 12月7日,玉湖冷链参加首届中欧班列(…

鸿蒙Harmony(八)ArkUI--状态管理器之@State

状态管理 在声明式UI中,是以状态驱动视图更新 状态:指驱动视图更新的数据(被装饰器标记的变量) StateProp 和 LinkProvide和 Consume State State装饰器标记的变量必须初始化,不能为空值State支持Object 、class、…

Linux操作系统(Crontab计划任务+NTP时间同步服务器)

如何修改linux系统时间 与时间相关的命令,查看当前的时间 运行 date 即可 cal 查看当前月份的日历 运行 timedatectl 查看时间详细参数 ( NTP: network time protocol 网络时间协议 ) ( local time : 本地时间 &#x…

WeNet语音识别分词制作词云图

在线体验 ,点击识别语音需要等待一会,文件太大缓存会报错 — 介绍 本篇博客将介绍如何使用 Streamlit、jieba、wenet 和其他 Python 库,结合语音识别(WeNet)和词云生成,构建一个功能丰富的应用程序。我们将深入了解代…

电路设计(8)——计时器的multism仿真

1.功能设计 这是一个计时电路,在秒脉冲的驱动下,计时器开始累加,6个数码管分别显示计时的 时:分:秒。 仿真图如下所示: 左边的运放构成了振荡电路,可以产生脉冲波。这个脉冲波给计时电路提供基准…

scikit-learn文档中的数据生成器

目录 1. make_classification: 2. make_regression: 3. make_blobs: 4. make_moons: 5.make_circles 6. make_sparse_coded_signal: 1. make_classification: 这是一个用于生成复杂二维数据的函数,通常用于可视化分类器的学习过程或者测试机器学习算法的性能…

<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制

目录 TCP的通信机制的核心特性 五、流量控制 1)什么是“流量控制”? 2)如何做到“流量控制”? 3)“流量控制”的作用 六、拥塞控制 1)什么是“拥塞控制”? 2)如何做到“拥塞…

http——https实现指南

第一部分:HTTPS安全证书简介 什么是HTTPS安全证书? 在网络通信中,HTTPS安全证书是一种由可信任的证书颁发机构(CA)签发的数字证书,用于保障网站与用户之间的数据传输安全。通过加密和身份验证&#xff0c…

Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍

这里不涉及到源码,只是根据网上的一些文章总结一下,目前不需要细究,只需要知道大概就好,除非你的工作是二次开发ES 一、​Term Index(词项索引)1、FSM(Finite State Machine)有限状态机2、FSA(F…

【智慧门店】东胜物联蓝牙网关助力解决方案商,推动汽车后市场企业智能化升级

截至2023年9月底,我国汽车保有量达3.3亿辆,后市场前景广阔。 随着人工智能、5G、物联网等新技术的普及,汽车后市场企业希望向智能化迈进,借助新兴科技的力量提升汽车维修、车辆保养等服务质量,满足消费者日益增长的需…

python使用openpyxl操作excel

文章目录 前题读取已有excel创建一个excel工作簿对象创建excel工作簿中的工作表获取工作表第一种:.active 方法第二种:通过工作表名获取指定工作表​​​​​​第三种:.get_sheet_name() 修改工作表的名称数据操作写入数据按单元格写入通过指…

在人工智能和机器学习的影响下,代理服务器正在不断演变

代理服务器是充当客户端(例如用户的智能手机)和目标服务器(例如网站或应用程序)之间的网关的中介。在互联网的早期,代理服务器主要用于缓存网络内容。然而,随着互联网的扩展,他们的角色也随之扩…

网络舆论传播分析:自然语言处理与图分析相融合

源自:《信息安全与通信保密》 作者:徐明 魏国富 殷钱安 优化识别能力和溯源能力 在网络信息技术快速发展的当下,做好网络舆论分析是确保网络舆论信息健康稳定传播的基本前提。 介 绍 图 1 自然语言处理与图分析相结合的模型思路 方 法…

Postman使用

Postman使用 Pre-request Script 参考: Scripting in Postman 可以请求、集合或文件夹中添加Pre-request Script,在请求运行之前执行JavaScript 如设置变量值、参数、Header和正文数据,也可以使用Pre-request Script来调试代码&#xff0…

JS调用栈:为何会栈溢出

JS调用栈:为何会栈溢出 JS调用栈什么是函数调用什么是栈在开发中利用调用栈栈溢出 JS调用栈 JavaScript 经常会出现一个函数中调用另外一个函数的情况,调用栈就是用来管理函数调用关系的一种数据结构,首先你要先弄明白函数调用和栈结构 什么…

gin框架使用系列之三——获取表单数据

系列目录 《gin框架使用系列之一——快速启动和url分组》《gin框架使用系列之二——uri占位符和占位符变量的获取》 一、获取get参数 get请求的参数是直接加在url后面的,在gin中获取get请求的参数主要用Query()和DefaultQuery()两个方法,示例代码如下…